kubernetes-helm - 无法在 Sentry 图表 values.yaml 中更改 Helm zookeeper 的存储类

标签 kubernetes-helm sentry kubernetes-pvc argocd

我们想使用 Sentry 进行错误记录(我们的用例在本地),但由于我们对所有内容都使用 k8s,因此我们选择了 Sentry Kubernetes 图表。

我们正在使用云提供商,其中将 PVC 的 storageClass 留空/空不会创建 PVC,而是使系统处于待处理状态,因此我们需要手动更改 storageClass,如果你深入研究 K8s Helm 图表的 Sentry 的 values.yaml 文件,或多或少会有描述。

需要的魔法是 storageClass: csi-disk,它让我们的云提供商知道它可以附加那种类型的 PVC(而不是像上面描述的那样什么都不做)

我们在下面所做的也与 bitnami 提供的 values.yaml 相匹配:https://github.com/bitnami/charts/blob/master/bitnami/zookeeper/values.yaml ,我们应该按照图表的 values.yaml 中的说明进行检查:https://github.com/sentry-kubernetes/charts/blob/develop/sentry/values.yaml#L714

所有其他 Bitnami 图表都有效(PGDB 等)我在下面留下了一个示例并注释掉了其余部分。

但无论我做什么,我都无法将 storageClass 解析为 desiredManifest,而且我无法实时更改 list ,因为它是一个 StatefulSet,因此我需要以某种方式正确解析 storageClass。

已经花了很多时间尝试一切,寻找拼写错误等。

我们使用 Helm 和 ArgoCD,这是 ArgoCD 应用程序:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: sentry-dev
  namespace: argocd
  finalizers:
  - resources-finalizer.argocd.argoproj.io
spec:
  destination:
    namespace: sentry
    server: https://kubernetes.default.svc
  project: default
  source:
    repoURL: https://sentry-kubernetes.github.io/charts
    chart: sentry
    targetRevision: 13.0.1
    helm:
      values: |
        ingress:
          enabled: true
          annotations:
            kubernetes.io/ingress.class: nginx
            nginx.ingress.kubernetes.io/use-regex: "true"
            nginx.ingress.kubernetes.io/ssl-redirect: "true"
            nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
            cert-manager.io/cluster-issuer: "letsencrypt-prod"
          hostname: ...
          tls:
          # ...
        clickhouse:
          # ..
        filestore:
          # ..
        redis:
          master:
          #...
          replica:
          #...
        rabbitmq:
          persistence:
            enabled: true
            annotations:
              everest.io/disk-volume-type: SSD
            labels:
              failure-domain.beta.kubernetes.io/region: eu-de
              failure-domain.beta.kubernetes.io/zone: 
            accessModes:
            - ReadWriteOnce
            resources:
              requests:
                storage: 8Gi
            storageClass: csi-disk
        kafka:
        # ...
        postgresql:
        # ...
        zookeeper:
          enabled: true
          persistence:
            enabled: true
            annotations:
              everest.io/disk-volume-type: SSD
            labels:
              failure-domain.beta.kubernetes.io/region: eu-de
              failure-domain.beta.kubernetes.io/zone: 
            accessModes:
            - ReadWriteOnce
            resources:
              requests:
                storage: 8Gi
            storageClass: csi-disk
            storageClassName: csi-disk # tried both storageClass and storageClassName, together and separately!

所需 list 始终停留在(更改元数据和任何其他规范也失败,因此图表不接受任何 values.yaml 更改)

  volumeClaimTemplates:
    - metadata:
        annotations: null
        name: data
      spec:
        accessModes:
          - ReadWriteOnce
        resources:
          requests:
            storage: 8Gi

还有一个 GH 问题未解决:https://github.com/sentry-kubernetes/charts/issues/606

最佳答案

您能否在 helm 之前创建 pvc 并将其用于现有声明?

关于kubernetes-helm - 无法在 Sentry 图表 values.yaml 中更改 Helm zookeeper 的存储类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71838540/

相关文章:

kubernetes-helm - 错误 : validation failed: unable to recognize "": no matches for kind "Deployment" in version ""

jenkins - 由于 mac 上的权限,无法使用 Helm 在 Minikube 上安装 Jenkins

python - Sentry django 配置 - 记录器

electron - 无法在Sentry上获得可读的 Electron 崩溃报告

docker - 将持久卷声明添加到容器中的现有文件

kubernetes - helm charts 本地存储在哪里?

kubernetes-helm - Tiller 已安装但 Helm 未找到

python - 为不同的环境(登台、生产)配置 Sentry

kubernetes 持久卷和持久卷声明超出存储

kubernetes - 在 kubernetes 中使用 pvc 时如何避免覆盖容器目录?