diff --git a/controller/appcontroller_test.go b/controller/appcontroller_test.go index 6f6271b79f34b..0ce49fb83cfcb 100644 --- a/controller/appcontroller_test.go +++ b/controller/appcontroller_test.go @@ -4,7 +4,6 @@ import ( "context" "encoding/json" "errors" - "os" "testing" "time" @@ -553,7 +552,7 @@ func TestAutoSync(t *testing.T) { Status: v1alpha1.SyncStatusCodeOutOfSync, Revision: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", } - cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{{Name: "guestbook", Kind: kube.DeploymentKind, Status: v1alpha1.SyncStatusCodeOutOfSync}}) + cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{{Name: "guestbook", Kind: kube.DeploymentKind, Status: v1alpha1.SyncStatusCodeOutOfSync}}, true) assert.Nil(t, cond) app, err := ctrl.applicationClientset.ArgoprojV1alpha1().Applications(test.FakeArgoCDNamespace).Get(context.Background(), "my-app", metav1.GetOptions{}) require.NoError(t, err) @@ -570,7 +569,7 @@ func TestAutoSyncNotAllowEmpty(t *testing.T) { Status: v1alpha1.SyncStatusCodeOutOfSync, Revision: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", } - cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{}) + cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{}, true) assert.NotNil(t, cond) } @@ -583,7 +582,7 @@ func TestAutoSyncAllowEmpty(t *testing.T) { Status: v1alpha1.SyncStatusCodeOutOfSync, Revision: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", } - cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{}) + cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{}, false) assert.Nil(t, cond) } @@ -597,7 +596,7 @@ func TestSkipAutoSync(t *testing.T) { Status: v1alpha1.SyncStatusCodeOutOfSync, Revision: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", } - cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{}) + cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{}, false) assert.Nil(t, cond) app, err := ctrl.applicationClientset.ArgoprojV1alpha1().Applications(test.FakeArgoCDNamespace).Get(context.Background(), "my-app", metav1.GetOptions{}) require.NoError(t, err) @@ -612,7 +611,7 @@ func TestSkipAutoSync(t *testing.T) { Status: v1alpha1.SyncStatusCodeSynced, Revision: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", } - cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{}) + cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{}, false) assert.Nil(t, cond) app, err := ctrl.applicationClientset.ArgoprojV1alpha1().Applications(test.FakeArgoCDNamespace).Get(context.Background(), "my-app", metav1.GetOptions{}) require.NoError(t, err) @@ -628,7 +627,7 @@ func TestSkipAutoSync(t *testing.T) { Status: v1alpha1.SyncStatusCodeOutOfSync, Revision: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", } - cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{}) + cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{}, false) assert.Nil(t, cond) app, err := ctrl.applicationClientset.ArgoprojV1alpha1().Applications(test.FakeArgoCDNamespace).Get(context.Background(), "my-app", metav1.GetOptions{}) require.NoError(t, err) @@ -645,7 +644,7 @@ func TestSkipAutoSync(t *testing.T) { Status: v1alpha1.SyncStatusCodeOutOfSync, Revision: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", } - cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{}) + cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{}, false) assert.Nil(t, cond) app, err := ctrl.applicationClientset.ArgoprojV1alpha1().Applications(test.FakeArgoCDNamespace).Get(context.Background(), "my-app", metav1.GetOptions{}) require.NoError(t, err) @@ -671,7 +670,7 @@ func TestSkipAutoSync(t *testing.T) { Status: v1alpha1.SyncStatusCodeOutOfSync, Revision: "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", } - cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{{Name: "guestbook", Kind: kube.DeploymentKind, Status: v1alpha1.SyncStatusCodeOutOfSync}}) + cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{{Name: "guestbook", Kind: kube.DeploymentKind, Status: v1alpha1.SyncStatusCodeOutOfSync}}, false) assert.NotNil(t, cond) app, err := ctrl.applicationClientset.ArgoprojV1alpha1().Applications(test.FakeArgoCDNamespace).Get(context.Background(), "my-app", metav1.GetOptions{}) require.NoError(t, err) @@ -687,7 +686,7 @@ func TestSkipAutoSync(t *testing.T) { } cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{ {Name: "guestbook", Kind: kube.DeploymentKind, Status: v1alpha1.SyncStatusCodeOutOfSync, RequiresPruning: true}, - }) + }, false) assert.Nil(t, cond) app, err := ctrl.applicationClientset.ArgoprojV1alpha1().Applications(test.FakeArgoCDNamespace).Get(context.Background(), "my-app", metav1.GetOptions{}) require.NoError(t, err) @@ -723,7 +722,7 @@ func TestAutoSyncIndicateError(t *testing.T) { Source: *app.Spec.Source.DeepCopy(), }, } - cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{{Name: "guestbook", Kind: kube.DeploymentKind, Status: v1alpha1.SyncStatusCodeOutOfSync}}) + cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{{Name: "guestbook", Kind: kube.DeploymentKind, Status: v1alpha1.SyncStatusCodeOutOfSync}}, false) assert.NotNil(t, cond) app, err := ctrl.applicationClientset.ArgoprojV1alpha1().Applications(test.FakeArgoCDNamespace).Get(context.Background(), "my-app", metav1.GetOptions{}) require.NoError(t, err) @@ -766,7 +765,7 @@ func TestAutoSyncParameterOverrides(t *testing.T) { Revision: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", }, } - cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{{Name: "guestbook", Kind: kube.DeploymentKind, Status: v1alpha1.SyncStatusCodeOutOfSync}}) + cond, _ := ctrl.autoSync(app, &syncStatus, []v1alpha1.ResourceStatus{{Name: "guestbook", Kind: kube.DeploymentKind, Status: v1alpha1.SyncStatusCodeOutOfSync}}, false) assert.Nil(t, cond) app, err := ctrl.applicationClientset.ArgoprojV1alpha1().Applications(test.FakeArgoCDNamespace).Get(context.Background(), "my-app", metav1.GetOptions{}) require.NoError(t, err) @@ -2169,4 +2168,4 @@ func TestAlreadyAttemptSync(t *testing.T) { attempted, _ := alreadyAttemptedSync(app, "sha", []string{}, false, true) assert.False(t, attempted) }) -} \ No newline at end of file +} diff --git a/controller/state.go b/controller/state.go index 40b0f2277c80a..7ced1e7ec5ccc 100644 --- a/controller/state.go +++ b/controller/state.go @@ -88,7 +88,7 @@ type comparisonResult struct { timings map[string]time.Duration diffResultList *diff.DiffResultList hasPostDeleteHooks bool - revisionUpdated bool + revisionUpdated bool } func (res *comparisonResult) GetSyncStatus() *v1alpha1.SyncStatus { @@ -182,13 +182,13 @@ func (m *appStateManager) GetRepoObjs(app *v1alpha1.Application, sources []v1alp if err != nil { return nil, nil, false, fmt.Errorf("failed to get ref sources: %w", err) } - + revisionUpdated := false atLeastOneRevisionIsNotPossibleToBeUpdated := false - + keyManifestGenerateAnnotationVal, keyManifestGenerateAnnotationExists := app.Annotations[v1alpha1.AnnotationKeyManifestGeneratePaths] - + for i, source := range sources { if len(revisions) < len(sources) || revisions[i] == "" { revisions[i] = source.TargetRevision @@ -232,7 +232,6 @@ func (m *appStateManager) GetRepoObjs(app *v1alpha1.Application, sources []v1alp RefSources: refSources, HasMultipleSources: app.Spec.HasMultipleSources(), }) - if err != nil { return nil, nil, false, fmt.Errorf("failed to compare revisions for source %d of %d: %w", i+1, len(sources), err) } @@ -244,7 +243,7 @@ func (m *appStateManager) GetRepoObjs(app *v1alpha1.Application, sources []v1alp if updateRevisionResult.Revision != "" { revision = updateRevisionResult.Revision } - } else { + } else { // revisionUpdated is set to true if at least one revision is not possible to be updated, atLeastOneRevisionIsNotPossibleToBeUpdated = true } @@ -254,7 +253,7 @@ func (m *appStateManager) GetRepoObjs(app *v1alpha1.Application, sources []v1alp manifestInfo, err := repoClient.GenerateManifest(context.Background(), &apiclient.ManifestRequest{ Repo: repo, Repos: permittedHelmRepos, - Revision: revisions[i], + Revision: revision, NoCache: noCache, NoRevisionCache: noRevisionCache, AppLabelKey: appLabelKey, @@ -468,7 +467,7 @@ func (m *appStateManager) CompareAppState(app *v1alpha1.Application, project *v1 targetNsExists := false var revisionUpdated bool - + if len(localManifests) == 0 { // If the length of revisions is not same as the length of sources, // we take the revisions from the sources directly for all the sources. @@ -850,8 +849,8 @@ func (m *appStateManager) CompareAppState(app *v1alpha1.Application, project *v1 Sources: sources, IgnoreDifferences: app.Spec.IgnoreDifferences, }, - Status: syncCode, - Revisions: manifestRevisions, + Status: syncCode, + Revisions: manifestRevisions, } } else { syncStatus = v1alpha1.SyncStatus{ @@ -860,8 +859,8 @@ func (m *appStateManager) CompareAppState(app *v1alpha1.Application, project *v1 Source: app.Spec.GetSource(), IgnoreDifferences: app.Spec.IgnoreDifferences, }, - Status: syncCode, - Revision: revision, + Status: syncCode, + Revision: revision, } } @@ -890,7 +889,7 @@ func (m *appStateManager) CompareAppState(app *v1alpha1.Application, project *v1 diffConfig: diffConfig, diffResultList: diffResults, hasPostDeleteHooks: hasPostDeleteHooks, - revisionUpdated: revisionUpdated, + revisionUpdated: revisionUpdated, } if hasMultipleSources { diff --git a/controller/state_test.go b/controller/state_test.go index f5190d7720cbd..72de49fd656dd 100644 --- a/controller/state_test.go +++ b/controller/state_test.go @@ -1781,4 +1781,4 @@ func TestCompareAppStateRevisionUpdatedWithHelmSource(t *testing.T) { assert.NotNil(t, compRes) assert.NotNil(t, compRes.syncStatus) assert.True(t, compRes.revisionUpdated) -} \ No newline at end of file +} diff --git a/manifests/base/kustomization.yaml b/manifests/base/kustomization.yaml index d4ca5d67c3650..10fc04346acaa 100644 --- a/manifests/base/kustomization.yaml +++ b/manifests/base/kustomization.yaml @@ -5,7 +5,7 @@ kind: Kustomization images: - name: quay.io/argoproj/argocd newName: quay.io/codefresh/argocd - newTag: v2.12-2024.10.16-ae9bb9622 + newTag: latest resources: - ./application-controller - ./dex diff --git a/manifests/core-install.yaml b/manifests/core-install.yaml index 2dfbad671ba8c..27c98a42c948d 100644 --- a/manifests/core-install.yaml +++ b/manifests/core-install.yaml @@ -21543,7 +21543,7 @@ spec: - argocd - admin - redis-initial-password - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: IfNotPresent name: secret-init securityContext: @@ -21796,7 +21796,7 @@ spec: value: /helm-working-dir - name: HELM_DATA_HOME value: /helm-working-dir - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always livenessProbe: failureThreshold: 3 @@ -21848,7 +21848,7 @@ spec: - -n - /usr/local/bin/argocd - /var/run/argocd/argocd-cmp-server - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest name: copyutil securityContext: allowPrivilegeEscalation: false @@ -22119,7 +22119,7 @@ spec: key: controller.ignore.normalizer.jq.timeout name: argocd-cmd-params-cm optional: true - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always name: argocd-application-controller ports: diff --git a/manifests/core-install/kustomization.yaml b/manifests/core-install/kustomization.yaml index 5c53e36472d99..66dd4c93f4989 100644 --- a/manifests/core-install/kustomization.yaml +++ b/manifests/core-install/kustomization.yaml @@ -12,4 +12,4 @@ resources: images: - name: quay.io/argoproj/argocd newName: quay.io/codefresh/argocd - newTag: v2.12-2024.10.16-ae9bb9622 + newTag: latest diff --git a/manifests/ha/base/kustomization.yaml b/manifests/ha/base/kustomization.yaml index 28bf918b74c76..c963eaa45dc22 100644 --- a/manifests/ha/base/kustomization.yaml +++ b/manifests/ha/base/kustomization.yaml @@ -12,7 +12,7 @@ patches: images: - name: quay.io/argoproj/argocd newName: quay.io/codefresh/argocd - newTag: v2.12-2024.10.16-ae9bb9622 + newTag: latest resources: - ../../base/application-controller - ../../base/applicationset-controller diff --git a/manifests/ha/install.yaml b/manifests/ha/install.yaml index 334d3e7659fee..b8b15968b4b0d 100644 --- a/manifests/ha/install.yaml +++ b/manifests/ha/install.yaml @@ -22785,7 +22785,7 @@ spec: - -n - /usr/local/bin/argocd - /shared/argocd-dex - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always name: copyutil securityContext: @@ -22900,7 +22900,7 @@ spec: - argocd - admin - redis-initial-password - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: IfNotPresent name: secret-init securityContext: @@ -23183,7 +23183,7 @@ spec: value: /helm-working-dir - name: HELM_DATA_HOME value: /helm-working-dir - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always livenessProbe: failureThreshold: 3 @@ -23235,7 +23235,7 @@ spec: - -n - /usr/local/bin/argocd - /var/run/argocd/argocd-cmp-server - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest name: copyutil securityContext: allowPrivilegeEscalation: false @@ -23565,7 +23565,7 @@ spec: key: server.api.content.types name: argocd-cmd-params-cm optional: true - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always livenessProbe: httpGet: @@ -23864,7 +23864,7 @@ spec: key: controller.ignore.normalizer.jq.timeout name: argocd-cmd-params-cm optional: true - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always name: argocd-application-controller ports: diff --git a/manifests/ha/namespace-install.yaml b/manifests/ha/namespace-install.yaml index 568cd9cd33d83..2fc731b03fe4c 100644 --- a/manifests/ha/namespace-install.yaml +++ b/manifests/ha/namespace-install.yaml @@ -1697,7 +1697,7 @@ spec: - -n - /usr/local/bin/argocd - /shared/argocd-dex - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always name: copyutil securityContext: @@ -1812,7 +1812,7 @@ spec: - argocd - admin - redis-initial-password - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: IfNotPresent name: secret-init securityContext: @@ -2095,7 +2095,7 @@ spec: value: /helm-working-dir - name: HELM_DATA_HOME value: /helm-working-dir - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always livenessProbe: failureThreshold: 3 @@ -2147,7 +2147,7 @@ spec: - -n - /usr/local/bin/argocd - /var/run/argocd/argocd-cmp-server - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest name: copyutil securityContext: allowPrivilegeEscalation: false @@ -2477,7 +2477,7 @@ spec: key: server.api.content.types name: argocd-cmd-params-cm optional: true - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always livenessProbe: httpGet: @@ -2776,7 +2776,7 @@ spec: key: controller.ignore.normalizer.jq.timeout name: argocd-cmd-params-cm optional: true - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always name: argocd-application-controller ports: diff --git a/manifests/install.yaml b/manifests/install.yaml index e52bc9f8f0bf3..2ae1921a1e256 100644 --- a/manifests/install.yaml +++ b/manifests/install.yaml @@ -22009,7 +22009,7 @@ spec: - -n - /usr/local/bin/argocd - /shared/argocd-dex - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always name: copyutil securityContext: @@ -22105,7 +22105,7 @@ spec: - argocd - admin - redis-initial-password - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: IfNotPresent name: secret-init securityContext: @@ -22358,7 +22358,7 @@ spec: value: /helm-working-dir - name: HELM_DATA_HOME value: /helm-working-dir - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always livenessProbe: failureThreshold: 3 @@ -22410,7 +22410,7 @@ spec: - -n - /usr/local/bin/argocd - /var/run/argocd/argocd-cmp-server - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest name: copyutil securityContext: allowPrivilegeEscalation: false @@ -22731,7 +22731,7 @@ spec: key: server.api.content.types name: argocd-cmd-params-cm optional: true - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always livenessProbe: httpGet: @@ -23030,7 +23030,7 @@ spec: key: controller.ignore.normalizer.jq.timeout name: argocd-cmd-params-cm optional: true - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always name: argocd-application-controller ports: @@ -23194,7 +23194,7 @@ spec: key: event-reporter.metrics.listen.address name: argocd-cmd-params-cm optional: true - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always livenessProbe: httpGet: diff --git a/manifests/namespace-install.yaml b/manifests/namespace-install.yaml index 8bf8969667ded..7e947b74a9710 100644 --- a/manifests/namespace-install.yaml +++ b/manifests/namespace-install.yaml @@ -921,7 +921,7 @@ spec: - -n - /usr/local/bin/argocd - /shared/argocd-dex - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always name: copyutil securityContext: @@ -1017,7 +1017,7 @@ spec: - argocd - admin - redis-initial-password - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: IfNotPresent name: secret-init securityContext: @@ -1270,7 +1270,7 @@ spec: value: /helm-working-dir - name: HELM_DATA_HOME value: /helm-working-dir - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always livenessProbe: failureThreshold: 3 @@ -1322,7 +1322,7 @@ spec: - -n - /usr/local/bin/argocd - /var/run/argocd/argocd-cmp-server - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest name: copyutil securityContext: allowPrivilegeEscalation: false @@ -1643,7 +1643,7 @@ spec: key: server.api.content.types name: argocd-cmd-params-cm optional: true - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always livenessProbe: httpGet: @@ -1942,7 +1942,7 @@ spec: key: controller.ignore.normalizer.jq.timeout name: argocd-cmd-params-cm optional: true - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always name: argocd-application-controller ports: @@ -2106,7 +2106,7 @@ spec: key: event-reporter.metrics.listen.address name: argocd-cmd-params-cm optional: true - image: quay.io/codefresh/argocd:v2.12-2024.10.16-ae9bb9622 + image: quay.io/codefresh/argocd:latest imagePullPolicy: Always livenessProbe: httpGet: