ArgoCD app-of-apps 创建子应用程序但不在应用程序内部署清单
ArgoCD app-of-apps create the child app but doesn't deploy the manifests inside the app
我想使用 ArgoCD 的 App-of-apps 练习。所以我创建了一个简单的文件夹结构,如下所示。然后我创建了一个名为 dev
的项目,并创建了一个将在文件夹 apps
中查看的应用程序,因此当包含新的 Application
清单时,它会自动创建新的应用程序。最后一部分有效。每次我添加新的 Application
清单时,都会创建一个新应用程序作为 apps
的子应用程序。但是,未创建将监视相应文件夹并创建服务和部署的实际应用程序,我无法弄清楚我做错了什么。我遵循了使用 Helm 和 Kustomize 的不同教程,并且都给出了相同的最终结果。
有人能看出我在这里遗漏了什么吗?
- 文件夹结构
deployments/dev
├── apps
│ ├── app1.yaml
│ └── app2.yaml
├── app1
│ ├── app1-deployment.yaml
│ └── app1-svc.yaml
└── app-2
├── app2-deployment.yaml
└── app2-svc.yaml
- 父应用程序
Application
正在监视的清单 /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
- 并且 App1 和 App2
Application
两个应用程序的清单是相同的,如下所示:
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
将评论作为社区 wiki 答案发布以获得更好的知名度
事实证明,目前 ArgoCD 只能识别在 ArgoCD 命名空间中进行的应用程序声明,但@everspader 是在默认命名空间中进行的。更多信息,请参考GitHub Issue
我想使用 ArgoCD 的 App-of-apps 练习。所以我创建了一个简单的文件夹结构,如下所示。然后我创建了一个名为 dev
的项目,并创建了一个将在文件夹 apps
中查看的应用程序,因此当包含新的 Application
清单时,它会自动创建新的应用程序。最后一部分有效。每次我添加新的 Application
清单时,都会创建一个新应用程序作为 apps
的子应用程序。但是,未创建将监视相应文件夹并创建服务和部署的实际应用程序,我无法弄清楚我做错了什么。我遵循了使用 Helm 和 Kustomize 的不同教程,并且都给出了相同的最终结果。
有人能看出我在这里遗漏了什么吗?
- 文件夹结构
deployments/dev
├── apps
│ ├── app1.yaml
│ └── app2.yaml
├── app1
│ ├── app1-deployment.yaml
│ └── app1-svc.yaml
└── app-2
├── app2-deployment.yaml
└── app2-svc.yaml
- 父应用程序
Application
正在监视的清单/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
- 并且 App1 和 App2
Application
两个应用程序的清单是相同的,如下所示:
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
将评论作为社区 wiki 答案发布以获得更好的知名度
事实证明,目前 ArgoCD 只能识别在 ArgoCD 命名空间中进行的应用程序声明,但@everspader 是在默认命名空间中进行的。更多信息,请参考GitHub Issue