Commit Graph

3330 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
01ec08fd79 refactor: simplify port string 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
2bee070e78 chore: unify context handling 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
2619c3db08 fix: ensure critical addons come up when the node is tainted
Rather than taint on `node-role.kubernetes.io/master=true:NoSchedule`, we check for `CriticalAddonsOnly=true:NoSchedule` and taint on that.
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
b64c3a1859 chore: add missing import 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
3d6225406d chore: rename input variable 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
3ddfd2bc7d feat: install cert-manager 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
f7acbb1e7c refactor: place all required manifests in a single location
This will make it easier for us to apply the installs.
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
e4a74366ba chore: move around structs to be closer to the functions using them 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
309256955d feat: label the k3s server nodes as capable of fronting traffic
The idea here is that only k3s nodes can/should handle certificate requests. While users may wish to force these onto dedicated lb nodes in the future, at least for now, separating app workloads with routing seems like an okay trade-off.
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
0730647af7 feat: implement :cluster-list and :cluster-remove
These - and the existing :cluster-add command - do not require root.
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
d494e01c7b chore: update error message 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
33a3e6a2fc chore: drop unused node label 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
3375474a4c feat: copy the registry file to all remote hosts 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
a354210f67 fix: treat the registry file as a pointer 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
09ca1f1299 fix: correct issue with file copygin 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
78bc2849cb feat: add longhorn 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
34b06d488f fix: add missing makefile and dokku entries for uninstall and cluster-add 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
a1428ceb74 fix: do not set a static token and generate one as needed 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
69e9511666 feat: implement cluster joining for server and worker nodes
Different options get applied to each depending on what is needed for the role.

This also updates how we initialize the cluster to better support how metrics exposure and cross-server networking.
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
af3009f0da chore: bump go modules 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
632b26905a feat: use common labels instead of custom ones 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
9cd0644883 refactor: fix issues with pod entering
- ensure we always wait for the specific pod we want to be ready
- enter the default container if none is specified
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
5c4e1dfc39 fix: do not attempt to uninstall a chart that isn't available 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
86da40ba19 feat: add default-container annotation everywhere 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
cee47b4836 fix: do not try and override image repo 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
4650585ded fix: pull pass from env var 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
27b82f77a3 fix: drop duplicate 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
5449c35dbe fix: correct path to registry config and update go.mod 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
e13561ec4d refactor: move registry path to const 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
8762bede07 feat: implement healthcheck support 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
da4771e6e4 fix: uninstall in foreground 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
7bce908c2d fix: properly set the command for herokuish apps 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
cb62ab02f4 fix: add missing post-deploy triggers 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
c2b78bb2d7 feat: implement run:list 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
e4855941fe feat: allow for stable cron names
The cron id is too long to store in the cronjob, so we generate a short identifier and look that up each time on deploy to ensure stability across time.
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
297853781f refactor: move all k8s code behind client
Also fix an issue where attaching to pods fails in rare cases
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
1c5505f78b refactor: move functions around and ensure we respect local versions of golang dependencies 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
9d27ff39da refactor: only delete the helm chart in the scheduler-post-delete hook 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
bb8fd39e80 chore: drop extra debugging for one-off jobs 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
277df036e9 feat: implement default resource limits for cron tasks 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
0127f836fa feat: implement cron jobs 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
3f7e1d161a chore: remove unused docker args code 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
8b8444fb1f feat: implement run and run:detached
This utilizes a Kubernetes Job to start a pod in order to take advantage of completed Job cleanup in Kubernetes. It also properly handles interactivity by ensuring the container has a TTY.

Note that there is currently no provision for parsing docker arguments and translating them into their Kubernetes equivalents.
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
6b85374857 feat: implement scheduler-k3s:show-config 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
1e11ec3911 fix: setup all port maps correctly on service 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
2911218816 feat: add an annotations everywhere to ensure folks know what is managed by dokku 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
dfa7d0f78c feat: mark created namespaces as managed by dokku 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
46b6f446fd feat: implement ps:stop for k3s scheduler
This simply scales down processes.
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
3137c457fa fix: kill log tailing properly on ctrl+c 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
57b62f51d3 refactor: update log streaming so plugin triggers don't get abandoned on ctrl-c
We now propagate a cancellable context object on a new plugin trigger call that allows for signals to work as expected.
2024-01-23 03:00:27 -05:00