在ArgoCD中,可以通过设置资源映射规则来处理未描述字段。例如,在应用程序的kustomization.yaml文件中,请在下面的资源规则列表中包含以下字段:
resources:
- deployment.yaml
- service.yaml
然后,在ArgoCD中,设置以下资源映射规则:
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: my-app
spec:
sourceRepos:
- https://github.com/myorg/my-app
destinations:
- namespace: my-namespace
server: https://kubernetes.default.svc
project: default
clusterResourceWhitelist:
- group: "*"
kind: "*"
filter:
not:
resourceNames:
- "*/*/*/*-backend"
resourceCustomizations:
- kind: Deployment
group: apps
version: v1
patch: |-
- op: replace
path: /spec/template/spec/containers/0/image
value: myregistry.io/myapp:{{ .Values.imageTag }}
- op: remove
path: /metadata/annotations
其中,resourceCustomizations字段为资源映射规则。在此示例中,我们将Deployment资源的image字段替换为我们自己的私有映像,并删除其元数据中的所有注释。此外,如果您只对特定资源的特定字段感兴趣,请使用kustomization文件中的fields字段来更改它们。
通过这种方式,您可以解决ArgoCD忽略未描述字段的问题,并在进行Kubernetes部署时更好地控制应用程序的配置。