OpenShift 4 之 GitOps(1)通过OpenShift GitOps Operator安装ArgoCD
《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.8环境中验证
文章目录
- 安装 ArgoCD
- 用 OpenShift GitOps Operator 安装 ArgoCD
- 安装 ArgoCD 客户端
- 创建新用户
- 修改用户密码
- 设置角色
- 用 ArgoCD 部署应用
- 创建目标项目
- 创建ArgoCD应用
- 参考
安装 ArgoCD
用 OpenShift GitOps Operator 安装 ArgoCD
- 用集群管理员登录OpenShift控制台,然后进入管理员视图。
- 在OperatorHub中找到“OpenShift GitOps”,然后接受缺省配置安装该Operator。缺省会自动创建openshift-gitops项目,然后将operator安装到这个项目中。
- 在安装完后可以看到以下页面。
- 进入安装好的OpenShift GitOps Operator,确认它是安装在openshift-gitops项目里。
- 当安装完OpenShift GitOps Operator后会自动创建ArgoCD运行环境。可以执行命令查看openshift-gitops项目的部署资源。
$ oc get all -n openshift-gitops
NAME READY STATUS RESTARTS AGE
pod/cluster-5df976c97b-88jcl 1/1 Running 0 5m37s
pod/kam-7f748468cd-fl2jd 1/1 Running 0 5m37s
pod/openshift-gitops-application-controller-0 1/1 Running 0 5m33s
pod/openshift-gitops-applicationset-controller-f696fd5d8-29rtp 1/1 Running 0 5m32s
pod/openshift-gitops-redis-7867d74fb4-jprwx 1/1 Running 0 5m33s
pod/openshift-gitops-repo-server-6db899d69b-wdgvz 1/1 Running 0 5m33s
pod/openshift-gitops-server-dc5d5db46-sw55l 1/1 Running 0 5m33sNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/cluster ClusterIP 172.30.154.23 <none> 8080/TCP 5m37s
service/kam ClusterIP 172.30.13.145 <none> 8080/TCP,8443/TCP 5m37s
service/openshift-gitops-metrics ClusterIP 172.30.150.140 <none> 8082/TCP 5m33s
service/openshift-gitops-redis ClusterIP 172.30.239.11 <none> 6379/TCP 5m33s
service/openshift-gitops-repo-server ClusterIP 172.30.217.22 <none> 8081/TCP,8084/TCP 5m33s
service/openshift-gitops-server ClusterIP 172.30.14.248 <none> 80/TCP,443/TCP 5m33s
service/openshift-gitops-server-metrics ClusterIP 172.30.34.209 <none> 8083/TCP 5m33sNAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/cluster 1/1 1 1 5m37s
deployment.apps/kam 1/1 1 1 5m37s
deployment.apps/openshift-gitops-applicationset-controller 1/1 1 1 5m32s
deployment.apps/openshift-gitops-redis 1/1 1 1 5m33s
deployment.apps/openshift-gitops-repo-server 1/1 1 1 5m33s
deployment.apps/openshift-gitops-server 1/1 1 1 5m33sNAME DESIRED CURRENT READY AGE
replicaset.apps/cluster-5df976c97b 1 1 1 5m37s
replicaset.apps/kam-7f748468cd 1 1 1 5m37s
replicaset.apps/openshift-gitops-applicationset-controller-f696fd5d8 1 1 1 5m32s
replicaset.apps/openshift-gitops-redis-7867d74fb4 1 1 1 5m33s
replicaset.apps/openshift-gitops-repo-server-6db899d69b 1 1 1 5m33s
replicaset.apps/openshift-gitops-server-dc5d5db46 1 1 1 5m33sNAME READY AGE
statefulset.apps/openshift-gitops-application-controller 1/1 5m33sNAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
route.route.openshift.io/cluster cluster-openshift-gitops.apps.cluster1.demo.ocp cluster 8080 reencrypt/Allow None
route.route.openshift.io/kam kam-openshift-gitops.apps.cluster1.demo.ocp kam 8443 passthrough/None None
route.route.openshift.io/openshift-gitops-server openshift-gitops-server-openshift-gitops.apps.cluster1.demo.ocp openshift-gitops-server https passthrough/Redirect None
也可以在控制台的“开发者”视图中查看openshift-gitops安装的资源。
- 执行命令获取ArgoCD的admin用户的缺省密码。
$ PASSWD=$(oc get secret openshift-gitops-cluster -n openshift-gitops -ojsonpath='{.data.admin\.password}' | base64 -d)
也可在OpenShift 控制台中进入openshift-gitops项目中名为openshift-gitops-cluster的Secret,也可以看到admin.password中显示的密码。
- 在安装完GitOps Operator后会在OpenShift Console顶端的菜单中增加ArgoCD的链接,点击即可进入ArgoCD控制台。
- 用admin和密码登录ArgoCD控制台。
安装 ArgoCD 客户端
- 安装ArgoCD客户端
$ ARGO_VER=$(curl --silent "https://api.github.com/repos/argoproj/argo-cd/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')
$ sudo curl -L https://github.com/argoproj/argo-cd/releases/download/${ARGO_VER}/argocd-linux-amd64 -o /usr/local/bin/argocd
$ sudo chmod +x /usr/local/bin/argocd
- 登录ArgoCD
$ ARGOCD_URL=$(oc get route openshift-gitops-server -n openshift-gitops -o jsonpath='{.spec.host}')
$ argocd login --username admin --password ${PASSWD} --insecure ${ARGOCD_URL}
- 查看当前ArgoCD集群
$ argocd cluster list
SERVER NAME VERSION STATUS MESSAGE
https://kubernetes.default.svc in-cluster Unknown Cluster has no application and not being monitored.
创建新用户
- 修改 openshift-gitops 项目中名为 “argocd-cm” 的 ConfigMap 对象。在 “data” 区域增加新用户 “user1” 和 “user2”。
data:accounts.user1: apiKey,loginaccounts.user2: apiKey,login
- 运行命令查看当前用户。
$ argocd account list
NAME ENABLED CAPABILITIES
admin true login
user1 true apiKey, login
user2 true apiKey, login
修改用户密码
- 先用 Argocd 的管理员角色用户登录。
- 执行命令,修改 “user1” 和 “user2” 的密码。
$ LOGIN_ADMIN_PASS=xxxxxx
$ argocd account update-password --account user1 --new-password mypassword --current-password ${LOGIN_ADMIN_PASS}
$ argocd account update-password --account user2 --new-password mypassword --current-password ${LOGIN_ADMIN_PASS}
设置角色
修改 openshift-gitops 项目中名为 “argocd-rbac-cm” 的 ConfigMap 对象。
用户的缺省角色为只读,为了替换用户的缺省角色,可以将:
policy.default: 'role:readonly'
修改为:
policy.default: 'role:admin'
另外还可根据参考修改 “argocd-rbac-cm” 中 “policy.csv” 部分的内容,来配置用户的角色和权限。
用 ArgoCD 部署应用
创建目标项目
- 创建spring-petclinic项目并打标签,表明是该项目是由“openshift-gitops”管理。
$ oc new-project spring-petclinic
$ oc label namespace spring-petclinic argocd.argoproj.io/managed-by=openshift-gitops
创建ArgoCD应用
- 在ArgoCD控制台上点击“+ NEW APP”按钮。
- 在右滑页面提供以下配置,然后点击CREATE按钮。
Application Name: spring-petclinic
Project: default
Sync Policy: Automatic
Self-heal: checked
Repository URL: https://github.com/siamaksade/openshift-gitops-getting-started
Revision: HEAD
Path: app
Destination: https://kubernetes.default.svc
Namespace: spring-petclinic
Directory Recurse: checked
- 在ArgoCD送创建完应用会自动在OpenShift创建项目,但项目中还没有部署任何资源。
$ oc get project spring-petclinic
NAME DISPLAY NAME STATUS
spring-petclinic Active
$ oc get all -n spring-petclinic
No resources found in spring-petclinic namespace.
- 此时在openshift-gitops项目中的OpenShift GitOps Operator中也可以查看到通过ArgoCD部署的名为spring-petclinic的Application。
- 在ArgoCD控制台中“spring-petclinic”应用的状态显示为“Synced”。
- 最后可以在spring-petclinic项目中通过路由访问部署的应用。
参考
https://github.com/siamaksade/openshift-gitops-getting-started
https://github.com/RedHatWorkshops/argocd-getting-started
https://github.com/wael2000/openshift-gitops-getting-started
https://github.com/argoproj/argo-cd/blob/master/assets/builtin-policy.csv
https://medium.com/geekculture/create-a-new-user-in-argocd-using-the-cli-and-configmap-8cbb27cf5904#:~:text=Create%20a%20New%20User%20in%20ArgoCD%20using%20the,Local%20User.%20…%207%20Disabled%20Admin%20Account.%20
https://itnext.io/argocd-users-access-and-rbac-ddf9f8b51bad
https://faun.pub/create-argo-cd-local-users-9e830db3763f
OpenShift 4 之 GitOps(1)通过OpenShift GitOps Operator安装ArgoCD相关推荐
- OpenShift 4 - DevSecOps Workshop (15) - 利用OpenShift GitOps向多个目标部署应用
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...
- OpenShift 4- 用ArgoCD安装ArgoCD环境
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.6环境中验证 文章目录 GitOps是什么? ArgoCD 什么是ArgoCD 安装ArgoCD客户 ...
- OpenShift 4 - 用 Quay Operator 安装 Quay 环境(4.10 修正)
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.10 环境中验证 由于新版 Quay 需要使用 OpenShift Data Foundation ...
- OpenShift 4 - 使用Operator安装Gitea
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.7环境中验证 文章目录 使用Operator安装Gitea 参考和说明 使用Operator安装Gi ...
- OpenShift 4 - 通过 REST API 操作 OpenShift
OpenShift 4 - 通过 REST API 操作 OpenShift OpenShift API 访问机制 如何访问Rest API 使用Token直接访问Rest API 方法1 方法2 使 ...
- OpenShift 4 - 锁定被保护的 OpenShift 资源,禁止删除和修改操作
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.9环境中验证 演示视频 文章目录 安装 Resource Locker Operator 配置被保护 ...
- OpenShift 4.6 新特性 - 用 Windows MachineConfig Operator 管理 Windows Container
<OpenShift 4.x HOL教程汇总> 文章目录 查看Windows节点的Kubernete版本 安装访问Windows节点的SSH Jumphost 登录到Windows节点 在 ...
- OpenShift 4之唤醒休眠的OpenShift应用
容器云的一大优势就是弹性伸缩,这其中之一就是OpenShift可以对pod的数量进行自动调整,以适应变化的业务负载.业务最闲时可以将运行的pod数量缩到"0"个,对就是一个也没有. ...
- OpenShift / RHEL / DevSecOps 汇总目录
文章目录 OpenShift / RHEL / DevSecOps 汇总目录 OpenShift 入门 OpenShift 安装 免费线上环境 CRC单机环境 MicroShift Online安装 ...
最新文章
- vCenter 5.5升级到vCenter 6.0实战指导
- Atian inputmethod 输入法解决方案 方言与多语言多文字支持 英语汉字汉语阿拉伯文的支持 (au...
- [转]Silverlight在调用wcf时传输数据过大返回Not Found的解决办法
- 十分钟教你开发EOS智能合约
- windows文件保护_文件通通用它加密,安全等级提高一个档次
- Mac模拟慢速网络 - Network Link Conditioner 安装和使用
- 《白鹿原》金句摘抄(六)
- python做excel表格柱状图_Python Excel 绘制柱形图
- 25+ 个 jQuery 网页拖放操作的插件
- linux英文安装教程图解,Linux安装中英文对照小手册
- Python机器学习房价预测 (斯坦福大学机器学习课程)
- ThinkPHP的pathinfo模式、路径访问模式及URL重写
- 深度:企业为什么需要一个平台级的OA产品?
- C#:Winform 打字测速程序 Typer
- 工作10个月,做地图插件的感悟——理论篇
- mgo简介以及使用说明
- ACM上一些常见问题解答
- 高等数学(第七版)同济大学 习题11-2 个人解答
- html标签中英文对照,更好理解html标签
- Device /dev/sdb1 excluded by a filter
热门文章
- 安全是一个系统问题包括服务器安全,信息安全技术题库:除了应用程序功能,Web内容和功能枚举还需要关注( )。...
- oracle 闪查询,Oracle的回闪查询
- 用java完成一个模块_Java 9 揭秘(3. 创建你的第一个模块)
- mmu计算机组成原理,计算机组成原理
- mysql account locked_ORA-28000: the account is locked用户锁定问题排查解决
- json 解析_json爬坑1:yajl解析json
- java 复选框 背景色_将多选框选中时打勾的颜色
- c保留小数点后三位数没有则为0_C语言中……“计算结果保留三位小数。”怎么表示?...
- tipask二次开发总结_二次开发自我总结
- 科技通讯PSD分层海报出击!Hello 5G时代