-
Notifications
You must be signed in to change notification settings - Fork 459
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
Document boolean behaviour of helm .secrets.existingSecret #2032
Document boolean behaviour of helm .secrets.existingSecret #2032
Conversation
…ng Kubernetes secret to set environment variables for the Tenant. The existing Kubernetes secret name must be placed under .tenant.configuration.name e.g. existing-minio-env-configuration #
Fixes #1795 |
Fixes #718 |
I still find it conterintuitive, rather that try to justify odd named fields we could rework them in a way that is a bit less complicated, allow me to share what I think it we should do: Rework fields
operator/helm/tenant/templates/tenant-configuration.yaml Lines 1 to 11 in 3359d52
Backward compatibilityOf course doing this change from one version to another would break the installs, the rollout should be in 2 steps: Step 1 Anounce changes
{{- if .Values.secrets.existingSecret}}
{{- printf "WARNING: '.secrets.existingSecret' is deprecated and will be removed in next minor release (ie: v5.1.0)" | warn }}
{{- end }} {- if .Values.secrets }}
{{- printf "WARNING: 'secrets' is deprecated and will be removed in next minor release (ie: v5.1.0). Please use 'tenant.configSecret' instead." | warn }}
{{- end }} Step 2 Slowly rollout breaking changesCreate a minor release with the breaking changes: I would like a review from @dvaldivia, @feorlen and @ravindk89, what's your thoughs? |
@pjuarezd I truly appreciate the time you spent indicating a better way to document this. |
How much time do you think it would be between deprecation and removal? Would definitely need to alert everyone (in the readme, PR/commit message, plus Slack) so when customers ask we have something ready to tell them. |
…Secret.existingSecret, instead of string .secrets.existingSecret. Current functionality uses counterintuitively the existence of string .secrets.existingSecret when creating a secret with MINIO_ROOT_USER and MINIO_ROOT_PASSWORD, versus using an existing secret with these and similar environment variables. Proposed functionality uses a clear boolean .tenant.configSecret.existingSecret instead.
I will bring this up again internally. |
Documentation to be updated when:
The exact time to the next minor release is unknown. |
thank @allanrogerr, checking |
A note - with this setup, lets say we have a user who wants to manage secrets through something like hashicorp vault, where the external secret manager stores the how does the user specify that here? would it just be tenant:
configSecret: my-externally-managed-secret Where the secret contents matches our requirements of |
operator/helm/tenant/values.yaml Lines 85 to 86 in 3359d52
We also have this field |
@ravindk89 This can be done currently using the setups in: https://github.com/allanrogerr/public/wiki/operator-2032#test-2 |
In this particular usecase i.e. creating a tenant using helm, and not the operator ui:
|
Fixes #1795 |
Summary
Current functionality
If
.secrets.existingSecret
is set, then enable the usage of an existing Kubernetes secret to set environment variables for the Tenant.The existing Kubernetes secret name must be placed under .tenant.configuration.name e.g.
existing-minio-env-configuration
.Proposed functionality
Refactor tenant-configuration.yaml to consider boolean .tenant.configSecret.existingSecret, instead of string .secrets.existingSecret.
Current functionality uses counterintuitively the existence of string .secrets.existingSecret when creating a secret with MINIO_ROOT_USER and MINIO_ROOT_PASSWORD, versus using an existing secret with these and similar environment variables.
Proposed functionality:
Tests. See https://github.com/allanrogerr/public/wiki/operator-2032
Summary
Tests 1-4: Regression tests of current functionality
Tests 5-9: Integration tests of proposed functionality