From 19ec1efaef999380956e605b016c4d93e9271135 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Thu, 28 Jan 2021 19:49:48 +0500 Subject: [PATCH 01/84] Add initial library chart --- library/common/.helmignore | 23 +++++++++++++++++++++++ library/common/Chart.yaml | 23 +++++++++++++++++++++++ library/common/README.md | 11 +++++++++++ 3 files changed, 57 insertions(+) create mode 100644 library/common/.helmignore create mode 100644 library/common/Chart.yaml create mode 100644 library/common/README.md diff --git a/library/common/.helmignore b/library/common/.helmignore new file mode 100644 index 0000000000..0e8a0eb36f --- /dev/null +++ b/library/common/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/library/common/Chart.yaml b/library/common/Chart.yaml new file mode 100644 index 0000000000..9a222c4857 --- /dev/null +++ b/library/common/Chart.yaml @@ -0,0 +1,23 @@ +apiVersion: v2 +name: common +description: A library chart for iX Official Catalog + +# 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: library + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 2101.0.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +appVersion: v1 diff --git a/library/common/README.md b/library/common/README.md new file mode 100644 index 0000000000..f8784843a2 --- /dev/null +++ b/library/common/README.md @@ -0,0 +1,11 @@ +# Library Chart for iX Official Catalog iX Chart + +**WARNING: THIS CHART IS NOT MEANT TO BE INSTALLED DIRECTLY** + +This is a [Helm Library Chart](https://helm.sh/docs/topics/library_charts/#helm). It's purpose is for grouping common logic between the k8s@home charts. + +Since a lot of charts follow the same pattern this library was built to reduce maintenance cost between the charts that use it and try achieve a goal of being DRY. + +## Introduction + +This chart provides common template helpers which can be used to develop new charts using [Helm](https://helm.sh) package manager. From 0261fef3971aaa6cb5061d6cd600cab6109361ba Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Thu, 28 Jan 2021 20:09:20 +0500 Subject: [PATCH 02/84] Add common labels/names helper --- .../templates/lib/chart/_capabilities.tpl | 20 ++++++++++++ .../common/templates/lib/chart/_labels.tpl | 19 ++++++++++++ library/common/templates/lib/chart/_names.tpl | 31 +++++++++++++++++++ 3 files changed, 70 insertions(+) create mode 100644 library/common/templates/lib/chart/_capabilities.tpl create mode 100644 library/common/templates/lib/chart/_labels.tpl create mode 100644 library/common/templates/lib/chart/_names.tpl diff --git a/library/common/templates/lib/chart/_capabilities.tpl b/library/common/templates/lib/chart/_capabilities.tpl new file mode 100644 index 0000000000..d0d01f6b15 --- /dev/null +++ b/library/common/templates/lib/chart/_capabilities.tpl @@ -0,0 +1,20 @@ +{{/* +Return the appropriate apiVersion for DaemonSet objects. +*/}} +{{- define "common.capabilities.daemonset.apiVersion" -}} +{{- print "apps/v1" -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for Deployment objects. +*/}} +{{- define "common.capabilities.deployment.apiVersion" -}} +{{- print "apps/v1" -}} +{{- end -}} + +{{/* +Return the appropriate apiVersion for StatefulSet objects. +*/}} +{{- define "common.capabilities.statefulset.apiVersion" -}} +{{- print "apps/v1" -}} +{{- end -}} diff --git a/library/common/templates/lib/chart/_labels.tpl b/library/common/templates/lib/chart/_labels.tpl new file mode 100644 index 0000000000..10981d9b5a --- /dev/null +++ b/library/common/templates/lib/chart/_labels.tpl @@ -0,0 +1,19 @@ +{{/* +Common labels shared across objects. +*/}} +{{- define "common.labels" -}} +helm.sh/chart: {{ include "common.names.chart" . }} +{{ include "common.labels.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels shared across objects. +*/}} +{{- define "common.labels.selectorLabels" -}} +app.kubernetes.io/name: {{ include "common.names.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} diff --git a/library/common/templates/lib/chart/_names.tpl b/library/common/templates/lib/chart/_names.tpl new file mode 100644 index 0000000000..d8ea1d0dc9 --- /dev/null +++ b/library/common/templates/lib/chart/_names.tpl @@ -0,0 +1,31 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "common.names.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "common.names.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "common.names.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} From 4f2ef3691a0d6d3b007a068c0b0f581be9485620 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Thu, 28 Jan 2021 21:18:40 +0500 Subject: [PATCH 03/84] Add common implementation of services --- library/common/templates/classes/_service.tpl | 41 +++++++++++++++++++ .../templates/classes/_service_ports.tpl | 19 +++++++++ 2 files changed, 60 insertions(+) create mode 100644 library/common/templates/classes/_service.tpl create mode 100644 library/common/templates/classes/_service_ports.tpl diff --git a/library/common/templates/classes/_service.tpl b/library/common/templates/classes/_service.tpl new file mode 100644 index 0000000000..08a0b1b31b --- /dev/null +++ b/library/common/templates/classes/_service.tpl @@ -0,0 +1,41 @@ +{{/* +This template serves as a blueprint for all Service objects that are created +within the common library. +*/}} +{{- define "common.classes.service" -}} +{{- $values := . -}} +{{- $serviceName := include "common.names.fullname" . -}} +{{- if hasKey $values "nameSuffix" -}} + {{- $serviceName = printf "%v-%v" $serviceName $values.nameSuffix -}} +{{ end -}} +{{- $svcType := $values.type | default "" -}} +apiVersion: v1 +kind: Service +metadata: + name: {{ $serviceName }} + labels: + {{- include "common.labels" . | nindent 4 }} + {{- if $values.labels }} + {{ toYaml $values.labels | nindent 4 }} + {{- end }} + {{- if $values.annotations }} + {{- with $values.annotations }} + annotations: + {{ toYaml . | nindent 4 }} + {{- end }} + {{- end }} +spec: + {{- if (or (eq $svcType "ClusterIP") (empty $svcType)) }} + type: ClusterIP + {{- if $values.clusterIP }} + clusterIP: {{ $values.clusterIP }} + {{end}} + {{- else if eq $svcType "NodePort" }} + type: {{ $svcType }} + {{- else }} + {{- fail "Only ClusterIP and NodePort services are supported in common chart" }} + {{- end }} + {{- include "common.classes.service.ports" (dict "svcType" $svcType "values" $values ) | trim | nindent 2 }} + selector: + {{- include "common.labels.selectorLabels" . | nindent 4 }} +{{- end }} diff --git a/library/common/templates/classes/_service_ports.tpl b/library/common/templates/classes/_service_ports.tpl new file mode 100644 index 0000000000..a61900b42a --- /dev/null +++ b/library/common/templates/classes/_service_ports.tpl @@ -0,0 +1,19 @@ +{{/* +Render all the ports and additionalPorts for a Service object. +*/}} +{{- define "common.classes.service.ports" -}} + {{- $values := .values -}} + {{- $ports := $values.ports -}} + {{- if $ports -}} + ports: + {{- range $_ := $ports }} + - port: {{ .port }} + targetPort: {{ .targetPort | default "http" }} + protocol: {{ .protocol | default "TCP" }} + name: {{ .name | default "http" }} + {{- if (and (eq $.svcType "NodePort") (not (empty .nodePort))) }} + nodePort: {{ .nodePort }} + {{ end }} + {{- end -}} + {{- end -}} +{{- end }} From 49a08334e04e627ad59602172b8c12d40377811f Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Thu, 28 Jan 2021 22:31:35 +0500 Subject: [PATCH 04/84] Add common implementation for networking/storage --- library/common/templates/lib/networking/_dns.tpl | 10 ++++++++++ library/common/templates/lib/storage/_ixvolumes.tpl | 11 +++++++++++ 2 files changed, 21 insertions(+) create mode 100644 library/common/templates/lib/networking/_dns.tpl create mode 100644 library/common/templates/lib/storage/_ixvolumes.tpl diff --git a/library/common/templates/lib/networking/_dns.tpl b/library/common/templates/lib/networking/_dns.tpl new file mode 100644 index 0000000000..79a1a325d1 --- /dev/null +++ b/library/common/templates/lib/networking/_dns.tpl @@ -0,0 +1,10 @@ +{{/* +DNS Configuration +*/}} +{{- define "dnsConfiguration" }} +dnsPolicy: {{ .Values.dnsPolicy }} +{{- if .Values.dnsConfig }} +dnsConfig: + {{- toYaml .Values.dnsConfig | nindent 2 }} +{{- end }} +{{- end }} diff --git a/library/common/templates/lib/storage/_ixvolumes.tpl b/library/common/templates/lib/storage/_ixvolumes.tpl new file mode 100644 index 0000000000..8982c1b5a4 --- /dev/null +++ b/library/common/templates/lib/storage/_ixvolumes.tpl @@ -0,0 +1,11 @@ +{{/* +Retrieve host path from ix volumes based on dataset name +*/}} +{{- define "retrieveHostPathFromiXVolume" -}} +{{- range $index, $hostPathConfiguration := $.ixVolumes }} +{{- $dsName := base $hostPathConfiguration.hostPath -}} +{{- if eq $.datasetName $dsName -}} +{{- $hostPathConfiguration.hostPath -}} +{{- end -}} +{{- end }} +{{- end -}} From 1b0c2107e5ec99b80395a24585a923b46b9884b7 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Thu, 28 Jan 2021 22:32:26 +0500 Subject: [PATCH 05/84] Retrieve cronjob app version --- library/common/templates/lib/chart/_capabilities.tpl | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/library/common/templates/lib/chart/_capabilities.tpl b/library/common/templates/lib/chart/_capabilities.tpl index d0d01f6b15..7a3c13c8b2 100644 --- a/library/common/templates/lib/chart/_capabilities.tpl +++ b/library/common/templates/lib/chart/_capabilities.tpl @@ -18,3 +18,10 @@ Return the appropriate apiVersion for StatefulSet objects. {{- define "common.capabilities.statefulset.apiVersion" -}} {{- print "apps/v1" -}} {{- end -}} + +{{/* +Return the appropriate apiVersion for StatefulSet objects. +*/}} +{{- define "common.capabilities.cronjob.apiVersion" -}} +{{- print "batch/v1beta1" -}} +{{- end -}} From cea74cc63ffcbc556a64225e408329eaf286bb1f Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Thu, 28 Jan 2021 23:19:38 +0500 Subject: [PATCH 06/84] Add method to retrieve host path from user input or ix volumes --- .../templates/lib/storage/_ixvolumes.tpl | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/library/common/templates/lib/storage/_ixvolumes.tpl b/library/common/templates/lib/storage/_ixvolumes.tpl index 8982c1b5a4..b43bfbb0b4 100644 --- a/library/common/templates/lib/storage/_ixvolumes.tpl +++ b/library/common/templates/lib/storage/_ixvolumes.tpl @@ -1,7 +1,7 @@ {{/* Retrieve host path from ix volumes based on dataset name */}} -{{- define "retrieveHostPathFromiXVolume" -}} +{{- define "common.retrieveHostPathFromiXVolume" -}} {{- range $index, $hostPathConfiguration := $.ixVolumes }} {{- $dsName := base $hostPathConfiguration.hostPath -}} {{- if eq $.datasetName $dsName -}} @@ -9,3 +9,25 @@ Retrieve host path from ix volumes based on dataset name {{- end -}} {{- end }} {{- end -}} + +{{/* +Retrieve host path from ix volumes based on a key +*/}} +{{- define "common.configuredHostPath" -}} +{{- $values := . -}} +{{- if and (hasKey $values "hostPathEnabled") (hasKey $values "pathField") -}} +{{- end -}} +{{- if $values.hostPathEnabled -}} +{{- if hasKey $values "pathField" -}} +{{- $values.pathField -}} +{{- else -}} +{{- fail "Path must be specified when host path is enabled" -}} +{{- end -}} +{{- else if and (hasKey $values "datasetName") (hasKey $values "ixVolumes") -}} +{{- $volDict := dict "datasetName" $values.datasetName "ixVolumes" $values.ixVolumes -}} +{{- include "common.retrieveHostPathFromiXVolume" $volDict -}} +{{- else -}} +{{- fail "Dataset name and ix volumes must be specified" -}} +{{- end -}} +{{- end -}} + From 399f867f269b48a572481a3c418be566b00568d5 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Thu, 28 Jan 2021 23:42:03 +0500 Subject: [PATCH 07/84] Add method to retrieve single volume configuration based on input --- .../common/templates/lib/storage/_volume.tpl | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 library/common/templates/lib/storage/_volume.tpl diff --git a/library/common/templates/lib/storage/_volume.tpl b/library/common/templates/lib/storage/_volume.tpl new file mode 100644 index 0000000000..2e15fa98d4 --- /dev/null +++ b/library/common/templates/lib/storage/_volume.tpl @@ -0,0 +1,17 @@ +{{/* +Retrieve volume configuration +*/}} +{{- define "common.volumeConfig" -}} +{{- $values := . -}} +{{- if hasKey $values "name" }} +- name: {{ $values.name }} +{{- if $values.emptyDirVolumes -}} + emptyDir: {} +{{- else -}} + hostPath: + path: {{ template "common.configuredHostPath" $values }} +{{- end -}} +{{- else -}} +{{- fail "Name must be specified for Volume Configuration" -}} +{{- end -}} +{{- end -}} From 4a895d6b639811bf6d38ae65845cc29dc431c101 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 15:27:23 +0500 Subject: [PATCH 08/84] Add method to validate if values has required keys --- .../common/templates/lib/schema/_utils.tpl | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 library/common/templates/lib/schema/_utils.tpl diff --git a/library/common/templates/lib/schema/_utils.tpl b/library/common/templates/lib/schema/_utils.tpl new file mode 100644 index 0000000000..b3a4cd0549 --- /dev/null +++ b/library/common/templates/lib/schema/_utils.tpl @@ -0,0 +1,19 @@ +{{/* +Checks if a list of keys are present in a dictionary +*/}} +{{- define "common.validateKeys" -}} +{{- $values := . -}} +{{- if and (hasKey $values "values") (hasKey $values "checkKeys") -}} +{{- $missingKeys := list -}} +{{- range $values.checkKeys -}} +{{- if eq (hasKey $values.values . ) false -}} +{{- $missingKeys = mustAppend $missingKeys . -}} +{{- end -}} +{{- end -}} +{{- if $missingKeys -}} +{{- fail (printf "Missing %s from dictionary" ($missingKeys | join ", ")) -}} +{{- end -}} +{{- else -}} +{{- fail "A dictionary and list of keys to check must be provided" -}} +{{- end -}} +{{- end -}} From 2865d86d42c3fc64f60fbc1dc80112e8860143f0 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 15:37:44 +0500 Subject: [PATCH 09/84] Add helper to retrieve all volumes configuration --- .../templates/lib/storage/_ixvolumes.tpl | 14 ++----- .../common/templates/lib/storage/_volume.tpl | 40 +++++++++++++++++-- 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/library/common/templates/lib/storage/_ixvolumes.tpl b/library/common/templates/lib/storage/_ixvolumes.tpl index b43bfbb0b4..bbac51a067 100644 --- a/library/common/templates/lib/storage/_ixvolumes.tpl +++ b/library/common/templates/lib/storage/_ixvolumes.tpl @@ -15,19 +15,11 @@ Retrieve host path from ix volumes based on a key */}} {{- define "common.configuredHostPath" -}} {{- $values := . -}} -{{- if and (hasKey $values "hostPathEnabled") (hasKey $values "pathField") -}} -{{- end -}} {{- if $values.hostPathEnabled -}} -{{- if hasKey $values "pathField" -}} +{{- include "common.validateKeys" (dict "values" $values "checkKeys" (list "pathField")) -}} {{- $values.pathField -}} {{- else -}} -{{- fail "Path must be specified when host path is enabled" -}} -{{- end -}} -{{- else if and (hasKey $values "datasetName") (hasKey $values "ixVolumes") -}} -{{- $volDict := dict "datasetName" $values.datasetName "ixVolumes" $values.ixVolumes -}} -{{- include "common.retrieveHostPathFromiXVolume" $volDict -}} -{{- else -}} -{{- fail "Dataset name and ix volumes must be specified" -}} +{{- include "common.validateKeys" (dict "values" $values "checkKeys" (list "datasetName" "ixVolumes")) -}} +{{- include "common.retrieveHostPathFromiXVolume" (dict "datasetName" $values.datasetName "ixVolumes" $values.ixVolumes) -}} {{- end -}} {{- end -}} - diff --git a/library/common/templates/lib/storage/_volume.tpl b/library/common/templates/lib/storage/_volume.tpl index 2e15fa98d4..0cf4e74d8e 100644 --- a/library/common/templates/lib/storage/_volume.tpl +++ b/library/common/templates/lib/storage/_volume.tpl @@ -1,9 +1,19 @@ {{/* Retrieve volume configuration + +This expects a dictionary in the following format: +{ + "name": string, + "emptyDirVolumes": boolean, + "ixVolumes": list, + "hostPathEnabled": boolean, + "pathField": string, + "datasetName": string, +} */}} {{- define "common.volumeConfig" -}} {{- $values := . -}} -{{- if hasKey $values "name" }} +{{- include "common.validateKeys" (dict "values" $values "checkKeys" (list "name")) -}} - name: {{ $values.name }} {{- if $values.emptyDirVolumes -}} emptyDir: {} @@ -11,7 +21,31 @@ Retrieve volume configuration hostPath: path: {{ template "common.configuredHostPath" $values }} {{- end -}} -{{- else -}} -{{- fail "Name must be specified for Volume Configuration" -}} +{{- end -}} + + +{{/* +Retrieve configuration for volumes + +This expects a dictionary to be provided in the following format: +{ + "ixVolumes": list, + "volumes": [ + { + "name": string, + "emptyDirVolumes": boolean, + "hostPathEnabled": boolean, + "pathField": string, + "datasetName": string, + } + ] ( list of dicts ) +} +*/}} +{{- define "common.volumesConfiguration" -}} +{{- $values := . -}} +{{- include "common.validateKeys" (dict "values" $values "checkKeys" (list "ixVolumes" "volumes")) -}} +{{- range $vol := $values.volumes -}} +{{- $_ := set $vol "ixVolumes" $values.ixVolumes -}} +{{- include "common.volumeConfig" $vol -}} {{- end -}} {{- end -}} From 9f527e21ea6b10c0517fbeeb467ec76f1356cbc9 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 15:53:58 +0500 Subject: [PATCH 10/84] Add method to render environment variables --- .../common/templates/lib/containers/_environment.tpl | 12 ++++++++++++ library/common/templates/lib/networking/_dns.tpl | 2 +- library/common/templates/lib/schema/_utils.tpl | 2 +- library/common/templates/lib/storage/_ixvolumes.tpl | 10 +++++----- library/common/templates/lib/storage/_volume.tpl | 12 ++++++------ 5 files changed, 25 insertions(+), 13 deletions(-) create mode 100644 library/common/templates/lib/containers/_environment.tpl diff --git a/library/common/templates/lib/containers/_environment.tpl b/library/common/templates/lib/containers/_environment.tpl new file mode 100644 index 0000000000..df1533527e --- /dev/null +++ b/library/common/templates/lib/containers/_environment.tpl @@ -0,0 +1,12 @@ +{{/* +Render environment variables +*/}} +{{- define "common.containers.environmentVariables" -}} +{{- $values := . -}} +{{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "environmentVariables")) -}} +{{- range $envVariable := $values.environmentVariables -}} +{{- include "common.schema.validateKeys" (dict "values" $envVariable "checkKeys" (list "name" "value")) -}} +- name: {{ $envVariable.name }} + value: {{ $envVariable.value }} +{{- end -}} +{{- end -}} diff --git a/library/common/templates/lib/networking/_dns.tpl b/library/common/templates/lib/networking/_dns.tpl index 79a1a325d1..c95d374616 100644 --- a/library/common/templates/lib/networking/_dns.tpl +++ b/library/common/templates/lib/networking/_dns.tpl @@ -1,7 +1,7 @@ {{/* DNS Configuration */}} -{{- define "dnsConfiguration" }} +{{- define "common.networking.dnsConfiguration" }} dnsPolicy: {{ .Values.dnsPolicy }} {{- if .Values.dnsConfig }} dnsConfig: diff --git a/library/common/templates/lib/schema/_utils.tpl b/library/common/templates/lib/schema/_utils.tpl index b3a4cd0549..8577a0b615 100644 --- a/library/common/templates/lib/schema/_utils.tpl +++ b/library/common/templates/lib/schema/_utils.tpl @@ -1,7 +1,7 @@ {{/* Checks if a list of keys are present in a dictionary */}} -{{- define "common.validateKeys" -}} +{{- define "common.schema.validateKeys" -}} {{- $values := . -}} {{- if and (hasKey $values "values") (hasKey $values "checkKeys") -}} {{- $missingKeys := list -}} diff --git a/library/common/templates/lib/storage/_ixvolumes.tpl b/library/common/templates/lib/storage/_ixvolumes.tpl index bbac51a067..4827d12b4d 100644 --- a/library/common/templates/lib/storage/_ixvolumes.tpl +++ b/library/common/templates/lib/storage/_ixvolumes.tpl @@ -1,7 +1,7 @@ {{/* Retrieve host path from ix volumes based on dataset name */}} -{{- define "common.retrieveHostPathFromiXVolume" -}} +{{- define "common.storage.retrieveHostPathFromiXVolume" -}} {{- range $index, $hostPathConfiguration := $.ixVolumes }} {{- $dsName := base $hostPathConfiguration.hostPath -}} {{- if eq $.datasetName $dsName -}} @@ -13,13 +13,13 @@ Retrieve host path from ix volumes based on dataset name {{/* Retrieve host path from ix volumes based on a key */}} -{{- define "common.configuredHostPath" -}} +{{- define "common.storage.configuredHostPath" -}} {{- $values := . -}} {{- if $values.hostPathEnabled -}} -{{- include "common.validateKeys" (dict "values" $values "checkKeys" (list "pathField")) -}} +{{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "pathField")) -}} {{- $values.pathField -}} {{- else -}} -{{- include "common.validateKeys" (dict "values" $values "checkKeys" (list "datasetName" "ixVolumes")) -}} -{{- include "common.retrieveHostPathFromiXVolume" (dict "datasetName" $values.datasetName "ixVolumes" $values.ixVolumes) -}} +{{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "datasetName" "ixVolumes")) -}} +{{- include "common.storage.retrieveHostPathFromiXVolume" (dict "datasetName" $values.datasetName "ixVolumes" $values.ixVolumes) -}} {{- end -}} {{- end -}} diff --git a/library/common/templates/lib/storage/_volume.tpl b/library/common/templates/lib/storage/_volume.tpl index 0cf4e74d8e..b828bb26a3 100644 --- a/library/common/templates/lib/storage/_volume.tpl +++ b/library/common/templates/lib/storage/_volume.tpl @@ -11,15 +11,15 @@ This expects a dictionary in the following format: "datasetName": string, } */}} -{{- define "common.volumeConfig" -}} +{{- define "common.storage.volumeConfig" -}} {{- $values := . -}} -{{- include "common.validateKeys" (dict "values" $values "checkKeys" (list "name")) -}} +{{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "name")) -}} - name: {{ $values.name }} {{- if $values.emptyDirVolumes -}} emptyDir: {} {{- else -}} hostPath: - path: {{ template "common.configuredHostPath" $values }} + path: {{ template "common.storage.configuredHostPath" $values }} {{- end -}} {{- end -}} @@ -41,11 +41,11 @@ This expects a dictionary to be provided in the following format: ] ( list of dicts ) } */}} -{{- define "common.volumesConfiguration" -}} +{{- define "common.storage.volumesConfiguration" -}} {{- $values := . -}} -{{- include "common.validateKeys" (dict "values" $values "checkKeys" (list "ixVolumes" "volumes")) -}} +{{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "ixVolumes" "volumes")) -}} {{- range $vol := $values.volumes -}} {{- $_ := set $vol "ixVolumes" $values.ixVolumes -}} -{{- include "common.volumeConfig" $vol -}} +{{- include "common.storage.volumeConfig" $vol -}} {{- end -}} {{- end -}} From fe8069a22df0dcefbe1860a2686c88ca514a3ae8 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 16:14:05 +0500 Subject: [PATCH 11/84] Add method to retrieve image/annotations and secrets configuration --- library/common/templates/lib/chart/_annotations.tpl | 6 ++++++ .../common/templates/lib/containers/_environment.tpl | 11 ++++++++++- library/common/templates/lib/containers/_image.tpl | 9 +++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 library/common/templates/lib/chart/_annotations.tpl create mode 100644 library/common/templates/lib/containers/_image.tpl diff --git a/library/common/templates/lib/chart/_annotations.tpl b/library/common/templates/lib/chart/_annotations.tpl new file mode 100644 index 0000000000..ad80be1e90 --- /dev/null +++ b/library/common/templates/lib/chart/_annotations.tpl @@ -0,0 +1,6 @@ +{{/* +Common workload annotations +*/}} +{{- define "common.annotations" -}} +rollme: {{ randAlphaNum 5 | quote }} +{{- end -}} diff --git a/library/common/templates/lib/containers/_environment.tpl b/library/common/templates/lib/containers/_environment.tpl index df1533527e..7bf6ccef56 100644 --- a/library/common/templates/lib/containers/_environment.tpl +++ b/library/common/templates/lib/containers/_environment.tpl @@ -5,8 +5,17 @@ Render environment variables {{- $values := . -}} {{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "environmentVariables")) -}} {{- range $envVariable := $values.environmentVariables -}} -{{- include "common.schema.validateKeys" (dict "values" $envVariable "checkKeys" (list "name" "value")) -}} +{{- include "common.schema.validateKeys" (dict "values" $envVariable "checkKeys" (list "name")) -}} - name: {{ $envVariable.name }} +{{- if $envVariable.valueFromSecret -}} +{{- include "common.schema.validateKeys" (dict "values" $envVariable "checkKeys" (list "secretName" "secretKey")) -}} + valueFrom: + secretKeyRef: + name: {{ $envVariable.secretName }} + key: {{ $envVariable.secretKey }} +{{- else -}} +{{- include "common.schema.validateKeys" (dict "values" $envVariable "checkKeys" (list "value")) -}} value: {{ $envVariable.value }} {{- end -}} {{- end -}} +{{- end -}} diff --git a/library/common/templates/lib/containers/_image.tpl b/library/common/templates/lib/containers/_image.tpl new file mode 100644 index 0000000000..4a5a368008 --- /dev/null +++ b/library/common/templates/lib/containers/_image.tpl @@ -0,0 +1,9 @@ +{{/* +Retrieve image configuration for container +*/}} +{{- define "common.containers.imageConfig" -}} +{{- $values := . -}} +{{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "repository" "tag" "pullPolicy")) -}} +image: "{{ $values.repository }}:{{ $values.tag }}" +imagePullPolicy: {{ $values.pullPolicy }} +{{- end -}} From 23ed62487ca45188ec60d657c12ac9fa5dd6d2ec Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 19:10:51 +0500 Subject: [PATCH 12/84] Add a helper tool to updte chart dependencies --- update_dependencies | 77 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100755 update_dependencies diff --git a/update_dependencies b/update_dependencies new file mode 100755 index 0000000000..7900462013 --- /dev/null +++ b/update_dependencies @@ -0,0 +1,77 @@ +#!/usr/bin/env python +import argparse +import errno +import os +import subprocess + + +class ValidationException(Exception): + def __init__(self, error_msg, error_no=errno.EFAULT): + self.errmsg = error_msg + self.errno = error_no + + def get_error_name(self): + return errno.errorcode.get(self.errno) or 'EUNKNOWN' + + def __str__(self): + return f'[{self.get_error_name()}] {self.errmsg}' + + +class NotFoundException(ValidationException): + def __init__(self, error): + super().__init__(error, errno.ENOENT) + + +class TrainNotFoundException(NotFoundException): + def __init__(self): + super(TrainNotFoundException, self).__init__('Failed to find train') + + +class CatalogItemNotFoundException(NotFoundException): + def __init__(self, path): + super(CatalogItemNotFoundException, self).__init__(f'Failed to find {path!r} catalog item') + + +def update_train_charts(train_path): + # We will gather all charts in the train and then for each chart all it's versions will be updated + if not os.path.exists(train_path): + raise TrainNotFoundException() + + for item in os.listdir(train_path): + process_catalog_item(os.path.join(train_path, item)) + + +def process_catalog_item(item_path): + if not os.path.exists(item_path): + raise CatalogItemNotFoundException(item_path) + + for item_version in os.listdir(item_path): + update_item_version(os.path.join(item_path, item_version)) + + +def update_item_version(version_path): + cp = subprocess.Popen( + ['helm', 'dependency', 'update', version_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE + ) + stdout, stderr = cp.communicate() + if cp.returncode: + # TODO: Let's keep a log of success and failure scenarios + pass + + +def main(): + parser = argparse.ArgumentParser() + subparsers = parser.add_subparsers(help='sub-command help', dest='action') + + parser_setup = subparsers.add_parser('update', help='Update dependencies for specified train') + parser_setup.add_argument('--train', help='Specify train path to update dependencies', required=True) + + args = parser.parse_args() + if args.action == 'update': + update_train_charts(args.train) + else: + parser.print_help() + + +if __name__ == '__main__': + main() From 85cfcf9e7378255554bc81d54ebf6413aba8d441 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 19:34:21 +0500 Subject: [PATCH 13/84] Report result for helm dependency update --- update_dependencies | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/update_dependencies b/update_dependencies index 7900462013..ed77677a02 100755 --- a/update_dependencies +++ b/update_dependencies @@ -4,6 +4,10 @@ import errno import os import subprocess +from collections import defaultdict + +ITEMS = defaultdict(lambda: {'success': [], 'error': []}) + class ValidationException(Exception): def __init__(self, error_msg, error_no=errno.EFAULT): @@ -32,31 +36,55 @@ class CatalogItemNotFoundException(NotFoundException): super(CatalogItemNotFoundException, self).__init__(f'Failed to find {path!r} catalog item') +def report_result(): + print('[\033[94mINFO\x1B[0m]\tExecution Complete') + for index, item in enumerate(ITEMS): + index += 1 + data = ITEMS[item] + print(f'\n\n[\033[94mINFO\x1B[0m]\t{index}) {item}') + if data['success']: + print( + f'[\033[92mOK\x1B[0m]\t - Successfully updated dependencies for {", ".join(data["success"])} versions' + ) + + for i_v, version in enumerate(data['error']): + v_name, error = version + print( + f'[\033[91mFAILED\x1B[0m]\t ({i_v + 1}) Failed to update dependencies for {v_name!r} version: {error}' + ) + + def update_train_charts(train_path): # We will gather all charts in the train and then for each chart all it's versions will be updated if not os.path.exists(train_path): raise TrainNotFoundException() + print(f'[\033[94mINFO\x1B[0m]\tProcessing {train_path!r} train') for item in os.listdir(train_path): process_catalog_item(os.path.join(train_path, item)) + report_result() + def process_catalog_item(item_path): if not os.path.exists(item_path): raise CatalogItemNotFoundException(item_path) + item_name = item_path.rsplit('/', 1)[-1] + print(f'[\033[94mINFO\x1B[0m]\tProcessing {item_name!r} catalog item') for item_version in os.listdir(item_path): - update_item_version(os.path.join(item_path, item_version)) + update_item_version(item_name, item_version, os.path.join(item_path, item_version)) -def update_item_version(version_path): +def update_item_version(item_name, version, version_path): cp = subprocess.Popen( ['helm', 'dependency', 'update', version_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE ) stdout, stderr = cp.communicate() if cp.returncode: - # TODO: Let's keep a log of success and failure scenarios - pass + ITEMS[item_name]['error'].append((version, stderr.decode())) + else: + ITEMS[item_name]['success'].append(version) def main(): From bde7b16ead7688b292a9402ce71b2ed0cd312081 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 19:59:19 +0500 Subject: [PATCH 14/84] Add library chart as a dependency for ipfs/ix-chart/minio/nextcloud/plex items --- test/ipfs/1.0.1/Chart.yaml | 4 ++++ test/ix-chart/2101.0.0/Chart.yaml | 5 +++++ test/minio/1.0.1/Chart.yaml | 4 ++++ test/nextcloud/1.1.0/Chart.yaml | 5 +++++ test/plex/1.0.1/Chart.yaml | 5 +++++ 5 files changed, 23 insertions(+) diff --git a/test/ipfs/1.0.1/Chart.yaml b/test/ipfs/1.0.1/Chart.yaml index fe0a145769..44b5332b93 100644 --- a/test/ipfs/1.0.1/Chart.yaml +++ b/test/ipfs/1.0.1/Chart.yaml @@ -12,3 +12,7 @@ sources: - https://github.com/ipfs/go-ipfs - https://hub.docker.com/r/ipfs/go-ipfs upstream_version: 0.8.0-rc1 +dependencies: + - name: common + repository: file://../../../library/common + version: 2101.0.0 diff --git a/test/ix-chart/2101.0.0/Chart.yaml b/test/ix-chart/2101.0.0/Chart.yaml index 3d45a108e3..7f5e15a157 100644 --- a/test/ix-chart/2101.0.0/Chart.yaml +++ b/test/ix-chart/2101.0.0/Chart.yaml @@ -21,3 +21,8 @@ version: 2101.0.0 # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. appVersion: v1 +dependencies: + - name: common + repository: file://../../../library/common + version: 2101.0.0 + diff --git a/test/minio/1.0.1/Chart.yaml b/test/minio/1.0.1/Chart.yaml index 787ff43d43..9ede89b251 100644 --- a/test/minio/1.0.1/Chart.yaml +++ b/test/minio/1.0.1/Chart.yaml @@ -13,3 +13,7 @@ sources: - https://github.com/minio/minio - https://github.com/minio/charts upstream_version: 8.0.5 +dependencies: + - name: common + repository: file://../../../library/common + version: 2101.0.0 diff --git a/test/nextcloud/1.1.0/Chart.yaml b/test/nextcloud/1.1.0/Chart.yaml index df04f529d5..1f90bd6bc6 100644 --- a/test/nextcloud/1.1.0/Chart.yaml +++ b/test/nextcloud/1.1.0/Chart.yaml @@ -15,3 +15,8 @@ sources: - https://github.com/nextcloud/docker - https://github.com/nextcloud/helm upstream_version: 2.3.2 +dependencies: + - name: common + repository: file://../../../library/common + version: 2101.0.0 + diff --git a/test/plex/1.0.1/Chart.yaml b/test/plex/1.0.1/Chart.yaml index 961dda9c20..05316317f2 100644 --- a/test/plex/1.0.1/Chart.yaml +++ b/test/plex/1.0.1/Chart.yaml @@ -11,3 +11,8 @@ sources: - https://hub.docker.com/r/plexinc/pms-docker/ - https://github.com/k8s-at-home/charts/tree/master/charts/plex upstream_version: 2.1.0 +dependencies: + - name: common + repository: file://../../../library/common + version: 2101.0.0 + From fca725aff15a5afa6246921c0587fb42ff6e14c2 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 20:42:20 +0500 Subject: [PATCH 15/84] Commit after udpating dependencies --- update_dependencies | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/update_dependencies b/update_dependencies index ed77677a02..d09ac6b498 100755 --- a/update_dependencies +++ b/update_dependencies @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import argparse import errno import os @@ -54,7 +54,7 @@ def report_result(): ) -def update_train_charts(train_path): +def update_train_charts(train_path, commit): # We will gather all charts in the train and then for each chart all it's versions will be updated if not os.path.exists(train_path): raise TrainNotFoundException() @@ -65,6 +65,26 @@ def update_train_charts(train_path): report_result() + if commit: + if any(ITEMS[item]['error'] for item in ITEMS): + print(f'[\033[91mFAILED\x1B[0m]\tNot committing changes as failures detected') + else: + commit_msg = 'Updated catalog item dependencies\nFollowing items were updated:\n' + for item in ITEMS: + commit_msg += f'Updated {item} ({", ".join(ITEMS[item]["success"])} versions)\n\n' + + for cmd in ( + ['git', '-C', train_path, 'add', train_path], + ['git', '-C', train_path, 'commit', '-m', commit_msg] + ): + cp = subprocess.Popen(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.PIPE) + stderr = cp.communicate()[1] + if cp.returncode: + print(f'[\033[91mFAILED\x1B[0m]\tFailed to execute {" ".join(cmd)}: {stderr.decode()}') + exit(1) + + print('[\033[92mOK\x1B[0m]\tChanges committed successfully') + def process_catalog_item(item_path): if not os.path.exists(item_path): @@ -73,7 +93,8 @@ def process_catalog_item(item_path): item_name = item_path.rsplit('/', 1)[-1] print(f'[\033[94mINFO\x1B[0m]\tProcessing {item_name!r} catalog item') for item_version in os.listdir(item_path): - update_item_version(item_name, item_version, os.path.join(item_path, item_version)) + if os.path.isdir(os.path.join(item_path, item_version)): + update_item_version(item_name, item_version, os.path.join(item_path, item_version)) def update_item_version(item_name, version, version_path): @@ -93,10 +114,11 @@ def main(): parser_setup = subparsers.add_parser('update', help='Update dependencies for specified train') parser_setup.add_argument('--train', help='Specify train path to update dependencies', required=True) + parser_setup.add_argument('--commit', help='Commit after updating dependencies', default=False) args = parser.parse_args() if args.action == 'update': - update_train_charts(args.train) + update_train_charts(args.train, args.commit) else: parser.print_help() From d30cedce3c4eec14bd43141298bd7897c85a6560 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 21:16:54 +0500 Subject: [PATCH 16/84] Update commit logic --- update_dependencies | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/update_dependencies b/update_dependencies index d09ac6b498..1b809b395f 100755 --- a/update_dependencies +++ b/update_dependencies @@ -41,7 +41,7 @@ def report_result(): for index, item in enumerate(ITEMS): index += 1 data = ITEMS[item] - print(f'\n\n[\033[94mINFO\x1B[0m]\t{index}) {item}') + print(f'\n[\033[94mINFO\x1B[0m]\t{index}) {item}') if data['success']: print( f'[\033[92mOK\x1B[0m]\t - Successfully updated dependencies for {", ".join(data["success"])} versions' @@ -65,11 +65,12 @@ def update_train_charts(train_path, commit): report_result() - if commit: + if commit and any(ITEMS[item]['success'] for item in ITEMS): if any(ITEMS[item]['error'] for item in ITEMS): print(f'[\033[91mFAILED\x1B[0m]\tNot committing changes as failures detected') else: - commit_msg = 'Updated catalog item dependencies\nFollowing items were updated:\n' + commit_msg = f'Updated catalog item dependencies ({train_path.rsplit("/", 1)[0]} train)\n' \ + 'Following items were updated:\n' for item in ITEMS: commit_msg += f'Updated {item} ({", ".join(ITEMS[item]["success"])} versions)\n\n' From de3948ecdd723f40c395c97897579b1667c3fe39 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 23:08:41 +0500 Subject: [PATCH 17/84] Fix line indent for volume configuration --- library/common/templates/lib/storage/_volume.tpl | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/library/common/templates/lib/storage/_volume.tpl b/library/common/templates/lib/storage/_volume.tpl index b828bb26a3..11037e6460 100644 --- a/library/common/templates/lib/storage/_volume.tpl +++ b/library/common/templates/lib/storage/_volume.tpl @@ -14,10 +14,11 @@ This expects a dictionary in the following format: {{- define "common.storage.volumeConfig" -}} {{- $values := . -}} {{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "name")) -}} -- name: {{ $values.name }} {{- if $values.emptyDirVolumes -}} +- name: {{ $values.name }} emptyDir: {} {{- else -}} +- name: {{ $values.name }} hostPath: path: {{ template "common.storage.configuredHostPath" $values }} {{- end -}} @@ -46,6 +47,6 @@ This expects a dictionary to be provided in the following format: {{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "ixVolumes" "volumes")) -}} {{- range $vol := $values.volumes -}} {{- $_ := set $vol "ixVolumes" $values.ixVolumes -}} -{{- include "common.storage.volumeConfig" $vol -}} +{{- include "common.storage.volumeConfig" $vol | nindent 0 -}} {{- end -}} {{- end -}} From e5d0fb7cc6ae0176260bb0a6055facd08b0ee86e Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 23:10:26 +0500 Subject: [PATCH 18/84] Update ipfs deployment to use library chart --- test/ipfs/1.0.1/templates/deployment.yaml | 72 ++++++----------------- 1 file changed, 19 insertions(+), 53 deletions(-) diff --git a/test/ipfs/1.0.1/templates/deployment.yaml b/test/ipfs/1.0.1/templates/deployment.yaml index af4963cca5..0dd9a846df 100644 --- a/test/ipfs/1.0.1/templates/deployment.yaml +++ b/test/ipfs/1.0.1/templates/deployment.yaml @@ -1,87 +1,71 @@ -{{ $scheme := "http" }} -apiVersion: {{ template "ipfs.deployment.apiVersion" . }} +apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }} kind: Deployment metadata: - name: {{ template "ipfs.fullname" . }} - labels: - app: {{ template "ipfs.name" . }} - chart: {{ template "ipfs.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} + name: {{ template "common.names.fullname" . }} + labels: {{ include "common.labels" . | nindent 4 }} spec: strategy: type: {{ .Values.updateStrategy }} selector: - matchLabels: - app: {{ template "ipfs.name" . }} - release: {{ .Release.Name }} + matchLabels: {{ include "common.labels.selectorLabels" . | nindent 6 }} template: metadata: - name: {{ template "ipfs.fullname" . }} - labels: - app: {{ template "ipfs.name" . }} - release: {{ .Release.Name }} + name: {{ template "common.names.fullname" . }} + labels: {{ include "common.labels.selectorLabels" . | nindent 8 }} spec: serviceAccountName: {{ include "ipfs.serviceAccountName" . | quote }} initContainers: - name: init-init - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: ['/bin/sh', '-c', '[ ! -e /data/ipfs/config ] && (/usr/local/bin/ipfs init ; chown -R 1000:100 /data/ipfs) ; exit 0'] - imagePullPolicy: {{ .Values.image.pullPolicy }} volumeMounts: - name: data mountPath: /data/ipfs - name: staging mountPath: /export - name: init-api - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: ['/usr/local/bin/ipfs', 'config', 'Addresses.API', "/ip4/0.0.0.0/tcp/{{ .Values.service.apiPort}}"] - imagePullPolicy: {{ .Values.image.pullPolicy }} volumeMounts: - name: data mountPath: /data/ipfs - name: staging mountPath: /export - name: init-gateway - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: ['/usr/local/bin/ipfs', 'config', 'Addresses.Gateway', "/ip4/0.0.0.0/tcp/{{ .Values.service.gatewayPort}}"] - imagePullPolicy: {{ .Values.image.pullPolicy }} volumeMounts: - name: data mountPath: /data/ipfs - name: staging mountPath: /export - name: init-swarm - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: ['/usr/local/bin/ipfs', 'config', '--json', 'Addresses.Swarm', "[\"/ip4/0.0.0.0/tcp/{{ .Values.service.swarmPort}}\",\"/ip4/0.0.0.0/tcp/{{ .Values.service.swarmPort}}/quic\"]" ] - imagePullPolicy: {{ .Values.image.pullPolicy }} volumeMounts: - name: data mountPath: /data/ipfs - name: staging mountPath: /export - name: init-access-origin - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: ['/usr/local/bin/ipfs', 'config', '--json', 'API.HTTPHeaders.Access-Control-Allow-Origin', "[\"*\"]" ] - imagePullPolicy: {{ .Values.image.pullPolicy }} volumeMounts: - name: data mountPath: /data/ipfs - name: staging mountPath: /export - name: init-access-methods - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: ['/usr/local/bin/ipfs', 'config', '--json', 'API.HTTPHeaders.Access-Control-Allow-Methods', "[\"PUT\",\"POST\"]" ] - imagePullPolicy: {{ .Values.image.pullPolicy }} volumeMounts: - name: data mountPath: /data/ipfs - name: staging mountPath: /export - name: init-chown - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: ['chown', '1000:100', '/data/ipfs/config'] - imagePullPolicy: {{ .Values.image.pullPolicy }} volumeMounts: - name: data mountPath: /data/ipfs @@ -89,8 +73,7 @@ spec: mountPath: /export containers: - name: {{ .Chart.Name }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} + {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} volumeMounts: - name: data mountPath: /data/ipfs @@ -105,27 +88,10 @@ spec: containerPort: 9880 {{- if .Values.environment }} env: - {{- range $envVariable := .Values.environment }} - {{- if and $envVariable.name $envVariable.value }} - - name: {{ $envVariable.name }} - value: {{ $envVariable.value | quote }} - {{- else }} - {{- fail "Please specify name/value for environment variable" }} - {{- end }} - {{- end}} + {{ include "common.containers.environmentVariables" (dict "environmentVariables" .Values.environment) | nindent 12 }} {{- end }} volumes: - - name: data - {{- if .Values.emptyDirVolumes }} - emptyDir: {} - {{- else }} - hostPath: - path: {{ template "configuredHostPathData" . }} - {{- end }} - - name: staging - {{- if .Values.emptyDirVolumes }} - emptyDir: {} - {{- else }} - hostPath: - path: {{ template "configuredHostPathStaging" . }} - {{- end }} + {{ $vols := list }} + {{ $vols = mustAppend $vols (dict "name" "data" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" .Values.ipfsDataHostPathEnabled "pathField" .Values.ipfsDataHostPath "datasetName" (.Values.ipfsDataVolume | default dict).datasetName ) }} + {{ $vols = mustAppend $vols (dict "name" "staging" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" .Values.ipfsStagingHostPath "pathField" .Values.ipfsStagingHostPath "datasetName" (.Values.ipfsStagingVolume | default dict).datasetName ) }} + {{ include "common.storage.volumesConfiguration" (dict "ixVolumes" .Values.ixVolumes "volumes" $vols) | nindent 8 }} From 7a51a9ad40376140632b3b74a2edf77a8997f274 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 23:15:28 +0500 Subject: [PATCH 19/84] Add common serviceaccount implementation --- library/common/templates/_serviceaccount.tpl | 11 +++++++++++ library/common/templates/lib/chart/_names.tpl | 7 +++++++ 2 files changed, 18 insertions(+) create mode 100644 library/common/templates/_serviceaccount.tpl diff --git a/library/common/templates/_serviceaccount.tpl b/library/common/templates/_serviceaccount.tpl new file mode 100644 index 0000000000..588c968bde --- /dev/null +++ b/library/common/templates/_serviceaccount.tpl @@ -0,0 +1,11 @@ +{{-/* +Common service account +*/-}} +{{- define "common.serviceaccount" -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "common.names.serviceAccountName" . | quote }} + namespace: {{ .Release.Namespace | quote }} + labels: {{- include "common.labels.selectorLabels" | nindent 4 -}} +{{- end -}} diff --git a/library/common/templates/lib/chart/_names.tpl b/library/common/templates/lib/chart/_names.tpl index d8ea1d0dc9..68504047cc 100644 --- a/library/common/templates/lib/chart/_names.tpl +++ b/library/common/templates/lib/chart/_names.tpl @@ -29,3 +29,10 @@ Create chart name and version as used by the chart label. {{- define "common.names.chart" -}} {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} {{- end }} + +{{/* +Determine service account name for deployment or statefulset. +*/}} +{{- define "common.names.serviceAccountName" -}} +{{- (include "common.names.fullname" .) | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} From ba21e518029325b694a16df1ed43a8c722cdb8df Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 23:16:51 +0500 Subject: [PATCH 20/84] Update ipfs chart to use common service account implementation --- test/ipfs/1.0.1/templates/deployment.yaml | 2 +- test/ipfs/1.0.1/templates/serviceaccount.yaml | 10 +--------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/test/ipfs/1.0.1/templates/deployment.yaml b/test/ipfs/1.0.1/templates/deployment.yaml index 0dd9a846df..f12fca07c9 100644 --- a/test/ipfs/1.0.1/templates/deployment.yaml +++ b/test/ipfs/1.0.1/templates/deployment.yaml @@ -13,7 +13,7 @@ spec: name: {{ template "common.names.fullname" . }} labels: {{ include "common.labels.selectorLabels" . | nindent 8 }} spec: - serviceAccountName: {{ include "ipfs.serviceAccountName" . | quote }} + serviceAccountName: {{ include "common.names.serviceAccountName" . | quote }} initContainers: - name: init-init {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} diff --git a/test/ipfs/1.0.1/templates/serviceaccount.yaml b/test/ipfs/1.0.1/templates/serviceaccount.yaml index 05d1db5bbe..811923611e 100644 --- a/test/ipfs/1.0.1/templates/serviceaccount.yaml +++ b/test/ipfs/1.0.1/templates/serviceaccount.yaml @@ -1,9 +1 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "ipfs.serviceAccountName" . | quote }} - namespace: {{ .Release.Namespace | quote }} - labels: - app: {{ template "ipfs.name" . }} - chart: {{ template "ipfs.chart" . }} - release: "{{ .Release.Name }}" +{{- include "common.serviceaccount" . -}} From af075c5ebfb2a5fdd8cac03493b3665317ba2ab6 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 23:32:49 +0500 Subject: [PATCH 21/84] Update ipfs chart to use common service implementation --- test/ipfs/1.0.1/templates/service.yaml | 37 +++++--------------------- 1 file changed, 6 insertions(+), 31 deletions(-) diff --git a/test/ipfs/1.0.1/templates/service.yaml b/test/ipfs/1.0.1/templates/service.yaml index ad352427e8..09ebc198c1 100644 --- a/test/ipfs/1.0.1/templates/service.yaml +++ b/test/ipfs/1.0.1/templates/service.yaml @@ -1,31 +1,6 @@ -{{ $scheme := "http" }} -apiVersion: v1 -kind: Service -metadata: - name: {{ template "ipfs.fullname" . }} - labels: - app: {{ template "ipfs.name" . }} - chart: {{ template "ipfs.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - type: "NodePort" - ports: - - name: swarm - port: {{ .Values.service.swarmPort }} - protocol: TCP - nodePort: {{ .Values.service.swarmPort }} - targetPort: 9401 - - name: api - port: {{ .Values.service.apiPort }} - protocol: TCP - nodePort: {{ .Values.service.apiPort }} - targetPort: 9501 - - name: gateway - port: {{ .Values.service.gatewayPort }} - protocol: TCP - nodePort: {{ .Values.service.gatewayPort }} - targetPort: 9880 - selector: - app: {{ template "ipfs.name" . }} - release: {{ .Release.Name }} +{{ $svc := .Values.service }} +{{ $ports := list }} +{{ $ports = mustAppend $ports (dict "name" "swarm" "port" $svc.swarmPort "nodePort" $svc.swarmPort "targetPort" 9401) }} +{{ $ports = mustAppend $ports (dict "name" "api" "port" $svc.apiPort "nodePort" $svc.apiPort "targetPort" 9501) }} +{{ $ports = mustAppend $ports (dict "name" "gateway" "port" $svc.gatewayPort "nodePort" $svc.gatewayPort "targetPort" 9880) }} +{{ include "common.classes.service" (dict "type" "NodePort" ) }} From 24045b305fe73ead049a42c4d3fb077ba0ccfce0 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 23:40:08 +0500 Subject: [PATCH 22/84] Properly render services in common chart --- library/common/templates/_serviceaccount.tpl | 6 +++--- library/common/templates/classes/_service.tpl | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/library/common/templates/_serviceaccount.tpl b/library/common/templates/_serviceaccount.tpl index 588c968bde..b96d4009a9 100644 --- a/library/common/templates/_serviceaccount.tpl +++ b/library/common/templates/_serviceaccount.tpl @@ -1,11 +1,11 @@ -{{-/* +{{/* Common service account -*/-}} +*/}} {{- define "common.serviceaccount" -}} apiVersion: v1 kind: ServiceAccount metadata: name: {{ include "common.names.serviceAccountName" . | quote }} namespace: {{ .Release.Namespace | quote }} - labels: {{- include "common.labels.selectorLabels" | nindent 4 -}} + labels: {{- include "common.labels.selectorLabels" . | nindent 4 -}} {{- end -}} diff --git a/library/common/templates/classes/_service.tpl b/library/common/templates/classes/_service.tpl index 08a0b1b31b..d563e1d0d5 100644 --- a/library/common/templates/classes/_service.tpl +++ b/library/common/templates/classes/_service.tpl @@ -3,7 +3,7 @@ This template serves as a blueprint for all Service objects that are created within the common library. */}} {{- define "common.classes.service" -}} -{{- $values := . -}} +{{- $values := .service -}} {{- $serviceName := include "common.names.fullname" . -}} {{- if hasKey $values "nameSuffix" -}} {{- $serviceName = printf "%v-%v" $serviceName $values.nameSuffix -}} From 87236e388c6f851cb5d0fce549fda99c73be20a5 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 23:40:31 +0500 Subject: [PATCH 23/84] Properly pass parameters for service rendering --- test/ipfs/1.0.1/templates/service.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/ipfs/1.0.1/templates/service.yaml b/test/ipfs/1.0.1/templates/service.yaml index 09ebc198c1..e9ec57d84c 100644 --- a/test/ipfs/1.0.1/templates/service.yaml +++ b/test/ipfs/1.0.1/templates/service.yaml @@ -3,4 +3,6 @@ {{ $ports = mustAppend $ports (dict "name" "swarm" "port" $svc.swarmPort "nodePort" $svc.swarmPort "targetPort" 9401) }} {{ $ports = mustAppend $ports (dict "name" "api" "port" $svc.apiPort "nodePort" $svc.apiPort "targetPort" 9501) }} {{ $ports = mustAppend $ports (dict "name" "gateway" "port" $svc.gatewayPort "nodePort" $svc.gatewayPort "targetPort" 9880) }} -{{ include "common.classes.service" (dict "type" "NodePort" ) }} +{{ $params := . }} +{{ $_ := set $params "service" (dict "type" "NodePort" "ports" $ports ) }} +{{ include "common.classes.service" $params }} From 8e875e16642a6d0560a6e36f14927cb16fd15baf Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 29 Jan 2021 23:42:10 +0500 Subject: [PATCH 24/84] Remove unnecessary code in ipfs chart --- test/ipfs/1.0.1/templates/_helpers.tpl | 67 -------------------------- test/ipfs/1.0.1/templates/_storage.tpl | 35 -------------- 2 files changed, 102 deletions(-) delete mode 100644 test/ipfs/1.0.1/templates/_helpers.tpl delete mode 100644 test/ipfs/1.0.1/templates/_storage.tpl diff --git a/test/ipfs/1.0.1/templates/_helpers.tpl b/test/ipfs/1.0.1/templates/_helpers.tpl deleted file mode 100644 index 3324203697..0000000000 --- a/test/ipfs/1.0.1/templates/_helpers.tpl +++ /dev/null @@ -1,67 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "ipfs.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "ipfs.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "ipfs.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Return the appropriate apiVersion for deployment. -*/}} -{{- define "ipfs.deployment.apiVersion" -}} -{{- print "apps/v1" -}} -{{- end -}} - -{{/* -Return the appropriate apiVersion for statefulset. -*/}} -{{- define "ipfs.statefulset.apiVersion" -}} -{{- print "apps/v1" -}} -{{- end -}} - -{{/* -Determine secret name. -*/}} -{{- define "ipfs.secretName" -}} -{{- include "ipfs.fullname" . -}} -{{- end -}} - -{{/* -Determine service account name for deployment or statefulset. -*/}} -{{- define "ipfs.serviceAccountName" -}} -{{- (include "ipfs.fullname" .) | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Determine name for scc role and rolebinding -*/}} -{{- define "ipfs.sccRoleName" -}} -{{- printf "%s-%s" "scc" (include "ipfs.fullname" .) | trunc 63 | trimSuffix "-" -}} -{{- end -}} diff --git a/test/ipfs/1.0.1/templates/_storage.tpl b/test/ipfs/1.0.1/templates/_storage.tpl deleted file mode 100644 index 994f15f661..0000000000 --- a/test/ipfs/1.0.1/templates/_storage.tpl +++ /dev/null @@ -1,35 +0,0 @@ -{{/* -Retrieve host path from ix volumes based on dataset name -*/}} -{{- define "retrieveHostPathFromiXVolume" -}} -{{- range $index, $hostPathConfiguration := $.ixVolumes }} -{{- $dsName := base $hostPathConfiguration.hostPath -}} -{{- if eq $.datasetName $dsName -}} -{{- $hostPathConfiguration.hostPath -}} -{{- end -}} -{{- end }} -{{- end -}} - -{{/* -Retrieve host path for ipfs -*/}} -{{- define "configuredHostPathData" -}} -{{- if .Values.ipfsDataHostPathEnabled -}} -{{- .Values.ipfsDataHostPath -}} -{{- else -}} -{{- $volDict := dict "datasetName" $.Values.ipfsDataVolume.datasetName "ixVolumes" $.Values.ixVolumes -}} -{{- include "retrieveHostPathFromiXVolume" $volDict -}} -{{- end -}} -{{- end -}} - -{{/* -Retrieve host path for ipfs -*/}} -{{- define "configuredHostPathStaging" -}} -{{- if .Values.ipfsStagingHostPathEnabled -}} -{{- .Values.ipfsStagingHostPath -}} -{{- else -}} -{{- $volDict := dict "datasetName" $.Values.ipfsStagingVolume.datasetName "ixVolumes" $.Values.ixVolumes -}} -{{- include "retrieveHostPathFromiXVolume" $volDict -}} -{{- end -}} -{{- end -}} From b8dc33b5beee44cfab992219e6c2fd27e7eb22bc Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 00:09:40 +0500 Subject: [PATCH 25/84] Have a line break between rendering environment variables --- .../templates/lib/containers/_environment.tpl | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/library/common/templates/lib/containers/_environment.tpl b/library/common/templates/lib/containers/_environment.tpl index 7bf6ccef56..4a1fd1410f 100644 --- a/library/common/templates/lib/containers/_environment.tpl +++ b/library/common/templates/lib/containers/_environment.tpl @@ -1,3 +1,23 @@ +{{/* +Render environment variable +*/}} +{{- define "common.containers.environmentVariable" -}} +{{- $envVariable := . -}} +{{- include "common.schema.validateKeys" (dict "values" $envVariable "checkKeys" (list "name")) -}} +{{- if $envVariable.valueFromSecret -}} +{{- include "common.schema.validateKeys" (dict "values" $envVariable "checkKeys" (list "secretName" "secretKey")) -}} +- name: {{ $envVariable.name }} + valueFrom: + secretKeyRef: + name: {{ $envVariable.secretName }} + key: {{ $envVariable.secretKey }} +{{- else -}} +{{- include "common.schema.validateKeys" (dict "values" $envVariable "checkKeys" (list "value")) -}} +- name: {{ $envVariable.name }} + value: {{ $envVariable.value }} +{{- end -}} +{{- end -}} + {{/* Render environment variables */}} @@ -5,17 +25,6 @@ Render environment variables {{- $values := . -}} {{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "environmentVariables")) -}} {{- range $envVariable := $values.environmentVariables -}} -{{- include "common.schema.validateKeys" (dict "values" $envVariable "checkKeys" (list "name")) -}} -- name: {{ $envVariable.name }} -{{- if $envVariable.valueFromSecret -}} -{{- include "common.schema.validateKeys" (dict "values" $envVariable "checkKeys" (list "secretName" "secretKey")) -}} - valueFrom: - secretKeyRef: - name: {{ $envVariable.secretName }} - key: {{ $envVariable.secretKey }} -{{- else -}} -{{- include "common.schema.validateKeys" (dict "values" $envVariable "checkKeys" (list "value")) -}} - value: {{ $envVariable.value }} -{{- end -}} +{{- include "common.containers.environmentVariable" $envVariable | nindent 0 -}} {{- end -}} {{- end -}} From 6411e65838b09bdfdf73e54de4a20b8d57a6669f Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 00:10:35 +0500 Subject: [PATCH 26/84] Update minio deployment to use library chart --- test/minio/1.0.1/templates/deployment.yaml | 61 ++++++---------------- 1 file changed, 16 insertions(+), 45 deletions(-) diff --git a/test/minio/1.0.1/templates/deployment.yaml b/test/minio/1.0.1/templates/deployment.yaml index 407bba80f2..fb33129703 100644 --- a/test/minio/1.0.1/templates/deployment.yaml +++ b/test/minio/1.0.1/templates/deployment.yaml @@ -1,34 +1,25 @@ {{ $scheme := "http" }} -apiVersion: {{ template "minio.deployment.apiVersion" . }} +apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }} kind: Deployment metadata: - name: {{ template "minio.fullname" . }} - labels: - app: {{ template "minio.name" . }} - chart: {{ template "minio.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} + name: {{ template "common.names.fullname" . }} + labels: {{ include "common.labels" . | nindent 4 }} spec: strategy: type: {{ .Values.updateStrategy }} selector: - matchLabels: - app: {{ template "minio.name" . }} - release: {{ .Release.Name }} + matchLabels: {{ include "common.labels.selectorLabels" . | nindent 6 }} template: metadata: - name: {{ template "minio.fullname" . }} - labels: - app: {{ template "minio.name" . }} - release: {{ .Release.Name }} + name: {{ template "common.names.fullname" . }} + labels: {{ include "common.labels.selectorLabels" . | nindent 8 }} annotations: checksum/secrets: {{ include (print $.Template.BasePath "/secrets.yaml") . | sha256sum }} spec: - serviceAccountName: {{ include "minio.serviceAccountName" . | quote }} + serviceAccountName: {{ include "common.names.serviceAccountName" . | quote }} containers: - name: {{ .Chart.Name }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} + {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: - "/bin/sh" - "-ce" @@ -40,32 +31,12 @@ spec: - name: {{ $scheme }} containerPort: 9000 env: - - name: MINIO_ACCESS_KEY - valueFrom: - secretKeyRef: - name: {{ template "minio.secretName" . }} - key: accesskey - - name: MINIO_SECRET_KEY - valueFrom: - secretKeyRef: - name: {{ template "minio.secretName" . }} - key: secretkey - {{- range $envVariable := .Values.environmentVariables }} - {{- if and $envVariable.name $envVariable.value }} - - name: {{ $envVariable.name }} - value: {{ $envVariable.value | quote }} - {{- else }} - {{- fail "Please specify name/value for environment variable" }} - {{- end }} - {{- end}} + {{ $secretName := (include "minio.secretName" .) }} + {{ $envList := (default list .Values.environment) }} + {{ $envList = mustAppend $envList (dict "name" "MINIO_ACCESS_KEY" "valueFromSecret" true "secretName" $secretName "secretKey" "accesskey") }} + {{ $envList = mustAppend $envList (dict "name" "MINIO_SECRET_KEY" "valueFromSecret" true "secretName" $secretName "secretKey" "secretkey") }} + {{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) | nindent 12 }} volumes: - - name: export - {{- if .Values.emptyDirVolumes }} - emptyDir: {} - {{- else }} - hostPath: - path: {{ template "configuredMinioHostPath" . }} - {{- end }} - - name: minio-user - secret: - secretName: {{ template "minio.secretName" . }} + {{ $vols := list }} + {{ $vols = mustAppend $vols (dict "name" "export" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" .Values.minioHostPathEnabled "pathField" .Values.minioHostPath "datasetName" (.Values.minioDataVolume | default dict).datasetName ) }} + {{ include "common.storage.volumesConfiguration" (dict "ixVolumes" .Values.ixVolumes "volumes" $vols) | nindent 8 }} From e06cbe12168b3621147f446fcdeaada17bac0a46 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 00:12:32 +0500 Subject: [PATCH 27/84] Update minio service/serviceaccount implementations to use library chart --- test/minio/1.0.1/templates/service.yaml | 27 +++++-------------- .../minio/1.0.1/templates/serviceaccount.yaml | 10 +------ 2 files changed, 7 insertions(+), 30 deletions(-) diff --git a/test/minio/1.0.1/templates/service.yaml b/test/minio/1.0.1/templates/service.yaml index 3f0c68b930..a02cbfb06a 100644 --- a/test/minio/1.0.1/templates/service.yaml +++ b/test/minio/1.0.1/templates/service.yaml @@ -1,21 +1,6 @@ -{{ $scheme := "http" }} -apiVersion: v1 -kind: Service -metadata: - name: {{ template "minio.fullname" . }} - labels: - app: {{ template "minio.name" . }} - chart: {{ template "minio.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -spec: - type: "NodePort" - ports: - - name: {{ $scheme }} - port: {{ .Values.service.nodePort }} - protocol: TCP - nodePort: {{ .Values.service.nodePort }} - targetPort: 9000 - selector: - app: {{ template "minio.name" . }} - release: {{ .Release.Name }} +{{ $svc := .Values.service }} +{{ $ports := list }} +{{ $ports = mustAppend $ports (dict "name" "http" "port" $svc.nodePort "nodePort" $svc.nodePort "targetPort" 9000) }} +{{ $params := . }} +{{ $_ := set $params "service" (dict "type" "NodePort" "ports" $ports ) }} +{{ include "common.classes.service" $params }} diff --git a/test/minio/1.0.1/templates/serviceaccount.yaml b/test/minio/1.0.1/templates/serviceaccount.yaml index 2db987867a..811923611e 100644 --- a/test/minio/1.0.1/templates/serviceaccount.yaml +++ b/test/minio/1.0.1/templates/serviceaccount.yaml @@ -1,9 +1 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "minio.serviceAccountName" . | quote }} - namespace: {{ .Release.Namespace | quote }} - labels: - app: {{ template "minio.name" . }} - chart: {{ template "minio.chart" . }} - release: "{{ .Release.Name }}" +{{- include "common.serviceaccount" . -}} From f5b7e4e6061349d7e3ed480ffb0f6d199d1492b9 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 00:15:15 +0500 Subject: [PATCH 28/84] Remove unnecessary code in minio chart --- test/minio/1.0.1/templates/_helpers.tpl | 70 +------------------------ test/minio/1.0.1/templates/_storage.tpl | 23 -------- test/minio/1.0.1/templates/secrets.yaml | 6 +-- 3 files changed, 2 insertions(+), 97 deletions(-) delete mode 100644 test/minio/1.0.1/templates/_storage.tpl diff --git a/test/minio/1.0.1/templates/_helpers.tpl b/test/minio/1.0.1/templates/_helpers.tpl index aa82dc8b17..a14570d395 100644 --- a/test/minio/1.0.1/templates/_helpers.tpl +++ b/test/minio/1.0.1/templates/_helpers.tpl @@ -1,78 +1,10 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "minio.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "minio.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "minio.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Return the appropriate apiVersion for deployment. -*/}} -{{- define "minio.deployment.apiVersion" -}} -{{- if semverCompare "<1.9-0" .Capabilities.KubeVersion.Version -}} -{{- print "apps/v1beta2" -}} -{{- else -}} -{{- print "apps/v1" -}} -{{- end -}} -{{- end -}} - -{{/* -Return the appropriate apiVersion for statefulset. -*/}} -{{- define "minio.statefulset.apiVersion" -}} -{{- if semverCompare "<1.17-0" .Capabilities.KubeVersion.Version -}} -{{- print "apps/v1beta2" -}} -{{- else -}} -{{- print "apps/v1" -}} -{{- end -}} -{{- end -}} - {{/* Determine secret name. */}} {{- define "minio.secretName" -}} -{{- include "minio.fullname" . -}} +{{- include "common.names.fullname" . -}} {{- end -}} -{{/* -Determine service account name for deployment or statefulset. -*/}} -{{- define "minio.serviceAccountName" -}} -{{- (include "minio.fullname" .) | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Determine name for scc role and rolebinding -*/}} -{{- define "minio.sccRoleName" -}} -{{- printf "%s-%s" "scc" (include "minio.fullname" .) | trunc 63 | trimSuffix "-" -}} -{{- end -}} {{/* Properly format optional additional arguments to Minio binary diff --git a/test/minio/1.0.1/templates/_storage.tpl b/test/minio/1.0.1/templates/_storage.tpl deleted file mode 100644 index 062eb2cb7c..0000000000 --- a/test/minio/1.0.1/templates/_storage.tpl +++ /dev/null @@ -1,23 +0,0 @@ -{{/* -Retrieve host path from ix volumes based on dataset name -*/}} -{{- define "retrieveHostPathFromiXVolume" -}} -{{- range $index, $hostPathConfiguration := $.ixVolumes }} -{{- $dsName := base $hostPathConfiguration.hostPath -}} -{{- if eq $.datasetName $dsName -}} -{{- $hostPathConfiguration.hostPath -}} -{{- end -}} -{{- end }} -{{- end -}} - -{{/* -Retrieve host path for minio -*/}} -{{- define "configuredMinioHostPath" -}} -{{- if .Values.minioHostPathEnabled -}} -{{- .Values.minioHostPath -}} -{{- else -}} -{{- $volDict := dict "datasetName" $.Values.minioDataVolume.datasetName "ixVolumes" $.Values.ixVolumes -}} -{{- include "retrieveHostPathFromiXVolume" $volDict -}} -{{- end -}} -{{- end -}} diff --git a/test/minio/1.0.1/templates/secrets.yaml b/test/minio/1.0.1/templates/secrets.yaml index c62e183a35..bfe4f57827 100644 --- a/test/minio/1.0.1/templates/secrets.yaml +++ b/test/minio/1.0.1/templates/secrets.yaml @@ -2,11 +2,7 @@ apiVersion: v1 kind: Secret metadata: name: {{ template "minio.secretName" . }} - labels: - app: {{ template "minio.name" . }} - chart: {{ template "minio.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} + labels: {{ include "common.labels" | nindent 4 }} type: Opaque data: accesskey: {{ if .Values.accessKey }}{{ .Values.accessKey | toString | b64enc | quote }}{{ else }}{{ randAlphaNum 20 | b64enc | quote }}{{ end }} From 8e0915ab5afda20f1b54f59161a62e6bc422f5a0 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 00:19:42 +0500 Subject: [PATCH 29/84] Remove unnecessary extra args function --- test/minio/1.0.1/templates/_helpers.tpl | 10 ---------- test/minio/1.0.1/templates/deployment.yaml | 2 +- test/minio/1.0.1/templates/secrets.yaml | 2 +- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/test/minio/1.0.1/templates/_helpers.tpl b/test/minio/1.0.1/templates/_helpers.tpl index a14570d395..c769c2fb2a 100644 --- a/test/minio/1.0.1/templates/_helpers.tpl +++ b/test/minio/1.0.1/templates/_helpers.tpl @@ -4,13 +4,3 @@ Determine secret name. {{- define "minio.secretName" -}} {{- include "common.names.fullname" . -}} {{- end -}} - - -{{/* -Properly format optional additional arguments to Minio binary -*/}} -{{- define "minio.extraArgs" -}} -{{- range .Values.extraArgs -}} -{{ " " }}{{ . }} -{{- end -}} -{{- end -}} diff --git a/test/minio/1.0.1/templates/deployment.yaml b/test/minio/1.0.1/templates/deployment.yaml index fb33129703..c184498c93 100644 --- a/test/minio/1.0.1/templates/deployment.yaml +++ b/test/minio/1.0.1/templates/deployment.yaml @@ -23,7 +23,7 @@ spec: command: - "/bin/sh" - "-ce" - - "/usr/bin/docker-entrypoint.sh minio server /export {{- template "minio.extraArgs" . }}" + - "/usr/bin/docker-entrypoint.sh minio server /export {{ (.Values.extraArgs | default list) | join " " }}" volumeMounts: - name: export mountPath: /export diff --git a/test/minio/1.0.1/templates/secrets.yaml b/test/minio/1.0.1/templates/secrets.yaml index bfe4f57827..f44495e5e1 100644 --- a/test/minio/1.0.1/templates/secrets.yaml +++ b/test/minio/1.0.1/templates/secrets.yaml @@ -2,7 +2,7 @@ apiVersion: v1 kind: Secret metadata: name: {{ template "minio.secretName" . }} - labels: {{ include "common.labels" | nindent 4 }} + labels: {{ include "common.labels" . | nindent 4 }} type: Opaque data: accesskey: {{ if .Values.accessKey }}{{ .Values.accessKey | toString | b64enc | quote }}{{ else }}{{ randAlphaNum 20 | b64enc | quote }}{{ end }} From c46d6fd790af921dc3df74ea3f990d245df0f7e4 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 01:19:48 +0500 Subject: [PATCH 30/84] Update plex deployment to use library chart --- test/plex/1.0.1/templates/deployment.yaml | 83 +++++++---------------- 1 file changed, 24 insertions(+), 59 deletions(-) diff --git a/test/plex/1.0.1/templates/deployment.yaml b/test/plex/1.0.1/templates/deployment.yaml index 1344cf8f3d..6e74f64090 100644 --- a/test/plex/1.0.1/templates/deployment.yaml +++ b/test/plex/1.0.1/templates/deployment.yaml @@ -1,23 +1,19 @@ apiVersion: apps/v1 kind: Deployment metadata: - name: {{ include "plex.fullname" . }} - labels: - {{- include "plex.labels" . | nindent 4 }} + name: {{ include "common.names.fullname" . }} + labels: {{ include "common.labels" . | nindent 4 }} spec: replicas: 1 revisionHistoryLimit: 3 strategy: type: {{ .Values.strategyType }} selector: - matchLabels: - {{- include "plex.selectorLabels" . | nindent 6 }} + matchLabels: {{ include "common.labels.selectorLabels" . | nindent 6 }} template: metadata: - labels: - {{- include "plex.selectorLabels" . | nindent 8 }} - annotations: - rollme: {{ randAlphaNum 5 | quote }} + labels: {{ include "common.labels.selectorLabels" . | nindent 8 }} + annotations: {{ include "common.annotations" . | nindent 8 }} spec: {{- if .Values.hostNetwork }} hostNetwork: {{ .Values.hostNetwork }} @@ -25,8 +21,7 @@ spec: {{- end }} containers: - name: {{ .Chart.Name }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} + {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} ports: - name: pms protocol: TCP @@ -53,29 +48,16 @@ spec: protocol: UDP containerPort: 32414 env: - - name: TZ - value: "{{ .Values.timezone }}" - # TODO: move this to a secret? - - name: PLEX_CLAIM - value: "{{ .Values.claimToken }}" - # plex env vars - - name: PMS_INTERNAL_ADDRESS - value: http://{{ template "plex.fullname" . }}:32400 - - name: PMS_IMAGE - value: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" - - name: KUBE_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace -# Extra ENV Values supplied by user -{{- range $envVariable := .Values.environmentVariables }} - {{- if and $envVariable.name $envVariable.value }} - - name: {{ $envVariable.name }} - value: {{ $envVariable.value | quote }} - {{- else }} - {{- fail "Please specify name/value for environment variable" }} - {{- end }} -{{- end}} + - name: KUBE_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + {{ $envList := (default list .Values.environmentVariables) }} + {{ $envList = mustAppend $envList (dict "name" "TZ" "value" .Values.timezone) }} + {{ $envList = mustAppend $envList (dict "name" "PLEX_CLAIM" "value" .Values.claimToken) }} + {{ $envList = mustAppend $envList (dict "name" "PMS_INTERNAL_ADDRESS" "value" (printf "http://%s:32400" (include "common.names.fullname" .))) }} + {{ $envList = mustAppend $envList (dict "name" "PMS_IMAGE" "value" (printf "%s:%s" .Values.image.repository .Values.image.tag))}} + {{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) | nindent 12 }} readinessProbe: httpGet: path: /identity @@ -112,28 +94,11 @@ spec: {{- toYaml .Values.gpuConfiguration | nindent 14 }} {{- end }} volumes: - - name: data - {{- if .Values.emptyDirVolumes }} - emptyDir: {} - {{- else }} - hostPath: - path: {{ template "configuredHostPathData" . }} - {{- end }} - - name: config - {{- if .Values.emptyDirVolumes }} - emptyDir: {} - {{- else }} - hostPath: - path: {{ template "configuredHostPathConfig" . }} - {{- end }} - - name: transcode - {{- if .Values.emptyDirVolumes }} - emptyDir: {} - {{- else }} - hostPath: - path: {{ template "configuredHostPathTranscode" . }} - {{- end }} - - name: shared - emptyDir: {} - - name: shared-logs - emptyDir: {} + {{ $emptyDir := .Values.emptyDirVolumes }} + {{ $vols := list }} + {{ $vols = mustAppend $vols (dict "name" "data" "emptyDirVolumes" $emptyDir "hostPathEnabled" .Values.dataHostPathEnabled "pathField" .Values.dataHostPath "datasetName" (.Values.dataVolume | default dict).datasetName ) }} + {{ $vols = mustAppend $vols (dict "name" "config" "emptyDirVolumes" $emptyDir "hostPathEnabled" .Values.configHostPathEnabled "pathField" .Values.configHostPath "datasetName" (.Values.configVolume | default dict).datasetName ) }} + {{ $vols = mustAppend $vols (dict "name" "transcode" "emptyDirVolumes" $emptyDir "hostPathEnabled" .Values.transcodeHostPathEnabled "pathField" .Values.transcodeHostPath "datasetName" (.Values.transcodeVolume | default dict).datasetName ) }} + {{ $vols = mustAppend $vols (dict "name" "shared" "emptyDirVolumes" true "hostPathEnabled" false "pathField" nil "datasetName" nil) }} + {{ $vols = mustAppend $vols (dict "name" "shared-logs" "emptyDirVolumes" true "hostPathEnabled" false "pathField" nil "datasetName" nil) }} + {{ include "common.storage.volumesConfiguration" (dict "ixVolumes" .Values.ixVolumes "volumes" $vols) | nindent 8 }} From 387dd828435f3b4dd77754af92ddca9037b1e8a9 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 01:20:55 +0500 Subject: [PATCH 31/84] Remove storage tpl functions from plex chart --- test/plex/1.0.1/templates/_helpers.tpl | 29 --------------- test/plex/1.0.1/templates/_storage.tpl | 50 -------------------------- 2 files changed, 79 deletions(-) delete mode 100644 test/plex/1.0.1/templates/_storage.tpl diff --git a/test/plex/1.0.1/templates/_helpers.tpl b/test/plex/1.0.1/templates/_helpers.tpl index 18ddff7f7e..5e1791e48e 100644 --- a/test/plex/1.0.1/templates/_helpers.tpl +++ b/test/plex/1.0.1/templates/_helpers.tpl @@ -50,32 +50,3 @@ Selector labels app.kubernetes.io/name: {{ include "plex.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- end -}} - -{{/* -Create the name of the service account to use -*/}} -{{- define "plex.serviceAccountName" -}} -{{- if .Values.serviceAccount.create -}} - {{ default (include "plex.fullname" .) .Values.serviceAccount.name }} -{{- else -}} - {{ default "default" .Values.serviceAccount.name }} -{{- end -}} -{{- end -}} - -{{/* -abstract: | - Joins a list of values into a comma separated string -values: | - test: - - foo - - bar -usage: | - {{ include "joinListWithComma" .Values.test }} -return: | - foo,bar -*/}} - -{{- define "joinListWithComma" -}} -{{- $local := dict "first" true -}} -{{- range $k, $v := . -}}{{- if not $local.first -}},{{- end -}}{{- $v -}}{{- $_ := set $local "first" false -}}{{- end -}} -{{- end -}} \ No newline at end of file diff --git a/test/plex/1.0.1/templates/_storage.tpl b/test/plex/1.0.1/templates/_storage.tpl deleted file mode 100644 index ef34fcb041..0000000000 --- a/test/plex/1.0.1/templates/_storage.tpl +++ /dev/null @@ -1,50 +0,0 @@ -{{/* -Retrieve host path from ix volumes based on dataset name -*/}} -{{- define "retrieveHostPathFromiXVolume" -}} -{{- range $index, $hostPathConfiguration := $.ixVolumes }} -{{- $dsName := base $hostPathConfiguration.hostPath -}} -{{- if eq $.datasetName $dsName -}} -{{- $hostPathConfiguration.hostPath -}} -{{- end -}} -{{- end }} -{{- end -}} - -{{/* -Retrieve host path for transcode -Let's please remove the redundancy -*/}} -{{- define "configuredHostPathTranscode" -}} -{{- if .Values.transcodeHostPathEnabled -}} -{{- .Values.transcodeHostPath -}} -{{- else -}} -{{- $volDict := dict "datasetName" $.Values.transcodeVolume.datasetName "ixVolumes" $.Values.ixVolumes -}} -{{- include "retrieveHostPathFromiXVolume" $volDict -}} -{{- end -}} -{{- end -}} - -{{/* -Retrieve host path for data -Let's please remove the redundancy -*/}} -{{- define "configuredHostPathData" -}} -{{- if .Values.dataHostPathEnabled -}} -{{- .Values.dataHostPath -}} -{{- else -}} -{{- $volDict := dict "datasetName" $.Values.dataVolume.datasetName "ixVolumes" $.Values.ixVolumes -}} -{{- include "retrieveHostPathFromiXVolume" $volDict -}} -{{- end -}} -{{- end -}} - -{{/* -Retrieve host path for transcode -Let's please remove the redundancy -*/}} -{{- define "configuredHostPathConfig" -}} -{{- if .Values.configHostPathEnabled -}} -{{- .Values.configHostPath -}} -{{- else -}} -{{- $volDict := dict "datasetName" $.Values.configVolume.datasetName "ixVolumes" $.Values.ixVolumes -}} -{{- include "retrieveHostPathFromiXVolume" $volDict -}} -{{- end -}} -{{- end -}} From 4b3bad4efca4f1fa12fce0d14cd3bae2aa40b179 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 13:24:53 +0500 Subject: [PATCH 32/84] Update plex chart to use library chart to render services configuration --- test/plex/1.0.1/templates/_helpers.tpl | 52 ---------------------- test/plex/1.0.1/templates/service-tcp.yaml | 51 +++++++-------------- test/plex/1.0.1/templates/service-udp.yaml | 40 ++++------------- 3 files changed, 25 insertions(+), 118 deletions(-) delete mode 100644 test/plex/1.0.1/templates/_helpers.tpl diff --git a/test/plex/1.0.1/templates/_helpers.tpl b/test/plex/1.0.1/templates/_helpers.tpl deleted file mode 100644 index 5e1791e48e..0000000000 --- a/test/plex/1.0.1/templates/_helpers.tpl +++ /dev/null @@ -1,52 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "plex.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "plex.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "plex.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Common labels -*/}} -{{- define "plex.labels" -}} -helm.sh/chart: {{ include "plex.chart" . }} -{{ include "plex.selectorLabels" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- end -}} - -{{/* -Selector labels -*/}} -{{- define "plex.selectorLabels" -}} -app.kubernetes.io/name: {{ include "plex.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end -}} diff --git a/test/plex/1.0.1/templates/service-tcp.yaml b/test/plex/1.0.1/templates/service-tcp.yaml index 48a69eef18..e6ac6f38a2 100644 --- a/test/plex/1.0.1/templates/service-tcp.yaml +++ b/test/plex/1.0.1/templates/service-tcp.yaml @@ -1,35 +1,16 @@ -apiVersion: v1 -kind: Service -metadata: - {{- if .Values.hostNetwork }} - name: {{ include "plex.fullname" . }}-tcp-cluster-ip - {{- else }} - name: {{ include "plex.fullname" . }}-tcp - {{- end }} - labels: - {{- include "plex.labels" . | nindent 4 }} -spec: - {{- if .Values.hostNetwork }} - type: ClusterIP - {{- else }} - type: NodePort - {{- end }} - ports: - - name: pms - port: {{ .Values.plexServiceTCP.port }} - protocol: TCP - targetPort: pms - {{- if eq .Values.hostNetwork false }} - nodePort: {{.Values.plexServiceTCP.port}} - {{- end }} - - name: http - port: 80 - targetPort: pms - - name: https - port: 443 - targetPort: pms - - name: plex-dlna - port: 1900 - targetPort: plex-dlna - selector: - {{- include "plex.selectorLabels" . | nindent 4 }} +{{ $svc := .Values.plexServiceTCP }} +{{ $ports := list }} +{{ $ports = mustAppend $ports (dict "name" "pms" "port" $svc.port "nodePort" $svc.port "targetPort" "pms") }} +{{ $ports = mustAppend $ports (dict "name" "http" "port" 80 "targetPort" "pms") }} +{{ $ports = mustAppend $ports (dict "name" "https" "port" 443 "targetPort" "pms") }} +{{ $ports = mustAppend $ports (dict "name" "plex-dlna" "port" 1900 "targetPort" "plex-dlna") }} +{{ $params := . }} +{{ $_ := set $params "service" (dict "ports" $ports ) }} +{{ if .Values.hostNetwork }} +{{ $_ := set $params.service "nameSuffix" "tcp-cluster-ip" }} +{{ $_1 := set $params.service "type" "ClusterIP" }} +{{ else }} +{{ $_ := set $params.service "nameSuffix" "tcp" }} +{{ $_1 := set $params.service "type" "NodePort" }} +{{ end }} +{{ include "common.classes.service" $params }} diff --git a/test/plex/1.0.1/templates/service-udp.yaml b/test/plex/1.0.1/templates/service-udp.yaml index e13ae5658a..df33f025a0 100644 --- a/test/plex/1.0.1/templates/service-udp.yaml +++ b/test/plex/1.0.1/templates/service-udp.yaml @@ -1,31 +1,9 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ include "plex.fullname" . }}-udp - labels: - {{- include "plex.labels" . | nindent 4 }} -spec: - type: ClusterIP - ports: - - name: plex-dlna-udp - port: 1900 - protocol: UDP - targetPort: plex-dlna-udp - - name: plex-gdm1 - port: 32410 - protocol: UDP - targetPort: plex-gdm1 - - name: plex-gdm2 - port: 32412 - protocol: UDP - targetPort: plex-gdm2 - - name: plex-gdm3 - port: 32413 - protocol: UDP - targetPort: plex-gdm3 - - name: plex-gdm4 - port: 32414 - protocol: UDP - targetPort: plex-gdm4 - selector: - {{- include "plex.selectorLabels" . | nindent 4 }} +{{ $ports := list }} +{{ $ports = mustAppend $ports (dict "name" "plex-dlna-udp" "port" 1900 "protocol" "UDP" "targetPort" "plex-dlna-udp") }} +{{ $ports = mustAppend $ports (dict "name" "plex-gdm1" "port" 32410 "protocol" "UDP" "targetPort" "plex-gdm1") }} +{{ $ports = mustAppend $ports (dict "name" "plex-gdm2" "port" 32412 "protocol" "UDP" "targetPort" "plex-gdm2") }} +{{ $ports = mustAppend $ports (dict "name" "plex-gdm3" "port" 32413 "protocol" "UDP" "targetPort" "plex-gdm3") }} +{{ $ports = mustAppend $ports (dict "name" "plex-gdm4" "port" 32414 "protocol" "UDP" "targetPort" "plex-gdm4") }} +{{ $params := . }} +{{ $_ := set $params "service" (dict "type" "ClusterIP" "ports" $ports "nameSuffix" "udp" ) }} +{{ include "common.classes.service" $params }} From f1c9917612c5ad3aaaa23aeecfdf065afe7d4c3a Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 13:31:12 +0500 Subject: [PATCH 33/84] Render nextcloud postgres service using library chart --- .../1.1.0/templates/postgres-service.yaml | 23 ++++--------------- .../1.1.0/templates/serviceaccount.yaml | 8 ++----- 2 files changed, 7 insertions(+), 24 deletions(-) diff --git a/test/nextcloud/1.1.0/templates/postgres-service.yaml b/test/nextcloud/1.1.0/templates/postgres-service.yaml index 4d2837e4d5..7e895c9c4b 100644 --- a/test/nextcloud/1.1.0/templates/postgres-service.yaml +++ b/test/nextcloud/1.1.0/templates/postgres-service.yaml @@ -1,18 +1,5 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ template "nextcloud.fullname" . }}-postgres - labels: - app.kubernetes.io/name: {{ include "nextcloud.name" . }}-postgres - helm.sh/chart: {{ include "nextcloud.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - app.kubernetes.io/component: app -spec: - type: ClusterIP - ports: - - port: 5432 - protocol: TCP - name: postgres-tcp - selector: - {{- include "nextcloud.postgres.selectorLabels" . | nindent 4 }} +{{ $ports := list }} +{{ $ports = mustAppend $ports (dict "name" "postgres-tcp" "port" 5432 "targetPort" 5432) }} +{{ $params := . }} +{{ $_ := set $params "service" (dict "type" "ClusterIP" "ports" $ports "nameSuffix" "postgres" ) }} +{{ include "common.classes.service" $params }} diff --git a/test/nextcloud/1.1.0/templates/serviceaccount.yaml b/test/nextcloud/1.1.0/templates/serviceaccount.yaml index c25bd439fd..a5b1f453b5 100644 --- a/test/nextcloud/1.1.0/templates/serviceaccount.yaml +++ b/test/nextcloud/1.1.0/templates/serviceaccount.yaml @@ -1,8 +1,4 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: "{{ template "nextcloud.serviceAccountName" . }}" - namespace: {{ .Release.Namespace }} +{{- include "common.serviceaccount" . -}} --- @@ -12,7 +8,7 @@ metadata: name: "{{ .Release.Name }}-service-account-role-binding" subjects: - kind: ServiceAccount - name: "{{ template "nextcloud.serviceAccountName" . }}" + name: "{{ template "common.names.serviceAccountName" . }}" namespace: {{ .Release.Namespace }} roleRef: kind: Role From 0e1ee81f363ab418a3ccc0ba542fcb68a4d89092 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 13:51:36 +0500 Subject: [PATCH 34/84] Add name suffix for chart releases having more then 1 deployments --- library/common/templates/classes/_service.tpl | 3 -- .../common/templates/lib/chart/_labels.tpl | 2 +- library/common/templates/lib/chart/_names.tpl | 33 ++++++++++++++++--- 3 files changed, 29 insertions(+), 9 deletions(-) diff --git a/library/common/templates/classes/_service.tpl b/library/common/templates/classes/_service.tpl index d563e1d0d5..d56b73e150 100644 --- a/library/common/templates/classes/_service.tpl +++ b/library/common/templates/classes/_service.tpl @@ -5,9 +5,6 @@ within the common library. {{- define "common.classes.service" -}} {{- $values := .service -}} {{- $serviceName := include "common.names.fullname" . -}} -{{- if hasKey $values "nameSuffix" -}} - {{- $serviceName = printf "%v-%v" $serviceName $values.nameSuffix -}} -{{ end -}} {{- $svcType := $values.type | default "" -}} apiVersion: v1 kind: Service diff --git a/library/common/templates/lib/chart/_labels.tpl b/library/common/templates/lib/chart/_labels.tpl index 10981d9b5a..7415a9daa0 100644 --- a/library/common/templates/lib/chart/_labels.tpl +++ b/library/common/templates/lib/chart/_labels.tpl @@ -15,5 +15,5 @@ Selector labels shared across objects. */}} {{- define "common.labels.selectorLabels" -}} app.kubernetes.io/name: {{ include "common.names.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} +app.kubernetes.io/instance: {{ include "common.names.releaseName" . }} {{- end }} diff --git a/library/common/templates/lib/chart/_names.tpl b/library/common/templates/lib/chart/_names.tpl index 68504047cc..707f24563e 100644 --- a/library/common/templates/lib/chart/_names.tpl +++ b/library/common/templates/lib/chart/_names.tpl @@ -2,7 +2,12 @@ Expand the name of the chart. */}} {{- define "common.names.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- $values := . -}} +{{- $name := (default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-") }} +{{- if hasKey $values "nameSuffix" -}} + {{- $name = (printf "%v-%v" $name $values.nameSuffix) -}} +{{ end -}} +{{- print $name -}} {{- end }} {{/* @@ -11,12 +16,16 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this If release name contains chart name it will be used as a full name. */}} {{- define "common.names.fullname" -}} -{{- if .Values.fullnameOverride }} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- $values := . -}} +{{- if $values.fullnameOverride }} +{{- $values.fullnameOverride | trunc 63 | trimSuffix "-" }} {{- else }} -{{- $name := default .Chart.Name .Values.nameOverride }} +{{- $name := default .Chart.Name $values.nameOverride }} +{{- if hasKey $values "nameSuffix" -}} + {{- $name = (printf "%v-%v" $name $values.nameSuffix) -}} +{{ end -}} {{- if contains $name .Release.Name }} -{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- $name = (.Release.Name | trunc 63 | trimSuffix "-") }} {{- else }} {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} {{- end }} @@ -36,3 +45,17 @@ Determine service account name for deployment or statefulset. {{- define "common.names.serviceAccountName" -}} {{- (include "common.names.fullname" .) | replace "+" "_" | trunc 63 | trimSuffix "-" -}} {{- end -}} + + +{{/* +Determine release name +This will add a suffix to the release name if nameSuffix is set +*/}} +{{- define "common.names.releaseName" -}} +{{- $values := . -}} +{{- if hasKey $values "nameSuffix" -}} + {{- printf "%v-%v" .Release.Name $values.nameSuffix -}} +{{- else -}} + {{- print .Release.Name -}} +{{ end -}} +{{- end -}} From 7e1c9080d1dcb8292a0eff8b6978a0d75cba8d18 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 14:13:59 +0500 Subject: [PATCH 35/84] Properly specify namesuffix for postgres-service --- test/nextcloud/1.1.0/templates/postgres-service.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/nextcloud/1.1.0/templates/postgres-service.yaml b/test/nextcloud/1.1.0/templates/postgres-service.yaml index 7e895c9c4b..4dc1661f6a 100644 --- a/test/nextcloud/1.1.0/templates/postgres-service.yaml +++ b/test/nextcloud/1.1.0/templates/postgres-service.yaml @@ -1,5 +1,6 @@ {{ $ports := list }} {{ $ports = mustAppend $ports (dict "name" "postgres-tcp" "port" 5432 "targetPort" 5432) }} {{ $params := . }} -{{ $_ := set $params "service" (dict "type" "ClusterIP" "ports" $ports "nameSuffix" "postgres" ) }} +{{ $_ := set $params "service" (dict "type" "ClusterIP" "ports" $ports ) }} +{{ $_1 := set $params "nameSuffix" "postgres" }} {{ include "common.classes.service" $params }} From 2733aab5c53667b8edf111a0150affd4e6346952 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 14:23:26 +0500 Subject: [PATCH 36/84] Update postgres deployment to use library chart --- .../1.1.0/templates/postgres-deployment.yaml | 55 ++++++------------- 1 file changed, 16 insertions(+), 39 deletions(-) diff --git a/test/nextcloud/1.1.0/templates/postgres-deployment.yaml b/test/nextcloud/1.1.0/templates/postgres-deployment.yaml index 47ce936339..2b1699f8f4 100644 --- a/test/nextcloud/1.1.0/templates/postgres-deployment.yaml +++ b/test/nextcloud/1.1.0/templates/postgres-deployment.yaml @@ -1,43 +1,30 @@ -apiVersion: apps/v1 +{{ $values := . }} +{{ $_ := set $values "nameSuffix" "postgres" }} +apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }} kind: Deployment metadata: - name: {{ template "nextcloud.fullname" . }}-postgres - labels: - helm.sh/chart: {{ include "nextcloud.chart" . }} - {{- include "nextcloud.postgres.selectorLabels" . | nindent 4 }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - app.kubernetes.io/component: database + name: {{ template "common.names.fullname" $values }} + labels: {{ include "common.labels.selectorLabels" $values | nindent 4 }} spec: replicas: 1 strategy: type: {{ .Values.nextcloud.strategy }} selector: - matchLabels: - {{- include "nextcloud.postgres.selectorLabels" . | nindent 6 }} - app.kubernetes.io/component: database + matchLabels: {{- include "common.labels.selectorLabels" $values | nindent 6 }} template: metadata: - labels: - {{- include "nextcloud.postgres.selectorLabels" . | nindent 8 }} - app.kubernetes.io/component: database - annotations: - rollme: {{ randAlphaNum 5 | quote }} + labels: {{- include "common.labels.selectorLabels" $values | nindent 8 }} + annotations: {{- include "common.annotations" $values | nindent 8 }} spec: containers: - name: {{ .Chart.Name }}-postgres image: {{ template "postgres.imageName" . }} imagePullPolicy: {{ .Values.image.pullPolicy }} env: - - name: POSTGRES_USER - valueFrom: - secretKeyRef: - name: db-details - key: db-user - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: db-details - key: db-password + {{ $envList := list }} + {{ $envList = mustAppend $envList (dict "name" "POSTGRES_USER" "valueFromSecret" true "secretName" "db-details" "secretKey" "db-user") }} + {{ $envList = mustAppend $envList (dict "name" "POSTGRES_PASSWORD" "valueFromSecret" true "secretName" "db-details" "secretKey" "db-password") }} + {{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) | nindent 10 }} volumeMounts: - name: postgres-data mountPath: /var/lib/postgresql/data @@ -48,17 +35,7 @@ spec: containerPort: 5432 protocol: TCP volumes: - - name: postgres-data - {{- if ne (include "configuredPostgresHostPath" .) "" }} - hostPath: - path: {{ template "configuredPostgresHostPath" . }} - {{- else }} - emptyDir: {} - {{- end }} - - name: postgres-backup - {{- if ne (include "configuredBackupPostgresHostPath" .) "" }} - hostPath: - path: {{ template "configuredBackupPostgresHostPath" . }} - {{- else }} - emptyDir: {} - {{- end }} + {{ $vols := list }} + {{ $vols = mustAppend $vols (dict "name" "postgres-data" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" false "pathField" nil "datasetName" (.Values.postgresDataVolume | default dict).datasetName ) }} + {{ $vols = mustAppend $vols (dict "name" "postgres-backup" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" false "pathField" nil "datasetName" (.Values.postgresBackupVolume | default dict).datasetName ) }} + {{ include "common.storage.volumesConfiguration" (dict "ixVolumes" .Values.ixVolumes "volumes" $vols) | nindent 8 }} From e659fc1d175d82d29d5ff9000ccfb50a45b77e74 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 14:33:05 +0500 Subject: [PATCH 37/84] Update postgres backup configuration to use library chart --- test/nextcloud/1.1.0/templates/_postgres.tpl | 29 +++++++++++---- .../1.1.0/templates/backup-postgres-hook.yaml | 36 ++++++------------- .../templates/nuke-deployments-hook.yaml | 6 ++-- .../1.1.0/templates/postgres-deployment.yaml | 12 ++----- 4 files changed, 39 insertions(+), 44 deletions(-) diff --git a/test/nextcloud/1.1.0/templates/_postgres.tpl b/test/nextcloud/1.1.0/templates/_postgres.tpl index 038a680c80..e9244da240 100644 --- a/test/nextcloud/1.1.0/templates/_postgres.tpl +++ b/test/nextcloud/1.1.0/templates/_postgres.tpl @@ -5,18 +5,12 @@ Get Nextloud Postgres Database Name {{- print "nextcloud" -}} {{- end -}} -{{/* -Postgres Selector labels -*/}} -{{- define "nextcloud.postgres.selectorLabels" -}} -app.kubernetes.io/name: {{ include "nextcloud.name" . }}-postgres -app.kubernetes.io/instance: {{ .Release.Name }}-postgres -{{- end }} {{- define "postgres.imageName" -}} {{- print "postgres:13.1" -}} {{- end -}} + {{/* Retrieve postgres backup name This will return a unique name based on revision and chart numbers specified. @@ -26,3 +20,24 @@ This will return a unique name based on revision and chart numbers specified. {{- printf "postgres-backup-from-%s-to-%s-revision-%d" $upgradeDict.oldChartVersion $upgradeDict.newChartVersion (int64 $upgradeDict.preUpgradeRevision) -}} {{- end }} + +{{/* +Retrieve postgres credentials for environment variables configuration +*/}} +{{- define "postgres.envVariableConfiguration" -}} +{{ $envList := list }} +{{ $envList = mustAppend $envList (dict "name" "POSTGRES_USER" "valueFromSecret" true "secretName" "db-details" "secretKey" "db-user") }} +{{ $envList = mustAppend $envList (dict "name" "POSTGRES_PASSWORD" "valueFromSecret" true "secretName" "db-details" "secretKey" "db-password") }} +{{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) }} +{{- end -}} + + +{{/* +Retrieve postgres volume configuration +*/}} +{{- define "postgres.volumeConfiguration" -}} +{{ $vols := list }} +{{ $vols = mustAppend $vols (dict "name" "postgres-data" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" false "pathField" nil "datasetName" (.Values.postgresDataVolume | default dict).datasetName ) }} +{{ $vols = mustAppend $vols (dict "name" "postgres-backup" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" false "pathField" nil "datasetName" (.Values.postgresBackupVolume | default dict).datasetName ) }} +{{ include "common.storage.volumesConfiguration" (dict "ixVolumes" .Values.ixVolumes "volumes" $vols) }} +{{- end -}} diff --git a/test/nextcloud/1.1.0/templates/backup-postgres-hook.yaml b/test/nextcloud/1.1.0/templates/backup-postgres-hook.yaml index 3f6c6dc366..2286116f6b 100644 --- a/test/nextcloud/1.1.0/templates/backup-postgres-hook.yaml +++ b/test/nextcloud/1.1.0/templates/backup-postgres-hook.yaml @@ -1,4 +1,6 @@ {{- if .Values.ixChartContext.isUpgrade -}} +{{ $values := . }} +{{ $_ := set $values "nameSuffix" "postgres" }} apiVersion: batch/v1 kind: Job metadata: @@ -14,24 +16,14 @@ spec: name: "pre-upgrade-hook2" spec: restartPolicy: Never - serviceAccountName: "{{ template "nextcloud.serviceAccountName" . }}" + serviceAccountName: "{{ template "common.names.serviceAccountName" . }}" containers: - name: {{ .Chart.Name }}-postgres-backup image: {{ template "postgres.imageName" . }} imagePullPolicy: {{ .Values.image.pullPolicy }} - env: - - name: POSTGRES_USER - valueFrom: - secretKeyRef: - name: db-details - key: db-user - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: db-details - key: db-password - - name: BACKUP_NAME - value: {{ template "postgres.backupName" . }} + env: {{ include "postgres.envVariableConfiguration" $values | nindent 10 }} + - name: BACKUP_NAME + value: {{ template "postgres.backupName" . }} volumeMounts: - name: postgres-data mountPath: /var/lib/postgresql/data @@ -43,15 +35,9 @@ spec: subPath: entrypoint.sh command: - "/bin/backup_entrypoint.sh" - volumes: - - name: postgres-data - hostPath: - path: {{ template "configuredPostgresHostPath" . }} - - name: postgres-backup - hostPath: - path: {{ template "configuredBackupPostgresHostPath" . }} - - name: backup-script-configmap - configMap: - defaultMode: 0700 - name: "postgres-backup-hook-config-map" + volumes: {{ include "postgres.volumeConfiguration" $values | nindent 8 }} + - name: backup-script-configmap + configMap: + defaultMode: 0700 + name: "postgres-backup-hook-config-map" {{- end -}} diff --git a/test/nextcloud/1.1.0/templates/nuke-deployments-hook.yaml b/test/nextcloud/1.1.0/templates/nuke-deployments-hook.yaml index 7307db6c1d..b1e0ef1768 100644 --- a/test/nextcloud/1.1.0/templates/nuke-deployments-hook.yaml +++ b/test/nextcloud/1.1.0/templates/nuke-deployments-hook.yaml @@ -1,4 +1,6 @@ {{- if .Values.ixChartContext.isUpgrade -}} +{{ $values := . }} +{{ $_ := set $values "nameSuffix" "postgres" }} apiVersion: batch/v1 kind: Job metadata: @@ -14,9 +16,9 @@ spec: name: "pre-upgrade-hook1" spec: restartPolicy: Never - serviceAccountName: "{{ template "nextcloud.serviceAccountName" . }}" + serviceAccountName: "{{ template "common.names.serviceAccountName" . }}" containers: - name: kubectl image: "bitnami/kubectl:1.19" - command: ["kubectl", "delete" , "deployment", "{{ template "nextcloud.fullname" . }}", "{{ template "nextcloud.fullname" . }}-postgres"] + command: ["kubectl", "delete" , "deployment", "{{ template "common.names.fullname" . }}", "{{ template "common.names.fullname" $values }}"] {{- end -}} diff --git a/test/nextcloud/1.1.0/templates/postgres-deployment.yaml b/test/nextcloud/1.1.0/templates/postgres-deployment.yaml index 2b1699f8f4..0c6e480c3a 100644 --- a/test/nextcloud/1.1.0/templates/postgres-deployment.yaml +++ b/test/nextcloud/1.1.0/templates/postgres-deployment.yaml @@ -20,11 +20,7 @@ spec: - name: {{ .Chart.Name }}-postgres image: {{ template "postgres.imageName" . }} imagePullPolicy: {{ .Values.image.pullPolicy }} - env: - {{ $envList := list }} - {{ $envList = mustAppend $envList (dict "name" "POSTGRES_USER" "valueFromSecret" true "secretName" "db-details" "secretKey" "db-user") }} - {{ $envList = mustAppend $envList (dict "name" "POSTGRES_PASSWORD" "valueFromSecret" true "secretName" "db-details" "secretKey" "db-password") }} - {{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) | nindent 10 }} + env: {{ include "postgres.envVariableConfiguration" $values | nindent 10 }} volumeMounts: - name: postgres-data mountPath: /var/lib/postgresql/data @@ -34,8 +30,4 @@ spec: - name: postgres-tcp containerPort: 5432 protocol: TCP - volumes: - {{ $vols := list }} - {{ $vols = mustAppend $vols (dict "name" "postgres-data" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" false "pathField" nil "datasetName" (.Values.postgresDataVolume | default dict).datasetName ) }} - {{ $vols = mustAppend $vols (dict "name" "postgres-backup" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" false "pathField" nil "datasetName" (.Values.postgresBackupVolume | default dict).datasetName ) }} - {{ include "common.storage.volumesConfiguration" (dict "ixVolumes" .Values.ixVolumes "volumes" $vols) | nindent 8 }} + volumes: {{ include "postgres.volumeConfiguration" $values | nindent 8 }} From e7f4adc0397819d583436522da33c688f0faf8c3 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 15:31:08 +0500 Subject: [PATCH 38/84] Don't use a common name for service param --- library/common/templates/classes/_service.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/common/templates/classes/_service.tpl b/library/common/templates/classes/_service.tpl index d56b73e150..d9076a6fa7 100644 --- a/library/common/templates/classes/_service.tpl +++ b/library/common/templates/classes/_service.tpl @@ -3,7 +3,7 @@ This template serves as a blueprint for all Service objects that are created within the common library. */}} {{- define "common.classes.service" -}} -{{- $values := .service -}} +{{- $values := .commonService -}} {{- $serviceName := include "common.names.fullname" . -}} {{- $svcType := $values.type | default "" -}} apiVersion: v1 From b56fad03751b1b8697ba1b0c2b70a0581e296905 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 15:33:29 +0500 Subject: [PATCH 39/84] Update ipfs/nextcloud/minio/plex charts service variable --- test/ipfs/1.0.1/templates/service.yaml | 2 +- test/minio/1.0.1/templates/service.yaml | 2 +- test/nextcloud/1.1.0/templates/postgres-service.yaml | 2 +- test/plex/1.0.1/templates/service-tcp.yaml | 10 +++++----- test/plex/1.0.1/templates/service-udp.yaml | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/test/ipfs/1.0.1/templates/service.yaml b/test/ipfs/1.0.1/templates/service.yaml index e9ec57d84c..4cc9718639 100644 --- a/test/ipfs/1.0.1/templates/service.yaml +++ b/test/ipfs/1.0.1/templates/service.yaml @@ -4,5 +4,5 @@ {{ $ports = mustAppend $ports (dict "name" "api" "port" $svc.apiPort "nodePort" $svc.apiPort "targetPort" 9501) }} {{ $ports = mustAppend $ports (dict "name" "gateway" "port" $svc.gatewayPort "nodePort" $svc.gatewayPort "targetPort" 9880) }} {{ $params := . }} -{{ $_ := set $params "service" (dict "type" "NodePort" "ports" $ports ) }} +{{ $_ := set $params "commonService" (dict "type" "NodePort" "ports" $ports ) }} {{ include "common.classes.service" $params }} diff --git a/test/minio/1.0.1/templates/service.yaml b/test/minio/1.0.1/templates/service.yaml index a02cbfb06a..e27c62a9e7 100644 --- a/test/minio/1.0.1/templates/service.yaml +++ b/test/minio/1.0.1/templates/service.yaml @@ -2,5 +2,5 @@ {{ $ports := list }} {{ $ports = mustAppend $ports (dict "name" "http" "port" $svc.nodePort "nodePort" $svc.nodePort "targetPort" 9000) }} {{ $params := . }} -{{ $_ := set $params "service" (dict "type" "NodePort" "ports" $ports ) }} +{{ $_ := set $params "commonService" (dict "type" "NodePort" "ports" $ports ) }} {{ include "common.classes.service" $params }} diff --git a/test/nextcloud/1.1.0/templates/postgres-service.yaml b/test/nextcloud/1.1.0/templates/postgres-service.yaml index 4dc1661f6a..b09fccafde 100644 --- a/test/nextcloud/1.1.0/templates/postgres-service.yaml +++ b/test/nextcloud/1.1.0/templates/postgres-service.yaml @@ -1,6 +1,6 @@ {{ $ports := list }} {{ $ports = mustAppend $ports (dict "name" "postgres-tcp" "port" 5432 "targetPort" 5432) }} {{ $params := . }} -{{ $_ := set $params "service" (dict "type" "ClusterIP" "ports" $ports ) }} +{{ $_ := set $params "commonService" (dict "type" "ClusterIP" "ports" $ports ) }} {{ $_1 := set $params "nameSuffix" "postgres" }} {{ include "common.classes.service" $params }} diff --git a/test/plex/1.0.1/templates/service-tcp.yaml b/test/plex/1.0.1/templates/service-tcp.yaml index e6ac6f38a2..4fec88260b 100644 --- a/test/plex/1.0.1/templates/service-tcp.yaml +++ b/test/plex/1.0.1/templates/service-tcp.yaml @@ -5,12 +5,12 @@ {{ $ports = mustAppend $ports (dict "name" "https" "port" 443 "targetPort" "pms") }} {{ $ports = mustAppend $ports (dict "name" "plex-dlna" "port" 1900 "targetPort" "plex-dlna") }} {{ $params := . }} -{{ $_ := set $params "service" (dict "ports" $ports ) }} +{{ $_ := set $params "commonService" (dict "ports" $ports ) }} {{ if .Values.hostNetwork }} -{{ $_ := set $params.service "nameSuffix" "tcp-cluster-ip" }} -{{ $_1 := set $params.service "type" "ClusterIP" }} +{{ $_ := set $params.commonService "nameSuffix" "tcp-cluster-ip" }} +{{ $_1 := set $params.commonService "type" "ClusterIP" }} {{ else }} -{{ $_ := set $params.service "nameSuffix" "tcp" }} -{{ $_1 := set $params.service "type" "NodePort" }} +{{ $_ := set $params.commonService "nameSuffix" "tcp" }} +{{ $_1 := set $params.commonService "type" "NodePort" }} {{ end }} {{ include "common.classes.service" $params }} diff --git a/test/plex/1.0.1/templates/service-udp.yaml b/test/plex/1.0.1/templates/service-udp.yaml index df33f025a0..5a84addc99 100644 --- a/test/plex/1.0.1/templates/service-udp.yaml +++ b/test/plex/1.0.1/templates/service-udp.yaml @@ -5,5 +5,5 @@ {{ $ports = mustAppend $ports (dict "name" "plex-gdm3" "port" 32413 "protocol" "UDP" "targetPort" "plex-gdm3") }} {{ $ports = mustAppend $ports (dict "name" "plex-gdm4" "port" 32414 "protocol" "UDP" "targetPort" "plex-gdm4") }} {{ $params := . }} -{{ $_ := set $params "service" (dict "type" "ClusterIP" "ports" $ports "nameSuffix" "udp" ) }} +{{ $_ := set $params "commonService" (dict "type" "ClusterIP" "ports" $ports "nameSuffix" "udp" ) }} {{ include "common.classes.service" $params }} From 0651c9fcabef0b9dbdda81e49e601d7bb8d8e095 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 15:34:46 +0500 Subject: [PATCH 40/84] Update nextcloud service to use library chart --- test/nextcloud/1.1.0/templates/service.yaml | 26 +++++---------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/test/nextcloud/1.1.0/templates/service.yaml b/test/nextcloud/1.1.0/templates/service.yaml index 3e2287d196..ead1523381 100644 --- a/test/nextcloud/1.1.0/templates/service.yaml +++ b/test/nextcloud/1.1.0/templates/service.yaml @@ -1,20 +1,6 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ template "nextcloud.fullname" . }} - labels: - app.kubernetes.io/name: {{ include "nextcloud.name" . }} - helm.sh/chart: {{ include "nextcloud.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - app.kubernetes.io/component: app -spec: - type: NodePort - ports: - - port: 80 - targetPort: http - protocol: TCP - name: http - nodePort: {{ default "" .Values.service.nodePort}} - selector: - {{- include "nextcloud.selectorLabels" . | nindent 4 }} +{{ $svc := .Values.service }} +{{ $ports := list }} +{{ $ports = mustAppend $ports (dict "name" "http" "port" 80 "nodePort" $svc.nodePort) }} +{{ $params := . }} +{{ $_ := set $params "commonService" (dict "type" "NodePort" "ports" $ports ) }} +{{ include "common.classes.service" $params }} From e88f516fb45e3006969f35340661d562251f5b16 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sat, 30 Jan 2021 16:10:28 +0500 Subject: [PATCH 41/84] Update nextcloud deployment to use library chart --- .../nextcloud/1.1.0/templates/deployment.yaml | 91 +++++-------------- test/nextcloud/1.1.0/templates/secrets.yaml | 8 +- 2 files changed, 26 insertions(+), 73 deletions(-) diff --git a/test/nextcloud/1.1.0/templates/deployment.yaml b/test/nextcloud/1.1.0/templates/deployment.yaml index a4cfd7c2d7..77270a55f1 100644 --- a/test/nextcloud/1.1.0/templates/deployment.yaml +++ b/test/nextcloud/1.1.0/templates/deployment.yaml @@ -1,79 +1,40 @@ -apiVersion: apps/v1 +{{ $postgres_values := . }} +{{ $_ := set $postgres_values "nameSuffix" "postgres" }} +apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }} kind: Deployment metadata: - name: {{ template "nextcloud.fullname" . }} - labels: - app.kubernetes.io/name: {{ include "nextcloud.name" . }} - helm.sh/chart: {{ include "nextcloud.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} - app.kubernetes.io/component: app - {{- if .Values.deploymentAnnotations }} - annotations: -{{ toYaml .Values.deploymentAnnotations | indent 4 }} - {{- end }} + name: {{ template "common.names.fullname" . }} + labels: {{ include "common.labels" . | nindent 4 }} + annotations: {{ include "common.annotations" . | nindent 4 }} spec: replicas: 1 strategy: type: {{ .Values.nextcloud.strategy }} selector: - matchLabels: - app.kubernetes.io/name: {{ include "nextcloud.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/component: app + matchLabels: {{ include "common.labels.selectorLabels" . | nindent 6 }} template: metadata: - labels: - app.kubernetes.io/name: {{ include "nextcloud.name" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/component: app - annotations: - rollme: {{ randAlphaNum 5 | quote }} + labels: {{ include "common.labels.selectorLabels" . | nindent 8 }} + annotations: {{ include "common.annotations" . | nindent 8 }} spec: - {{- if .Values.image.pullSecrets }} - imagePullSecrets: - {{- range .Values.image.pullSecrets }} - - name: {{ . }} - {{- end}} - {{- end }} initContainers: - name: init-postgresdb image: {{ template "postgres.imageName" . }} - command: ['sh', '-c', "until pg_isready -h {{ template "nextcloud.fullname" . }}-postgres; do echo waiting for postgres; sleep 2; done"] + command: ['sh', '-c', "until pg_isready -h {{ template "common.names.fullname" $postgres_values }}; do echo waiting for postgres; sleep 2; done"] imagePullPolicy: {{ .Values.image.pullPolicy }} containers: - name: {{ .Chart.Name }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - env: - - name: POSTGRES_HOST - value: {{ template "nextcloud.fullname" . }}-postgres:5432 - - name: POSTGRES_DB - value: {{ template "postgres.DatabaseName" . }} - - name: POSTGRES_USER - valueFrom: - secretKeyRef: - name: db-details - key: db-user - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: db-details - key: db-password - - name: NEXTCLOUD_ADMIN_USER - valueFrom: - secretKeyRef: - name: {{ template "nextcloud.fullname" . }} - key: nextcloud-username - - name: NEXTCLOUD_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - name: {{ template "nextcloud.fullname" . }} - key: nextcloud-password - - name: NEXTCLOUD_TRUSTED_DOMAINS - value: {{ .Values.nextcloud.host }} - - name: NEXTCLOUD_DATA_DIR - value: {{ .Values.nextcloud.datadir | quote }} + {{ include "common.containers.imageConfig" .Values.image | nindent 8 }} + env: {{ include "postgres.envVariableConfiguration" $postgres_values | nindent 10 }} + {{ $envList := list }} + {{ $secretName := (include "common.names.fullname" .) }} + {{ $envList = mustAppend $envList (dict "name" "POSTGRES_HOST" "value" (printf "%s:5432" (include "common.names.fullname" $postgres_values))) }} + {{ $envList = mustAppend $envList (dict "name" "POSTGRES_DB" "value" (include "postgres.DatabaseName" .)) }} + {{ $envList = mustAppend $envList (dict "name" "NEXTCLOUD_DATA_DIR" "value" .Values.nextcloud.datadir) }} + {{ $envList = mustAppend $envList (dict "name" "NEXTCLOUD_TRUSTED_DOMAINS" "value" .Values.nextcloud.host) }} + {{ $envList = mustAppend $envList (dict "name" "NEXTCLOUD_ADMIN_USER" "valueFromSecret" true "secretName" $secretName "secretKey" "nextcloud-username") }} + {{ $envList = mustAppend $envList (dict "name" "NEXTCLOUD_ADMIN_PASSWORD" "valueFromSecret" true "secretName" $secretName "secretKey" "nextcloud-password") }} + {{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) | nindent 10 }} ports: - name: http containerPort: 80 @@ -101,13 +62,9 @@ spec: mountPath: /var/www/html/themes subPath: "themes" volumes: - - name: nextcloud-data - {{- if ne (include "configuredHostPath" .) "" }} - hostPath: - path: {{ template "configuredHostPath" . }} - {{- else }} - emptyDir: {} - {{- end }} + {{ $vols := list }} + {{ $vols = mustAppend $vols (dict "name" "nextcloud-data" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" .Values.nextcloudDataHostPathEnabled "pathField" .Values.nextcloudHostPath "datasetName" (.Values.nextcloudDataVolume | default dict).datasetName ) }} + {{ include "common.storage.volumesConfiguration" (dict "ixVolumes" .Values.ixVolumes "volumes" $vols) | nindent 8 }} # Will mount configuration files as www-data (id: 33) for nextcloud securityContext: fsGroup: 33 diff --git a/test/nextcloud/1.1.0/templates/secrets.yaml b/test/nextcloud/1.1.0/templates/secrets.yaml index 687560016d..eb992940b3 100644 --- a/test/nextcloud/1.1.0/templates/secrets.yaml +++ b/test/nextcloud/1.1.0/templates/secrets.yaml @@ -1,12 +1,8 @@ apiVersion: v1 kind: Secret metadata: - name: {{ template "nextcloud.fullname" . }} - labels: - app.kubernetes.io/name: {{ include "nextcloud.name" . }} - helm.sh/chart: {{ include "nextcloud.chart" . }} - app.kubernetes.io/instance: {{ .Release.Name }} - app.kubernetes.io/managed-by: {{ .Release.Service }} + name: {{ template "common.names.fullname" . }} + labels: {{ include "common.labels" . | nindent 4 }} type: Opaque data: nextcloud-username: {{ .Values.nextcloud.username | b64enc | quote }} From c325524327ce553b7e18f6dff9ef55eb89b0a900 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sun, 31 Jan 2021 15:12:40 +0500 Subject: [PATCH 42/84] Allow overriding service name --- library/common/templates/classes/_service.tpl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/library/common/templates/classes/_service.tpl b/library/common/templates/classes/_service.tpl index d9076a6fa7..c63ab9b933 100644 --- a/library/common/templates/classes/_service.tpl +++ b/library/common/templates/classes/_service.tpl @@ -5,6 +5,9 @@ within the common library. {{- define "common.classes.service" -}} {{- $values := .commonService -}} {{- $serviceName := include "common.names.fullname" . -}} +{{- if hasKey $values "nameSuffix" -}} + {{- $serviceName = (printf "%v-%v" $serviceName $values.nameSuffix) -}} +{{ end -}} {{- $svcType := $values.type | default "" -}} apiVersion: v1 kind: Service From 15ef56b8f045bd91940c57e6e342bbb12f607de0 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sun, 31 Jan 2021 16:00:33 +0500 Subject: [PATCH 43/84] Properly render full name if name is a substring of release name --- library/common/templates/lib/chart/_names.tpl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/common/templates/lib/chart/_names.tpl b/library/common/templates/lib/chart/_names.tpl index 707f24563e..04922f75ba 100644 --- a/library/common/templates/lib/chart/_names.tpl +++ b/library/common/templates/lib/chart/_names.tpl @@ -27,8 +27,9 @@ If release name contains chart name it will be used as a full name. {{- if contains $name .Release.Name }} {{- $name = (.Release.Name | trunc 63 | trimSuffix "-") }} {{- else }} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- $name = (printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-") }} {{- end }} +{{- print $name -}} {{- end }} {{- end }} From 0ab705bc91a839b6b32bac39eef9243d48684ee5 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sun, 31 Jan 2021 16:10:54 +0500 Subject: [PATCH 44/84] Separate common chart specific values in another variable --- library/common/templates/lib/chart/_names.tpl | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/library/common/templates/lib/chart/_names.tpl b/library/common/templates/lib/chart/_names.tpl index 04922f75ba..5435145bd1 100644 --- a/library/common/templates/lib/chart/_names.tpl +++ b/library/common/templates/lib/chart/_names.tpl @@ -2,7 +2,7 @@ Expand the name of the chart. */}} {{- define "common.names.name" -}} -{{- $values := . -}} +{{- $values := (.common | default dict) -}} {{- $name := (default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-") }} {{- if hasKey $values "nameSuffix" -}} {{- $name = (printf "%v-%v" $name $values.nameSuffix) -}} @@ -16,11 +16,11 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this If release name contains chart name it will be used as a full name. */}} {{- define "common.names.fullname" -}} -{{- $values := . -}} -{{- if $values.fullnameOverride }} -{{- $values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- $values := (.common | default dict) -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} {{- else }} -{{- $name := default .Chart.Name $values.nameOverride }} +{{- $name := default .Chart.Name .Values.nameOverride }} {{- if hasKey $values "nameSuffix" -}} {{- $name = (printf "%v-%v" $name $values.nameSuffix) -}} {{ end -}} @@ -53,7 +53,7 @@ Determine release name This will add a suffix to the release name if nameSuffix is set */}} {{- define "common.names.releaseName" -}} -{{- $values := . -}} +{{- $values := (.common | default dict) -}} {{- if hasKey $values "nameSuffix" -}} {{- printf "%v-%v" .Release.Name $values.nameSuffix -}} {{- else -}} From 9ff909446a11ec0b26a8e94077b3d3cdd183eab2 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sun, 31 Jan 2021 16:32:18 +0500 Subject: [PATCH 45/84] Update charts to use new common variable for namesuffix --- test/nextcloud/1.1.0/templates/deployment.yaml | 4 ++-- test/nextcloud/1.1.0/templates/nuke-deployments-hook.yaml | 4 ++-- test/nextcloud/1.1.0/templates/postgres-deployment.yaml | 2 +- test/nextcloud/1.1.0/templates/postgres-service.yaml | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/test/nextcloud/1.1.0/templates/deployment.yaml b/test/nextcloud/1.1.0/templates/deployment.yaml index 77270a55f1..61721d9b50 100644 --- a/test/nextcloud/1.1.0/templates/deployment.yaml +++ b/test/nextcloud/1.1.0/templates/deployment.yaml @@ -1,5 +1,5 @@ -{{ $postgres_values := . }} -{{ $_ := set $postgres_values "nameSuffix" "postgres" }} +{{ $postgres_values := (. | mustDeepCopy) }} +{{ $_ := set $postgres_values "common" (dict "nameSuffix" "postgres") }} apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }} kind: Deployment metadata: diff --git a/test/nextcloud/1.1.0/templates/nuke-deployments-hook.yaml b/test/nextcloud/1.1.0/templates/nuke-deployments-hook.yaml index b1e0ef1768..218ea00220 100644 --- a/test/nextcloud/1.1.0/templates/nuke-deployments-hook.yaml +++ b/test/nextcloud/1.1.0/templates/nuke-deployments-hook.yaml @@ -1,6 +1,6 @@ {{- if .Values.ixChartContext.isUpgrade -}} -{{ $values := . }} -{{ $_ := set $values "nameSuffix" "postgres" }} +{{ $values := (. | mustDeepCopy) }} +{{ $_ := set $values "common" (dict "nameSuffix" "postgres") }} apiVersion: batch/v1 kind: Job metadata: diff --git a/test/nextcloud/1.1.0/templates/postgres-deployment.yaml b/test/nextcloud/1.1.0/templates/postgres-deployment.yaml index 0c6e480c3a..f7fa2bf549 100644 --- a/test/nextcloud/1.1.0/templates/postgres-deployment.yaml +++ b/test/nextcloud/1.1.0/templates/postgres-deployment.yaml @@ -1,5 +1,5 @@ {{ $values := . }} -{{ $_ := set $values "nameSuffix" "postgres" }} +{{ $_ := set $values "common" (dict "nameSuffix" "postgres") }} apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }} kind: Deployment metadata: diff --git a/test/nextcloud/1.1.0/templates/postgres-service.yaml b/test/nextcloud/1.1.0/templates/postgres-service.yaml index b09fccafde..c6603fd62b 100644 --- a/test/nextcloud/1.1.0/templates/postgres-service.yaml +++ b/test/nextcloud/1.1.0/templates/postgres-service.yaml @@ -1,6 +1,6 @@ {{ $ports := list }} {{ $ports = mustAppend $ports (dict "name" "postgres-tcp" "port" 5432 "targetPort" 5432) }} -{{ $params := . }} -{{ $_ := set $params "commonService" (dict "type" "ClusterIP" "ports" $ports ) }} -{{ $_1 := set $params "nameSuffix" "postgres" }} -{{ include "common.classes.service" $params }} +{{ $values := (. | mustDeepCopy) }} +{{ $_ := set $values "common" (dict "nameSuffix" "postgres") }} +{{ $_1 := set $values "commonService" (dict "type" "ClusterIP" "ports" $ports ) }} +{{ include "common.classes.service" $values }} From d87da453bc5efe5d050710b9aec8fd509fe93ba0 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Sun, 31 Jan 2021 16:50:26 +0500 Subject: [PATCH 46/84] Update postgres deployment to correctly render namesuffix --- test/nextcloud/1.1.0/templates/postgres-deployment.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/nextcloud/1.1.0/templates/postgres-deployment.yaml b/test/nextcloud/1.1.0/templates/postgres-deployment.yaml index f7fa2bf549..94aec328c8 100644 --- a/test/nextcloud/1.1.0/templates/postgres-deployment.yaml +++ b/test/nextcloud/1.1.0/templates/postgres-deployment.yaml @@ -1,4 +1,4 @@ -{{ $values := . }} +{{ $values := (. | mustDeepCopy) }} {{ $_ := set $values "common" (dict "nameSuffix" "postgres") }} apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }} kind: Deployment From 996c0c9593032413984899f04ed280b9cd42a604 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Tue, 2 Feb 2021 15:08:17 +0500 Subject: [PATCH 47/84] Change common library chart directory structure allowing us to keep different versions of a single library chart --- library/common/{ => 2101.0.0}/.helmignore | 0 library/common/{ => 2101.0.0}/Chart.yaml | 0 library/common/{ => 2101.0.0}/README.md | 0 library/common/{ => 2101.0.0}/templates/_serviceaccount.tpl | 0 library/common/{ => 2101.0.0}/templates/classes/_service.tpl | 0 .../common/{ => 2101.0.0}/templates/classes/_service_ports.tpl | 0 .../common/{ => 2101.0.0}/templates/lib/chart/_annotations.tpl | 0 .../common/{ => 2101.0.0}/templates/lib/chart/_capabilities.tpl | 0 library/common/{ => 2101.0.0}/templates/lib/chart/_labels.tpl | 0 library/common/{ => 2101.0.0}/templates/lib/chart/_names.tpl | 0 .../{ => 2101.0.0}/templates/lib/containers/_environment.tpl | 0 library/common/{ => 2101.0.0}/templates/lib/containers/_image.tpl | 0 library/common/{ => 2101.0.0}/templates/lib/networking/_dns.tpl | 0 library/common/{ => 2101.0.0}/templates/lib/schema/_utils.tpl | 0 .../common/{ => 2101.0.0}/templates/lib/storage/_ixvolumes.tpl | 0 library/common/{ => 2101.0.0}/templates/lib/storage/_volume.tpl | 0 16 files changed, 0 insertions(+), 0 deletions(-) rename library/common/{ => 2101.0.0}/.helmignore (100%) rename library/common/{ => 2101.0.0}/Chart.yaml (100%) rename library/common/{ => 2101.0.0}/README.md (100%) rename library/common/{ => 2101.0.0}/templates/_serviceaccount.tpl (100%) rename library/common/{ => 2101.0.0}/templates/classes/_service.tpl (100%) rename library/common/{ => 2101.0.0}/templates/classes/_service_ports.tpl (100%) rename library/common/{ => 2101.0.0}/templates/lib/chart/_annotations.tpl (100%) rename library/common/{ => 2101.0.0}/templates/lib/chart/_capabilities.tpl (100%) rename library/common/{ => 2101.0.0}/templates/lib/chart/_labels.tpl (100%) rename library/common/{ => 2101.0.0}/templates/lib/chart/_names.tpl (100%) rename library/common/{ => 2101.0.0}/templates/lib/containers/_environment.tpl (100%) rename library/common/{ => 2101.0.0}/templates/lib/containers/_image.tpl (100%) rename library/common/{ => 2101.0.0}/templates/lib/networking/_dns.tpl (100%) rename library/common/{ => 2101.0.0}/templates/lib/schema/_utils.tpl (100%) rename library/common/{ => 2101.0.0}/templates/lib/storage/_ixvolumes.tpl (100%) rename library/common/{ => 2101.0.0}/templates/lib/storage/_volume.tpl (100%) diff --git a/library/common/.helmignore b/library/common/2101.0.0/.helmignore similarity index 100% rename from library/common/.helmignore rename to library/common/2101.0.0/.helmignore diff --git a/library/common/Chart.yaml b/library/common/2101.0.0/Chart.yaml similarity index 100% rename from library/common/Chart.yaml rename to library/common/2101.0.0/Chart.yaml diff --git a/library/common/README.md b/library/common/2101.0.0/README.md similarity index 100% rename from library/common/README.md rename to library/common/2101.0.0/README.md diff --git a/library/common/templates/_serviceaccount.tpl b/library/common/2101.0.0/templates/_serviceaccount.tpl similarity index 100% rename from library/common/templates/_serviceaccount.tpl rename to library/common/2101.0.0/templates/_serviceaccount.tpl diff --git a/library/common/templates/classes/_service.tpl b/library/common/2101.0.0/templates/classes/_service.tpl similarity index 100% rename from library/common/templates/classes/_service.tpl rename to library/common/2101.0.0/templates/classes/_service.tpl diff --git a/library/common/templates/classes/_service_ports.tpl b/library/common/2101.0.0/templates/classes/_service_ports.tpl similarity index 100% rename from library/common/templates/classes/_service_ports.tpl rename to library/common/2101.0.0/templates/classes/_service_ports.tpl diff --git a/library/common/templates/lib/chart/_annotations.tpl b/library/common/2101.0.0/templates/lib/chart/_annotations.tpl similarity index 100% rename from library/common/templates/lib/chart/_annotations.tpl rename to library/common/2101.0.0/templates/lib/chart/_annotations.tpl diff --git a/library/common/templates/lib/chart/_capabilities.tpl b/library/common/2101.0.0/templates/lib/chart/_capabilities.tpl similarity index 100% rename from library/common/templates/lib/chart/_capabilities.tpl rename to library/common/2101.0.0/templates/lib/chart/_capabilities.tpl diff --git a/library/common/templates/lib/chart/_labels.tpl b/library/common/2101.0.0/templates/lib/chart/_labels.tpl similarity index 100% rename from library/common/templates/lib/chart/_labels.tpl rename to library/common/2101.0.0/templates/lib/chart/_labels.tpl diff --git a/library/common/templates/lib/chart/_names.tpl b/library/common/2101.0.0/templates/lib/chart/_names.tpl similarity index 100% rename from library/common/templates/lib/chart/_names.tpl rename to library/common/2101.0.0/templates/lib/chart/_names.tpl diff --git a/library/common/templates/lib/containers/_environment.tpl b/library/common/2101.0.0/templates/lib/containers/_environment.tpl similarity index 100% rename from library/common/templates/lib/containers/_environment.tpl rename to library/common/2101.0.0/templates/lib/containers/_environment.tpl diff --git a/library/common/templates/lib/containers/_image.tpl b/library/common/2101.0.0/templates/lib/containers/_image.tpl similarity index 100% rename from library/common/templates/lib/containers/_image.tpl rename to library/common/2101.0.0/templates/lib/containers/_image.tpl diff --git a/library/common/templates/lib/networking/_dns.tpl b/library/common/2101.0.0/templates/lib/networking/_dns.tpl similarity index 100% rename from library/common/templates/lib/networking/_dns.tpl rename to library/common/2101.0.0/templates/lib/networking/_dns.tpl diff --git a/library/common/templates/lib/schema/_utils.tpl b/library/common/2101.0.0/templates/lib/schema/_utils.tpl similarity index 100% rename from library/common/templates/lib/schema/_utils.tpl rename to library/common/2101.0.0/templates/lib/schema/_utils.tpl diff --git a/library/common/templates/lib/storage/_ixvolumes.tpl b/library/common/2101.0.0/templates/lib/storage/_ixvolumes.tpl similarity index 100% rename from library/common/templates/lib/storage/_ixvolumes.tpl rename to library/common/2101.0.0/templates/lib/storage/_ixvolumes.tpl diff --git a/library/common/templates/lib/storage/_volume.tpl b/library/common/2101.0.0/templates/lib/storage/_volume.tpl similarity index 100% rename from library/common/templates/lib/storage/_volume.tpl rename to library/common/2101.0.0/templates/lib/storage/_volume.tpl From 6508c738a8d2d7c757de63861ff3c43e3e534461 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Tue, 2 Feb 2021 15:09:48 +0500 Subject: [PATCH 48/84] Update dependencies path for all catalog items --- test/ipfs/1.0.1/Chart.yaml | 2 +- test/ix-chart/2101.0.0/Chart.yaml | 2 +- test/minio/1.0.1/Chart.yaml | 2 +- test/nextcloud/1.1.0/Chart.yaml | 2 +- test/plex/1.0.1/Chart.yaml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test/ipfs/1.0.1/Chart.yaml b/test/ipfs/1.0.1/Chart.yaml index 44b5332b93..867b84777b 100644 --- a/test/ipfs/1.0.1/Chart.yaml +++ b/test/ipfs/1.0.1/Chart.yaml @@ -14,5 +14,5 @@ sources: upstream_version: 0.8.0-rc1 dependencies: - name: common - repository: file://../../../library/common + repository: file://../../../library/common/2101.0.0 version: 2101.0.0 diff --git a/test/ix-chart/2101.0.0/Chart.yaml b/test/ix-chart/2101.0.0/Chart.yaml index 7f5e15a157..2cda32577f 100644 --- a/test/ix-chart/2101.0.0/Chart.yaml +++ b/test/ix-chart/2101.0.0/Chart.yaml @@ -23,6 +23,6 @@ version: 2101.0.0 appVersion: v1 dependencies: - name: common - repository: file://../../../library/common + repository: file://../../../library/common/2101.0.0 version: 2101.0.0 diff --git a/test/minio/1.0.1/Chart.yaml b/test/minio/1.0.1/Chart.yaml index 9ede89b251..04f502db79 100644 --- a/test/minio/1.0.1/Chart.yaml +++ b/test/minio/1.0.1/Chart.yaml @@ -15,5 +15,5 @@ sources: upstream_version: 8.0.5 dependencies: - name: common - repository: file://../../../library/common + repository: file://../../../library/common/2101.0.0 version: 2101.0.0 diff --git a/test/nextcloud/1.1.0/Chart.yaml b/test/nextcloud/1.1.0/Chart.yaml index 1f90bd6bc6..84274be30c 100644 --- a/test/nextcloud/1.1.0/Chart.yaml +++ b/test/nextcloud/1.1.0/Chart.yaml @@ -17,6 +17,6 @@ sources: upstream_version: 2.3.2 dependencies: - name: common - repository: file://../../../library/common + repository: file://../../../library/common/2101.0.0 version: 2101.0.0 diff --git a/test/plex/1.0.1/Chart.yaml b/test/plex/1.0.1/Chart.yaml index 05316317f2..d0b16df4a9 100644 --- a/test/plex/1.0.1/Chart.yaml +++ b/test/plex/1.0.1/Chart.yaml @@ -13,6 +13,6 @@ sources: upstream_version: 2.1.0 dependencies: - name: common - repository: file://../../../library/common + repository: file://../../../library/common/2101.0.0 version: 2101.0.0 From 9180c723aba43a9d1d78e8a62e3836b6676a01ae Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Tue, 2 Feb 2021 15:11:16 +0500 Subject: [PATCH 49/84] Correctly retrieve train name for commit message --- update_dependencies | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update_dependencies b/update_dependencies index 1b809b395f..ac74b60947 100755 --- a/update_dependencies +++ b/update_dependencies @@ -69,7 +69,7 @@ def update_train_charts(train_path, commit): if any(ITEMS[item]['error'] for item in ITEMS): print(f'[\033[91mFAILED\x1B[0m]\tNot committing changes as failures detected') else: - commit_msg = f'Updated catalog item dependencies ({train_path.rsplit("/", 1)[0]} train)\n' \ + commit_msg = f'Updated catalog item dependencies ({train_path.rsplit("/", 1)[-1]} train)\n' \ 'Following items were updated:\n' for item in ITEMS: commit_msg += f'Updated {item} ({", ".join(ITEMS[item]["success"])} versions)\n\n' From 9167d973433000e680f7cf7a299f493ef143773c Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Tue, 2 Feb 2021 16:08:24 +0500 Subject: [PATCH 50/84] Add common method to specify container/volume mounts --- .../templates/lib/storage/_appStorage.tpl | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 library/common/2101.0.0/templates/lib/storage/_appStorage.tpl diff --git a/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl b/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl new file mode 100644 index 0000000000..43b64320ca --- /dev/null +++ b/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl @@ -0,0 +1,44 @@ +{{/* +Define appVolumeMounts for container +*/}} +{{- define "common.storage.configureAppVolumeMountsInContainer" -}} +{{- if and .Values.appVolumesEnabled .Values.appVolumeMounts }} +{{- range $name, $avm := .Values.appVolumeMounts -}} +{{- if (default true $avm.enabled) }} +{{- if $avm.containerNameOverride -}} +{{- $name = $avm.containerNameOverride -}} +{{- end -}} +- name: {{ $name }} + mountPath: {{ $avm.mountPath }} + {{- if $avm.subPath }} + subPath: {{ $avm.subPath }} + {{- end }} +{{- end }} +{{- end }} +{{- end }} +{{- end -}} + + +{{/* +Define hostPath for appVolumes +*/}} +{{- define "common.storage.configureAppVolumes" -}} +{{- if .Values.appVolumeMounts }} +{{- range $name, $av := .Values.appVolumeMounts -}} +{{- if (default true $av.enabled) }} +- name: {{ $name }} + {{- if or $av.emptyDir $.Values.emptyDirVolumes }} + emptyDir: {} + {{- else }} + hostPath: + {{ if $av.hostPathEnabled }} + path: {{ required "hostPath not set" $av.hostPath }} + {{- else }} + {{- $volDict := dict "datasetName" $av.datasetName "ixVolumes" $.Values.ixVolumes -}} + path: {{ include "common.storage.retrieveHostPathFromiXVolume" $volDict }} + {{- end }} + {{- end }} +{{- end }} +{{- end }} +{{- end }} +{{- end -}} From 7fea12a0a658938a914faf1c7b15d9cbcb469db1 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Tue, 2 Feb 2021 16:46:38 +0500 Subject: [PATCH 51/84] Add validation for dataset name --- library/common/2101.0.0/templates/lib/storage/_appStorage.tpl | 1 + 1 file changed, 1 insertion(+) diff --git a/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl b/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl index 43b64320ca..84e5ed062d 100644 --- a/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl +++ b/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl @@ -34,6 +34,7 @@ Define hostPath for appVolumes {{ if $av.hostPathEnabled }} path: {{ required "hostPath not set" $av.hostPath }} {{- else }} + {{- include "common.schema.validateKeys" (dict "values" $av "checkKeys" (list "datasetName")) -}} {{- $volDict := dict "datasetName" $av.datasetName "ixVolumes" $.Values.ixVolumes -}} path: {{ include "common.storage.retrieveHostPathFromiXVolume" $volDict }} {{- end }} From 88bda7e5e92dd8ae006a1c0f246725996f745bd7 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Tue, 2 Feb 2021 16:48:26 +0500 Subject: [PATCH 52/84] Update ipfs chart to use new format for storage volumes --- test/ipfs/1.0.1/questions.yaml | 136 +++++++++++++++++---------------- 1 file changed, 70 insertions(+), 66 deletions(-) diff --git a/test/ipfs/1.0.1/questions.yaml b/test/ipfs/1.0.1/questions.yaml index 02d188240f..676cc1a7e3 100644 --- a/test/ipfs/1.0.1/questions.yaml +++ b/test/ipfs/1.0.1/questions.yaml @@ -121,75 +121,79 @@ questions: default: 9880 required: true - - - variable: ipfsDataHostPathEnabled - label: "Configure Host Path for IPFS data" - group: "Storage" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: ipfsDataHostPath - label: "Specify HostPath for IPFS data" - schema: - type: hostpath - - - variable: ipfsDataVolume - label: "IPFS Data Volume Defaults" + - variable: appVolumeMounts + label: "IPFS Storage" group: "Storage" schema: type: dict - $ref: - - "normalize/ixVolume" - show_if: [["ipfsDataHostPathEnabled", "=", false]] attrs: - - variable: mountPath - label: "Mount Path" - description: "Path where the volume will be mounted inside the pod" + - variable: staging + label: "Staging Volume" schema: - type: path - editable: false - default: "/data/ipfs" - - variable: datasetName - label: "IPFS Data Dataset Name" + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: datasetName + label: "IPFS Staging Volume Dataset Name" + schema: + type: string + $ref: + - "normalize/ixVolume" + show_if: [["hostPathEnabled", "=", false ]] + default: "ix-ipfs-staging" + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + editable: false + default: "/export" + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true + - variable: data + label: "Data Volume" schema: - type: string - default: "ix-ipfs-data" - editable: false - - - variable: ipfsStagingHostPathEnabled - label: "Configure Host Path for IPFS staging data" - group: "Storage" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: ipfsStagingHostPath - label: "Specify HostPath for IPFS staging data" - schema: - type: hostpath - - - variable: ipfsStagingVolume - label: "IPFS Staging Volume Defaults" - group: "Storage" - schema: - type: dict - $ref: - - "normalize/ixVolume" - show_if: [["ipfsStagingHostPathEnabled", "=", false]] - attrs: - - variable: mountPath - label: "Mount Path" - description: "Path where the volume will be mounted inside the pod" - schema: - type: path - editable: false - default: "/export" - - variable: datasetName - label: "IPFS Staging Dataset Name" - schema: - type: string - default: "ix-ipfs-staging" - editable: false + type: dict + $ref: + - "normalize/ixVolume" + attrs: + - variable: datasetName + label: "IPFS Data Volume Dataset Name" + schema: + type: string + $ref: + - "normalize/ixVolume" + show_if: [["hostPathEnabled", "=", false]] + default: "ix-ipfs-data" + editable: false + - variable: mountPath + label: "Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + editable: false + default: "/data/ipfs" + - variable: hostPathEnabled + label: "host Path Enabled" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path" + schema: + type: hostpath + required: true From 502e700103ce139d08e08776e2b5f33dfec49279 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Tue, 2 Feb 2021 17:50:13 +0500 Subject: [PATCH 53/84] Add method to render all volumes/env variables --- .../templates/lib/containers/_environment.tpl | 11 ++++++ .../templates/lib/storage/_appStorage.tpl | 39 ++++++++++++++++--- 2 files changed, 44 insertions(+), 6 deletions(-) diff --git a/library/common/2101.0.0/templates/lib/containers/_environment.tpl b/library/common/2101.0.0/templates/lib/containers/_environment.tpl index 4a1fd1410f..9d3862599b 100644 --- a/library/common/2101.0.0/templates/lib/containers/_environment.tpl +++ b/library/common/2101.0.0/templates/lib/containers/_environment.tpl @@ -28,3 +28,14 @@ Render environment variables {{- include "common.containers.environmentVariable" $envVariable | nindent 0 -}} {{- end -}} {{- end -}} + +{{/* +Render environment variables if present +*/}} +{{- define "common.containers.allEnvironmentVariables" -}} +{{- $values := . -}} +{{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "environmentVariables")) -}} +{{- if $values.environmentVariables -}} +env: {{- include "common.containers.environmentVariables" $values | nindent 2 -}} +{{- end -}} +{{- end -}} diff --git a/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl b/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl index 84e5ed062d..969cbf414e 100644 --- a/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl +++ b/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl @@ -2,8 +2,10 @@ Define appVolumeMounts for container */}} {{- define "common.storage.configureAppVolumeMountsInContainer" -}} -{{- if and .Values.appVolumesEnabled .Values.appVolumeMounts }} -{{- range $name, $avm := .Values.appVolumeMounts -}} +{{- include "common.schema.validateKeys" (dict "values" . "checkKeys" (list "appVolumeMounts")) -}} +{{- $appVolumeMounts := .appVolumeMounts -}} +{{- if $appVolumeMounts }} +{{- range $name, $avm := $appVolumeMounts -}} {{- if (default true $avm.enabled) }} {{- if $avm.containerNameOverride -}} {{- $name = $avm.containerNameOverride -}} @@ -23,19 +25,22 @@ Define appVolumeMounts for container Define hostPath for appVolumes */}} {{- define "common.storage.configureAppVolumes" -}} -{{- if .Values.appVolumeMounts }} -{{- range $name, $av := .Values.appVolumeMounts -}} +{{- include "common.schema.validateKeys" (dict "values" . "checkKeys" (list "appVolumeMounts")) -}} +{{- $appVolumeMounts := .appVolumeMounts -}} +{{- if $appVolumeMounts }} +{{- range $name, $av := $appVolumeMounts -}} {{- if (default true $av.enabled) }} - name: {{ $name }} - {{- if or $av.emptyDir $.Values.emptyDirVolumes }} + {{- if or $av.emptyDir $.emptyDirVolumes }} emptyDir: {} {{- else }} hostPath: {{ if $av.hostPathEnabled }} path: {{ required "hostPath not set" $av.hostPath }} {{- else }} + {{- include "common.schema.validateKeys" (dict "values" . "checkKeys" (list "ixVolumes")) -}} {{- include "common.schema.validateKeys" (dict "values" $av "checkKeys" (list "datasetName")) -}} - {{- $volDict := dict "datasetName" $av.datasetName "ixVolumes" $.Values.ixVolumes -}} + {{- $volDict := dict "datasetName" $av.datasetName "ixVolumes" $.ixVolumes -}} path: {{ include "common.storage.retrieveHostPathFromiXVolume" $volDict }} {{- end }} {{- end }} @@ -43,3 +48,25 @@ Define hostPath for appVolumes {{- end }} {{- end }} {{- end -}} + + +{{/* +Get all volumes configuration +*/}} +{{- define "common.storage.allAppVolumes" -}} +{{- $appVolumeMounts := .appVolumeMounts -}} +{{- if $appVolumeMounts -}} +volumes: {{- include "common.storage.configureAppVolumes" . | nindent 2 -}} +{{- end -}} +{{- end -}} + + +{{/* +Get all container volume moutns configuration +*/}} +{{- define "common.storage.allContainerVolumeMounts" -}} +{{- $appVolumeMounts := .appVolumeMounts -}} +{{- if $appVolumeMounts -}} +volumeMounts: {{- include "common.storage.configureAppVolumeMountsInContainer" . | nindent 2 -}} +{{- end -}} +{{- end -}} From 8f1d1e84dad7216c984b1960e98e699409efdac3 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Tue, 2 Feb 2021 17:51:03 +0500 Subject: [PATCH 54/84] Update ipfs deployment to have volume mounts rendered by library chart --- test/ipfs/1.0.1/templates/deployment.yaml | 59 ++++------------------- 1 file changed, 10 insertions(+), 49 deletions(-) diff --git a/test/ipfs/1.0.1/templates/deployment.yaml b/test/ipfs/1.0.1/templates/deployment.yaml index f12fca07c9..7b1d3b73ae 100644 --- a/test/ipfs/1.0.1/templates/deployment.yaml +++ b/test/ipfs/1.0.1/templates/deployment.yaml @@ -18,67 +18,35 @@ spec: - name: init-init {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: ['/bin/sh', '-c', '[ ! -e /data/ipfs/config ] && (/usr/local/bin/ipfs init ; chown -R 1000:100 /data/ipfs) ; exit 0'] - volumeMounts: - - name: data - mountPath: /data/ipfs - - name: staging - mountPath: /export + {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }} - name: init-api {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: ['/usr/local/bin/ipfs', 'config', 'Addresses.API', "/ip4/0.0.0.0/tcp/{{ .Values.service.apiPort}}"] - volumeMounts: - - name: data - mountPath: /data/ipfs - - name: staging - mountPath: /export + {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }} - name: init-gateway {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: ['/usr/local/bin/ipfs', 'config', 'Addresses.Gateway', "/ip4/0.0.0.0/tcp/{{ .Values.service.gatewayPort}}"] - volumeMounts: - - name: data - mountPath: /data/ipfs - - name: staging - mountPath: /export + {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }} - name: init-swarm {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: ['/usr/local/bin/ipfs', 'config', '--json', 'Addresses.Swarm', "[\"/ip4/0.0.0.0/tcp/{{ .Values.service.swarmPort}}\",\"/ip4/0.0.0.0/tcp/{{ .Values.service.swarmPort}}/quic\"]" ] - volumeMounts: - - name: data - mountPath: /data/ipfs - - name: staging - mountPath: /export + {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }} - name: init-access-origin {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: ['/usr/local/bin/ipfs', 'config', '--json', 'API.HTTPHeaders.Access-Control-Allow-Origin', "[\"*\"]" ] - volumeMounts: - - name: data - mountPath: /data/ipfs - - name: staging - mountPath: /export + {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }} - name: init-access-methods {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: ['/usr/local/bin/ipfs', 'config', '--json', 'API.HTTPHeaders.Access-Control-Allow-Methods', "[\"PUT\",\"POST\"]" ] - volumeMounts: - - name: data - mountPath: /data/ipfs - - name: staging - mountPath: /export + {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }} - name: init-chown {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} command: ['chown', '1000:100', '/data/ipfs/config'] - volumeMounts: - - name: data - mountPath: /data/ipfs - - name: staging - mountPath: /export + {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }} containers: - name: {{ .Chart.Name }} {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} - volumeMounts: - - name: data - mountPath: /data/ipfs - - name: staging - mountPath: /export + {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }} ports: - name: swarm containerPort: 9401 @@ -86,12 +54,5 @@ spec: containerPort: 9501 - name: gateway containerPort: 9880 - {{- if .Values.environment }} - env: - {{ include "common.containers.environmentVariables" (dict "environmentVariables" .Values.environment) | nindent 12 }} - {{- end }} - volumes: - {{ $vols := list }} - {{ $vols = mustAppend $vols (dict "name" "data" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" .Values.ipfsDataHostPathEnabled "pathField" .Values.ipfsDataHostPath "datasetName" (.Values.ipfsDataVolume | default dict).datasetName ) }} - {{ $vols = mustAppend $vols (dict "name" "staging" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" .Values.ipfsStagingHostPath "pathField" .Values.ipfsStagingHostPath "datasetName" (.Values.ipfsStagingVolume | default dict).datasetName ) }} - {{ include "common.storage.volumesConfiguration" (dict "ixVolumes" .Values.ixVolumes "volumes" $vols) | nindent 8 }} + {{ include "common.containers.environmentVariables" (dict "environmentVariables" .Values.environment) | nindent 10 }} + {{ include "common.storage.allAppVolumes" .Values | nindent 6 }} From 9c13001a5a79cdd73796ccdcfd7022a0ef03fb4b Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Tue, 2 Feb 2021 19:21:29 +0500 Subject: [PATCH 55/84] Fix whitespace issues for volume rendering --- .../templates/lib/storage/_appStorage.tpl | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl b/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl index 969cbf414e..0651870eb1 100644 --- a/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl +++ b/library/common/2101.0.0/templates/lib/storage/_appStorage.tpl @@ -4,20 +4,20 @@ Define appVolumeMounts for container {{- define "common.storage.configureAppVolumeMountsInContainer" -}} {{- include "common.schema.validateKeys" (dict "values" . "checkKeys" (list "appVolumeMounts")) -}} {{- $appVolumeMounts := .appVolumeMounts -}} -{{- if $appVolumeMounts }} -{{- range $name, $avm := $appVolumeMounts -}} -{{- if (default true $avm.enabled) }} -{{- if $avm.containerNameOverride -}} -{{- $name = $avm.containerNameOverride -}} -{{- end -}} +{{- if $appVolumeMounts -}} +{{ range $name, $avm := $appVolumeMounts }} +{{- if (default true $avm.enabled) -}} +{{ if $avm.containerNameOverride }} +{{ $name = $avm.containerNameOverride }} +{{ end }} - name: {{ $name }} mountPath: {{ $avm.mountPath }} - {{- if $avm.subPath }} + {{ if $avm.subPath }} subPath: {{ $avm.subPath }} - {{- end }} -{{- end }} -{{- end }} -{{- end }} + {{ end }} +{{- end -}} +{{ end }} +{{- end -}} {{- end -}} @@ -26,27 +26,27 @@ Define hostPath for appVolumes */}} {{- define "common.storage.configureAppVolumes" -}} {{- include "common.schema.validateKeys" (dict "values" . "checkKeys" (list "appVolumeMounts")) -}} -{{- $appVolumeMounts := .appVolumeMounts -}} -{{- if $appVolumeMounts }} -{{- range $name, $av := $appVolumeMounts -}} -{{- if (default true $av.enabled) }} +{{- $values := . -}} +{{- if $values.appVolumeMounts -}} +{{- range $name, $av := $values.appVolumeMounts -}} +{{ if (default true $av.enabled) }} - name: {{ $name }} - {{- if or $av.emptyDir $.emptyDirVolumes }} + {{ if or $av.emptyDir $.emptyDirVolumes }} emptyDir: {} - {{- else }} + {{- else -}} hostPath: {{ if $av.hostPathEnabled }} path: {{ required "hostPath not set" $av.hostPath }} - {{- else }} - {{- include "common.schema.validateKeys" (dict "values" . "checkKeys" (list "ixVolumes")) -}} + {{ else }} + {{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "ixVolumes")) -}} {{- include "common.schema.validateKeys" (dict "values" $av "checkKeys" (list "datasetName")) -}} - {{- $volDict := dict "datasetName" $av.datasetName "ixVolumes" $.ixVolumes -}} + {{- $volDict := dict "datasetName" $av.datasetName "ixVolumes" $values.ixVolumes -}} path: {{ include "common.storage.retrieveHostPathFromiXVolume" $volDict }} - {{- end }} - {{- end }} -{{- end }} -{{- end }} -{{- end }} + {{ end }} + {{ end }} +{{ end }} +{{- end -}} +{{- end -}} {{- end -}} From 05f46822d909399b200e88eab87e419acef60552 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Tue, 2 Feb 2021 19:21:43 +0500 Subject: [PATCH 56/84] Update ipfs deployment --- test/ipfs/1.0.1/questions.yaml | 8 ++++---- test/ipfs/1.0.1/templates/deployment.yaml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test/ipfs/1.0.1/questions.yaml b/test/ipfs/1.0.1/questions.yaml index 676cc1a7e3..38010ce618 100644 --- a/test/ipfs/1.0.1/questions.yaml +++ b/test/ipfs/1.0.1/questions.yaml @@ -144,14 +144,14 @@ questions: default: "ix-ipfs-staging" editable: false - variable: mountPath - label: "Mount Path" + label: "IPFS Staging Mount Path" description: "Path where the volume will be mounted inside the pod" schema: type: path editable: false default: "/export" - variable: hostPathEnabled - label: "host Path Enabled" + label: "Enable Host Path for IPFS Staging Volume" schema: type: boolean default: false @@ -179,14 +179,14 @@ questions: default: "ix-ipfs-data" editable: false - variable: mountPath - label: "Mount Path" + label: "IPFS Data Mount Path" description: "Path where the volume will be mounted inside the pod" schema: type: path editable: false default: "/data/ipfs" - variable: hostPathEnabled - label: "host Path Enabled" + label: "Enable Host Path for IPFS Data Volume" schema: type: boolean default: false diff --git a/test/ipfs/1.0.1/templates/deployment.yaml b/test/ipfs/1.0.1/templates/deployment.yaml index 7b1d3b73ae..66eac68efe 100644 --- a/test/ipfs/1.0.1/templates/deployment.yaml +++ b/test/ipfs/1.0.1/templates/deployment.yaml @@ -54,5 +54,5 @@ spec: containerPort: 9501 - name: gateway containerPort: 9880 - {{ include "common.containers.environmentVariables" (dict "environmentVariables" .Values.environment) | nindent 10 }} + {{ include "common.containers.allEnvironmentVariables" (dict "environmentVariables" .Values.environment) | nindent 10 }} {{ include "common.storage.allAppVolumes" .Values | nindent 6 }} From bccd8ac68816a715c37d2c1cc1a64664f4916201 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Tue, 2 Feb 2021 23:35:22 +0500 Subject: [PATCH 57/84] Have static ports for containers in ipfs deployment --- test/ipfs/1.0.1/templates/deployment.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/test/ipfs/1.0.1/templates/deployment.yaml b/test/ipfs/1.0.1/templates/deployment.yaml index 66eac68efe..414b097b48 100644 --- a/test/ipfs/1.0.1/templates/deployment.yaml +++ b/test/ipfs/1.0.1/templates/deployment.yaml @@ -21,15 +21,15 @@ spec: {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }} - name: init-api {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} - command: ['/usr/local/bin/ipfs', 'config', 'Addresses.API', "/ip4/0.0.0.0/tcp/{{ .Values.service.apiPort}}"] + command: ['/usr/local/bin/ipfs', 'config', 'Addresses.API', "/ip4/0.0.0.0/tcp/9501"] {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }} - name: init-gateway {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} - command: ['/usr/local/bin/ipfs', 'config', 'Addresses.Gateway', "/ip4/0.0.0.0/tcp/{{ .Values.service.gatewayPort}}"] + command: ['/usr/local/bin/ipfs', 'config', 'Addresses.Gateway', "/ip4/0.0.0.0/tcp/9080"] {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }} - name: init-swarm {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} - command: ['/usr/local/bin/ipfs', 'config', '--json', 'Addresses.Swarm', "[\"/ip4/0.0.0.0/tcp/{{ .Values.service.swarmPort}}\",\"/ip4/0.0.0.0/tcp/{{ .Values.service.swarmPort}}/quic\"]" ] + command: ['/usr/local/bin/ipfs', 'config', '--json', 'Addresses.Swarm', "[\"/ip4/0.0.0.0/tcp/9401\",\"/ip4/0.0.0.0/tcp/9401/quic\"]" ] {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }} - name: init-access-origin {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} @@ -54,5 +54,5 @@ spec: containerPort: 9501 - name: gateway containerPort: 9880 - {{ include "common.containers.allEnvironmentVariables" (dict "environmentVariables" .Values.environment) | nindent 10 }} - {{ include "common.storage.allAppVolumes" .Values | nindent 6 }} +{{ include "common.containers.allEnvironmentVariables" (dict "environmentVariables" .Values.environment) | nindent 10 }} +{{ include "common.storage.allAppVolumes" .Values | nindent 6 }} From cda05f36751c696d352efc24acf08dafcc3ba49f Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Wed, 3 Feb 2021 15:01:39 +0500 Subject: [PATCH 58/84] Standardize environment variable name in ipfs deployment --- test/ipfs/1.0.1/questions.yaml | 12 ++++-------- test/ipfs/1.0.1/templates/deployment.yaml | 2 +- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/test/ipfs/1.0.1/questions.yaml b/test/ipfs/1.0.1/questions.yaml index 38010ce618..d1dde09926 100644 --- a/test/ipfs/1.0.1/questions.yaml +++ b/test/ipfs/1.0.1/questions.yaml @@ -67,7 +67,7 @@ questions: - value: "Recreate" description: "Kill existing pods before creating new ones" - - variable: environment + - variable: environmentVariables label: "IPFS image environment" group: "IPFS Configuration" schema: @@ -131,8 +131,6 @@ questions: label: "Staging Volume" schema: type: dict - $ref: - - "normalize/ixVolume" attrs: - variable: datasetName label: "IPFS Staging Volume Dataset Name" @@ -140,7 +138,7 @@ questions: type: string $ref: - "normalize/ixVolume" - show_if: [["hostPathEnabled", "=", false ]] + show_if: [["hostPathEnabled", "=", false]] default: "ix-ipfs-staging" editable: false - variable: mountPath @@ -158,7 +156,7 @@ questions: show_subquestions_if: true subquestions: - variable: hostPath - label: "Host Path" + label: "Host Path for IPFS Staging Volume" schema: type: hostpath required: true @@ -166,8 +164,6 @@ questions: label: "Data Volume" schema: type: dict - $ref: - - "normalize/ixVolume" attrs: - variable: datasetName label: "IPFS Data Volume Dataset Name" @@ -193,7 +189,7 @@ questions: show_subquestions_if: true subquestions: - variable: hostPath - label: "Host Path" + label: "Host Path for IPFS Data Volume" schema: type: hostpath required: true diff --git a/test/ipfs/1.0.1/templates/deployment.yaml b/test/ipfs/1.0.1/templates/deployment.yaml index 414b097b48..c830a17a16 100644 --- a/test/ipfs/1.0.1/templates/deployment.yaml +++ b/test/ipfs/1.0.1/templates/deployment.yaml @@ -54,5 +54,5 @@ spec: containerPort: 9501 - name: gateway containerPort: 9880 -{{ include "common.containers.allEnvironmentVariables" (dict "environmentVariables" .Values.environment) | nindent 10 }} +{{ include "common.containers.allEnvironmentVariables" .Values | nindent 10 }} {{ include "common.storage.allAppVolumes" .Values | nindent 6 }} From b91bc881535e5feebdbadd935976b432515834bd Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Wed, 3 Feb 2021 16:02:31 +0500 Subject: [PATCH 59/84] Add common method to render GPU configuration --- .../2101.0.0/templates/lib/containers/_resource.tpl | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 library/common/2101.0.0/templates/lib/containers/_resource.tpl diff --git a/library/common/2101.0.0/templates/lib/containers/_resource.tpl b/library/common/2101.0.0/templates/lib/containers/_resource.tpl new file mode 100644 index 0000000000..fd4f6eef02 --- /dev/null +++ b/library/common/2101.0.0/templates/lib/containers/_resource.tpl @@ -0,0 +1,10 @@ +{{/* +Retrieve GPU Configuration +*/}} +{{- define "common.containers.gpuConfiguration" -}} +{{- $values := . -}} +{{ if $values.gpuConfiguration }} +resources: + limits: {{- toYaml $values.gpuConfiguration | nindent 4 }} +{{ end }} +{{- end -}} From 1e7b184520f0fe1d37de62c155673f30dcddccb2 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Wed, 3 Feb 2021 16:14:05 +0500 Subject: [PATCH 60/84] Add common methods for deployment metadata --- .../2101.0.0/templates/lib/deployments/_utils | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 library/common/2101.0.0/templates/lib/deployments/_utils diff --git a/library/common/2101.0.0/templates/lib/deployments/_utils b/library/common/2101.0.0/templates/lib/deployments/_utils new file mode 100644 index 0000000000..da53d79370 --- /dev/null +++ b/library/common/2101.0.0/templates/lib/deployments/_utils @@ -0,0 +1,30 @@ +{{/* +Retrieve deployment metadata +*/}} +{{- define "common.deployment.metadata" -}} +metadata: + name: {{ template "common.names.fullname" . }} + labels: {{ include "common.labels.selectorLabels" . | nindent 4 }} +{{- end -}} + + +{{/* +Retrieve replicas/strategy/selector +*/}} +{{- define "common.deployment.common_spec" -}} +replicas: {{ (default 1 .Values.replicas) }} +strategy: + type: {{ (default "Recreate" .Values.strategyType ) }} +selector: + matchLabels: {{ include "common.labels.selectorLabels" . | nindent 4 }} +{{- end -}} + + +{{/* +Retrieve deployment pod's metadata +*/}} +{{- define "common.deployment.pod.metadata" -}} +metadata: + labels: {{ include "common.labels.selectorLabels" . | nindent 4 }} + annotations: {{ include "common.annotations" . | nindent 4 }} +{{- end -}} From 17966e29271a4054d06b1b977881039788d09141 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Wed, 3 Feb 2021 17:43:58 +0500 Subject: [PATCH 61/84] Update plex chart format --- test/plex/1.0.1/migrations/migrate.py | 16 ++ test/plex/1.0.1/questions.yaml | 253 ++++++++++++---------- test/plex/1.0.1/templates/deployment.yaml | 45 +--- 3 files changed, 164 insertions(+), 150 deletions(-) create mode 100644 test/plex/1.0.1/migrations/migrate.py diff --git a/test/plex/1.0.1/migrations/migrate.py b/test/plex/1.0.1/migrations/migrate.py new file mode 100644 index 0000000000..d35e3a6aca --- /dev/null +++ b/test/plex/1.0.1/migrations/migrate.py @@ -0,0 +1,16 @@ +def migrate(values): + values['appVolumeMounts'] = { + 'transcode': { + 'hostPathEnabled': values['transcodeHostPathEnabled'], + **({'hostPath': values['transcodeHostPath']} if values.get('transcodeHostPath') else {}) + }, + 'config': { + 'hostPathEnabled': values['configHostPathEnabled'], + **({'hostPath': values['configHostPath']} if values.get('configHostPath') else {}) + }, + 'data': { + 'hostPathEnabled': values['dataHostPathEnabled'], + **({'hostPath': values['dataHostPath']} if values.get('dataHostPath') else {}) + }, + } + return values diff --git a/test/plex/1.0.1/questions.yaml b/test/plex/1.0.1/questions.yaml index 2107548760..9dba0e4288 100644 --- a/test/plex/1.0.1/questions.yaml +++ b/test/plex/1.0.1/questions.yaml @@ -141,117 +141,6 @@ questions: max: 65535 default: 32400 - - variable: transcodeHostPathEnabled - label: "Configure Host Path for Transcode" - group: "Storage" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: transcodeHostPath - label: "Specify HostPath for Transcode" - schema: - type: hostpath - required: true - - - variable: transcodeVolume - label: "Transcode Volume Defaults" - group: "Storage" - schema: - type: dict - show_if: [["transcodeHostPathEnabled", "=", false]] - $ref: - - "normalize/ixVolume" - attrs: - - variable: mountPath - label: "Mount Path" - description: "Path where the volume will be mounted inside the pod" - schema: - type: path - editable: false - default: "/transcode" - - variable: datasetName - label: "Transcode Dataset Name" - schema: - type: string - default: "ix-plex_transcode" - editable: false - - - variable: dataHostPathEnabled - label: "Configure Host Path for Data" - group: "Storage" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: dataHostPath - label: "Specify HostPath for Data" - schema: - type: hostpath - required: true - - - variable: dataVolume - label: "Data Volume Defaults" - group: "Storage" - schema: - type: dict - show_if: [["dataHostPathEnabled", "=", false]] - $ref: - - "normalize/ixVolume" - attrs: - - variable: mountPath - label: "Mount Path" - description: "Path where the volume will be mounted inside the pod" - schema: - type: path - editable: false - default: "/data" - - variable: datasetName - label: "Data Dataset Name" - schema: - type: string - default: "ix-plex_data" - editable: false - - - variable: configHostPathEnabled - label: "Configure Host Path for Config" - group: "Storage" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: configHostPath - label: "Specify HostPath for Config" - schema: - type: hostpath - required: true - - - variable: configVolume - label: "Configuration Volume Defaults" - group: "Storage" - schema: - type: dict - show_if: [["configHostPathEnabled", "=", false]] - $ref: - - "normalize/ixVolume" - attrs: - - variable: mountPath - label: "Mount Path" - description: "Path where the volume will be mounted inside the pod" - schema: - type: path - editable: false - default: "/config" - - variable: datasetName - label: "Configuration Dataset Name" - schema: - type: string - default: "ix-plex_config" - editable: false - # Specify GPU configuration - variable: gpuConfiguration label: "GPU Configuration" @@ -260,3 +149,145 @@ questions: type: dict $ref: - "definitions/gpuConfiguration" + + - variable: appVolumeMounts + label: "Plex Storage" + group: "Storage" + schema: + type: dict + attrs: + - variable: transcode + label: "Transcode Volume" + schema: + type: dict + attrs: + - variable: datasetName + label: "Plex Transcode Volume Dataset Name" + schema: + type: string + $ref: + - "normalize/ixVolume" + show_if: [["hostPathEnabled", "=", false]] + default: "ix-plex_transcode" + editable: false + - variable: mountPath + label: "Plex Transcode Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + editable: false + default: "/transcode" + - variable: hostPathEnabled + label: "Enable Host Path for Plex Transcode Volume" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path for Plex Transcode Volume" + schema: + type: hostpath + required: true + - variable: data + label: "Data Volume" + schema: + type: dict + attrs: + - variable: datasetName + label: "Plex Data Volume Dataset Name" + schema: + type: string + $ref: + - "normalize/ixVolume" + show_if: [["hostPathEnabled", "=", false]] + default: "ix-plex_data" + editable: false + - variable: mountPath + label: "Plex Data Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + editable: false + default: "/data" + - variable: hostPathEnabled + label: "Enable Host Path for Plex Data Volume" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path for Plex Data Volume" + schema: + type: hostpath + required: true + - variable: config + label: "Config Volume" + schema: + type: dict + attrs: + - variable: datasetName + label: "Plex Config Volume Dataset Name" + schema: + type: string + $ref: + - "normalize/ixVolume" + show_if: [["hostPathEnabled", "=", false]] + default: "ix-plex_config" + editable: false + - variable: mountPath + label: "Plex Config Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + editable: false + default: "/config" + - variable: hostPathEnabled + label: "Enable Host Path for Plex Config Volume" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path for Plex Config Volume" + schema: + type: hostpath + required: true + - variable: shared + label: "Shared Volume" + schema: + type: dict + attrs: + - variable: emptyDir + label: "Temporary Volume" + schema: + type: boolean + default: true + editable: false + - variable: mountPath + label: "Plex Shared Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + editable: false + default: "/shared" + - variable: shared-logs + label: "Shared Logs Volume" + schema: + type: dict + attrs: + - variable: emptyDir + label: "Temporary Volume" + schema: + type: boolean + default: true + editable: false + - variable: mountPath + label: "Plex Shared Logs Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + editable: false + default: "/config/Library/Application Support/Plex Media Server/Logs" diff --git a/test/plex/1.0.1/templates/deployment.yaml b/test/plex/1.0.1/templates/deployment.yaml index 6e74f64090..42626ced23 100644 --- a/test/plex/1.0.1/templates/deployment.yaml +++ b/test/plex/1.0.1/templates/deployment.yaml @@ -1,19 +1,8 @@ apiVersion: apps/v1 kind: Deployment -metadata: - name: {{ include "common.names.fullname" . }} - labels: {{ include "common.labels" . | nindent 4 }} -spec: - replicas: 1 - revisionHistoryLimit: 3 - strategy: - type: {{ .Values.strategyType }} - selector: - matchLabels: {{ include "common.labels.selectorLabels" . | nindent 6 }} - template: - metadata: - labels: {{ include "common.labels.selectorLabels" . | nindent 8 }} - annotations: {{ include "common.annotations" . | nindent 8 }} +{{ include "common.deployment.metadata" . | nindent 0 }} +spec: {{ include "common.deployment.common_spec" . | nindent 2 }} + template: {{ include "common.deployment.pod.metadata" . | nindent 4 }} spec: {{- if .Values.hostNetwork }} hostNetwork: {{ .Values.hostNetwork }} @@ -22,6 +11,8 @@ spec: containers: - name: {{ .Chart.Name }} {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} + {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }} + {{ include "common.containers.gpuConfiguration" .Values | nindent 10 }} ports: - name: pms protocol: TCP @@ -77,28 +68,4 @@ spec: initialDelaySeconds: 5 failureThreshold: 40 periodSeconds: 15 - volumeMounts: - - name: data - mountPath: /data - - name: config - mountPath: /config - - name: transcode - mountPath: /transcode - - name: shared - mountPath: /shared - - name: shared-logs - mountPath: "/config/Library/Application Support/Plex Media Server/Logs" - {{- if .Values.gpuConfiguration }} - resources: - limits: - {{- toYaml .Values.gpuConfiguration | nindent 14 }} - {{- end }} - volumes: - {{ $emptyDir := .Values.emptyDirVolumes }} - {{ $vols := list }} - {{ $vols = mustAppend $vols (dict "name" "data" "emptyDirVolumes" $emptyDir "hostPathEnabled" .Values.dataHostPathEnabled "pathField" .Values.dataHostPath "datasetName" (.Values.dataVolume | default dict).datasetName ) }} - {{ $vols = mustAppend $vols (dict "name" "config" "emptyDirVolumes" $emptyDir "hostPathEnabled" .Values.configHostPathEnabled "pathField" .Values.configHostPath "datasetName" (.Values.configVolume | default dict).datasetName ) }} - {{ $vols = mustAppend $vols (dict "name" "transcode" "emptyDirVolumes" $emptyDir "hostPathEnabled" .Values.transcodeHostPathEnabled "pathField" .Values.transcodeHostPath "datasetName" (.Values.transcodeVolume | default dict).datasetName ) }} - {{ $vols = mustAppend $vols (dict "name" "shared" "emptyDirVolumes" true "hostPathEnabled" false "pathField" nil "datasetName" nil) }} - {{ $vols = mustAppend $vols (dict "name" "shared-logs" "emptyDirVolumes" true "hostPathEnabled" false "pathField" nil "datasetName" nil) }} - {{ include "common.storage.volumesConfiguration" (dict "ixVolumes" .Values.ixVolumes "volumes" $vols) | nindent 8 }} +{{ include "common.storage.allAppVolumes" .Values | nindent 6 }} From de0e83ad397297bdfc73dd18962fe8452352d910 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Wed, 3 Feb 2021 18:11:11 +0500 Subject: [PATCH 62/84] Use updateStrategy as a variable instead of strategyType --- library/common/2101.0.0/templates/lib/deployments/_utils | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/common/2101.0.0/templates/lib/deployments/_utils b/library/common/2101.0.0/templates/lib/deployments/_utils index da53d79370..cc34cc36cc 100644 --- a/library/common/2101.0.0/templates/lib/deployments/_utils +++ b/library/common/2101.0.0/templates/lib/deployments/_utils @@ -14,7 +14,7 @@ Retrieve replicas/strategy/selector {{- define "common.deployment.common_spec" -}} replicas: {{ (default 1 .Values.replicas) }} strategy: - type: {{ (default "Recreate" .Values.strategyType ) }} + type: {{ (default "Recreate" .Values.updateStrategy ) }} selector: matchLabels: {{ include "common.labels.selectorLabels" . | nindent 4 }} {{- end -}} From 9bcb41d9d549c7a04459423f87487fe32e494696 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Wed, 3 Feb 2021 18:11:31 +0500 Subject: [PATCH 63/84] Update plex migration to use updateStrategy --- test/plex/1.0.1/migrations/migrate.py | 29 +++++++++++++++------------ test/plex/1.0.1/questions.yaml | 2 +- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/test/plex/1.0.1/migrations/migrate.py b/test/plex/1.0.1/migrations/migrate.py index d35e3a6aca..4c4566f675 100644 --- a/test/plex/1.0.1/migrations/migrate.py +++ b/test/plex/1.0.1/migrations/migrate.py @@ -1,16 +1,19 @@ def migrate(values): - values['appVolumeMounts'] = { - 'transcode': { - 'hostPathEnabled': values['transcodeHostPathEnabled'], - **({'hostPath': values['transcodeHostPath']} if values.get('transcodeHostPath') else {}) + values.update({ + 'appVolumeMounts': { + 'transcode': { + 'hostPathEnabled': values['transcodeHostPathEnabled'], + **({'hostPath': values['transcodeHostPath']} if values.get('transcodeHostPath') else {}) + }, + 'config': { + 'hostPathEnabled': values['configHostPathEnabled'], + **({'hostPath': values['configHostPath']} if values.get('configHostPath') else {}) + }, + 'data': { + 'hostPathEnabled': values['dataHostPathEnabled'], + **({'hostPath': values['dataHostPath']} if values.get('dataHostPath') else {}) + }, }, - 'config': { - 'hostPathEnabled': values['configHostPathEnabled'], - **({'hostPath': values['configHostPath']} if values.get('configHostPath') else {}) - }, - 'data': { - 'hostPathEnabled': values['dataHostPathEnabled'], - **({'hostPath': values['dataHostPath']} if values.get('dataHostPath') else {}) - }, - } + 'updateStrategy': values.get('strategyType', 'Recreate'), + }) return values diff --git a/test/plex/1.0.1/questions.yaml b/test/plex/1.0.1/questions.yaml index 9dba0e4288..c6df63ec46 100644 --- a/test/plex/1.0.1/questions.yaml +++ b/test/plex/1.0.1/questions.yaml @@ -113,7 +113,7 @@ questions: - "definitions/timezone" # Update strategy - - variable: strategyType + - variable: updateStrategy description: "Upgrade Policy" label: "Update Strategy" group: "Scaling/Upgrade Policy" From c03f6f5b6731a64590be6d1136c4039009daf0c1 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Wed, 3 Feb 2021 18:27:24 +0500 Subject: [PATCH 64/84] Add method to render common deployment configuration --- .../common/2101.0.0/templates/lib/deployments/_utils | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/library/common/2101.0.0/templates/lib/deployments/_utils b/library/common/2101.0.0/templates/lib/deployments/_utils index cc34cc36cc..b8b2f76ad5 100644 --- a/library/common/2101.0.0/templates/lib/deployments/_utils +++ b/library/common/2101.0.0/templates/lib/deployments/_utils @@ -25,6 +25,17 @@ Retrieve deployment pod's metadata */}} {{- define "common.deployment.pod.metadata" -}} metadata: + name: {{ template "common.names.fullname" . }} labels: {{ include "common.labels.selectorLabels" . | nindent 4 }} annotations: {{ include "common.annotations" . | nindent 4 }} {{- end -}} + + +{{/* +Retrieve common deployment configuration +*/}} +{{- define "common.deployment.common_config" -}} +apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }} +kind: Deployment +{{ include "common.deployment.metadata" . | nindent 0 }} +{{- end -}} From 0d8d1111a0a52f3e3034791508838befc87d999d Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Wed, 3 Feb 2021 18:28:33 +0500 Subject: [PATCH 65/84] Update minio chart to use new format for storage --- test/minio/1.0.1/migrations/migrate.py | 10 ++++ test/minio/1.0.1/questions.yaml | 64 ++++++++++++---------- test/minio/1.0.1/templates/deployment.yaml | 28 ++-------- test/plex/1.0.1/templates/deployment.yaml | 4 +- 4 files changed, 50 insertions(+), 56 deletions(-) create mode 100644 test/minio/1.0.1/migrations/migrate.py diff --git a/test/minio/1.0.1/migrations/migrate.py b/test/minio/1.0.1/migrations/migrate.py new file mode 100644 index 0000000000..2aad34f1a5 --- /dev/null +++ b/test/minio/1.0.1/migrations/migrate.py @@ -0,0 +1,10 @@ +def migrate(values): + values.update({ + 'appVolumeMounts': { + 'export': { + 'hostPathEnabled': values['minioHostPathEnabled'], + **({'hostPath': values['minioHostPath']} if values.get('minioHostPath') else {}) + }, + }, + }) + return values diff --git a/test/minio/1.0.1/questions.yaml b/test/minio/1.0.1/questions.yaml index ea803a6911..4a1605bf38 100644 --- a/test/minio/1.0.1/questions.yaml +++ b/test/minio/1.0.1/questions.yaml @@ -138,38 +138,42 @@ questions: default: 9000 required: true - - variable: minioHostPathEnabled - label: "Configure Host Path for Minio data" - group: "Storage" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: minioHostPath - label: "Specify HostPath for Minio data" - schema: - type: hostpath - - - variable: minioDataVolume - label: "Minio Data Volume Defaults" + - variable: appVolumeMounts + label: "Minio Storage" group: "Storage" schema: type: dict - $ref: - - "normalize/ixVolume" - show_if: [["minioHostPathEnabled", "=", false]] attrs: - - variable: mountPath - label: "Minio Data Mount Path" - description: "Path where the volume will be mounted inside the pod" + - variable: export + label: "Data Volume" schema: - type: path - editable: false - default: "/export" - - variable: datasetName - label: "Minio Dataset Name" - schema: - type: string - default: "ix-minio" - editable: false + type: dict + attrs: + - variable: datasetName + label: "Minio Data Volume Dataset Name" + schema: + type: string + $ref: + - "normalize/ixVolume" + show_if: [["hostPathEnabled", "=", false]] + default: "ix-minio" + editable: false + - variable: mountPath + label: "Minio Data Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + editable: false + default: "/export" + - variable: hostPathEnabled + label: "Enable Host Path for Minio Data Volume" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path for Minio Data Volume" + schema: + type: hostpath + required: true diff --git a/test/minio/1.0.1/templates/deployment.yaml b/test/minio/1.0.1/templates/deployment.yaml index c184498c93..004a86e4f5 100644 --- a/test/minio/1.0.1/templates/deployment.yaml +++ b/test/minio/1.0.1/templates/deployment.yaml @@ -1,32 +1,17 @@ {{ $scheme := "http" }} -apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }} -kind: Deployment -metadata: - name: {{ template "common.names.fullname" . }} - labels: {{ include "common.labels" . | nindent 4 }} -spec: - strategy: - type: {{ .Values.updateStrategy }} - selector: - matchLabels: {{ include "common.labels.selectorLabels" . | nindent 6 }} - template: - metadata: - name: {{ template "common.names.fullname" . }} - labels: {{ include "common.labels.selectorLabels" . | nindent 8 }} - annotations: - checksum/secrets: {{ include (print $.Template.BasePath "/secrets.yaml") . | sha256sum }} +{{ include "common.deployment.common_config" . | nindent 0 }} +spec: {{ include "common.deployment.common_spec" . | nindent 2 }} + template: {{ include "common.deployment.pod.metadata" . | nindent 4 }} spec: serviceAccountName: {{ include "common.names.serviceAccountName" . | quote }} containers: - name: {{ .Chart.Name }} {{ include "common.containers.imageConfig" .Values.image | nindent 10 }} + {{ include "common.storage.allContainerVolumeMounts" .Values | nindent 10 }} command: - "/bin/sh" - "-ce" - "/usr/bin/docker-entrypoint.sh minio server /export {{ (.Values.extraArgs | default list) | join " " }}" - volumeMounts: - - name: export - mountPath: /export ports: - name: {{ $scheme }} containerPort: 9000 @@ -36,7 +21,4 @@ spec: {{ $envList = mustAppend $envList (dict "name" "MINIO_ACCESS_KEY" "valueFromSecret" true "secretName" $secretName "secretKey" "accesskey") }} {{ $envList = mustAppend $envList (dict "name" "MINIO_SECRET_KEY" "valueFromSecret" true "secretName" $secretName "secretKey" "secretkey") }} {{ include "common.containers.environmentVariables" (dict "environmentVariables" $envList) | nindent 12 }} - volumes: - {{ $vols := list }} - {{ $vols = mustAppend $vols (dict "name" "export" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" .Values.minioHostPathEnabled "pathField" .Values.minioHostPath "datasetName" (.Values.minioDataVolume | default dict).datasetName ) }} - {{ include "common.storage.volumesConfiguration" (dict "ixVolumes" .Values.ixVolumes "volumes" $vols) | nindent 8 }} +{{ include "common.storage.allAppVolumes" .Values | nindent 6 }} diff --git a/test/plex/1.0.1/templates/deployment.yaml b/test/plex/1.0.1/templates/deployment.yaml index 42626ced23..6f3283aa64 100644 --- a/test/plex/1.0.1/templates/deployment.yaml +++ b/test/plex/1.0.1/templates/deployment.yaml @@ -1,6 +1,4 @@ -apiVersion: apps/v1 -kind: Deployment -{{ include "common.deployment.metadata" . | nindent 0 }} +{{ include "common.deployment.common_config" . | nindent 0 }} spec: {{ include "common.deployment.common_spec" . | nindent 2 }} template: {{ include "common.deployment.pod.metadata" . | nindent 4 }} spec: From 7db9059e25eaa3ec55b63a0bce4f82411c188fbb Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Wed, 3 Feb 2021 19:26:48 +0500 Subject: [PATCH 66/84] Update minio/plex migrations to use stdout/stdin --- test/minio/1.0.1/migrations/{migrate.py => migrate} | 12 ++++++++++++ test/plex/1.0.1/migrations/{migrate.py => migrate} | 12 ++++++++++++ 2 files changed, 24 insertions(+) rename test/minio/1.0.1/migrations/{migrate.py => migrate} (64%) mode change 100644 => 100755 rename test/plex/1.0.1/migrations/{migrate.py => migrate} (82%) mode change 100644 => 100755 diff --git a/test/minio/1.0.1/migrations/migrate.py b/test/minio/1.0.1/migrations/migrate old mode 100644 new mode 100755 similarity index 64% rename from test/minio/1.0.1/migrations/migrate.py rename to test/minio/1.0.1/migrations/migrate index 2aad34f1a5..cb6ee8aa0b --- a/test/minio/1.0.1/migrations/migrate.py +++ b/test/minio/1.0.1/migrations/migrate @@ -1,3 +1,8 @@ +#!/usr/bin/python3 +import json +import sys + + def migrate(values): values.update({ 'appVolumeMounts': { @@ -8,3 +13,10 @@ def migrate(values): }, }) return values + + +if __name__ == '__main__': + if len(sys.argv) != 2: + exit(1) + + print(json.dumps(migrate(json.loads(sys.argv[1])))) diff --git a/test/plex/1.0.1/migrations/migrate.py b/test/plex/1.0.1/migrations/migrate old mode 100644 new mode 100755 similarity index 82% rename from test/plex/1.0.1/migrations/migrate.py rename to test/plex/1.0.1/migrations/migrate index 4c4566f675..7f0c1a4455 --- a/test/plex/1.0.1/migrations/migrate.py +++ b/test/plex/1.0.1/migrations/migrate @@ -1,3 +1,8 @@ +#!/usr/bin/python3 +import json +import sys + + def migrate(values): values.update({ 'appVolumeMounts': { @@ -17,3 +22,10 @@ def migrate(values): 'updateStrategy': values.get('strategyType', 'Recreate'), }) return values + + +if __name__ == '__main__': + if len(sys.argv) != 2: + exit(1) + + print(json.dumps(migrate(json.loads(sys.argv[1])))) From 58a796ab6ffd067d1fd77f47f860482fa89c1c78 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Wed, 3 Feb 2021 22:13:33 +0500 Subject: [PATCH 67/84] Update nextcloud chart migrating it to newer storage format --- test/nextcloud/1.1.0/migrations/migrate | 23 +++ test/nextcloud/1.1.0/questions.yaml | 165 ++++++++++-------- test/nextcloud/1.1.0/templates/_backup.tpl | 0 test/nextcloud/1.1.0/templates/_helpers.tpl | 114 ------------ test/nextcloud/1.1.0/templates/_postgres.tpl | 14 +- test/nextcloud/1.1.0/templates/_upgrade.tpl | 21 --- .../1.1.0/templates/backup-postgres-hook.yaml | 10 +- .../nextcloud/1.1.0/templates/deployment.yaml | 24 +-- .../1.1.0/templates/postgres-deployment.yaml | 24 +-- 9 files changed, 134 insertions(+), 261 deletions(-) create mode 100755 test/nextcloud/1.1.0/migrations/migrate delete mode 100644 test/nextcloud/1.1.0/templates/_backup.tpl delete mode 100644 test/nextcloud/1.1.0/templates/_helpers.tpl delete mode 100644 test/nextcloud/1.1.0/templates/_upgrade.tpl diff --git a/test/nextcloud/1.1.0/migrations/migrate b/test/nextcloud/1.1.0/migrations/migrate new file mode 100755 index 0000000000..be01e7a9f2 --- /dev/null +++ b/test/nextcloud/1.1.0/migrations/migrate @@ -0,0 +1,23 @@ +#!/usr/bin/python3 +import json +import sys + + +def migrate(values): + values.update({ + 'appVolumeMounts': { + 'nextcloud-data': { + 'hostPathEnabled': values['nextcloudDataHostPathEnabled'], + **({'hostPath': values['nextcloudHostPath']} if values.get('nextcloudHostPath') else {}) + }, + }, + 'updateStrategy': values.get('nextcloud').get('strategy', 'Recreate'), + }) + return values + + +if __name__ == '__main__': + if len(sys.argv) != 2: + exit(1) + + print(json.dumps(migrate(json.loads(sys.argv[1])))) diff --git a/test/nextcloud/1.1.0/questions.yaml b/test/nextcloud/1.1.0/questions.yaml index 545fe5647b..bea8812ed5 100644 --- a/test/nextcloud/1.1.0/questions.yaml +++ b/test/nextcloud/1.1.0/questions.yaml @@ -9,6 +9,8 @@ groups: description: "Configure nextcloud container parameters" - name: "Postgresql Configuration" description: "Configure Postgresql for nextcloud" + - name: "Scaling/Upgrade Policy" + description: "Configure how pods are replaced when configuration is upgraded" portals: web_portal: @@ -94,16 +96,20 @@ questions: type: path default: "/var/www/html/data" required: true - - variable: strategy - label: "Nextcloud update strategy" - schema: - type: string - default: "Recreate" - enum: - - value: "RollingUpdate" - description: "Create new pods and then kill old ones" - - value: "Recreate" - description: "Kill existing pods before creating new ones" + + # Update strategy + - variable: updateStrategy + description: "Upgrade Policy" + label: "Update Strategy" + group: "Scaling/Upgrade Policy" + schema: + type: string + default: "Recreate" + enum: + - value: "RollingUpdate" + description: "Create new pods and then kill old ones" + - value: "Recreate" + description: "Kill existing pods before creating new ones" - variable: service description: "Nextcloud Service Configuration" @@ -122,80 +128,89 @@ questions: default: 9001 required: true - - variable: nextcloudDataHostPathEnabled - label: "Configure Host Path for Nextcloud data" - group: "Storage" - schema: - type: boolean - default: false - show_subquestions_if: true - subquestions: - - variable: nextcloudHostPath - label: "Specify HostPath for Nextcloud data" - schema: - type: hostpath - - - variable: nextcloudDataVolume - label: "Nextcloud Data Volume Defaults" + - variable: appVolumeMounts + label: "Nextcloud Storage" group: "Storage" schema: type: dict - $ref: - - "normalize/ixVolume" - show_if: [["nextcloudDataHostPathEnabled", "=", false]] attrs: - - variable: mountPath - label: "Nextcloud Data Mount Path" - description: "Path where the volume will be mounted inside the pod" + - variable: nextcloud-data + label: "Nextcloud Data Volume" schema: - type: path - editable: false - default: "/var/www" - - variable: datasetName - label: "Nextcloud Dataset Name" - schema: - type: string - default: "ix-nextcloud_data" - editable: false + type: dict + attrs: + - variable: datasetName + label: "Nextcloud Data Volume Name" + schema: + type: string + $ref: + - "normalize/ixVolume" + show_if: [["hostPathEnabled", "=", false]] + default: "ix-nextcloud_data" + editable: false + - variable: mountPath + label: "Nextcloud Data Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + editable: false + default: "/var/www" + - variable: hostPathEnabled + label: "Enable Host Path for Nextcloud Data Volume" + schema: + type: boolean + default: false + show_subquestions_if: true + subquestions: + - variable: hostPath + label: "Host Path for Nextcloud Data Volume" + schema: + type: hostpath + required: true - - variable: postgresBackupVolume - label: "Postgres Backup Volume Defaults" + - variable: postgresAppVolumeMounts + label: "Postgres Storage" group: "Storage" schema: type: dict - $ref: - - "normalize/ixVolume" attrs: - - variable: mountPath - label: "Postgres Backup Mount Path" + - variable: postgres-data + label: "Postgres Data Volume" schema: - type: path - editable: false - default: "/postgres_backups" - - variable: datasetName - label: "Postgres Backup Dataset Name" + type: dict + attrs: + - variable: datasetName + label: "Postgres Data Volume Name" + schema: + type: string + $ref: + - "normalize/ixVolume" + default: "ix-postgres_data" + editable: false + - variable: mountPath + label: "Postgresql Data Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + editable: false + default: "/var/lib/postgresql/data" + - variable: postgres-backup + label: "Postgres Backup Volume" schema: - type: string - default: "ix-postgres_backups" - editable: false - - - variable: postgresDataVolume - label: "Postgresql Data Volume Defaults" - group: "Storage" - schema: - type: dict - $ref: - - "normalize/ixVolume" - attrs: - - variable: mountPath - label: "Postgres Mount Path" - schema: - type: path - editable: false - default: "/var/lib/postgresql/data" - - variable: datasetName - label: "Postgres Dataset Name" - schema: - type: string - default: "ix-postgres_data" - editable: false + type: dict + attrs: + - variable: datasetName + label: "Postgres Backup Volume Name" + schema: + type: string + $ref: + - "normalize/ixVolume" + default: "ix-postgres_backups" + editable: false + - variable: mountPath + label: "Postgresql Backup Mount Path" + description: "Path where the volume will be mounted inside the pod" + schema: + type: path + editable: false + default: "/postgres_backups" diff --git a/test/nextcloud/1.1.0/templates/_backup.tpl b/test/nextcloud/1.1.0/templates/_backup.tpl deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/test/nextcloud/1.1.0/templates/_helpers.tpl b/test/nextcloud/1.1.0/templates/_helpers.tpl deleted file mode 100644 index 43114be492..0000000000 --- a/test/nextcloud/1.1.0/templates/_helpers.tpl +++ /dev/null @@ -1,114 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "nextcloud.name" -}} -{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -If release name contains chart name it will be used as a full name. -*/}} -{{- define "nextcloud.fullname" -}} -{{- if .Values.fullnameOverride -}} -{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- if contains $name .Release.Name -}} -{{- .Release.Name | trunc 63 | trimSuffix "-" -}} -{{- else -}} -{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Create a default fully qualified app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -*/}} -{{- define "nextcloud.mariadb.fullname" -}} -{{- printf "%s-%s" .Release.Name "mariadb" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - - -{{/* -Create a default fully qualified redis app name. -We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). -*/}} -{{- define "nextcloud.redis.fullname" -}} -{{- printf "%s-%s" .Release.Name "redis" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "nextcloud.chart" -}} -{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Retrieve host path from ix volumes based on dataset name -*/}} -{{- define "retrieveHostPathFromiXVolume" -}} -{{- range $index, $hostPathConfiguration := $.ixVolumes }} -{{- $dsName := base $hostPathConfiguration.hostPath -}} -{{- if eq $.datasetName $dsName -}} -{{- $hostPathConfiguration.hostPath -}} -{{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Retrieve host path defined in volume -*/}} -{{- define "configuredHostPath" -}} -{{- if .Values.emptyDirVolumes -}} -{{- printf "" -}} -{{- else if .Values.nextcloudDataHostPathEnabled -}} -{{- required "Please specify a host path for nextcloud" .Values.nextcloudHostPath -}} -{{- else -}} -{{- $volDict := dict "datasetName" $.Values.nextcloudDataVolume.datasetName "ixVolumes" $.Values.ixVolumes -}} -{{- include "retrieveHostPathFromiXVolume" $volDict -}} -{{- end -}} -{{- end -}} - -{{/* -Retrieve backup postgresql host path defined in volume -*/}} -{{- define "configuredBackupPostgresHostPath" -}} -{{- if .Values.emptyDirVolumes -}} -{{- printf "" -}} -{{- else -}} -{{- $volDict := dict "datasetName" $.Values.postgresBackupVolume.datasetName "ixVolumes" $.Values.ixVolumes -}} -{{- include "retrieveHostPathFromiXVolume" $volDict -}} -{{- end -}} -{{- end -}} - -{{/* -Retrieve postgresql data host path defined in volume -*/}} -{{- define "configuredPostgresHostPath" -}} -{{- if .Values.emptyDirVolumes -}} -{{- printf "" -}} -{{- else -}} -{{- $volDict := dict "datasetName" $.Values.postgresDataVolume.datasetName "ixVolumes" $.Values.ixVolumes -}} -{{- include "retrieveHostPathFromiXVolume" $volDict -}} -{{- end -}} -{{- end -}} - -{{/* -Selector labels -*/}} -{{- define "nextcloud.selectorLabels" -}} -app.kubernetes.io/name: {{ include "nextcloud.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end }} - -{{/* -Nextcloud service account -*/}} -{{- define "nextcloud.serviceAccountName" -}} -{{- printf "%s-service-account" .Release.Name -}} -{{- end -}} diff --git a/test/nextcloud/1.1.0/templates/_postgres.tpl b/test/nextcloud/1.1.0/templates/_postgres.tpl index e9244da240..0cdfc8b015 100644 --- a/test/nextcloud/1.1.0/templates/_postgres.tpl +++ b/test/nextcloud/1.1.0/templates/_postgres.tpl @@ -36,8 +36,14 @@ Retrieve postgres credentials for environment variables configuration Retrieve postgres volume configuration */}} {{- define "postgres.volumeConfiguration" -}} -{{ $vols := list }} -{{ $vols = mustAppend $vols (dict "name" "postgres-data" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" false "pathField" nil "datasetName" (.Values.postgresDataVolume | default dict).datasetName ) }} -{{ $vols = mustAppend $vols (dict "name" "postgres-backup" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" false "pathField" nil "datasetName" (.Values.postgresBackupVolume | default dict).datasetName ) }} -{{ include "common.storage.volumesConfiguration" (dict "ixVolumes" .Values.ixVolumes "volumes" $vols) }} +{{ include "common.storage.configureAppVolumes" (dict "appVolumeMounts" .Values.postgresAppVolumeMounts "emptyDirVolumes" .Values.emptyDirVolumes "ixVolumes" .Values.ixVolumes) | nindent 0 }} {{- end -}} + + +{{/* +Retrieve postgres volume mounts configuration +*/}} +{{- define "postgres.volumeMountsConfiguration" -}} +{{ include "common.storage.configureAppVolumeMountsInContainer" (dict "appVolumeMounts" .Values.postgresAppVolumeMounts ) | nindent 0 }} +{{- end -}} + diff --git a/test/nextcloud/1.1.0/templates/_upgrade.tpl b/test/nextcloud/1.1.0/templates/_upgrade.tpl deleted file mode 100644 index eb0ae1e660..0000000000 --- a/test/nextcloud/1.1.0/templates/_upgrade.tpl +++ /dev/null @@ -1,21 +0,0 @@ -{{/* -Retrieve previous chart version from which we are upgrading to a newer chart version -*/}} -{{- define "tn.chart.old_version" -}} -{{- if .Values.ixChartContext.is_upgrade -}} -{{- .Values.ixChartContext.upgradeMetadata.oldChartVersion -}} -{{- else -}} -{{- fail "A chart upgrade is not taking place" -}} -{{- end -}} -{{- end -}} - -{{/* -Retrieve new chart version to which we are upgrading from an old chart version -*/}} -{{- define "tn.chart.new_version" -}} -{{- if .Values.ixChartContext.is_upgrade -}} -{{- .Values.ixChartContext.upgradeMetadata.newChartVersion -}} -{{- else -}} -{{- fail "A chart upgrade is not taking place" -}} -{{- end -}} -{{- end -}} diff --git a/test/nextcloud/1.1.0/templates/backup-postgres-hook.yaml b/test/nextcloud/1.1.0/templates/backup-postgres-hook.yaml index 2286116f6b..175b0f2617 100644 --- a/test/nextcloud/1.1.0/templates/backup-postgres-hook.yaml +++ b/test/nextcloud/1.1.0/templates/backup-postgres-hook.yaml @@ -1,6 +1,6 @@ {{- if .Values.ixChartContext.isUpgrade -}} -{{ $values := . }} -{{ $_ := set $values "nameSuffix" "postgres" }} +{{ $values := (. | mustDeepCopy) }} +{{ $_ := set $values "common" (dict "nameSuffix" "postgres") }} apiVersion: batch/v1 kind: Job metadata: @@ -24,11 +24,7 @@ spec: env: {{ include "postgres.envVariableConfiguration" $values | nindent 10 }} - name: BACKUP_NAME value: {{ template "postgres.backupName" . }} - volumeMounts: - - name: postgres-data - mountPath: /var/lib/postgresql/data - - name: postgres-backup - mountPath: /postgres_backups + volumeMounts: {{ include "postgres.volumeMountsConfiguration" $values | nindent 10 }} - name: backup-script-configmap mountPath: /bin/backup_entrypoint.sh readOnly: true diff --git a/test/nextcloud/1.1.0/templates/deployment.yaml b/test/nextcloud/1.1.0/templates/deployment.yaml index 61721d9b50..ba954a825c 100644 --- a/test/nextcloud/1.1.0/templates/deployment.yaml +++ b/test/nextcloud/1.1.0/templates/deployment.yaml @@ -1,21 +1,8 @@ {{ $postgres_values := (. | mustDeepCopy) }} {{ $_ := set $postgres_values "common" (dict "nameSuffix" "postgres") }} -apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }} -kind: Deployment -metadata: - name: {{ template "common.names.fullname" . }} - labels: {{ include "common.labels" . | nindent 4 }} - annotations: {{ include "common.annotations" . | nindent 4 }} -spec: - replicas: 1 - strategy: - type: {{ .Values.nextcloud.strategy }} - selector: - matchLabels: {{ include "common.labels.selectorLabels" . | nindent 6 }} - template: - metadata: - labels: {{ include "common.labels.selectorLabels" . | nindent 8 }} - annotations: {{ include "common.annotations" . | nindent 8 }} +{{ include "common.deployment.common_config" . | nindent 0 }} +spec: {{ include "common.deployment.common_spec" . | nindent 2 }} + template: {{ include "common.deployment.pod.metadata" . | nindent 4 }} spec: initContainers: - name: init-postgresdb @@ -61,10 +48,7 @@ spec: - name: nextcloud-data mountPath: /var/www/html/themes subPath: "themes" - volumes: - {{ $vols := list }} - {{ $vols = mustAppend $vols (dict "name" "nextcloud-data" "emptyDirVolumes" .Values.emptyDirVolumes "hostPathEnabled" .Values.nextcloudDataHostPathEnabled "pathField" .Values.nextcloudHostPath "datasetName" (.Values.nextcloudDataVolume | default dict).datasetName ) }} - {{ include "common.storage.volumesConfiguration" (dict "ixVolumes" .Values.ixVolumes "volumes" $vols) | nindent 8 }} +{{ include "common.storage.allAppVolumes" .Values | nindent 6 }} # Will mount configuration files as www-data (id: 33) for nextcloud securityContext: fsGroup: 33 diff --git a/test/nextcloud/1.1.0/templates/postgres-deployment.yaml b/test/nextcloud/1.1.0/templates/postgres-deployment.yaml index 94aec328c8..c325ee8ced 100644 --- a/test/nextcloud/1.1.0/templates/postgres-deployment.yaml +++ b/test/nextcloud/1.1.0/templates/postgres-deployment.yaml @@ -1,31 +1,15 @@ {{ $values := (. | mustDeepCopy) }} {{ $_ := set $values "common" (dict "nameSuffix" "postgres") }} -apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }} -kind: Deployment -metadata: - name: {{ template "common.names.fullname" $values }} - labels: {{ include "common.labels.selectorLabels" $values | nindent 4 }} -spec: - replicas: 1 - strategy: - type: {{ .Values.nextcloud.strategy }} - selector: - matchLabels: {{- include "common.labels.selectorLabels" $values | nindent 6 }} - template: - metadata: - labels: {{- include "common.labels.selectorLabels" $values | nindent 8 }} - annotations: {{- include "common.annotations" $values | nindent 8 }} +{{ include "common.deployment.common_config" $values | nindent 0 }} +spec: {{ include "common.deployment.common_spec" $values | nindent 2 }} + template: {{ include "common.deployment.pod.metadata" $values | nindent 4 }} spec: containers: - name: {{ .Chart.Name }}-postgres image: {{ template "postgres.imageName" . }} imagePullPolicy: {{ .Values.image.pullPolicy }} env: {{ include "postgres.envVariableConfiguration" $values | nindent 10 }} - volumeMounts: - - name: postgres-data - mountPath: /var/lib/postgresql/data - - name: postgres-backup - mountPath: /postgres_backups + volumeMounts: {{ include "postgres.volumeMountsConfiguration" $values | nindent 10 }} ports: - name: postgres-tcp containerPort: 5432 From c2fb3d5d3656999ca87f4b2c976e6d7d5086035f Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Wed, 3 Feb 2021 22:36:25 +0500 Subject: [PATCH 68/84] Remove common method for volume configuration based on old format --- .../templates/lib/storage/_ixvolumes.tpl | 14 ----- .../templates/lib/storage/_volume.tpl | 52 ------------------- 2 files changed, 66 deletions(-) delete mode 100644 library/common/2101.0.0/templates/lib/storage/_volume.tpl diff --git a/library/common/2101.0.0/templates/lib/storage/_ixvolumes.tpl b/library/common/2101.0.0/templates/lib/storage/_ixvolumes.tpl index 4827d12b4d..f45b9d8d96 100644 --- a/library/common/2101.0.0/templates/lib/storage/_ixvolumes.tpl +++ b/library/common/2101.0.0/templates/lib/storage/_ixvolumes.tpl @@ -9,17 +9,3 @@ Retrieve host path from ix volumes based on dataset name {{- end -}} {{- end }} {{- end -}} - -{{/* -Retrieve host path from ix volumes based on a key -*/}} -{{- define "common.storage.configuredHostPath" -}} -{{- $values := . -}} -{{- if $values.hostPathEnabled -}} -{{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "pathField")) -}} -{{- $values.pathField -}} -{{- else -}} -{{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "datasetName" "ixVolumes")) -}} -{{- include "common.storage.retrieveHostPathFromiXVolume" (dict "datasetName" $values.datasetName "ixVolumes" $values.ixVolumes) -}} -{{- end -}} -{{- end -}} diff --git a/library/common/2101.0.0/templates/lib/storage/_volume.tpl b/library/common/2101.0.0/templates/lib/storage/_volume.tpl deleted file mode 100644 index 11037e6460..0000000000 --- a/library/common/2101.0.0/templates/lib/storage/_volume.tpl +++ /dev/null @@ -1,52 +0,0 @@ -{{/* -Retrieve volume configuration - -This expects a dictionary in the following format: -{ - "name": string, - "emptyDirVolumes": boolean, - "ixVolumes": list, - "hostPathEnabled": boolean, - "pathField": string, - "datasetName": string, -} -*/}} -{{- define "common.storage.volumeConfig" -}} -{{- $values := . -}} -{{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "name")) -}} -{{- if $values.emptyDirVolumes -}} -- name: {{ $values.name }} - emptyDir: {} -{{- else -}} -- name: {{ $values.name }} - hostPath: - path: {{ template "common.storage.configuredHostPath" $values }} -{{- end -}} -{{- end -}} - - -{{/* -Retrieve configuration for volumes - -This expects a dictionary to be provided in the following format: -{ - "ixVolumes": list, - "volumes": [ - { - "name": string, - "emptyDirVolumes": boolean, - "hostPathEnabled": boolean, - "pathField": string, - "datasetName": string, - } - ] ( list of dicts ) -} -*/}} -{{- define "common.storage.volumesConfiguration" -}} -{{- $values := . -}} -{{- include "common.schema.validateKeys" (dict "values" $values "checkKeys" (list "ixVolumes" "volumes")) -}} -{{- range $vol := $values.volumes -}} -{{- $_ := set $vol "ixVolumes" $values.ixVolumes -}} -{{- include "common.storage.volumeConfig" $vol | nindent 0 -}} -{{- end -}} -{{- end -}} From 531d99bee11c8248fb81749028cae63993c8eda6 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Wed, 3 Feb 2021 23:41:26 +0500 Subject: [PATCH 69/84] Update minio/plex/nextcloud migrations to read from a file --- test/minio/1.0.1/migrations/migrate | 5 ++++- test/nextcloud/1.1.0/migrations/migrate | 5 ++++- test/plex/1.0.1/migrations/migrate | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/test/minio/1.0.1/migrations/migrate b/test/minio/1.0.1/migrations/migrate index cb6ee8aa0b..f65d82b628 100755 --- a/test/minio/1.0.1/migrations/migrate +++ b/test/minio/1.0.1/migrations/migrate @@ -1,5 +1,6 @@ #!/usr/bin/python3 import json +import os import sys @@ -19,4 +20,6 @@ if __name__ == '__main__': if len(sys.argv) != 2: exit(1) - print(json.dumps(migrate(json.loads(sys.argv[1])))) + if os.path.exists(sys.argv[1]): + with open(sys.argv[1], 'r') as f: + print(json.dumps(migrate(json.loads(f.read())))) diff --git a/test/nextcloud/1.1.0/migrations/migrate b/test/nextcloud/1.1.0/migrations/migrate index be01e7a9f2..1977bf3806 100755 --- a/test/nextcloud/1.1.0/migrations/migrate +++ b/test/nextcloud/1.1.0/migrations/migrate @@ -1,5 +1,6 @@ #!/usr/bin/python3 import json +import os import sys @@ -20,4 +21,6 @@ if __name__ == '__main__': if len(sys.argv) != 2: exit(1) - print(json.dumps(migrate(json.loads(sys.argv[1])))) + if os.path.exists(sys.argv[1]): + with open(sys.argv[1], 'r') as f: + print(json.dumps(migrate(json.loads(f.read())))) diff --git a/test/plex/1.0.1/migrations/migrate b/test/plex/1.0.1/migrations/migrate index 7f0c1a4455..a93c1d9f47 100755 --- a/test/plex/1.0.1/migrations/migrate +++ b/test/plex/1.0.1/migrations/migrate @@ -1,5 +1,6 @@ #!/usr/bin/python3 import json +import os import sys @@ -28,4 +29,6 @@ if __name__ == '__main__': if len(sys.argv) != 2: exit(1) - print(json.dumps(migrate(json.loads(sys.argv[1])))) + if os.path.exists(sys.argv[1]): + with open(sys.argv[1], 'r') as f: + print(json.dumps(migrate(json.loads(f.read())))) From 40f4842c017e83e42a2e92f033f4abdf24615d69 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Thu, 4 Feb 2021 00:30:57 +0500 Subject: [PATCH 70/84] Add hidden attribute --- test/ipfs/1.0.1/questions.yaml | 6 +++++- test/minio/1.0.1/questions.yaml | 4 +++- test/nextcloud/1.1.0/questions.yaml | 3 +++ test/plex/1.0.1/questions.yaml | 14 +++++++++++--- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/test/ipfs/1.0.1/questions.yaml b/test/ipfs/1.0.1/questions.yaml index d1dde09926..b6fe95c464 100644 --- a/test/ipfs/1.0.1/questions.yaml +++ b/test/ipfs/1.0.1/questions.yaml @@ -136,6 +136,7 @@ questions: label: "IPFS Staging Volume Dataset Name" schema: type: string + hidden: true $ref: - "normalize/ixVolume" show_if: [["hostPathEnabled", "=", false]] @@ -146,6 +147,7 @@ questions: description: "Path where the volume will be mounted inside the pod" schema: type: path + hidden: true editable: false default: "/export" - variable: hostPathEnabled @@ -166,9 +168,10 @@ questions: type: dict attrs: - variable: datasetName - label: "IPFS Data Volume Dataset Name" + label: "IPFS Data Volume Name" schema: type: string + hidden: true $ref: - "normalize/ixVolume" show_if: [["hostPathEnabled", "=", false]] @@ -179,6 +182,7 @@ questions: description: "Path where the volume will be mounted inside the pod" schema: type: path + hidden: true editable: false default: "/data/ipfs" - variable: hostPathEnabled diff --git a/test/minio/1.0.1/questions.yaml b/test/minio/1.0.1/questions.yaml index 4a1605bf38..e4753328ae 100644 --- a/test/minio/1.0.1/questions.yaml +++ b/test/minio/1.0.1/questions.yaml @@ -150,9 +150,10 @@ questions: type: dict attrs: - variable: datasetName - label: "Minio Data Volume Dataset Name" + label: "Minio Data Volume Name" schema: type: string + hidden: true $ref: - "normalize/ixVolume" show_if: [["hostPathEnabled", "=", false]] @@ -163,6 +164,7 @@ questions: description: "Path where the volume will be mounted inside the pod" schema: type: path + hidden: true editable: false default: "/export" - variable: hostPathEnabled diff --git a/test/nextcloud/1.1.0/questions.yaml b/test/nextcloud/1.1.0/questions.yaml index bea8812ed5..e8e485abce 100644 --- a/test/nextcloud/1.1.0/questions.yaml +++ b/test/nextcloud/1.1.0/questions.yaml @@ -143,6 +143,7 @@ questions: label: "Nextcloud Data Volume Name" schema: type: string + hidden: true $ref: - "normalize/ixVolume" show_if: [["hostPathEnabled", "=", false]] @@ -153,6 +154,7 @@ questions: description: "Path where the volume will be mounted inside the pod" schema: type: path + hidden: true editable: false default: "/var/www" - variable: hostPathEnabled @@ -173,6 +175,7 @@ questions: group: "Storage" schema: type: dict + hidden: true attrs: - variable: postgres-data label: "Postgres Data Volume" diff --git a/test/plex/1.0.1/questions.yaml b/test/plex/1.0.1/questions.yaml index c6df63ec46..37649228de 100644 --- a/test/plex/1.0.1/questions.yaml +++ b/test/plex/1.0.1/questions.yaml @@ -162,19 +162,21 @@ questions: type: dict attrs: - variable: datasetName - label: "Plex Transcode Volume Dataset Name" + label: "Plex Transcode Volume Name" schema: type: string $ref: - "normalize/ixVolume" show_if: [["hostPathEnabled", "=", false]] default: "ix-plex_transcode" + hidden: true editable: false - variable: mountPath label: "Plex Transcode Mount Path" description: "Path where the volume will be mounted inside the pod" schema: type: path + hidden: true editable: false default: "/transcode" - variable: hostPathEnabled @@ -195,7 +197,7 @@ questions: type: dict attrs: - variable: datasetName - label: "Plex Data Volume Dataset Name" + label: "Plex Data Volume Name" schema: type: string $ref: @@ -203,11 +205,13 @@ questions: show_if: [["hostPathEnabled", "=", false]] default: "ix-plex_data" editable: false + hidden: true - variable: mountPath label: "Plex Data Mount Path" description: "Path where the volume will be mounted inside the pod" schema: type: path + hidden: true editable: false default: "/data" - variable: hostPathEnabled @@ -228,7 +232,7 @@ questions: type: dict attrs: - variable: datasetName - label: "Plex Config Volume Dataset Name" + label: "Plex Config Volume Name" schema: type: string $ref: @@ -236,12 +240,14 @@ questions: show_if: [["hostPathEnabled", "=", false]] default: "ix-plex_config" editable: false + hidden: true - variable: mountPath label: "Plex Config Mount Path" description: "Path where the volume will be mounted inside the pod" schema: type: path editable: false + hidden: true default: "/config" - variable: hostPathEnabled label: "Enable Host Path for Plex Config Volume" @@ -259,6 +265,7 @@ questions: label: "Shared Volume" schema: type: dict + hidden: true attrs: - variable: emptyDir label: "Temporary Volume" @@ -277,6 +284,7 @@ questions: label: "Shared Logs Volume" schema: type: dict + hidden: true attrs: - variable: emptyDir label: "Temporary Volume" From 654aa908cac3644574ce77a7525939f4ecb10780 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Thu, 4 Feb 2021 00:51:33 +0500 Subject: [PATCH 71/84] Update test values for plex/nextcloud/minio/ipfs charts --- test/ipfs/1.0.1/test_values.yaml | 10 +++++++--- test/ipfs/1.0.1/values.yaml | 10 ++++++++-- test/minio/1.0.1/test_values.yaml | 4 ++++ test/minio/1.0.1/values.yaml | 5 +++++ test/nextcloud/1.1.0/test_values.yaml | 16 +++++++++++++++- test/nextcloud/1.1.0/values.yaml | 13 +++++++++++++ test/plex/1.0.1/test_values.yaml | 19 ++++++++++++++++++- test/plex/1.0.1/values.yaml | 23 ++++++++++++++++++----- 8 files changed, 88 insertions(+), 12 deletions(-) diff --git a/test/ipfs/1.0.1/test_values.yaml b/test/ipfs/1.0.1/test_values.yaml index 7bf4c7840b..94e7d2493f 100644 --- a/test/ipfs/1.0.1/test_values.yaml +++ b/test/ipfs/1.0.1/test_values.yaml @@ -18,6 +18,10 @@ service: environment: emptyDirVolumes: true - -ipfsDataHostPathEnabled: false -ipfsStagingHostPathEnabled: false +appVolumeMounts: + staging: + emptyDir: true + mountPath: "/export" + data: + emptyDir: true + mountPath: "/data/ipfs" diff --git a/test/ipfs/1.0.1/values.yaml b/test/ipfs/1.0.1/values.yaml index 6c0c07c715..407c7a3732 100644 --- a/test/ipfs/1.0.1/values.yaml +++ b/test/ipfs/1.0.1/values.yaml @@ -17,5 +17,11 @@ service: environment: -ipfsDataHostPathEnabled: false -ipfsStagingHostPathEnabled: false +appVolumeMounts: + staging: + emptyDir: true + mountPath: "/export" + data: + emptyDir: true + mountPath: "/data/ipfs" + diff --git a/test/minio/1.0.1/test_values.yaml b/test/minio/1.0.1/test_values.yaml index 464cfbfa87..90dd2c1dd1 100644 --- a/test/minio/1.0.1/test_values.yaml +++ b/test/minio/1.0.1/test_values.yaml @@ -17,3 +17,7 @@ environment: ## Please refer for comprehensive list https://docs.minio.io/docs/minio-server-configuration-guide.html emptyDirVolumes: true +appVolumeMounts: + export: + emptyDir: true + mountPath: "/export" diff --git a/test/minio/1.0.1/values.yaml b/test/minio/1.0.1/values.yaml index 702573e993..7afa31dc0d 100644 --- a/test/minio/1.0.1/values.yaml +++ b/test/minio/1.0.1/values.yaml @@ -15,3 +15,8 @@ service: environment: ## Please refer for comprehensive list https://docs.minio.io/docs/minio-server-configuration-guide.html + +appVolumeMounts: + export: + emptyDir: true + mountPath: "/export" diff --git a/test/nextcloud/1.1.0/test_values.yaml b/test/nextcloud/1.1.0/test_values.yaml index 13feb4fc96..dbedec0cb5 100644 --- a/test/nextcloud/1.1.0/test_values.yaml +++ b/test/nextcloud/1.1.0/test_values.yaml @@ -11,7 +11,8 @@ nextcloud: username: admin password: changeme datadir: /var/www/html/data - strategy: "Recreate" + +updateStrategy: "Recreate" postgresql: backupVolume: @@ -26,3 +27,16 @@ service: emptyDirVolumes: true ixChartContext: {} + +appVolumeMounts: + nextcloud-data: + emptyDir: true + mountPath: "/var/www" + +postgresAppVolumeMounts: + postgres-data: + emptyDir: true + mountPath: "/var/lib/postgresql/data" + postgres-backup: + emptyDir: true + mountPath: "/postgres_backups" diff --git a/test/nextcloud/1.1.0/values.yaml b/test/nextcloud/1.1.0/values.yaml index b60ae4172f..6de7de5f74 100644 --- a/test/nextcloud/1.1.0/values.yaml +++ b/test/nextcloud/1.1.0/values.yaml @@ -15,3 +15,16 @@ nextcloud: service: nodePort: 9001 + +appVolumeMounts: + nextcloud-data: + emptyDir: true + mountPath: "/var/www" + +postgresAppVolumeMounts: + postgres-data: + emptyDir: true + mountPath: "/var/lib/postgresql/data" + postgres-backup: + emptyDir: true + mountPath: "/postgres_backups" diff --git a/test/plex/1.0.1/test_values.yaml b/test/plex/1.0.1/test_values.yaml index 53802c93f1..4c9d3395ab 100644 --- a/test/plex/1.0.1/test_values.yaml +++ b/test/plex/1.0.1/test_values.yaml @@ -50,7 +50,7 @@ timezone: "Etc/UTC" # TMPDIR: /transcode # upgrade strategy type (e.g. Recreate or RollingUpdate) -strategyType: Recreate +updateStrategy: "Recreate" plexServiceTCP: port: 32400 @@ -63,3 +63,20 @@ configHostPathEnabled: false gpuConfiguration: {} emptyDirVolumes: true + +appVolumeMounts: + transcode: + emptyDir: true + mountPath: "/transcode" + data: + emptyDir: true + mountPath: "/data" + config: + emptyDir: true + mountPath: "/config" + shared: + emptyDir: true + mountPath: "shared" + shared-logs: + emptyDir: true + mountPath: "/config/Library/Application Support/Plex Media Server/Logs" diff --git a/test/plex/1.0.1/values.yaml b/test/plex/1.0.1/values.yaml index f1a1754a54..12b8b12cc6 100644 --- a/test/plex/1.0.1/values.yaml +++ b/test/plex/1.0.1/values.yaml @@ -50,17 +50,13 @@ timezone: "Etc/UTC" # TMPDIR: /transcode # upgrade strategy type (e.g. Recreate or RollingUpdate) -strategyType: Recreate +updateStrategy: Recreate plexServiceTCP: port: 32400 hostNetwork: false -transcodeHostPathEnabled: false -dataHostPathEnabled: false -configHostPathEnabled: false - proxy: # This allows to set a proxy environment variable, which PMS uses to fetch the token and assets like movie cover enabled: false @@ -69,3 +65,20 @@ proxy: # noproxy: "localhost,127.0.0.1,10.96.0.0/12,10.244.0.0/12" gpuConfiguration: {} + +appVolumeMounts: + transcode: + emptyDir: true + mountPath: "/transcode" + data: + emptyDir: true + mountPath: "/data" + config: + emptyDir: true + mountPath: "/config" + shared: + emptyDir: true + mountPath: "shared" + shared-logs: + emptyDir: true + mountPath: "/config/Library/Application Support/Plex Media Server/Logs" From fa234612af5b7011d7c515c12a98c5143c1ff00e Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Thu, 4 Feb 2021 00:56:19 +0500 Subject: [PATCH 72/84] Add environment variables to test values --- .../2101.0.0/templates/lib/deployments/{_utils => _utils.tpl} | 0 test/ipfs/1.0.1/test_values.yaml | 2 +- test/minio/1.0.1/test_values.yaml | 2 +- test/nextcloud/1.1.0/test_values.yaml | 1 + test/plex/1.0.1/test_values.yaml | 4 +--- 5 files changed, 4 insertions(+), 5 deletions(-) rename library/common/2101.0.0/templates/lib/deployments/{_utils => _utils.tpl} (100%) diff --git a/library/common/2101.0.0/templates/lib/deployments/_utils b/library/common/2101.0.0/templates/lib/deployments/_utils.tpl similarity index 100% rename from library/common/2101.0.0/templates/lib/deployments/_utils rename to library/common/2101.0.0/templates/lib/deployments/_utils.tpl diff --git a/test/ipfs/1.0.1/test_values.yaml b/test/ipfs/1.0.1/test_values.yaml index 94e7d2493f..65b840021f 100644 --- a/test/ipfs/1.0.1/test_values.yaml +++ b/test/ipfs/1.0.1/test_values.yaml @@ -15,7 +15,7 @@ service: apiPort: 30951 gatewayPort: 30980 -environment: +environmentVariables: [] emptyDirVolumes: true appVolumeMounts: diff --git a/test/minio/1.0.1/test_values.yaml b/test/minio/1.0.1/test_values.yaml index 90dd2c1dd1..383d0bbdd5 100644 --- a/test/minio/1.0.1/test_values.yaml +++ b/test/minio/1.0.1/test_values.yaml @@ -13,7 +13,7 @@ updateStrategy: RollingUpdate service: nodePort: 32001 -environment: +environmentVariables: [] ## Please refer for comprehensive list https://docs.minio.io/docs/minio-server-configuration-guide.html emptyDirVolumes: true diff --git a/test/nextcloud/1.1.0/test_values.yaml b/test/nextcloud/1.1.0/test_values.yaml index dbedec0cb5..340b234bce 100644 --- a/test/nextcloud/1.1.0/test_values.yaml +++ b/test/nextcloud/1.1.0/test_values.yaml @@ -27,6 +27,7 @@ service: emptyDirVolumes: true ixChartContext: {} +environmentVariables: [] appVolumeMounts: nextcloud-data: diff --git a/test/plex/1.0.1/test_values.yaml b/test/plex/1.0.1/test_values.yaml index 4c9d3395ab..cfb8ac7e36 100644 --- a/test/plex/1.0.1/test_values.yaml +++ b/test/plex/1.0.1/test_values.yaml @@ -57,9 +57,7 @@ plexServiceTCP: hostNetwork: false -transcodeHostPathEnabled: false -dataHostPathEnabled: false -configHostPathEnabled: false +environmentVariables: [] gpuConfiguration: {} emptyDirVolumes: true From c6544724227671c9548da579d087e4232cb91c6b Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Thu, 4 Feb 2021 01:15:55 +0500 Subject: [PATCH 73/84] Updated catalog item dependencies (test train) Following items were updated: Updated nextcloud (1.1.0 versions) Updated ipfs (1.0.1 versions) Updated ix-chart (2101.0.0 versions) Updated minio (1.0.1 versions) Updated plex (1.0.1 versions) --- test/ipfs/1.0.1/charts/common-2101.0.0.tgz | Bin 0 -> 4018 bytes test/ipfs/1.0.1/requirements.lock | 6 ++++++ test/ix-chart/2101.0.0/Chart.lock | 6 ++++++ .../ix-chart/2101.0.0/charts/common-2101.0.0.tgz | Bin 0 -> 4018 bytes test/minio/1.0.1/charts/common-2101.0.0.tgz | Bin 0 -> 4018 bytes test/minio/1.0.1/requirements.lock | 6 ++++++ test/nextcloud/1.1.0/Chart.lock | 6 ++++++ test/nextcloud/1.1.0/charts/common-2101.0.0.tgz | Bin 0 -> 4018 bytes test/plex/1.0.1/Chart.lock | 6 ++++++ test/plex/1.0.1/charts/common-2101.0.0.tgz | Bin 0 -> 4018 bytes 10 files changed, 30 insertions(+) create mode 100644 test/ipfs/1.0.1/charts/common-2101.0.0.tgz create mode 100644 test/ipfs/1.0.1/requirements.lock create mode 100644 test/ix-chart/2101.0.0/Chart.lock create mode 100644 test/ix-chart/2101.0.0/charts/common-2101.0.0.tgz create mode 100644 test/minio/1.0.1/charts/common-2101.0.0.tgz create mode 100644 test/minio/1.0.1/requirements.lock create mode 100644 test/nextcloud/1.1.0/Chart.lock create mode 100644 test/nextcloud/1.1.0/charts/common-2101.0.0.tgz create mode 100644 test/plex/1.0.1/Chart.lock create mode 100644 test/plex/1.0.1/charts/common-2101.0.0.tgz diff --git a/test/ipfs/1.0.1/charts/common-2101.0.0.tgz b/test/ipfs/1.0.1/charts/common-2101.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..06538454fc50de880827adcb99a1fd802567ff15 GIT binary patch literal 4018 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 YvM%egF4gj{00030|5$4sS^#hW0NEni^8f$< literal 0 HcmV?d00001 diff --git a/test/ipfs/1.0.1/requirements.lock b/test/ipfs/1.0.1/requirements.lock new file mode 100644 index 0000000000..114aabb0a7 --- /dev/null +++ b/test/ipfs/1.0.1/requirements.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../library/common/2101.0.0 + version: 2101.0.0 +digest: sha256:6ab46f958de11ae6a24d8f7e18417aa9852a8d968d5b0cc94ffa4700449931d6 +generated: "2021-02-04T01:15:55.312886+05:00" diff --git a/test/ix-chart/2101.0.0/Chart.lock b/test/ix-chart/2101.0.0/Chart.lock new file mode 100644 index 0000000000..f863fc9fbd --- /dev/null +++ b/test/ix-chart/2101.0.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../library/common/2101.0.0 + version: 2101.0.0 +digest: sha256:6ab46f958de11ae6a24d8f7e18417aa9852a8d968d5b0cc94ffa4700449931d6 +generated: "2021-02-04T01:15:55.365517+05:00" diff --git a/test/ix-chart/2101.0.0/charts/common-2101.0.0.tgz b/test/ix-chart/2101.0.0/charts/common-2101.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..06538454fc50de880827adcb99a1fd802567ff15 GIT binary patch literal 4018 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 YvM%egF4gj{00030|5$4sS^#hW0NEni^8f$< literal 0 HcmV?d00001 diff --git a/test/minio/1.0.1/charts/common-2101.0.0.tgz b/test/minio/1.0.1/charts/common-2101.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..06538454fc50de880827adcb99a1fd802567ff15 GIT binary patch literal 4018 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 YvM%egF4gj{00030|5$4sS^#hW0NEni^8f$< literal 0 HcmV?d00001 diff --git a/test/minio/1.0.1/requirements.lock b/test/minio/1.0.1/requirements.lock new file mode 100644 index 0000000000..74ceebcbc1 --- /dev/null +++ b/test/minio/1.0.1/requirements.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../library/common/2101.0.0 + version: 2101.0.0 +digest: sha256:6ab46f958de11ae6a24d8f7e18417aa9852a8d968d5b0cc94ffa4700449931d6 +generated: "2021-02-04T01:15:55.416388+05:00" diff --git a/test/nextcloud/1.1.0/Chart.lock b/test/nextcloud/1.1.0/Chart.lock new file mode 100644 index 0000000000..7d79320192 --- /dev/null +++ b/test/nextcloud/1.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../library/common/2101.0.0 + version: 2101.0.0 +digest: sha256:6ab46f958de11ae6a24d8f7e18417aa9852a8d968d5b0cc94ffa4700449931d6 +generated: "2021-02-04T01:15:55.262077+05:00" diff --git a/test/nextcloud/1.1.0/charts/common-2101.0.0.tgz b/test/nextcloud/1.1.0/charts/common-2101.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..06538454fc50de880827adcb99a1fd802567ff15 GIT binary patch literal 4018 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 YvM%egF4gj{00030|5$4sS^#hW0NEni^8f$< literal 0 HcmV?d00001 diff --git a/test/plex/1.0.1/Chart.lock b/test/plex/1.0.1/Chart.lock new file mode 100644 index 0000000000..1bb2d56e4b --- /dev/null +++ b/test/plex/1.0.1/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../library/common/2101.0.0 + version: 2101.0.0 +digest: sha256:6ab46f958de11ae6a24d8f7e18417aa9852a8d968d5b0cc94ffa4700449931d6 +generated: "2021-02-04T01:15:55.470042+05:00" diff --git a/test/plex/1.0.1/charts/common-2101.0.0.tgz b/test/plex/1.0.1/charts/common-2101.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..06538454fc50de880827adcb99a1fd802567ff15 GIT binary patch literal 4018 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 YvM%egF4gj{00030|5$4sS^#hW0NEni^8f$< literal 0 HcmV?d00001 From b710b9c183a9af398b890594d7bb2c4749483a3a Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 5 Feb 2021 02:11:38 +0500 Subject: [PATCH 74/84] Update chart versions for minio/nextcloud/plex versions --- test/minio/{1.0.1 => 1.1.0}/.helmignore | 0 test/minio/{1.0.1 => 1.1.0}/Chart.yaml | 2 +- test/minio/{1.0.1 => 1.1.0}/README.md | 0 test/minio/{1.0.1 => 1.1.0}/app-readme.md | 0 .../{1.0.1 => 1.1.0}/charts/common-2101.0.0.tgz | Bin test/minio/{1.0.1 => 1.1.0}/migrations/migrate | 0 test/minio/{1.0.1 => 1.1.0}/questions.yaml | 0 test/minio/{1.0.1 => 1.1.0}/requirements.lock | 0 test/minio/{1.0.1 => 1.1.0}/templates/NOTES.txt | 0 test/minio/{1.0.1 => 1.1.0}/templates/_helpers.tpl | 0 .../{1.0.1 => 1.1.0}/templates/deployment.yaml | 0 test/minio/{1.0.1 => 1.1.0}/templates/secrets.yaml | 0 test/minio/{1.0.1 => 1.1.0}/templates/service.yaml | 0 .../{1.0.1 => 1.1.0}/templates/serviceaccount.yaml | 0 test/minio/{1.0.1 => 1.1.0}/test_values.yaml | 0 test/minio/{1.0.1 => 1.1.0}/values.yaml | 0 test/nextcloud/{1.1.0 => 1.2.0}/.helmignore | 0 test/nextcloud/{1.1.0 => 1.2.0}/Chart.lock | 0 test/nextcloud/{1.1.0 => 1.2.0}/Chart.yaml | 2 +- test/nextcloud/{1.1.0 => 1.2.0}/README.md | 0 test/nextcloud/{1.1.0 => 1.2.0}/app-readme.md | 0 .../{1.1.0 => 1.2.0}/charts/common-2101.0.0.tgz | Bin test/nextcloud/{1.1.0 => 1.2.0}/migrations/migrate | 0 test/nextcloud/{1.1.0 => 1.2.0}/questions.yaml | 0 test/nextcloud/{1.1.0 => 1.2.0}/templates/NOTES.txt | 0 .../{1.1.0 => 1.2.0}/templates/_postgres.tpl | 0 .../templates/backup-postgres-config.yaml | 0 .../templates/backup-postgres-hook.yaml | 0 .../{1.1.0 => 1.2.0}/templates/deployment.yaml | 0 .../templates/nuke-deployments-hook.yaml | 0 .../templates/postgres-deployment.yaml | 0 .../{1.1.0 => 1.2.0}/templates/postgres-secret.yaml | 0 .../templates/postgres-service.yaml | 0 .../{1.1.0 => 1.2.0}/templates/secrets.yaml | 0 .../{1.1.0 => 1.2.0}/templates/service.yaml | 0 .../{1.1.0 => 1.2.0}/templates/serviceaccount.yaml | 0 test/nextcloud/{1.1.0 => 1.2.0}/test_values.yaml | 0 test/nextcloud/{1.1.0 => 1.2.0}/values.yaml | 0 test/plex/{1.0.1 => 1.1.0}/.helmignore | 0 test/plex/{1.0.1 => 1.1.0}/Chart.lock | 0 test/plex/{1.0.1 => 1.1.0}/Chart.yaml | 2 +- test/plex/{1.0.1 => 1.1.0}/README.md | 0 test/plex/{1.0.1 => 1.1.0}/app-readme.md | 0 .../{1.0.1 => 1.1.0}/charts/common-2101.0.0.tgz | Bin test/plex/{1.0.1 => 1.1.0}/migrations/migrate | 0 test/plex/{1.0.1 => 1.1.0}/questions.yaml | 0 test/plex/{1.0.1 => 1.1.0}/templates/NOTES.txt | 0 .../plex/{1.0.1 => 1.1.0}/templates/deployment.yaml | 0 .../{1.0.1 => 1.1.0}/templates/service-tcp.yaml | 0 .../{1.0.1 => 1.1.0}/templates/service-udp.yaml | 0 test/plex/{1.0.1 => 1.1.0}/test_values.yaml | 0 test/plex/{1.0.1 => 1.1.0}/values.yaml | 0 52 files changed, 3 insertions(+), 3 deletions(-) rename test/minio/{1.0.1 => 1.1.0}/.helmignore (100%) rename test/minio/{1.0.1 => 1.1.0}/Chart.yaml (96%) rename test/minio/{1.0.1 => 1.1.0}/README.md (100%) rename test/minio/{1.0.1 => 1.1.0}/app-readme.md (100%) rename test/minio/{1.0.1 => 1.1.0}/charts/common-2101.0.0.tgz (100%) rename test/minio/{1.0.1 => 1.1.0}/migrations/migrate (100%) rename test/minio/{1.0.1 => 1.1.0}/questions.yaml (100%) rename test/minio/{1.0.1 => 1.1.0}/requirements.lock (100%) rename test/minio/{1.0.1 => 1.1.0}/templates/NOTES.txt (100%) rename test/minio/{1.0.1 => 1.1.0}/templates/_helpers.tpl (100%) rename test/minio/{1.0.1 => 1.1.0}/templates/deployment.yaml (100%) rename test/minio/{1.0.1 => 1.1.0}/templates/secrets.yaml (100%) rename test/minio/{1.0.1 => 1.1.0}/templates/service.yaml (100%) rename test/minio/{1.0.1 => 1.1.0}/templates/serviceaccount.yaml (100%) rename test/minio/{1.0.1 => 1.1.0}/test_values.yaml (100%) rename test/minio/{1.0.1 => 1.1.0}/values.yaml (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/.helmignore (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/Chart.lock (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/Chart.yaml (97%) rename test/nextcloud/{1.1.0 => 1.2.0}/README.md (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/app-readme.md (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/charts/common-2101.0.0.tgz (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/migrations/migrate (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/questions.yaml (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/templates/NOTES.txt (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/templates/_postgres.tpl (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/templates/backup-postgres-config.yaml (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/templates/backup-postgres-hook.yaml (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/templates/deployment.yaml (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/templates/nuke-deployments-hook.yaml (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/templates/postgres-deployment.yaml (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/templates/postgres-secret.yaml (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/templates/postgres-service.yaml (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/templates/secrets.yaml (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/templates/service.yaml (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/templates/serviceaccount.yaml (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/test_values.yaml (100%) rename test/nextcloud/{1.1.0 => 1.2.0}/values.yaml (100%) rename test/plex/{1.0.1 => 1.1.0}/.helmignore (100%) rename test/plex/{1.0.1 => 1.1.0}/Chart.lock (100%) rename test/plex/{1.0.1 => 1.1.0}/Chart.yaml (96%) rename test/plex/{1.0.1 => 1.1.0}/README.md (100%) rename test/plex/{1.0.1 => 1.1.0}/app-readme.md (100%) rename test/plex/{1.0.1 => 1.1.0}/charts/common-2101.0.0.tgz (100%) rename test/plex/{1.0.1 => 1.1.0}/migrations/migrate (100%) rename test/plex/{1.0.1 => 1.1.0}/questions.yaml (100%) rename test/plex/{1.0.1 => 1.1.0}/templates/NOTES.txt (100%) rename test/plex/{1.0.1 => 1.1.0}/templates/deployment.yaml (100%) rename test/plex/{1.0.1 => 1.1.0}/templates/service-tcp.yaml (100%) rename test/plex/{1.0.1 => 1.1.0}/templates/service-udp.yaml (100%) rename test/plex/{1.0.1 => 1.1.0}/test_values.yaml (100%) rename test/plex/{1.0.1 => 1.1.0}/values.yaml (100%) diff --git a/test/minio/1.0.1/.helmignore b/test/minio/1.1.0/.helmignore similarity index 100% rename from test/minio/1.0.1/.helmignore rename to test/minio/1.1.0/.helmignore diff --git a/test/minio/1.0.1/Chart.yaml b/test/minio/1.1.0/Chart.yaml similarity index 96% rename from test/minio/1.0.1/Chart.yaml rename to test/minio/1.1.0/Chart.yaml index 04f502db79..52ba59d832 100644 --- a/test/minio/1.0.1/Chart.yaml +++ b/test/minio/1.1.0/Chart.yaml @@ -1,7 +1,7 @@ apiVersion: v1 description: High Performance, Kubernetes Native Object Storage name: minio -version: 1.0.1 +version: 1.1.0 appVersion: master keywords: - storage diff --git a/test/minio/1.0.1/README.md b/test/minio/1.1.0/README.md similarity index 100% rename from test/minio/1.0.1/README.md rename to test/minio/1.1.0/README.md diff --git a/test/minio/1.0.1/app-readme.md b/test/minio/1.1.0/app-readme.md similarity index 100% rename from test/minio/1.0.1/app-readme.md rename to test/minio/1.1.0/app-readme.md diff --git a/test/minio/1.0.1/charts/common-2101.0.0.tgz b/test/minio/1.1.0/charts/common-2101.0.0.tgz similarity index 100% rename from test/minio/1.0.1/charts/common-2101.0.0.tgz rename to test/minio/1.1.0/charts/common-2101.0.0.tgz diff --git a/test/minio/1.0.1/migrations/migrate b/test/minio/1.1.0/migrations/migrate similarity index 100% rename from test/minio/1.0.1/migrations/migrate rename to test/minio/1.1.0/migrations/migrate diff --git a/test/minio/1.0.1/questions.yaml b/test/minio/1.1.0/questions.yaml similarity index 100% rename from test/minio/1.0.1/questions.yaml rename to test/minio/1.1.0/questions.yaml diff --git a/test/minio/1.0.1/requirements.lock b/test/minio/1.1.0/requirements.lock similarity index 100% rename from test/minio/1.0.1/requirements.lock rename to test/minio/1.1.0/requirements.lock diff --git a/test/minio/1.0.1/templates/NOTES.txt b/test/minio/1.1.0/templates/NOTES.txt similarity index 100% rename from test/minio/1.0.1/templates/NOTES.txt rename to test/minio/1.1.0/templates/NOTES.txt diff --git a/test/minio/1.0.1/templates/_helpers.tpl b/test/minio/1.1.0/templates/_helpers.tpl similarity index 100% rename from test/minio/1.0.1/templates/_helpers.tpl rename to test/minio/1.1.0/templates/_helpers.tpl diff --git a/test/minio/1.0.1/templates/deployment.yaml b/test/minio/1.1.0/templates/deployment.yaml similarity index 100% rename from test/minio/1.0.1/templates/deployment.yaml rename to test/minio/1.1.0/templates/deployment.yaml diff --git a/test/minio/1.0.1/templates/secrets.yaml b/test/minio/1.1.0/templates/secrets.yaml similarity index 100% rename from test/minio/1.0.1/templates/secrets.yaml rename to test/minio/1.1.0/templates/secrets.yaml diff --git a/test/minio/1.0.1/templates/service.yaml b/test/minio/1.1.0/templates/service.yaml similarity index 100% rename from test/minio/1.0.1/templates/service.yaml rename to test/minio/1.1.0/templates/service.yaml diff --git a/test/minio/1.0.1/templates/serviceaccount.yaml b/test/minio/1.1.0/templates/serviceaccount.yaml similarity index 100% rename from test/minio/1.0.1/templates/serviceaccount.yaml rename to test/minio/1.1.0/templates/serviceaccount.yaml diff --git a/test/minio/1.0.1/test_values.yaml b/test/minio/1.1.0/test_values.yaml similarity index 100% rename from test/minio/1.0.1/test_values.yaml rename to test/minio/1.1.0/test_values.yaml diff --git a/test/minio/1.0.1/values.yaml b/test/minio/1.1.0/values.yaml similarity index 100% rename from test/minio/1.0.1/values.yaml rename to test/minio/1.1.0/values.yaml diff --git a/test/nextcloud/1.1.0/.helmignore b/test/nextcloud/1.2.0/.helmignore similarity index 100% rename from test/nextcloud/1.1.0/.helmignore rename to test/nextcloud/1.2.0/.helmignore diff --git a/test/nextcloud/1.1.0/Chart.lock b/test/nextcloud/1.2.0/Chart.lock similarity index 100% rename from test/nextcloud/1.1.0/Chart.lock rename to test/nextcloud/1.2.0/Chart.lock diff --git a/test/nextcloud/1.1.0/Chart.yaml b/test/nextcloud/1.2.0/Chart.yaml similarity index 97% rename from test/nextcloud/1.1.0/Chart.yaml rename to test/nextcloud/1.2.0/Chart.yaml index 84274be30c..4639feeae2 100644 --- a/test/nextcloud/1.1.0/Chart.yaml +++ b/test/nextcloud/1.2.0/Chart.yaml @@ -1,6 +1,6 @@ apiVersion: v2 name: nextcloud -version: 1.1.0 +version: 1.2.0 appVersion: 19.0.3 description: A file sharing server that puts the control and security of your own data back into your hands. keywords: diff --git a/test/nextcloud/1.1.0/README.md b/test/nextcloud/1.2.0/README.md similarity index 100% rename from test/nextcloud/1.1.0/README.md rename to test/nextcloud/1.2.0/README.md diff --git a/test/nextcloud/1.1.0/app-readme.md b/test/nextcloud/1.2.0/app-readme.md similarity index 100% rename from test/nextcloud/1.1.0/app-readme.md rename to test/nextcloud/1.2.0/app-readme.md diff --git a/test/nextcloud/1.1.0/charts/common-2101.0.0.tgz b/test/nextcloud/1.2.0/charts/common-2101.0.0.tgz similarity index 100% rename from test/nextcloud/1.1.0/charts/common-2101.0.0.tgz rename to test/nextcloud/1.2.0/charts/common-2101.0.0.tgz diff --git a/test/nextcloud/1.1.0/migrations/migrate b/test/nextcloud/1.2.0/migrations/migrate similarity index 100% rename from test/nextcloud/1.1.0/migrations/migrate rename to test/nextcloud/1.2.0/migrations/migrate diff --git a/test/nextcloud/1.1.0/questions.yaml b/test/nextcloud/1.2.0/questions.yaml similarity index 100% rename from test/nextcloud/1.1.0/questions.yaml rename to test/nextcloud/1.2.0/questions.yaml diff --git a/test/nextcloud/1.1.0/templates/NOTES.txt b/test/nextcloud/1.2.0/templates/NOTES.txt similarity index 100% rename from test/nextcloud/1.1.0/templates/NOTES.txt rename to test/nextcloud/1.2.0/templates/NOTES.txt diff --git a/test/nextcloud/1.1.0/templates/_postgres.tpl b/test/nextcloud/1.2.0/templates/_postgres.tpl similarity index 100% rename from test/nextcloud/1.1.0/templates/_postgres.tpl rename to test/nextcloud/1.2.0/templates/_postgres.tpl diff --git a/test/nextcloud/1.1.0/templates/backup-postgres-config.yaml b/test/nextcloud/1.2.0/templates/backup-postgres-config.yaml similarity index 100% rename from test/nextcloud/1.1.0/templates/backup-postgres-config.yaml rename to test/nextcloud/1.2.0/templates/backup-postgres-config.yaml diff --git a/test/nextcloud/1.1.0/templates/backup-postgres-hook.yaml b/test/nextcloud/1.2.0/templates/backup-postgres-hook.yaml similarity index 100% rename from test/nextcloud/1.1.0/templates/backup-postgres-hook.yaml rename to test/nextcloud/1.2.0/templates/backup-postgres-hook.yaml diff --git a/test/nextcloud/1.1.0/templates/deployment.yaml b/test/nextcloud/1.2.0/templates/deployment.yaml similarity index 100% rename from test/nextcloud/1.1.0/templates/deployment.yaml rename to test/nextcloud/1.2.0/templates/deployment.yaml diff --git a/test/nextcloud/1.1.0/templates/nuke-deployments-hook.yaml b/test/nextcloud/1.2.0/templates/nuke-deployments-hook.yaml similarity index 100% rename from test/nextcloud/1.1.0/templates/nuke-deployments-hook.yaml rename to test/nextcloud/1.2.0/templates/nuke-deployments-hook.yaml diff --git a/test/nextcloud/1.1.0/templates/postgres-deployment.yaml b/test/nextcloud/1.2.0/templates/postgres-deployment.yaml similarity index 100% rename from test/nextcloud/1.1.0/templates/postgres-deployment.yaml rename to test/nextcloud/1.2.0/templates/postgres-deployment.yaml diff --git a/test/nextcloud/1.1.0/templates/postgres-secret.yaml b/test/nextcloud/1.2.0/templates/postgres-secret.yaml similarity index 100% rename from test/nextcloud/1.1.0/templates/postgres-secret.yaml rename to test/nextcloud/1.2.0/templates/postgres-secret.yaml diff --git a/test/nextcloud/1.1.0/templates/postgres-service.yaml b/test/nextcloud/1.2.0/templates/postgres-service.yaml similarity index 100% rename from test/nextcloud/1.1.0/templates/postgres-service.yaml rename to test/nextcloud/1.2.0/templates/postgres-service.yaml diff --git a/test/nextcloud/1.1.0/templates/secrets.yaml b/test/nextcloud/1.2.0/templates/secrets.yaml similarity index 100% rename from test/nextcloud/1.1.0/templates/secrets.yaml rename to test/nextcloud/1.2.0/templates/secrets.yaml diff --git a/test/nextcloud/1.1.0/templates/service.yaml b/test/nextcloud/1.2.0/templates/service.yaml similarity index 100% rename from test/nextcloud/1.1.0/templates/service.yaml rename to test/nextcloud/1.2.0/templates/service.yaml diff --git a/test/nextcloud/1.1.0/templates/serviceaccount.yaml b/test/nextcloud/1.2.0/templates/serviceaccount.yaml similarity index 100% rename from test/nextcloud/1.1.0/templates/serviceaccount.yaml rename to test/nextcloud/1.2.0/templates/serviceaccount.yaml diff --git a/test/nextcloud/1.1.0/test_values.yaml b/test/nextcloud/1.2.0/test_values.yaml similarity index 100% rename from test/nextcloud/1.1.0/test_values.yaml rename to test/nextcloud/1.2.0/test_values.yaml diff --git a/test/nextcloud/1.1.0/values.yaml b/test/nextcloud/1.2.0/values.yaml similarity index 100% rename from test/nextcloud/1.1.0/values.yaml rename to test/nextcloud/1.2.0/values.yaml diff --git a/test/plex/1.0.1/.helmignore b/test/plex/1.1.0/.helmignore similarity index 100% rename from test/plex/1.0.1/.helmignore rename to test/plex/1.1.0/.helmignore diff --git a/test/plex/1.0.1/Chart.lock b/test/plex/1.1.0/Chart.lock similarity index 100% rename from test/plex/1.0.1/Chart.lock rename to test/plex/1.1.0/Chart.lock diff --git a/test/plex/1.0.1/Chart.yaml b/test/plex/1.1.0/Chart.yaml similarity index 96% rename from test/plex/1.0.1/Chart.yaml rename to test/plex/1.1.0/Chart.yaml index d0b16df4a9..2d82d67bc3 100644 --- a/test/plex/1.0.1/Chart.yaml +++ b/test/plex/1.1.0/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 appVersion: 1.20.2.3402 description: Plex Media Server name: plex -version: 1.0.1 +version: 1.1.0 keywords: - plex home: https://plex.tv/ diff --git a/test/plex/1.0.1/README.md b/test/plex/1.1.0/README.md similarity index 100% rename from test/plex/1.0.1/README.md rename to test/plex/1.1.0/README.md diff --git a/test/plex/1.0.1/app-readme.md b/test/plex/1.1.0/app-readme.md similarity index 100% rename from test/plex/1.0.1/app-readme.md rename to test/plex/1.1.0/app-readme.md diff --git a/test/plex/1.0.1/charts/common-2101.0.0.tgz b/test/plex/1.1.0/charts/common-2101.0.0.tgz similarity index 100% rename from test/plex/1.0.1/charts/common-2101.0.0.tgz rename to test/plex/1.1.0/charts/common-2101.0.0.tgz diff --git a/test/plex/1.0.1/migrations/migrate b/test/plex/1.1.0/migrations/migrate similarity index 100% rename from test/plex/1.0.1/migrations/migrate rename to test/plex/1.1.0/migrations/migrate diff --git a/test/plex/1.0.1/questions.yaml b/test/plex/1.1.0/questions.yaml similarity index 100% rename from test/plex/1.0.1/questions.yaml rename to test/plex/1.1.0/questions.yaml diff --git a/test/plex/1.0.1/templates/NOTES.txt b/test/plex/1.1.0/templates/NOTES.txt similarity index 100% rename from test/plex/1.0.1/templates/NOTES.txt rename to test/plex/1.1.0/templates/NOTES.txt diff --git a/test/plex/1.0.1/templates/deployment.yaml b/test/plex/1.1.0/templates/deployment.yaml similarity index 100% rename from test/plex/1.0.1/templates/deployment.yaml rename to test/plex/1.1.0/templates/deployment.yaml diff --git a/test/plex/1.0.1/templates/service-tcp.yaml b/test/plex/1.1.0/templates/service-tcp.yaml similarity index 100% rename from test/plex/1.0.1/templates/service-tcp.yaml rename to test/plex/1.1.0/templates/service-tcp.yaml diff --git a/test/plex/1.0.1/templates/service-udp.yaml b/test/plex/1.1.0/templates/service-udp.yaml similarity index 100% rename from test/plex/1.0.1/templates/service-udp.yaml rename to test/plex/1.1.0/templates/service-udp.yaml diff --git a/test/plex/1.0.1/test_values.yaml b/test/plex/1.1.0/test_values.yaml similarity index 100% rename from test/plex/1.0.1/test_values.yaml rename to test/plex/1.1.0/test_values.yaml diff --git a/test/plex/1.0.1/values.yaml b/test/plex/1.1.0/values.yaml similarity index 100% rename from test/plex/1.0.1/values.yaml rename to test/plex/1.1.0/values.yaml From d7a1faa01b721a7e48a619fc1fd9945afc8b1882 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 5 Feb 2021 03:52:57 +0500 Subject: [PATCH 75/84] Add name suffix after evaluating name --- library/common/2101.0.0/templates/lib/chart/_names.tpl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/common/2101.0.0/templates/lib/chart/_names.tpl b/library/common/2101.0.0/templates/lib/chart/_names.tpl index 5435145bd1..626de2c24a 100644 --- a/library/common/2101.0.0/templates/lib/chart/_names.tpl +++ b/library/common/2101.0.0/templates/lib/chart/_names.tpl @@ -21,14 +21,14 @@ If release name contains chart name it will be used as a full name. {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} {{- else }} {{- $name := default .Chart.Name .Values.nameOverride }} -{{- if hasKey $values "nameSuffix" -}} - {{- $name = (printf "%v-%v" $name $values.nameSuffix) -}} -{{ end -}} {{- if contains $name .Release.Name }} {{- $name = (.Release.Name | trunc 63 | trimSuffix "-") }} {{- else }} {{- $name = (printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-") }} {{- end }} +{{- if hasKey $values "nameSuffix" -}} + {{- $name = (printf "%v-%v" $name $values.nameSuffix) -}} +{{ end -}} {{- print $name -}} {{- end }} {{- end }} From 68d7eace3be237b0aca14cdc323b229d9b4fb770 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 5 Feb 2021 14:32:50 +0500 Subject: [PATCH 76/84] Allow overriding service account name --- library/common/2101.0.0/templates/lib/chart/_names.tpl | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/library/common/2101.0.0/templates/lib/chart/_names.tpl b/library/common/2101.0.0/templates/lib/chart/_names.tpl index 626de2c24a..e98c6b4e6f 100644 --- a/library/common/2101.0.0/templates/lib/chart/_names.tpl +++ b/library/common/2101.0.0/templates/lib/chart/_names.tpl @@ -44,7 +44,11 @@ Create chart name and version as used by the chart label. Determine service account name for deployment or statefulset. */}} {{- define "common.names.serviceAccountName" -}} -{{- (include "common.names.fullname" .) | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- if .Values.serviceAccountNameOverride }} +{{- .Values.serviceAccountNameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-service-account" (include "common.names.releaseName" .) | replace "+" "_" | trunc 63 | trimSuffix "-" -}} +{{- end -}} {{- end -}} From 740e328048b05775fc4403206fa17050a351143c Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 5 Feb 2021 16:12:34 +0500 Subject: [PATCH 77/84] Rename values.yaml to default_values.yaml as they are evaluated on upgrades by helm even if not explicitly specified --- test/ipfs/1.0.1/{values.yaml => default_values.yaml} | 0 test/ix-chart/2101.0.0/{values.yaml => default_values.yaml} | 0 test/minio/1.1.0/{values.yaml => default_values.yaml} | 0 test/nextcloud/1.2.0/{values.yaml => default_values.yaml} | 0 test/plex/1.1.0/{values.yaml => default_values.yaml} | 0 5 files changed, 0 insertions(+), 0 deletions(-) rename test/ipfs/1.0.1/{values.yaml => default_values.yaml} (100%) rename test/ix-chart/2101.0.0/{values.yaml => default_values.yaml} (100%) rename test/minio/1.1.0/{values.yaml => default_values.yaml} (100%) rename test/nextcloud/1.2.0/{values.yaml => default_values.yaml} (100%) rename test/plex/1.1.0/{values.yaml => default_values.yaml} (100%) diff --git a/test/ipfs/1.0.1/values.yaml b/test/ipfs/1.0.1/default_values.yaml similarity index 100% rename from test/ipfs/1.0.1/values.yaml rename to test/ipfs/1.0.1/default_values.yaml diff --git a/test/ix-chart/2101.0.0/values.yaml b/test/ix-chart/2101.0.0/default_values.yaml similarity index 100% rename from test/ix-chart/2101.0.0/values.yaml rename to test/ix-chart/2101.0.0/default_values.yaml diff --git a/test/minio/1.1.0/values.yaml b/test/minio/1.1.0/default_values.yaml similarity index 100% rename from test/minio/1.1.0/values.yaml rename to test/minio/1.1.0/default_values.yaml diff --git a/test/nextcloud/1.2.0/values.yaml b/test/nextcloud/1.2.0/default_values.yaml similarity index 100% rename from test/nextcloud/1.2.0/values.yaml rename to test/nextcloud/1.2.0/default_values.yaml diff --git a/test/plex/1.1.0/values.yaml b/test/plex/1.1.0/default_values.yaml similarity index 100% rename from test/plex/1.1.0/values.yaml rename to test/plex/1.1.0/default_values.yaml From 94dbc6a0d755cb309f8871f4ef393ca4196a3a2b Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 5 Feb 2021 16:12:40 +0500 Subject: [PATCH 78/84] Updated catalog item dependencies (test train) Following items were updated: Updated nextcloud (1.2.0 versions) Updated ipfs (1.0.1 versions) Updated ix-chart (2101.0.0 versions) Updated minio (1.1.0 versions) Updated plex (1.1.0 versions) --- test/ipfs/1.0.1/charts/common-2101.0.0.tgz | Bin 4018 -> 4043 bytes .../2101.0.0/charts/common-2101.0.0.tgz | Bin 4018 -> 4043 bytes test/minio/1.1.0/charts/common-2101.0.0.tgz | Bin 4018 -> 4043 bytes .../1.2.0/charts/common-2101.0.0.tgz | Bin 4018 -> 4044 bytes test/plex/1.1.0/charts/common-2101.0.0.tgz | Bin 4018 -> 4043 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/test/ipfs/1.0.1/charts/common-2101.0.0.tgz b/test/ipfs/1.0.1/charts/common-2101.0.0.tgz index 06538454fc50de880827adcb99a1fd802567ff15..61dbbe5340c353200b6f0b9d4b7104f325388f9c 100644 GIT binary patch delta 4021 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 delta 3996 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 C!P{s6 diff --git a/test/ix-chart/2101.0.0/charts/common-2101.0.0.tgz b/test/ix-chart/2101.0.0/charts/common-2101.0.0.tgz index 06538454fc50de880827adcb99a1fd802567ff15..61dbbe5340c353200b6f0b9d4b7104f325388f9c 100644 GIT binary patch delta 4021 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 delta 3996 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 C!P{s6 diff --git a/test/minio/1.1.0/charts/common-2101.0.0.tgz b/test/minio/1.1.0/charts/common-2101.0.0.tgz index 06538454fc50de880827adcb99a1fd802567ff15..61dbbe5340c353200b6f0b9d4b7104f325388f9c 100644 GIT binary patch delta 4021 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 delta 3996 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 C!P{s6 diff --git a/test/nextcloud/1.2.0/charts/common-2101.0.0.tgz b/test/nextcloud/1.2.0/charts/common-2101.0.0.tgz index 06538454fc50de880827adcb99a1fd802567ff15..2ada10b325074f508b0f73e27d999689ba9500e6 100644 GIT binary patch delta 3939 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 delta 3936 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 diff --git a/test/plex/1.1.0/charts/common-2101.0.0.tgz b/test/plex/1.1.0/charts/common-2101.0.0.tgz index 06538454fc50de880827adcb99a1fd802567ff15..61dbbe5340c353200b6f0b9d4b7104f325388f9c 100644 GIT binary patch delta 4021 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 delta 3996 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 C!P{s6 From e7c698899c84a6b8eb6d4dab7df478ec284736d0 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 5 Feb 2021 16:40:50 +0500 Subject: [PATCH 79/84] Add placeholder values.yaml --- test/ipfs/1.0.1/values.yaml | 0 test/ix-chart/2101.0.0/values.yaml | 0 test/minio/1.1.0/values.yaml | 0 test/nextcloud/1.2.0/values.yaml | 0 test/plex/1.1.0/values.yaml | 0 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 test/ipfs/1.0.1/values.yaml create mode 100644 test/ix-chart/2101.0.0/values.yaml create mode 100644 test/minio/1.1.0/values.yaml create mode 100644 test/nextcloud/1.2.0/values.yaml create mode 100644 test/plex/1.1.0/values.yaml diff --git a/test/ipfs/1.0.1/values.yaml b/test/ipfs/1.0.1/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/ix-chart/2101.0.0/values.yaml b/test/ix-chart/2101.0.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/minio/1.1.0/values.yaml b/test/minio/1.1.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/nextcloud/1.2.0/values.yaml b/test/nextcloud/1.2.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 diff --git a/test/plex/1.1.0/values.yaml b/test/plex/1.1.0/values.yaml new file mode 100644 index 0000000000..e69de29bb2 From b647d471c1c1244522116369ba7cf57d70fe4849 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 5 Feb 2021 17:14:05 +0500 Subject: [PATCH 80/84] Update minio deployment labels to be backwards compatible --- test/minio/1.1.0/templates/deployment.yaml | 27 +++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/test/minio/1.1.0/templates/deployment.yaml b/test/minio/1.1.0/templates/deployment.yaml index 004a86e4f5..ae397ed840 100644 --- a/test/minio/1.1.0/templates/deployment.yaml +++ b/test/minio/1.1.0/templates/deployment.yaml @@ -1,7 +1,28 @@ {{ $scheme := "http" }} -{{ include "common.deployment.common_config" . | nindent 0 }} -spec: {{ include "common.deployment.common_spec" . | nindent 2 }} - template: {{ include "common.deployment.pod.metadata" . | nindent 4 }} +apiVersion: {{ template "common.capabilities.deployment.apiVersion" . }} +kind: Deployment +metadata: + name: {{ template "common.names.fullname" . }} + labels: + app: {{ template "common.names.name" . }} + chart: {{ template "common.names.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + replicas: {{ (default 1 .Values.replicas) }} + strategy: + type: {{ (default "Recreate" .Values.updateStrategy ) }} + selector: + matchLabels: + app: {{ template "common.names.name" . }} + release: {{ .Release.Name }} + template: + metadata: + name: {{ template "common.names.fullname" . }} + labels: + app: {{ template "common.names.name" . }} + release: {{ .Release.Name }} + annotations: {{ include "common.annotations" . | nindent 8 }} spec: serviceAccountName: {{ include "common.names.serviceAccountName" . | quote }} containers: From 0960e8b2cd18bd5acaea8b69ce188b60b049f658 Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 5 Feb 2021 17:48:44 +0500 Subject: [PATCH 81/84] Allow specifying extra selector labels --- library/common/2101.0.0/templates/lib/chart/_labels.tpl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/library/common/2101.0.0/templates/lib/chart/_labels.tpl b/library/common/2101.0.0/templates/lib/chart/_labels.tpl index 7415a9daa0..f64aead636 100644 --- a/library/common/2101.0.0/templates/lib/chart/_labels.tpl +++ b/library/common/2101.0.0/templates/lib/chart/_labels.tpl @@ -16,4 +16,9 @@ Selector labels shared across objects. {{- define "common.labels.selectorLabels" -}} app.kubernetes.io/name: {{ include "common.names.name" . }} app.kubernetes.io/instance: {{ include "common.names.releaseName" . }} +{{ if hasKey .Values "extraSelectorLabels" }} +{{ range $selector := .Values.extraSelectorLabels }} +{{ printf "%s: %s" $selector.key $selector.value }} +{{ end }} +{{ end }} {{- end }} From 9852e6e48ecd54679b341f39d74594720597cb6e Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 5 Feb 2021 17:49:17 +0500 Subject: [PATCH 82/84] Specify old labels to make sure minio is backwards compatible --- test/minio/1.1.0/templates/deployment.yaml | 1 + test/minio/1.1.0/templates/service.yaml | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/test/minio/1.1.0/templates/deployment.yaml b/test/minio/1.1.0/templates/deployment.yaml index ae397ed840..aed4ad032b 100644 --- a/test/minio/1.1.0/templates/deployment.yaml +++ b/test/minio/1.1.0/templates/deployment.yaml @@ -22,6 +22,7 @@ spec: labels: app: {{ template "common.names.name" . }} release: {{ .Release.Name }} + {{- include "common.labels.selectorLabels" . | nindent 8 }} annotations: {{ include "common.annotations" . | nindent 8 }} spec: serviceAccountName: {{ include "common.names.serviceAccountName" . | quote }} diff --git a/test/minio/1.1.0/templates/service.yaml b/test/minio/1.1.0/templates/service.yaml index e27c62a9e7..34e44be851 100644 --- a/test/minio/1.1.0/templates/service.yaml +++ b/test/minio/1.1.0/templates/service.yaml @@ -1,6 +1,10 @@ {{ $svc := .Values.service }} +{{ $selectors := list }} +{{ $selectors = mustAppend $selectors (dict "key" "app" "value" (include "common.names.name" .) ) }} +{{ $selectors = mustAppend $selectors (dict "key" "release" "value" .Release.Name ) }} {{ $ports := list }} {{ $ports = mustAppend $ports (dict "name" "http" "port" $svc.nodePort "nodePort" $svc.nodePort "targetPort" 9000) }} {{ $params := . }} {{ $_ := set $params "commonService" (dict "type" "NodePort" "ports" $ports ) }} +{{ $_1 := set .Values "extraSelectorLabels" $selectors }} {{ include "common.classes.service" $params }} From 1138fe38de0b5a8008dce4321cf458a660e34c2e Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 5 Feb 2021 17:49:23 +0500 Subject: [PATCH 83/84] Updated catalog item dependencies (test train) Following items were updated: Updated nextcloud (1.2.0 versions) Updated ipfs (1.0.1 versions) Updated ix-chart (2101.0.0 versions) Updated minio (1.1.0 versions) Updated plex (1.1.0 versions) --- test/ipfs/1.0.1/charts/common-2101.0.0.tgz | Bin 4043 -> 4091 bytes .../2101.0.0/charts/common-2101.0.0.tgz | Bin 4043 -> 4091 bytes test/minio/1.1.0/charts/common-2101.0.0.tgz | Bin 4043 -> 4091 bytes .../1.2.0/charts/common-2101.0.0.tgz | Bin 4044 -> 4091 bytes test/plex/1.1.0/charts/common-2101.0.0.tgz | Bin 4043 -> 4091 bytes 5 files changed, 0 insertions(+), 0 deletions(-) diff --git a/test/ipfs/1.0.1/charts/common-2101.0.0.tgz b/test/ipfs/1.0.1/charts/common-2101.0.0.tgz index 61dbbe5340c353200b6f0b9d4b7104f325388f9c..3a22457ea69f5da42b01b6548f9d39e6eed25924 100644 GIT binary patch delta 3981 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 diff --git a/test/ix-chart/2101.0.0/charts/common-2101.0.0.tgz b/test/ix-chart/2101.0.0/charts/common-2101.0.0.tgz index 61dbbe5340c353200b6f0b9d4b7104f325388f9c..3a22457ea69f5da42b01b6548f9d39e6eed25924 100644 GIT binary patch delta 3981 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 diff --git a/test/minio/1.1.0/charts/common-2101.0.0.tgz b/test/minio/1.1.0/charts/common-2101.0.0.tgz index 61dbbe5340c353200b6f0b9d4b7104f325388f9c..3a22457ea69f5da42b01b6548f9d39e6eed25924 100644 GIT binary patch delta 3981 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 diff --git a/test/nextcloud/1.2.0/charts/common-2101.0.0.tgz b/test/nextcloud/1.2.0/charts/common-2101.0.0.tgz index 2ada10b325074f508b0f73e27d999689ba9500e6..3a22457ea69f5da42b01b6548f9d39e6eed25924 100644 GIT binary patch delta 4069 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 diff --git a/test/plex/1.1.0/charts/common-2101.0.0.tgz b/test/plex/1.1.0/charts/common-2101.0.0.tgz index 61dbbe5340c353200b6f0b9d4b7104f325388f9c..3a22457ea69f5da42b01b6548f9d39e6eed25924 100644 GIT binary patch delta 3981 zcmV;84|4F!ANwDWJ%4lCwvzpsf5je?&a-nhCHeElGo3k~?bmvmx}MmV_c}K>9*A5? zh$(;pKsmb9_qV?xK1h(FJ{-qN(+EE#A_y!NzKuD zl@yZEw=-7y0m-uJu@@vLV?i^epHCpAeL=(&;(}UWzy;8M!f%5CjVVdtlqiz& zVZg{3kHHXDpr#ofyN#)248yq-+Hn9uW+2DM4{~5N)!_sBZ*_4GZm@q z$s%DH|L-658h`wMxWBjI|Fx8lA3LvtQ%wY5cOLB42d_F055dQeJCNXjGKA0&OH`+j z5Oy9Of|?xZ1$UGs$8c>Lo>+KeR3ssa90veKNPPSVl*MVDRKSZD(hXsIUXn3}5Wyet zKIaPI;lV%)@S zUQS4wqkn|sA0aYr-SA}#+oxdrqFK8*8RTiotPpWM=>SGV{({qTl(1-Woeu`|gFyjc zW{4kQORvWO!tWAZ^r`7|Ijh443)PAjB=uml`H zXMYJu&Db)}GAfL&h6|hAA_qzLs4gG&~wBOt4|8*3t|KA`> z(5Ux9ZR;J^0)Zq6ErcvduXLR@0vaa3%71Fz@x7;6J@syXdM^zco`y6PJ2fTZ*XiF* zm!A6|CIJSTDx~{JtONm<$t$#wAYmXhr1j3zn0?rf9|=sOF2n=>w2zm_u3edE_j++ z2`30kPSR{dF7q)Q_>P#rpa6|lq!l(5&+BWzuny#{y*yNZuoy4#oB)= z7sh2nvP|$yP@;<8&i9}VzcYf`0h6-?Ab$o!%u+rb7vFS`M6vAn>^NR4qHvI>k6%Y= zd#+<8KOM_haQ2S(7h%{ZDjszvy*?_^g6EfJiEpYblK<9q^5g)(GWoxEFzf%{>u%)# zI*M=qS?{eJ5rGMiSa2zqbHDQ*7pyzNbR5Z%A)p1}J?lP@`XXsouYw#>$Cx7>Rxp>^caiHD-m zZxa-PCaA+eIg823CEKru~Bpf06jsxSe? zL5-+{t^QQ+!^Zznx@c4$Yp`21fr3* z*e)iED&qbrq){k%yZ;VQNq+;j$=vq~Xr$B!HXK@`!j*}z!m(U71EiLNREJ;8x%PGy zN}fg2Csw&r=)^kImuzL&m3I8oFw8vO@rbezQ`V*{2vQTKrE=3s+fB=e)0&?(l)NSN z3BdfW3`T)jN@9fY-$Mv*!hW-cJ{ych!fuYdj}(`rkaYvHKb zX7hM!LCZ&SnYY9i=uVkFxV4Jax&6qsZ#orfj*#Y7__EL>LutuJk^~4y15^vudedT2 zD{2QSLE`+Z$(C7tqG()=TN_N;5EL`aTCGyCZ4EGu-Ysmsao&8LrQQBFdJTo_+#;J$ z!I}1re&VOVvi#4Z{eRuM{lD8i>Tdi$Ybk#Ihqu)*A%c>Aiu0YmC5=R0zqhuVC)uOwMR?8|tBV^Vz0(}XDe1*cV#SeX&#Lkr^(#&@<|N~JQQFx;+5OTUY875rWB z@ioQ*)wALv^$ag4KGB$k-S(&z3;%buHN(gUoU_EMJ4v1=Cm+%2_htqit z3tiHb{m-=~y4@p}V77th@R_6Gmyz}Sxb|YYmhHL8Pg^sm$7h$T6$6jFty`^=TL>fp z|C4|SAb-R|Aj|T94)$i^|NEQx|9Xmx2@8r71ijf1b2gyET z>*Y&<8JARXF%2P9WEeu20Y;JKXU9T7OEN|9`srZ#eb2e-(ZoW_hj8LZEc^cN&D{TR zba-&M;s14%I{$mFXLq)6t_1LM=3HCD`K_lC%hRRv4`w#bX+QZSm*?s&CnzvWX-s5C zDt|!~4yPRlZk2hOnp>G+Y;&G1IE`-^#_W|2boX9|UEGkz{#m`UQ}_nW3EHsioo9s= zbZxtV0pcBa8xs|eUO(@Gc@&ZHQRj;2pI$Wj5wk2M*@_%$x``q7X)W1||)&C6DJr{SB4Li5V6A%Ba zV*l?QH1&UPZ=?U$QcNWD@_I$HzoLvNVX|TNKRg5plioM7Q)Fc=%toV2Ft)pSaHlxk znf{r^jg#Q*Sp;8taleAn%Kyd>^Epg^U6$~FueUdI|I@+7{$Ecqc{U@A@3bqPfPZ$S z@d4c7)MS-e?>tZjMCT$<&WM=Kza6U0iMQAdIM8`LTg|)%>+;*4eN*}VymZ1bm6Eby zQC+~-6KMoW+*KQ{yN?3CZ;s>6q(`s~1LB9qYGeHf<6NqfEGwi=?M<}MG4DbJeh*i# zujnZAtbR2u;Cl%J!N=Y%gs@fX|9=O(0ie&#P_8z0@=`;?iKEFP3pDIzKsM zKCQ_$)7Bh2ro6Ch4w*G+$$wARm_vST6jc$_+>JLqxiHPgnVOza0WZs+cG*m0S9uH{ zYgdMuG*GuohU%(w!HDy;SQucaw3Dr>*Z>xmI! z`oU3)-ODG9LnduwBt#Ku^S&CRyqxg#tblR+BN$kIW4$I`g^zAYB!6X93AkMDnK@Wy z5!ONZvt91L3qGd*G+@FCr`EfH=AWlqA;J15RQgV-iN$y|cc?>~q-h&>e-^23F>24i zStw+pmGf>Ii%?2%yBvjNR_qfNrPQW1+4LOiV=5lING)1_^+o&A=Fm4+7Tf>ygXNTG zz5nT;ng888I^5)ctbeD}Ls*4I)(XY=8R&;ncK3S-87g@E|* z1H5!*K|Q~tFqAy)=cHXC-OaxRhI2YsmPXy*^RlLH9jsE4t_Z8;zPztTq*?xtMwpK2 zka2;Ze~hL4KNJ7iJv`c+|6WUZ0arvR6ihq%3KiCx7u>p22|XV*!!8&w^J`pWFqnA~i04b3uo}tN#yPz*{0H&m~-(oy#D~ z1b>II3L=^y>6qq%zYC&?jCq2cKRN5`V)_5g`N`R@=g~NMjxmjiXM|F>AEtEihFfMFl2# zj4&pYDP*Jo8gm^xsfM?}^NbAX!#D_JRauENG_m^D(5fFNl~zTu=)PxB&W3crzH#n35Duh$1N; z28@jH2n=BbYMSAZ>ljQN?A>0s7j>g<@U`dvy%)>>3ddPW6w1zxL@}W;k~ro$Q<2IZ zEfSXT|K4G*!GHe;d%GL{UrYJ)sq->8(L?}t=fQ4$@UnA%AAI_>0|^c&LkJDAM0E-Y zVdwrnsL7FDa7$To1Xrfvv4uBAMG~UOQ2=0s#HUX{S)Arc1-y76-4M3t1sP)q5&Quk za;^~W?=1wGk=THV-eQVGVszoE>#bAL$5a+gcV>n(?|&kRDaMM6*ZR?n$0$pXDcIAK zEIK1g^zW~|abKv+@PC{VDLpyx1q8qn{@*Q_y}|$c-3|Y*rD*=Y9#IL71hg1H2}A;c zewt$@C^Oogq^aX+;QjX)D+y{u6cB+B3nU7Y;Et*hWuQiAZ2+hJqqzdb(wyV^uw=Fu z6O!gA;eY5Sh)i2IeA&YGDcHVf)-Fy4d73gSL|jigfDw_u;oI`vhsn+lld%5Uf{H3g+jhWGa2Sx2_x~}G%d}m;w32lI~k|V_kXQmiut#}B#d!I3KP={olEPoIz_)#9ZR3y3w;E_i~MT&U1TLsNilQSV+p4G2vke8bXdg)|VBfCK0( z0e`6(Tjp8Dg~9|Vb1bdD0K$2j+n}!odq)K{8NyaVV+El_HuNTDRwOJLa~u8uCFt1O z*)Qbo*aNwXal`>i-+PTaU5=mgxUpckiH~{|^se?QZn{I*Qi+Z;>Tv z)O(?}^^R+SK$3(OLYAbLx=tGb4HIBxwSVsT-qWm}dbdBlmj(?_Lz;@6niBEr^lvB3 z1z|&k7dIM!X{8(O=w{}dq4?!Agd$>y>au)SJ^M;|q*NBVE}7tp$2_&b?33U8`sA`~ zT`Fj89Lxpk6j8DKS`$UH@_rk(7*|dmMacMf@L=jPz+r6~#vhfMxdI?(Pi#A9i1D_4_`-V zd#+<8KOf6jaQ2?}7h%{ZDjszvy*?_^g6G#}iSMc`lK<9q^5_7-GWp-@&cy%ryN4V3 zzmDSDf7W{|M?_!(BoVcH61Oc)trveTc|V~x%cQtxl%?3G3SQL8$$ z1Us$xEeWQ&$VY2m%A_JJUesTh>0VS|Hm-rcN?9cT&F(*W{CBUn+sywuc(uQY|E{HI zS#|a?BP`K2q4rJkfeGJgc{x`^`G3NtC1AT{BetHWGoi8CuG%siv)yvQV3yG}F`VRWZq82PE_{Cb>kAe2nmGDZR~J4Jf9G34he3bW9Z{ zpg5=zm9W*H>U})DxGLIGHUybryd4GS1F%Bf0EszMgfeL}`*a;ua7WV=`Utr!@RUF_ z@)q00WKl)jKZi651#kD?0V-+0Hktc=0gaTZ%Z5X1RJbw`RydZ+W`NXkkm~S@IoIB< zLdmme`ot=Cekg3B8q^nTWq;U)M*ma{Gmm#XqAbLewdo3i)P!lN+_chm(=y_;=4TBh zZ%KUuFuyB9rhTKI`6;k0|MPHfw{HLMb`K7F8~cA9#n1onwi+fxP|{CvzSFm)k;v=!&UW); z8?uS3)rlUJBx{I$8Gny(Ori-%X+jkKiqk4dtjq}Wp@s1X<6GMag4KGB$k-S(&z3;%buHN(gUpU}|6vh-zS$@Bwg( z(|HXGUDA~OPqikx-2<0kwt=p0hLhVu9dpTgeq4JoUCZ{|@|***G`v?PdC zcvJ&9(JX)?g&CJ^SY@vo{LAF16#)bul5g`_J41G!~bi4DRut;`SQQv#OMB1_yqr1L)^L97sl@Vh>HLG4jdR+MKFQ^|ddmq4 z%u*T?*^x?r5QW2O$AMdAo~GtTW*FO?XA4f_TZS=vr32l)*I^eowgWIXwsd=On^Jo%H+M*ZYy8>CuZ`-7IsI_|v{ zi&s*mvji4<#)XO0e6DY9*eSFJpM9o0VfHyZUXRa*5wLv_c+EoH;b zP4dXYKdadPulAezzqh;5|7$5G5_)m9qS;?jMwBqwF#GTCgM>-%8`&wcvKD5e(Ipt$ z-8{HcobF8jOykB$@b)Z%uf4e6KxyTFx>+Yj~ADZL1GwBg*!+`jqvD#Qa!8n)dILivDQ+pFFbj-U@ zf#1W`>nl3SJgeVK3;038K=84*3n6UP`u_oc?>S`<{s?|RqBgoe4|5a9u?JA^M2!X% z2fbc;me4NJoNuT9vSvQlZ6|B4GT#Lf-LvMclZ3D1A-?e-35@Bip-&52XoF&9E|W$k)Nn7=F`C0mwGRn^C^^n zPP5Jz#O?2#?qFn$Kf((#8S5B(vvCEdbm=IOqwWwPBmESUZQluA)R(I}n}u0s+b(Tr zja@&RqROBc7ua1AH8L*>SY?&F0Hj1m=KZSPK2-f`Z`=Lr^J-giFEtH~xHOpPi)Gx3 z&QH#mPiu0`v^B?$DK9LWLuO4{^3yec=8#_-MO6efcjHY@E===rrlzMD&yT{hF$ zRUW~o+Ld7@4b<&YdDEJqm&nzh8Dz?9aU9hM{E$jelQeDP?k^(M zEk^AbI17bLv~u1}V-ZRTZkMBw%!+-+qLkXSCYzpOeN4qe7pX<-ufAws+Z_7t%3}MU zezctOr1wAVH}k)HhXM_8zF;!PSb>cvLR$7z9mDH zQScn};W&FCumm~6G=*Wx`z9BGvf+;)FeQpk(8!Uhp0Ff%4h)BepSLoB1NspYbJO#` zZAYMQB<4)_EKq_B1*DW=6hx<2H&==a44#9%t>oRw6(m&1AR1ED(f=CsgQ)+1qND$H z6{BIN_{TlU3F}mV`Xs)8%`+HKeJmi7cUkZ<>XX~xWu(T%Z!YLCc=`Xqb9hGt<++6O z(=!=Fnc(j+RzXA)BpuUS@b^J9kuguO^CxG0T`d2Q_)m9+|GS&~ z@AZ`D@Y?=SpOZy@)TgM^4T9k1%YPidy*R)4`3SCmIlqFFUyk2@Uc>nnT)er4-_DLN zuHpI({MQ+rUtC=uzkYpo3a969&rYsi|Nio2V2;;P2?YM<7fi?X;s1AQq*Nx4IvsbD zP{L!`Q9PruHcgABH~RRt>^v{pY)5de{w5*IMaCr-kc%k{1<$iWc)348z=t%3KB_xJ zbNSirf5`tF@v%LBH!dRxf-A~m1Oh47(GT+i20Tsqo$ezG^S}uweZ_+Ni%54wYJsT= zDJn3@V}voGOd%r$(3tDkNj1C$uK#*MF7<5-`U(y)1rm?6F-Bm>Nm^ji$6_j{Z-0-1 z;Q4bnXG-uS*C89bpyu$qjm$_l>oQqrglUFC!rh3*BZvt(D{pmB91@&h$}?bi=g`V^ sxJhr&%$96Bg#hMSBoTcJa&A*LWm7g~Q|jek0RRC1|D{Z{$pCTy0F5if$p8QV From b9d620554832cf624200c2e5c5d04ff13e3aaf3e Mon Sep 17 00:00:00 2001 From: Waqar Ahmed Date: Fri, 5 Feb 2021 18:10:12 +0500 Subject: [PATCH 84/84] Fix service accounts whitespace --- test/ipfs/1.0.1/templates/serviceaccount.yaml | 2 +- test/minio/1.1.0/templates/serviceaccount.yaml | 2 +- test/nextcloud/1.2.0/templates/serviceaccount.yaml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/ipfs/1.0.1/templates/serviceaccount.yaml b/test/ipfs/1.0.1/templates/serviceaccount.yaml index 811923611e..12bd3f4a39 100644 --- a/test/ipfs/1.0.1/templates/serviceaccount.yaml +++ b/test/ipfs/1.0.1/templates/serviceaccount.yaml @@ -1 +1 @@ -{{- include "common.serviceaccount" . -}} +{{ include "common.serviceaccount" . }} diff --git a/test/minio/1.1.0/templates/serviceaccount.yaml b/test/minio/1.1.0/templates/serviceaccount.yaml index 811923611e..12bd3f4a39 100644 --- a/test/minio/1.1.0/templates/serviceaccount.yaml +++ b/test/minio/1.1.0/templates/serviceaccount.yaml @@ -1 +1 @@ -{{- include "common.serviceaccount" . -}} +{{ include "common.serviceaccount" . }} diff --git a/test/nextcloud/1.2.0/templates/serviceaccount.yaml b/test/nextcloud/1.2.0/templates/serviceaccount.yaml index a5b1f453b5..48213465b0 100644 --- a/test/nextcloud/1.2.0/templates/serviceaccount.yaml +++ b/test/nextcloud/1.2.0/templates/serviceaccount.yaml @@ -1,4 +1,4 @@ -{{- include "common.serviceaccount" . -}} +{{ include "common.serviceaccount" . | nindent 0 }} ---