-
Notifications
You must be signed in to change notification settings - Fork 605
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
Progressive delivery of applications using ApplicationSets #845
Progressive delivery of applications using ApplicationSets #845
Conversation
Thanks @iam-veeramalla Do we need to support 3 different ways of enabling the same feature? If upstream specifies env var or configmap entry I think setting that field in the cr should maybe do that under the hood rather than exposing so many ways to the user I'm also wondering how we would handle conflicts if places have contradicting config for this |
Hi @jaideepr97 , the implementation is same as upstream. Upstream also supports all the three ways and three are completely unique |
@iam-veeramalla I understand that Unless we don't want to make it a first class field in the CRD because it's an alpha feature and maybe removed later on? |
@jaideepr97 Thanks for the suggestion. |
Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>
Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>
Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>
@iam-veeramalla could we add unit tests as well? |
Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>
@jaideepr97 added new tests and removed an unintentional change. PTAL, Thanks :) |
### Add Command Arguments to ApplicationSets Controller | ||
|
||
Below example shows how a user can add command arguments to the ApplicationSet controller. | ||
|
||
``` yaml | ||
apiVersion: argoproj.io/v1alpha1 | ||
kind: ArgoCD | ||
metadata: | ||
name: example-argocd | ||
labels: | ||
example: applicationset | ||
spec: | ||
applicationSet: | ||
extraCommandArgs: | ||
- --foo | ||
- bar | ||
``` |
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.
@iam-veeramalla the docs only talk about being able to add extra args to appset deployment
do we also want to specifically mention that they can pass --enable-progressive-rollouts
to enable progressive rollouts in appsets here?
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 think we should keep it very generic. In the release notes text when we describe the feature, we can add a point for this.
LGTM thanks @iam-veeramalla |
…labs#845) * appSet progressive delivery for applications Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com> * fix: update comments Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com> * fix: add docs Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com> * feat: add tests Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com> Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com> Signed-off-by: Yi Cai <yicai@redhat.com>
What type of PR is this?
What does this PR do / why we need it:
This is an experimental, alpha-quality feature that allows you to control the order in which the ApplicationSet controller will create or update the Applications owned by an ApplicationSet resource. It may be removed in future releases or modified in backwards-incompatible ways.
The feature only interacts with the health of managed Applications. It is NOT intended to support direct integrations with other Rollout controllers (such as the native ReplicaSet controller or Argo Rollouts).
Progressive Rollouts watch for the managed Application resources to become "Healthy" before proceeding to the next stage.
Enabling Progressive Rollouts
As an experimental feature, progressive rollouts must be explicitly enabled, in one of the below 3 ways.
--enable-progressive-rollouts
to the ApplicationSet controller args.To achieve this using the operator, Users can add the above argument in the Argo CD CR
ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_PROGRESSIVE_ROLLOUTS=true
in the ApplicationSet controller environment variables in the below mentioned way.applicationsetcontroller.enable.progressive.rollouts: true
in the ArgoCDConfigMap
.Have you updated the necessary documentation?
How to test changes / Special notes to the reviewer:
make install run