要使argoCD通过ingress实现外部访问,需要确保以下两点:
先创建好ingress资源,确保ingress可以正确地访问到argoCD的服务;
修改argoCD的ingress参数,确保与ingress资源中的参数对应。
具体操作详见以下示例:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: argocd-ingress
spec:
rules:
- host: argocd.example.com # 这里要替换为你自己的域名
http:
paths:
- backend:
serviceName: argocd-server
servicePort: http
path: /
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: default
spec:
project: default
source:
repoURL: 'https://github.com/example/my-app'
targetRevision: 'master'
path: '.'
destination:
server: 'https://kubernetes.default.svc' # 这里改为你的ingress的后端服务
namespace: 'default'
syncPolicy:
automated:
prune: true
syncOptions:
- Validate=false
ingress:
- path: /
backend:
serviceName: my-app
servicePort: 80
hosts:
- argocd.example.com # 这里要与ingress资源中的host对应
需要注意的是,在使用ingress时,我们需要确保所有相关组件的namespace和服务名都正确设置。如果在yaml文件中没有指定namespace,则默认使用的是"default"。