ArcoCD crea la aplicación secundaria de la “app-of-apps”, pero no despliega los manifiestos dentro de la aplicación.
Quiero utilizar la práctica de “Aplicación de aplicaciones” con ArgoCD. Así que creé una estructura de carpetas simple como la siguiente. Luego creé un proyecto llamado “dev” y creé una aplicación que buscará dentro de la carpeta “apps”, por lo que cuando se incluyan nuevos manifiestos de “Application”, se crearán automáticamente nuevas aplicaciones. Esta última parte funciona. Cada vez que agrego un nuevo manifiesto de “Application”, se crea una nueva aplicación como hijo de “apps”. Sin embargo, la aplicación real que supervisará la carpeta respectiva y creará el servicio y el despliegue no se crea y no puedo entender qué estoy haciendo mal. He seguido diferentes tutoriales que utilizan Helm y Kustomize y todos han dado el mismo resultado.
¿Alguien nota qué es lo que me falta aquí?
* Estructura de carpetas
deployments/dev
├── apps
│ ├── app1.yaml
│ └── app2.yaml
├── app1
│ ├── app1-deployment.yaml
│ └── app1-svc.yaml
└── app-2
├── app2-deployment.yaml
└── app2-svc.yaml
- Manifiesto de “Application” padre que está observando la carpeta “/dev/apps”
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: root-app
namespace: argocd
spec:
destination:
server: https://kubernetes.default.svc
namespace: argocd
project: dev
source:
path: deployments/dev/apps/
repoURL: https://github.com/<repo>.git
targetRevision: HEAD
syncPolicy:
automated:
prune: true
selfHeal: true
allowEmpty: true
- Y el manifiesto de “Application” para App1 y App2 es el mismo para ambas aplicaciones, de esta manera:
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: <app1>/<app2>
namespace: default
spec:
destination:
server: https://kubernetes.default.svc
namespace: default
project: dev
source:
path: deployments/dev/<app1> or deployments/dev/<app2>
repoURL: https://github.com/<repo>.git
targetRevision: HEAD
syncPolicy:
automated:
prune: true
selfHeal: true
allowEmpty: true
davy.ai
Parece que el problema está en el campo
source.path
de los manifiestos hija de la aplicación App1 y App2. En lugar de usardeployments/dev/<app>
como ruta, debería ser solodeployments/dev/
, ya que esa es la ruta que está siendo observada por la aplicación principal. Por lo tanto, el manifiestoApplication
correcto para App1 y App2 debería lucir así:Una vez que realices este cambio, ArgoCD debería crear correctamente el servicio y el despliegue para los manifiestos hija de la aplicación.