try kustomize overlays
This commit is contained in:
@@ -1,34 +0,0 @@
|
||||
# Chart: keydb-custom
|
||||
# Helm chart tailored for KeyDB (EqAlpha) on 2 Raspberry Pi 5 nodes
|
||||
# - Mode: master (statefulset index 0) + replica (index 1)
|
||||
# - Replica runs as replicaof master at startup
|
||||
# - server-threads = 4
|
||||
# - Config mounted via ConfigMap
|
||||
# - Liveness / readiness probes included
|
||||
# - Persistence via PersistentVolumeClaim (storageClass configurable)
|
||||
# -----------------------------------------------------------------------------
|
||||
# Chart.yaml
|
||||
# -----------------------------------------------------------------------------
|
||||
apiVersion: v2
|
||||
name: clickhouse
|
||||
description: A Helm chart for Kubernetes
|
||||
|
||||
dependencies:
|
||||
- name: tool
|
||||
version: 0.1.0
|
||||
repository: https://gitea.arcodange.duckdns.org/api/packages/arcodange-org/helm
|
||||
- name: clickhouse
|
||||
version: 0.4.0
|
||||
repository: https://charts.pascaliske.dev
|
||||
|
||||
# A chart can be either an 'application' or a 'library' chart.
|
||||
#
|
||||
# Application charts are a collection of templates that can be packaged into versioned archives
|
||||
# to be deployed.
|
||||
#
|
||||
# Library charts provide useful utilities or functions for the chart developer. They're included as
|
||||
# a dependency of application charts to inject those utilities and functions into the rendering
|
||||
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
|
||||
type: application
|
||||
version: 0.1.0
|
||||
appVersion: "latest"
|
||||
176
clickhouse/clickhouseValues.yaml
Normal file
176
clickhouse/clickhouseValues.yaml
Normal file
@@ -0,0 +1,176 @@
|
||||
global: {}
|
||||
image:
|
||||
# -- The registry to pull the image from.
|
||||
registry: docker.io
|
||||
# -- The repository to pull the image from.
|
||||
repository: clickhouse/clickhouse-server
|
||||
# -- The docker tag, if left empty chart's appVersion will be used.
|
||||
# @default -- `.Chart.AppVersion`
|
||||
tag: ''
|
||||
# -- The pull policy for the controller.
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
nameOverride: ''
|
||||
fullnameOverride: ''
|
||||
|
||||
controller:
|
||||
# -- Create a workload for this chart.
|
||||
enabled: true
|
||||
# -- Type of the workload object.
|
||||
kind: StatefulSet
|
||||
# -- The number of replicas.
|
||||
replicas: 1
|
||||
# -- The controller update strategy. Currently only applies to controllers of kind `Deployment`.
|
||||
updateStrategy: {}
|
||||
# -- Additional annotations for the controller object.
|
||||
annotations: {}
|
||||
# -- Additional labels for the controller object.
|
||||
labels: {}
|
||||
|
||||
service:
|
||||
# -- Create a service for exposing this chart.
|
||||
enabled: true
|
||||
# -- The service type used.
|
||||
type: ClusterIP
|
||||
# -- ClusterIP used if service type is `ClusterIP`.
|
||||
clusterIP: ''
|
||||
# -- LoadBalancerIP if service type is `LoadBalancer`.
|
||||
loadBalancerIP: ''
|
||||
# -- Allowed addresses when service type is `LoadBalancer`.
|
||||
loadBalancerSourceRanges: []
|
||||
# -- Additional annotations for the service object.
|
||||
annotations: {}
|
||||
# -- Additional labels for the service object.
|
||||
labels: {}
|
||||
|
||||
env:
|
||||
# -- Timezone for the container.
|
||||
- name: TZ
|
||||
value: Europe/Paris
|
||||
|
||||
# -- List of extra arguments for the container.
|
||||
extraArgs: []
|
||||
# - --loglevel warning
|
||||
|
||||
ports:
|
||||
rest:
|
||||
# -- Enable the port inside the `Controller` and `Service` objects.
|
||||
enabled: true
|
||||
# -- The port used as internal port and cluster-wide port if `.service.type` == `ClusterIP`.
|
||||
port: 8123
|
||||
# -- The external port used if `.service.type` == `NodePort`.
|
||||
nodePort: null
|
||||
# -- The protocol used for the service.
|
||||
protocol: TCP
|
||||
rpc:
|
||||
# -- Enable the port inside the `Controller` and `Service` objects.
|
||||
enabled: true
|
||||
# -- The port used as internal port and cluster-wide port if `.service.type` == `ClusterIP`.
|
||||
port: 9000
|
||||
# -- The external port used if `.service.type` == `NodePort`.
|
||||
nodePort: null
|
||||
# -- The protocol used for the service.
|
||||
protocol: TCP
|
||||
|
||||
configMap:
|
||||
# -- Create a new config map object.
|
||||
create: true
|
||||
# -- Mount path of the config map object.
|
||||
mountPath: /etc/config
|
||||
# -- Use an existing config map object.
|
||||
existingConfigMap: ''
|
||||
# -- Map of configuration files as strings.
|
||||
files:
|
||||
custom-users.xml: |
|
||||
<clickhouse>
|
||||
<users>
|
||||
<default>
|
||||
<networks>
|
||||
<ip>::1</ip>
|
||||
<ip>127.0.0.1</ip>
|
||||
</networks>
|
||||
</default>
|
||||
<arcodange>
|
||||
<password>clickhousearcodange</password>
|
||||
<networks>
|
||||
<ip>::/0</ip>
|
||||
<ip>0.0.0.0/0</ip>
|
||||
</networks>
|
||||
<profile>default</profile>
|
||||
<quota>default</quota>
|
||||
<access_management>1</access_management>
|
||||
</arcodange>
|
||||
</users>
|
||||
</clickhouse>
|
||||
# file1.yml: |
|
||||
# # contents
|
||||
# file2.yml: |
|
||||
# # contents
|
||||
# -- Additional annotations for the config map object.
|
||||
annotations: {}
|
||||
# -- Additional labels for the config map object.
|
||||
labels: {}
|
||||
|
||||
persistentVolumeClaim:
|
||||
# -- Create a new persistent volume claim object.
|
||||
create: true
|
||||
# -- Mount path of the persistent volume claim object.
|
||||
mountPath: /var/lib/clickhouse
|
||||
# -- Access mode of the persistent volume claim object.
|
||||
accessMode: ReadWriteOnce
|
||||
# -- Volume mode of the persistent volume claim object.
|
||||
volumeMode: Filesystem
|
||||
# -- Storage request size for the persistent volume claim object.
|
||||
size: 16Gi
|
||||
# -- Storage class name for the persistent volume claim object.
|
||||
storageClassName: ''
|
||||
# -- Use an existing persistent volume claim object.
|
||||
existingPersistentVolumeClaim: ''
|
||||
# -- Additional annotations for the persistent volume claim object.
|
||||
annotations: {}
|
||||
# -- Additional labels for the persistent volume claim object.
|
||||
labels: {}
|
||||
|
||||
serviceAccount:
|
||||
# -- Create a `ServiceAccount` object.
|
||||
create: true
|
||||
# -- Specify the service account used for the controller.
|
||||
name: ''
|
||||
# -- Additional annotations for the role and role binding objects.
|
||||
annotations: {}
|
||||
# -- Additional labels for the role and role binding objects.
|
||||
labels: {}
|
||||
|
||||
# -- Pod-level security attributes. More info [here](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context).
|
||||
securityContext:
|
||||
fsGroup: 101
|
||||
runAsNonRoot: true
|
||||
runAsGroup: 101
|
||||
runAsUser: 101
|
||||
|
||||
# -- Compute resources used by the container. More info [here](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
|
||||
resources: {}
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
# -- Pod-level affinity. More info [here](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling).
|
||||
affinity: {}
|
||||
# nodeAffinity:
|
||||
# requiredDuringSchedulingIgnoredDuringExecution:
|
||||
# nodeSelectorTerms:
|
||||
# - matchExpressions:
|
||||
# - key: kubernetes.io/hostname
|
||||
# operator: In
|
||||
# values:
|
||||
# - my-node-xyz
|
||||
|
||||
# -- Pod-level tolerations. More info [here](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling).
|
||||
tolerations: []
|
||||
# - key: node-role.kubernetes.io/control-plane
|
||||
# operator: Exists
|
||||
# effect: NoSchedule
|
||||
|
||||
22
clickhouse/kustomization.yaml
Normal file
22
clickhouse/kustomization.yaml
Normal file
@@ -0,0 +1,22 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
helmCharts:
|
||||
- name: clickhouse
|
||||
repo: https://charts.pascaliske.dev
|
||||
version: 0.4.0
|
||||
releaseName: clickhouse
|
||||
valuesFile: clickhouseValues.yaml
|
||||
|
||||
patches:
|
||||
- target:
|
||||
kind: StatefulSet
|
||||
name: clickhouse
|
||||
patch: |-
|
||||
- op: add
|
||||
path: /spec/template/spec/containers/0/volumeMounts/-
|
||||
value:
|
||||
name: config-volume
|
||||
mountPath: /etc/clickhouse-server/users.d/custom-users.xml
|
||||
subPath: custom-users.xml
|
||||
readOnly: true
|
||||
@@ -1,3 +0,0 @@
|
||||
{{- if eq .Values.tool.kind "HelmChart" -}}
|
||||
{{- include "tool.helm-chart-config.tpl" . -}}
|
||||
{{- end -}}
|
||||
@@ -1,3 +0,0 @@
|
||||
{{- if eq .Values.tool.kind "HelmChart" -}}
|
||||
{{- include "tool.helm-chart.tpl" . -}}
|
||||
{{- end -}}
|
||||
@@ -1,185 +0,0 @@
|
||||
clickhouse: &clickhouse_config
|
||||
global: {}
|
||||
image:
|
||||
# -- The registry to pull the image from.
|
||||
registry: docker.io
|
||||
# -- The repository to pull the image from.
|
||||
repository: clickhouse/clickhouse-server
|
||||
# -- The docker tag, if left empty chart's appVersion will be used.
|
||||
# @default -- `.Chart.AppVersion`
|
||||
tag: ''
|
||||
# -- The pull policy for the controller.
|
||||
pullPolicy: IfNotPresent
|
||||
|
||||
nameOverride: ''
|
||||
fullnameOverride: ''
|
||||
|
||||
controller:
|
||||
# -- Create a workload for this chart.
|
||||
enabled: true
|
||||
# -- Type of the workload object.
|
||||
kind: StatefulSet
|
||||
# -- The number of replicas.
|
||||
replicas: 1
|
||||
# -- The controller update strategy. Currently only applies to controllers of kind `Deployment`.
|
||||
updateStrategy: {}
|
||||
# -- Additional annotations for the controller object.
|
||||
annotations: {}
|
||||
# -- Additional labels for the controller object.
|
||||
labels: {}
|
||||
|
||||
service:
|
||||
# -- Create a service for exposing this chart.
|
||||
enabled: true
|
||||
# -- The service type used.
|
||||
type: ClusterIP
|
||||
# -- ClusterIP used if service type is `ClusterIP`.
|
||||
clusterIP: ''
|
||||
# -- LoadBalancerIP if service type is `LoadBalancer`.
|
||||
loadBalancerIP: ''
|
||||
# -- Allowed addresses when service type is `LoadBalancer`.
|
||||
loadBalancerSourceRanges: []
|
||||
# -- Additional annotations for the service object.
|
||||
annotations: {}
|
||||
# -- Additional labels for the service object.
|
||||
labels: {}
|
||||
|
||||
env:
|
||||
# -- Timezone for the container.
|
||||
- name: TZ
|
||||
value: Europe/Paris
|
||||
|
||||
# -- List of extra arguments for the container.
|
||||
extraArgs: []
|
||||
# - --loglevel warning
|
||||
|
||||
ports:
|
||||
rest:
|
||||
# -- Enable the port inside the `Controller` and `Service` objects.
|
||||
enabled: true
|
||||
# -- The port used as internal port and cluster-wide port if `.service.type` == `ClusterIP`.
|
||||
port: 8123
|
||||
# -- The external port used if `.service.type` == `NodePort`.
|
||||
nodePort: null
|
||||
# -- The protocol used for the service.
|
||||
protocol: TCP
|
||||
rpc:
|
||||
# -- Enable the port inside the `Controller` and `Service` objects.
|
||||
enabled: true
|
||||
# -- The port used as internal port and cluster-wide port if `.service.type` == `ClusterIP`.
|
||||
port: 9000
|
||||
# -- The external port used if `.service.type` == `NodePort`.
|
||||
nodePort: null
|
||||
# -- The protocol used for the service.
|
||||
protocol: TCP
|
||||
|
||||
configMap:
|
||||
# -- Create a new config map object.
|
||||
create: true
|
||||
# -- Mount path of the config map object.
|
||||
mountPath: /etc/config
|
||||
# -- Use an existing config map object.
|
||||
existingConfigMap: ''
|
||||
# -- Map of configuration files as strings.
|
||||
files:
|
||||
custom-users.xml: |
|
||||
<clickhouse>
|
||||
<users>
|
||||
<default>
|
||||
<networks>
|
||||
<ip>::1</ip>
|
||||
<ip>127.0.0.1</ip>
|
||||
</networks>
|
||||
</default>
|
||||
<admin>
|
||||
<password>monmotdepasse</password>
|
||||
<networks>
|
||||
<ip>::/0</ip>
|
||||
<ip>0.0.0.0/0</ip>
|
||||
</networks>
|
||||
<profile>default</profile>
|
||||
<quota>default</quota>
|
||||
<access_management>1</access_management>
|
||||
</admin>
|
||||
</users>
|
||||
</clickhouse>
|
||||
# file1.yml: |
|
||||
# # contents
|
||||
# file2.yml: |
|
||||
# # contents
|
||||
# -- Additional annotations for the config map object.
|
||||
annotations: {}
|
||||
# -- Additional labels for the config map object.
|
||||
labels: {}
|
||||
|
||||
persistentVolumeClaim:
|
||||
# -- Create a new persistent volume claim object.
|
||||
create: true
|
||||
# -- Mount path of the persistent volume claim object.
|
||||
mountPath: /var/lib/clickhouse
|
||||
# -- Access mode of the persistent volume claim object.
|
||||
accessMode: ReadWriteOnce
|
||||
# -- Volume mode of the persistent volume claim object.
|
||||
volumeMode: Filesystem
|
||||
# -- Storage request size for the persistent volume claim object.
|
||||
size: 1Gi
|
||||
# -- Storage class name for the persistent volume claim object.
|
||||
storageClassName: ''
|
||||
# -- Use an existing persistent volume claim object.
|
||||
existingPersistentVolumeClaim: ''
|
||||
# -- Additional annotations for the persistent volume claim object.
|
||||
annotations: {}
|
||||
# -- Additional labels for the persistent volume claim object.
|
||||
labels: {}
|
||||
|
||||
serviceAccount:
|
||||
# -- Create a `ServiceAccount` object.
|
||||
create: true
|
||||
# -- Specify the service account used for the controller.
|
||||
name: ''
|
||||
# -- Additional annotations for the role and role binding objects.
|
||||
annotations: {}
|
||||
# -- Additional labels for the role and role binding objects.
|
||||
labels: {}
|
||||
|
||||
# -- Pod-level security attributes. More info [here](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context).
|
||||
securityContext:
|
||||
fsGroup: 101
|
||||
runAsNonRoot: true
|
||||
runAsGroup: 101
|
||||
runAsUser: 101
|
||||
|
||||
# -- Compute resources used by the container. More info [here](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/).
|
||||
resources: {}
|
||||
# limits:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
# requests:
|
||||
# cpu: 100m
|
||||
# memory: 128Mi
|
||||
|
||||
# -- Pod-level affinity. More info [here](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling).
|
||||
affinity: {}
|
||||
# nodeAffinity:
|
||||
# requiredDuringSchedulingIgnoredDuringExecution:
|
||||
# nodeSelectorTerms:
|
||||
# - matchExpressions:
|
||||
# - key: kubernetes.io/hostname
|
||||
# operator: In
|
||||
# values:
|
||||
# - my-node-xyz
|
||||
|
||||
# -- Pod-level tolerations. More info [here](https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#scheduling).
|
||||
tolerations: []
|
||||
# - key: node-role.kubernetes.io/control-plane
|
||||
# operator: Exists
|
||||
# effect: NoSchedule
|
||||
|
||||
|
||||
tool:
|
||||
# kind: 'SubChart' or 'HelmChart', if subchart then uncomment Chart.yaml dependency, else comment and use tool library with helm chart template
|
||||
kind: 'SubChart'
|
||||
repo: https://charts.pascaliske.dev
|
||||
chart: clickhouse
|
||||
version: 0.4.0
|
||||
values: *clickhouse_config
|
||||
Reference in New Issue
Block a user