Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v5.0.0: backup/restore apps, overhaul TTS, add new node to existing cluster + 🐛 fixes #210

Merged
merged 346 commits into from
May 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
346 commits
Select commit Hold shift + click to select a range
fd7dcc0
actually apply the seaweedfs appset after restoring the seaweedfs PVCs
jessebot Apr 28, 2024
446f1cc
fix subproc calls for recovery job checking
jessebot Apr 28, 2024
57e559c
refine postgres recovery job checking a bit more
jessebot Apr 28, 2024
23e1edc
add some color to success and failure reporting in the logs and allow…
jessebot Apr 28, 2024
241000b
drastically simply how we check that the recovery job is done by just…
jessebot Apr 28, 2024
fe44d70
put restore into it's own tab
jessebot Apr 28, 2024
d905eff
make sure if we can't get the deployment immediately for nextcloud, w…
jessebot Apr 28, 2024
399302f
add restic to required docs
jessebot Apr 28, 2024
8e26053
fix cap header for matrix
jessebot Apr 28, 2024
533d37f
fixing matrix restores and parametizing more of nextcloud restores
jessebot Apr 28, 2024
b72ac3c
switch to using argocd as an object
jessebot Apr 29, 2024
3515ea9
updating poetry lock file
jessebot Apr 29, 2024
2c1313f
fix typo of recusion to recursion
jessebot Apr 29, 2024
1e4ad83
start fleshing out the new backup button to do restic pvc backups
jessebot Apr 29, 2024
e723d37
add cnpg backups to default supported backups
jessebot Apr 29, 2024
57783a5
rig up backup button for on demand backups :sparkle:
jessebot Apr 29, 2024
3657397
databases exist outside of nextcloud
jessebot Apr 29, 2024
24a0fa7
simplify nextcloud occ commands in backup.py
jessebot Apr 29, 2024
b597651
change name from postgresql to postgres
jessebot Apr 29, 2024
352f899
overhaul of backups and restores. backups via the tui should work for…
jessebot Apr 29, 2024
6a3aefe
move value_from function out of tui widget and into general utils as …
jessebot Apr 30, 2024
c5df057
update value from function to do more error checking
jessebot Apr 30, 2024
c5908ff
use backups section instead of secret keys but still update secret ke…
jessebot Apr 30, 2024
cdc378c
move repetitive backup processing to value_from lib and have nextclou…
jessebot May 1, 2024
47af550
setup backups and restores for matrix
jessebot May 1, 2024
541c136
finish up initial setting up of backup and restore functions for zita…
jessebot May 1, 2024
b048776
catch error of unable to get serverVersion when docker is not enabled…
jessebot May 1, 2024
536f419
should be serverVersion not semverVersion
jessebot May 1, 2024
a412d74
generate audio for macos 64 bit arm, and unknown cluster versions
jessebot May 1, 2024
76b6ff6
make backup jobs unique by giving them timestamps
jessebot May 1, 2024
e69a726
update poetry lock
jessebot May 1, 2024
62b6f6a
finally found the perfect kubectl cmd to make backup button finish
jessebot May 1, 2024
5663618
split off trigger_backup into its own worker method
jessebot May 2, 2024
e7bd4c6
change where we we declare the hostname for zitadel
jessebot May 2, 2024
3293294
fix up disabling of displayed rows for restore widget
jessebot May 2, 2024
2088926
fix home assistant header and vouch's too, but also clean up unused k…
jessebot May 2, 2024
0e3139b
fix display of snapshot grid on start if we have restores disabled
jessebot May 2, 2024
23f4d95
cache getting restore_enabled and snapshots out of dicts into self fo…
jessebot May 2, 2024
1f6933a
change RestoreAppConfig to RestoreApp and change references to restic…
jessebot May 2, 2024
99762b8
update backup tooltips and try to speed up mounting
jessebot May 2, 2024
391fe3d
never print output from create secret unless there's an error
jessebot May 2, 2024
83c05c6
fix variable names for vouch and comment out more keycloak stuff
jessebot May 2, 2024
b118672
update how we do zitadel headers so we talk about explicitly syncing …
jessebot May 2, 2024
44bfae5
quietly do backups in the background via the backup widget
jessebot May 2, 2024
024e463
display an orange loading indicator while we do the backup in the bac…
jessebot May 2, 2024
df83301
fix more places where we don't need spinner if this is called from th…
jessebot May 2, 2024
7603aeb
fix notfiy spacing and add tooltip to loading indicator for backups i…
jessebot May 2, 2024
6763dd3
speed up input widget a tad
jessebot May 2, 2024
df434f4
clean up names of smol-k8s-lab generated backups and further clean up…
jessebot May 2, 2024
bff6afd
fix color of header rows
jessebot May 2, 2024
5119593
fix schedule name input for backup widget
jessebot May 2, 2024
5339d43
fix OAuth typo
jessebot May 2, 2024
a7fad76
add backup credentials to default generated home assistant credentials
jessebot May 2, 2024
1368358
fix home assistant s3 backups credentials
jessebot May 2, 2024
a940d04
fix tool tips for s3 backups section in tui to display key instead of…
jessebot May 2, 2024
e291cd5
catch issue where sometimes cnpg restore is not possible at all
jessebot May 2, 2024
461f7b5
fix issue where we were using _ instead of - for home assistant backu…
jessebot May 2, 2024
7744aad
catch more issues with _ vs -
jessebot May 2, 2024
4977545
create home assistant pvc with new pvc capacity
jessebot May 2, 2024
6fedc0f
update constants for smol-tts to output audio to a config directory
jessebot May 2, 2024
b2133f2
allow for running using integrated macos gpu when on arm64 machine ty…
jessebot May 2, 2024
57f938c
update poetry.lock for a mac
jessebot May 2, 2024
979ceb9
only generate audio file if the old one doesn't exist
jessebot May 2, 2024
1d2b8f0
update smol-tts to do more checking before regenerating an mp3
jessebot May 2, 2024
e7547f8
fix underscore to hyphen issue, again, with home assistant
jessebot May 2, 2024
57356cb
fix restic repo password for prcoess backup vals func
jessebot May 2, 2024
3dfce38
fix backup schedule appset secret plugin updates
jessebot May 2, 2024
3a68087
always apply the external secrets for home assistant restores
jessebot May 3, 2024
c1403dd
fix allt he references to external_secrets_appset.yaml to be external…
jessebot May 3, 2024
94bb7c6
udpate to use pyglet instead of playsound or playaudio
jessebot May 3, 2024
2a39565
update poetry lock
jessebot May 3, 2024
541c3c8
switching to pyglet everywhhere
jessebot May 3, 2024
f67b505
add a plain non-k8up restic restore job and a recreate_pvc function t…
jessebot May 4, 2024
ba196fc
add timestamps to restore jobs and mount_path to plain restic restore…
jessebot May 4, 2024
4abba79
add a wait section to restore plain restic job function
jessebot May 4, 2024
836cdab
reload home assistant deployment after we restore it and template out…
jessebot May 4, 2024
7ee6f7f
allow always restoring home assistant, even if it's already installed…
jessebot May 4, 2024
f9c8eda
optimize getting deployments and pod names and always use defined arg…
jessebot May 4, 2024
0b1d48c
fix create_resitc_restore_job typo to be create_restic_restore_job
jessebot May 4, 2024
7b3c15e
switch to using sync argocd app instead of refreshing deployment for …
jessebot May 4, 2024
da5336a
need to pass in HOME to get restic snapshots, need to pass in namespa…
jessebot May 4, 2024
0492949
fix where we get home assistant namespace and fix occurances of toler…
jessebot May 4, 2024
390fc0a
adding namespace to getting pod names and making sure to not get list…
jessebot May 4, 2024
0f675b5
fix where we get sensitive values, and make sure we get restic_repo_p…
jessebot May 4, 2024
dc10a44
switching to pygame for audio because nothing else is consistent
jessebot May 5, 2024
d7f478f
debian: verify pygame is now working appropriately for audio in the tui
jessebot May 5, 2024
f4cf6cb
remove commented cruft
jessebot May 5, 2024
da2792e
add delete app button
jessebot May 5, 2024
3374445
fix delete button spacing
jessebot May 5, 2024
0530cf5
fix restore_seaweedfs call for nextcloud and allow rollout check to fail
jessebot May 5, 2024
20896a5
add some more logging for syncing and deleting apps
jessebot May 6, 2024
e9e4d72
add some error catching for if we can't find a nextcloud pod, and use…
jessebot May 6, 2024
2e80d31
add some more logging and checking around restores and use re-usable …
jessebot May 6, 2024
5c43634
catch issue where sometimes a snapshot ID is only numbers, so we conv…
jessebot May 6, 2024
95027bf
restores: label values file with app name, reuse barman object for cn…
jessebot May 6, 2024
647dd38
name the cnpg cluster the same as the end result when recovering
jessebot May 6, 2024
89955a0
allow anything with postgres-cluster to grab the cnpg-cluster targetR…
jessebot May 6, 2024
e47c3f1
don't require getting pod to finish with return for nextcloud, add a …
jessebot May 6, 2024
9d35c75
allow extra labels for getting pod name
jessebot May 6, 2024
10fa987
update how we fix maintainence mode for nextcloud after restore
jessebot May 6, 2024
0b6e72e
make recovery backup and scheduled backup sections for cnpg {} instea…
jessebot May 6, 2024
14db117
fix incorrect username used for restores of cnpg
jessebot May 6, 2024
2267f2b
clean up unused values for cnpg operator
jessebot May 6, 2024
ac9cea2
simplify the restore dict updates after restore for cnpg cluster
jessebot May 6, 2024
0737b53
try installing alsa for linux ci
jessebot May 6, 2024
4f91192
add docs about installing alsa on debian
jessebot May 6, 2024
bde5772
attempt to get alsa working via ci
jessebot May 6, 2024
060c423
only mess with secrets if matrix's restore is enabled
jessebot May 6, 2024
ac16af7
fix post restore job for cnpg
jessebot May 6, 2024
77ff4d6
fix matrix namespace declaration
jessebot May 6, 2024
e70c380
simplify updating matrix pvc during restores by templating the pvc name
jessebot May 6, 2024
2f6d280
set externalClusters to [] after restore of cnpg cluster
jessebot May 6, 2024
4e4402b
add wal parallel back to backups and compress the restore dict a bit
jessebot May 7, 2024
756893b
adding gzip and maxparallel 8 for wal archive for cnpg restores
jessebot May 7, 2024
eb7c1d2
try just disabling mixer if audio device not enabled
jessebot May 7, 2024
b637ef7
add log message of no audio device found
jessebot May 7, 2024
2d5e87c
remove gzip from wal archives for cnpg restores
jessebot May 7, 2024
9af8ab6
adjust wall archives to be 4 at once instead of 8
jessebot May 7, 2024
dcc77f1
max said they would order pizza when this was working :fingers_crossed:
jessebot May 7, 2024
528845f
move minio_lib to utils and add get_object and list_object methods, t…
jessebot May 7, 2024
dc435b9
always make sure the final wal archive is there for backups of cnpg d…
jessebot May 7, 2024
905cbc5
update ArgoCD to have optional k8s requirement
jessebot May 7, 2024
18dc82d
add backup credentials getting
jessebot May 7, 2024
21438c5
always grab the s3 endpoint if cnpg restores are enabled
jessebot May 7, 2024
64b2cb1
only use ArgoCD in apps_screen if this is an existing cluster
jessebot May 7, 2024
2dd01f6
fix namespace missing from backup
jessebot May 7, 2024
7752033
add .decode('utf-8') to get str of pgsql s3 creds
jessebot May 7, 2024
174624f
don't show backup now button unless this is an existing cluster
jessebot May 7, 2024
15af49c
update backups to always check for end wal file for cnpg, and clean u…
jessebot May 7, 2024
4974701
check in attempts to make restores work again
jessebot May 7, 2024
9a31c73
wait an additional 30 seconds on that backup just in case
jessebot May 8, 2024
4e24671
wait for s3 to be up before applying recovery job for cnpg operator, …
jessebot May 8, 2024
8854ec7
retry syncs if they fail
jessebot May 8, 2024
bb8c451
immediately install the argocd appset plugin before argo is fully man…
jessebot May 8, 2024
fc126e9
update install the argocd appset plugin
jessebot May 8, 2024
12190f2
add more logging for restores and call it restore_cnpg_cluster instea…
jessebot May 8, 2024
d5f67dd
maybe fix appset secret plugin url
jessebot May 8, 2024
6116903
fix missing updates of s/restore_postgresql/restore_cnpg_cluster/
jessebot May 8, 2024
b0f3f74
updating argocd appset plugin to create the argocd project ahead of time
jessebot May 8, 2024
5d51583
actually break out of loop checking for s3 being up for cnpg restores
jessebot May 8, 2024
1e72360
make sure to get the correct source_repos for the project, and proper…
jessebot May 8, 2024
d7f43e6
fix unexpected key error for vouch
jessebot May 8, 2024
f2b51b2
switching back to immediate restore and adding more backup safety checks
jessebot May 8, 2024
a269a31
change how we do backups for cnpg to always wait till we can consiste…
jessebot May 8, 2024
42fb3d7
add a bit of a pause between checks for the backup.info file in s3 fo…
jessebot May 8, 2024
d12e99b
use new kwargs format for helm class
jessebot May 8, 2024
54b2c5f
accomadate postgres and pvc schedule settings
jessebot May 8, 2024
bc1a037
switch from s3_user and s3_pass to secretAccessKey and accessKeyId
jessebot May 8, 2024
2e8d215
finish up standardizing s3 credentials
jessebot May 8, 2024
1048de0
don't check in any logs we generate locally
jessebot May 8, 2024
c7c1da9
simply restores everywhere and always take postgres schedule for rest…
jessebot May 8, 2024
bb3bf2c
add a basic wait command for kubernetes and make sure we wait for sea…
jessebot May 9, 2024
6603696
fix default config to run postgres backups at midnight and file backu…
jessebot May 9, 2024
8ad6cbc
keep trying after a wait fails to find resources for smol-k8s-lab
jessebot May 9, 2024
88ac365
allow waits to fail for k8s and set loglevel to warn for argocd app w…
jessebot May 9, 2024
69708b1
try to fix calls to helm lib
jessebot May 9, 2024
b23a214
add comment about what we're doing in argo setup func
jessebot May 9, 2024
5c67e4b
don't show the hello from pygame message
jessebot May 9, 2024
6cd4c9c
always ignore the main en and nl dirs
jessebot May 9, 2024
9821ff5
always ignore the full audio files
jessebot May 9, 2024
abf0405
update appimage creation process
jessebot May 9, 2024
5ec91d7
linting and commenting
jessebot May 9, 2024
4c24d8f
add tar and untar commands
jessebot May 9, 2024
6523b61
print how long it took in both english and dutch, change order of che…
jessebot May 9, 2024
fcddf7f
add a keys section and update unknown verison text
jessebot May 9, 2024
edb393f
add project name for argocd tests
jessebot May 9, 2024
5ad8278
add argocd_config['argo']['cluster'] for all the ci tests
jessebot May 9, 2024
31409c1
speed up init values loading by swiching away from a collapsible
jessebot May 9, 2024
9c5a2d4
clean up colors
jessebot May 9, 2024
f19f19b
change green to explicit hex
jessebot May 9, 2024
1c36a31
fix mastodon restore error of too many arguments
jessebot May 9, 2024
f736d3b
fix space typo for argocd app sync command
jessebot May 10, 2024
ca3ab6c
optimize tui loading for apps screen a bit more
jessebot May 10, 2024
36bf4e8
add first app is audio for selection list
jessebot May 10, 2024
2dfb16c
add first app is audio for selection list
jessebot May 10, 2024
5fae9fc
cleaning up and refactoring for speed and audio in tui
jessebot May 10, 2024
8b98081
remove a layer of vertical scroll container for apps screen
jessebot May 10, 2024
778f384
update how we deal with unfound audio files; also add additional phra…
jessebot May 10, 2024
084901e
tidying help text screenshot
jessebot May 11, 2024
43702d5
move k9s to be run command and move (and subproc) under utils.run
jessebot May 11, 2024
755affb
clean up run command some more and upgrade textual
jessebot May 12, 2024
91db98c
cleaning up screenshots
jessebot May 12, 2024
eda8427
finally finish up final_command styling and option selection
jessebot May 12, 2024
2b794f5
change all - commands to have spaces instead for run_command
jessebot May 12, 2024
b61a6bc
actually insert the final command
jessebot May 12, 2024
66b40f5
fix option evaluation for final run command
jessebot May 12, 2024
f019ea5
fix ci tests to include final command test and make sure we accept sa…
jessebot May 12, 2024
88c8827
update credentials screen sizing and screenshot
jessebot May 12, 2024
4435422
change size of apps config modify globals button
jessebot May 12, 2024
5635e50
add id to modify globals button so we can use it for tcss queries. ad…
jessebot May 12, 2024
6605e28
update apps screen screenshot again
jessebot May 12, 2024
393c135
cleaning up a bit
jessebot May 12, 2024
4dc2c53
more cleaning
jessebot May 12, 2024
cf35efc
update existing clsuter screenshot
jessebot May 12, 2024
d588a13
add new start screen with existing cluster example
jessebot May 12, 2024
a347e13
update start screen screenshot
jessebot May 12, 2024
60f0f3a
add better logging password config and run command screenshot
jessebot May 12, 2024
9f37d48
fix modal screen buttons for some font types
jessebot May 13, 2024
b67eecf
update new node widget and screen
jessebot May 13, 2024
ec07be5
adding new screenshots for new node widget and new nodes screen
jessebot May 13, 2024
aae48b4
add modify global params modal screen screenshot
jessebot May 13, 2024
edd8914
update make screenshots script
jessebot May 13, 2024
8c7a8ea
add modify node modal screen
jessebot May 13, 2024
377c635
tidy up the audio for node modification screens
jessebot May 13, 2024
251319b
add delete node modal screenshot
jessebot May 13, 2024
f6653ea
docs: add new apps screen screenshots, linting, replace jessebot with…
jessebot May 13, 2024
d7d8635
linting and updating descriptions
jessebot May 13, 2024
b92709b
update the add remote node screenshot and alt text
jessebot May 13, 2024
8a9a370
update tui screenshots and config file examples
jessebot May 13, 2024
21e0e7b
add cluster parameter to all apps and change ref to revision anywhere…
jessebot May 13, 2024
f6e6a66
update the backup sections of all the backup supported apps and also …
jessebot May 13, 2024
06febda
do a minor clean up of all the experimental apps
jessebot May 13, 2024
60325ae
add new input names for k3d and kind node inputs for audio
jessebot May 13, 2024
aa71f6f
finish up generating audio for all of the distro screen for both kind…
jessebot May 13, 2024
19ab50e
update networking tab audio to be 'networking options tab'
jessebot May 13, 2024
98aaaa0
add backup and restore tabs for audio generation
jessebot May 13, 2024
c872bd8
add some more phrases for backups
jessebot May 13, 2024
3f5327f
fix saying app bug
jessebot May 13, 2024
ea4aa6e
fix how we say PVC
jessebot May 13, 2024
d2f09b4
fix more backups input audio
jessebot May 13, 2024
4cf851a
more troubleshooting of restic repo password audio
jessebot May 13, 2024
248611e
fix restic repo input audio generation
jessebot May 13, 2024
d0ed1f8
update s3 configuration collapsible audio generation
jessebot May 13, 2024
242d478
regenerate many input fields audio
jessebot May 13, 2024
01a68a9
add more input to the ends of things
jessebot May 13, 2024
d830356
update audio widget to process node datatable and always say input af…
jessebot May 14, 2024
f2104c5
add button as a default thing we say and remove button from ending of…
jessebot May 14, 2024
c976c87
add button say method
jessebot May 14, 2024
d7702b8
update screen descriptions for config screens
jessebot May 14, 2024
0a050de
remove word button from focused so we don't try to say it twice
jessebot May 14, 2024
6e400e4
switch to saying drop down menu if we find a select
jessebot May 14, 2024
3089936
switch to special switch method
jessebot May 14, 2024
f35bf5b
add switch phrase
jessebot May 14, 2024
576dfa0
try to say split better and add window behavior select phrase
jessebot May 14, 2024
634e209
clean up more input fields to reduce words needed
jessebot May 14, 2024
0710a85
add some more links for accessibility
jessebot May 14, 2024
7ca0246
adding the audio files finally
jessebot May 14, 2024
cb8c8f4
change all the refs of feature branch back to regular main branch and…
jessebot May 14, 2024
2256e1d
switch from valueFrom to value_from to be consistent
jessebot May 15, 2024
6c49cdf
update docs for both nextcloud and matrix backup and restores
jessebot May 15, 2024
981fca9
add a basic roadmap
jessebot May 15, 2024
fea01b5
update help image
jessebot May 15, 2024
890f824
add more roadmap stuff
jessebot May 15, 2024
71fad24
prep for appimage test
jessebot May 15, 2024
436488f
add logo for smol-k8s-lab, why not
jessebot May 15, 2024
7b84de6
updating deps
jessebot May 15, 2024
5c39c16
add latest audio tarball
jessebot May 15, 2024
7848bbb
update appimage config yaml for testing
jessebot May 15, 2024
8ff7f44
note that brew is still wonky and disable generating audio on tag
jessebot May 15, 2024
9734cd4
update home assistant and zitadel backups and restores and clean up t…
jessebot May 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/smol-k8s-lab-appimage.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# This is an example for making an AppImage from a python3 smol-k8s-lab application
# using virtualenv and pip3

