Jose Diaz-Gonzalez
ed0ba7072f
refactor: check to see if a deployment-specific image pull secret exists before utilizing it.
2024-12-11 09:23:44 -05:00
Tasos Maschalidis
aa51c37774
Properly resolve imagePullSecrets from app and deploymentID if relevant property does not exist
2024-12-10 14:29:38 +02: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
50244bf8ea
chore: drop the pod name from stdout output
...
This adds unexpected output to the command, making parsing more difficult.
2024-11-04 14:42:53 -05:00
Jose Diaz-Gonzalez
ec41dd2e70
refactor: output logs for completed containers
...
Previously, a container that exited immediately would just show an error message, which is probably not what we want.
If the pod has exited, we will display the logs on stdout for the user and then exit appropriately.
This change also refactors how log streaming works so that we respect exiting when the stream has no content (such as when the container has exited). Previously, the container would just hang around forever due to not being properly canceled. Due to this refactor, the prefix is now split out into a separate writer.
2024-11-04 14:41:42 -05:00
Jose Diaz-Gonzalez
adffab13d9
fix: correctly wait for the pod to be ready
2024-11-04 14:38:06 -05:00
Jose Diaz-Gonzalez
c3a573229d
refactor: execute one-off commands with DOKKU_APP_SHELL as the initial command
...
This commit changes the launched pod to use the configured DOKKU_APP_SHELL - default /bin/bash - to launch processes. Without this, if a non-interactive process was executed and did not immediately exit, it was possible for that process to launch twice - once when the pod started, and once when entering the pod. Ideally we know whether the process is interactive or not, but this isn't always possible when running under a tty (non-tty == non-interactive). As such, this also removes the ability to launch one-off containers that do not have a configured shell in the container, but this is better than attempting to run commands twice.
2024-11-04 14:29:34 -05:00
Tasos Maschalidis
774fb546ef
Remove prefixing releaseName with 'dokku-' in UninstallChart and GetValues calls in scheduler-k3s/triggers.go
2024-10-30 11:47:15 +02:00
Jose Diaz-Gonzalez
90e8cac12f
feat: implement nginx:show-config for k3s plugin
...
This allows users to see what nginx configs are in use for their applications.
Closes #7291
2024-10-21 22:09:09 -04:00
Jose Diaz-Gonzalez
51b951643b
fix: respect the exit code and pass flags correctly when tailing nginx logs on k3s
2024-10-21 21:51:37 -04:00
Jose Diaz-Gonzalez
526ea43ae4
fix: tail the correct container in the ingress-nginx pod
2024-10-21 20:37:03 -04:00
Jose Diaz-Gonzalez
611006af73
feat: add support for non-local nginx implementations
...
If the scheduler is not docker-local, we will assume that a separate plugin trigger will pull access/error logs on our behalf. For k3s, the naive implementation is to pull logs from a single container (multiple ingress-nginx pods will be supported in a future release).
Closes #7268
2024-10-17 00:18:24 -04:00
Jose Diaz-Gonzalez
4397533fd7
fix: implement missing scheduler-app-status trigger in k3s scheduler plugin
2024-04-04 22:14:39 -04:00
Jose Diaz-Gonzalez
bb5ab0a777
refactor: use CallPlugnTrigger instead of PlugnTrigger
...
Refs #6422
2024-03-14 03:11:37 -04:00
Jose Diaz-Gonzalez
68a280e0b6
Merge pull request #6712 from dokku/6422-remove-plugin-trigger-output
...
Use CallPlugnTrigger instead of PlugnTriggerOutput
2024-03-14 01:53:38 -04:00
Jose Diaz-Gonzalez
cdff4ae867
refactor: use CallPlugnTrigger instead of PlugnTriggerOutput
...
Refs #6422
2024-03-14 01:18:28 -04:00
Jose Diaz-Gonzalez
f34fd277b3
refactor: use CallPlugnTrigger instead of PlugnTriggerOutputAsString
...
Refs #6422
2024-03-14 00:46:55 -04:00
Jose Diaz-Gonzalez
d2b167d6ad
Merge pull request #6681 from dokku/k3s-ingress-per-domain
...
Migrate to single ingress per app/domain combination
2024-03-12 22:22:45 -04:00
Jose Diaz-Gonzalez
c840fc5f9e
feat: wait until helm charts are installed before marking a deploy as failed or completed
...
This ensures applications are actually up vs giving a false sense of security to users about the state of their applications.
2024-03-12 08:39:22 -04:00
Jose Diaz-Gonzalez
77d9594c09
fix: use annotation to check for ingress method
2024-03-12 07:57:20 -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
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
f23cdffe49
feat: associate matching authentication info to a given autoscaler
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
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
7a5bd7ee0f
refactor: use a helper function for printing out both labels and annotations
2024-03-01 17:42:24 -05:00
Jose Diaz-Gonzalez
377cfc7f59
refactor: only apply the cluster issuers helm chart when setting properties
...
Otherwise, we're constantly re-installing the same helm chart during deploys, leading to longer deploys.
2024-02-28 17:16:32 -05:00
Jose Diaz-Gonzalez
7c376d3e6d
refactor: rename image pull secrets to standardize on secret naming pattern
2024-02-27 18:25:16 -05:00
Jose Diaz-Gonzalez
ab674072bc
fix: use smaller reference to image pull secrets in secret naming
...
This fixes an issue where the secret name is too long in tests where the generated test app name includes a uuid.
2024-02-25 14:00:28 -05:00
Jose Diaz-Gonzalez
8670dbab78
fix: ignore case where k3s isn't installed anymore when stopping services
2024-02-22 07:54:32 -05:00
Jose Diaz-Gonzalez
23fe19faaa
fix: bypass deletion error if k3s is the configured scheduler and it isn't installed
2024-02-22 07:42:15 -05:00
Jose Diaz-Gonzalez
72067fcfd2
feat: add ability for users to specify alternative kubeconfig and kubecontext
...
This will provide the possibility for users to talk to existing kubernetes clusters, thereby removing one of the biggest reasons for having the old scheduler-kubernetes plugin around.
2024-02-22 07:42:15 -05:00
Jose Diaz-Gonzalez
3c6cc68086
refactor: capture output by default
...
This is almost certainly the correct default for Dokku. While it's a BC break and might cause an increase in memory usage, the api is mostly internal and therefore this is safe to use.
2024-02-12 20:28:31 -05:00
Jose Diaz-Gonzalez
047a3c00f5
chore: remove default false values when calling CallExecCommand
2024-02-12 20:07:43 -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
abbc13cb85
fix: ensure the ingress class is properly set for certificate usage
...
Without this, switching to nginx ingress fails as the cluster issuer isn't properly configured
2024-02-12 01:31:39 -05:00
Jose Diaz-Gonzalez
433eb26f3c
feat: always skip the https ingress/ingress-route/deployment port entry if there is a corresponding http entry
...
Also inject the corresponding entries as necessary
2024-02-12 01:31:39 -05:00
Jose Diaz-Gonzalez
bfccf60a37
refactor: simplify tls handling by always redirecting
2024-02-12 01:31:39 -05:00
Jose Diaz-Gonzalez
980979ef87
feat: properly handle nginx annotation merging
2024-02-06 22:48:22 -05:00
Jose Diaz-Gonzalez
416a119904
feat: pull nginx properties as ingress annotations
2024-02-06 22:12:54 -05:00
Jose Diaz-Gonzalez
5674a29211
feat: add ability to use ingress-nginx for routing instead of traefik
2024-02-06 21:19:51 -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
96e79487b9
fix: skip app stop/delete when k3s is not installed
2024-02-06 04:38:04 -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