Charts 伞形图在CI/CD管道中的使用,包括多个承包商

Charts 伞形图在CI/CD管道中的使用,包括多个承包商,charts,continuous-integration,kubernetes-helm,cd,umbrella,Charts,Continuous Integration,Kubernetes Helm,Cd,Umbrella,我是这个团体的新成员。很高兴与您联系。 我想知道是否有人有在CI/CD流程中使用伞形头盔图表的经验 在我们的项目中,我们有两个独立的开发商承包商。每个承包商负责特定的微服务 我们使用Harbor作为图表和附带容器映像的存储库,使用GitLab作为代码repo和CI/CD编排器…通过GitLab运行程序 计划是使用总括图将大约60个微服务部署为一个系统 我感兴趣的是听取采取类似方法的任何团体的意见,以及他们在CI/CD过程中如何对待/处理总括图 感谢您的任何意见/指导 VR,我们使用类似的模式,我

我是这个团体的新成员。很高兴与您联系。
我想知道是否有人有在CI/CD流程中使用伞形头盔图表的经验

在我们的项目中,我们有两个独立的开发商承包商。每个承包商负责特定的微服务

我们使用Harbor作为图表和附带容器映像的存储库,使用GitLab作为代码repo和CI/CD编排器…通过GitLab运行程序

计划是使用总括图将大约60个微服务部署为一个系统

我感兴趣的是听取采取类似方法的任何团体的意见,以及他们在CI/CD过程中如何对待/处理总括图

感谢您的任何意见/指导


VR,

我们使用类似的模式,我们有30多个微服务

我们已经获得了基础图表的Github回购协议。

基本微服务图表有各种kubernetes模板(如HPA、ConfigMap、Secrets、Deployment、Service、Ingress等),每个模板都有启用或禁用的选项

注-基础图表甚至可以包含其他图表

例如,此基础图表与nginx入口图表具有相关性:

apiVersion: v2
name: base-microservice
description: A base helm chart for deploying a microservice in Kubernetes
type: application
version: 0.1.6
appVersion: 1
dependencies:
- name: nginx-ingress
  version: "~1.39.1"
  repository: "alias:stable"
  condition: nginx-ingress.enabled
下面是secrets.yaml模板的示例模板:

{{- if .Values.secrets.enabled -}}
apiVersion: v1
kind: Secret
metadata:
  name: {{ include "base-microservice.fullname" . }}
type: Opaque
data:
  {{- toYaml .Values.secrets.data | nindent 2}}
{{- end}}
现在,当提交发生在这个基本图表中时,作为CI过程的一部分,我们会(以及其他事情)执行

  • 检查图表存储库中是否已存在舵手索引
  • 如果存在,则下载现有索引并将当前生成的索引与现有索引合并->helm repo index--merge oldindex/index.yaml
  • 如果它不存在,那么我们创建新的Helm index->(Helm repo index.),然后将归档的图表和索引yaml上传到我们的图表存储库
  • 现在在我们的每个微服务中,我们都有一个图表目录,其中只有2个文件:

  • Chart.yaml
  • 价值观
  • 示例微服务的目录结构:

    此微服务A的Chart.yaml如下所示:

    apiVersion: v2
    name: my-service-A
    description: A Helm chart for Kubernetes
    type: application
    version: 0.1.0
    appVersion: 1
    
    dependencies:
    - name: base-microservice
      version: "0.1.6"
      repository: "alias:azure"
    
    该微服务A的values.yaml具有需要为基本微服务值重写的值

    例如

    现在,在持续部署此微服务时,我们有以下步骤(其中包括):

  • 获取舵依赖项(舵依赖项更新。/charts/my-service-A)
  • 将我的版本部署到kubernetes(helm升级——安装my-service-a./charts/my-service-a)

  • 请核对我的答案。希望对你有帮助。
    base-microservice:
      nameOverride: my-service-A
      image:
        repository: myDockerRepo/my-service-A
      resources:
        limits:
          cpu: 1000m
          memory: 1024Mi
        requests:
          cpu: 300m
          memory: 500Mi
      probe:
        initialDelaySeconds: 120
      nginx-ingress:
        enabled: true
      ingress:
        enabled: true