Jose Diaz-Gonzalez
f90a4061c0
feat: create SecurityContext for k3s scheduler from docker-options
...
Closes #7664
2025-09-12 18:09:33 -04:00
Jose Diaz-Gonzalez
65dd4bc1e0
feat: set shm-size volume/volumeMounts on kubernetes deployments
2025-03-06 22:59:35 -05:00
Jose Diaz-Gonzalez
50f8099ebb
fix: allow autoscaling config to have zero min replicas
2024-11-15 23:11:54 -05:00
Jose Diaz-Gonzalez
b98863b6a7
feat: add support for the keda-http-add-on
...
Externally, it is treated the same as any other scaling trigger, but requires that the chart be installed in order for it to be supported.
2024-11-13 03:29:26 -05:00
Jose Diaz-Gonzalez
fd2cfe8080
fix: correctly pull the deployment id from an app's helm values when executing dokku run under the k3s scheduler
...
- Fix the internal identifier of deployment_id -> deployment_id
- Add tests for both enter and run.
2024-11-04 14:44:25 -05:00
Jose Diaz-Gonzalez
ac2ea7597e
fix: use correct variable name
2024-03-12 06:11:28 -04:00
Jose Diaz-Gonzalez
d4b484a33a
fix: replace existing port-map ingress objects with domain ingress objects
...
Domains cannot be reused across ingress objects, and port maps are a function of a domain, so the inversion here makes most sense (at the cost of some downtime when migrating.
2024-03-12 03:55:40 -04:00
Jose Diaz-Gonzalez
7c58bbf792
feat: setup cluster trigger authentication objects
2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
25ad302ed2
refactor: use enum to represent authentication type
2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
c0f01c58d6
feat: add initial support for interacting with ClusterTriggerAuthentication objects
...
These will be provisioned to the keda namespace and referenced by Triggers if they exist (as a fallback to app-specific values).
2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
94125ce787
chore: make secrets optional
2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
042495bcd6
fix: ensure keda auth secrets are written out
2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
4ddd341184
feat: add initial support for keda authentication
2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
46f11cb239
feat: implement replacements
2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
b7ff696507
feat: add initial support for injecting keda addons
2024-03-06 03:39:11 -05:00
Jose Diaz-Gonzalez
5e53207009
fix: ensure we pass global labels
2024-03-01 17:42:24 -05:00
Jose Diaz-Gonzalez
d8946edf91
feat: add support for manipulating labels
...
Closes #6625
2024-03-01 17:42:24 -05:00
Jose Diaz-Gonzalez
1ae2df52f5
fix: use image pull secrets instead of registries.yaml to reference private repositories
...
While this will now more or less require a local docker login - which can be overridden by setting the image-pull-secrets property - this ensures every deploy has a valid context.
One annoying thing is that the secret is per-app vs global, meaning that if the secret must be rotated, all apps need to be redeployed. A future change can fix that by deploying a global secret, or if folks really desire, this can be done by setting the image-pull-secrets property on the app/globally.
2024-02-12 17:15:37 -05:00
Jose Diaz-Gonzalez
bfccf60a37
refactor: simplify tls handling by always redirecting
2024-02-12 01:31:39 -05:00
Jose Diaz-Gonzalez
1af36b609d
feat: add resource-specific annotations to ingress objects
2024-02-06 22:12:41 -05:00
Jose Diaz-Gonzalez
f5f583b12b
feat: add support for specifying annotations
...
As the command contains a colon, it must be handled in the commands binary as opposed to subcommands.
Also include a simple bats test.
2024-02-06 13:54:53 -05:00
Jose Diaz-Gonzalez
d02c04c2a5
feat: add support for app-specific service accounts when deploying via k3s
...
Service accounts must still be bound to a role, but this ensures apps do not get access to the default service account.
2024-02-05 16:47:57 -05:00
Jose Diaz-Gonzalez
029e1f5f48
feat: add the dokku logo as the chart icon
2024-01-26 06:55:46 -05:00
Jose Diaz-Gonzalez
f5182aa553
feat: allow specifying an ingress class via chart value
...
While Dokku currently only supports traefik, providing this setting will allow swapping out the ingress to another fairly easily.
2024-01-26 03:23:34 -05:00
Jose Diaz-Gonzalez
6707e5f1eb
feat: add redirect to https when both an http and https port mapping match
2024-01-23 09:45:20 -05:00
Jose Diaz-Gonzalez
4a7db5ce24
feat: apply the cluster issuers on every app deploy
...
This ensures we can always get certificates regardless of what app gets deployed with whatever configuration.
2024-01-23 07:25:03 -05:00
Jose Diaz-Gonzalez
c8f5ad9029
fix: correct issues in certificate generation
2024-01-23 06:18:25 -05:00
Jose Diaz-Gonzalez
1e559f20e5
refactor: use helper function to get process resources
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
2336063ca2
refactor: move templating into pseudo-generated helm chart
...
The previous mechanism of constructing the helm chart was pretty obnoxious due to needing to have some things in the object and some in template files that were appended afterwards. This change simplifies that by using template files per type with minimal replacements.
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
29760e8ecd
feat: add support to tls for ingress-route
...
If tls is enabled on the process, we create add the https entrypoint and also add the requisite tls secret-name
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
63a6e9087f
feat: create tls certificate if tls is enabled and the app has domains
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
b0485495e4
refactor: make domains a helm value
...
This will allow updating domains on the fly
2024-01-23 03:00:27 -05:00
Jose Diaz-Gonzalez
01ec08fd79
refactor: simplify port string
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
e4a74366ba
chore: move around structs to be closer to the functions using them
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
86da40ba19
feat: add default-container annotation everywhere
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
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
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
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
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
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