A Kubernetes operator for managing Argo CD clusters.

Overview

Argo CD Operator

Build Status Go Report Card Documentation Status Contributor Covenant

A Kubernetes operator for managing Argo CD clusters.

Documentation

See the documentation for installation and usage of the operator.

License

The Argo CD Operator is released under the Apache 2.0 license. See the LICENSE file for details.

Comments
  • feat: Upgrade RH-SSO to v7.5.1 and support kube:admin, ocp groups and proxy env

    feat: Upgrade RH-SSO to v7.5.1 and support kube:admin, ocp groups and proxy env

    What type of PR is this?

    /kind enhancement

    What does this PR do / why we need it:

    This PR adds the below enhancements.

    • Added missing RBAC annotations in agocd_controller.go: template.openshift.io and oauth.openshift.io api groups. Without these annotations, RBAC manifests won't get generated properly in order to install RHSSO.
    • Removed hardcoded OIDC client secrets and replaced them by generated random strings. These client secrets do not need to be stored.
    • Added KeycloakIdentityProviderMapper to workaround https://github.com/keycloak/keycloak-operator/issues/471. Without the workaround, tokens can't be translated to credentials that contain the group identity.
    • Propagated proxy environment variables from operator to Keycloak containers so that outbound calls can go through cluster proxy if cluste proxy is configured.
    • Delete OAuth client using foreground propagation policy to ensure that the garbage collector removes all instantiated objects before the TemplateInstance itself disappears.
    • Add extra Delete OAuth client calls to workaround https://github.com/openshift/client-go/issues/209
    • Add retries to handle RHSSO image upgrade
    • Upgrades the default version of RH-SSO to 7.5.1
    • Adds support to login with kube:admin OpenShift User.
    • With this PR, RH-SSO can fetch the group details of OpenShift Users(You should see the group details of the logged in user in the Argo CD console). This will help admins define Group Level RBAC for their OpenShift groups. https://github.com/keycloak/keycloak/pull/8381
    • Kube:admin by default you only have. Not working previously. not an OS user. https://github.com/keycloak/keycloak/pull/8428
    • RHSSO works in proxy enabled cluster with no additional or manual configuration. https://github.com/keycloak/keycloak/pull/8559 *. Upgrades Keycloak version to 15.0.2. On non-OpenShif Kubernetes clusters, users will see a Keycloak version upgrade from 9.0.3 to 15.0.2

    Upgrades

    Whether you are using the Operator on Kubernetes or OpenShift, Version upgrades mentioned above are smooth and does not require any manual intervention other than upgrading the operator to new version(0.3.0) once it's released.

    Have you updated the necessary documentation?

    • [x] Documentation update is required by this PR.
    • [x] Documentation has been updated.

    How to test changes / Special notes to the reviewer:

    Kubernetes:

    1. Deploy the below catalog source
    apiVersion: operators.coreos.com/v1alpha1
    kind: CatalogSource
    metadata:
      name: argocd-catalog
    spec:
      sourceType: grpc
      image: quay.io/aveerama/argocd-operator-index@sha256:bb0db86d3e6e27fe9d9e6891027db62e3b15f2947d65b059de8c7aae3a582eda
      displayName: Argo CD Operators
      publisher: Argo CD Community
    
    1. Run the make target to install the CRDs make install
    2. kubectl create namespace argocd
    3. kubectl create -n argocd -f deploy/operator_group.yaml
    4. kubectl create -n argocd -f deploy/subscription.yaml
    5. kubectl create -n argocd -f examples/argocd-keycloak-k8s.yaml

    OpenShift:

    1. Deploy the below catalog source into openshift-operators namespace.
    apiVersion: operators.coreos.com/v1alpha1
    kind: CatalogSource
    metadata:
      name: argocd-catalog
    spec:
      sourceType: grpc
      image: quay.io/aveerama/argocd-operator-index@sha256:bb0db86d3e6e27fe9d9e6891027db62e3b15f2947d65b059de8c7aae3a582eda
      displayName: Argo CD Operators
      publisher: Argo CD Community
    
    1. Move to Operator Hub to install the Operator.
    2. kubectl create namespace argocd
    3. kubectl create -n argocd -f examples/argocd-keycloak-openshift.yaml

    Testing upgrade:

    1. Install the 0.2.0 of operator(same for k8s and OpenShift).
    2. Create an Argo CD Instance with Keycloak as shown above.
    3. Delete the operator but keep the Argo CD Instance and workloads as is.
    4. Now, Install the new version of operator and see if the Keycloak pod is recreated and updated.

    How to test login with kube:admin

    On your OpenShift cluster, Go to Networking -> Routes -> Click on the Argo CD route.

    1. Click on Login Via Keycloak -> Login with OpenShift -> Provide kubeadmin credentials.
    2. Once you login to Argo CD, you can also confirm this by looking into the user profile section.

    Run E2E test:

    Download kuttl on your laptop or server Run operator locally or through the bundle. Run the below command to execute rhsso e2e tests kubectl kuttl test --config kuttl-test-rhsso.yaml

    opened by iam-veeramalla 22
  • Dex can't be disabled

    Dex can't be disabled

    Describe the bug

    Hi, the documentation describing how to disable Dex is not correct. The following subscription configuration does NOT disable it:

    To Reproduce

    apiVersion: operators.coreos.com/v1alpha1
    kind: Subscription
    metadata:
      name: argocd-operator
    spec:
      # channel: alpha
      name: argocd-operator
      # source: argocd-catalog
      source: operatorhubio-catalog
      sourceNamespace: olm
      config:
        env:
          - name: DISABLE_DEX
            value: "true"
          - name: ARGOCD_CLUSTER_CONFIG_NAMESPACES
            value: argocd
    

    Expected behavior

    The configuration to stop dex from starting.

    Additional context

    Deployed version: v2.3.3-07ac038

    bug good first issue 
    opened by Morriz 21
  • Pods stuck in crashloop after update to 0.0.14

    Pods stuck in crashloop after update to 0.0.14

    Hi :)

    First thanks for the great Operator :)!

    I updated our Dev Cluster today from 0.0.13 to 0.0.14 and since then two pods are crashlooping :(

    See below logs :)

    argocd-repo-server

    time="2020-10-14T11:48:10Z" level=info msg="Initializing GnuPG keyring at /app/config/gpg/keys"
    time="2020-10-14T11:48:10Z" level=fatal msg="stat /app/config/gpg/keys/trustdb.gpg: permission denied"
    

    argocd-application-controller

    time="2020-10-14T11:48:10Z" level=info msg="appResyncPeriod=3m0s"
    time="2020-10-14T11:48:10Z" level=info msg="Application Controller (version: v1.7.7+33c93ae, built: 2020-09-29T04:56:38Z) starting (namespace: argocd)"
    time="2020-10-14T11:48:10Z" level=info msg="Starting configmap/secret informers"
    time="2020-10-14T11:48:10Z" level=info msg="Configmap/secret informer synced"
    E1014 11:48:10.261304       1 runtime.go:78] Observed a panic: "assignment to entry in nil map" (assignment to entry in nil map)
    goroutine 63 [running]:
    k8s.io/apimachinery/pkg/util/runtime.logPanic(0x1cbec40, 0x227bc80)
    	/go/pkg/mod/k8s.io/[email protected]/pkg/util/runtime/runtime.go:74 +0xa3
    k8s.io/apimachinery/pkg/util/runtime.HandleCrash(0x0, 0x0, 0x0)
    	/go/pkg/mod/k8s.io/[email protected]/pkg/util/runtime/runtime.go:48 +0x82
    panic(0x1cbec40, 0x227bc80)
    	/usr/local/go/src/runtime/panic.go:967 +0x166
    github.com/argoproj/argo-cd/util/settings.addStatusOverrideToGK(...)
    	/go/src/github.com/argoproj/argo-cd/util/settings/settings.go:508
    github.com/argoproj/argo-cd/util/settings.(*SettingsManager).GetResourceOverrides(0xc0000f78c0, 0xc000ecaed0, 0x0, 0x0)
    	/go/src/github.com/argoproj/argo-cd/util/settings/settings.go:485 +0x468
    github.com/argoproj/argo-cd/controller/cache.(*liveStateCache).loadCacheSettings(0xc00030db80, 0x10, 0xc0004a1380, 0x1ac619d)
    	/go/src/github.com/argoproj/argo-cd/controller/cache/cache.go:113 +0x9b
    github.com/argoproj/argo-cd/controller/cache.(*liveStateCache).Init(0xc00030db80, 0x2309518, 0xc000639c20)
    	/go/src/github.com/argoproj/argo-cd/controller/cache/cache.go:417 +0x2f
    github.com/argoproj/argo-cd/controller.(*ApplicationController).Run(0xc0004c9680, 0x22ead00, 0xc0004b9580, 0x14, 0xa)
    	/go/src/github.com/argoproj/argo-cd/controller/appcontroller.go:454 +0x26d
    created by main.newCommand.func1
    	/go/src/github.com/argoproj/argo-cd/cmd/argocd-application-controller/main.go:109 +0x90c
    panic: assignment to entry in nil map [recovered]
    	panic: assignment to entry in nil map
    
    goroutine 63 [running]:
    k8s.io/apimachinery/pkg/util/runtime.HandleCrash(0x0, 0x0, 0x0)
    	/go/pkg/mod/k8s.io/[email protected]/pkg/util/runtime/runtime.go:55 +0x105
    panic(0x1cbec40, 0x227bc80)
    	/usr/local/go/src/runtime/panic.go:967 +0x166
    github.com/argoproj/argo-cd/util/settings.addStatusOverrideToGK(...)
    	/go/src/github.com/argoproj/argo-cd/util/settings/settings.go:508
    github.com/argoproj/argo-cd/util/settings.(*SettingsManager).GetResourceOverrides(0xc0000f78c0, 0xc000ecaed0, 0x0, 0x0)
    	/go/src/github.com/argoproj/argo-cd/util/settings/settings.go:485 +0x468
    github.com/argoproj/argo-cd/controller/cache.(*liveStateCache).loadCacheSettings(0xc00030db80, 0x10, 0xc0004a1380, 0x1ac619d)
    	/go/src/github.com/argoproj/argo-cd/controller/cache/cache.go:113 +0x9b
    github.com/argoproj/argo-cd/controller/cache.(*liveStateCache).Init(0xc00030db80, 0x2309518, 0xc000639c20)
    	/go/src/github.com/argoproj/argo-cd/controller/cache/cache.go:417 +0x2f
    github.com/argoproj/argo-cd/controller.(*ApplicationController).Run(0xc0004c9680, 0x22ead00, 0xc0004b9580, 0x14, 0xa)
    	/go/src/github.com/argoproj/argo-cd/controller/appcontroller.go:454 +0x26d
    created by main.newCommand.func1
    	/go/src/github.com/argoproj/argo-cd/cmd/argocd-application-controller/main.go:109 +0x90c
    
    bug 
    opened by Numblesix 19
  • feat: changes to support the feature apps in any namespaces

    feat: changes to support the feature apps in any namespaces

    What type of PR is this? /kind enhancement

    What does this PR do / why we need it: The PR adds support for the feature apps in any namespace added upstream. To do so, the PR adds new command args --additional-namespace to ArgoCD ApplicationController and ArgoCD Server components. Also, the PR adds new roles in the respective namespaces for ArgoCD Server to perform actions in the namespace.

    Have you updated the necessary documentation?

    • [x] Documentation update is required by this PR.
    • [x] Documentation has been updated.

    Which issue(s) this PR fixes: https://issues.redhat.com/browse/GITOPS-2341

    How to test changes / Special notes to the reviewer:

    • Run make install run
    • Create namespaces argocd-test and argocd-1
    • Deploy an ArgoCD instance using below yaml file
    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCD
    metadata:
      name: example-argocd
    spec:
      controller:
        sourceNamespaces:
        - argocd
        - argocd-1
      notifications:
        enabled: True
        env:
          - name: foo
            value: bar
      server:
        ingress:
          enabled: true
        sourceNamespaces:
        - argocd-test
        - argocd-1
    
    • Check if the ArgoCD pods came up successfully using command kubectl get pods | grep example-argocd

    • Check whether the new roles were created in namespaces argocd-test and argocd-1

    • Check if the namespaces argocd-test and argocd-1 have a new label argocd.argoproj.io/managed-by-cluster-argocd

    • e2e test for the PR. kubectl kuttl test ./tests/k8s --config ./tests/kuttl-tests.yaml --test 1-024_validate_apps_in_any_namespace

    opened by ishitasequeira 16
  • Add the ability to define content to be inserted into the argocd-cm configmap

    Add the ability to define content to be inserted into the argocd-cm configmap

    A lot of additional configuration is handled within the argocd-cm configmap. Is there currently a way to define this as part of the request to spin up an ArgoCD instance? I don't see anything that pops out after a quick scan of the docs -- but is this currently possible with this operator? If not, is this something that this operator would want to do in the future? Happy to help contribute some of this if it would be accepted.

    enhancement 
    opened by tylerauerbeck 15
  • feat: Support Ingress Class Annotation in Argo CD CRD

    feat: Support Ingress Class Annotation in Argo CD CRD

    What type of PR is this? /kind enhancement

    What does this PR do / why we need it: This PR adds IngressClass support to Ingress resources.

    Have you updated the necessary documentation?

    • [x] Documentation update is required by this PR.
    • [x] Documentation has been updated.

    Which issue(s) this PR fixes:

    Fixes #626

    How to test changes / Special notes to the reviewer:

    Relevant tests can be run by the following command:

    go test -v -run 'TestReconcileArgoCD_reconcile_.*Ingress_ingressClassName' ./controllers/argocd/
    

    Change can be tested by setting up a dev environment and applying the following manifest:

    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCD
    metadata:
      name: example-argocd
      labels:
        example: ingress
    spec:
      server:
        grpc:
          ingress:
            enabled: true
        ingress:
          enabled: true
          ingressClassName: nginx
        insecure: true
    

    Note: As discussed in #626, this PR contains a breaking change: kubernetes.io/ingress.class annotation is no longer added and nginx is no longer the default ingress controller (Kubernetes will fall back to the default ingress class)

    Default nginx annotations (SSL redirect, backend) are still added though.

    opened by sagikazarmark 13
  • feat(argocd): Update controller-runtime for cached namespaces fix

    feat(argocd): Update controller-runtime for cached namespaces fix

    /kind bug

    What does this PR do / why we need it:

    This updates the controller runtime to support the latest round of bug fixes for multiple namespaces.

    Which issue(s) this PR fixes:

    Fixes #337

    opened by sylus 13
  • Add an option to give the argocd-application-controller cluster-admin (or similar) rights.

    Add an option to give the argocd-application-controller cluster-admin (or similar) rights.

    It would be nice to have the ability to grant Argo CD "cluster-admin" capabilities (or something similar) to allow for more cluster configuration to be controlled by Argo CD.

    For example, with Argo CD 0.0.3 I had altered the argocd-application-controller role to allow Argo CD to:

    • Create namespaces
    • CRUD on secrets, even in openshift- namespaces.
    • Update scc's.

    This was nice because I could have almost my entire cluster configuration backed up in git, and modified through pull request.

    The ability to control the service accounts that get the anyuid scc was nice as well. The version of Bitnami Sealed Secrets that I'm using on the cluster requires a service account with anyuid. I was able to have this scc yaml file in git managed by Argo CD, so if I created a new cluster, I didn't have to remember to add that scc to the service account.

    Also, it was nice to have Argo CD manage my OAuth config. When I have a new cluster, creating the "cluster config" project and application was enough to have Htpasswd and Github auth applied to my cluster.

    I also like the idea of restricting resources/verbs on a per-project basis.

    I'm not very familiar with the workings of the operator, but my naive suggestion would be an additional flag on the argocd CRD to grant cluster-admin by default.

    Thanks.

    opened by pittar 13
  • feat: unify SSO configuration under `.spec.sso` in backward-compatible way

    feat: unify SSO configuration under `.spec.sso` in backward-compatible way

    What type of PR is this?

    Uncomment only one /kind line, and delete the rest. For example, > /kind bug would simply become: /kind bug

    /kind bug /kind chore /kind cleanup /kind failing-test /kind enhancement /kind documentation /kind code-refactoring

    What does this PR do / why we need it: This PR re-introduces the effort to unify existing SSO configuration options for dex and keycloak under .spec.sso. It intoduces .spec.sso.dex and .spec.sso.keycloak. It also maintains backward compatibility to support .spec.dex, DISABLE_DEX and existing .spec.sso fields for keycloak configuration until they are deprecated in v0.6.0. It emits events warning users of these soon-to-be-deprecated config options. Since we need to support both the old and new config specs for dex and keycloak, this PR introduces a wide range of checks in order to ensure there is no mismatch or illegal combinations of the various SSO spec options available

    IMPORTANT NOTES

    1. SInce https://github.com/argoproj-labs/argocd-operator/pull/615 was merged, dex health check will fail if dex is running but is not configured. Therefore this PR introduces a new constraint where dex cannot be enabled (either through .spec.ssp.provider=dex or DISABLE_DEX=false) without providing some kind of configuration in .spec.dex or .spec.sso.dex
    2. if using the env var, the absence of DISABLE_DEX no longer implies that dex is enabled by default. It will be treated as saying dex is disabled instead. In order not to break existing workloads, if dex pods are found to be running but there is no DISBALE_DEX flag set, the dex resources not be deleted if any dex configuration is found to exist (either openShiftOAuth=true or dex.config is supplied). In all other cases, dex resources will be deleted

    Have you updated the necessary documentation?

    • [x] Documentation update is required by this PR.
    • [ ] Documentation has been updated.

    Which issue(s) this PR fixes: https://github.com/argoproj-labs/argocd-operator/issues/653

    Fixes https://issues.redhat.com/browse/GITOPS-1332

    How to test changes / Special notes to the reviewer:

    1. launch operator locally with make run
    2. Create empty argo-cd instance
    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCD
    metadata:
      name: argocd
    spec: {}
    EOF
    
    1. Since DISABLE_DEX was not set, check that dex resources don't come up by default
    2. Set .spec.sso.provider=dex
    3. Observe dex deployment doesn't come up. Observe error in logs indicating dex must also be configured by supplying a .spec.sso.dex
    4. Set .spec.sso.dex.Config="test"
    5. Observe dex deployment comes up successfully
    6. Set .spec.sso.image=test-image
    7. Observe error in logs indicating .spec.sso fields (for keycloak) cannot be specified when .spec.sso.provider=dex
    8. Remove .spec.sso.image=test-image. Set .spec.sso.keycloak.image=test-image
    9. Observe error in logs indicating .spec.sso.keycloak cannot be specified when .spec.sso.provider=dex
    10. Remove .spec.sso.keycloak. Set.spec.dex.config=test-2`
    11. Observe error in logs indicating .spec.dex fields cannot be specified when .spec.sso.provider=dex
    12. Remove .spec.dex. Remove .spec.sso.dex. Set .spec.sso.provider=keycloak
    13. Observe that dex resources are deleted and keycloak resources are created successfully
    14. Set .spec.sso.image=<some-keycloak-image> and observe it gets updated
    15. Set .spec.sso.keycloak.image=xyz.
    16. Observe error in logs indicating that conflicting information cannot be provided in .spec.sso fields and equivalent .spec.sso.keycloak fields
    17. Remove .spec.sso keycloak fields (.spec.sso.image, .spec.sso.version, .spec.sso.resources, .spec.sso.verifyTLS) and .spec.sso.keycloak
    18. Set .spec.sso.dex.config=test
    19. Observe error in logs that .spec.sso.dex cannot be specified when .spec.sso.provider=keycloak
    20. Remove .spec.sso.dex. Set .spec.dex.openShiftOAuth=true
    21. Observe error in logs indicating that multiple SSO providers cannot be configured simultaneously
    22. Remove .spec.sso entirely and observe that keycloak resources are deleted =====================================================================================
    23. launch operator locally with make run DISABLE_DEX=false
    24. Create empty argo-cd instance
    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCD
    metadata:
      name: argocd
    spec: {}
    EOF
    
    1. Notice dex pod doesn't come up. Observe error in logs indicating that dex must be configured via .spec.dex if dex is enabled
    2. Set .spec.dex.openShiftOAuth=true
    3. Observe that dex pod comes up successfully
    4. Set .spec.dex.openShiftOAuth=false and .spec.sso.provider=keycloak
    5. Observe keycloak pod should come up in order to preserve existing behavior and not introduce a breaking change
    6. Remove .spec.sso.provider=keycloak, Set .spec.sso.keycloak.image=test
    7. Observe error in logs indicating that SSO provider spec cannot be supplied when .spec.sso.provider="
    8. Remove .spec.sso.provider and .spec.sso.keycloak
    9. Set .spec.sso.image=test
    10. Observe no errors in logs ========================================================================================
    11. Execute kubectl get events
    12. Observe that deprecation events were emitted warning users that .spec.dex, DISABLE_DEX and .spec.sso fields for key cloak have been deprecated and support will be removed in a future release
    opened by jaideepr97 12
  • feat: Publish latest operator image after push to master branch

    feat: Publish latest operator image after push to master branch

    What type of PR is this?

    Uncomment only one /kind line, and delete the rest. For example, > /kind bug would simply become: /kind bug

    /kind enhancement

    What does this PR do / why we need it: This PR adds a GHA workflow to build and publish the latest code to a container registry with the tag :latest. It requires three secrets to be created in the repository:

    • REGISTRY_URL - The registry to publish the image to (i.e. quay.io/<reponame>)
    • REGISTRY_USERNAME - The user to authenticate as
    • REGISTRY_PASSWORD - The password/token to use to authenticate

    This workflow will only run on push/merge to the master branch.

    Have you updated the necessary documentation?

    • [X] Documentation update is required by this PR.
    • [X] Documentation has been updated.

    Which issue(s) this PR fixes:

    Fixes #325

    How to test changes / Special notes to the reviewer: No great way to test this. But you can see this in action here:

    https://github.com/tylerauerbeck/argocd-operator/actions/runs/1024920750

    opened by tylerauerbeck 12
  • Multiple ArgoCD Instances in different Namespaces

    Multiple ArgoCD Instances in different Namespaces

    Using the watched_namespace environment variable I set ArgoCD to watch multiple namespaces such as "argocd-operator-system,org-fdi-system". However while ArgoCD does detect all of the ArgoCD instances I get an issue with the following message:

    unable to get: %v because of unknown namespace for the cache
    

    It seems this is related to the following upstream bug:

    • https://github.com/kubernetes-sigs/controller-runtime/issues/934

    I was just curious as to if any other people have came across this issue and maybe if I myself am doing something wrong. Appreciate any insight you can provide!

    question k8s 
    opened by sylus 12
  • server rolebinding does not have access to applicationset resource

    server rolebinding does not have access to applicationset resource

    Describe the bug If spec.applicationSet is enabled, the operator does not reconcile the server RoleBinding to manage ApplicationSets.

    To Reproduce Steps to reproduce the behavior:

    1. Create a basic cluster with applicationset-controller enabled:
    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCD
    metadata:
      name: example
    spec:
      applicationSet: {}
    
    $ kubectl apply -n argocd -f example.yaml
    
    1. Login into the CLI (in this case, with port-forward):
    $ kubectl port-forward -n argocd services/example-server 8080:443 &>/dev/null &
    $ argocd login localhost:8080 --insecure
    
    1. List applicationsets (for example):
    $ argocd appset list
    

    Expected behavior A list containing the installed applicationsets should display, instead the following error appears:

    FATA[0000] rpc error: code = PermissionDenied desc = error listing ApplicationSets with selectors: applicationsets.argoproj.io is forbidden: User "system:serviceaccount:argocd:example-argocd-server" cannot list resource "applicationsets" in API group "argoproj.io" in the namespace "argocd"
    

    Additional information Operator version: v0.5.0 (2f5c0d456760)

    bug 
    opened by cgrs 4
  • GITOPS-2480: Added HOME env var to controller container

    GITOPS-2480: Added HOME env var to controller container

    What type of PR is this? /kind bug

    What does this PR do / why we need it: GITOPS-2480

    Have you updated the necessary documentation?

    • [ ] Documentation update is required by this PR.
    • [ ] Documentation has been updated.

    Which issue(s) this PR fixes: Fixes GITOPS-2480

    How to test changes / Special notes to the reviewer:

    1. Create an argocd instance in a namespace which doesn't have cluster admin permission.
    2. Run kubectl get pods -A -v=20 command in the argocd-application-controller terminal.
    3. Confirm that there's no .kube: permission denied error
    opened by ciiay 0
  • feat: Allow user instance monitoring

    feat: Allow user instance monitoring

    What type of PR is this?

    Uncomment only one /kind line, and delete the rest. For example, > /kind bug would simply become: /kind bug

    /kind bug /kind chore /kind cleanup /kind failing-test /kind enhancement /kind documentation /kind code-refactoring

    What does this PR do / why we need it: This PR allows users to enable workload status monitoring for a given argo-cd instance. Enabling this creates a PrometheusRule for alerts (with 8 opinionated rules within it - one for each workload). The rules are configured to fire when a workload has remained in failed/pending state for a certain duration of time out of the box. Users are free to make changes to the alert rule and the operator would not overwrite them.

    Have you updated the necessary documentation? Not yet

    • [x] Documentation update is required by this PR.
    • [ ] Documentation has been updated.

    Which issue(s) this PR fixes:

    Fixes #?

    How to test changes / Special notes to the reviewer:

    opened by jaideepr97 0
  • WIP chore: update Argocd version 2.6.0-rc1 in master

    WIP chore: update Argocd version 2.6.0-rc1 in master

    (DO NOT MERGE YET- ArgoCDv2.6-RC2 will be released tomorrow and this PR will be updated accordingly then)

    What type of PR is this? /kind chore

    What does this PR do / why we need it: updated Argocd version to 2.6.0-rc1

    opened by reginapizza 1
  • feat: Expose instance level metrics

    feat: Expose instance level metrics

    What type of PR is this?

    Uncomment only one /kind line, and delete the rest. For example, > /kind bug would simply become: /kind bug

    /kind bug /kind chore /kind cleanup /kind failing-test /kind enhancement /kind documentation /kind code-refactoring

    What does this PR do / why we need it: This PR exposes new metrics to track the statuses of the argo-cd workloads. It defines the following metrics:

    argocd_application_controller_status Describes the status of the application controller workload [0='Unknown', 1='Failed', 2='Pending', 3='Running']
    argocd_applicationset_controller_status Describes the status of the applicationSet controller workload [0='Unknown', 1='Failed', 2='Pending', 3='Running']
    argocd_dex_status Describes the status of the dex workload [0='Unknown', 1='Failed', 2='Pending', 3='Running']
    argocd_phase Describes the phase of argo-cd instance [2='Pending', 4='Available']
    argocd_redis_status Describes the status of the redis workload [0='Unknown', 1='Failed', 2='Pending', 3='Running']
    argocd_repo_server_status Describes the status of the repo server workload [0='Unknown', 1='Failed', 2='Pending', 3='Running']
    argocd_server_status Describes the status of the argo-cd server workload [0='Unknown', 1='Failed', 2='Pending', 3='Running']
    

    It spins up a new metrics server that listens on port 8085 workload status reconciliation logic is updated to reflect the status within the newly defined metrics and write them out to the /metrics endpoint. Individual workload statuses can be queried by specifying the namespace of the instance that the workload is a part of.

    NOTE: this PR assumes there will not be more than 1 argo-cd instance in any namespace as that is an anti-pattern.

    This PR should be merged after https://github.com/argoproj-labs/argocd-operator/pull/829

    Have you updated the necessary documentation?

    • [ ] Documentation update is required by this PR.
    • [ ] Documentation has been updated.

    Which issue(s) this PR fixes:

    Fixes https://issues.redhat.com/browse/GITOPS-2456

    How to test changes / Special notes to the reviewer:

    1. Deploy operator locally
    2. Create argo-cd instance in argocd namespace
    3. Run a GET query against localhost:8085/metrics in postman/curl
    4. Verify that the response looks something like this :
    # HELP argocd_application_controller_status Describes the status of the application controller workload [0='Unknown', 1='Failed', 2='Pending', 3='Running']
    # TYPE argocd_application_controller_status gauge
    argocd_application_controller_status{namespace="argocd"} 3
    # HELP argocd_applicationset_controller_status Describes the status of the applicationSet controller workload [0='Unknown', 1='Failed', 2='Pending', 3='Running']
    # TYPE argocd_applicationset_controller_status gauge
    argocd_applicationset_controller_status{namespace="argocd"} 0
    # HELP argocd_dex_status Describes the status of the dex workload [0='Unknown', 1='Failed', 2='Pending', 3='Running']
    # TYPE argocd_dex_status gauge
    argocd_dex_status{namespace="argocd"} 0
    # HELP argocd_phase Describes the phase of argo-cd instance [2='Pending', 4='Available']
    # TYPE argocd_phase gauge
    argocd_phase{namespace="argocd"} 4
    # HELP argocd_redis_status Describes the status of the redis workload [0='Unknown', 1='Failed', 2='Pending', 3='Running']
    # TYPE argocd_redis_status gauge
    argocd_redis_status{namespace="argocd"} 3
    # HELP argocd_repo_server_status Describes the status of the repo server workload [0='Unknown', 1='Failed', 2='Pending', 3='Running']
    # TYPE argocd_repo_server_status gauge
    argocd_repo_server_status{namespace="argocd"} 3
    # HELP argocd_server_status Describes the status of the argo-cd server workload [0='Unknown', 1='Failed', 2='Pending', 3='Running']
    # TYPE argocd_server_status gauge
    argocd_server_status{namespace="argocd"} 3
    
    1. Edit Argo CD CR to enable notifications, and replace appset image by invalid one to create pending status
    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCD
    metadata:
      name: example-argocd
    spec:
      applicationSet:
        image: quay.io/argoproj/argocd@sha256:8283a9f06033c2377dc61b03daf49
      notifications:
        enabled: true
    
    1. Query again and verify that response now contains pending status for appset and running status for notifications controller
    # HELP argocd_applicationset_controller_status Describes the status of the applicationSet controller workload [0='Unknown', 1='Failed', 2='Pending', 3='Running']
    # TYPE argocd_applicationset_controller_status gauge
    argocd_applicationset_controller_status{namespace="argocd"} 2
    ...
    # HELP argocd_notifications_controller_status Describes the status of the notifications controller workload [0='Unknown', 1='Failed', 2='Pending', 3='Running']
    # TYPE argocd_notifications_controller_status gauge
    argocd_notifications_controller_status{namespace="argocd"} 3
    
    opened by jaideepr97 4
  • Add system-level configuration docs and fix minor typo

    Add system-level configuration docs and fix minor typo

    What type of PR is this?

    /kind bug /kind documentation

    What does this PR do / why we need it: This adds system-level configuration documentation that relates to resource customization. Also fixes a typo from "deployments" to "Deployment" in some kind fields.

    Which issue(s) this PR fixes: https://issues.redhat.com/browse/GITOPS-2463

    opened by reginapizza 0
Releases(v0.5.0)
  • v0.5.0(Dec 14, 2022)

    This release updates Argo CD to v2.5.4.

    Enhancements


    #794 feat: changes to support the feature apps in any namespaces #793 feat: add support for new subkeys in resource customizations #781 feat: Remove Argo CD as a base Image from the Export Dockerfile #771 feat: add support for env and proxy vars for notificaitons #812 feat: upgrade the registery base image to v1.26.2

    Fixes


    #817 fix: Argo CD .status.host is updated with wrong value when using Ingress on OpenShift clusters #815 fix: Argo CD Server fails to connect to Dex #786 fix: Update sso eventing logic to stop spam #775 fix: broken Argo CD Export for AWS #779 fix: export for Azure Blob Storage #772 fix: notification controller log level not working as expected #809 fix: add list and watch only for applications for cluster role #808 fix: restrict server clusterrole list and watch permissions to only applications #803 fix: discrepancy between Applicationset Controller Pod ContainerPort (8000) and Service TargetPort (8080) for metrics #786 fix: emit sso deprecation event only once for each instance that needs it #778 fix: remove default help chat url and text

    Docs


    #813 chore: add sample catalogsource #792 docs: fix typo in index.md #790 docs: add controller env variable examples #789 docs: documentation resource customizations example

    Contributions


    Many many thanks to all the folks who have contributed to the Argo CD Operator over the past few months. These many contributions, both big and small, general and specific, help to bring a more featureful and polished experience to Argo CD users. We could not do this without all of you!

    @ciiay @iam-veeramalla @ishitasequeira @jaideepr97 @jannfis @jopit @reginapizza @saumeya @wtam2018

    Source code(tar.gz)
    Source code(zip)
  • v0.4.0(Jul 27, 2022)

    This release updates Argo CD to v2.4.7.

    Enhancements


    #473 - feat: Allow users to pass Argo CD server command args from Argo CD CR(#468) #577 - feat: add permissions to manage monitoring resources #598 - feat: Enable configuration of resource tracking method #615 - Added probes to Dex container #635 - feat: add support for creating argocd notifications workloads #638 - Create notifications config resources #642 - feat: Add support for ExtraConfig in Argo CD CRD #646 - feat: unify SSO configuration under .spec.sso in backward-compatible way #647 - feat: Secure communication with redis #650 - feat: added env variable to remove managed-by label on argocd instance deletion #659 - docs: add documentation for notifications #662 - docs: Update documentation to reflect SSO unification in backward compatible way

    Fixes


    #534 - Allow Banner configuration for ArgoCD CRD #567 - cleanup: remove openshift related code from openshift package #587 - fix: panic when missing init containers #588 - bug: update workflow to avoid deleting Secrets while reconciling cluster permissions #590 - Add E2E tests for the operator #599 - chore: Fix readthedocs builds #602 - Fix docs to say host instead of URL #604 - fix: delete broken pods of statefulSets #605 - chore: cleanup reconcilation of roles, role bindings, service accounts #610 - chore: upgrade golangci-lint #624 - chore: update the go version and dependencies #625 - bug: fix continuous reconciliation of resources #629 - chore: Add security policy for Argo CD Operator #631 - update deprecated cronjob reference #664 - fix: operator overrides the OIDC configuration for Keycloak #681 - fix: nil pointer error for keycloak on openshift #682 - fix: Operator does not create necessary RoleBindings in all cases #687 - fix: minor spacing issue in trigger configuration #693 - fix: issue with redis image upgrade #704 - fix: pass cluster version to haproxy reconciler hook #707 - fix: added security context on operator manifest #714 - fix: added auto tls for redis ha

    Contributions


    Many many thanks to all the folks who have contributed to the Argo CD Operator over the past few months. These many contributions, both big and small, general and specific, help to bring a more featureful and polished experience to Argo CD users. We could not do this without all of you!

    @bakito @chetan-rns @ciiay @iam-veeramalla @ishitasequeira @jaideepr97 @jannfis @jopit @reginapizza @rishabh625 @sabre1041 @saumeya @wtam2018

    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Apr 20, 2022)

    This release updates Argo CD to v2.3.3.

    Enhancements


    #592 - feat: Upgrades RH-SSO to v7.5.1 and Keycloak to v15.0.2. - supports login with kube:admin - supports Argo CD RBAC using OpenShift groups - RH-SSO support for OpenShift clusters that run behind a proxy. #514 - Add route/ingress host to .status #594 - upgrade ApplicationSet to v0.4.1 #618 - Updated Dex version to v2.30.3

    Fixes


    #582 - fix: Set subject on CA cert used for signing self-signed certs #549 - fix: update operator capabilities level in CSV #557 - removed unnecessary roles/rolebindings for target namespace

    Contributions


    Many many thanks to all the folks who have contributed to the Argo CD Operator over the past few months. These many contributions, both big and small, general and specific, help to bring a more featureful and polished experience to Argo CD users. We could not do this without all of you!

    @chetan-rns @ciiay @iam-veeramalla @ishitasequeira @jaideepr97 @jannfis @jopit @reginapizza @wtam2018

    Source code(tar.gz)
    Source code(zip)
  • v0.2.1(Mar 2, 2022)

    This release updates Argo CD to v2.2.5.

    Fixes


    #553 - argocd-tls-certs-cm is overwritten on any change. CVE 2022-24348 - Path traversal vulnerability when specifying Helm value files.

    Contributions


    Many many thanks to all the folks who have contributed to the Argo CD Operator over the past few months. These many contributions, both big and small, general and specific, help to bring a more featureful and polished experience to Argo CD users. We could not do this without all of you!

    @iam-veeramalla @jannfis @jopit @wtam2018

    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(Jan 25, 2022)

    This release updates Argo CD to v2.2.2.

    Enhancements


    #491 - Updated Dex version to v2.30.0 #518 - Support for custom roles using env variables #458 - Allow setting replicas for argo cd repo server and argo cd server.

    Fixes


    #508 - ApplicationSet Controller Does Not Receive Proxy Configuration #530 - Filter managed namespaces only once per reconciliation #516 - Managed namespace not getting properly removed from argo cd instance #507 #490 - Fix broken Argo CD exports #498 - Publish latest operator build to quay workflow is failing #492 #493 - Operator cannot install keycloak when resource quota scope is not set #506 - Fix crash when no .data exists in argo cd secret #504 - Fix repo and argo cd server field documentation #467 - Fix pod restarts on Proxy cluster

    Contributions


    Many many thanks to all the folks who have contributed to the Argo CD Operator over the past few months. These many contributions, both big and small, general and specific, help to bring a more featureful and polished experience to Argo CD users. We could not do this without all of you!

    @chetan-rns @iam-veeramalla @jaideepr97 @jannfis @jopit @reginapizza @samanamp @tylerauerbeck @wtam2018

    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(Nov 9, 2021)

    This release updates to Argo CD 2.1.6, as well as updating the operator-sdk framework used to 1.11.0

    Enhancements

    • https://github.com/argoproj-labs/argocd-operator/pull/290 - feat: Reconcile argocd-repo-server-tls volume mounts
    • https://github.com/argoproj-labs/argocd-operator/pull/303 - feat: Reconcile on change of argocd-repo-server-tls and implement AutoTLS feature
    • https://github.com/argoproj-labs/argocd-operator/pull/316 - feat: Configure Keycloak SSO for Argo CD Instance
    • https://github.com/argoproj-labs/argocd-operator/pull/326 - feat: Enable service CA for reencrypt routes to argocd-server on OpenShift
    • https://github.com/argoproj-labs/argocd-operator/pull/346 - allow operator to manage permissions based on namespace labels
    • https://github.com/argoproj-labs/argocd-operator/pull/358 - Add ability to specify Repo server image and tag
    • https://github.com/argoproj-labs/argocd-operator/pull/360 - feat: Add ability to apply additional labels to generated routes
    • https://github.com/argoproj-labs/argocd-operator/pull/362 - feat: Add the ability to specify additional kustomize versions within the ArgoCD ConfigMap
    • https://github.com/argoproj-labs/argocd-operator/pull/371 - feat: Add ability to configure loglevel for each ArgoCD component
    • https://github.com/argoproj-labs/argocd-operator/pull/384 - feat: Add ability to shard application controller
    • https://github.com/argoproj-labs/argocd-operator/pull/387 - feat: Add log format for ArgoCD components
    • https://github.com/argoproj-labs/argocd-operator/pull/406 - Upgrade operator-sdk to 1.10.0
    • https://github.com/argoproj-labs/argocd-operator/pull/410 - feat: add NodeSelector and Tolerations in argo crd
    • https://github.com/argoproj-labs/argocd-operator/pull/415 - feat: Allow setting ARGOCD_EXEC_TIMEOUT in repo server
    • https://github.com/argoproj-labs/argocd-operator/pull/429 - chore: upgrade operator-sdk to v1.11.0
    • https://github.com/argoproj-labs/argocd-operator/pull/432 - feat: Add support to restrict login to optional list of groups using Dex
    • https://github.com/argoproj-labs/argocd-operator/pull/437 - feat: Allow setting custom environment in Argo CD workloads
    • https://github.com/argoproj-labs/argocd-operator/pull/444 - feat: Make parallelism limit configurable and set default to 10

    Fixes

    • https://github.com/argoproj-labs/argocd-operator/pull/287 - fix: volume mount argocd-gpg-keys-cm to repo server pods
    • https://github.com/argoproj-labs/argocd-operator/pull/291 - ApplicationSet controller not mounting ArgoCD secrets to access repositories through SSH
    • https://github.com/argoproj-labs/argocd-operator/pull/305 - fix: add compute resources to init containers
    • https://github.com/argoproj-labs/argocd-operator/pull/331 - Add owner reference to the cluster secret
    • https://github.com/argoproj-labs/argocd-operator/pull/364 - fix: Allow reconciliation of resource overrides
    • https://github.com/argoproj-labs/argocd-operator/pull/366 - fix: Allow ArgoCD CR to override keycloak resource request/limit defaults
    • https://github.com/argoproj-labs/argocd-operator/pull/367 - fix: Keycloak fails to update OIDC config in argocd-cm intermittently
    • https://github.com/argoproj-labs/argocd-operator/pull/368 - fix: delete existing RBACs when namespace label is updated
    • https://github.com/argoproj-labs/argocd-operator/pull/372 - fix: operator crashes on reconciliation when existing Argo CD configmap is empty
    • https://github.com/argoproj-labs/argocd-operator/pull/376 - fix: ArgoCD server resources limit/request changes in ArgoCD CR are not reconcilied
    • https://github.com/argoproj-labs/argocd-operator/pull/378 - fix: ApplicationSet controller Deployment reconcilliation update logic misses volume field
    • https://github.com/argoproj-labs/argocd-operator/pull/389 - fix: Operator errors on reconciling namespaces, Cannot list resource namespaces
    • https://github.com/argoproj-labs/argocd-operator/pull/401 - fix: Make parallelism limit configurable and set default to 10
    • https://github.com/argoproj-labs/argocd-operator/pull/413 - fix: Only set ownerReferences for roles & rolebindings in CR's namespace
    • https://github.com/argoproj-labs/argocd-operator/pull/414 - fix: Do not copy all labels from ArgoCD CR to resources we create
    • https://github.com/argoproj-labs/argocd-operator/pull/417 - FIX: remove RBACs from target-namespace when ArgoCD instance is deleted
    • https://github.com/argoproj-labs/argocd-operator/pull/421 - fix: Do not restart argocd-server on changes to argocd-tls
    • https://github.com/argoproj-labs/argocd-operator/pull/428 - fix: upgrade ingress to networking/v1
    • https://github.com/argoproj-labs/argocd-operator/pull/434 - fix: Remove trailing newline from admin.password
    • https://github.com/argoproj-labs/argocd-operator/pull/440 - Fix: managed-by label reset to source namespace
    • https://github.com/argoproj-labs/argocd-operator/pull/442 - fix: log error and update status when both dex and keycloak are configured
    • https://github.com/argoproj-labs/argocd-operator/pull/446 - fix: Invalid Image location for ApplicationSets
    • https://github.com/argoproj-labs/argocd-operator/pull/449 - fix: add nodePlacement check in applicationSet reconciler
    • https://github.com/argoproj-labs/argocd-operator/pull/452 - fix: Keycloak deployments do not respect NodeSelector and Tolerations in the Argo CD CR
    • https://github.com/argoproj-labs/argocd-operator/pull/453 - fix: Changing log level/format triggers reconciliation
    • https://github.com/argoproj-labs/argocd-operator/pull/454 - Update applicationset crd to v0.2.0
    • https://github.com/argoproj-labs/argocd-operator/pull/465 - fix: reposerver, server and controller pods restart continuously when multiple env vars are set

    Note that due to the upgrade of the operator-sdk version, the operator itself no longer creates a ServiceMonitor CR to expose the operator's default metric (This does not affect the metrics exposed by Argo CD itself). To expose the operator's default metrics, create the following CR in the namespace where the operator is installed

    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      labels:
        control-plane: controller-manager
      name: argocd-operator-controller-manager-metrics-monitor
    spec:
      endpoints:
      - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
        path: /metrics
        port: https
        scheme: https
        tlsConfig:
          insecureSkipVerify: true
      selector:
        matchLabels:
          control-plane: controller-manager
    
    Source code(tar.gz)
    Source code(zip)
  • v0.0.15(Apr 20, 2021)

    This release includes the following enhancements, bug fixes and documentation updates.

    Enhancements

    • #184 - Add Property to Disable Admin User
    • #194 - Add support for proxies in the repo-server deployment
    • #280 - Add support for Argo CD 2.0.

    Bug Fixes

    • #186 - Pods stuck in crashloop after update to 0.0.14
    • #187 - Fix issue with replacing the resource configuration
    • #191 - Missing gpg configmap after update argocd-operator 0.0.13 to 0.0.14

    Documentation

    • #189 - Add documentation for the resourceInclusions property
    • #190 - Fixed port-forward command
    • #195 - Fixed wrong TLS key example for server route
    Source code(tar.gz)
    Source code(zip)
  • v0.0.14(Oct 13, 2020)

    This release includes the following enhancements, bug fixes and documentation updates.

    Enhancements

    • #148 - Add support for Argo CD 1.7.
    • #144 - Add option to control resync frequency for argocd application controller.
    • #167 - Support cert-utils-operator with the CA generation.

    Bug Fixes

    • #122 - Fix reconciliation of argocd-tls-certs-cm.
    • #151 - Fix for not updating when changing the ArgoCD resource
    • #152 - Fix OLM version mismatch/initialSSHKnownHosts validation error.
    • #162 - Don't rereconcile deleted ArgoCD objects.

    Documentation

    • #140 - Update example with how to enable Routes.
    • #156 - Fix a mistake in the Routes documentation with password retrieval.
    • #173 - Document a small nuanced issue with group mappings.
    Source code(tar.gz)
    Source code(zip)
  • v0.0.13(Jul 29, 2020)

    This release continues the use of Argo CD v1.6.1 and includes the following enhancements:

    • Updates to Server TLS Secret Should Sync With Argo Secret
    • Add Properties for Redis HAProxy Component to control image/tag
    • Allow users to either include/exclude the default ssh hosts that are included with ArgoCD by default
    Source code(tar.gz)
    Source code(zip)
  • v0.0.12(Jul 15, 2020)

    This release continues the use of Argo CD v1.6.1 and includes the following enhancements:

    • Update operator-sdk Dependency to v0.18.0
    • Share ServiceAcount for Redis Components
    Source code(tar.gz)
    Source code(zip)
  • v0.0.11(Jul 1, 2020)

    This release includes the following enhancements and bug fixes:

    Enhancements

    • Update to Argo CD v1.6.1
    • Allow mounting of ServiceAccountToken / specifying of ServiceAccount in Repo Server
    • Ability to utilize repository.credentials in initialRepositories

    Bug Fixes

    • Handle upgrades for all Argo CD components
    Source code(tar.gz)
    Source code(zip)
  • v0.0.10(Jun 29, 2020)

    This release updates Argo CD to v1.5.8 and includes the following:

    ⚠️ BREAKING CHANGE NOTICE ⚠️

    The ArgoCD custom resource has breaking changes to the Ingress and Route properties.

    Ingress: The Spec.Ingress property has been removed from the ArgoCD custom resource. The Spec.Grafana.Ingress, Spec.Prometheus.Ingress and Spec.Server.Ingress properties have all been converted from a boolean value to an object that allows for more customization of the Ingress resource for those components that are managed by the operator. The following shows the old and new way of defining Ingress options.

    OLD

    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCD
    metadata:
    name: example-argocd
    spec:
        ingress:
            host: myhost
            path: /mypath
        server:
            grpc:
                ingress: true
            ingress: true
            insecure: true
    

    NEW

    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCD
    metadata:
        name: example-argocd
    spec:
        server:
            grpc:
                ingress:
                    enabled: true
            host: myhost
            ingress:
                enabled: true
                path: /mypath
                tls:
                    secretName: my-secret
            insecure: true
    

    Routes: The Spec.Grafana.Route, Spec.Prometheus.Route and Spec.Server.Route properties have all been converted from a boolean value to an object that allows for more customization of the Route resource for those components that are managed by the operator. The following shows the old and new way of defining Route options.

    OLD

    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCD
    metadata:
        name: example-argocd
    spec:
        grafana:
            enabled: true
            route: true
        prometheus:
            enabled: true
            route: true
        server:
            route: true
    

    NEW

    apiVersion: argoproj.io/v1alpha1
    kind: ArgoCD
    metadata:
        name: example-argocd
    spec:
        grafana:
            enabled: true
            route:
                enabled: true     
        prometheus:
            enabled: true
            route:
                enabled: true
        server:
            host: myhost
            route:
                enabled: true
                path: /mypath
                tls:
                    termination: passthrough
                    insecureEdgeTerminationPolicy: Redirect
                wildcardPolicy: None
    

    New Features

    • Add options to customize Ingress and Route resources managed by the operator. See breaking change notice above.
    • The operator will now report the status for each component on the ArgoCD custom resource. In addition the Phase status property will be updated by looking at the following components.
      • Argo CD Application Controller
      • Redis
      • Repo Server
      • Argo CD Server
    • Generate OLM artifacts using the new OLM bundle format. Currently both formats are supported until the old format is retired.

    Bug Fixes

    • Fixed bug in the naming of Argo CD server Ingress resources that prevented the Argo CD URL from being set correctly.
    Source code(tar.gz)
    Source code(zip)
  • v0.0.9(May 27, 2020)

    This release includes the following along with several documentation updates.

    • Update Operator to Argo CD v1.5.5
    • Add Support for Backups to an Azure Storage Container
    • Add Support for Backups to a GCP Bucket
    • Upgrade operator-sdk to v0.17.0
    Source code(tar.gz)
    Source code(zip)
  • v0.0.8(Apr 21, 2020)

    This release contains the following bug fixes.

    • Only Initialize Repos, SSH Known Host and Certs
    • Rename Cluster Secret to Avoid Name Collisions
    • Allow Override of Host on Routes
    • Trigger Rollout for Dex when Configuration Changes
    Source code(tar.gz)
    Source code(zip)
  • v0.0.7(Apr 16, 2020)

    This release updates the operator to deploy Argo CD v1.5.2, which addresses CVE-2020-5260.

    See the following for more information:

    • https://github.com/git/git/security/advisories/GHSA-qm7j-c969-7j4q
    • https://github.com/argoproj/argo-cd/releases/tag/v1.5.2
    Source code(tar.gz)
    Source code(zip)
  • v0.0.6(Apr 14, 2020)

    This release adds several bug fixes and new features.

    New Features:

    • Argo CD v1.5.1
    • Generate master admin password for accessing Argo CD and Grafana.
    • Encrypt export data at rest
    • AWS S3 support for exports
    • Finer control over Ingresses and Routes

    Bug Fixes:

    • Update CRD properties after creation
    • Support SHA digest for version on exports
    Source code(tar.gz)
    Source code(zip)
  • v0.0.5(Mar 30, 2020)

    This release adds bug fixes and many new features.

    • Support for High Availability deployments
    • Update all properties of argocd-cm ConfigMap
    • Operator uses SHA digests for all images for disconnected environments
    • Fixes fields in Edit Form in the OpenShift console
    • Adds missing permissions for required autoscale resources
    Source code(tar.gz)
    Source code(zip)
  • v0.0.4(Jan 28, 2020)

  • v0.0.3(Dec 10, 2019)

Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes.

What is Argo Workflows? Argo Workflows is an open source container-native workflow engine for orchestrating parallel jobs on Kubernetes. Argo Workflow

null 0 Dec 10, 2021
Notifications for Argo CD

Argo CD Notifications Argo CD Notifications continuously monitors Argo CD applications and provides a flexible way to notify users about important cha

argoproj-labs 456 Nov 27, 2022
Argo CD ApplicationSet Controller

The ApplicationSet controller manages multiple Argo CD Applications as a single ApplicationSet unit, supporting deployments to large numbers of clusters, deployments of large monorepos, and enabling secure Application self-service.

argoproj-labs 556 Dec 14, 2022
Automatic container image update for Argo CD

Argo CD Image Updater Introduction Argo CD Image Updater is a tool to automatically update the container images of Kubernetes workloads which are mana

argoproj-labs 741 Dec 25, 2022
Support for extending Argo CD

Argo CD Extensions To enable Extensions for your Argo CD cluster will require just a single kubectl apply. Here we provide a way to extend Argo CD suc

argoproj-labs 68 Dec 20, 2022
Argo-CD Autopilot

Introduction New users to GitOps and Argo CD are not often sure how they should structure their repos, add applications, promote apps across environme

argoproj-labs 521 Jan 6, 2023
Hera is a Python framework for constructing and submitting Argo Workflows.

Hera is an Argo Workflows Python SDK. Hera aims to make workflow construction and submission easy and accessible to everyone! Hera abstracts away workflow setup details while still maintaining a consistent vocabulary with Argo Workflows.

argoproj-labs 240 Dec 31, 2022
A series of controllers for configuring namespaces to accomodate Argo

argo-controller A series of controllers for configuring namespaces to accomodate Argo. ArgoCD TBD Argo Workflows Make a service account in every names

Statistics Canada - Statistique Canada 0 Jan 4, 2022
Dataflow is a Kubernetes-native platform for executing large parallel data-processing pipelines.

Dataflow Summary Dataflow is a Kubernetes-native platform for executing large parallel data-processing pipelines. Each pipeline is specified as a Kube

argoproj-labs 267 Jan 4, 2023
PolarDB Stack is a DBaaS implementation for PolarDB-for-Postgres, as an operator creates and manages PolarDB/PostgreSQL clusters running in Kubernetes. It provides re-construct, failover swtich-over, scale up/out, high-available capabilities for each clusters.

PolarDB Stack开源版生命周期 1 系统概述 PolarDB是阿里云自研的云原生关系型数据库,采用了基于Shared-Storage的存储计算分离架构。数据库由传统的Share-Nothing,转变成了Shared-Storage架构。由原来的N份计算+N份存储,转变成了N份计算+1份存储

null 23 Nov 8, 2022
Basic Kubernetes operator that have multiple versions in CRD. This operator can be used to experiment and understand Operator/CRD behaviors.

add-operator Basic Kubernetes operator that have multiple versions in CRD. This operator can be used to experiment and understand Operator/CRD behavio

Dinesh Parvathaneni 0 Dec 15, 2021
Argo Rollout visualization in Argo CD Web UI

Rollout Extension The project introduces the Argo Rollout dashboard into the Argo CD Web UI. Quick Start Install Argo CD and Argo CD Extensions Contro

argoproj-labs 86 Dec 29, 2022
An operator for managing ephemeral clusters in GKE

Test Cluster Operator for GKE This operator provides an API-driven cluster provisioning for integration and performance testing of software that integ

Isovalent 32 Oct 22, 2022
An operator which complements grafana-operator for custom features which are not feasible to be merged into core operator

Grafana Complementary Operator A grafana which complements grafana-operator for custom features which are not feasible to be merged into core operator

Snapp Cab Incubators 6 Aug 16, 2022
kube-champ 43 Oct 19, 2022
KinK is a helper CLI that facilitates to manage KinD clusters as Kubernetes pods. Designed to ease clusters up for fast testing with batteries included in mind.

kink A helper CLI that facilitates to manage KinD clusters as Kubernetes pods. Table of Contents kink (KinD in Kubernetes) Introduction How it works ?

Trendyol Open Source 362 Dec 10, 2022
Managing your Kubernetes clusters (including public, private, edge, etc) as easily as visiting the Internet

Clusternet Managing Your Clusters (including public, private, hybrid, edge, etc) as easily as Visiting the Internet. Clusternet (Cluster Internet) is

Clusternet 1.1k Dec 30, 2022
Kubernetes operator to autoscale Google's Cloud Bigtable clusters

Bigtable Autoscaler Operator Bigtable Autoscaler Operator is a Kubernetes Operator to autoscale the number of nodes of a Google Cloud Bigtable instanc

RD Station 22 Nov 5, 2021
Nebula Operator manages NebulaGraph clusters on Kubernetes and automates tasks related to operating a NebulaGraph cluster

Nebula Operator manages NebulaGraph clusters on Kubernetes and automates tasks related to operating a NebulaGraph cluster. It evolved from NebulaGraph Cloud Service, makes NebulaGraph a truly cloud-native database.

vesoft inc. 58 Dec 31, 2022
ClickHouse Operator creates, configures and manages ClickHouse clusters running on Kubernetes

ClickHouse Operator ClickHouse Operator creates, configures and manages ClickHouse clusters running on Kubernetes. Features The ClickHouse Operator fo

RadonDB 23 Dec 29, 2022