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

[Feature]: Helm chart wish list #34216

Open
1 task done
dsanders1234 opened this issue Jun 12, 2024 · 1 comment
Open
1 task done

[Feature]: Helm chart wish list #34216

dsanders1234 opened this issue Jun 12, 2024 · 1 comment
Assignees
Labels
Enhancement New feature or request

Comments

@dsanders1234
Copy link

dsanders1234 commented Jun 12, 2024

Is there an existing issue for this?

  • I have searched the existing issues

Summary

Helm charts should not assume "high availability" is desired. We deploy to kubernetes for dev and production. For dev, we keep it simple, whereas for production, we add replicas, etc. Kubernetes is just a deployment platform that has flexibility and elasticity.

We had to switch back to deploying the docker-compose all-in-one on ec2, as the helm chart was not ready for prime time.

Here are my wish lists for the helm chart:

  1. The helm chart should ideally deploy a Deployment, not a StatefulSet. There's rarely a need to store data using local store when we have databases. We run our databases/redis on ec2, external to kubernetes. StatefulSets add complexity to managing kubernetes.
  2. Do not assume that the customer wants to run a HorizontalPodAutoscaler just because they want to run as a Deployment. Give the option to turn autoscaling on and configure the autoscaler separately from running as a Deployment.
  3. Make sure that it works with external database / redis. There's no need to have multiple databases (mongo and postgres), that adds complexity to backup and maintenance routines. Ideally, use redis for session management, database for storage, and these are run externally. (As a side note, the app should also not generally care about the version of database or redis, otherwise the customer has to run multiple database servers and redis servers to support their multiple apps.)
  4. Either the credentials are in the database URL or they are not. Don't have a username/password config and also expect username password to be in the URL. Stick to one or the other. Don't try to parse a database URL to get credentials!
  5. Don't force the database to be run in a specific "high availability" mode (i.e. MongoDB replicaset as an example).
  6. Allow extraVolumes and extraVolumeMounts. This allows for things like "secret store csi driver" to work, even if the mounted files aren't used for anything.
  7. Allow the configuration to come from existing (external to helm-chart) secrets and config maps using the same flexibility as envFrom on a Deployment. I should be able to get some settings from one secret, others from another, choose the key to get it from, and also set some of the settings directly in values.yaml. We use GitOps and do not wish to store secrets in the values.yaml, and we use the secrets store csi driver to get other secrets.
  8. Do not assume that the user uses a specific technology like "ExternalSecrets".
  9. Make sure that technologies like KeyCloak do not add "yet another database technology" to the stack and it just "works" once you setup the optional SSO options in values.yaml
  10. Make sure error messages are easy to figure out. It isn't obvious that something couldn't log into the database. I see a lot of noise and Temporal messages that are confusing, then the pod just shuts down.

Why should this be worked on?

The helm chart is basically unusable by Enterprises

@dsanders1234 dsanders1234 added the Enhancement New feature or request label Jun 12, 2024
@maximemoreillon
Copy link

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants