From 3424c1665c08cbe17cfe0ba9b2396977ea812606 Mon Sep 17 00:00:00 2001 From: rlaisqls Date: Thu, 24 Aug 2023 17:33:22 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=80=20::=20helm=20build?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- helm/argocd/charts/redis-ha-4.16.0.tgz | Bin 0 -> 30122 bytes helm/argocd/charts/redis-ha/Chart.yaml | 21 - helm/argocd/charts/redis-ha/README.md | 379 ----- .../redis-ha/ci/haproxy-enabled-values.yaml | 10 - .../charts/redis-ha/templates/NOTES.txt | 25 - .../charts/redis-ha/templates/_configs.tpl | 693 --------- .../charts/redis-ha/templates/_helpers.tpl | 83 - .../templates/redis-ha-announce-service.yaml | 60 - .../templates/redis-ha-configmap.yaml | 37 - .../redis-ha-exporter-script-configmap.yaml | 14 - .../templates/redis-ha-health-configmap.yaml | 20 - .../templates/redis-ha-network-policy.yaml | 86 -- .../redis-ha/templates/redis-ha-pdb.yaml | 21 - .../templates/redis-ha-prometheus-rule.yaml | 17 - .../redis-ha/templates/redis-ha-psp.yaml | 48 - .../redis-ha/templates/redis-ha-role.yaml | 29 - .../templates/redis-ha-rolebinding.yaml | 19 - .../redis-ha/templates/redis-ha-secret.yaml | 32 - .../redis-ha/templates/redis-ha-service.yaml | 54 - .../templates/redis-ha-serviceaccount.yaml | 27 - .../templates/redis-ha-servicemonitor.yaml | 36 - .../templates/redis-ha-statefulset.yaml | 593 ------- .../templates/redis-haproxy-deployment.yaml | 200 --- .../redis-ha/templates/redis-haproxy-pdb.yaml | 18 - .../redis-ha/templates/redis-haproxy-psp.yaml | 42 - .../templates/redis-haproxy-role.yaml | 32 - .../templates/redis-haproxy-rolebinding.yaml | 22 - .../templates/redis-haproxy-service.yaml | 51 - .../redis-haproxy-serviceaccount.yaml | 15 - .../redis-haproxy-servicemonitor.yaml | 36 - .../redis-ha/templates/redis-tls-secret.yaml | 27 - .../tests/test-redis-ha-configmap.yaml | 27 - .../templates/tests/test-redis-ha-pod.yaml | 22 - helm/argocd/charts/redis-ha/values.yaml | 671 -------- helm/cost-analyzer/charts/grafana-1.17.2.tgz | Bin 10955 -> 10954 bytes helm/cost-analyzer/charts/grafana/Chart.yaml | 15 - helm/cost-analyzer/charts/grafana/README.md | 162 -- .../charts/grafana/templates/NOTES.txt | 37 - .../charts/grafana/templates/_helpers.tpl | 43 - .../charts/grafana/templates/clusterrole.yaml | 25 - .../grafana/templates/clusterrolebinding.yaml | 25 - .../configmap-dashboard-provider.yaml | 29 - .../charts/grafana/templates/configmap.yaml | 102 -- .../templates/dashboards-json-configmap.yaml | 25 - .../charts/grafana/templates/deployment.yaml | 302 ---- .../grafana/templates/podsecuritypolicy.yaml | 47 - .../charts/grafana/templates/pvc.yaml | 27 - .../charts/grafana/templates/role.yaml | 21 - .../charts/grafana/templates/rolebinding.yaml | 21 - .../charts/grafana/templates/secret.yaml | 23 - .../charts/grafana/templates/service.yaml | 52 - .../grafana/templates/serviceaccount.yaml | 14 - helm/cost-analyzer/charts/grafana/values.yaml | 283 ---- .../charts/prometheus-11.0.2.tgz | Bin 33717 -> 33716 bytes .../charts/prometheus/.helmignore | 23 - .../charts/prometheus/Chart.yaml | 24 - .../cost-analyzer/charts/prometheus/README.md | 475 ------ .../charts/kube-state-metrics/.helmignore | 21 - .../charts/kube-state-metrics/Chart.yaml | 20 - .../charts/kube-state-metrics/OWNERS | 8 - .../charts/kube-state-metrics/README.md | 73 - .../kube-state-metrics/templates/NOTES.txt | 10 - .../kube-state-metrics/templates/_helpers.tpl | 47 - .../templates/clusterrole.yaml | 182 --- .../templates/clusterrolebinding.yaml | 21 - .../templates/deployment.yaml | 192 --- .../templates/podsecuritypolicy.yaml | 43 - .../templates/psp-clusterrole.yaml | 19 - .../templates/psp-clusterrolebinding.yaml | 21 - .../kube-state-metrics/templates/service.yaml | 38 - .../templates/serviceaccount.yaml | 16 - .../templates/servicemonitor.yaml | 27 - .../templates/stsdiscovery-role.yaml | 29 - .../templates/stsdiscovery-rolebinding.yaml | 22 - .../charts/kube-state-metrics/values.yaml | 126 -- .../charts/prometheus/requirements.lock | 6 - .../charts/prometheus/requirements.yaml | 7 - .../charts/prometheus/templates/NOTES.txt | 112 -- .../charts/prometheus/templates/_helpers.tpl | 276 ---- .../templates/alertmanager-clusterrole.yaml | 23 - .../alertmanager-clusterrolebinding.yaml | 18 - .../templates/alertmanager-configmap.yaml | 21 - .../templates/alertmanager-deployment.yaml | 142 -- .../templates/alertmanager-ingress.yaml | 47 - .../templates/alertmanager-networkpolicy.yaml | 22 - .../templates/alertmanager-pdb.yaml | 20 - .../alertmanager-podsecuritypolicy.yaml | 52 - .../templates/alertmanager-pvc.yaml | 35 - .../alertmanager-service-headless.yaml | 33 - .../templates/alertmanager-service.yaml | 55 - .../alertmanager-serviceaccount.yaml | 11 - .../templates/alertmanager-statefulset.yaml | 155 -- .../templates/node-exporter-daemonset.yaml | 133 -- .../node-exporter-podsecuritypolicy.yaml | 59 - .../templates/node-exporter-role.yaml | 20 - .../templates/node-exporter-rolebinding.yaml | 21 - .../templates/node-exporter-service.yaml | 47 - .../node-exporter-serviceaccount.yaml | 11 - .../templates/pushgateway-clusterrole.yaml | 23 - .../pushgateway-clusterrolebinding.yaml | 18 - .../templates/pushgateway-deployment.yaml | 100 -- .../templates/pushgateway-ingress.yaml | 44 - .../templates/pushgateway-networkpolicy.yaml | 22 - .../prometheus/templates/pushgateway-pdb.yaml | 19 - .../pushgateway-podsecuritypolicy.yaml | 48 - .../prometheus/templates/pushgateway-pvc.yaml | 35 - .../templates/pushgateway-service.yaml | 43 - .../templates/pushgateway-serviceaccount.yaml | 11 - .../templates/server-clusterrole.yaml | 49 - .../templates/server-clusterrolebinding.yaml | 18 - .../templates/server-configmap.yaml | 90 -- .../templates/server-deployment.yaml | 249 --- .../prometheus/templates/server-ingress.yaml | 62 - .../templates/server-networkpolicy.yaml | 20 - .../prometheus/templates/server-pdb.yaml | 19 - .../templates/server-podsecuritypolicy.yaml | 57 - .../prometheus/templates/server-pvc.yaml | 37 - .../templates/server-service-headless.yaml | 29 - .../prometheus/templates/server-service.yaml | 62 - .../templates/server-serviceaccount.yaml | 17 - .../templates/server-statefulset.yaml | 225 --- .../prometheus/templates/server-vpa.yaml | 27 - .../charts/prometheus/values.yaml | 1360 ----------------- helm/cost-analyzer/charts/thanos-0.29.0.tgz | Bin 12385 -> 12383 bytes helm/cost-analyzer/charts/thanos/.helmignore | 21 - helm/cost-analyzer/charts/thanos/Chart.yaml | 16 - .../charts/thanos/requirements.yaml | 0 .../charts/thanos/templates/NOTES.txt | 0 .../charts/thanos/templates/_helpers.tpl | 51 - .../thanos/templates/bucket-deployment.yaml | 109 -- .../thanos/templates/bucket-ingress.yaml | 64 - .../templates/bucket-poddisruptionbudget.yaml | 31 - .../thanos/templates/bucket-service.yaml | 31 - .../thanos/templates/compact-deployment.yaml | 129 -- .../charts/thanos/templates/compact-pvc.yaml | 28 - .../thanos/templates/compact-service.yaml | 31 - .../templates/compact-servicemonitor.yaml | 33 - .../thanos/templates/query-deployment.yaml | 159 -- .../templates/query-frontend-deployment.yaml | 151 -- ...uery-frontend-horizontalpodautoscaler.yaml | 38 - .../templates/query-frontend-ingress.yml | 67 - .../query-frontend-poddisruptionbudget.yaml | 31 - .../templates/query-frontend-service.yaml | 35 - .../query-frontend-servicemonitor.yaml | 33 - .../query-horizontalpodautoscaler.yaml | 38 - .../charts/thanos/templates/query-ingress.yml | 132 -- .../templates/query-poddisruptionbudget.yaml | 31 - .../thanos/templates/query-service.yaml | 66 - .../templates/query-servicemonitor.yaml | 33 - .../thanos/templates/sidecar-service.yaml | 62 - .../templates/sidecar-servicemonitor.yaml | 33 - .../thanos/templates/store-deployment.yaml | 156 -- .../thanos/templates/store-ingress.yaml | 128 -- .../charts/thanos/templates/store-pvc.yaml | 28 - .../thanos/templates/store-service.yaml | 67 - .../templates/store-servicemonitor.yaml | 33 - helm/cost-analyzer/charts/thanos/values.yaml | 800 ---------- helm/helm-build.sh | 11 + helm/karpenter/Chart.lock | 3 - helm/thanos/Chart.lock | 8 +- helm/thanos/charts/common-2.9.0.tgz | Bin 0 -> 12942 bytes helm/thanos/charts/minio-12.8.0.tgz | Bin 0 -> 46987 bytes 162 files changed, 15 insertions(+), 12839 deletions(-) create mode 100644 helm/argocd/charts/redis-ha-4.16.0.tgz delete mode 100644 helm/argocd/charts/redis-ha/Chart.yaml delete mode 100644 helm/argocd/charts/redis-ha/README.md delete mode 100644 helm/argocd/charts/redis-ha/ci/haproxy-enabled-values.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/NOTES.txt delete mode 100644 helm/argocd/charts/redis-ha/templates/_configs.tpl delete mode 100644 helm/argocd/charts/redis-ha/templates/_helpers.tpl delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-announce-service.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-configmap.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-exporter-script-configmap.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-health-configmap.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-network-policy.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-pdb.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-prometheus-rule.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-psp.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-role.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-rolebinding.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-secret.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-service.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-serviceaccount.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-servicemonitor.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-ha-statefulset.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-haproxy-deployment.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-haproxy-pdb.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-haproxy-psp.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-haproxy-role.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-haproxy-rolebinding.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-haproxy-service.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-haproxy-serviceaccount.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-haproxy-servicemonitor.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/redis-tls-secret.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/tests/test-redis-ha-configmap.yaml delete mode 100644 helm/argocd/charts/redis-ha/templates/tests/test-redis-ha-pod.yaml delete mode 100644 helm/argocd/charts/redis-ha/values.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/Chart.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/README.md delete mode 100755 helm/cost-analyzer/charts/grafana/templates/NOTES.txt delete mode 100755 helm/cost-analyzer/charts/grafana/templates/_helpers.tpl delete mode 100755 helm/cost-analyzer/charts/grafana/templates/clusterrole.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/templates/clusterrolebinding.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/templates/configmap-dashboard-provider.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/templates/configmap.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/templates/dashboards-json-configmap.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/templates/deployment.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/templates/podsecuritypolicy.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/templates/pvc.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/templates/role.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/templates/rolebinding.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/templates/secret.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/templates/service.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/templates/serviceaccount.yaml delete mode 100755 helm/cost-analyzer/charts/grafana/values.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/.helmignore delete mode 100755 helm/cost-analyzer/charts/prometheus/Chart.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/README.md delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/.helmignore delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/Chart.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/OWNERS delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/README.md delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/templates/NOTES.txt delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/templates/_helpers.tpl delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/templates/clusterrole.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/templates/clusterrolebinding.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/templates/deployment.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/templates/podsecuritypolicy.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/templates/psp-clusterrole.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/templates/psp-clusterrolebinding.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/templates/service.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/templates/serviceaccount.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/templates/servicemonitor.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/templates/stsdiscovery-role.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/templates/stsdiscovery-rolebinding.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/charts/kube-state-metrics/values.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/requirements.lock delete mode 100755 helm/cost-analyzer/charts/prometheus/requirements.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/NOTES.txt delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/_helpers.tpl delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/alertmanager-clusterrole.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/alertmanager-clusterrolebinding.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/alertmanager-configmap.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/alertmanager-deployment.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/alertmanager-ingress.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/alertmanager-networkpolicy.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/alertmanager-pdb.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/alertmanager-podsecuritypolicy.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/alertmanager-pvc.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/alertmanager-service-headless.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/alertmanager-service.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/alertmanager-serviceaccount.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/alertmanager-statefulset.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/node-exporter-daemonset.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/node-exporter-podsecuritypolicy.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/node-exporter-role.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/node-exporter-rolebinding.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/node-exporter-service.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/node-exporter-serviceaccount.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/pushgateway-clusterrole.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/pushgateway-clusterrolebinding.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/pushgateway-deployment.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/pushgateway-ingress.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/pushgateway-networkpolicy.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/pushgateway-pdb.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/pushgateway-podsecuritypolicy.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/pushgateway-pvc.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/pushgateway-service.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/pushgateway-serviceaccount.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/server-clusterrole.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/server-clusterrolebinding.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/server-configmap.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/server-deployment.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/server-ingress.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/server-networkpolicy.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/server-pdb.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/server-podsecuritypolicy.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/server-pvc.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/server-service-headless.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/server-service.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/server-serviceaccount.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/server-statefulset.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/templates/server-vpa.yaml delete mode 100755 helm/cost-analyzer/charts/prometheus/values.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/.helmignore delete mode 100644 helm/cost-analyzer/charts/thanos/Chart.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/requirements.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/NOTES.txt delete mode 100644 helm/cost-analyzer/charts/thanos/templates/_helpers.tpl delete mode 100644 helm/cost-analyzer/charts/thanos/templates/bucket-deployment.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/bucket-ingress.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/bucket-poddisruptionbudget.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/bucket-service.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/compact-deployment.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/compact-pvc.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/compact-service.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/compact-servicemonitor.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/query-deployment.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/query-frontend-deployment.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/query-frontend-horizontalpodautoscaler.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/query-frontend-ingress.yml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/query-frontend-poddisruptionbudget.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/query-frontend-service.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/query-frontend-servicemonitor.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/query-horizontalpodautoscaler.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/query-ingress.yml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/query-poddisruptionbudget.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/query-service.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/query-servicemonitor.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/sidecar-service.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/sidecar-servicemonitor.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/store-deployment.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/store-ingress.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/store-pvc.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/store-service.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/templates/store-servicemonitor.yaml delete mode 100644 helm/cost-analyzer/charts/thanos/values.yaml create mode 100644 helm/helm-build.sh delete mode 100644 helm/karpenter/Chart.lock create mode 100644 helm/thanos/charts/common-2.9.0.tgz create mode 100644 helm/thanos/charts/minio-12.8.0.tgz diff --git a/helm/argocd/charts/redis-ha-4.16.0.tgz b/helm/argocd/charts/redis-ha-4.16.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..63486a99dc06e112b5021b26dbd7024d0b4812b8 GIT binary patch literal 30122 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 literal 0 HcmV?d00001 diff --git a/helm/argocd/charts/redis-ha/Chart.yaml b/helm/argocd/charts/redis-ha/Chart.yaml deleted file mode 100644 index 2ff8cae1..00000000 --- a/helm/argocd/charts/redis-ha/Chart.yaml +++ /dev/null @@ -1,21 +0,0 @@ -apiVersion: v2 -appVersion: 6.2.5 -description: This Helm chart provides a highly available Redis implementation with - a master/slave configuration and uses Sentinel sidecars for failover management -home: http://redis.io/ -icon: https://upload.wikimedia.org/wikipedia/en/thumb/6/6b/Redis_Logo.svg/1200px-Redis_Logo.svg.png -keywords: -- redis -- keyvalue -- database -maintainers: -- email: salimsalaues@gmail.com - name: ssalaues -- email: aaron.layfield@gmail.com - name: dandydeveloper -name: redis-ha -sources: -- https://redis.io/download -- https://github.com/DandyDeveloper/charts/blob/master/charts/redis-ha -- https://github.com/oliver006/redis_exporter -version: 4.16.0 diff --git a/helm/argocd/charts/redis-ha/README.md b/helm/argocd/charts/redis-ha/README.md deleted file mode 100644 index 8c0f0b2d..00000000 --- a/helm/argocd/charts/redis-ha/README.md +++ /dev/null @@ -1,379 +0,0 @@ -# Redis - -[Redis](http://redis.io/) is an advanced key-value cache and store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets, sorted sets, bitmaps and hyperloglogs. - -## TL;DR - -```bash -helm repo add dandydev https://dandydeveloper.github.io/charts -helm install dandydev/redis-ha -``` - -By default this chart install 3 pods total: - -* one pod containing a redis master and sentinel container (optional prometheus metrics exporter sidecar available) -* two pods each containing a redis slave and sentinel containers (optional prometheus metrics exporter sidecars available) - -## Introduction - -This chart bootstraps a [Redis](https://redis.io) highly available master/slave statefulset in a [Kubernetes](http://kubernetes.io) cluster using the Helm package manager. - -## Prerequisites - -* Kubernetes 1.8+ with Beta APIs enabled -* PV provisioner support in the underlying infrastructure - -## Upgrading the Chart - -Please note that there have been a number of changes simplifying the redis management strategy (for better failover and elections) in the 3.x version of this chart. These changes allow the use of official [redis](https://hub.docker.com/_/redis/) images that do not require special RBAC or ServiceAccount roles. As a result when upgrading from version >=2.0.1 to >=3.0.0 of this chart, `Role`, `RoleBinding`, and `ServiceAccount` resources should be deleted manually. - -### Upgrading the chart from 3.x to 4.x - -Starting from version `4.x` HAProxy sidecar prometheus-exporter removed and replaced by the embedded [HAProxy metrics endpoint](https://github.com/haproxy/haproxy/tree/master/contrib/prometheus-exporter), as a result when upgrading from version 3.x to 4.x section `haproxy.exporter` should be removed and the `haproxy.metrics` need to be configured for fit your needs. - -## Installing the Chart - -To install the chart - -```bash -helm repo add dandydev https://dandydeveloper.github.io/charts -helm install dandydev/redis-ha -``` - -The command deploys Redis on the Kubernetes cluster in the default configuration. By default this chart install one master pod containing redis master container and sentinel container along with 2 redis slave pods each containing their own sentinel sidecars. The [configuration](#configuration) section lists the parameters that can be configured during installation. - -> **Tip**: List all releases using `helm list` - -## Uninstalling the Chart - -To uninstall/delete the deployment: - -```bash -helm delete -``` - -The command removes all the Kubernetes components associated with the chart and deletes the release. - -## Configuration - -The following table lists the configurable parameters of the Redis chart and their default values. - -| Parameter | Description | Default | -|:--------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------------------------------------------------------------------------------------| -| `image.repository` | Redis image repository | `redis` | -| `image.tag` | Redis image tag | `6.2.5-alpine` | -| `image.pullPolicy` | Redis image pull policy | `IfNotPresent` | -| `imagePullSecrets` | Reference to one or more secrets to be used when pulling redis images | [] | -| `tag` | Redis tag | `6.2.5-alpine` | -| `replicas` | Number of redis master/slave pods | `3` | -| `podManagementPolicy` | The statefulset pod management policy | `OrderedReady` | -| `ro_replicas` | Comma separated list of slaves which never get promoted to be master. Count starts with 0. Allowed values 1-9. i.e. 3,4 - 3th and 4th redis slave never make it to be master, where master is index 0. | ``| -| `serviceAccount.create` | Specifies whether a ServiceAccount should be created | `true` | -| `serviceAccount.name` | The name of the ServiceAccount to create | Generated using the redis-ha.fullname template | -| `serviceAccount.automountToken` | Opt in/out of automounting API credentials into container | `false` | -| `podSecurityPolicy.create` | Specifies whether a PodSecurityPolicy should be created | `false` | -| `rbac.create` | Create and use RBAC resources | `true` | -| `redis.port` | Port to access the redis service | `6379` | -| `redis.tlsPort` | TLS Port to access the redis service |``| -| `redis.tlsReplication` | Configures redis with tls-replication parameter, if true sets "tls-replication yes" in redis.conf |``| -| `redis.authClients` | It is possible to disable client side certificates authentication when "authClients" is set to "no" |``| -| `redis.livenessProbe.initialDelaySeconds` | Initial delay in seconds for liveness probe | `30` | -| `redis.livenessProbe.periodSeconds` | Period in seconds after which liveness probe will be repeated | `15` | -| `redis.livenessProbe.timeoutSeconds` | Timeout seconds for liveness probe | `15` | -| `redis.livenessProbe.successThreshold` | Success threshold for liveness probe | `1` | -| `redis.livenessProbe.failureThreshold` | Failure threshold for liveness probe | `5` | -| `redis.readinessProbe.initialDelaySeconds` | Initial delay in seconds for readiness probe | `30` | -| `redis.readinessProbe.periodSeconds` | Period in seconds after which readiness probe will be repeated | `15` | -| `redis.readinessProbe.timeoutSeconds` | Timeout seconds for readiness probe | `15` | -| `redis.readinessProbe.successThreshold` | Success threshold for readiness probe | `1` | -| `redis.readinessProbe.failureThreshold` | Failure threshold for readiness probe | `5` | -| `redis.masterGroupName` | Redis convention for naming the cluster group: must match `^[\\w-\\.]+$` and can be templated | `mymaster` | -| `redis.config` | Any valid redis config options in this section will be applied to each server (see below) | see values.yaml | -| `redis.customConfig` | Allows for custom redis.conf files to be applied. If this is used then `redis.config` is ignored |``| -| `redis.resources` | CPU/Memory for master/slave nodes resource requests/limits | `{}` | -| `redis.lifecycle` | Container Lifecycle Hooks for redis container | see values.yaml | -| `redis.annotations` | Annotations for the redis statefulset | `{}` | -| `redis.updateStategy.type`| Update strategy for redis statefulSet | `RollingUpdate` | -| `redis.extraVolumeMounts` | Extra volume mounts for Redis container | `[]` | -| `sentinel.port` | Port to access the sentinel service | `26379` | -| `sentinel.bind` | Configure the 'bind' directive to bind to a list of network interfaces | `` | -| `sentinel.tlsPort` | TLS Port to access the sentinel service |``| -| `sentinel.tlsReplication` | Configures sentinel with tls-replication parameter, if true sets "tls-replication yes" in sentinel.conf |``| -| `sentinel.authClients` | It is possible to disable client side certificates authentication when "authClients" is set to "no" |``| -| `sentinel.livenessProbe.initialDelaySeconds` | Initial delay in seconds for liveness probe | `30` | -| `sentinel.livenessProbe.periodSeconds` | Period in seconds after which liveness probe will be repeated | `15` | -| `sentinel.livenessProbe.timeoutSeconds` | Timeout seconds for liveness probe | `15` | -| `sentinel.livenessProbe.successThreshold` | Success threshold for liveness probe | `1` | -| `sentinel.livenessProbe.failureThreshold` | Failure threshold for liveness probe | `5` | -| `sentinel.readinessProbe.initialDelaySeconds` | Initial delay in seconds for readiness probe | `30` | -| `sentinel.readinessProbe.periodSeconds` | Period in seconds after which readiness probe will be repeated | `15` | -| `sentinel.readinessProbe.timeoutSeconds` | Timeout seconds for readiness probe | `15` | -| `sentinel.readinessProbe.successThreshold` | Success threshold for readiness probe | `3` | -| `sentinel.readinessProbe.failureThreshold` | Failure threshold for readiness probe | `5` | -| `sentinel.auth` | Enables or disables sentinel AUTH (Requires `sentinel.password` to be set) | `false` | -| `sentinel.password` | A password that configures a `requirepass` in the conf parameters (Requires `sentinel.auth: enabled`) |``| -| `sentinel.existingSecret` | An existing secret containing a key defined by `sentinel.authKey` that configures `requirepass` in the conf parameters (Requires `sentinel.auth: enabled`, cannot be used in conjunction with `.Values.sentinel.password`) |``| -| `sentinel.authKey` | The key holding the sentinel password in an existing secret. | `sentinel-password` | -| `sentinel.quorum` | Minimum number of servers necessary to maintain quorum | `2` | -| `sentinel.config` | Valid sentinel config options in this section will be applied as config options to each sentinel (see below) | see values.yaml | -| `sentinel.customConfig` | Allows for custom sentinel.conf files to be applied. If this is used then `sentinel.config` is ignored |``| -| `sentinel.resources` | CPU/Memory for sentinel node resource requests/limits | `{}` | -| `sentinel.lifecycle` | Container Lifecycle Hooks for sentinel container | `{}` | -| `sentinel.extraVolumeMounts` | Extra volume mounts for Sentinel container | `[]` | -| `init.resources` | CPU/Memory for init Container node resource requests/limits | `{}` | -| `auth` | Enables or disables redis AUTH (Requires `redisPassword` to be set) | `false` | -| `redisPassword` | A password that configures a `requirepass` and `masterauth` in the conf parameters (Requires `auth: enabled`) |``| -| `authKey` | The key holding the redis password in an existing secret. | `auth` | -| `existingSecret` | An existing secret containing a key defined by `authKey` that configures `requirepass` and `masterauth` in the conf parameters (Requires `auth: enabled`, cannot be used in conjunction with `.Values.redisPassword`) |``| -| `nodeSelector` | Node labels for pod assignment | `{}` | -| `tolerations` | Toleration labels for pod assignment | `[]` | -| `hardAntiAffinity` | Whether the Redis server pods should be forced to run on separate nodes. | `true` | -| `additionalAffinities` | Additional affinities to add to the Redis server pods. | `{}` | -| `securityContext` | Security context to be added to the Redis server pods. | `{runAsUser: 1000, fsGroup: 1000, runAsNonRoot: true}` | -| `affinity` | Override all other affinity settings with a string. | `""` | -| `labels` | Labels for the Redis pod. | `{}` | -| `configmap.labels` | Labels for the Redis configmap. | `{}` | -| `persistentVolume.size` | Size for the volume | 10Gi | -| `persistentVolume.annotations` | Annotations for the volume | `{}` | -| `emptyDir` | Configuration of `emptyDir`, used only if persistentVolume is disabled and no hostPath specified | `{}` | -| `exporter.enabled` | If `true`, the prometheus exporter sidecar is enabled | `false` | -| `exporter.image` | Exporter image | `oliver006/redis_exporter` | -| `exporter.tag` | Exporter tag | `v1.27.0` | -| `exporter.port` | Exporter port | `9121` | -| `exporter.portName` | Exporter port name | `exporter-port` | -| `exporter.address` | Redis instance Hostname/Address Exists to circumvent some issues with issues in IPv6 hostname resolution | `localhost` | -| `exporter.annotations` | Prometheus scrape annotations | `{prometheus.io/path: /metrics, prometheus.io/port: "9121", prometheus.io/scrape: "true"}` | -| `exporter.extraArgs` | Additional args for the exporter | `{}` | -| `exporter.script` | A custom custom Lua script that will be mounted to exporter for collection of custom metrics. Creates a ConfigMap and sets env var `REDIS_EXPORTER_SCRIPT`. | | -| `exporter.serviceMonitor.enabled` | Use servicemonitor from prometheus operator | `false` | -| `exporter.serviceMonitor.namespace` | Namespace the service monitor is created in | `default` | -| `exporter.serviceMonitor.interval` | Scrape interval, If not set, the Prometheus default scrape interval is used | `nil` | -| `exporter.serviceMonitor.telemetryPath` | Path to redis-exporter telemetry-path | `/metrics` | -| `exporter.serviceMonitor.labels` | Labels for the servicemonitor passed to Prometheus Operator | `{}` | -| `exporter.serviceMonitor.timeout` | How long until a scrape request times out. If not set, the Prometheus default scape timeout is used | `nil` | -| `haproxy.enabled` | Enabled HAProxy LoadBalancing/Proxy | `false` | -| `haproxy.replicas` | Number of HAProxy instances | `3` | -| `haproxy.servicePort` | Modify HAProxy service port | `6379` | -| `haproxy.containerPort` | Modify HAProxy deployment container port | `6379` -| `haproxy.image.repository`| HAProxy Image Repository | `haproxy` | -| `haproxy.image.tag` | HAProxy Image Tag | `2.4.2` | -| `haproxy.image.pullPolicy`| HAProxy Image PullPolicy | `IfNotPresent` | -| `haproxy.imagePullSecrets`| Reference to one or more secrets to be used when pulling haproxy images | [] | -| `haproxy.tls.enabled` | If "true" this will enable TLS termination on haproxy | `false` -| `haproxy.tls.secretName` | Secret containing the .pem file | `""` -| `haproxy.tls.certMountPath` | Path to mount the secret that contains the certificates. haproxy | `false` -| `haproxy.tls.secretName` | Secret containing the .pem file | `""` -| `haproxy.annotations` | HAProxy template annotations | `{}` | -| `haproxy.customConfig` | Allows for custom config-haproxy.cfg file to be applied. If this is used then default config will be overwriten |``| -| `haproxy.extraConfig` | Allows to place any additional configuration section to add to the default config-haproxy.cfg |``| -| `haproxy.resources` | HAProxy resources | `{}` | -| `haproxy.emptyDir` | Configuration of `emptyDir` | `{}` | -| `haproxy.labels` | Labels for the HAProxy pod | `{}` | -| `haproxy.podSecurityPolicy.create` | Specifies whether a PodSecurityPolicy should be created | `false` | -| `haproxy.service.type` | HAProxy service type "ClusterIP", "LoadBalancer" or "NodePort" | `ClusterIP` | -| `haproxy.service.nodePort` | HAProxy service nodePort value (haproxy.service.type must be NodePort) | not set | -| `haproxy.image.serviceAccountName`| HAProxy serviceAccountName | `default` -| `haproxy.service.externalTrafficPolicy`| HAProxy service externalTrafficPolicy value (haproxy.service.type must be LoadBalancer) | not set | -| `haproxy.service.annotations` | HAProxy service annotations | `{}` | -| `haproxy.stickyBalancing` | HAProxy sticky load balancing to Redis nodes. Helps with connections shutdown. | `false` | -| `haproxy.hapreadport.enable` | Enable a read only port for redis slaves | `false` | -| `haproxy.hapreadport.port` | Haproxy port for read only redis slaves | `6380` | -| `haproxy.metrics.enabled` | HAProxy enable prometheus metric scraping | `false` | -| `haproxy.metrics.port` | HAProxy prometheus metrics scraping port | `9101` | -| `haproxy.metrics.portName` | HAProxy metrics scraping port name | `http-exporter-port` | -| `haproxy.metrics.scrapePath` | HAProxy prometheus metrics scraping port | `/metrics` | -| `haproxy.metrics.serviceMonitor.enabled` | Use servicemonitor from prometheus operator for HAProxy metrics | `false` | -| `haproxy.metrics.serviceMonitor.namespace` | Namespace the service monitor for HAProxy metrics is created in | `default` | -| `haproxy.metrics.serviceMonitor.interval` | Scrape interval, If not set, the Prometheus default scrape interval is used | `nil` | -| `haproxy.metrics.serviceMonitor.telemetryPath` | Path to HAProxy metrics telemetry-path | `/metrics` | -| `haproxy.metrics.serviceMonitor.labels` | Labels for the HAProxy metrics servicemonitor passed to Prometheus Operator | `{}` | -| `haproxy.metrics.serviceMonitor.timeout` | How long until a scrape request times out. If not set, the Prometheus default scape timeout is used | `nil` | -| `haproxy.init.resources` | Extra init resources | `{}` | -| `haproxy.timeout.connect` | haproxy.cfg `timeout connect` setting | `4s` | -| `haproxy.timeout.server` | haproxy.cfg `timeout server` setting | `30s` | -| `haproxy.timeout.client` | haproxy.cfg `timeout client` setting | `30s` | -| `haproxy.timeout.check` | haproxy.cfg `timeout check` setting | `2s` | -| `haproxy.checkInterval` | haproxy.cfg `check inter` setting | `1s` | -| `haproxy.checkFall` | haproxy.cfg `check fall` setting | `1` | -| `haproxy.priorityClassName` | priorityClassName for `haproxy` deployment | not set | -| `haproxy.securityContext` | Security context to be added to the HAProxy deployment. | `{runAsUser: 1000, fsGroup: 1000, runAsNonRoot: true}` | -| `haproxy.hardAntiAffinity` | Whether the haproxy pods should be forced to run on separate nodes. | `true` | -| `haproxy.affinity` | Override all other haproxy affinity settings with a string. | `""` | -| `haproxy.additionalAffinities` | Additional affinities to add to the haproxy server pods. | `{}` | -| `podDisruptionBudget` | Pod Disruption Budget rules | `{}` | -| `nameOverride` | Override the chart name | `""` | -| `fullnameOverride` | Fully override the release name and chart name | `""` | -| `priorityClassName` | priorityClassName for `redis-ha-statefulset` | not set | -| `hostPath.path` | Use this path on the host for data storage | not set | -| `hostPath.chown` | Run an init-container as root to set ownership on the hostPath | `true` | -| `sysctlImage.enabled` | Enable an init container to modify Kernel settings | `false` | -| `sysctlImage.command` | sysctlImage command to execute | [] | -| `sysctlImage.registry` | sysctlImage Init container registry | `docker.io` | -| `sysctlImage.repository` | sysctlImage Init container name | `busybox` | -| `sysctlImage.tag` | sysctlImage Init container tag | `1.31.1` | -| `sysctlImage.pullPolicy` | sysctlImage Init container pull policy | `Always` | -| `sysctlImage.mountHostSys`| Mount the host `/sys` folder to `/host-sys` | `false` | -| `sysctlImage.resources` | sysctlImage resources | `{}` | -| `schedulerName` | Alternate scheduler name | `nil` | -| `tls.secretName` | The name of secret if you want to use your own TLS certificates. The secret should contains keys named by "tls.certFile" - the certificate, "tls.keyFile" - the private key, "tls.caCertFile" - the certificate of CA and "tls.dhParamsFile" - the dh parameter file | ``| -| `tls.certFile` | Name of certificate file | `redis.crt` | -| `tls.keyFile` | Name of key file | `redis.key` | -| `tls.dhParamsFile` | Name of Diffie-Hellman (DH) key exchange parameters file |`` | -| `tls.caCertFile` | Name of CA certificate file | `ca.crt` | -| `restore.s3.source` | Restore init container - AWS S3 location of dump - i.e. s3://bucket/dump.rdb | `false` | -| `restore.existingSecret` | Set to true to use existingSecret for the AWS S3 or SSH credentials | `false` | -| `topologySpreadConstraints.enabled` | Enable topology spread constraints |`false`| -| `topologySpreadConstraints.maxSkew` | Max skew of pods tolerated |`1`| -| `topologySpreadConstraints.topologyKey` | Topology key for spread |`topology.kubernetes.io/zone`| -| `topologySpreadConstraints.whenUnsatisfiable` | Enforcement policy, hard or soft |`ScheduleAnyway`| -| `restore.s3.access_key` | Restore init container - AWS AWS_ACCESS_KEY_ID to access restore.s3.source |``| -| `restore.s3.secret_key` | Restore init container - AWS AWS_SECRET_ACCESS_KEY to access restore.s3.source |``| -| `restore.s3.region` | Restore init container - AWS AWS_REGION to access restore.s3.source |``| -| `restore.ssh.source` | Restore init container - SSH scp location of dump - i.e. user@server:/path/dump.rdb | `false` | -| `restore.ssh.key` | Restore init container - SSH private key to scp restore.ssh.source to init container. Key should be in one line separated with \n. i.e. -----BEGIN RSA PRIVATE KEY-----\n...\n...\n-----END RSA PRIVATE KEY----- |`` | -| `extraContainers` | Extra containers to include in StatefulSet |`[]`| -| `extraInitContainers` | Extra init containers to include in StatefulSet |`[]`| -| `extraVolumes` | Extra volumes to include in StatefulSet |`[]`| -| `extraLabels` | Labels that should be applied to all created resources |`{}`| -| `networkPolicy.enabled` | Create NetworkPolicy for Redis StatefulSet pods |`false`| -| `networkPolicy.labels` | Labels for NetworkPolicy |`{}`| -| `networkPolicy.annotations` | Annotations for NetworkPolicy |`{}`| -| `networkPolicy.ingressRules[].selectors` | Label selector query to define resources for this ingress rule |`[]`| -| `networkPolicy.ingressRules[].ports` | The destination ports for the ingress rule |`[{port: redis.port, protocol: TCP}, {port: sentinel.port, protocol: TCP}]`| -| `networkPolicy.egressRules[].selectors` | Label selector query to define resources for this egress rule |`[]`| -| `networkPolicy.egressRules[].ports` | The destination ports for the egress rule |``| -| `splitBrainDetection.interval` | Interval between redis sentinel and server split brain checks (in seconds) |`60`| -| `splitBrainDetection.resources` | splitBrainDetection resources |`{}`| - -Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, - -```bash -$ helm repo add dandydev https://dandydeveloper.github.io/charts -$ helm install \ - --set image=redis \ - --set tag=5.0.5-alpine \ - dandydev/redis-ha -``` - -The above command sets the Redis server within `default` namespace. - -Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example, - -```bash -helm install -f values.yaml dandydev/redis-ha -``` - -> **Tip**: You can use the default [values.yaml](values.yaml) - -## Custom Redis and Sentinel config options - -This chart allows for most redis or sentinel config options to be passed as a key value pair through the `values.yaml` under `redis.config` and `sentinel.config`. See links below for all available options. - -[Example redis.conf](http://download.redis.io/redis-stable/redis.conf) -[Example sentinel.conf](http://download.redis.io/redis-stable/sentinel.conf) - -For example `repl-timeout 60` would be added to the `redis.config` section of the `values.yaml` as: - -```yml - repl-timeout: "60" -``` - -Note: - -1. Some config options should be renamed by redis version,e.g.: - - ```yml - # In redis 5.x,see https://raw.githubusercontent.com/antirez/redis/5.0/redis.conf - min-replicas-to-write: 1 - min-replicas-max-lag: 5 - - # In redis 4.x and redis 3.x,see https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf and https://raw.githubusercontent.com/antirez/redis/3.0/redis.conf - min-slaves-to-write 1 - min-slaves-max-lag 5 - ``` - -Sentinel options supported must be in the the `sentinel