kubernetes - 使用gltlab-runner Helm 安装的自定义卷

标签 kubernetes gitlab-ci-runner kubernetes-helm

为了更快的构建,我想在gitlab-runner中重用我的gradle-user-home。为此,我创建了一个pvc,并将其安装在我的构建容器上。我可以使用默认的 Helm chart 吗?

最佳答案

因此,如果您看到here。在默认的“ Helm chart ”上没有定义PVC(物理体积声明)或PV(物理体积)。

您必须拥有这样的东西:

        volumeMounts:
        - name: gradle-user-home <== add this
          mountPath: /path/to/home
          subPath: home  
        - name: runner-secrets
          mountPath: /secrets
        - name: etc-gitlab-runner
          mountPath: /home/gitlab-runner/.gitlab-runner
        - name: scripts
          mountPath: /scripts
        {{- if .Values.certsSecretName }}
        - name: custom-certs
          readOnly: true
          mountPath: /home/gitlab-runner/.gitlab-runner/certs/
        {{- end }}
        resources:
{{ toYaml .Values.resources | indent 10 }}
      volumes:
      - name: runner-secrets
        emptyDir:
          medium: "Memory"
      - name: etc-gitlab-runner
        emptyDir:
          medium: "Memory"
      - name: init-runner-secrets
        projected:
          sources:
            {{- if .Values.runners.cache }}
            - secret:
                name: {{ template "gitlab-runner.cache.secret" . }}
                items:
                  - key: accesskey
                    path: s3-access-key
                  - key: secretkey
                    path: s3-secret-key
            {{- end }}
            - secret:
                name: {{ template "gitlab-runner.secret" . }}
                items:
                  - key: runner-registration-token
                    path: runner-registration-token
                  - key: runner-token
                    path: runner-token
      {{- if .Values.certsSecretName }}
      - name: custom-certs
        secret:
          secretName: {{ .Values.certsSecretName }}
      {{- end }}
      - name: scripts
        configMap:
         name: {{ template "gitlab-runner.fullname" . }}


  volumeClaimTemplates:  <== Add this
  - metadata:
      name: gradle-user-home
    spec:
      accessModes: ["ReadWriteOnce"]
      resources:
        requests:
          storage: 10Gi

请注意,这只是一个粗略的草稿模板。如果要使其成为Helm图表,则必须转换为适当的Helm模板。 (这恰好是一个Golang模板)

如果不想,则不必修改模板。您可以根据需要直接修改部署:kubectl -n <namespace> edit deployment <gitlab-runner-deployment>
另外,如果您使用的是PVC(物理体积声明),则必须定义默认的Kubernetes Storage Class

希望能帮助到你!

关于kubernetes - 使用gltlab-runner Helm 安装的自定义卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52480616/

相关文章:

kubernetes - 如何允许(sidecar)容器在 Kubernetes 部署中终止而不重新启动?

Gitlab 覆盖范围徽章不起作用

docker - 为什么本地 Gitlab runner 没有检测到正在运行的 Docker 实例?

docker - 如何在 .gitlab-ci.yml 的 docker 容器中安装卷?

kubernetes - 在本地安装 Helm chart : “Error: gzip: invalid header”

azure - 如果我在 Azure 云中使用 k8 集群,是否需要 minikube?

kubernetes - 尝试安装cp-helm-charts:设置被忽略

kubernetes - 单个命令即可显示正在运行的 kubernetes pod 的日志

nginx - 为什么我从 Nginx 收到只读文件系统错误?

kubernetes - Helm 安装失败,出现 "Client is not authorized"