Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,16 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased] - YYYY-MM-DD

### Added ✨
- Added `csiSideCarImageRegistry` to configure registry for CSI sidecar containers
- Added `analytics.enabled` to enable/disable analytics locally

### Fixed 🐛

### Changed ♻️
- `global.imageRegistry` now overrides all image registries when set

### Removed 🗑️
- This release introduces a breaking change by removing `global.k8sImageRegistry`

### Internal 🔧

Expand Down
36 changes: 18 additions & 18 deletions deploy/helm/rawfile-localpv/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,35 +26,34 @@ Please follow the [install guide](https://github.com/openebs/rawfile-localpv/tre

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| analytics.enabled | bool | `true` | Enable OpenEBS analytics which help track engine traction and usage. |
| auth.enabled | bool | `true` | Enables authentication for internal gRPC server |
| auth.secretName | string | `""` | If managing secrets outside the chart, use this to reference the secret name; otherwise, leave empty. |
| auth.token | string | `""` | Sets authentication token for internal gRPC server, will generate one if nothing provided |
| capabilities.resize.enabled | bool | `true` | Sets whether volume resizing is enabled. If disabled, don't deploy controller statefulset |
| capabilities.snapshots.enabled | bool | `true` | Sets whether taking volume snapshots is enabled. Required for volume cloning. Runs externalSnapshotter and snapshotController containers. |
| controller.affinity | string | `nil` | Affinities for controller component |
| controller.externalResizer.image.registry | string | `""` | Image registry for `csi-resizer` |
| controller.externalResizer.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy for `csi-resizer` |
| controller.externalResizer.image.registry | string | `"registry.k8s.io"` | Image registry for `csi-resizer` |
| controller.externalResizer.image.repository | string | `"sig-storage/csi-resizer"` | Image Repository for `csi-resizer` |
| controller.externalResizer.image.tag | string | `"v1.13.2"` | Image tag for `csi-resizer` |
| controller.externalResizer.resources | object | `{}` | Sets compute resources for external-resizer container |
| controller.grpcWorkers | int | `10` | Number of gRPC workers for controller component |
| controller.image.pullPolicy | string | `""` | Overrides default image pull policy for node component |
| controller.image.repository | string | `""` | Overrides default image repository for node component |
| controller.image.tag | string | `""` | Overrides default image tag for node component |
| controller.nodeSelector | string | `nil` | nodeSelector for controller component |
| controller.priorityClassName | string | `"system-cluster-critical"` | priorityClassName for controller component since this part is critical for cluster `system-cluster-critical` is default |
| controller.resources | object | `{}` | Sets compute resources for controller component |
| controller.tolerations | list | `[{"effect":"NoSchedule","key":"node-role.kubernetes.io/master","operator":"Equal","value":"true"}]` | Tolerations for controller component |
| crds.csi.volumeSnapshots.enabled | bool | `true` | Install Volume Snapshot CRDs |
| crds.enabled | bool | `true` | Disables the installation of all CRDs if set to false |
| global.analytics.enabled | bool | `true` | Enable OpenEBS analytics which help track engine traction and usage. |
| global.imagePullPolicy | string | `"IfNotPresent"` | Default pull policy for images |
| global.imagePullSecrets | list | `[]` | Default image pull secret for images |
| global.imageRegistry | string | `"docker.io"` | Default image registry for Images from DockerHub |
| global.k8sImageRegistry | string | `"registry.k8s.io"` | Default image registry for Images from Kubernetes (registry.k8s.io) |
| csiSideCarImageRegistry | string | `""` | Image registry for CSI Sidecars |
| global.analytics.enabled | string | `nil` | Global override for GA analytics |
| global.imagePullPolicy | string | `""` | Global override for image pull policy |
| global.imagePullSecrets | list | `[]` | Global image pull secrets (merged with local imagePullSecrets and not overridden) - secret |
| global.imageRegistry | string | `""` | Global override for image registry |
| image.pullPolicy | string | `"IfNotPresent"` | Default image pull policy for node and controller components |
| image.registry | string | `""` | Image registry for rawfile-localpv (default is global.imageRegistry) |
| image.registry | string | `"docker.io"` | Image registry for rawfile-localpv (can be overridden by global.imageRegistry) |
| image.repository | string | `"openebs/rawfile-localpv"` | Image repository for rawfile-localpv |
| image.tag | string | `""` | Default image tag for node and controller components (uses AppVersion if empty) |
| image.tag | string | `nil` | Default image tag for node and controller components (uses AppVersion if empty) |
| imagePullSecrets | list | `[]` | Sets image pull secret while pulling images from a private registry |
| logFormat | string | `"json"` | Format of the logs (json, pretty) |
| logLevel | string | `"INFO"` | Level of the logs (DEBUG, INFO, etc.) |
Expand All @@ -66,23 +65,23 @@ Please follow the [install guide](https://github.com/openebs/rawfile-localpv/tre
| node.dataDirPath | string | `"/var/csi/rawfile"` | Path to store data dir (Deprecated, use storagePools.path instead) |
| node.defaultFs | string | `"ext4"` | Default filesystem type for rawfile volumes (Currently supports `btrfs`, `xfs` and `ext4` [which is default]) |
| node.driverRegistrar.healthzPort | int | `9809` | Healthcheck port for driver-registrar |
| node.driverRegistrar.image.registry | string | `""` | Image Registry for `csi-node-driver-registrar` |
| node.driverRegistrar.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy for `csi-node-driver-registrar` |
| node.driverRegistrar.image.registry | string | `"registry.k8s.io"` | Image Registry for `csi-node-driver-registrar` |
| node.driverRegistrar.image.repository | string | `"sig-storage/csi-node-driver-registrar"` | Image Repository for `csi-node-driver-registrar` |
| node.driverRegistrar.image.tag | string | `"v2.13.0"` | Image Tag for `csi-node-driver-registrar` |
| node.driverRegistrar.resources | object | `{}` | Sets compute resources for driver-registrar container |
| node.externalProvisioner.image.registry | string | `""` | Image Registry for `csi-provisioner` |
| node.externalProvisioner.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy for `csi-provisioner` |
| node.externalProvisioner.image.registry | string | `"registry.k8s.io"` | Image Registry for `csi-provisioner` |
| node.externalProvisioner.image.repository | string | `"sig-storage/csi-provisioner"` | Image Repository for `csi-provisioner` |
| node.externalProvisioner.image.tag | string | `"v5.2.0"` | Image Tag for `csi-provisioner` |
| node.externalProvisioner.resources | object | `{}` | Sets compute resources for external-provisioner container |
| node.externalSnapshotter.image.registry | string | `""` | Image Registry for `csi-snapshotter` |
| node.externalSnapshotter.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy for `csi-snapshotter` |
| node.externalSnapshotter.image.registry | string | `"registry.k8s.io"` | Image Registry for `csi-snapshotter` |
| node.externalSnapshotter.image.repository | string | `"sig-storage/csi-snapshotter"` | Image Repository for `csi-snapshotter` |
| node.externalSnapshotter.image.tag | string | `"v8.2.1"` | Image Tag for `csi-snapshotter` |
| node.externalSnapshotter.resources | object | `{}` | Sets compute resources for external-snapshotter container |
| node.grpcWorkers | int | `10` | Number of gRPC workers for node component |
| node.hostNetwork | bool | `false` | Enables hostNetwork for node component |
| node.image.pullPolicy | string | `""` | Overrides default image pull policy for node component |
| node.image.repository | string | `""` | Overrides default image repository for node component |
| node.image.tag | string | `""` | Overrides default image tag for node component |
| node.internalGRPC.port | int | `4500` | Port Number used for internal communication gRPC server |
| node.internalGRPC.workers | int | `10` | gRPC worker count used for internal communication |
| node.kubeletPath | string | `"/var/lib/kubelet"` | Kubelet path (Set to `/var/lib/k0s/kubelet` for k0s) |
Expand All @@ -91,7 +90,8 @@ Please follow the [install guide](https://github.com/openebs/rawfile-localpv/tre
| node.nodeSelector | string | `nil` | nodeSelector for node component |
| node.priorityClassName | string | `"system-node-critical"` | priorityClassName for node component since this part is critical for node `system-node-critical` is default |
| node.resources | object | `{}` | Sets compute resources for node component |
| node.snapshotController.image.registry | string | `""` | Image Registry for `snapshot-controller` |
| node.snapshotController.image.pullPolicy | string | `"IfNotPresent"` | Image pull policy for `snapshot-controller` |
| node.snapshotController.image.registry | string | `"registry.k8s.io"` | Image Registry for `snapshot-controller` |
| node.snapshotController.image.repository | string | `"sig-storage/snapshot-controller"` | Image Repository for `snapshot-controller` |
| node.snapshotController.image.tag | string | `"v8.2.1"` | Image Tag for `snapshot-controller` |
| node.snapshotController.resources | object | `{}` | Sets compute resources for snapshot-controller container |
Expand Down
91 changes: 52 additions & 39 deletions deploy/helm/rawfile-localpv/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -65,23 +65,6 @@ Create the name of the service account to use
{{/*
Some helpers to handle image global information
*/}}
{{- define "rawfile-localpv.controller-image-tag" -}}
{{- $imageTag := .Values.controller.image.tag | default .Values.image.tag | default (printf "v%s" .Chart.AppVersion) }}
{{- printf "%s" $imageTag }}
{{- end }}

{{- define "rawfile-localpv.controller-image-repository" -}}
{{- printf "%s" .Values.controller.image.repository | default .Values.image.repository }}
{{- end }}

{{- define "rawfile-localpv.controller-image" -}}
{{- $imageRegistry := .Values.image.registry | default .Values.global.imageRegistry }}
{{- printf "%s/%s:%s" $imageRegistry (include "rawfile-localpv.controller-image-repository" .) (include "rawfile-localpv.controller-image-tag" .) }}
{{- end }}

{{- define "rawfile-localpv.controller-pull-policy" -}}
{{- printf "%s" (.Values.controller.image.pullPolicy | default .Values.image.pullPolicy | default .Values.global.imagePullPolicy) }}
{{- end }}

{{- define "rawfile-localpv.controller-resources" -}}
{{- toYaml (.Values.controller.resources) }}
Expand All @@ -91,28 +74,6 @@ Some helpers to handle image global information
{{- toYaml (.Values.controller.externalResizer.resources) }}
{{- end }}

{{- define "rawfile-localpv.node-image-tag" -}}
{{- $imageTag := .Values.node.image.tag | default .Values.image.tag | default (printf "v%s" .Chart.AppVersion) }}
{{- printf "%s" $imageTag }}
{{- end }}

{{- define "rawfile-localpv.node-image-registry" -}}
{{- printf "%s" .Values.image.registry | default .Values.global.imageRegistry }}
{{- end }}

{{- define "rawfile-localpv.node-image-repository" -}}
{{- printf "%s" .Values.node.image.repository | default .Values.image.repository }}
{{- end }}

{{- define "rawfile-localpv.node-image" -}}
{{- $imageRegistry := .Values.image.registry | default .Values.global.imageRegistry }}
{{- printf "%s/%s:%s" $imageRegistry (include "rawfile-localpv.node-image-repository" .) (include "rawfile-localpv.node-image-tag" .) }}
{{- end }}

{{- define "rawfile-localpv.node-pull-policy" -}}
{{- printf "%s" (.Values.node.image.pullPolicy | default .Values.image.pullPolicy | default .Values.global.imagePullPolicy) }}
{{- end }}

{{- define "rawfile-localpv.node-resources" -}}
{{- toYaml (.Values.node.resources) }}
{{- end }}
Expand Down Expand Up @@ -168,3 +129,55 @@ Some helpers to handle image global information
{{- end }}
{{- end }}
{{- end }}


{{/*
Creates the image URL ie registry/repository:tag
*/}}
{{- define "rawfile-localpv.common.image" -}}
{{- $registryName := ((.global).imageRegistry) | default .csiSideCarImageRegistry | default .imageRoot.registry | trimSuffix "/" -}}
{{- $repositoryName := .imageRoot.repository -}}
{{- $separator := ":" -}}
{{- $chartVersion := .chartVersion -}}
{{- $termination := .imageRoot.tag | default (printf "v%s" $chartVersion) | toString -}}
{{- if $registryName }}
{{- printf "%s/%s%s%s" $registryName $repositoryName $separator $termination -}}
{{- else }}
{{- printf "%s%s%s" $repositoryName $separator $termination -}}
{{- end }}
Comment thread
krishnaGajabi marked this conversation as resolved.
{{- end }}

{{/*
Concatenates imagepullsecrets and handles different formats (example - secret or - name: secret)
*/}}
{{- define "rawfile-localpv.common.pullSecrets" -}}
{{- $names := list -}}
{{- with .Values.global.imagePullSecrets -}}
{{- range . -}}
{{- if kindIs "map" . }}
{{- if and (hasKey . "name") (not (empty .name)) -}}
{{ $names = append $names .name }}
{{- end -}}
{{- else if not (empty .) -}}
{{ $names = append $names . -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- with .Values.imagePullSecrets -}}
{{- range . }}
{{- if kindIs "map" . -}}
{{- if and (hasKey . "name") (not (empty .name)) -}}
{{- $names = append $names .name }}
{{- end -}}
{{- else if not (empty .) -}}
{{- $names = append $names . -}}
{{- end -}}
{{- end -}}
{{- end -}}
{{- $names = uniq $names -}}
{{- if $names -}}
{{- range $names }}
- name: {{ . }}
{{- end -}}
{{- end -}}
{{- end -}}
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ spec:
emptyDir: {}
containers:
- name: csi-driver
image: "{{ include "rawfile-localpv.controller-image" . }}"
imagePullPolicy: "{{ include "rawfile-localpv.controller-pull-policy" . }}"
image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.image "global" .Values.global "chartVersion" .Chart.AppVersion) }}
imagePullPolicy: {{ default .Values.image.pullPolicy .Values.global.imagePullPolicy }}
args:
- csi-driver
- --enable-metrics=false
Expand Down Expand Up @@ -57,7 +57,11 @@ spec:
- name: CSI_DRIVER__GRPC_WORKERS
value: {{ .Values.controller.grpcWorkers | toString | quote }}
- name: GA_ENABLED
{{- if kindIs "bool" .Values.global.analytics.enabled }}
value: "{{ .Values.global.analytics.enabled }}"
{{- else }}
value: "{{ .Values.analytics.enabled }}"
{{- end }}
{{- if .Values.global.analytics.gaId }}
- name: GA_ID
value: {{ .Values.global.analytics.gaId | quote }}
Expand Down Expand Up @@ -91,8 +95,8 @@ spec:
resources:
{{- include "rawfile-localpv.controller-resources" . | nindent 12 }}
- name: external-resizer
image: {{ printf "%s/%s:%s" (.Values.controller.externalResizer.image.registry | default .Values.global.k8sImageRegistry) .Values.controller.externalResizer.image.repository .Values.controller.externalResizer.image.tag }}
imagePullPolicy: IfNotPresent
image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.controller.externalResizer.image "csiSideCarImageRegistry" .Values.csiSideCarImageRegistry "global" .Values.global) }}
imagePullPolicy: {{ default .Values.controller.externalResizer.image.pullPolicy .Values.global.imagePullPolicy }}
args:
- "--csi-address=$(ADDRESS)"
- "--handle-volume-inuse-error=false"
Expand Down
24 changes: 14 additions & 10 deletions deploy/helm/rawfile-localpv/templates/node-plugin/daemonset.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ spec:
{{- include "rawfile-localpv.pool-volumes" . | nindent 8 }}
containers:
- name: csi-driver
image: "{{ include "rawfile-localpv.node-image" . }}"
imagePullPolicy: "{{ include "rawfile-localpv.node-pull-policy" . }}"
image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.image "global" .Values.global "chartVersion" .Chart.AppVersion) }}
imagePullPolicy: {{ default .Values.image.pullPolicy .Values.global.imagePullPolicy }}
securityContext:
privileged: true
env:
Expand Down Expand Up @@ -84,7 +84,11 @@ spec:
- name: CSI_DRIVER__GRPC_WORKERS
value: {{ .Values.node.grpcWorkers | toString | quote }}
- name: GA_ENABLED
{{- if kindIs "bool" .Values.global.analytics.enabled }}
value: "{{ .Values.global.analytics.enabled }}"
{{- else }}
value: "{{ .Values.analytics.enabled }}"
{{- end }}
{{- if .Values.global.analytics.gaId }}
- name: GA_ID
value: {{ .Values.global.analytics.gaId | quote }}
Expand Down Expand Up @@ -174,8 +178,8 @@ spec:
resources:
{{- include "rawfile-localpv.controller-resources" . | nindent 12 }}
- name: node-driver-registrar
image: {{ printf "%s/%s:%s" (.Values.node.driverRegistrar.image.registry | default .Values.global.k8sImageRegistry) .Values.node.driverRegistrar.image.repository .Values.node.driverRegistrar.image.tag }}
imagePullPolicy: IfNotPresent
image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.node.driverRegistrar.image "csiSideCarImageRegistry" .Values.csiSideCarImageRegistry "global" .Values.global) }}
imagePullPolicy: {{ default .Values.node.driverRegistrar.image.pullPolicy .Values.global.imagePullPolicy }}
args:
- --csi-address=$(ADDRESS)
- --kubelet-registration-path=$(DRIVER_REG_SOCK_PATH)
Expand All @@ -202,8 +206,8 @@ spec:
resources:
{{- include "rawfile-localpv.node-driver-registrar-resources" . | nindent 12 }}
- name: external-provisioner
image: {{ printf "%s/%s:%s" (.Values.node.externalProvisioner.image.registry | default .Values.global.k8sImageRegistry) .Values.node.externalProvisioner.image.repository .Values.node.externalProvisioner.image.tag }}
imagePullPolicy: IfNotPresent
image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.node.externalProvisioner.image "csiSideCarImageRegistry" .Values.csiSideCarImageRegistry "global" .Values.global) }}
imagePullPolicy: {{ default .Values.node.externalProvisioner.image.pullPolicy .Values.global.imagePullPolicy }}
args:
- "--csi-address=$(ADDRESS)"
- "--feature-gates=Topology=true"
Expand Down Expand Up @@ -237,8 +241,8 @@ spec:
{{- include "rawfile-localpv.node-external-provisioner-resources" . | nindent 12 }}
{{- if .Values.capabilities.snapshots.enabled }}
- name: external-snapshotter
image: {{ printf "%s/%s:%s" (.Values.node.externalSnapshotter.image.registry | default .Values.global.k8sImageRegistry) .Values.node.externalSnapshotter.image.repository .Values.node.externalSnapshotter.image.tag }}
imagePullPolicy: IfNotPresent
image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.node.externalSnapshotter.image "csiSideCarImageRegistry" .Values.csiSideCarImageRegistry "global" .Values.global) }}
imagePullPolicy: {{ default .Values.node.externalSnapshotter.image.pullPolicy .Values.global.imagePullPolicy }}
args:
- "--csi-address=$(ADDRESS)"
- "--node-deployment=true"
Expand All @@ -263,6 +267,6 @@ spec:
- "--enable-distributed-snapshotting=true"
resources:
{{- include "rawfile-localpv.node-snapshot-controller-resources" . | nindent 12 }}
image: {{ printf "%s/%s:%s" (.Values.node.snapshotController.image.registry | default .Values.global.k8sImageRegistry) .Values.node.snapshotController.image.repository .Values.node.snapshotController.image.tag }}
imagePullPolicy: IfNotPresent
image: {{ include "rawfile-localpv.common.image" (dict "imageRoot" .Values.node.snapshotController.image "csiSideCarImageRegistry" .Values.csiSideCarImageRegistry "global" .Values.global) }}
imagePullPolicy: {{ default .Values.node.snapshotController.image.pullPolicy .Values.global.imagePullPolicy }}
{{- end }}
Loading
Loading