Description
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:
-
Following manual install guide, I successfully deployed argocd-operator v0.13.0 with webhook enabled.
-
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"
}
- 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
- 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"]