app: smol-k8s-lab

ingredients:
dist: bookworm
sources:
- deb http://us.archive.ubuntu.com/ubuntu/ bookworm bookworm-updates bookworm-security main universe
- deb http://us.archive.ubuntu.com/ubuntu/ bookworm-updates main universe
- deb http://us.archive.ubuntu.com/ubuntu/ bookworm-security main universe
packages:
- python3.12-venv
# these are for making sound work
- libasound2-data
- libasound2-plugins
- libasound2
script:
- wget -c https://raw.githubusercontent.com/small-hack/smol-k8s-lab/feat/restore-app/docs/assets/images/icons/logo.png
- wget -c https://raw.githubusercontent.com/small-hack/smol-k8s-lab/feat/restore-app/smol_k8s_lab/config/smol-k8s-lab.appdata.xml

script:
- cp smol-k8s-lab.png ./usr/share/icons/hicolor/256x256/
- cp smol-k8s-lab.png .
- mkdir -p usr/share/metainfo/ ; cp smol-k8s-lab.appdata.xml usr/share/metainfo/
- virtualenv --python=python3 usr
- ./usr/bin/pip3 install smol-k8s-lab
- cat > usr/share/applications/smol-k8s-lab.desktop <<\EOF
- [Desktop Entry]
- Type=Application
- Name=smol-k8s-lab
- Comment=CLI and TUI to quickly install slimmer Kubernetes distros and then manage apps declaratively using Argo CD
- Icon=smol-k8s-lab
- Exec=smol-k8s-lab
- Terminal=true
- Categories=Application;Development;
- Keywords=Python;Kubernetes;
- EOF
- cp usr/share/applications/smol-k8s-lab.desktop .
- usr/bin/pip3 freeze | grep "smol-k8s-lab" | cut -d "=" -f 3 >> ../VERSION
37 changes: 20 additions & 17 deletions .github/smol_k8s_lab_config_k3d.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ smol_k8s_lab:
on_focus: true
# ring the built in terminal bell when something is wrong
on_error: true
text_to_speech:
text_to_speech:
# use a specific program for text to speech - needs to be a full path
# macOS default: say
speech_program: say
Expand All @@ -26,16 +26,16 @@ smol_k8s_lab:
# press f5 to read the element id and selected row of DataTables
on_key_press: true

# enable text to speech
# k9s is a terminal UI dashboard and interface for interacting with Kubernetes
k9s:
# when set to true, if smol-k8s-lab is in interactive mode, it runs k9s
# immediately after the cluster is up and enabled apps have been installed
enabled: false
# default command to run when k9s launches. Defaults to application.argoproj.io
# so that you can view the status of all of your argo apps immediately. This
# default results in running: k9s --command applications.argoproj.io
command: applications.argoproj.io
run_command:
# command to run after smol-k8s-lab tui is done or immediately when running
command: echo 'we did it'
# tell me which terminal you use if you'd like to use split or tab features
terminal: wezterm
# where to run the command, options: same window, new window, new tab,
# split left, split right, split top, split bottom
# if set to "same window", we just run it in the same window after we're
# done the entire smol-k8s-lab cli run
window_behavior: same window

# logging config for the smol-k8s-lab CLI
log:
Expand Down Expand Up @@ -68,7 +68,7 @@ k8s_distros:
enabled: false
# if k8s_distro set to k3s/k3d, you can add an array of extra arguments to pass
# to the k3s install script as a k3s.yaml file. If you enable cilium, we
# automatically pass in flannel-backend: none and disable-network-policy: true
# automatically pass in flannel-backend: none and disable-network-policy: true
k3s_yaml:
# if you enable MetalLB, we automatically add servicelb to the disable list
# enables encryption at rest for Kubernetes secrets
Expand All @@ -87,7 +87,7 @@ k8s_distros:
enabled: true
# if k8s_distro set to k3s/k3d, you can add an array of extra arguments to pass
# to the k3s install script as a k3s.yaml file. if you enable cilium, we
# automatically pass in flannel-backend: none and disable-network-policy: true
# automatically pass in flannel-backend: none and disable-network-policy: true
k3s_yaml:
# if you enable MetalLB, we automatically add servicelb to the disable list
# enables encryption at rest for Kubernetes secrets
Expand Down Expand Up @@ -157,6 +157,8 @@ apps:
hostname: "argocd.test.com"
# which oidc provider to use for Argo CD: defaults to Zitadel
oidc_provider: "zitadel"
# kubernetes cluster to install the k8s app into, defaults to Argo CD default
cluster: https://kubernetes.default.svc
# git repo to install the Argo CD app from
repo: "https://github.com/small-hack/argocd-apps"
# path in the argo repo to point to. Trailing slash very important!
Expand All @@ -170,6 +172,7 @@ apps:
directory_recursion: true
# source repos for Argo CD argo-cd Project (in addition to argo_cd.argo.repo)
project:
name: argo-cd
source_repos:
- https://argoproj.github.io/argo-helm
- https://small-hack.github.io/appset-secret-plugin
Expand Down Expand Up @@ -482,7 +485,7 @@ apps:
kubevirt:
description: |
[link=https://kubevirt.io/]kubevirt[/link] lets you manage virtual machines via Kubernetes.

# default disabled while a helm chart is being actively developed
enabled: false
argo:
Expand All @@ -500,7 +503,7 @@ apps:
directory_recursion: false
# source repos for Argo CD App Project (in addition to argo.repo)
project:
source_repos:
source_repos:
- "https://github.com/small-hack/argocd-apps"
destination:
# automatically includes the app's namespace and argocd's namespace
Expand Down Expand Up @@ -567,7 +570,7 @@ apps:
admin_user: tootadmin
# hostname that users go to in the browser
hostname: ""
# set the local s3 provider for mastodon's public data in one bucket
# set the local s3 provider for mastodon's public data in one bucket
# and private database backups in another. can be minio or seaweedfs
s3_provider: seaweedfs
# how large the backing pvc's capacity should be for minio or seaweedfs
Expand Down Expand Up @@ -609,7 +612,7 @@ apps:
This deploys a matrix synapse server, element (web frontend), and turn server (voice)

smol-k8s-lab supports initialization by creating initial secrets for your:
- matrix, element, and federation hostnames,
- matrix, element, and federation hostnames,
- credentials for: postgresql, admin user, S3 storage, and SMTP

smol-k8s-lab also sets up an OIDC application via Zitadel.
Expand Down
37 changes: 20 additions & 17 deletions .github/smol_k8s_lab_config_k3s.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ smol_k8s_lab:
on_focus: true
# ring the built in terminal bell when something is wrong
on_error: true
text_to_speech:
text_to_speech:
# use a specific program for text to speech - needs to be a full path
# macOS default: say
speech_program: say
Expand All @@ -26,16 +26,16 @@ smol_k8s_lab:
# press f5 to read the element id and selected row of DataTables
on_key_press: true

# enable text to speech
# k9s is a terminal UI dashboard and interface for interacting with Kubernetes
k9s:
# when set to true, if smol-k8s-lab is in interactive mode, it runs k9s
# immediately after the cluster is up and enabled apps have been installed
enabled: false
# default command to run when k9s launches. Defaults to application.argoproj.io
# so that you can view the status of all of your argo apps immediately. This
# default results in running: k9s --command applications.argoproj.io
command: applications.argoproj.io
run_command:
# command to run after smol-k8s-lab tui is done or immediately when running
command: echo 'we did it'
# tell me which terminal you use if you'd like to use split or tab features
terminal: wezterm
# where to run the command, options: same window, new window, new tab,
# split left, split right, split top, split bottom
# if set to "same window", we just run it in the same window after we're
# done the entire smol-k8s-lab cli run
window_behavior: same window

# logging config for the smol-k8s-lab CLI
log:
Expand Down Expand Up @@ -68,7 +68,7 @@ k8s_distros:
enabled: true
# if k8s_distro set to k3s/k3d, you can add an array of extra arguments to pass
# to the k3s install script as a k3s.yaml file. If you enable cilium, we
# automatically pass in flannel-backend: none and disable-network-policy: true
# automatically pass in flannel-backend: none and disable-network-policy: true
k3s_yaml:
# if you enable MetalLB, we automatically add servicelb to the disable list
# enables encryption at rest for Kubernetes secrets
Expand All @@ -87,7 +87,7 @@ k8s_distros:
enabled: false
# if k8s_distro set to k3s/k3d, you can add an array of extra arguments to pass
# to the k3s install script as a k3s.yaml file. if you enable cilium, we
# automatically pass in flannel-backend: none and disable-network-policy: true
# automatically pass in flannel-backend: none and disable-network-policy: true
k3s_yaml:
# if you enable MetalLB, we automatically add servicelb to the disable list
# enables encryption at rest for Kubernetes secrets
Expand Down Expand Up @@ -157,6 +157,8 @@ apps:
hostname: "argocd.test.com"
# which oidc provider to use for Argo CD: defaults to Zitadel
oidc_provider: "zitadel"
# kubernetes cluster to install the k8s app into, defaults to Argo CD default
cluster: https://kubernetes.default.svc
# git repo to install the Argo CD app from
repo: "https://github.com/small-hack/argocd-apps"
# path in the argo repo to point to. Trailing slash very important!
Expand All @@ -170,6 +172,7 @@ apps:
directory_recursion: true
# source repos for Argo CD argo-cd Project (in addition to argo_cd.argo.repo)
project:
name: argo-cd
source_repos:
- https://argoproj.github.io/argo-helm
- https://small-hack.github.io/appset-secret-plugin
Expand Down Expand Up @@ -482,7 +485,7 @@ apps:
kubevirt:
description: |
[link=https://kubevirt.io/]kubevirt[/link] lets you manage virtual machines via Kubernetes.

# default disabled while a helm chart is being actively developed
enabled: false
argo:
Expand All @@ -500,7 +503,7 @@ apps:
directory_recursion: false
# source repos for Argo CD App Project (in addition to argo.repo)
project:
source_repos:
source_repos:
- "https://github.com/small-hack/argocd-apps"
destination:
# automatically includes the app's namespace and argocd's namespace
Expand Down Expand Up @@ -567,7 +570,7 @@ apps:
admin_user: tootadmin
# hostname that users go to in the browser
hostname: ""
# set the local s3 provider for mastodon's public data in one bucket
# set the local s3 provider for mastodon's public data in one bucket
# and private database backups in another. can be minio or seaweedfs
s3_provider: seaweedfs
# how large the backing pvc's capacity should be for minio or seaweedfs
Expand Down Expand Up @@ -609,7 +612,7 @@ apps:
This deploys a matrix synapse server, element (web frontend), and turn server (voice)

smol-k8s-lab supports initialization by creating initial secrets for your:
- matrix, element, and federation hostnames,
- matrix, element, and federation hostnames,
- credentials for: postgresql, admin user, S3 storage, and SMTP

smol-k8s-lab also sets up an OIDC application via Zitadel.
Expand Down
38 changes: 21 additions & 17 deletions .github/smol_k8s_lab_config_kind.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ smol_k8s_lab:
on_focus: true
# ring the built in terminal bell when something is wrong
on_error: true
text_to_speech:
text_to_speech:
# use a specific program for text to speech - needs to be a full path
# macOS default: say
speech_program: say
Expand All @@ -26,16 +26,17 @@ smol_k8s_lab:
# press f5 to read the element id and selected row of DataTables
on_key_press: true

# enable text to speech
# k9s is a terminal UI dashboard and interface for interacting with Kubernetes
k9s:
# when set to true, if smol-k8s-lab is in interactive mode, it runs k9s
# immediately after the cluster is up and enabled apps have been installed
enabled: false
# default command to run when k9s launches. Defaults to application.argoproj.io
# so that you can view the status of all of your argo apps immediately. This
# default results in running: k9s --command applications.argoproj.io
command: applications.argoproj.io
run_command:
# command to run after smol-k8s-lab tui is done or immediately when running
command: echo 'we did it'
# tell me which terminal you use if you'd like to use split or tab features
terminal: wezterm
# where to run the command, options: same window, new window, new tab,
# split left, split right, split top, split bottom
# if set to "same window", we just run it in the same window after we're
# done the entire smol-k8s-lab cli run
window_behavior: same window


# logging config for the smol-k8s-lab CLI
log:
Expand Down Expand Up @@ -68,7 +69,7 @@ k8s_distros:
enabled: false
# if k8s_distro set to k3s/k3d, you can add an array of extra arguments to pass
# to the k3s install script as a k3s.yaml file. If you enable cilium, we
# automatically pass in flannel-backend: none and disable-network-policy: true
# automatically pass in flannel-backend: none and disable-network-policy: true
k3s_yaml:
# if you enable MetalLB, we automatically add servicelb to the disable list
# enables encryption at rest for Kubernetes secrets
Expand All @@ -90,7 +91,7 @@ k8s_distros:
enabled: false
# if k8s_distro set to k3s/k3d, you can add an array of extra arguments to pass
# to the k3s install script as a k3s.yaml file. if you enable cilium, we
# automatically pass in flannel-backend: none and disable-network-policy: true
# automatically pass in flannel-backend: none and disable-network-policy: true
k3s_yaml:
# if you enable MetalLB, we automatically add servicelb to the disable list
# enables encryption at rest for Kubernetes secrets
Expand Down Expand Up @@ -160,6 +161,8 @@ apps:
hostname: "argocd.test.com"
# which oidc provider to use for Argo CD: defaults to Zitadel
oidc_provider: "zitadel"
# kubernetes cluster to install the k8s app into, defaults to Argo CD default
cluster: https://kubernetes.default.svc
# git repo to install the Argo CD app from
repo: "https://github.com/small-hack/argocd-apps"
# path in the argo repo to point to. Trailing slash very important!
Expand All @@ -173,6 +176,7 @@ apps:
directory_recursion: true
# source repos for Argo CD argo-cd Project (in addition to argo_cd.argo.repo)
project:
name: argo-cd
source_repos:
- https://argoproj.github.io/argo-helm
- https://small-hack.github.io/appset-secret-plugin
Expand Down Expand Up @@ -485,7 +489,7 @@ apps:
kubevirt:
description: |
[link=https://kubevirt.io/]kubevirt[/link] lets you manage virtual machines via Kubernetes.

# default disabled while a helm chart is being actively developed
enabled: false
argo:
Expand All @@ -503,7 +507,7 @@ apps:
directory_recursion: false
# source repos for Argo CD App Project (in addition to argo.repo)
project:
source_repos:
source_repos:
- "https://github.com/small-hack/argocd-apps"
destination:
# automatically includes the app's namespace and argocd's namespace
Expand Down Expand Up @@ -570,7 +574,7 @@ apps:
admin_user: tootadmin
# hostname that users go to in the browser
hostname: ""
# set the local s3 provider for mastodon's public data in one bucket
# set the local s3 provider for mastodon's public data in one bucket
# and private database backups in another. can be minio or seaweedfs
s3_provider: seaweedfs
# how large the backing pvc's capacity should be for minio or seaweedfs
Expand Down Expand Up @@ -612,7 +616,7 @@ apps:
This deploys a matrix synapse server, element (web frontend), and turn server (voice)

smol-k8s-lab supports initialization by creating initial secrets for your:
- matrix, element, and federation hostnames,
- matrix, element, and federation hostnames,
- credentials for: postgresql, admin user, S3 storage, and SMTP

smol-k8s-lab also sets up an OIDC application via Zitadel.
Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,23 @@ jobs:
python_version: "3.12.0"
pypi_token: ${{ secrets.DEPLOY_FROM_GITHUB_SMOL_K8S_LAB }}

# not ready to do this until we have self-hosted runners
# - name: Generate Sound Files
# run: |
# poetry run smol-tts -l en --tar
# poetry run smol-tts -l nl --tar

- name: Create an appimage for smol-k8s-lab for use with brew
# see https://github.com/AppImageCommunity/pkg2appimage for more info
run: |
wget -c $(wget -q https://api.github.com/repos/AppImageCommunity/pkg2appimage/releases -O - | grep "pkg2appimage-.*-x86_64.AppImage" | grep browser_download_url | head -n 1 | cut -d '"' -f 4)
chmod +x ./pkg2appimage-*.AppImage
./pkg2appimage-*.AppImage .github/smol-k8s-lab-appimage.yaml

- name: Create a Release on GitHub
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
generate_release_notes: true
files: |
smol-k8s-lab.AppImage
Loading