Description
Is your feature request related to a problem? Please describe.
A nice to have feature would be the ability to optionally define a target k8s cluster(s) that indicates where the ArgoCD instance is to be installed in the Server
component of the ArgoCD CR as a secret. This would help us remove the cluster level scoping of the ArgoCD Operator that currently exists.
Describe the solution you'd like
apiVersion: argoproj.io/v1alpha1
kind: ArgoCD
metadata:
name: example-argocd
labels:
example: server
spec:
server:
destinationCluster:
clusterSecret: acme-cluster-secret
clusterSecretNamespace: acme-cluster
---
apiVersion: v1
kind: Secret
metadata:
name: acme-cluster-secret
namespace: acme-cluster
labels:
argocd.argoproj.io/secret-type: cluster
type: Opaque
stringData:
name: acme-cluster
server: https://cluster.acme.com
config: |
{
"bearerToken": "<authentication token>",
"tlsClientConfig": {
"insecure": false,
"caData": "<base64 encoded certificate>"
}
}
clusterSecret: acme-cluster-secret
clusterSecretNamespace: acme-cluster
The clusterSecret
and clusterSecretNamespace
would exist in the k8s cluster where the operator is deployed
Describe alternatives you've considered
Use my central Argo CD instance as a "hub and spoke" design and just deploy your Applications from there using the other K8S clusters as destination clusters
Use my central Argo CD installation in order to install the Argo CD Operator at your destination clusters (Argo CD managing a fleet of Argo CD installations)
Although the alternate solutions solve the problem for my use case, having the ability to specify something like the above is a nice to have