-
Notifications
You must be signed in to change notification settings - Fork 891
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
Replace Deployment with StatefulSet #33
Replace Deployment with StatefulSet #33
Conversation
Migrated from helm/charts#23126. |
28bb3c4
to
d031188
Compare
I would rather not do this in a minor update, but we could include it for #41 |
994a9f3
to
07adc5a
Compare
Signed-off-by: Dylan Piergies <[email protected]>
07adc5a
to
01059bb
Compare
+1 any update? |
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.
For me this looks good. I just need to do some testing and would love to get feedback from other maintainers as well.
As 3.0.0 is a breaking change we could also consider use volumeClaimTemplates.
Any idea on how a migration path could look like. Could we support users with that?
While I get moving to a Going beyond horizontal scalability considerations (since Jenkins doesn't scale horizontally), the arguments for Both of these issues can be addressed via chart configuration when using Other considerations...
Anything else I should be considering? |
@torstenwalter As this PR currently stands, there's no migration needed... the PVC provisioned in the chart can be used as-is. If we were to switch to using a
Whilst use of the
Moving to a
As things currently stand, we are still using the PVC defined in |
Thanks for the detailed explanation. I am in favor of using a StatefulSet and keeping the existing PVC. I've seen quite often that Jenkins could not be started as the PVC was still mounted at a different node @wmcdona89 What's your opinion? |
@dylanpiergies thanks for the detailed response!
I see...I guess I've been fortunate to have never been bitten by this (or at least not in recent memory)
Ah...that's right. Since we're not using My remaining reservations are only with |
@torstenwalter @wmcdona89 Once burned... the first time I encountered the deadlock situation (it was a database of some sort, IIRC), I took some time to properly research and understand the various controller resources and their use cases. I've never personally used the Anyway, I digress... I don't really have any strong opinions on using In any case, if we were to support |
@dylanpiergies Thank you for this! It's a big step forward to improve this chart. |
* Chart uses StatefulSet instead of Deployment * XML configuration was dropped * offending terms have been removed * values have been renamed and re-ordered to make it easier to use * already deprecated items got removed * chart migrated to helm 3.0.0 List of contributions: - Dylan Piergies: Replace Deployment with StatefulSet #33 - Aaron McDonald: move kubernetes plugin configuration under agent #106 - holmesb: Adding prometheus \ metrics guidance #78 Closes #78 Co-authored-by: Aaron McDonald <[email protected]> Co-authored-by: Dylan Piergies [email protected] Co-authored-by: holmesb <[email protected]> Signed-off-by: Torsten Walter <[email protected]>
* Chart uses StatefulSet instead of Deployment * XML configuration was dropped * offending terms have been removed * values have been renamed and re-ordered to make it easier to use * already deprecated items got removed * chart migrated to helm 3.0.0 * rename containers (#155) * Configure admin user via configuration as code (#158) * admin username and password are no longer exposed as environment variables * admin password is not modified on helm updates instead the values from the existing secret is re-used * default length of admin password was increased * renamed useSecurity to adminSecret as disabling security feels odd and it's not what this flag does. * Check usage of deprecated imageTag (#161) * Remove whitespace when not rendering helm.sh/chart label (#160) Before: ``` kind: PersistentVolumeClaim apiVersion: v1 metadata: name: RELEASE-NAME-jenkins namespace: cockpit labels: "app.kubernetes.io/name": 'jenkins' "app.kubernetes.io/managed-by": "Helm" "app.kubernetes.io/instance": "RELEASE-NAME" "app.kubernetes.io/component": "jenkins-controller" ``` After: ``` kind: PersistentVolumeClaim apiVersion: v1 metadata: name: RELEASE-NAME-jenkins namespace: cockpit labels: "app.kubernetes.io/name": 'jenkins' "app.kubernetes.io/managed-by": "Helm" "app.kubernetes.io/instance": "RELEASE-NAME" "app.kubernetes.io/component": "jenkins-controller" ``` List of contributions: - Dylan Piergies: Replace Deployment with StatefulSet #33 - Aaron McDonald: move kubernetes plugin configuration under agent #106 - holmesb: Adding prometheus \ metrics guidance #78 - Florian Buchmeier: Updated UI tests to use official BATS image since dduportal/bats:0.4.0 is still using docker manifest v1 and thus is deprecated. (#157) Closes #78 Co-authored-by: Aaron McDonald <[email protected]> Co-authored-by: Dylan Piergies [email protected] Co-authored-by: holmesb <[email protected]> Signed-off-by: Torsten Walter <[email protected]>
* Chart uses StatefulSet instead of Deployment * XML configuration was dropped * offending terms have been removed * values have been renamed and re-ordered to make it easier to use * already deprecated items got removed * chart migrated to helm 3.0.0 * rename containers (#155) * Configure admin user via configuration as code (#158) * admin username and password are no longer exposed as environment variables * admin password is not modified on helm updates instead the values from the existing secret is re-used * default length of admin password was increased * renamed useSecurity to adminSecret as disabling security feels odd and it's not what this flag does. * Check usage of deprecated imageTag (#161) * Remove whitespace when not rendering helm.sh/chart label (#160) Before: ``` kind: PersistentVolumeClaim apiVersion: v1 metadata: name: RELEASE-NAME-jenkins namespace: cockpit labels: "app.kubernetes.io/name": 'jenkins' "app.kubernetes.io/managed-by": "Helm" "app.kubernetes.io/instance": "RELEASE-NAME" "app.kubernetes.io/component": "jenkins-controller" ``` After: ``` kind: PersistentVolumeClaim apiVersion: v1 metadata: name: RELEASE-NAME-jenkins namespace: cockpit labels: "app.kubernetes.io/name": 'jenkins' "app.kubernetes.io/managed-by": "Helm" "app.kubernetes.io/instance": "RELEASE-NAME" "app.kubernetes.io/component": "jenkins-controller" ``` List of contributions: - Dylan Piergies: Replace Deployment with StatefulSet #33 - Aaron McDonald: move kubernetes plugin configuration under agent #106 - holmesb: Adding prometheus \ metrics guidance #78 - Florian Buchmeier: Updated UI tests to use official BATS image since dduportal/bats:0.4.0 is still using docker manifest v1 and thus is deprecated. (#157) Closes #78 Co-authored-by: Aaron McDonald <[email protected]> Co-authored-by: Dylan Piergies [email protected] Co-authored-by: holmesb <[email protected]> Signed-off-by: Torsten Walter <[email protected]>
* Chart uses StatefulSet instead of Deployment * XML configuration was dropped * offending terms have been removed * values have been renamed and re-ordered to make it easier to use * already deprecated items got removed * chart migrated to helm 3.0.0 * rename containers (#155) * Configure admin user via configuration as code (#158) * admin username and password are no longer exposed as environment variables * admin password is not modified on helm updates instead the values from the existing secret is re-used * default length of admin password was increased * renamed useSecurity to adminSecret as disabling security feels odd and it's not what this flag does. * Check usage of deprecated imageTag (#161) * Remove whitespace when not rendering helm.sh/chart label (#160) Before: ``` kind: PersistentVolumeClaim apiVersion: v1 metadata: name: RELEASE-NAME-jenkins namespace: cockpit labels: "app.kubernetes.io/name": 'jenkins' "app.kubernetes.io/managed-by": "Helm" "app.kubernetes.io/instance": "RELEASE-NAME" "app.kubernetes.io/component": "jenkins-controller" ``` After: ``` kind: PersistentVolumeClaim apiVersion: v1 metadata: name: RELEASE-NAME-jenkins namespace: cockpit labels: "app.kubernetes.io/name": 'jenkins' "app.kubernetes.io/managed-by": "Helm" "app.kubernetes.io/instance": "RELEASE-NAME" "app.kubernetes.io/component": "jenkins-controller" ``` List of contributions: - Dylan Piergies: Replace Deployment with StatefulSet #33 - Aaron McDonald: move kubernetes plugin configuration under agent #106 - holmesb: Adding prometheus \ metrics guidance #78 - Florian Buchmeier: Updated UI tests to use official BATS image since dduportal/bats:0.4.0 is still using docker manifest v1 and thus is deprecated. (#157) Closes #78 Co-authored-by: Aaron McDonald <[email protected]> Co-authored-by: Dylan Piergies [email protected] Co-authored-by: holmesb <[email protected]> Signed-off-by: Torsten Walter <[email protected]> Co-authored-by: Aaron McDonald <[email protected]> Co-authored-by: holmesb <[email protected]>
Signed-off-by: Dylan Piergies [email protected]