Skip to content

Commit

Permalink
code-refactoring: add status reconciliation to ArgoCDReconciler (argo…
Browse files Browse the repository at this point in the history
…proj-labs#1211)

* fix: don't set phase to available during host reconciliation  (argoproj-labs#918)

* upgrade golangci-lint

Signed-off-by: Jaideep Rao <jaideep.r97@gmail.com>

* fix phase reconciliation during host reconciliation

Signed-off-by: Jaideep Rao <jaideep.r97@gmail.com>

* address review comment

Signed-off-by: Jaideep Rao <jaideep.r97@gmail.com>

* set phase to pending if ingress not found

Signed-off-by: Jaideep Rao <jaideep.r97@gmail.com>

---------

Signed-off-by: Jaideep Rao <jaideep.r97@gmail.com>

* update owners file (argoproj-labs#953)

* Move to only adding two roles for managed namespaces (argoproj-labs#954)

* Move to only adding two roles for managed namespaces
---------

Signed-off-by: Salem Elrahal <selrahal@redhat.com>
Co-authored-by: Salem Elrahal <selrahal@redhat.com>

* feat: expose operator metrics  (argoproj-labs#928)

Track and expose custom operator performance metrics 
---------

Signed-off-by: Jaideep Rao <jaideep.r97@gmail.com>

* add build.os config for readthedocs (argoproj-labs#967)

* setup 0.8.0 (argoproj-labs#966)

* feat: Add conversion webhook for ArgoCD v1alpha1 to v1beta1 migration (argoproj-labs#964)

* Add ArgoCD v1beta1 & deprecate v1alpha1

- Add new ArgoCD v1beta1 api
- Mark ArgoCD v1alpha1 as deprecated & add back the removed sso fields
- Use server side validation for "kubectl apply" as client side results into
  failure due to exceeding annotation size limit.

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

Add funcs for ArgoCD alpha to beta conversion

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

Add conversion webhook

- Create webhook & setup webhook server on 9443
- Disable operator namespaced install via OLM so that OLM can handle certs for webhook server
- For manual install, user needs to explicitly configure cert manager to inject certs and enable
  webhook server in operator by setting env ENABLE_CONVERSION_WEBHOOK="true"

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

Resolve local build issues

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

Tweak webhook configs

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

Update operator installation docs

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

Add e2e tests

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

Minor updates

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

Fix go-lint ci failure

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

Update docs

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

Remove webhook from 0.7.0 bundle

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

Add spaces in bundle

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* update 0.8.0 bundle

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

---------

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* chore(deps): bump pygments from 2.7.4 to 2.15.0 in /docs (argoproj-labs#950)

Bumps [pygments](https://github.com/pygments/pygments) from 2.7.4 to 2.15.0.
- [Release notes](https://github.com/pygments/pygments/releases)
- [Changelog](https://github.com/pygments/pygments/blob/master/CHANGES)
- [Commits](pygments/pygments@2.7.4...2.15.0)

---
updated-dependencies:
- dependency-name: pygments
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: upgrade RH-SSO from 7.5 to 7.6 (argoproj-labs#977)

* upgrade RH-SSO from 7.5 to 7.6

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

* fix: failing tests

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

* fix: failing tests

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

---------

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

* refactor: Remove dead code (argoproj-labs#979)

* Remove dead code

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* Fix import

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* Fix imports

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

---------

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* Replace ArgoCD v1alpha1 references with v1beta1 (argoproj-labs#975)

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* refactor: Remove deprecated .spec.resourceCustomizations (argoproj-labs#973)

* Remove .spec.resourceCustomizations code

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* Update docs

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* Update docs

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* Address review comments

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* Fix typo

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

---------

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* upgrade ArgoCD version to 2.8.2 and update the CRDs (argoproj-labs#984)

* upgrade ArgoCD version to 2.8.2 and update the CRDs

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* Update argocd image

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

---------

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* chore: Update ArgoCD v1alpha1 deprecation message (argoproj-labs#988)

* Update ArgoCD v1alpha1 deprecation message

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* Run code gen

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

---------

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* Add support for tls self signed certs in AppSet Gitlab SCM Provider (argoproj-labs#985)

* add support for tls self signed certs in AppSet Gitlab SCM Provider

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* add e2e test

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* add unit tests

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* renamed field ScmRootCaPath to SCMRootCaPath

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* Add documentation and address comments

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* Address comments

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

---------

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* chore(deps): bump github.com/argoproj/argo-cd/v2 from 2.8.2 to 2.8.3 (argoproj-labs#992)

Bumps [github.com/argoproj/argo-cd/v2](https://github.com/argoproj/argo-cd) from 2.8.2 to 2.8.3.
- [Release notes](https://github.com/argoproj/argo-cd/releases)
- [Changelog](https://github.com/argoproj/argo-cd/blob/master/CHANGELOG.md)
- [Commits](argoproj/argo-cd@v2.8.2...v2.8.3)

---
updated-dependencies:
- dependency-name: github.com/argoproj/argo-cd/v2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: pick up argo cd v2.8.3 (argoproj-labs#993)

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

* fix: replace deprecated syntax in kustomization.yaml (argoproj-labs#1000)

Signed-off-by: minchao <minchao.220@gmail.com>

* Missing syntax-highlighting, toggle button for screen mode in argocd-operator docs (argoproj-labs#1002)

* Update requirements.txt

added markdown= 3.3.7 and  markdown-include=0.6.0

Signed-off-by: Surajyadav <harrypotter1108@gmail.com>

* Delete docs/assets/extra.css

deleted extra.css

Signed-off-by: Surajyadav <harrypotter1108@gmail.com>

* Update mkdocs.yml

added markdown_extension  markdown_include with  codehighlight and toggle for screen mode

Signed-off-by: Surajyadav <harrypotter1108@gmail.com>

* Update mkdocs.yml

Signed-off-by: Surajyadav <harrypotter1108@gmail.com>

---------

Signed-off-by: Surajyadav <harrypotter1108@gmail.com>

* fix: keycloak probes failure and intermittent perforamance issues (argoproj-labs#1007)

* fix: keycloak probes failure results in pod crash

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

* fix: use latest keycloak image to handle performance issue

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

---------

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

* bug: fix heathcheck subkey generation for resources with no group  (argoproj-labs#1013)

* account for empty group during resource customization config subkey generation

---------

Signed-off-by: Jaideep Rao <jaideep.r97@gmail.com>

* chore(deps): bump golang.org/x/net from 0.11.0 to 0.17.0 (argoproj-labs#1019)

Bumps [golang.org/x/net](https://github.com/golang/net) from 0.11.0 to 0.17.0.
- [Commits](golang/net@v0.11.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add labelSelector option to filter the ArgoCD instances for reconciliation (argoproj-labs#961)

* Added labelselector string to map conversion

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* Changed data-type for labelSelector to parse string

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* Added code to reconcile selected ArgoCD instances based on label selector

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* remove comments

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* Updated argoCD label fetch, renamed env var

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* Updated unit test and yaml

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* Updated unit test

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* Fix yaml env ValueFrom field

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* Added comments and labelSelector check in main.go

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* removed label-selector option from manifest

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* updated label-selector format in manifests

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* added label selector logs

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* go mod tidy

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* added e2e tests for label-selector

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* restructured kuttl files and added operator patch file

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* go mod tidy

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* corrected kuttl tests for cm failure

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* Added documentation for Environment Variable ARGOCD_LABEL_SELECTOR

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* cleanup

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* improved unit tests and some minor changes

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* kuttl rerun

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* removed env var

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* misc modifications

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* argocd-operator csv correction

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* fix bundle error

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* fix bundle error

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* fix manifests build

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>
Signed-off-by: Ishita Sequeira <ishiseq29@gmail.com>
Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* Added more unit test cases

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* rebase

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* removed excess reconcilers

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* minor fix

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* removed extraneous test case and cleaned manager.yaml

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* cleaned manager.yaml

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* fix make bundle issue

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* fix make bundle issue

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

---------

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>
Signed-off-by: Ishita Sequeira <ishiseq29@gmail.com>
Co-authored-by: ishitasequeira <ishiseq29@gmail.com>

* fix: address CVE-2023-39325 (argoproj-labs#1022)

*address CVE-2023-39325
- upgrade to golang v1.20.10 
- disable http/2 for webhook and metrics server, use http/1.1 by default but make it a configurable flag
- upgarde k8s library packages to v0.28.3
- Add new structs for keycloak API that were previously part of the (now deprecated) keycloak-operator repo 
- upgrade to controller-runtime to v0.16.3
- refactor all unit tests 

---------

Signed-off-by: Jaideep Rao <jaideep.r97@gmail.com>

* Add gcp cherry-pick bot config (argoproj-labs#1023)

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* Add .github/dependabot.yml to enable auto dependency version updates (argoproj-labs#1025)

* feat(dex): add optional env field (argoproj-labs#1005)

* feat(dex): add optional env field

Signed-off-by: Robert Deusser <robertjdeusser@gmail.com>

* fix: remove non-default configuration

Signed-off-by: Robert Deusser <robertjdeusser@gmail.com>

* fix: v1alpha1 is deprecated

Signed-off-by: Robert Deusser <robertjdeusser@gmail.com>

* fix: convert dex spec between api versions

Signed-off-by: Robert Deusser <robertjdeusser@gmail.com>

* fix: ensure there is no diff in the bundle

Signed-off-by: Robert Deusser <robertjdeusser@gmail.com>

---------

Signed-off-by: Robert Deusser <robertjdeusser@gmail.com>

* fix: replace deprecated AddToScheme with Install, and deprecated SchemeGroupVersion with GroupVersion. (argoproj-labs#1066)

Signed-off-by: Cheng Fang <cfang@redhat.com>

* allow enabling ArgoCD workloads independently (argoproj-labs#1021)

* allow enabling ArgoCD core workloads independently

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* fix lint

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* check for dependent component urls if dependent components are disabled

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* fix build

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* fix make bundle

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* fix tests

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* Update flags for each component

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* Update configuration using remote flag

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* fix CI

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* Address comments

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* Addressed feedback

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* update conversion webhook

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* fix make build

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

---------

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* chore(deps): bump argoproj/argocd in /build/util (argoproj-labs#1080)

Bumps argoproj/argocd from `d40da8f` to `644c386`.

---
updated-dependencies:
- dependency-name: argoproj/argocd
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: upgrade Argo CD for release v.9.0 (argoproj-labs#1082)

* feat: upgrade Argo CD for release v.9.0

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

* fix: unit test failures

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

---------

Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>

* fix the logic for applicationset resources reconcilation when spec.applicationset.enabled is false (argoproj-labs#1089)

* fix the logic for applicationset resources reconciliation when spec.applicationset.enabled is false

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>
Signed-off-by: Raghavi Shirur <rshirur@redhat.com>
Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* fix tests

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>
Signed-off-by: Raghavi Shirur <rshirur@redhat.com>
Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* delete repo server when repo.enabled is set to false

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>
Signed-off-by: Raghavi Shirur <rshirur@redhat.com>
Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* Update status.Phase based on component enabled flag

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>
Signed-off-by: Raghavi Shirur <rshirur@redhat.com>
Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* Added kuttl tests

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>
Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* Added namespace creation step

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>
Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* delete services created for resources

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* delete server deployment when enabled flag set to false

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* fix e2e test

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* fix log message

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* revert kuttl test timeout

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* Added test for reverse scenario

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* Dir rename

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

* Added e2e test for ha mode

Signed-off-by: Raghavi Shirur <rshirur@redhat.com>

---------

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>
Signed-off-by: Raghavi Shirur <rshirur@redhat.com>
Co-authored-by: Raghavi Shirur <rshirur@redhat.com>

* docs: enabling/disabling individual argocd core components (argoproj-labs#1098)

* Add documentation for enabling/disabling argocd core components

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* rephrase doc

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* Address comments

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

---------

Signed-off-by: ishitasequeira <ishiseq29@gmail.com>

* fix: Proper reference to where to find default admin password (argoproj-labs#1094)

Signed-off-by: ikegentz <isaac.gentz@gmail.com>

* adding applicationsets in server rbac policy rule (argoproj-labs#1140)

Signed-off-by: Mangaal <angommeeteimangaal@gmail.com>

* remove extra argoutils

Signed-off-by: Jaideep Rao <jaideep.r97@gmail.com>

* fix logic to allow processor operation to be less than default value (argoproj-labs#1146)

* fix logic to allow operation processors to be less than default value

---------

Signed-off-by: Anand Kumar Singh <anandrkskd@gmail.com>

* Use correct repo-server address for notification controller (argoproj-labs#1125)

Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>

* remove notifs files

Signed-off-by: Jaideep Rao <jaideep.r97@gmail.com>

* add status reconciliation fns for all components, reconcile statuses at end of cycle

Signed-off-by: Jaideep Rao <jaideep.r97@gmail.com>

---------

Signed-off-by: Jaideep Rao <jaideep.r97@gmail.com>
Signed-off-by: Salem Elrahal <selrahal@redhat.com>
Signed-off-by: Siddhesh Ghadi <sghadi1203@gmail.com>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: iam-veeramalla <abhishek.veeramalla@gmail.com>
Signed-off-by: ishitasequeira <ishiseq29@gmail.com>
Signed-off-by: minchao <minchao.220@gmail.com>
Signed-off-by: Surajyadav <harrypotter1108@gmail.com>
Signed-off-by: Raghavi Shirur <rshirur@redhat.com>
Signed-off-by: Ishita Sequeira <ishiseq29@gmail.com>
Signed-off-by: Robert Deusser <robertjdeusser@gmail.com>
Signed-off-by: Cheng Fang <cfang@redhat.com>
Signed-off-by: ikegentz <isaac.gentz@gmail.com>
Signed-off-by: Mangaal <angommeeteimangaal@gmail.com>
Signed-off-by: Anand Kumar Singh <anandrkskd@gmail.com>
Co-authored-by: Regina Scott <50851526+reginapizza@users.noreply.github.com>
Co-authored-by: Salem Elrahal <salemelrahal@gmail.com>
Co-authored-by: Salem Elrahal <selrahal@redhat.com>
Co-authored-by: Siddhesh Ghadi <61187612+svghadi@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Abhishek Veeramalla <abhishek.veeramalla@gmail.com>
Co-authored-by: Ishita Sequeira <46771830+ishitasequeira@users.noreply.github.com>
Co-authored-by: Minchao <minchao.220@gmail.com>
Co-authored-by: Suraj yadav <harrypotter1108@gmail.com>
Co-authored-by: Raghavi <rshirur@redhat.com>
Co-authored-by: ishitasequeira <ishiseq29@gmail.com>
Co-authored-by: Cheng Fang <cfang@redhat.com>
Co-authored-by: Robert Deusser <5935071+rdeusser@users.noreply.github.com>
Co-authored-by: Isaac Gentz <isaac.gentz@gmail.com>
Co-authored-by: Mangaal <44372157+Mangaal@users.noreply.github.com>
Co-authored-by: Anand Kumar Singh <anandrkskd@gmail.com>
  • Loading branch information
17 people authored and Julia Teslia committed Apr 24, 2024
1 parent d1b3808 commit 3f53385
Show file tree
Hide file tree
Showing 10 changed files with 283 additions and 2 deletions.
32 changes: 32 additions & 0 deletions controllers/argocd/appcontroller/status.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package appcontroller

import (
"context"

"github.com/pkg/errors"
"k8s.io/client-go/util/retry"
)

// reconcileStatus will ensure that the app-controller status is updated for the given ArgoCD instance
func (acr *AppControllerReconciler) ReconcileStatus() error {

// TO DO

return acr.updateInstanceStatus()
}

func (acr *AppControllerReconciler) updateInstanceStatus() error {
err := retry.RetryOnConflict(retry.DefaultRetry, func() error {
if err := acr.Client.Status().Update(context.TODO(), acr.Instance); err != nil {
return errors.Wrap(err, "UpdateInstanceStatus: failed to update instance status")
}
return nil
})

if err != nil {
// May be conflict if max retries were hit, or may be something unrelated
// like permissions or a network error
return err
}
return nil
}
32 changes: 32 additions & 0 deletions controllers/argocd/applicationset/status.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package applicationset

import (
"context"

"github.com/pkg/errors"
"k8s.io/client-go/util/retry"
)

// reconcileStatus will ensure that the appset controller status is updated for the given ArgoCD instance
func (asr *ApplicationSetReconciler) ReconcileStatus() error {

// TO DO

return asr.updateInstanceStatus()
}

func (asr *ApplicationSetReconciler) updateInstanceStatus() error {
err := retry.RetryOnConflict(retry.DefaultRetry, func() error {
if err := asr.Client.Status().Update(context.TODO(), asr.Instance); err != nil {
return errors.Wrap(err, "UpdateInstanceStatus: failed to update instance status")
}
return nil
})

if err != nil {
// May be conflict if max retries were hit, or may be something unrelated
// like permissions or a network error
return err
}
return nil
}
6 changes: 5 additions & 1 deletion controllers/argocd/argocd_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -704,6 +704,10 @@ func (r *ArgoCDReconciler) reconcileControllers() error {
r.Logger.Error(err, "failed to reconcile SSO controller")
}

if err := r.reconcileStatus(); err != nil {
return err
}

return nil
}

Expand Down Expand Up @@ -766,7 +770,7 @@ func (r *ArgoCDReconciler) InitializeControllerReconcilers() {
}

ssoController := &sso.SSOReconciler{
Client: &r.Client,
Client: r.Client,
Scheme: r.Scheme,
Instance: r.Instance,
}
Expand Down
32 changes: 32 additions & 0 deletions controllers/argocd/notifications/status.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package notifications

import (
"context"

"github.com/pkg/errors"
"k8s.io/client-go/util/retry"
)

// reconcileStatus will ensure that the notifications controller status is updated for the given ArgoCD instance
func (nr *NotificationsReconciler) ReconcileStatus() error {

// TO DO

return nr.updateInstanceStatus()
}

func (nr *NotificationsReconciler) updateInstanceStatus() error {
err := retry.RetryOnConflict(retry.DefaultRetry, func() error {
if err := nr.Client.Status().Update(context.TODO(), nr.Instance); err != nil {
return errors.Wrap(err, "UpdateInstanceStatus: failed to update instance status")
}
return nil
})

if err != nil {
// May be conflict if max retries were hit, or may be something unrelated
// like permissions or a network error
return err
}
return nil
}
32 changes: 32 additions & 0 deletions controllers/argocd/redis/status.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package redis

import (
"context"

"github.com/pkg/errors"
"k8s.io/client-go/util/retry"
)

// reconcileStatusRedis will ensure that the Redis status is updated for the given ArgoCD instance
func (rr *RedisReconciler) ReconcileStatus() error {

// TO DO

return rr.updateInstanceStatus()
}

func (rr *RedisReconciler) updateInstanceStatus() error {
err := retry.RetryOnConflict(retry.DefaultRetry, func() error {
if err := rr.Client.Status().Update(context.TODO(), rr.Instance); err != nil {
return errors.Wrap(err, "UpdateInstanceStatus: failed to update instance status")
}
return nil
})

if err != nil {
// May be conflict if max retries were hit, or may be something unrelated
// like permissions or a network error
return err
}
return nil
}
32 changes: 32 additions & 0 deletions controllers/argocd/reposerver/status.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package reposerver

import (
"context"

"github.com/pkg/errors"
"k8s.io/client-go/util/retry"
)

// reconcileStatus will ensure that the Repo-server status is updated for the given ArgoCD instance
func (rsr *RepoServerReconciler) ReconcileStatus() error {

// TO DO

return rsr.updateInstanceStatus()
}

func (rsr *RepoServerReconciler) updateInstanceStatus() error {
err := retry.RetryOnConflict(retry.DefaultRetry, func() error {
if err := rsr.Client.Status().Update(context.TODO(), rsr.Instance); err != nil {
return errors.Wrap(err, "UpdateInstanceStatus: failed to update instance status")
}
return nil
})

if err != nil {
// May be conflict if max retries were hit, or may be something unrelated
// like permissions or a network error
return err
}
return nil
}
32 changes: 32 additions & 0 deletions controllers/argocd/server/status.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package server

import (
"context"

"github.com/pkg/errors"
"k8s.io/client-go/util/retry"
)

// reconcileStatus will ensure that the server status is updated for the given ArgoCD instance
func (sr *ServerReconciler) ReconcileStatus() error {

// TO DO

return sr.updateInstanceStatus()
}

func (sr *ServerReconciler) updateInstanceStatus() error {
err := retry.RetryOnConflict(retry.DefaultRetry, func() error {
if err := sr.Client.Status().Update(context.TODO(), sr.Instance); err != nil {
return errors.Wrap(err, "UpdateInstanceStatus: failed to update instance status")
}
return nil
})

if err != nil {
// May be conflict if max retries were hit, or may be something unrelated
// like permissions or a network error
return err
}
return nil
}
2 changes: 1 addition & 1 deletion controllers/argocd/sso/sso.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
)

type SSOReconciler struct {
Client *client.Client
Client client.Client
Scheme *runtime.Scheme
Instance *argoproj.ArgoCD
Logger logr.Logger
Expand Down
32 changes: 32 additions & 0 deletions controllers/argocd/sso/status.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package sso

import (
"context"

"github.com/pkg/errors"
"k8s.io/client-go/util/retry"
)

// reconcileStatus will ensure that the sso status is updated for the given ArgoCD instance
func (sr *SSOReconciler) ReconcileStatus() error {

// TO DO

return sr.updateInstanceStatus()
}

func (sr *SSOReconciler) updateInstanceStatus() error {
err := retry.RetryOnConflict(retry.DefaultRetry, func() error {
if err := sr.Client.Status().Update(context.TODO(), sr.Instance); err != nil {
return errors.Wrap(err, "UpdateInstanceStatus: failed to update instance status")
}
return nil
})

if err != nil {
// May be conflict if max retries were hit, or may be something unrelated
// like permissions or a network error
return err
}
return nil
}
53 changes: 53 additions & 0 deletions controllers/argocd/status.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,61 @@ func (r *ArgoCDReconciler) reconcileStatus(cr *argoproj.ArgoCD) error {
>>>>>>> 32c01d0 (chore: rebase against master branch (#1010))
=======
"github.com/argoproj-labs/argocd-operator/pkg/argoutil"
"github.com/argoproj-labs/argocd-operator/pkg/util"
)

// reconcileStatus will ensure that all of the Status properties are updated for the given ArgoCD.
func (r *ArgoCDReconciler) reconcileStatus() error {
var statusErr util.MultiError

if err := r.AppController.ReconcileStatus(); err != nil {
r.Logger.Error(err, "reconcileStatus")
statusErr.Append(err)
}

if err := r.ServerController.ReconcileStatus(); err != nil {
r.Logger.Error(err, "reconcileStatus")
statusErr.Append(err)
}

if err := r.RedisController.ReconcileStatus(); err != nil {
r.Logger.Error(err, "reconcileStatus")
statusErr.Append(err)
}

if err := r.ReposerverController.ReconcileStatus(); err != nil {
r.Logger.Error(err, "reconcileStatus")
statusErr.Append(err)
}

if err := r.AppsetController.ReconcileStatus(); err != nil {
r.Logger.Error(err, "reconcileStatus")
statusErr.Append(err)
}

if err := r.NotificationsController.ReconcileStatus(); err != nil {
r.Logger.Error(err, "reconcileStatus")
statusErr.Append(err)
}

if err := r.SSOController.ReconcileStatus(); err != nil {
r.Logger.Error(err, "reconcileStatus")
statusErr.Append(err)
}

// TO DO

// if err := r.reconcileStatusHost(cr); err != nil {
// return err
// }

// if err := r.reconcileStatusPhase(cr); err != nil {
// return err
// }

return statusErr.ErrOrNil()
}

// reconcileStatus will ensure that all of the Status properties are updated for the given ArgoCD.
func (r *ReconcileArgoCD) reconcileStatus(cr *argoproj.ArgoCD) error {
>>>>>>> 260cca0 (rebase: update main.go, go mod files and docs (7/8) (#1141))
Expand Down

0 comments on commit 3f53385

Please sign in to comment.