Commit Graph

3299 Commits

Author SHA1 Message Date
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
Jose Diaz-Gonzalez
9c891563c3 feat: implement logs command for kubernetes 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
c2d1f80bc4 feat: implement app deletion 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
737f54a5c7 feat: implement dokku enter for k8s scheduler 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
6fb03eda4e feat: implement most of deployments
The big feature missing from deployments today is healthchecks, which require extra parsing of the app.json format since the healthchecks there aren't immediately serializable to kubernetes deployment healthchecks.

Other smaller missing functionality from the existing OSS kubernetes scheduler are:

- The ability to set custom pod annotations
- The ability to set custom deployment annotations
- The ability to mount volumes

Exposing these pieces of functionality will come at a later date, if at all.
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
6c234c66a3 fix: guard the initialize call if k3s is already installed 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
7101d1bf7b fix: close the file before attempting to write it
Also remove the unnecessary sleep call
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
f377c23403 feat: setup k3s registry automatically on registry login 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
65d840e4bc chore: stub out post-registry-login 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
ec538ce1c5 feat: implement scheduler-k3s:initialize 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
d6824c44c7 fix: correct plugin name 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
523d7bcf9e chore: bump golang.org/x/sync from 0.5.0 to 0.6.0 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
3821d22b93 chore: write go.sum file 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
a80c73fb2c feat: create skeleton of k3s plugin 2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
7381cf74c6 feat: add support for custom user namespaces when creating persistent storage directories
Closes #3454
2024-01-23 02:25:11 -05:00
Jose Diaz-Gonzalez
6908177095 feat: add support for multierror when exiting triggers 2024-01-20 06:57:48 -05:00
Jose Diaz-Gonzalez
b6d3749f51 feat: add sftp implementation 2024-01-20 05:26:37 -05:00
Jose Diaz-Gonzalez
0cf26ac994 feat: add wrappers for exec and ssh commands 2024-01-20 05:05:35 -05:00
Jose Diaz-Gonzalez
83b0cf4065 fix: always set -- on docker exec commands internally to avoid parsing flags on specified commands 2024-01-19 20:02:20 -05:00
Jose Diaz-Gonzalez
1172ac4653 Merge pull request #6468 from dokku/global-proxy-type
Implement global support for setting proxy type
2024-01-19 08:39:46 -05:00
Jose Diaz-Gonzalez
dc39e5c0f3 Merge pull request #6467 from dokku/registry-repo-template
Add ability to customize the registry repo with a template
2024-01-19 08:39:01 -05:00
Jose Diaz-Gonzalez
2e0f1ac89a Merge pull request #6469 from dokku/git-deploy-key
Allow generating an ssh deploy key via the git plugin
2024-01-19 07:24:13 -05:00
Jose Diaz-Gonzalez
4fc3ab4b7a fix: reverse the expected proxy type 2024-01-19 07:15:36 -05:00
Jose Diaz-Gonzalez
874f2dfaf4 feat: set the platform flag in order to run amd64 images on arm64 deploy targets
This allows folks to use herokuish, pack, and lambda built-images on arm64 servers.

Closes #6312
2024-01-19 06:37:48 -05:00
Jose Diaz-Gonzalez
7fbb86093b feat: implement global support for setting proxy type 2024-01-19 06:31:19 -05:00
Jose Diaz-Gonzalez
ec65d97139 feat: allow generating an ssh deploy key via the git plugin
While this might not seem super intuitive, the key is mostly related to git management, not the ssh-keys we currently use to add/remove access to push to dokku.
2024-01-19 06:30:30 -05:00
Jose Diaz-Gonzalez
214dc9b69a feat: add ability to customize the registry repo with a template 2024-01-19 06:29:32 -05:00
Jose Diaz-Gonzalez
69e79b227d fix: use correct key for migrating global scheduler configuration on upgrade 2024-01-19 06:24:18 -05:00
Jose Diaz-Gonzalez
68fd65b25f feat: create helper function for exposing a docker image's working directory 2024-01-18 22:38:37 -05:00
Jose Diaz-Gonzalez
94926d141f refactor: use exported function from appjson module instead of manually parsing
Also add some missing docblocks.
2024-01-18 22:35:12 -05:00
Jose Diaz-Gonzalez
2acc492906 chore: ensure ps:stop has a proper cli header 2024-01-18 22:31:41 -05:00
Jose Diaz-Gonzalez
98d0a95ae6 feat: add a post-registry-login trigger
This allows other plugins to execute commands after a registry has been authenticated against.
2024-01-18 22:25:23 -05:00