From b085e3f3f7c31697ba35bee36b3928c965ef58ae Mon Sep 17 00:00:00 2001 From: Matt Butcher Date: Fri, 3 Apr 2020 10:54:53 -0600 Subject: [PATCH] removed some files from test fixtures Signed-off-by: Matt Butcher --- .../templates/deployment.yaml | 155 ------------ .../templates/externaldb-secrets.yaml | 14 -- .../chart-missing-deps/templates/ingress.yaml | 36 --- .../chart-missing-deps/templates/pvc.yaml | 24 -- .../chart-missing-deps/templates/secrets.yaml | 17 -- .../chart-missing-deps/templates/svc.yaml | 29 --- .../tests/test-mariadb-connection.yaml | 29 --- .../templates/tls-secrets.yaml | 18 -- ...art-with-compressed-dependencies-2.1.8.tgz | Bin 18123 -> 10962 bytes .../README.md | 231 +----------------- .../templates/NOTES.txt | 39 +-- .../templates/_helpers.tpl | 24 -- .../templates/deployment.yaml | 155 ------------ .../templates/externaldb-secrets.yaml | 14 -- .../templates/ingress.yaml | 36 --- .../templates/pvc.yaml | 24 -- .../templates/secrets.yaml | 17 -- .../templates/svc.yaml | 29 --- .../tests/test-mariadb-connection.yaml | 29 --- .../templates/tls-secrets.yaml | 18 -- ...t-with-uncompressed-dependencies-2.1.8.tgz | Bin 18127 -> 10953 bytes .../README.md | 231 +----------------- .../templates/NOTES.txt | 39 +-- .../templates/_helpers.tpl | 24 -- .../templates/deployment.yaml | 155 ------------ .../templates/externaldb-secrets.yaml | 14 -- .../templates/ingress.yaml | 36 --- .../templates/pvc.yaml | 24 -- .../templates/secrets.yaml | 17 -- .../templates/svc.yaml | 29 --- .../tests/test-mariadb-connection.yaml | 29 --- .../templates/tls-secrets.yaml | 18 -- 32 files changed, 4 insertions(+), 1550 deletions(-) delete mode 100755 pkg/action/testdata/charts/chart-missing-deps/templates/deployment.yaml delete mode 100755 pkg/action/testdata/charts/chart-missing-deps/templates/externaldb-secrets.yaml delete mode 100755 pkg/action/testdata/charts/chart-missing-deps/templates/ingress.yaml delete mode 100755 pkg/action/testdata/charts/chart-missing-deps/templates/pvc.yaml delete mode 100755 pkg/action/testdata/charts/chart-missing-deps/templates/secrets.yaml delete mode 100755 pkg/action/testdata/charts/chart-missing-deps/templates/svc.yaml delete mode 100755 pkg/action/testdata/charts/chart-missing-deps/templates/tests/test-mariadb-connection.yaml delete mode 100755 pkg/action/testdata/charts/chart-missing-deps/templates/tls-secrets.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/_helpers.tpl delete mode 100755 pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/deployment.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/externaldb-secrets.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/ingress.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/pvc.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/secrets.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/svc.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/tests/test-mariadb-connection.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/tls-secrets.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/_helpers.tpl delete mode 100755 pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/deployment.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/externaldb-secrets.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/ingress.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/pvc.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/secrets.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/svc.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/tests/test-mariadb-connection.yaml delete mode 100755 pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/tls-secrets.yaml diff --git a/pkg/action/testdata/charts/chart-missing-deps/templates/deployment.yaml b/pkg/action/testdata/charts/chart-missing-deps/templates/deployment.yaml deleted file mode 100755 index c5ab3d3ec..000000000 --- a/pkg/action/testdata/charts/chart-missing-deps/templates/deployment.yaml +++ /dev/null @@ -1,155 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: {{ template "fullname" . }} - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -spec: - replicas: {{ .Values.replicaCount }} - template: - metadata: - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - spec: - {{- if .Values.image.pullSecrets }} - imagePullSecrets: - {{- range .Values.image.pullSecrets }} - - name: {{ . }} - {{- end}} - {{- end }} - containers: - - name: {{ template "fullname" . }} - image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy | quote }} - env: - - name: ALLOW_EMPTY_PASSWORD - value: {{ .Values.allowEmptyPassword | quote }} - - name: MARIADB_HOST - {{- if .Values.mariadb.enabled }} - value: {{ template "mariadb.fullname" . }} - {{- else }} - value: {{ .Values.externalDatabase.host | quote }} - {{- end }} - - name: MARIADB_PORT_NUMBER - {{- if .Values.mariadb.enabled }} - value: "3306" - {{- else }} - value: {{ .Values.externalDatabase.port | quote }} - {{- end }} - - name: WORDPRESS_DATABASE_NAME - {{- if .Values.mariadb.enabled }} - value: {{ .Values.mariadb.db.name | quote }} - {{- else }} - value: {{ .Values.externalDatabase.database | quote }} - {{- end }} - - name: WORDPRESS_DATABASE_USER - {{- if .Values.mariadb.enabled }} - value: {{ .Values.mariadb.db.user | quote }} - {{- else }} - value: {{ .Values.externalDatabase.user | quote }} - {{- end }} - - name: WORDPRESS_DATABASE_PASSWORD - valueFrom: - secretKeyRef: - {{- if .Values.mariadb.enabled }} - name: {{ template "mariadb.fullname" . }} - key: mariadb-password - {{- else }} - name: {{ printf "%s-%s" .Release.Name "externaldb" }} - key: db-password - {{- end }} - - name: WORDPRESS_USERNAME - value: {{ .Values.wordpressUsername | quote }} - - name: WORDPRESS_PASSWORD - valueFrom: - secretKeyRef: - name: {{ template "fullname" . }} - key: wordpress-password - - name: WORDPRESS_EMAIL - value: {{ .Values.wordpressEmail | quote }} - - name: WORDPRESS_FIRST_NAME - value: {{ .Values.wordpressFirstName | quote }} - - name: WORDPRESS_LAST_NAME - value: {{ .Values.wordpressLastName | quote }} - - name: WORDPRESS_BLOG_NAME - value: {{ .Values.wordpressBlogName | quote }} - - name: WORDPRESS_TABLE_PREFIX - value: {{ .Values.wordpressTablePrefix | quote }} - - name: SMTP_HOST - value: {{ .Values.smtpHost | quote }} - - name: SMTP_PORT - value: {{ .Values.smtpPort | quote }} - - name: SMTP_USER - value: {{ .Values.smtpUser | quote }} - - name: SMTP_PASSWORD - valueFrom: - secretKeyRef: - name: {{ template "fullname" . }} - key: smtp-password - - name: SMTP_USERNAME - value: {{ .Values.smtpUsername | quote }} - - name: SMTP_PROTOCOL - value: {{ .Values.smtpProtocol | quote }} - ports: - - name: http - containerPort: 80 - - name: https - containerPort: 443 - livenessProbe: - httpGet: - path: /wp-login.php - {{- if not .Values.healthcheckHttps }} - port: http - {{- else }} - port: https - scheme: HTTPS - {{- end }} -{{ toYaml .Values.livenessProbe | indent 10 }} - readinessProbe: - httpGet: - path: /wp-login.php - {{- if not .Values.healthcheckHttps }} - port: http - {{- else }} - port: https - scheme: HTTPS - {{- end }} -{{ toYaml .Values.readinessProbe | indent 10 }} - volumeMounts: - - mountPath: /bitnami/apache - name: wordpress-data - subPath: apache - - mountPath: /bitnami/wordpress - name: wordpress-data - subPath: wordpress - - mountPath: /bitnami/php - name: wordpress-data - subPath: php - resources: -{{ toYaml .Values.resources | indent 10 }} - volumes: - - name: wordpress-data - {{- if .Values.persistence.enabled }} - persistentVolumeClaim: - claimName: {{ .Values.persistence.existingClaim | default (include "fullname" .) }} - {{- else }} - emptyDir: {} - {{ end }} - {{- if .Values.nodeSelector }} - nodeSelector: -{{ toYaml .Values.nodeSelector | indent 8 }} - {{- end -}} - {{- with .Values.affinity }} - affinity: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} - {{- end }} - diff --git a/pkg/action/testdata/charts/chart-missing-deps/templates/externaldb-secrets.yaml b/pkg/action/testdata/charts/chart-missing-deps/templates/externaldb-secrets.yaml deleted file mode 100755 index 39399ae54..000000000 --- a/pkg/action/testdata/charts/chart-missing-deps/templates/externaldb-secrets.yaml +++ /dev/null @@ -1,14 +0,0 @@ -{{- if not .Values.mariadb.enabled }} -apiVersion: v1 -kind: Secret -metadata: - name: {{ printf "%s-%s" .Release.Name "externaldb" }} - labels: - app: {{ printf "%s-%s" .Release.Name "externaldb" }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -type: Opaque -data: - db-password: {{ .Values.externalDatabase.password | b64enc | quote }} -{{- end }} diff --git a/pkg/action/testdata/charts/chart-missing-deps/templates/ingress.yaml b/pkg/action/testdata/charts/chart-missing-deps/templates/ingress.yaml deleted file mode 100755 index 7870146ff..000000000 --- a/pkg/action/testdata/charts/chart-missing-deps/templates/ingress.yaml +++ /dev/null @@ -1,36 +0,0 @@ -{{- if .Values.ingress.enabled }} -{{- range .Values.ingress.hosts }} -apiVersion: extensions/v1beta1 -kind: Ingress -metadata: - name: "{{- printf "%s-%s" .name $.Release.Name | trunc 63 | trimSuffix "-" -}}" - labels: - app: {{ template "fullname" $ }} - chart: "{{ $.Chart.Name }}-{{ $.Chart.Version }}" - release: "{{ $.Release.Name }}" - heritage: "{{ $.Release.Service }}" - annotations: - {{- if .tls }} - ingress.kubernetes.io/secure-backends: "true" - {{- end }} - {{- range $key, $value := .annotations }} - {{ $key }}: {{ $value | quote }} - {{- end }} -spec: - rules: - - host: {{ .name }} - http: - paths: - - path: {{ default "/" .path }} - backend: - serviceName: {{ template "fullname" $ }} - servicePort: 80 -{{- if .tls }} - tls: - - hosts: - - {{ .name }} - secretName: {{ .tlsSecret }} -{{- end }} ---- -{{- end }} -{{- end }} diff --git a/pkg/action/testdata/charts/chart-missing-deps/templates/pvc.yaml b/pkg/action/testdata/charts/chart-missing-deps/templates/pvc.yaml deleted file mode 100755 index b3f912480..000000000 --- a/pkg/action/testdata/charts/chart-missing-deps/templates/pvc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }} -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: {{ template "fullname" . }} - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -spec: - accessModes: - - {{ .Values.persistence.accessMode | quote }} - resources: - requests: - storage: {{ .Values.persistence.size | quote }} -{{- if .Values.persistence.storageClass }} -{{- if (eq "-" .Values.persistence.storageClass) }} - storageClassName: "" -{{- else }} - storageClassName: "{{ .Values.persistence.storageClass }}" -{{- end }} -{{- end }} -{{- end -}} diff --git a/pkg/action/testdata/charts/chart-missing-deps/templates/secrets.yaml b/pkg/action/testdata/charts/chart-missing-deps/templates/secrets.yaml deleted file mode 100755 index 80a28d724..000000000 --- a/pkg/action/testdata/charts/chart-missing-deps/templates/secrets.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ template "fullname" . }} - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -type: Opaque -data: - {{ if .Values.wordpressPassword }} - wordpress-password: {{ default "" .Values.wordpressPassword | b64enc | quote }} - {{ else }} - wordpress-password: {{ randAlphaNum 10 | b64enc | quote }} - {{ end }} - smtp-password: {{ default "" .Values.smtpPassword | b64enc | quote }} diff --git a/pkg/action/testdata/charts/chart-missing-deps/templates/svc.yaml b/pkg/action/testdata/charts/chart-missing-deps/templates/svc.yaml deleted file mode 100755 index f6c399313..000000000 --- a/pkg/action/testdata/charts/chart-missing-deps/templates/svc.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ template "fullname" . }} - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -spec: - type: {{ .Values.serviceType }} - {{- if (or (eq .Values.serviceType "LoadBalancer") (eq .Values.serviceType "NodePort")) }} - externalTrafficPolicy: {{ .Values.serviceExternalTrafficPolicy | quote }} - {{- end }} - ports: - - name: http - port: 80 - targetPort: http - {{- if (and (eq .Values.serviceType "NodePort") (not (empty .Values.nodePorts.http)))}} - nodePort: {{ .Values.nodePorts.http }} - {{- end }} - - name: https - port: 443 - targetPort: https - {{- if (and (eq .Values.serviceType "NodePort") (not (empty .Values.nodePorts.https)))}} - nodePort: {{ .Values.nodePorts.https }} - {{- end }} - selector: - app: {{ template "fullname" . }} diff --git a/pkg/action/testdata/charts/chart-missing-deps/templates/tests/test-mariadb-connection.yaml b/pkg/action/testdata/charts/chart-missing-deps/templates/tests/test-mariadb-connection.yaml deleted file mode 100755 index 95ccb38ad..000000000 --- a/pkg/action/testdata/charts/chart-missing-deps/templates/tests/test-mariadb-connection.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if .Values.mariadb.enabled }} -apiVersion: v1 -kind: Pod -metadata: - name: "{{ .Release.Name }}-credentials-test" - annotations: - "helm.sh/hook": test-success -spec: - containers: - - name: {{ .Release.Name }}-credentials-test - image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy | quote }} - env: - - name: MARIADB_HOST - value: {{ template "mariadb.fullname" . }} - - name: MARIADB_PORT - value: "3306" - - name: WORDPRESS_DATABASE_NAME - value: {{ default "" .Values.mariadb.db.name | quote }} - - name: WORDPRESS_DATABASE_USER - value: {{ default "" .Values.mariadb.db.user | quote }} - - name: WORDPRESS_DATABASE_PASSWORD - valueFrom: - secretKeyRef: - name: {{ template "mariadb.fullname" . }} - key: mariadb-password - command: ["sh", "-c", "mysql --host=$MARIADB_HOST --port=$MARIADB_PORT --user=$WORDPRESS_DATABASE_USER --password=$WORDPRESS_DATABASE_PASSWORD"] - restartPolicy: Never -{{- end }} diff --git a/pkg/action/testdata/charts/chart-missing-deps/templates/tls-secrets.yaml b/pkg/action/testdata/charts/chart-missing-deps/templates/tls-secrets.yaml deleted file mode 100755 index ca75d33ef..000000000 --- a/pkg/action/testdata/charts/chart-missing-deps/templates/tls-secrets.yaml +++ /dev/null @@ -1,18 +0,0 @@ -{{- if .Values.ingress.enabled }} -{{- range .Values.ingress.secrets }} -apiVersion: v1 -kind: Secret -metadata: - name: {{ .name }} - labels: - app: {{ template "fullname" $ }} - chart: "{{ $.Chart.Name }}-{{ $.Chart.Version }}" - release: "{{ $.Release.Name }}" - heritage: "{{ $.Release.Service }}" -type: kubernetes.io/tls -data: - tls.crt: {{ .certificate | b64enc }} - tls.key: {{ .key | b64enc }} ---- -{{- end }} -{{- end }} \ No newline at end of file diff --git a/pkg/action/testdata/charts/chart-with-compressed-dependencies-2.1.8.tgz b/pkg/action/testdata/charts/chart-with-compressed-dependencies-2.1.8.tgz index ac715433894acd0bf630385b93c22977f6a38341..7a22b1d827f593f101879554ae7831f2a40d2278 100644 GIT binary patch literal 10962 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 AQ~&?~ literal 18123 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 Zd>)_2=lehZe*gdg|NqPUwATQn0RTXpnjZiF diff --git a/pkg/action/testdata/charts/chart-with-compressed-dependencies/README.md b/pkg/action/testdata/charts/chart-with-compressed-dependencies/README.md index 5859a17fa..3174417e0 100755 --- a/pkg/action/testdata/charts/chart-with-compressed-dependencies/README.md +++ b/pkg/action/testdata/charts/chart-with-compressed-dependencies/README.md @@ -1,232 +1,3 @@ # WordPress -[WordPress](https://wordpress.org/) is one of the most versatile open source content management systems on the market. A publishing platform for building blogs and websites. - -## TL;DR; - -```console -$ helm install stable/wordpress -``` - -## Introduction - -This chart bootstraps a [WordPress](https://github.com/bitnami/bitnami-docker-wordpress) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. - -It also packages the [Bitnami MariaDB chart](https://github.com/kubernetes/charts/tree/master/stable/mariadb) which is required for bootstrapping a MariaDB deployment for the database requirements of the WordPress application. - -## Prerequisites - -- Kubernetes 1.4+ with Beta APIs enabled -- PV provisioner support in the underlying infrastructure - -## Installing the Chart - -To install the chart with the release name `my-release`: - -```console -$ helm install --name my-release stable/wordpress -``` - -The command deploys WordPress on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. - -> **Tip**: List all releases using `helm list` - -## Uninstalling the Chart - -To uninstall/delete the `my-release` deployment: - -```console -$ helm delete my-release -``` - -The command removes all the Kubernetes components associated with the chart and deletes the release. - -## Configuration - -The following table lists the configurable parameters of the WordPress chart and their default values. - -| Parameter | Description | Default | -|----------------------------------|--------------------------------------------|---------------------------------------------------------| -| `image.registry` | WordPress image registry | `docker.io` | -| `image.repository` | WordPress image name | `bitnami/wordpress` | -| `image.tag` | WordPress image tag | `{VERSION}` | -| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | -| `image.pullSecrets` | Specify image pull secrets | `nil` | -| `wordpressUsername` | User of the application | `user` | -| `wordpressPassword` | Application password | _random 10 character long alphanumeric string_ | -| `wordpressEmail` | Admin email | `user@example.com` | -| `wordpressFirstName` | First name | `FirstName` | -| `wordpressLastName` | Last name | `LastName` | -| `wordpressBlogName` | Blog name | `User's Blog!` | -| `wordpressTablePrefix` | Table prefix | `wp_` | -| `allowEmptyPassword` | Allow DB blank passwords | `yes` | -| `smtpHost` | SMTP host | `nil` | -| `smtpPort` | SMTP port | `nil` | -| `smtpUser` | SMTP user | `nil` | -| `smtpPassword` | SMTP password | `nil` | -| `smtpUsername` | User name for SMTP emails | `nil` | -| `smtpProtocol` | SMTP protocol [`tls`, `ssl`] | `nil` | -| `replicaCount` | Number of WordPress Pods to run | `1` | -| `mariadb.enabled` | Deploy MariaDB container(s) | `true` | -| `mariadb.rootUser.password` | MariaDB admin password | `nil` | -| `mariadb.db.name` | Database name to create | `bitnami_wordpress` | -| `mariadb.db.user` | Database user to create | `bn_wordpress` | -| `mariadb.db.password` | Password for the database | _random 10 character long alphanumeric string_ | -| `externalDatabase.host` | Host of the external database | `localhost` | -| `externalDatabase.user` | Existing username in the external db | `bn_wordpress` | -| `externalDatabase.password` | Password for the above username | `nil` | -| `externalDatabase.database` | Name of the existing database | `bitnami_wordpress` | -| `externalDatabase.port` | Database port number | `3306` | -| `serviceType` | Kubernetes Service type | `LoadBalancer` | -| `serviceExternalTrafficPolicy` | Enable client source IP preservation | `Cluster` | -| `nodePorts.http` | Kubernetes http node port | `""` | -| `nodePorts.https` | Kubernetes https node port | `""` | -| `healthcheckHttps` | Use https for liveliness and readiness | `false` | -| `ingress.enabled` | Enable ingress controller resource | `false` | -| `ingress.hosts[0].name` | Hostname to your WordPress installation | `wordpress.local` | -| `ingress.hosts[0].path` | Path within the url structure | `/` | -| `ingress.hosts[0].tls` | Utilize TLS backend in ingress | `false` | -| `ingress.hosts[0].tlsSecret` | TLS Secret (certificates) | `wordpress.local-tls-secret` | -| `ingress.hosts[0].annotations` | Annotations for this host's ingress record | `[]` | -| `ingress.secrets[0].name` | TLS Secret Name | `nil` | -| `ingress.secrets[0].certificate` | TLS Secret Certificate | `nil` | -| `ingress.secrets[0].key` | TLS Secret Key | `nil` | -| `persistence.enabled` | Enable persistence using PVC | `true` | -| `persistence.existingClaim` | Enable persistence using an existing PVC | `nil` | -| `persistence.storageClass` | PVC Storage Class | `nil` (uses alpha storage class annotation) | -| `persistence.accessMode` | PVC Access Mode | `ReadWriteOnce` | -| `persistence.size` | PVC Storage Request | `10Gi` | -| `nodeSelector` | Node labels for pod assignment | `{}` | -| `tolerations` | List of node taints to tolerate | `[]` | -| `affinity` | Map of node/pod affinities | `{}` | - -The above parameters map to the env variables defined in [bitnami/wordpress](http://github.com/bitnami/bitnami-docker-wordpress). For more information please refer to the [bitnami/wordpress](http://github.com/bitnami/bitnami-docker-wordpress) image documentation. - -Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, - -```console -$ helm install --name my-release \ - --set wordpressUsername=admin,wordpressPassword=password,mariadb.mariadbRootPassword=secretpassword \ - stable/wordpress -``` - -The above command sets the WordPress administrator account username and password to `admin` and `password` respectively. Additionally, it sets the MariaDB `root` user password to `secretpassword`. - -Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, - -```console -$ helm install --name my-release -f values.yaml stable/wordpress -``` - -> **Tip**: You can use the default [values.yaml](values.yaml) - -## Production and horizontal scaling - -The following repo contains the recommended production settings for wordpress capture in an alternative [values file](values-production.yaml). Please read carefully the comments in the values-production.yaml file to set up your environment appropriately. - -To horizontally scale this chart, first download the [values-production.yaml](values-production.yaml) file to your local folder, then: - -```console -$ helm install --name my-release -f ./values-production.yaml stable/wordpress -``` - -Note that [values-production.yaml](values-production.yaml) includes a replicaCount of 3, so there will be 3 WordPress pods. As a result, to use the /admin portal and to ensure you can scale wordpress you need to provide a ReadWriteMany PVC, if you don't have a provisioner for this type of storage, we recommend that you install the nfs provisioner and map it to a RWO volume. - -```console -$ helm install stable/nfs-server-provisioner --set persistence.enabled=true,persistence.size=10Gi -$ helm install --name my-release -f values-production.yaml --set persistence.storageClass=nfs stable/wordpress -``` - -## Persistence - -The [Bitnami WordPress](https://github.com/bitnami/bitnami-docker-wordpress) image stores the WordPress data and configurations at the `/bitnami` path of the container. - -Persistent Volume Claims are used to keep the data across deployments. This is known to work in GCE, AWS, and minikube. -See the [Configuration](#configuration) section to configure the PVC or to disable persistence. - -## Using an external database - -Sometimes you may want to have Wordpress connect to an external database rather than installing one inside your cluster, e.g. to use a managed database service, or use run a single database server for all your applications. To do this, the chart allows you to specify credentials for an external database under the [`externalDatabase` parameter](#configuration). You should also disable the MariaDB installation with the `mariadb.enabled` option. For example: - -```console -$ helm install stable/wordpress \ - --set mariadb.enabled=false,externalDatabase.host=myexternalhost,externalDatabase.user=myuser,externalDatabase.password=mypassword,externalDatabase.database=mydatabase,externalDatabase.port=3306 -``` - -Note also if you disable MariaDB per above you MUST supply values for the `externalDatabase` connection. - -## Ingress - -This chart provides support for ingress resources. If you have an -ingress controller installed on your cluster, such as [nginx-ingress](https://kubeapps.com/charts/stable/nginx-ingress) -or [traefik](https://kubeapps.com/charts/stable/traefik) you can utilize -the ingress controller to serve your WordPress application. - -To enable ingress integration, please set `ingress.enabled` to `true` - -### Hosts - -Most likely you will only want to have one hostname that maps to this -WordPress installation, however, it is possible to have more than one -host. To facilitate this, the `ingress.hosts` object is an array. - -For each item, please indicate a `name`, `tls`, `tlsSecret`, and any -`annotations` that you may want the ingress controller to know about. - -Indicating TLS will cause WordPress to generate HTTPS URLs, and -WordPress will be connected to at port 443. The actual secret that -`tlsSecret` references do not have to be generated by this chart. -However, please note that if TLS is enabled, the ingress record will not -work until this secret exists. - -For annotations, please see [this document](https://github.com/kubernetes/ingress-nginx/blob/master/docs/annotations.md). -Not all annotations are supported by all ingress controllers, but this -document does a good job of indicating which annotation is supported by -many popular ingress controllers. - -### TLS Secrets - -This chart will facilitate the creation of TLS secrets for use with the -ingress controller, however, this is not required. There are three -common use cases: - -* helm generates/manages certificate secrets -* user generates/manages certificates separately -* an additional tool (like [kube-lego](https://kubeapps.com/charts/stable/kube-lego)) -manages the secrets for the application - -In the first two cases, one will need a certificate and a key. We would -expect them to look like this: - -* certificate files should look like (and there can be more than one -certificate if there is a certificate chain) - -``` ------BEGIN CERTIFICATE----- -MIID6TCCAtGgAwIBAgIJAIaCwivkeB5EMA0GCSqGSIb3DQEBCwUAMFYxCzAJBgNV -... -jScrvkiBO65F46KioCL9h5tDvomdU1aqpI/CBzhvZn1c0ZTf87tGQR8NK7v7 ------END CERTIFICATE----- -``` -* keys should look like: -``` ------BEGIN RSA PRIVATE KEY----- -MIIEogIBAAKCAQEAvLYcyu8f3skuRyUgeeNpeDvYBCDcgq+LsWap6zbX5f8oLqp4 -... -wrj2wDbCDCFmfqnSJ+dKI3vFLlEz44sAV8jX/kd4Y6ZTQhlLbYc= ------END RSA PRIVATE KEY----- -```` - -If you are going to use Helm to manage the certificates, please copy -these values into the `certificate` and `key` values for a given -`ingress.secrets` entry. - -If you are going are going to manage TLS secrets outside of Helm, please -know that you can create a TLS secret by doing the following: - -``` -kubectl create secret tls wordpress.local-tls --key /path/to/key.key --cert /path/to/cert.crt -``` - -Please see [this example](https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx/examples/tls) -for more information. +This is a testing fork of the Wordpress chart. It is not operational. diff --git a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/NOTES.txt b/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/NOTES.txt index 55626e4d1..3b94f9157 100755 --- a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/NOTES.txt +++ b/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/NOTES.txt @@ -1,38 +1 @@ -1. Get the WordPress URL: - -{{- if .Values.ingress.enabled }} - - You should be able to access your new WordPress installation through - - {{- range .Values.ingress.hosts }} - {{ if .tls }}https{{ else }}http{{ end }}://{{ .name }}/admin - {{- end }} - -{{- else if contains "LoadBalancer" .Values.serviceType }} - - NOTE: It may take a few minutes for the LoadBalancer IP to be available. - Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "fullname" . }}' - - export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') - echo "WordPress URL: http://$SERVICE_IP/" - echo "WordPress Admin URL: http://$SERVICE_IP/admin" - -{{- else if contains "ClusterIP" .Values.serviceType }} - - echo "WordPress URL: http://127.0.0.1:8080/" - echo "WordPress Admin URL: http://127.0.0.1:8080/admin" - kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ template "fullname" . }} 8080:80 - -{{- else if contains "NodePort" .Values.serviceType }} - - export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "fullname" . }}) - export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") - echo "WordPress URL: http://$NODE_IP:$NODE_PORT/" - echo "WordPress Admin URL: http://$NODE_IP:$NODE_PORT/admin" - -{{- end }} - -2. Login with the following credentials to see your blog - - echo Username: {{ .Values.wordpressUsername }} - echo Password: $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath="{.data.wordpress-password}" | base64 --decode) +Placeholder diff --git a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/_helpers.tpl b/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/_helpers.tpl deleted file mode 100755 index 1e52d321c..000000000 --- a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/_helpers.tpl +++ /dev/null @@ -1,24 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "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). -*/}} -{{- define "fullname" -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- printf "%s-%s" .Release.Name $name | 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). -*/}} -{{- define "mariadb.fullname" -}} -{{- printf "%s-%s" .Release.Name "mariadb" | trunc 63 | trimSuffix "-" -}} -{{- end -}} diff --git a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/deployment.yaml b/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/deployment.yaml deleted file mode 100755 index c5ab3d3ec..000000000 --- a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/deployment.yaml +++ /dev/null @@ -1,155 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: {{ template "fullname" . }} - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -spec: - replicas: {{ .Values.replicaCount }} - template: - metadata: - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - spec: - {{- if .Values.image.pullSecrets }} - imagePullSecrets: - {{- range .Values.image.pullSecrets }} - - name: {{ . }} - {{- end}} - {{- end }} - containers: - - name: {{ template "fullname" . }} - image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy | quote }} - env: - - name: ALLOW_EMPTY_PASSWORD - value: {{ .Values.allowEmptyPassword | quote }} - - name: MARIADB_HOST - {{- if .Values.mariadb.enabled }} - value: {{ template "mariadb.fullname" . }} - {{- else }} - value: {{ .Values.externalDatabase.host | quote }} - {{- end }} - - name: MARIADB_PORT_NUMBER - {{- if .Values.mariadb.enabled }} - value: "3306" - {{- else }} - value: {{ .Values.externalDatabase.port | quote }} - {{- end }} - - name: WORDPRESS_DATABASE_NAME - {{- if .Values.mariadb.enabled }} - value: {{ .Values.mariadb.db.name | quote }} - {{- else }} - value: {{ .Values.externalDatabase.database | quote }} - {{- end }} - - name: WORDPRESS_DATABASE_USER - {{- if .Values.mariadb.enabled }} - value: {{ .Values.mariadb.db.user | quote }} - {{- else }} - value: {{ .Values.externalDatabase.user | quote }} - {{- end }} - - name: WORDPRESS_DATABASE_PASSWORD - valueFrom: - secretKeyRef: - {{- if .Values.mariadb.enabled }} - name: {{ template "mariadb.fullname" . }} - key: mariadb-password - {{- else }} - name: {{ printf "%s-%s" .Release.Name "externaldb" }} - key: db-password - {{- end }} - - name: WORDPRESS_USERNAME - value: {{ .Values.wordpressUsername | quote }} - - name: WORDPRESS_PASSWORD - valueFrom: - secretKeyRef: - name: {{ template "fullname" . }} - key: wordpress-password - - name: WORDPRESS_EMAIL - value: {{ .Values.wordpressEmail | quote }} - - name: WORDPRESS_FIRST_NAME - value: {{ .Values.wordpressFirstName | quote }} - - name: WORDPRESS_LAST_NAME - value: {{ .Values.wordpressLastName | quote }} - - name: WORDPRESS_BLOG_NAME - value: {{ .Values.wordpressBlogName | quote }} - - name: WORDPRESS_TABLE_PREFIX - value: {{ .Values.wordpressTablePrefix | quote }} - - name: SMTP_HOST - value: {{ .Values.smtpHost | quote }} - - name: SMTP_PORT - value: {{ .Values.smtpPort | quote }} - - name: SMTP_USER - value: {{ .Values.smtpUser | quote }} - - name: SMTP_PASSWORD - valueFrom: - secretKeyRef: - name: {{ template "fullname" . }} - key: smtp-password - - name: SMTP_USERNAME - value: {{ .Values.smtpUsername | quote }} - - name: SMTP_PROTOCOL - value: {{ .Values.smtpProtocol | quote }} - ports: - - name: http - containerPort: 80 - - name: https - containerPort: 443 - livenessProbe: - httpGet: - path: /wp-login.php - {{- if not .Values.healthcheckHttps }} - port: http - {{- else }} - port: https - scheme: HTTPS - {{- end }} -{{ toYaml .Values.livenessProbe | indent 10 }} - readinessProbe: - httpGet: - path: /wp-login.php - {{- if not .Values.healthcheckHttps }} - port: http - {{- else }} - port: https - scheme: HTTPS - {{- end }} -{{ toYaml .Values.readinessProbe | indent 10 }} - volumeMounts: - - mountPath: /bitnami/apache - name: wordpress-data - subPath: apache - - mountPath: /bitnami/wordpress - name: wordpress-data - subPath: wordpress - - mountPath: /bitnami/php - name: wordpress-data - subPath: php - resources: -{{ toYaml .Values.resources | indent 10 }} - volumes: - - name: wordpress-data - {{- if .Values.persistence.enabled }} - persistentVolumeClaim: - claimName: {{ .Values.persistence.existingClaim | default (include "fullname" .) }} - {{- else }} - emptyDir: {} - {{ end }} - {{- if .Values.nodeSelector }} - nodeSelector: -{{ toYaml .Values.nodeSelector | indent 8 }} - {{- end -}} - {{- with .Values.affinity }} - affinity: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} - {{- end }} - diff --git a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/externaldb-secrets.yaml b/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/externaldb-secrets.yaml deleted file mode 100755 index 39399ae54..000000000 --- a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/externaldb-secrets.yaml +++ /dev/null @@ -1,14 +0,0 @@ -{{- if not .Values.mariadb.enabled }} -apiVersion: v1 -kind: Secret -metadata: - name: {{ printf "%s-%s" .Release.Name "externaldb" }} - labels: - app: {{ printf "%s-%s" .Release.Name "externaldb" }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -type: Opaque -data: - db-password: {{ .Values.externalDatabase.password | b64enc | quote }} -{{- end }} diff --git a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/ingress.yaml b/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/ingress.yaml deleted file mode 100755 index 7870146ff..000000000 --- a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/ingress.yaml +++ /dev/null @@ -1,36 +0,0 @@ -{{- if .Values.ingress.enabled }} -{{- range .Values.ingress.hosts }} -apiVersion: extensions/v1beta1 -kind: Ingress -metadata: - name: "{{- printf "%s-%s" .name $.Release.Name | trunc 63 | trimSuffix "-" -}}" - labels: - app: {{ template "fullname" $ }} - chart: "{{ $.Chart.Name }}-{{ $.Chart.Version }}" - release: "{{ $.Release.Name }}" - heritage: "{{ $.Release.Service }}" - annotations: - {{- if .tls }} - ingress.kubernetes.io/secure-backends: "true" - {{- end }} - {{- range $key, $value := .annotations }} - {{ $key }}: {{ $value | quote }} - {{- end }} -spec: - rules: - - host: {{ .name }} - http: - paths: - - path: {{ default "/" .path }} - backend: - serviceName: {{ template "fullname" $ }} - servicePort: 80 -{{- if .tls }} - tls: - - hosts: - - {{ .name }} - secretName: {{ .tlsSecret }} -{{- end }} ---- -{{- end }} -{{- end }} diff --git a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/pvc.yaml b/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/pvc.yaml deleted file mode 100755 index b3f912480..000000000 --- a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/pvc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }} -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: {{ template "fullname" . }} - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -spec: - accessModes: - - {{ .Values.persistence.accessMode | quote }} - resources: - requests: - storage: {{ .Values.persistence.size | quote }} -{{- if .Values.persistence.storageClass }} -{{- if (eq "-" .Values.persistence.storageClass) }} - storageClassName: "" -{{- else }} - storageClassName: "{{ .Values.persistence.storageClass }}" -{{- end }} -{{- end }} -{{- end -}} diff --git a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/secrets.yaml b/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/secrets.yaml deleted file mode 100755 index 80a28d724..000000000 --- a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/secrets.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ template "fullname" . }} - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -type: Opaque -data: - {{ if .Values.wordpressPassword }} - wordpress-password: {{ default "" .Values.wordpressPassword | b64enc | quote }} - {{ else }} - wordpress-password: {{ randAlphaNum 10 | b64enc | quote }} - {{ end }} - smtp-password: {{ default "" .Values.smtpPassword | b64enc | quote }} diff --git a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/svc.yaml b/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/svc.yaml deleted file mode 100755 index f6c399313..000000000 --- a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/svc.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ template "fullname" . }} - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -spec: - type: {{ .Values.serviceType }} - {{- if (or (eq .Values.serviceType "LoadBalancer") (eq .Values.serviceType "NodePort")) }} - externalTrafficPolicy: {{ .Values.serviceExternalTrafficPolicy | quote }} - {{- end }} - ports: - - name: http - port: 80 - targetPort: http - {{- if (and (eq .Values.serviceType "NodePort") (not (empty .Values.nodePorts.http)))}} - nodePort: {{ .Values.nodePorts.http }} - {{- end }} - - name: https - port: 443 - targetPort: https - {{- if (and (eq .Values.serviceType "NodePort") (not (empty .Values.nodePorts.https)))}} - nodePort: {{ .Values.nodePorts.https }} - {{- end }} - selector: - app: {{ template "fullname" . }} diff --git a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/tests/test-mariadb-connection.yaml b/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/tests/test-mariadb-connection.yaml deleted file mode 100755 index 95ccb38ad..000000000 --- a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/tests/test-mariadb-connection.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if .Values.mariadb.enabled }} -apiVersion: v1 -kind: Pod -metadata: - name: "{{ .Release.Name }}-credentials-test" - annotations: - "helm.sh/hook": test-success -spec: - containers: - - name: {{ .Release.Name }}-credentials-test - image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy | quote }} - env: - - name: MARIADB_HOST - value: {{ template "mariadb.fullname" . }} - - name: MARIADB_PORT - value: "3306" - - name: WORDPRESS_DATABASE_NAME - value: {{ default "" .Values.mariadb.db.name | quote }} - - name: WORDPRESS_DATABASE_USER - value: {{ default "" .Values.mariadb.db.user | quote }} - - name: WORDPRESS_DATABASE_PASSWORD - valueFrom: - secretKeyRef: - name: {{ template "mariadb.fullname" . }} - key: mariadb-password - command: ["sh", "-c", "mysql --host=$MARIADB_HOST --port=$MARIADB_PORT --user=$WORDPRESS_DATABASE_USER --password=$WORDPRESS_DATABASE_PASSWORD"] - restartPolicy: Never -{{- end }} diff --git a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/tls-secrets.yaml b/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/tls-secrets.yaml deleted file mode 100755 index ca75d33ef..000000000 --- a/pkg/action/testdata/charts/chart-with-compressed-dependencies/templates/tls-secrets.yaml +++ /dev/null @@ -1,18 +0,0 @@ -{{- if .Values.ingress.enabled }} -{{- range .Values.ingress.secrets }} -apiVersion: v1 -kind: Secret -metadata: - name: {{ .name }} - labels: - app: {{ template "fullname" $ }} - chart: "{{ $.Chart.Name }}-{{ $.Chart.Version }}" - release: "{{ $.Release.Name }}" - heritage: "{{ $.Release.Service }}" -type: kubernetes.io/tls -data: - tls.crt: {{ .certificate | b64enc }} - tls.key: {{ .key | b64enc }} ---- -{{- end }} -{{- end }} \ No newline at end of file diff --git a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies-2.1.8.tgz b/pkg/action/testdata/charts/chart-with-uncompressed-dependencies-2.1.8.tgz index a56460fc49049b824d738f2bf19239eb9975e311..ad9e681795cf96f3c632c8d6ba6c406be3b96b45 100644 GIT binary patch literal 10953 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 diff --git a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/README.md b/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/README.md index 5859a17fa..341a1ad93 100755 --- a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/README.md +++ b/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/README.md @@ -1,232 +1,3 @@ # WordPress -[WordPress](https://wordpress.org/) is one of the most versatile open source content management systems on the market. A publishing platform for building blogs and websites. - -## TL;DR; - -```console -$ helm install stable/wordpress -``` - -## Introduction - -This chart bootstraps a [WordPress](https://github.com/bitnami/bitnami-docker-wordpress) deployment on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. - -It also packages the [Bitnami MariaDB chart](https://github.com/kubernetes/charts/tree/master/stable/mariadb) which is required for bootstrapping a MariaDB deployment for the database requirements of the WordPress application. - -## Prerequisites - -- Kubernetes 1.4+ with Beta APIs enabled -- PV provisioner support in the underlying infrastructure - -## Installing the Chart - -To install the chart with the release name `my-release`: - -```console -$ helm install --name my-release stable/wordpress -``` - -The command deploys WordPress on the Kubernetes cluster in the default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. - -> **Tip**: List all releases using `helm list` - -## Uninstalling the Chart - -To uninstall/delete the `my-release` deployment: - -```console -$ helm delete my-release -``` - -The command removes all the Kubernetes components associated with the chart and deletes the release. - -## Configuration - -The following table lists the configurable parameters of the WordPress chart and their default values. - -| Parameter | Description | Default | -|----------------------------------|--------------------------------------------|---------------------------------------------------------| -| `image.registry` | WordPress image registry | `docker.io` | -| `image.repository` | WordPress image name | `bitnami/wordpress` | -| `image.tag` | WordPress image tag | `{VERSION}` | -| `image.pullPolicy` | Image pull policy | `Always` if `imageTag` is `latest`, else `IfNotPresent` | -| `image.pullSecrets` | Specify image pull secrets | `nil` | -| `wordpressUsername` | User of the application | `user` | -| `wordpressPassword` | Application password | _random 10 character long alphanumeric string_ | -| `wordpressEmail` | Admin email | `user@example.com` | -| `wordpressFirstName` | First name | `FirstName` | -| `wordpressLastName` | Last name | `LastName` | -| `wordpressBlogName` | Blog name | `User's Blog!` | -| `wordpressTablePrefix` | Table prefix | `wp_` | -| `allowEmptyPassword` | Allow DB blank passwords | `yes` | -| `smtpHost` | SMTP host | `nil` | -| `smtpPort` | SMTP port | `nil` | -| `smtpUser` | SMTP user | `nil` | -| `smtpPassword` | SMTP password | `nil` | -| `smtpUsername` | User name for SMTP emails | `nil` | -| `smtpProtocol` | SMTP protocol [`tls`, `ssl`] | `nil` | -| `replicaCount` | Number of WordPress Pods to run | `1` | -| `mariadb.enabled` | Deploy MariaDB container(s) | `true` | -| `mariadb.rootUser.password` | MariaDB admin password | `nil` | -| `mariadb.db.name` | Database name to create | `bitnami_wordpress` | -| `mariadb.db.user` | Database user to create | `bn_wordpress` | -| `mariadb.db.password` | Password for the database | _random 10 character long alphanumeric string_ | -| `externalDatabase.host` | Host of the external database | `localhost` | -| `externalDatabase.user` | Existing username in the external db | `bn_wordpress` | -| `externalDatabase.password` | Password for the above username | `nil` | -| `externalDatabase.database` | Name of the existing database | `bitnami_wordpress` | -| `externalDatabase.port` | Database port number | `3306` | -| `serviceType` | Kubernetes Service type | `LoadBalancer` | -| `serviceExternalTrafficPolicy` | Enable client source IP preservation | `Cluster` | -| `nodePorts.http` | Kubernetes http node port | `""` | -| `nodePorts.https` | Kubernetes https node port | `""` | -| `healthcheckHttps` | Use https for liveliness and readiness | `false` | -| `ingress.enabled` | Enable ingress controller resource | `false` | -| `ingress.hosts[0].name` | Hostname to your WordPress installation | `wordpress.local` | -| `ingress.hosts[0].path` | Path within the url structure | `/` | -| `ingress.hosts[0].tls` | Utilize TLS backend in ingress | `false` | -| `ingress.hosts[0].tlsSecret` | TLS Secret (certificates) | `wordpress.local-tls-secret` | -| `ingress.hosts[0].annotations` | Annotations for this host's ingress record | `[]` | -| `ingress.secrets[0].name` | TLS Secret Name | `nil` | -| `ingress.secrets[0].certificate` | TLS Secret Certificate | `nil` | -| `ingress.secrets[0].key` | TLS Secret Key | `nil` | -| `persistence.enabled` | Enable persistence using PVC | `true` | -| `persistence.existingClaim` | Enable persistence using an existing PVC | `nil` | -| `persistence.storageClass` | PVC Storage Class | `nil` (uses alpha storage class annotation) | -| `persistence.accessMode` | PVC Access Mode | `ReadWriteOnce` | -| `persistence.size` | PVC Storage Request | `10Gi` | -| `nodeSelector` | Node labels for pod assignment | `{}` | -| `tolerations` | List of node taints to tolerate | `[]` | -| `affinity` | Map of node/pod affinities | `{}` | - -The above parameters map to the env variables defined in [bitnami/wordpress](http://github.com/bitnami/bitnami-docker-wordpress). For more information please refer to the [bitnami/wordpress](http://github.com/bitnami/bitnami-docker-wordpress) image documentation. - -Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, - -```console -$ helm install --name my-release \ - --set wordpressUsername=admin,wordpressPassword=password,mariadb.mariadbRootPassword=secretpassword \ - stable/wordpress -``` - -The above command sets the WordPress administrator account username and password to `admin` and `password` respectively. Additionally, it sets the MariaDB `root` user password to `secretpassword`. - -Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, - -```console -$ helm install --name my-release -f values.yaml stable/wordpress -``` - -> **Tip**: You can use the default [values.yaml](values.yaml) - -## Production and horizontal scaling - -The following repo contains the recommended production settings for wordpress capture in an alternative [values file](values-production.yaml). Please read carefully the comments in the values-production.yaml file to set up your environment appropriately. - -To horizontally scale this chart, first download the [values-production.yaml](values-production.yaml) file to your local folder, then: - -```console -$ helm install --name my-release -f ./values-production.yaml stable/wordpress -``` - -Note that [values-production.yaml](values-production.yaml) includes a replicaCount of 3, so there will be 3 WordPress pods. As a result, to use the /admin portal and to ensure you can scale wordpress you need to provide a ReadWriteMany PVC, if you don't have a provisioner for this type of storage, we recommend that you install the nfs provisioner and map it to a RWO volume. - -```console -$ helm install stable/nfs-server-provisioner --set persistence.enabled=true,persistence.size=10Gi -$ helm install --name my-release -f values-production.yaml --set persistence.storageClass=nfs stable/wordpress -``` - -## Persistence - -The [Bitnami WordPress](https://github.com/bitnami/bitnami-docker-wordpress) image stores the WordPress data and configurations at the `/bitnami` path of the container. - -Persistent Volume Claims are used to keep the data across deployments. This is known to work in GCE, AWS, and minikube. -See the [Configuration](#configuration) section to configure the PVC or to disable persistence. - -## Using an external database - -Sometimes you may want to have Wordpress connect to an external database rather than installing one inside your cluster, e.g. to use a managed database service, or use run a single database server for all your applications. To do this, the chart allows you to specify credentials for an external database under the [`externalDatabase` parameter](#configuration). You should also disable the MariaDB installation with the `mariadb.enabled` option. For example: - -```console -$ helm install stable/wordpress \ - --set mariadb.enabled=false,externalDatabase.host=myexternalhost,externalDatabase.user=myuser,externalDatabase.password=mypassword,externalDatabase.database=mydatabase,externalDatabase.port=3306 -``` - -Note also if you disable MariaDB per above you MUST supply values for the `externalDatabase` connection. - -## Ingress - -This chart provides support for ingress resources. If you have an -ingress controller installed on your cluster, such as [nginx-ingress](https://kubeapps.com/charts/stable/nginx-ingress) -or [traefik](https://kubeapps.com/charts/stable/traefik) you can utilize -the ingress controller to serve your WordPress application. - -To enable ingress integration, please set `ingress.enabled` to `true` - -### Hosts - -Most likely you will only want to have one hostname that maps to this -WordPress installation, however, it is possible to have more than one -host. To facilitate this, the `ingress.hosts` object is an array. - -For each item, please indicate a `name`, `tls`, `tlsSecret`, and any -`annotations` that you may want the ingress controller to know about. - -Indicating TLS will cause WordPress to generate HTTPS URLs, and -WordPress will be connected to at port 443. The actual secret that -`tlsSecret` references do not have to be generated by this chart. -However, please note that if TLS is enabled, the ingress record will not -work until this secret exists. - -For annotations, please see [this document](https://github.com/kubernetes/ingress-nginx/blob/master/docs/annotations.md). -Not all annotations are supported by all ingress controllers, but this -document does a good job of indicating which annotation is supported by -many popular ingress controllers. - -### TLS Secrets - -This chart will facilitate the creation of TLS secrets for use with the -ingress controller, however, this is not required. There are three -common use cases: - -* helm generates/manages certificate secrets -* user generates/manages certificates separately -* an additional tool (like [kube-lego](https://kubeapps.com/charts/stable/kube-lego)) -manages the secrets for the application - -In the first two cases, one will need a certificate and a key. We would -expect them to look like this: - -* certificate files should look like (and there can be more than one -certificate if there is a certificate chain) - -``` ------BEGIN CERTIFICATE----- -MIID6TCCAtGgAwIBAgIJAIaCwivkeB5EMA0GCSqGSIb3DQEBCwUAMFYxCzAJBgNV -... -jScrvkiBO65F46KioCL9h5tDvomdU1aqpI/CBzhvZn1c0ZTf87tGQR8NK7v7 ------END CERTIFICATE----- -``` -* keys should look like: -``` ------BEGIN RSA PRIVATE KEY----- -MIIEogIBAAKCAQEAvLYcyu8f3skuRyUgeeNpeDvYBCDcgq+LsWap6zbX5f8oLqp4 -... -wrj2wDbCDCFmfqnSJ+dKI3vFLlEz44sAV8jX/kd4Y6ZTQhlLbYc= ------END RSA PRIVATE KEY----- -```` - -If you are going to use Helm to manage the certificates, please copy -these values into the `certificate` and `key` values for a given -`ingress.secrets` entry. - -If you are going are going to manage TLS secrets outside of Helm, please -know that you can create a TLS secret by doing the following: - -``` -kubectl create secret tls wordpress.local-tls --key /path/to/key.key --cert /path/to/cert.crt -``` - -Please see [this example](https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx/examples/tls) -for more information. +This is a testing mock, and is not operational. diff --git a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/NOTES.txt b/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/NOTES.txt index 55626e4d1..75ed9b64f 100755 --- a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/NOTES.txt +++ b/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/NOTES.txt @@ -1,38 +1 @@ -1. Get the WordPress URL: - -{{- if .Values.ingress.enabled }} - - You should be able to access your new WordPress installation through - - {{- range .Values.ingress.hosts }} - {{ if .tls }}https{{ else }}http{{ end }}://{{ .name }}/admin - {{- end }} - -{{- else if contains "LoadBalancer" .Values.serviceType }} - - NOTE: It may take a few minutes for the LoadBalancer IP to be available. - Watch the status with: 'kubectl get svc --namespace {{ .Release.Namespace }} -w {{ template "fullname" . }}' - - export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath='{.status.loadBalancer.ingress[0].ip}') - echo "WordPress URL: http://$SERVICE_IP/" - echo "WordPress Admin URL: http://$SERVICE_IP/admin" - -{{- else if contains "ClusterIP" .Values.serviceType }} - - echo "WordPress URL: http://127.0.0.1:8080/" - echo "WordPress Admin URL: http://127.0.0.1:8080/admin" - kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ template "fullname" . }} 8080:80 - -{{- else if contains "NodePort" .Values.serviceType }} - - export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ template "fullname" . }}) - export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") - echo "WordPress URL: http://$NODE_IP:$NODE_PORT/" - echo "WordPress Admin URL: http://$NODE_IP:$NODE_PORT/admin" - -{{- end }} - -2. Login with the following credentials to see your blog - - echo Username: {{ .Values.wordpressUsername }} - echo Password: $(kubectl get secret --namespace {{ .Release.Namespace }} {{ template "fullname" . }} -o jsonpath="{.data.wordpress-password}" | base64 --decode) +Placeholder. diff --git a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/_helpers.tpl b/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/_helpers.tpl deleted file mode 100755 index 1e52d321c..000000000 --- a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/_helpers.tpl +++ /dev/null @@ -1,24 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "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). -*/}} -{{- define "fullname" -}} -{{- $name := default .Chart.Name .Values.nameOverride -}} -{{- printf "%s-%s" .Release.Name $name | 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). -*/}} -{{- define "mariadb.fullname" -}} -{{- printf "%s-%s" .Release.Name "mariadb" | trunc 63 | trimSuffix "-" -}} -{{- end -}} diff --git a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/deployment.yaml b/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/deployment.yaml deleted file mode 100755 index c5ab3d3ec..000000000 --- a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/deployment.yaml +++ /dev/null @@ -1,155 +0,0 @@ -apiVersion: extensions/v1beta1 -kind: Deployment -metadata: - name: {{ template "fullname" . }} - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -spec: - replicas: {{ .Values.replicaCount }} - template: - metadata: - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - spec: - {{- if .Values.image.pullSecrets }} - imagePullSecrets: - {{- range .Values.image.pullSecrets }} - - name: {{ . }} - {{- end}} - {{- end }} - containers: - - name: {{ template "fullname" . }} - image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy | quote }} - env: - - name: ALLOW_EMPTY_PASSWORD - value: {{ .Values.allowEmptyPassword | quote }} - - name: MARIADB_HOST - {{- if .Values.mariadb.enabled }} - value: {{ template "mariadb.fullname" . }} - {{- else }} - value: {{ .Values.externalDatabase.host | quote }} - {{- end }} - - name: MARIADB_PORT_NUMBER - {{- if .Values.mariadb.enabled }} - value: "3306" - {{- else }} - value: {{ .Values.externalDatabase.port | quote }} - {{- end }} - - name: WORDPRESS_DATABASE_NAME - {{- if .Values.mariadb.enabled }} - value: {{ .Values.mariadb.db.name | quote }} - {{- else }} - value: {{ .Values.externalDatabase.database | quote }} - {{- end }} - - name: WORDPRESS_DATABASE_USER - {{- if .Values.mariadb.enabled }} - value: {{ .Values.mariadb.db.user | quote }} - {{- else }} - value: {{ .Values.externalDatabase.user | quote }} - {{- end }} - - name: WORDPRESS_DATABASE_PASSWORD - valueFrom: - secretKeyRef: - {{- if .Values.mariadb.enabled }} - name: {{ template "mariadb.fullname" . }} - key: mariadb-password - {{- else }} - name: {{ printf "%s-%s" .Release.Name "externaldb" }} - key: db-password - {{- end }} - - name: WORDPRESS_USERNAME - value: {{ .Values.wordpressUsername | quote }} - - name: WORDPRESS_PASSWORD - valueFrom: - secretKeyRef: - name: {{ template "fullname" . }} - key: wordpress-password - - name: WORDPRESS_EMAIL - value: {{ .Values.wordpressEmail | quote }} - - name: WORDPRESS_FIRST_NAME - value: {{ .Values.wordpressFirstName | quote }} - - name: WORDPRESS_LAST_NAME - value: {{ .Values.wordpressLastName | quote }} - - name: WORDPRESS_BLOG_NAME - value: {{ .Values.wordpressBlogName | quote }} - - name: WORDPRESS_TABLE_PREFIX - value: {{ .Values.wordpressTablePrefix | quote }} - - name: SMTP_HOST - value: {{ .Values.smtpHost | quote }} - - name: SMTP_PORT - value: {{ .Values.smtpPort | quote }} - - name: SMTP_USER - value: {{ .Values.smtpUser | quote }} - - name: SMTP_PASSWORD - valueFrom: - secretKeyRef: - name: {{ template "fullname" . }} - key: smtp-password - - name: SMTP_USERNAME - value: {{ .Values.smtpUsername | quote }} - - name: SMTP_PROTOCOL - value: {{ .Values.smtpProtocol | quote }} - ports: - - name: http - containerPort: 80 - - name: https - containerPort: 443 - livenessProbe: - httpGet: - path: /wp-login.php - {{- if not .Values.healthcheckHttps }} - port: http - {{- else }} - port: https - scheme: HTTPS - {{- end }} -{{ toYaml .Values.livenessProbe | indent 10 }} - readinessProbe: - httpGet: - path: /wp-login.php - {{- if not .Values.healthcheckHttps }} - port: http - {{- else }} - port: https - scheme: HTTPS - {{- end }} -{{ toYaml .Values.readinessProbe | indent 10 }} - volumeMounts: - - mountPath: /bitnami/apache - name: wordpress-data - subPath: apache - - mountPath: /bitnami/wordpress - name: wordpress-data - subPath: wordpress - - mountPath: /bitnami/php - name: wordpress-data - subPath: php - resources: -{{ toYaml .Values.resources | indent 10 }} - volumes: - - name: wordpress-data - {{- if .Values.persistence.enabled }} - persistentVolumeClaim: - claimName: {{ .Values.persistence.existingClaim | default (include "fullname" .) }} - {{- else }} - emptyDir: {} - {{ end }} - {{- if .Values.nodeSelector }} - nodeSelector: -{{ toYaml .Values.nodeSelector | indent 8 }} - {{- end -}} - {{- with .Values.affinity }} - affinity: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} - {{- end }} - diff --git a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/externaldb-secrets.yaml b/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/externaldb-secrets.yaml deleted file mode 100755 index 39399ae54..000000000 --- a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/externaldb-secrets.yaml +++ /dev/null @@ -1,14 +0,0 @@ -{{- if not .Values.mariadb.enabled }} -apiVersion: v1 -kind: Secret -metadata: - name: {{ printf "%s-%s" .Release.Name "externaldb" }} - labels: - app: {{ printf "%s-%s" .Release.Name "externaldb" }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -type: Opaque -data: - db-password: {{ .Values.externalDatabase.password | b64enc | quote }} -{{- end }} diff --git a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/ingress.yaml b/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/ingress.yaml deleted file mode 100755 index 7870146ff..000000000 --- a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/ingress.yaml +++ /dev/null @@ -1,36 +0,0 @@ -{{- if .Values.ingress.enabled }} -{{- range .Values.ingress.hosts }} -apiVersion: extensions/v1beta1 -kind: Ingress -metadata: - name: "{{- printf "%s-%s" .name $.Release.Name | trunc 63 | trimSuffix "-" -}}" - labels: - app: {{ template "fullname" $ }} - chart: "{{ $.Chart.Name }}-{{ $.Chart.Version }}" - release: "{{ $.Release.Name }}" - heritage: "{{ $.Release.Service }}" - annotations: - {{- if .tls }} - ingress.kubernetes.io/secure-backends: "true" - {{- end }} - {{- range $key, $value := .annotations }} - {{ $key }}: {{ $value | quote }} - {{- end }} -spec: - rules: - - host: {{ .name }} - http: - paths: - - path: {{ default "/" .path }} - backend: - serviceName: {{ template "fullname" $ }} - servicePort: 80 -{{- if .tls }} - tls: - - hosts: - - {{ .name }} - secretName: {{ .tlsSecret }} -{{- end }} ---- -{{- end }} -{{- end }} diff --git a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/pvc.yaml b/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/pvc.yaml deleted file mode 100755 index b3f912480..000000000 --- a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/pvc.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }} -kind: PersistentVolumeClaim -apiVersion: v1 -metadata: - name: {{ template "fullname" . }} - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -spec: - accessModes: - - {{ .Values.persistence.accessMode | quote }} - resources: - requests: - storage: {{ .Values.persistence.size | quote }} -{{- if .Values.persistence.storageClass }} -{{- if (eq "-" .Values.persistence.storageClass) }} - storageClassName: "" -{{- else }} - storageClassName: "{{ .Values.persistence.storageClass }}" -{{- end }} -{{- end }} -{{- end -}} diff --git a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/secrets.yaml b/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/secrets.yaml deleted file mode 100755 index 80a28d724..000000000 --- a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/secrets.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ template "fullname" . }} - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -type: Opaque -data: - {{ if .Values.wordpressPassword }} - wordpress-password: {{ default "" .Values.wordpressPassword | b64enc | quote }} - {{ else }} - wordpress-password: {{ randAlphaNum 10 | b64enc | quote }} - {{ end }} - smtp-password: {{ default "" .Values.smtpPassword | b64enc | quote }} diff --git a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/svc.yaml b/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/svc.yaml deleted file mode 100755 index f6c399313..000000000 --- a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/svc.yaml +++ /dev/null @@ -1,29 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ template "fullname" . }} - labels: - app: {{ template "fullname" . }} - chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" - release: "{{ .Release.Name }}" - heritage: "{{ .Release.Service }}" -spec: - type: {{ .Values.serviceType }} - {{- if (or (eq .Values.serviceType "LoadBalancer") (eq .Values.serviceType "NodePort")) }} - externalTrafficPolicy: {{ .Values.serviceExternalTrafficPolicy | quote }} - {{- end }} - ports: - - name: http - port: 80 - targetPort: http - {{- if (and (eq .Values.serviceType "NodePort") (not (empty .Values.nodePorts.http)))}} - nodePort: {{ .Values.nodePorts.http }} - {{- end }} - - name: https - port: 443 - targetPort: https - {{- if (and (eq .Values.serviceType "NodePort") (not (empty .Values.nodePorts.https)))}} - nodePort: {{ .Values.nodePorts.https }} - {{- end }} - selector: - app: {{ template "fullname" . }} diff --git a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/tests/test-mariadb-connection.yaml b/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/tests/test-mariadb-connection.yaml deleted file mode 100755 index 95ccb38ad..000000000 --- a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/tests/test-mariadb-connection.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if .Values.mariadb.enabled }} -apiVersion: v1 -kind: Pod -metadata: - name: "{{ .Release.Name }}-credentials-test" - annotations: - "helm.sh/hook": test-success -spec: - containers: - - name: {{ .Release.Name }}-credentials-test - image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ .Values.image.tag }}" - imagePullPolicy: {{ .Values.image.pullPolicy | quote }} - env: - - name: MARIADB_HOST - value: {{ template "mariadb.fullname" . }} - - name: MARIADB_PORT - value: "3306" - - name: WORDPRESS_DATABASE_NAME - value: {{ default "" .Values.mariadb.db.name | quote }} - - name: WORDPRESS_DATABASE_USER - value: {{ default "" .Values.mariadb.db.user | quote }} - - name: WORDPRESS_DATABASE_PASSWORD - valueFrom: - secretKeyRef: - name: {{ template "mariadb.fullname" . }} - key: mariadb-password - command: ["sh", "-c", "mysql --host=$MARIADB_HOST --port=$MARIADB_PORT --user=$WORDPRESS_DATABASE_USER --password=$WORDPRESS_DATABASE_PASSWORD"] - restartPolicy: Never -{{- end }} diff --git a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/tls-secrets.yaml b/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/tls-secrets.yaml deleted file mode 100755 index ca75d33ef..000000000 --- a/pkg/action/testdata/charts/chart-with-uncompressed-dependencies/templates/tls-secrets.yaml +++ /dev/null @@ -1,18 +0,0 @@ -{{- if .Values.ingress.enabled }} -{{- range .Values.ingress.secrets }} -apiVersion: v1 -kind: Secret -metadata: - name: {{ .name }} - labels: - app: {{ template "fullname" $ }} - chart: "{{ $.Chart.Name }}-{{ $.Chart.Version }}" - release: "{{ $.Release.Name }}" - heritage: "{{ $.Release.Service }}" -type: kubernetes.io/tls -data: - tls.crt: {{ .certificate | b64enc }} - tls.key: {{ .key | b64enc }} ---- -{{- end }} -{{- end }} \ No newline at end of file