-
Notifications
You must be signed in to change notification settings - Fork 60
Proposal helmfile for deployment #7879
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
base: devel
Are you sure you want to change the base?
Conversation
156664a
to
16d5d30
Compare
Core Meeting DecisionConcept approved! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As discussed in the meeting, if this works well it'd be good to apply the same mechanism to all our deployments for consistency.
helm repo add fluent https://fluent.github.io/helm-charts | ||
helm repo update | ||
``` | ||
You need the helmfile in addition to kubectl and helm. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instructions or a link on how to install the helmfile command might be useful. But maybe the wiki is a better place for that.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I can link the action in the wiki as soon as this is merged:
https://github.com/ecamp/ecamp3/pull/7879/files/16d5d30aa3235f26f0be97ad800d2a23d6c78800#diff-a6c41caf93cca9a01ad670187f58916de37441dec13c5dfb1b91252a7885c947
fi | ||
|
||
envsubst < $SCRIPT_DIR/values.yaml > $SCRIPT_DIR/values.out.yaml | ||
echo "ELASTIC_NODE_STORAGE_SIZE can not be automatically enlarged, see: https://github.com/kubernetes/enhancements/pull/4651 and https://github.com/kubernetes/kubernetes/issues/68737" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So now we always output this warning, but what can be done about it?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is just a warning that you hopefully find if you accidentally changed the size and now the statefulset does not come up again.
@@ -2,8 +2,8 @@ fluent-operator: | |||
containerRuntime: containerd | |||
operator: | |||
annotations: | |||
trigger-recreate: ${RANDOM_STRING} | |||
container: | |||
trigger-recreate: {{ exec "uuidgen" (list) }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand any of the changes in this file. Care to explain?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The operator is implemented well enough to survive in dev and to recreate the fluentd and fluentbits when we deploy.
In prod in starts to crashloop after a while.
If we deploy then, the fluentbits and fluentd don't get recreated.
This is still a hack to recreate the deployment for the operator after the deployment.
Now everything is in one place, before we created a random string in shell and then injected that with envsubst.
Since a long time i am unhappy with the the way we set the variables in our helm deployment for ecamp3.
e.g.:
The problems:
The cons against helmfile and "changing something"
My vision:
We have a deploy script for all resources we deploy (currently all with helm, and then with helmfile if needed)
which can be run locally to develop.
The same script is executed for all environments, so it can be tested already in development and in the feature branch deployment.
The script has a diff mode where you just see what would be changed, so have the ci jobs.
We don't run the tests for the staging and prod deployment, they already ran on devel.
To add a new configurable part to the helmfile you just need to add it in the helmfile, you don't have to repeat the yamlPath in the CI script.
Default values:
the default values are if possible:
If the dev values differ from prod
then the default value for prod is in the values file template.
For dev, feature branch deployments and staging the values to change have to be overridden.
(it would be possible to have multiple sets of default values, but i don't think we need that.)
This here is just the example for ecamp3-logging