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

feat(argo-rollouts): Add configurable deployment strategy for Argo Rollouts controller #2412

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

nedal87
Copy link

@nedal87 nedal87 commented Jan 5, 2024

Added configurable deployment strategy for the Argo Rollouts controller. Users can now specify either "Recreate" or "RollingUpdate" as the deployment strategy in the values.yaml file. This enhancement provides users with flexibility in choosing the deployment strategy that best suits their needs.

Checklist:

  • I have bumped the chart version according to versioning
  • I have updated the documentation according to documentation
  • I have updated the chart changelog with all the changes that come with this pull request according to changelog.
  • Any new values are backwards compatible and/or have sensible default.
  • I have signed off all my commits as required by DCO.
  • My build is green (troubleshooting builds).

@nedal87 nedal87 changed the title feat(argo-rollout): Add configurable deployment strategy for Argo Rollouts controller feat(argo-rollouts): Add configurable deployment strategy for Argo Rollouts controller Jan 5, 2024
Comment on lines 20 to 26
{{- if eq .Values.controller.deploymentStrategy.type "RollingUpdate" }}
strategy:
{{- toYaml .Values.controller.deploymentStrategy | nindent 4 }}
{{- else }}
strategy:
type: Recreate
{{- end }}
Copy link
Collaborator

@yu-croco yu-croco Jan 5, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @nedal87 , thank you for your PR.

Did you investigate why this is hardcoded as Recreate originally ? I am not sure about this case, but some resources are not designed for RollingUpdate .
If the upstream's original kustomize is RollingUpdate , then it sounds safe to provide other choices but upstream's manifest is Recreate

Can you please check if it's safe to provide other strategy options in upstream?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure for now but at the point of March 2019, it should be Recreate . 👀
argoproj/argo-rollouts#38

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @yu-croco Thank you for looking into this PR.

I understand that the initial decision to use the "Recreate" strategy was based on the assumption that controllers operate as the sole modifiers of resources as mentioned in the issue argoproj/argo-rollouts/issues/38

In my investigation, I didn't find specific functionality issues associated with using the "RollingUpdate" strategy. I tested that locally and could see that the deployment behave normally when restarting, updating or scaling the Argo rollout controller deployment. Are there any specific concerns regarding the usage of RollingUpdate deployment strategy?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are there any specific concerns regarding the usage of RollingUpdate deployment strategy?

Aside from the ISSUE above, I don't have any concerns.
Since we follow upstream's manifest and not familiar with the detail of feature, can you please check in upstream for in case?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your feedback, I will reach out to the upstream to verify and proceed from there.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you! When we are sure about this, LGTM 🚀

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @nedal87 ,
I investigated and revealed that controller can be RollingUpdate surely, so I made PR to upstream (it's already merged into master).
argoproj/argo-rollouts#3334

When upstream releases the PR as specific version, let's change the default type as RollingUpdate in this PR.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @yu-croco that's great news. Thanks a lot! Updating the PR to have the RollingUpdate by default.

…louts controller

Signed-off-by: Nedal Eskaif <Nedal.Eskaif@goto.com>
@nedal87 nedal87 force-pushed the feat/neskaif/add-custom-spec.strategy-for-deployments branch from 02f5fc1 to 89f989a Compare February 21, 2024 10:34
@jmeridth jmeridth added the awaiting-upstream Is waiting for a change upstream to be completed before it can be merged. label Mar 3, 2024
@CarlosLanderas
Copy link

Hello folks!. Thanks for the contribution. Any idea when this change will be published?

@yu-croco
Copy link
Collaborator

Any idea when this change will be published?

Hi @CarlosLanderas , we can merge when upstream merge argoproj/argo-rollouts#3334 into specific new version because we follow upstresm's manifest.
If you are really hurry, you may mention in upstream.

Copy link

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
argo-rollouts awaiting-upstream Is waiting for a change upstream to be completed before it can be merged. no-pr-activity on-hold size/S
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants