无法在 Sentry 图表中更改 Helm zookeeper 的 storageClass values.yaml
Can't change Helm zookeeper's storageClass in Sentry charts values.yaml
我们想使用 Sentry 进行错误记录(我们的用例在本地),但由于我们对所有内容都使用 k8s,所以我们选择了 Sentry Kubernetes 图表。
我们使用的是云提供商,其中为 PVC blank/empty 保留 storageClass
不会创建 PVC,而是使系统处于挂起状态,因此我们需要手动更改 storageClass
,如果你深入研究 k8s Helm 图表的 values.yaml 文件,或多或少会有描述。
需要的魔法是 storageClass: csi-disk
,这让我们的云提供商知道它可以附加那种类型的 PVC(而不是像上面描述的那样什么都不做)
我们在下面所做的也与 bitnami 提供的 values.yaml 匹配:https://github.com/bitnami/charts/blob/master/bitnami/zookeeper/values.yaml, which we are supposed to check as mentioned in your charts' values.yaml: https://github.com/sentry-kubernetes/charts/blob/develop/sentry/values.yaml#L714
所有其他 Bitnami 图表都有效(PGDB 等)我在下面留下了一个示例并注释掉了其余部分。
但无论我做什么,我都无法将 storageClass 解析为 desiredManifest,而且我无法实时更改清单,因为它是一个 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!
所需的清单始终停留在(更改元数据和任何其他规范也失败,因此图表不接受任何 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 并将其用于现有声明吗?
最后我从 GitHub 问题中得到了答案,我将其重新发布在这里:
Kafka 有自己内部的 zookeeper 依赖,所以你可以这样做:
kafka:
persistence:
storageClass: csi-disk
zookeeper:
persistence:
storageClass: csi-disk
我们想使用 Sentry 进行错误记录(我们的用例在本地),但由于我们对所有内容都使用 k8s,所以我们选择了 Sentry Kubernetes 图表。
我们使用的是云提供商,其中为 PVC blank/empty 保留 storageClass
不会创建 PVC,而是使系统处于挂起状态,因此我们需要手动更改 storageClass
,如果你深入研究 k8s Helm 图表的 values.yaml 文件,或多或少会有描述。
需要的魔法是 storageClass: csi-disk
,这让我们的云提供商知道它可以附加那种类型的 PVC(而不是像上面描述的那样什么都不做)
我们在下面所做的也与 bitnami 提供的 values.yaml 匹配:https://github.com/bitnami/charts/blob/master/bitnami/zookeeper/values.yaml, which we are supposed to check as mentioned in your charts' values.yaml: https://github.com/sentry-kubernetes/charts/blob/develop/sentry/values.yaml#L714
所有其他 Bitnami 图表都有效(PGDB 等)我在下面留下了一个示例并注释掉了其余部分。
但无论我做什么,我都无法将 storageClass 解析为 desiredManifest,而且我无法实时更改清单,因为它是一个 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!
所需的清单始终停留在(更改元数据和任何其他规范也失败,因此图表不接受任何 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 并将其用于现有声明吗?
最后我从 GitHub 问题中得到了答案,我将其重新发布在这里:
Kafka 有自己内部的 zookeeper 依赖,所以你可以这样做:
kafka:
persistence:
storageClass: csi-disk
zookeeper:
persistence:
storageClass: csi-disk