Skip to content

While creating argocd from export resource, the app controller reports 'volume not found' error #1720

Open
@liu625072475

Description

@liu625072475

As the title explained, I can deploy basic argocd instance, but after export, I can't deploy argocd instance from this backup data, the application controller startup was failing with volume mount error:
Warning FailedCreate 117s (x16 over 4m41s) statefulset-controller create Pod argocd-copy-application-controller-0 in StatefulSet argocd-copy-application-controller failed error: Pod "argocd-copy-application-controller-0" is invalid: [spec.containers[0].volumeMounts[0].name: Not found: "argocd-repo-server-tls", spec.containers[0].volumeMounts[1].name: Not found: "argocd-operator-redis-tls"]

Not clear if anything wrong here, please help to take a look.

My Steps:

  1. Following manual install guide, I successfully deployed argocd-operator v0.13.0 with webhook enabled.

  2. Created a basic argocd instance under 'argocd-origin' namespace, and it was available

# cat argocd-instance.yaml 
apiVersion: argoproj.io/v1beta1
kind: ArgoCD
metadata:
  name: basic-argocd
  labels:
    example: basic
spec:
  server:
    service:
      type: LoadBalancer
  redis:
    image: dockerhub.packages.vcfd.broadcom.net/redis:7.0.15-alpine

# kubectl get argocd -n argocd-origin basic-argocd -o json | jq .status
{
  "applicationController": "Running",
  "applicationSetController": "Unknown",
  "phase": "Available",
  "redis": "Running",
  "repo": "Running",
  "server": "Running",
  "sso": "Unknown"
}
  1. Successfully exported this argocd instance
# kubectl get argocdexport argocdexport-2 -n argocd-origin -o yaml
apiVersion: argoproj.io/v1alpha1
kind: ArgoCDExport
metadata:
  annotations:
    kubectl.kubernetes.io/last-applied-configuration: |
      {"apiVersion":"argoproj.io/v1alpha1","kind":"ArgoCDExport","metadata":{"annotations":{},"labels":{"example":"basic"},"name":"argocdexport-2","namespace":"argocd-origin"},"spec":{"argocd":"basic-argocd","storage":{"backend":"local","pvc":{"accessModes":["ReadWriteOnce"],"resources":{"requests":{"storage":"2Gi"}},"storageClassName":"worker-storagepolicy"}}}}
  creationTimestamp: "2025-04-23T10:57:30Z"
  generation: 1
  labels:
    example: basic
  name: argocdexport-2
  namespace: argocd-origin
  resourceVersion: "550243"
  uid: b71d6b05-3e71-432c-9030-2c4ba4285d5f
spec:
  argocd: basic-argocd
  storage:
    backend: local
    pvc:
      accessModes:
      - ReadWriteOnce
      resources:
        requests:
          storage: 2Gi
      storageClassName: worker-storagepolicy
status:
  phase: Completed

# kubectl get job -n argocd-origin
NAME             COMPLETIONS   DURATION   AGE
argocdexport-2   1/1           10s        19h

# kubectl get pvc -n argocd-origin
NAME             STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS           AGE
argocdexport-2   Bound    pvc-2de71ca1-5287-47a0-a60b-4e1927eb0f81   2Gi        RWO            worker-storagepolicy   19h
  1. Then I tried to create another argocd instance with this export under 'argocd-import' namespace, but failed
# cat argocd-import.yaml 
apiVersion: argoproj.io/v1beta1
kind: ArgoCD
metadata:
  name: argocd-import-from-basic
  labels:
    example: import
spec:
  import:
    name: argocdexport-2
    namespace: argocd-origin
  server:
    service:
      type: LoadBalancer
  redis:
    image: dockerhub.packages.vcfd.broadcom.net/redis:7.0.15-alpine

# kubectl apply -f argocd-import.yaml -n argocd-import
argocd.argoproj.io/argocd-copy created

Unexpected status:

# k get argocd -n argocd-import argocd-copy -o json | jq .status
{
  "applicationController": "Pending",
  "applicationSetController": "Unknown",
  "phase": "Pending",
  "redis": "Running",
  "repo": "Running",
  "server": "Running",
  "sso": "Unknown"
}


# kubectl describe statefulset argocd-copy-application-controller -n argocd-import
Name:               argocd-copy-application-controller
Namespace:          argocd-import
CreationTimestamp:  Thu, 24 Apr 2025 05:58:34 +0000
Selector:           app.kubernetes.io/name=argocd-copy-application-controller
Labels:             app.kubernetes.io/component=application-controller
                    app.kubernetes.io/managed-by=argocd-copy
                    app.kubernetes.io/name=argocd-copy-application-controller
                    app.kubernetes.io/part-of=argocd
Annotations:        <none>
Replicas:           1 desired | 0 total
Update Strategy:    RollingUpdate
  Partition:        0
Pods Status:        0 Running / 0 Waiting / 0 Succeeded / 0 Failed
Pod Template:
  Labels:           app.kubernetes.io/name=argocd-copy-application-controller
  Service Account:  argocd-copy-argocd-application-controller
  Init Containers:
   argocd-import:
    Image:           quay.io/argoprojlabs/argocd-operator-util@sha256:0745934cb55d95c266daa5423ece9c149bb67db99eb2b3d9215597903724c636
    Port:            <none>
    Host Port:       <none>
    SeccompProfile:  RuntimeDefault
    Command:
      uid_entrypoint.sh
      argocd-operator-util
      import
      local
    Environment:  <none>
    Mounts:
      /backups from backup-storage (rw)
      /secrets from secret-storage (rw)
  Containers:
   argocd-application-controller:
    Image:           quay.io/argoproj/argocd@sha256:19608c266cc41e4986d9b1c2b79ea4c42bb9430269eefc5005e9d65be4d22868
    Port:            8082/TCP
    Host Port:       0/TCP
    SeccompProfile:  RuntimeDefault
    Command:
      argocd-application-controller
      --operation-processors
      10
      --redis
      argocd-copy-redis.argocd-import.svc.cluster.local:6379
      --repo-server
      argocd-copy-repo-server.argocd-import.svc.cluster.local:8081
      --status-processors
      20
      --kubectl-parallelism-limit
      10
      --loglevel
      info
      --logformat
      text
    Readiness:  http-get http://:8082/healthz delay=5s timeout=1s period=10s #success=1 #failure=3
    Environment:
      HOME:            /home/argocd
      REDIS_PASSWORD:  <set to the key 'admin.password' in secret 'argocd-copy-redis-initial-password'>  Optional: false
    Mounts:
      /app/config/controller/tls from argocd-repo-server-tls (rw)
      /app/config/controller/tls/redis from argocd-operator-redis-tls (rw)
  Volumes:
   backup-storage:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  argocdexport-2
    ReadOnly:   false
   secret-storage:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  argocdexport-2-export
    Optional:    false
Volume Claims:   <none>
Events:
  Type     Reason        Age                    From                    Message
  ----     ------        ----                   ----                    -------
  Warning  FailedCreate  117s (x16 over 4m41s)  statefulset-controller  create Pod argocd-copy-application-controller-0 in StatefulSet argocd-copy-application-controller failed error: Pod "argocd-copy-application-controller-0" is invalid: [spec.containers[0].volumeMounts[0].name: Not found: "argocd-repo-server-tls", spec.containers[0].volumeMounts[1].name: Not found: "argocd-operator-redis-tls"]

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions