前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >argocd+gitlab应用自动发布

argocd+gitlab应用自动发布

作者头像
章工运维
发布2024-03-14 09:55:09
1040
发布2024-03-14 09:55:09
举报
文章被收录于专栏:章工运维章工运维

# gitlab仓库配置

推荐gitlab创建空仓库后,拉取到本地编辑好以后再提交,不要直接编辑gitlab的yaml文件,因为gitlab在线编辑时,换行与tab空格在argocd上可能存在识别失败,不是标准的yaml文件,无法创建应用。 创建一个最简单的仓库,仅包含应用的yaml文件,文件内容如下

代码语言:javascript
复制
[root@k8s-master test-git]# tree test/
test/
├── manifests
│   └── test.yaml
└── README.md

1 directory, 2 files
[root@k8s-master test-git]# cat test/manifests/test.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: myapp
  namespace: default
spec:
  selector:
    matchLabels:
      app: myapp
  template:
    metadata:
      labels:
        app: myapp
    spec:
      containers:
      - name: myapp
        image: ikubernetes/myapp:v1
        resources:
          limits:
            memory: "128Mi"
            cpu: "500m"
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: myapp
  namespace: default
spec:
  type: ClusterIP
  selector:
    app: myapp
  ports:
  - port: 80
    targetPort: 80
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: myapp
  namespace: default
spec:
  entryPoints:
  - web
  routes:
  - match: Host(`myapp.test.com`)
    kind: Rule
    services:
      - name: myapp 
        port: 80  

gitlab仓库内容如下:

# argocd配置

# 添加仓库地址

添加仓库地址,Settings → Repositories,点击 Connect Repo using HTTPS 按钮:

填写以下信息

验证通过后显示如下,点击创建应用

# 创建应用

填写以下内容

创建完后如下所示:

# 访问验证

# 验证应用部署状态

查看k8s创建的资源信息,发现已经成功创建了对应的资源

代码语言:javascript
复制
[root@k8s-master test-git]# kubectl get pod 
NAME                                               READY   STATUS    RESTARTS         AGE
myapp-68c8648d6d-54brv                             1/1     Running   0                62s
[root@k8s-master test-git]# kubectl get svc
NAME         TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)    AGE
myapp        ClusterIP      10.97.189.71    <none>           80/TCP     70s
[root@k8s-master test-git]# kubectl get ingressroute
NAME     AGE
myapp    78s

访问web页面验证

# 版本更新

接下来模拟配置变更,将镜像版本从v1改为v2

查看argocd信息,发现已经自动同步了yaml文件,并且正在进行发布

访问web页面状态,发现已经完成了发布工作。

此时整个应用关联关系如下

# 版本回退

点击history and rollback即可看到整个应用的所有发布记录,并且可以选择指定版本进行回退操作。

再次访问发现已经回退到v1版本

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-03-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # gitlab仓库配置
  • # argocd配置
    • # 添加仓库地址
      • # 创建应用
      • # 访问验证
        • # 验证应用部署状态
          • # 版本更新
            • # 版本回退
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档