[ PROMPT_NODE_28066 ]
argocd-setup
[ SKILL_DOCUMENTATION ]
# ArgoCD 设置与配置
## 安装方法
### 1. 标准安装
bash
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
### 2. 高可用安装
bash
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/ha/install.yaml
### 3. Helm 安装
bash
helm repo add argo https://argoproj.github.io/argo-helm
helm install argocd argo/argo-cd -n argocd --create-namespace
## 初始配置
### 访问 ArgoCD UI
bash
# 端口转发
kubectl port-forward svc/argocd-server -n argocd 8080:443
# 获取初始管理员密码
argocd admin initial-password -n argocd
### 配置 Ingress
yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: argocd-server-ingress
namespace: argocd
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
nginx.ingress.kubernetes.io/ssl-passthrough: "true"
nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
spec:
ingressClassName: nginx
rules:
- host: argocd.example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: argocd-server
port:
number: 443
tls:
- hosts:
- argocd.example.com
secretName: argocd-secret
## CLI 配置
### 登录
bash
argocd login argocd.example.com --username admin
### 添加仓库
bash
argocd repo add https://github.com/org/repo --username user --password token
### 创建应用程序
bash
argocd app create my-app
--repo https://github.com/org/repo
--path apps/my-app
--dest-server https://kubernetes.default.svc
--dest-namespace production
## SSO 配置
### GitHub OAuth
yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-cm
namespace: argocd
data:
url: https://argocd.example.com
dex.config: |
connectors:
- type: github
id: github
name: GitHub
config:
clientID: $GITHUB_CLIENT_ID
clientSecret: $GITHUB_CLIENT_SECRET
orgs:
- name: my-org
## RBAC 配置
yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: argocd-rbac-cm
namespace: argocd
data:
policy.default: role:readonly
policy.csv: |
p, role:developers, applications, *, */dev, allow
p, role:operators, applications, *, */*, allow
g, my-