《OpenShift 4.x HOL教程汇总》
说明:本文已经在OpenShift 4.8环境中验证

文章目录

  • 安装 ArgoCD
    • 用 OpenShift GitOps Operator 安装 ArgoCD
    • 安装 ArgoCD 客户端
    • 创建新用户
    • 修改用户密码
    • 设置角色
  • 用 ArgoCD 部署应用
    • 创建目标项目
    • 创建ArgoCD应用
  • 参考

安装 ArgoCD

用 OpenShift GitOps Operator 安装 ArgoCD

  1. 用集群管理员登录OpenShift控制台,然后进入管理员视图。
  2. 在OperatorHub中找到“OpenShift GitOps”,然后接受缺省配置安装该Operator。缺省会自动创建openshift-gitops项目,然后将operator安装到这个项目中。
  3. 在安装完后可以看到以下页面。
  4. 进入安装好的OpenShift GitOps Operator,确认它是安装在openshift-gitops项目里。
  5. 当安装完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安装的资源。

  1. 执行命令获取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中显示的密码。

  1. 在安装完GitOps Operator后会在OpenShift Console顶端的菜单中增加ArgoCD的链接,点击即可进入ArgoCD控制台。
  2. 用admin和密码登录ArgoCD控制台。

安装 ArgoCD 客户端

  1. 安装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
  1. 登录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}
  1. 查看当前ArgoCD集群
$ argocd cluster list
SERVER                          NAME        VERSION  STATUS   MESSAGE
https://kubernetes.default.svc  in-cluster           Unknown  Cluster has no application and not being monitored.

创建新用户

  1. 修改 openshift-gitops 项目中名为 “argocd-cm” 的 ConfigMap 对象。在 “data” 区域增加新用户 “user1” 和 “user2”。
data:accounts.user1: apiKey,loginaccounts.user2: apiKey,login
  1. 运行命令查看当前用户。
$ argocd account list
NAME   ENABLED  CAPABILITIES
admin  true     login
user1  true     apiKey, login
user2  true     apiKey, login

修改用户密码

  1. 先用 Argocd 的管理员角色用户登录。
  2. 执行命令,修改 “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 部署应用

创建目标项目

  1. 创建spring-petclinic项目并打标签,表明是该项目是由“openshift-gitops”管理。
$ oc new-project spring-petclinic
$ oc label namespace spring-petclinic argocd.argoproj.io/managed-by=openshift-gitops

创建ArgoCD应用

  1. 在ArgoCD控制台上点击“+ NEW APP”按钮。
  2. 在右滑页面提供以下配置,然后点击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
  3. 在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.
  1. 此时在openshift-gitops项目中的OpenShift GitOps Operator中也可以查看到通过ArgoCD部署的名为spring-petclinic的Application。
  2. 在ArgoCD控制台中“spring-petclinic”应用的状态显示为“Synced”。

  3. 最后可以在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相关推荐

  1. OpenShift 4 - DevSecOps Workshop (15) - 利用OpenShift GitOps向多个目标部署应用

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.8环境中验证 <OpenShift 4 - DevSecOps Workshop 系列视频 & ...

  2. OpenShift 4- 用ArgoCD安装ArgoCD环境

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.6环境中验证 文章目录 GitOps是什么? ArgoCD 什么是ArgoCD 安装ArgoCD客户 ...

  3. OpenShift 4 - 用 Quay Operator 安装 Quay 环境(4.10 修正)

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.10 环境中验证 由于新版 Quay 需要使用 OpenShift Data Foundation ...

  4. OpenShift 4 - 使用Operator安装Gitea

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.7环境中验证 文章目录 使用Operator安装Gitea 参考和说明 使用Operator安装Gi ...

  5. OpenShift 4 - 通过 REST API 操作 OpenShift

    OpenShift 4 - 通过 REST API 操作 OpenShift OpenShift API 访问机制 如何访问Rest API 使用Token直接访问Rest API 方法1 方法2 使 ...

  6. OpenShift 4 - 锁定被保护的 OpenShift 资源,禁止删除和修改操作

    <OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.9环境中验证 演示视频 文章目录 安装 Resource Locker Operator 配置被保护 ...

  7. OpenShift 4.6 新特性 - 用 Windows MachineConfig Operator 管理 Windows Container

    <OpenShift 4.x HOL教程汇总> 文章目录 查看Windows节点的Kubernete版本 安装访问Windows节点的SSH Jumphost 登录到Windows节点 在 ...

  8. OpenShift 4之唤醒休眠的OpenShift应用

    容器云的一大优势就是弹性伸缩,这其中之一就是OpenShift可以对pod的数量进行自动调整,以适应变化的业务负载.业务最闲时可以将运行的pod数量缩到"0"个,对就是一个也没有. ...

  9. OpenShift / RHEL / DevSecOps 汇总目录

    文章目录 OpenShift / RHEL / DevSecOps 汇总目录 OpenShift 入门 OpenShift 安装 免费线上环境 CRC单机环境 MicroShift Online安装 ...

最新文章

  1. vCenter 5.5升级到vCenter 6.0实战指导
  2. Atian inputmethod 输入法解决方案 方言与多语言多文字支持 英语汉字汉语阿拉伯文的支持 (au...
  3. [转]Silverlight在调用wcf时传输数据过大返回Not Found的解决办法
  4. 十分钟教你开发EOS智能合约
  5. windows文件保护_文件通通用它加密,安全等级提高一个档次
  6. Mac模拟慢速网络 - Network Link Conditioner 安装和使用
  7. 《白鹿原》金句摘抄(六)
  8. python做excel表格柱状图_Python Excel 绘制柱形图
  9. 25+ 个 jQuery 网页拖放操作的插件
  10. linux英文安装教程图解,Linux安装中英文对照小手册
  11. Python机器学习房价预测 (斯坦福大学机器学习课程)
  12. ThinkPHP的pathinfo模式、路径访问模式及URL重写
  13. 深度:企业为什么需要一个平台级的OA产品?
  14. C#:Winform 打字测速程序 Typer
  15. 工作10个月,做地图插件的感悟——理论篇
  16. mgo简介以及使用说明
  17. ACM上一些常见问题解答
  18. 高等数学(第七版)同济大学 习题11-2 个人解答
  19. html标签中英文对照,更好理解html标签
  20. Device /dev/sdb1 excluded by a filter

热门文章

  1. 安全是一个系统问题包括服务器安全,信息安全技术题库:除了应用程序功能,Web内容和功能枚举还需要关注( )。...
  2. oracle 闪查询,Oracle的回闪查询
  3. 用java完成一个模块_Java 9 揭秘(3. 创建你的第一个模块)
  4. mmu计算机组成原理,计算机组成原理
  5. mysql account locked_ORA-28000: the account is locked用户锁定问题排查解决
  6. json 解析_json爬坑1:yajl解析json
  7. java 复选框 背景色_将多选框选中时打勾的颜色
  8. c保留小数点后三位数没有则为0_C语言中……“计算结果保留三位小数。”怎么表示?...
  9. tipask二次开发总结_二次开发自我总结
  10. 科技通讯PSD分层海报出击!Hello 5G时代