---
apiVersion: external-secrets.io/v1alpha1
kind: ExternalSecret
metadata:
  name: staging-cluster
spec:
  secretStoreRef:
    kind: ClusterSecretStore
    name: aws-store
  target:
    name: staging-cluster
    creationPolicy: Owner
    template:
      engineVersion: v2
      type: Opaque
      metadata:
        labels:
          argocd.argoproj.io/secret-type: cluster
      data:
        name: "staging"
        server: "{{ .url }}"
        config: |
          {
            "awsAuthConfig": {
              "clusterName": "{{ .name }}",
              "roleArn": "{{ .arn }}"
            },
            "tlsClientConfig": {
              "insecure": false,
              "caData": "{{ .caData }}"
            }
          }
  data:
    - secretKey: name
      remoteRef:
        key: staging-eks-kubeconfig
        property: clusterName
    - secretKey: url
      remoteRef:
        key: staging-eks-kubeconfig
        property: server
    - secretKey: arn
      remoteRef:
        key: staging-eks-kubeconfig
        property: roleArn
    - secretKey: caData
      remoteRef:
        key: staging-eks-kubeconfig
        property: certificate-authority-data
