Merge branch 'main' into topology
This commit is contained in:
commit
4c752a9f1d
81 changed files with 1552 additions and 258 deletions
|
@ -77,7 +77,7 @@ jobs:
|
||||||
-X POST \
|
-X POST \
|
||||||
-H 'Content-Type: application/json' \
|
-H 'Content-Type: application/json' \
|
||||||
-H 'Accept: application/json' \
|
-H 'Accept: application/json' \
|
||||||
-d "{\"branch\": \"master\",\"parameters\":{\"SOURCE_REPO\": \"${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}\",\"SOURCE_TAG\": \"${CIRCLE_TAG}\"}}" \
|
-d "{\"branch\": \"main\",\"parameters\":{\"SOURCE_REPO\": \"${CIRCLE_PROJECT_USERNAME}/${CIRCLE_PROJECT_REPONAME}\",\"SOURCE_TAG\": \"${CIRCLE_TAG}\"}}" \
|
||||||
"${CIRCLE_ENDPOINT}/${CIRCLE_PROJECT}/pipeline"
|
"${CIRCLE_ENDPOINT}/${CIRCLE_PROJECT}/pipeline"
|
||||||
- slack/status:
|
- slack/status:
|
||||||
fail_only: true
|
fail_only: true
|
||||||
|
@ -85,16 +85,7 @@ jobs:
|
||||||
|
|
||||||
workflows:
|
workflows:
|
||||||
version: 2
|
version: 2
|
||||||
build_and_test:
|
# Note: unit and acceptance tests are now being run in GitHub Actions
|
||||||
jobs:
|
|
||||||
- bats-unit-test
|
|
||||||
- chart-verifier
|
|
||||||
- acceptance:
|
|
||||||
requires:
|
|
||||||
- bats-unit-test
|
|
||||||
filters:
|
|
||||||
branches:
|
|
||||||
only: main
|
|
||||||
update-helm-charts-index:
|
update-helm-charts-index:
|
||||||
jobs:
|
jobs:
|
||||||
- update-helm-charts-index:
|
- update-helm-charts-index:
|
||||||
|
|
34
.github/workflows/acceptance.yaml
vendored
Normal file
34
.github/workflows/acceptance.yaml
vendored
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
name: Acceptance Tests
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
workflow_dispatch: {}
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
kind:
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
kind-k8s-version: [1.16.15, 1.20.15, 1.21.10, 1.22.7, 1.23.4]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Setup test tools
|
||||||
|
uses: ./.github/workflows/setup-test-tools
|
||||||
|
|
||||||
|
- name: Create K8s Kind Cluster
|
||||||
|
uses: helm/kind-action@v1.2.0
|
||||||
|
with:
|
||||||
|
config: test/kind/config.yaml
|
||||||
|
node_image: kindest/node:v${{ matrix.kind-k8s-version }}
|
||||||
|
|
||||||
|
# Skip CSI tests if K8s version < 1.16.x
|
||||||
|
- run: echo K8S_MINOR=$(kubectl version -o json | jq -r .serverVersion.minor) >> $GITHUB_ENV
|
||||||
|
- if: ${{ env.K8S_MINOR < 16 }}
|
||||||
|
run: echo "SKIP_CSI=true" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- run: bats ./test/acceptance -t
|
||||||
|
env:
|
||||||
|
VAULT_LICENSE_CI: ${{ secrets.VAULT_LICENSE_CI }}
|
18
.github/workflows/setup-test-tools/action.yaml
vendored
Normal file
18
.github/workflows/setup-test-tools/action.yaml
vendored
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
name: Setup common testing tools
|
||||||
|
description: Install bats and python-yq
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: '14'
|
||||||
|
- run: npm install -g bats@${BATS_VERSION}
|
||||||
|
shell: bash
|
||||||
|
env:
|
||||||
|
BATS_VERSION: '1.5.0'
|
||||||
|
- run: bats -v
|
||||||
|
shell: bash
|
||||||
|
- uses: actions/setup-python@v2
|
||||||
|
- run: pip install yq
|
||||||
|
shell: bash
|
25
.github/workflows/tests.yaml
vendored
Normal file
25
.github/workflows/tests.yaml
vendored
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
name: Tests
|
||||||
|
|
||||||
|
on: [push, workflow_dispatch]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
bats-unit-tests:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: ./.github/workflows/setup-test-tools
|
||||||
|
- run: bats ./test/unit -t
|
||||||
|
|
||||||
|
chart-verifier:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
CHART_VERIFIER_VERSION: '1.2.1'
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Setup test tools
|
||||||
|
uses: ./.github/workflows/setup-test-tools
|
||||||
|
- uses: actions/setup-go@v2
|
||||||
|
with:
|
||||||
|
go-version: '1.17.4'
|
||||||
|
- run: go install github.com/redhat-certification/chart-verifier@${CHART_VERIFIER_VERSION}
|
||||||
|
- run: bats ./test/chart -t
|
30
CHANGELOG.md
30
CHANGELOG.md
|
@ -1,5 +1,35 @@
|
||||||
## Unreleased
|
## Unreleased
|
||||||
|
|
||||||
|
CHANGES:
|
||||||
|
* `global.enabled` now works as documented, that is, setting `global.enabled` to false will disable everything, with individual components able to be turned on individually [GH-703](https://github.com/hashicorp/vault-helm/pull/703)
|
||||||
|
* Default value of `-` used for injector and server to indicate that they follow `global.enabled`. [GH-703](https://github.com/hashicorp/vault-helm/pull/703)
|
||||||
|
* Vault default image to 1.9.3
|
||||||
|
* CSI provider default image to 1.1.0
|
||||||
|
* Earliest Kubernetes version tested is now 1.16
|
||||||
|
|
||||||
|
Improvements:
|
||||||
|
* CSI: Set `extraLabels` for daemonset, pods, and service account [GH-690](https://github.com/hashicorp/vault-helm/pull/690)
|
||||||
|
* Add namespace to injector-leader-elector role, rolebinding and secret [GH-683](https://github.com/hashicorp/vault-helm/pull/683)
|
||||||
|
* Support policy/v1 PodDisruptionBudget in Kubernetes 1.21+ for server and injector [GH-710](https://github.com/hashicorp/vault-helm/pull/710)
|
||||||
|
* Make the Cluster Address (CLUSTER_ADDR) configurable [GH-629](https://github.com/hashicorp/vault-helm/pull/709)
|
||||||
|
|
||||||
|
## 0.19.0 (January 20th, 2022)
|
||||||
|
|
||||||
|
CHANGES:
|
||||||
|
* Vault image default 1.9.2
|
||||||
|
* Vault K8s image default 0.14.2
|
||||||
|
|
||||||
|
Features:
|
||||||
|
* Added configurable podDisruptionBudget for injector [GH-653](https://github.com/hashicorp/vault-helm/pull/653)
|
||||||
|
* Make terminationGracePeriodSeconds configurable for server [GH-659](https://github.com/hashicorp/vault-helm/pull/659)
|
||||||
|
* Added configurable update strategy for injector [GH-661](https://github.com/hashicorp/vault-helm/pull/661)
|
||||||
|
* csi: ability to set priorityClassName for CSI daemonset pods [GH-670](https://github.com/hashicorp/vault-helm/pull/670)
|
||||||
|
|
||||||
|
Improvements:
|
||||||
|
* Set the namespace on the OpenShift Route [GH-679](https://github.com/hashicorp/vault-helm/pull/679)
|
||||||
|
* Add volumes and env vars to helm hook test pod [GH-673](https://github.com/hashicorp/vault-helm/pull/673)
|
||||||
|
* Make TLS configurable for OpenShift routes [GH-686](https://github.com/hashicorp/vault-helm/pull/686)
|
||||||
|
|
||||||
## 0.18.0 (November 17th, 2021)
|
## 0.18.0 (November 17th, 2021)
|
||||||
|
|
||||||
CHANGES:
|
CHANGES:
|
||||||
|
|
|
@ -13,13 +13,14 @@ rules to get in the way of that.
|
||||||
That said, if you want to ensure that a pull request is likely to be merged,
|
That said, if you want to ensure that a pull request is likely to be merged,
|
||||||
talk to us! You can find out our thoughts and ensure that your contribution
|
talk to us! You can find out our thoughts and ensure that your contribution
|
||||||
won't clash or be obviated by Vault's normal direction. A great way to do this
|
won't clash or be obviated by Vault's normal direction. A great way to do this
|
||||||
is via the [Vault Google Group][2]. Sometimes Vault devs are in `#vault-tool`
|
is via the [Vault Discussion Forum][1].
|
||||||
on Freenode, too.
|
|
||||||
|
|
||||||
This document will cover what we're looking for in terms of reporting issues.
|
This document will cover what we're looking for in terms of reporting issues.
|
||||||
By addressing all the points we're looking for, it raises the chances we can
|
By addressing all the points we're looking for, it raises the chances we can
|
||||||
quickly merge or address your contributions.
|
quickly merge or address your contributions.
|
||||||
|
|
||||||
|
[1]: https://discuss.hashicorp.com/c/vault
|
||||||
|
|
||||||
## Issues
|
## Issues
|
||||||
|
|
||||||
### Reporting an Issue
|
### Reporting an Issue
|
||||||
|
@ -237,3 +238,10 @@ Here are some examples of common test patterns:
|
||||||
```
|
```
|
||||||
Here we are check the length of the command output to see if the anything is rendered.
|
Here we are check the length of the command output to see if the anything is rendered.
|
||||||
This style can easily be switched to check that a file is rendered instead.
|
This style can easily be switched to check that a file is rendered instead.
|
||||||
|
|
||||||
|
## Contributor License Agreement
|
||||||
|
|
||||||
|
We require that all contributors sign our Contributor License Agreement ("CLA")
|
||||||
|
before we can accept the contribution.
|
||||||
|
|
||||||
|
[Learn more about why HashiCorp requires a CLA and what the CLA includes](https://www.hashicorp.com/cla)
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
name: vault
|
name: vault
|
||||||
version: 0.18.0
|
version: 0.19.0
|
||||||
appVersion: 1.9.0
|
appVersion: 1.9.3
|
||||||
kubeVersion: ">= 1.14.0-0"
|
kubeVersion: ">= 1.16.0-0"
|
||||||
description: Official HashiCorp Vault Chart
|
description: Official HashiCorp Vault Chart
|
||||||
home: https://www.vaultproject.io
|
home: https://www.vaultproject.io
|
||||||
icon: https://github.com/hashicorp/vault/raw/f22d202cde2018f9455dec755118a9b84586e082/Vault_PrimaryLogo_Black.png
|
icon: https://github.com/hashicorp/vault/raw/f22d202cde2018f9455dec755118a9b84586e082/Vault_PrimaryLogo_Black.png
|
||||||
|
|
|
@ -22,7 +22,7 @@ The versions required are:
|
||||||
|
|
||||||
* **Helm 3.0+** - This is the earliest version of Helm tested. It is possible
|
* **Helm 3.0+** - This is the earliest version of Helm tested. It is possible
|
||||||
it works with earlier versions but this chart is untested for those versions.
|
it works with earlier versions but this chart is untested for those versions.
|
||||||
* **Kubernetes 1.14+** - This is the earliest version of Kubernetes tested.
|
* **Kubernetes 1.16+** - This is the earliest version of Kubernetes tested.
|
||||||
It is possible that this chart works with earlier versions but it is
|
It is possible that this chart works with earlier versions but it is
|
||||||
untested.
|
untested.
|
||||||
|
|
||||||
|
|
|
@ -31,6 +31,50 @@ Expand the name of the chart.
|
||||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Compute if the csi driver is enabled.
|
||||||
|
*/}}
|
||||||
|
{{- define "vault.csiEnabled" -}}
|
||||||
|
{{- $_ := set . "csiEnabled" (or
|
||||||
|
(eq (.Values.csi.enabled | toString) "true")
|
||||||
|
(and (eq (.Values.csi.enabled | toString) "-") (eq (.Values.global.enabled | toString) "true"))) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Compute if the injector is enabled.
|
||||||
|
*/}}
|
||||||
|
{{- define "vault.injectorEnabled" -}}
|
||||||
|
{{- $_ := set . "injectorEnabled" (or
|
||||||
|
(eq (.Values.injector.enabled | toString) "true")
|
||||||
|
(and (eq (.Values.injector.enabled | toString) "-") (eq (.Values.global.enabled | toString) "true"))) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Compute if the server is enabled.
|
||||||
|
*/}}
|
||||||
|
{{- define "vault.serverEnabled" -}}
|
||||||
|
{{- $_ := set . "serverEnabled" (or
|
||||||
|
(eq (.Values.server.enabled | toString) "true")
|
||||||
|
(and (eq (.Values.server.enabled | toString) "-") (eq (.Values.global.enabled | toString) "true"))) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Compute if the server service is enabled.
|
||||||
|
*/}}
|
||||||
|
{{- define "vault.serverServiceEnabled" -}}
|
||||||
|
{{- template "vault.serverEnabled" . -}}
|
||||||
|
{{- $_ := set . "serverServiceEnabled" (and .serverEnabled (eq (.Values.server.service.enabled | toString) "true")) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Compute if the ui is enabled.
|
||||||
|
*/}}
|
||||||
|
{{- define "vault.uiEnabled" -}}
|
||||||
|
{{- $_ := set . "uiEnabled" (or
|
||||||
|
(eq (.Values.ui.enabled | toString) "true")
|
||||||
|
(and (eq (.Values.ui.enabled | toString) "-") (eq (.Values.global.enabled | toString) "true"))) -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Compute the maximum number of unavailable replicas for the PodDisruptionBudget.
|
Compute the maximum number of unavailable replicas for the PodDisruptionBudget.
|
||||||
This defaults to (n/2)-1 where n is the number of members of the server cluster.
|
This defaults to (n/2)-1 where n is the number of members of the server cluster.
|
||||||
|
@ -51,9 +95,10 @@ Set the variable 'mode' to the server mode requested by the user to simplify
|
||||||
template logic.
|
template logic.
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "vault.mode" -}}
|
{{- define "vault.mode" -}}
|
||||||
|
{{- template "vault.serverEnabled" . -}}
|
||||||
{{- if .Values.injector.externalVaultAddr -}}
|
{{- if .Values.injector.externalVaultAddr -}}
|
||||||
{{- $_ := set . "mode" "external" -}}
|
{{- $_ := set . "mode" "external" -}}
|
||||||
{{- else if ne (.Values.server.enabled | toString) "true" -}}
|
{{- else if not .serverEnabled -}}
|
||||||
{{- $_ := set . "mode" "external" -}}
|
{{- $_ := set . "mode" "external" -}}
|
||||||
{{- else if eq (.Values.server.dev.enabled | toString) "true" -}}
|
{{- else if eq (.Values.server.dev.enabled | toString) "true" -}}
|
||||||
{{- $_ := set . "mode" "dev" -}}
|
{{- $_ := set . "mode" "dev" -}}
|
||||||
|
@ -339,6 +384,21 @@ Sets the injector node selector for pod placement
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Sets the injector deployment update strategy
|
||||||
|
*/}}
|
||||||
|
{{- define "injector.strategy" -}}
|
||||||
|
{{- if .Values.injector.strategy }}
|
||||||
|
strategy:
|
||||||
|
{{- $tp := typeOf .Values.injector.strategy }}
|
||||||
|
{{- if eq $tp "string" }}
|
||||||
|
{{ tpl .Values.injector.strategy . | nindent 4 | trim }}
|
||||||
|
{{- else }}
|
||||||
|
{{- toYaml .Values.injector.strategy | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Sets extra pod annotations
|
Sets extra pod annotations
|
||||||
*/}}
|
*/}}
|
||||||
|
@ -388,13 +448,13 @@ Sets extra injector service annotations
|
||||||
Sets extra injector webhook annotations
|
Sets extra injector webhook annotations
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "injector.webhookAnnotations" -}}
|
{{- define "injector.webhookAnnotations" -}}
|
||||||
{{- if .Values.injector.webhookAnnotations }}
|
{{- if or (((.Values.injector.webhook)).annotations) (.Values.injector.webhookAnnotations) }}
|
||||||
annotations:
|
annotations:
|
||||||
{{- $tp := typeOf .Values.injector.webhookAnnotations }}
|
{{- $tp := typeOf (or (((.Values.injector.webhook)).annotations) (.Values.injector.webhookAnnotations)) }}
|
||||||
{{- if eq $tp "string" }}
|
{{- if eq $tp "string" }}
|
||||||
{{- tpl .Values.injector.webhookAnnotations . | nindent 4 }}
|
{{- tpl (((.Values.injector.webhook)).annotations | default .Values.injector.webhookAnnotations) . | nindent 4 }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
{{- toYaml .Values.injector.webhookAnnotations | nindent 4 }}
|
{{- toYaml (((.Values.injector.webhook)).annotations | default .Values.injector.webhookAnnotations) | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{{- if and (eq (.Values.csi.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.csiEnabled" . -}}
|
||||||
|
{{- if .csiEnabled -}}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{{- if and (eq (.Values.csi.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.csiEnabled" . -}}
|
||||||
|
{{- if .csiEnabled -}}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRoleBinding
|
kind: ClusterRoleBinding
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{{- if and (eq (.Values.csi.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.csiEnabled" . -}}
|
||||||
|
{{- if .csiEnabled -}}
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: DaemonSet
|
kind: DaemonSet
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -8,6 +9,9 @@ metadata:
|
||||||
app.kubernetes.io/name: {{ include "vault.name" . }}-csi-provider
|
app.kubernetes.io/name: {{ include "vault.name" . }}-csi-provider
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
{{- if .Values.csi.daemonSet.extraLabels -}}
|
||||||
|
{{- toYaml .Values.csi.daemonSet.extraLabels | nindent 4 -}}
|
||||||
|
{{- end -}}
|
||||||
{{ template "csi.daemonSet.annotations" . }}
|
{{ template "csi.daemonSet.annotations" . }}
|
||||||
spec:
|
spec:
|
||||||
updateStrategy:
|
updateStrategy:
|
||||||
|
@ -25,8 +29,14 @@ spec:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: {{ template "vault.name" . }}-csi-provider
|
app.kubernetes.io/name: {{ template "vault.name" . }}-csi-provider
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
{{- if .Values.csi.pod.extraLabels -}}
|
||||||
|
{{- toYaml .Values.csi.pod.extraLabels | nindent 8 -}}
|
||||||
|
{{- end -}}
|
||||||
{{ template "csi.pod.annotations" . }}
|
{{ template "csi.pod.annotations" . }}
|
||||||
spec:
|
spec:
|
||||||
|
{{- if .Values.csi.priorityClassName }}
|
||||||
|
priorityClassName: {{ .Values.csi.priorityClassName }}
|
||||||
|
{{- end }}
|
||||||
serviceAccountName: {{ template "vault.fullname" . }}-csi-provider
|
serviceAccountName: {{ template "vault.fullname" . }}-csi-provider
|
||||||
{{- template "csi.pod.tolerations" . }}
|
{{- template "csi.pod.tolerations" . }}
|
||||||
containers:
|
containers:
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{{- if and (eq (.Values.csi.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.csiEnabled" . -}}
|
||||||
|
{{- if .csiEnabled -}}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ServiceAccount
|
kind: ServiceAccount
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -8,5 +9,8 @@ metadata:
|
||||||
app.kubernetes.io/name: {{ include "vault.name" . }}-csi-provider
|
app.kubernetes.io/name: {{ include "vault.name" . }}-csi-provider
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
{{- if .Values.csi.serviceAccount.extraLabels -}}
|
||||||
|
{{- toYaml .Values.csi.serviceAccount.extraLabels | nindent 4 -}}
|
||||||
|
{{- end -}}
|
||||||
{{ template "csi.serviceAccount.annotations" . }}
|
{{ template "csi.serviceAccount.annotations" . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -1,10 +1,14 @@
|
||||||
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") (eq (.Values.injector.leaderElector.enabled | toString) "true") (gt (.Values.injector.replicas | int) 1) }}
|
{{- template "vault.injectorEnabled" . -}}
|
||||||
|
{{- if .injectorEnabled -}}
|
||||||
|
{{- if and (eq (.Values.injector.leaderElector.enabled | toString) "true") (gt (.Values.injector.replicas | int) 1) }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Secret
|
kind: Secret
|
||||||
metadata:
|
metadata:
|
||||||
name: vault-injector-certs
|
name: vault-injector-certs
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: {{ include "vault.name" . }}-agent-injector
|
app.kubernetes.io/name: {{ include "vault.name" . }}-agent-injector
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
|
@ -1,4 +1,5 @@
|
||||||
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.injectorEnabled" . -}}
|
||||||
|
{{- if .injectorEnabled -}}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRole
|
kind: ClusterRole
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -10,7 +11,7 @@ metadata:
|
||||||
rules:
|
rules:
|
||||||
- apiGroups: ["admissionregistration.k8s.io"]
|
- apiGroups: ["admissionregistration.k8s.io"]
|
||||||
resources: ["mutatingwebhookconfigurations"]
|
resources: ["mutatingwebhookconfigurations"]
|
||||||
verbs:
|
verbs:
|
||||||
- "get"
|
- "get"
|
||||||
- "list"
|
- "list"
|
||||||
- "watch"
|
- "watch"
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.injectorEnabled" . -}}
|
||||||
|
{{- if .injectorEnabled -}}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: ClusterRoleBinding
|
kind: ClusterRoleBinding
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.injectorEnabled" . -}}
|
||||||
|
{{- if .injectorEnabled -}}
|
||||||
# Deployment for the injector
|
# Deployment for the injector
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
|
@ -17,6 +18,7 @@ spec:
|
||||||
app.kubernetes.io/name: {{ template "vault.name" . }}-agent-injector
|
app.kubernetes.io/name: {{ template "vault.name" . }}-agent-injector
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
component: webhook
|
component: webhook
|
||||||
|
{{ template "injector.strategy" . }}
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
|
|
20
templates/injector-disruptionbudget.yaml
Normal file
20
templates/injector-disruptionbudget.yaml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{{- if .Values.injector.podDisruptionBudget }}
|
||||||
|
apiVersion: {{ ge .Capabilities.KubeVersion.Minor "21" | ternary "policy/v1" "policy/v1beta1" }}
|
||||||
|
kind: PodDisruptionBudget
|
||||||
|
metadata:
|
||||||
|
name: {{ template "vault.fullname" . }}-agent-injector
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
labels:
|
||||||
|
helm.sh/chart: {{ include "vault.chart" . }}
|
||||||
|
app.kubernetes.io/name: {{ include "vault.name" . }}-agent-injector
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
component: webhook
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: {{ template "vault.name" . }}-agent-injector
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
component: webhook
|
||||||
|
{{- toYaml .Values.injector.podDisruptionBudget | nindent 2 }}
|
||||||
|
{{- end -}}
|
|
@ -1,4 +1,5 @@
|
||||||
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.injectorEnabled" . -}}
|
||||||
|
{{- if .injectorEnabled -}}
|
||||||
{{- if .Capabilities.APIVersions.Has "admissionregistration.k8s.io/v1" }}
|
{{- if .Capabilities.APIVersions.Has "admissionregistration.k8s.io/v1" }}
|
||||||
apiVersion: admissionregistration.k8s.io/v1
|
apiVersion: admissionregistration.k8s.io/v1
|
||||||
{{- else }}
|
{{- else }}
|
||||||
|
@ -14,10 +15,11 @@ metadata:
|
||||||
{{- template "injector.webhookAnnotations" . }}
|
{{- template "injector.webhookAnnotations" . }}
|
||||||
webhooks:
|
webhooks:
|
||||||
- name: vault.hashicorp.com
|
- name: vault.hashicorp.com
|
||||||
|
failurePolicy: {{ ((.Values.injector.webhook)).failurePolicy | default .Values.injector.failurePolicy }}
|
||||||
|
matchPolicy: {{ ((.Values.injector.webhook)).matchPolicy | default "Exact" }}
|
||||||
sideEffects: None
|
sideEffects: None
|
||||||
admissionReviewVersions:
|
timeoutSeconds: {{ ((.Values.injector.webhook)).timeoutSeconds | default "30" }}
|
||||||
- "v1beta1"
|
admissionReviewVersions: ["v1", "v1beta1"]
|
||||||
- "v1"
|
|
||||||
clientConfig:
|
clientConfig:
|
||||||
service:
|
service:
|
||||||
name: {{ template "vault.fullname" . }}-agent-injector-svc
|
name: {{ template "vault.fullname" . }}-agent-injector-svc
|
||||||
|
@ -29,15 +31,12 @@ webhooks:
|
||||||
apiGroups: [""]
|
apiGroups: [""]
|
||||||
apiVersions: ["v1"]
|
apiVersions: ["v1"]
|
||||||
resources: ["pods"]
|
resources: ["pods"]
|
||||||
{{- if .Values.injector.namespaceSelector }}
|
{{- if or (.Values.injector.namespaceSelector) (((.Values.injector.webhook)).namespaceSelector) }}
|
||||||
namespaceSelector:
|
namespaceSelector:
|
||||||
{{ toYaml .Values.injector.namespaceSelector | indent 6}}
|
{{ toYaml (((.Values.injector.webhook)).namespaceSelector | default .Values.injector.namespaceSelector) | indent 6}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- if .Values.injector.objectSelector }}
|
{{- if or (((.Values.injector.webhook)).objectSelector) (.Values.injector.objectSelector) }}
|
||||||
objectSelector:
|
objectSelector:
|
||||||
{{ toYaml .Values.injector.objectSelector | indent 6}}
|
{{ toYaml (((.Values.injector.webhook)).objectSelector | default .Values.injector.objectSelector) | indent 6}}
|
||||||
{{ end }}
|
|
||||||
{{- with .Values.injector.failurePolicy }}
|
|
||||||
failurePolicy: {{.}}
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") (eq (.Values.global.openshift | toString) "true") }}
|
{{- template "vault.injectorEnabled" . -}}
|
||||||
|
{{- if .injectorEnabled -}}
|
||||||
|
{{- if eq (.Values.global.openshift | toString) "true" }}
|
||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: NetworkPolicy
|
kind: NetworkPolicy
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -19,3 +21,4 @@ spec:
|
||||||
- port: 8080
|
- port: 8080
|
||||||
protocol: TCP
|
protocol: TCP
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") (eq (.Values.global.psp.enable | toString) "true") }}
|
{{- template "vault.injectorEnabled" . -}}
|
||||||
|
{{- if .injectorEnabled -}}
|
||||||
|
{{- if eq (.Values.global.psp.enable | toString) "true" }}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -15,3 +17,4 @@ rules:
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- {{ template "vault.fullname" . }}-agent-injector
|
- {{ template "vault.fullname" . }}-agent-injector
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") (eq (.Values.global.psp.enable | toString) "true") }}
|
{{- template "vault.injectorEnabled" . -}}
|
||||||
|
{{- if .injectorEnabled -}}
|
||||||
|
{{- if eq (.Values.global.psp.enable | toString) "true" }}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: RoleBinding
|
kind: RoleBinding
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -16,3 +18,4 @@ subjects:
|
||||||
- kind: ServiceAccount
|
- kind: ServiceAccount
|
||||||
name: {{ template "vault.fullname" . }}-agent-injector
|
name: {{ template "vault.fullname" . }}-agent-injector
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
|
@ -1,4 +1,6 @@
|
||||||
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") (eq (.Values.global.psp.enable | toString) "true") }}
|
{{- template "vault.injectorEnabled" . -}}
|
||||||
|
{{- if .injectorEnabled -}}
|
||||||
|
{{- if eq (.Values.global.psp.enable | toString) "true" }}
|
||||||
apiVersion: policy/v1beta1
|
apiVersion: policy/v1beta1
|
||||||
kind: PodSecurityPolicy
|
kind: PodSecurityPolicy
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -41,3 +43,4 @@ spec:
|
||||||
max: 65535
|
max: 65535
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
|
@ -1,8 +1,11 @@
|
||||||
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") (eq (.Values.injector.leaderElector.enabled | toString) "true") (gt (.Values.injector.replicas | int) 1) }}
|
{{- template "vault.injectorEnabled" . -}}
|
||||||
|
{{- if .injectorEnabled -}}
|
||||||
|
{{- if and (eq (.Values.injector.leaderElector.enabled | toString) "true") (gt (.Values.injector.replicas | int) 1) }}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ template "vault.fullname" . }}-agent-injector-leader-elector-role
|
name: {{ template "vault.fullname" . }}-agent-injector-leader-elector-role
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: {{ include "vault.name" . }}-agent-injector
|
app.kubernetes.io/name: {{ include "vault.name" . }}-agent-injector
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
@ -23,3 +26,4 @@ rules:
|
||||||
- "patch"
|
- "patch"
|
||||||
- "delete"
|
- "delete"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
|
@ -1,8 +1,11 @@
|
||||||
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") (eq (.Values.injector.leaderElector.enabled | toString) "true") (gt (.Values.injector.replicas | int) 1) }}
|
{{- template "vault.injectorEnabled" . -}}
|
||||||
|
{{- if .injectorEnabled -}}
|
||||||
|
{{- if and (eq (.Values.injector.leaderElector.enabled | toString) "true") (gt (.Values.injector.replicas | int) 1) }}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: RoleBinding
|
kind: RoleBinding
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ template "vault.fullname" . }}-agent-injector-leader-elector-binding
|
name: {{ template "vault.fullname" . }}-agent-injector-leader-elector-binding
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: {{ include "vault.name" . }}-agent-injector
|
app.kubernetes.io/name: {{ include "vault.name" . }}-agent-injector
|
||||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
@ -16,3 +19,4 @@ subjects:
|
||||||
name: {{ template "vault.fullname" . }}-agent-injector
|
name: {{ template "vault.fullname" . }}-agent-injector
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
|
@ -1,4 +1,5 @@
|
||||||
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.injectorEnabled" . -}}
|
||||||
|
{{- if .injectorEnabled -}}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
{{- if and (eq (.Values.injector.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.injectorEnabled" . -}}
|
||||||
|
{{- if .injectorEnabled -}}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ServiceAccount
|
kind: ServiceAccount
|
||||||
metadata:
|
metadata:
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if and (ne .mode "") (eq (.Values.global.enabled | toString) "true") (eq (.Values.server.authDelegator.enabled | toString) "true") }}
|
{{- if .serverEnabled -}}
|
||||||
|
{{- if and (ne .mode "") (eq (.Values.server.authDelegator.enabled | toString) "true") }}
|
||||||
{{- if .Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1" -}}
|
{{- if .Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1" -}}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
{{- else }}
|
{{- else }}
|
||||||
|
@ -22,3 +23,4 @@ subjects:
|
||||||
name: {{ template "vault.serviceAccount.name" . }}
|
name: {{ template "vault.serviceAccount.name" . }}
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if ne .mode "external" }}
|
{{- if ne .mode "external" }}
|
||||||
{{- if and (eq (.Values.global.enabled | toString) "true") (ne .mode "dev") -}}
|
{{- if .serverEnabled -}}
|
||||||
|
{{- if ne .mode "dev" -}}
|
||||||
{{ if or (.Values.server.standalone.config) (.Values.server.ha.config) -}}
|
{{ if or (.Values.server.standalone.config) (.Values.server.ha.config) -}}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
|
@ -36,3 +37,4 @@ data:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if ne .mode "external" }}
|
{{- if ne .mode "external" }}
|
||||||
{{- if and (eq .mode "ha" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- if .serverEnabled -}}
|
||||||
|
{{- if eq .mode "ha" }}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -17,3 +18,4 @@ rules:
|
||||||
verbs: ["get", "watch", "list", "update", "patch"]
|
verbs: ["get", "watch", "list", "update", "patch"]
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if ne .mode "external" }}
|
{{- if ne .mode "external" }}
|
||||||
{{- if and (eq .mode "ha" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- if .serverEnabled -}}
|
||||||
|
{{- if eq .mode "ha" }}
|
||||||
{{- if .Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1" -}}
|
{{- if .Capabilities.APIVersions.Has "rbac.authorization.k8s.io/v1" -}}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
{{- else }}
|
{{- else }}
|
||||||
|
@ -25,3 +26,4 @@ subjects:
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if ne .mode "external" -}}
|
{{- if ne .mode "external" -}}
|
||||||
{{- if and (eq (.Values.global.enabled | toString) "true") (eq .mode "ha") (eq (.Values.server.ha.disruptionBudget.enabled | toString) "true") -}}
|
{{- if .serverEnabled -}}
|
||||||
|
{{- if and (eq .mode "ha") (eq (.Values.server.ha.disruptionBudget.enabled | toString) "true") -}}
|
||||||
# PodDisruptionBudget to prevent degrading the server cluster through
|
# PodDisruptionBudget to prevent degrading the server cluster through
|
||||||
# voluntary cluster changes.
|
# voluntary cluster changes.
|
||||||
apiVersion: policy/v1beta1
|
apiVersion: {{ ge .Capabilities.KubeVersion.Minor "21" | ternary "policy/v1" "policy/v1beta1" }}
|
||||||
kind: PodDisruptionBudget
|
kind: PodDisruptionBudget
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ template "vault.fullname" . }}
|
name: {{ template "vault.fullname" . }}
|
||||||
|
@ -22,3 +23,4 @@ spec:
|
||||||
component: server
|
component: server
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if ne .mode "external" }}
|
{{- if ne .mode "external" }}
|
||||||
{{- if and (eq .mode "ha" ) (eq (.Values.server.service.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.serverServiceEnabled" . -}}
|
||||||
|
{{- if .serverServiceEnabled -}}
|
||||||
|
{{- if eq .mode "ha" }}
|
||||||
# Service for active Vault pod
|
# Service for active Vault pod
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
|
@ -22,7 +24,7 @@ spec:
|
||||||
clusterIP: {{ .Values.server.service.clusterIP }}
|
clusterIP: {{ .Values.server.service.clusterIP }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- include "service.externalTrafficPolicy" .Values.server.service }}
|
{{- include "service.externalTrafficPolicy" .Values.server.service }}
|
||||||
publishNotReadyAddresses: true
|
publishNotReadyAddresses: {{ .Values.server.service.publishNotReadyAddresses }}
|
||||||
ports:
|
ports:
|
||||||
- name: {{ include "vault.scheme" . }}
|
- name: {{ include "vault.scheme" . }}
|
||||||
port: {{ .Values.server.service.port }}
|
port: {{ .Values.server.service.port }}
|
||||||
|
@ -40,3 +42,4 @@ spec:
|
||||||
vault-active: "true"
|
vault-active: "true"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if ne .mode "external" }}
|
{{- if ne .mode "external" }}
|
||||||
{{- if and (eq .mode "ha" ) (eq (.Values.server.service.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.serverServiceEnabled" . -}}
|
||||||
|
{{- if .serverServiceEnabled -}}
|
||||||
|
{{- if eq .mode "ha" }}
|
||||||
# Service for standby Vault pod
|
# Service for standby Vault pod
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
|
@ -22,7 +24,7 @@ spec:
|
||||||
clusterIP: {{ .Values.server.service.clusterIP }}
|
clusterIP: {{ .Values.server.service.clusterIP }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- include "service.externalTrafficPolicy" .Values.server.service }}
|
{{- include "service.externalTrafficPolicy" .Values.server.service }}
|
||||||
publishNotReadyAddresses: true
|
publishNotReadyAddresses: {{ .Values.server.service.publishNotReadyAddresses }}
|
||||||
ports:
|
ports:
|
||||||
- name: {{ include "vault.scheme" . }}
|
- name: {{ include "vault.scheme" . }}
|
||||||
port: {{ .Values.server.service.port }}
|
port: {{ .Values.server.service.port }}
|
||||||
|
@ -40,3 +42,4 @@ spec:
|
||||||
vault-active: "false"
|
vault-active: "false"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
|
@ -1,6 +1,7 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if ne .mode "external" }}
|
{{- if ne .mode "external" }}
|
||||||
{{- if and (eq (.Values.server.service.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.serverServiceEnabled" . -}}
|
||||||
|
{{- if .serverServiceEnabled -}}
|
||||||
# Service for Vault cluster
|
# Service for Vault cluster
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
|
@ -16,7 +17,7 @@ metadata:
|
||||||
{{ template "vault.service.annotations" .}}
|
{{ template "vault.service.annotations" .}}
|
||||||
spec:
|
spec:
|
||||||
clusterIP: None
|
clusterIP: None
|
||||||
publishNotReadyAddresses: true
|
publishNotReadyAddresses: {{ .Values.server.service.publishNotReadyAddresses }}
|
||||||
ports:
|
ports:
|
||||||
- name: "{{ include "vault.scheme" . }}"
|
- name: "{{ include "vault.scheme" . }}"
|
||||||
port: {{ .Values.server.service.port }}
|
port: {{ .Values.server.service.port }}
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
{{- if .Values.server.ingress.enabled -}}
|
{{- if .Values.server.ingress.enabled -}}
|
||||||
{{- $extraPaths := .Values.server.ingress.extraPaths -}}
|
{{- $extraPaths := .Values.server.ingress.extraPaths -}}
|
||||||
{{- $serviceName := include "vault.fullname" . -}}
|
{{- $serviceName := include "vault.fullname" . -}}
|
||||||
{{- if and (eq .mode "ha" ) (eq (.Values.server.service.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") (eq (.Values.server.ingress.activeService | toString) "true") }}
|
{{- template "vault.serverServiceEnabled" . -}}
|
||||||
|
{{- if .serverServiceEnabled -}}
|
||||||
|
{{- if and (eq .mode "ha" ) (eq (.Values.server.ingress.activeService | toString) "true") }}
|
||||||
{{- $serviceName = printf "%s-%s" $serviceName "active" -}}
|
{{- $serviceName = printf "%s-%s" $serviceName "active" -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- $servicePort := .Values.server.service.port -}}
|
{{- $servicePort := .Values.server.service.port -}}
|
||||||
|
@ -72,3 +74,4 @@ spec:
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
|
@ -1,5 +1,6 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if and (ne .mode "") (eq (.Values.global.enabled | toString) "true") (eq (.Values.global.psp.enable | toString) "true") }}
|
{{- if .serverEnabled -}}
|
||||||
|
{{- if and (ne .mode "") (eq (.Values.global.psp.enable | toString) "true") }}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -16,3 +17,4 @@ rules:
|
||||||
resourceNames:
|
resourceNames:
|
||||||
- {{ template "vault.fullname" . }}
|
- {{ template "vault.fullname" . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if and (ne .mode "") (eq (.Values.global.enabled | toString) "true") (eq (.Values.global.psp.enable | toString) "true") }}
|
{{- if .serverEnabled -}}
|
||||||
|
{{- if and (ne .mode "") (eq (.Values.global.psp.enable | toString) "true") }}
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: RoleBinding
|
kind: RoleBinding
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -17,3 +18,4 @@ subjects:
|
||||||
- kind: ServiceAccount
|
- kind: ServiceAccount
|
||||||
name: {{ template "vault.fullname" . }}
|
name: {{ template "vault.fullname" . }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if and (ne .mode "") (eq (.Values.global.enabled | toString) "true") (eq (.Values.global.psp.enable | toString) "true") }}
|
{{- if .serverEnabled -}}
|
||||||
|
{{- if and (ne .mode "") (eq (.Values.global.psp.enable | toString) "true") }}
|
||||||
apiVersion: policy/v1beta1
|
apiVersion: policy/v1beta1
|
||||||
kind: PodSecurityPolicy
|
kind: PodSecurityPolicy
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -45,3 +46,4 @@ spec:
|
||||||
max: 65535
|
max: 65535
|
||||||
readOnlyRootFilesystem: false
|
readOnlyRootFilesystem: false
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
@ -9,6 +9,7 @@ kind: Route
|
||||||
apiVersion: route.openshift.io/v1
|
apiVersion: route.openshift.io/v1
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ template "vault.fullname" . }}
|
name: {{ template "vault.fullname" . }}
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
labels:
|
labels:
|
||||||
helm.sh/chart: {{ include "vault.chart" . }}
|
helm.sh/chart: {{ include "vault.chart" . }}
|
||||||
app.kubernetes.io/name: {{ include "vault.name" . }}
|
app.kubernetes.io/name: {{ include "vault.name" . }}
|
||||||
|
@ -27,7 +28,7 @@ spec:
|
||||||
port:
|
port:
|
||||||
targetPort: 8200
|
targetPort: 8200
|
||||||
tls:
|
tls:
|
||||||
termination: passthrough
|
{{- toYaml .Values.server.route.tls | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if ne .mode "external" }}
|
{{- if ne .mode "external" }}
|
||||||
{{- if and (eq (.Values.server.service.enabled | toString) "true" ) (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.serverServiceEnabled" . -}}
|
||||||
|
{{- if .serverServiceEnabled -}}
|
||||||
# Service for Vault cluster
|
# Service for Vault cluster
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
|
@ -24,7 +25,7 @@ spec:
|
||||||
{{- include "service.externalTrafficPolicy" .Values.server.service }}
|
{{- include "service.externalTrafficPolicy" .Values.server.service }}
|
||||||
# We want the servers to become available even if they're not ready
|
# We want the servers to become available even if they're not ready
|
||||||
# since this DNS is also used for join operations.
|
# since this DNS is also used for join operations.
|
||||||
publishNotReadyAddresses: true
|
publishNotReadyAddresses: {{ .Values.server.service.publishNotReadyAddresses }}
|
||||||
ports:
|
ports:
|
||||||
- name: {{ include "vault.scheme" . }}
|
- name: {{ include "vault.scheme" . }}
|
||||||
port: {{ .Values.server.service.port }}
|
port: {{ .Values.server.service.port }}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if and (ne .mode "") (eq (.Values.global.enabled | toString) "true") }}
|
{{- if .serverEnabled -}}
|
||||||
{{- if (eq (.Values.server.serviceAccount.create | toString) "true" ) }}
|
{{- if (eq (.Values.server.serviceAccount.create | toString) "true" ) }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ServiceAccount
|
kind: ServiceAccount
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if ne .mode "external" }}
|
{{- if ne .mode "external" }}
|
||||||
{{- if and (ne .mode "") (eq (.Values.global.enabled | toString) "true") }}
|
{{- if ne .mode "" }}
|
||||||
|
{{- if .serverEnabled -}}
|
||||||
# StatefulSet to run the actual vault server cluster.
|
# StatefulSet to run the actual vault server cluster.
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: StatefulSet
|
kind: StatefulSet
|
||||||
|
@ -42,7 +43,7 @@ spec:
|
||||||
{{- if .Values.server.priorityClassName }}
|
{{- if .Values.server.priorityClassName }}
|
||||||
priorityClassName: {{ .Values.server.priorityClassName }}
|
priorityClassName: {{ .Values.server.priorityClassName }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
terminationGracePeriodSeconds: 10
|
terminationGracePeriodSeconds: {{ .Values.server.terminationGracePeriodSeconds }}
|
||||||
serviceAccountName: {{ template "vault.serviceAccount.name" . }}
|
serviceAccountName: {{ template "vault.serviceAccount.name" . }}
|
||||||
{{ if .Values.server.shareProcessNamespace }}
|
{{ if .Values.server.shareProcessNamespace }}
|
||||||
shareProcessNamespace: true
|
shareProcessNamespace: true
|
||||||
|
@ -109,7 +110,11 @@ spec:
|
||||||
fieldRef:
|
fieldRef:
|
||||||
fieldPath: metadata.name
|
fieldPath: metadata.name
|
||||||
- name: VAULT_CLUSTER_ADDR
|
- name: VAULT_CLUSTER_ADDR
|
||||||
|
{{- if .Values.server.ha.clusterAddr }}
|
||||||
|
value: {{ .Values.server.ha.clusterAddr }}
|
||||||
|
{{- else }}
|
||||||
value: "https://$(HOSTNAME).{{ template "vault.fullname" . }}-internal:8201"
|
value: "https://$(HOSTNAME).{{ template "vault.fullname" . }}-internal:8201"
|
||||||
|
{{- end }}
|
||||||
{{- if and (eq (.Values.server.ha.raft.enabled | toString) "true") (eq (.Values.server.ha.raft.setNodeId | toString) "true") }}
|
{{- if and (eq (.Values.server.ha.raft.enabled | toString) "true") (eq (.Values.server.ha.raft.setNodeId | toString) "true") }}
|
||||||
- name: VAULT_RAFT_NODE_ID
|
- name: VAULT_RAFT_NODE_ID
|
||||||
valueFrom:
|
valueFrom:
|
||||||
|
@ -207,3 +212,4 @@ spec:
|
||||||
{{ template "vault.volumeclaims" . }}
|
{{ template "vault.volumeclaims" . }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
{{- if .Values.server.enabled }}
|
{{ template "vault.mode" . }}
|
||||||
|
{{- if ne .mode "external" }}
|
||||||
|
{{- if .serverEnabled -}}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Pod
|
kind: Pod
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -15,6 +17,7 @@ spec:
|
||||||
env:
|
env:
|
||||||
- name: VAULT_ADDR
|
- name: VAULT_ADDR
|
||||||
value: {{ include "vault.scheme" . }}://{{ template "vault.fullname" . }}.{{ .Release.Namespace }}.svc:{{ .Values.server.service.port }}
|
value: {{ include "vault.scheme" . }}://{{ template "vault.fullname" . }}.{{ .Release.Namespace }}.svc:{{ .Values.server.service.port }}
|
||||||
|
{{- include "vault.extraEnvironmentVars" .Values.server | nindent 8 }}
|
||||||
command:
|
command:
|
||||||
- /bin/sh
|
- /bin/sh
|
||||||
- -c
|
- -c
|
||||||
|
@ -35,6 +38,14 @@ spec:
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exit 0
|
exit 0
|
||||||
|
volumeMounts:
|
||||||
|
{{- if .Values.server.volumeMounts }}
|
||||||
|
{{- toYaml .Values.server.volumeMounts | nindent 8}}
|
||||||
|
{{- end }}
|
||||||
|
volumes:
|
||||||
|
{{- if .Values.server.volumes }}
|
||||||
|
{{- toYaml .Values.server.volumes | nindent 4}}
|
||||||
|
{{- end }}
|
||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
{{ template "vault.mode" . }}
|
{{ template "vault.mode" . }}
|
||||||
{{- if ne .mode "external" }}
|
{{- if ne .mode "external" }}
|
||||||
{{- if and (ne .mode "") (eq (.Values.global.enabled | toString) "true") }}
|
{{- template "vault.uiEnabled" . -}}
|
||||||
{{- if eq (.Values.ui.enabled | toString) "true" }}
|
{{- if .uiEnabled -}}
|
||||||
|
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
|
@ -34,4 +35,3 @@ spec:
|
||||||
{{- include "service.loadBalancer" .Values.ui }}
|
{{- include "service.loadBalancer" .Values.ui }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
|
||||||
|
|
|
@ -40,35 +40,37 @@ helm_install_ha() {
|
||||||
${BATS_TEST_DIRNAME}/../..
|
${BATS_TEST_DIRNAME}/../..
|
||||||
}
|
}
|
||||||
|
|
||||||
# wait for consul to be running
|
# wait for consul to be ready
|
||||||
wait_for_running_consul() {
|
wait_for_running_consul() {
|
||||||
|
kubectl wait --for=condition=Ready --timeout=5m pod -l app=consul,component=client
|
||||||
|
}
|
||||||
|
|
||||||
|
wait_for_sealed_vault() {
|
||||||
|
POD_NAME=$1
|
||||||
|
|
||||||
check() {
|
check() {
|
||||||
# This requests the pod and checks whether the status is running
|
sealed_status=$(kubectl exec $1 -- vault status -format=json | jq -r '.sealed')
|
||||||
# and the ready state is true. If so, it outputs the name. Otherwise
|
if [ "$sealed_status" == "true" ]; then
|
||||||
# it outputs empty. Therefore, to check for success, check for nonzero
|
return 0
|
||||||
# string length.
|
fi
|
||||||
kubectl get pods -l component=client -o json | \
|
return 1
|
||||||
jq -r '.items[0] | select(
|
|
||||||
.status.phase == "Running" and
|
|
||||||
([ .status.conditions[] | select(.type == "Ready" and .status == "True") ] | length) == 1
|
|
||||||
) | .metadata.name'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for i in $(seq 60); do
|
for i in $(seq 60); do
|
||||||
if [ -n "$(check ${POD_NAME})" ]; then
|
if check ${POD_NAME}; then
|
||||||
echo "consul clients are ready."
|
echo "Vault on ${POD_NAME} is running."
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Waiting for ${POD_NAME} to be ready..."
|
echo "Waiting for Vault on ${POD_NAME} to be running..."
|
||||||
sleep 2
|
sleep 2
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "consul clients never became ready."
|
echo "Vault on ${POD_NAME} never became running."
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
# wait for a pod to be ready
|
# wait for a pod to be running
|
||||||
wait_for_running() {
|
wait_for_running() {
|
||||||
POD_NAME=$1
|
POD_NAME=$1
|
||||||
|
|
||||||
|
|
|
@ -2,18 +2,27 @@
|
||||||
|
|
||||||
load _helpers
|
load _helpers
|
||||||
|
|
||||||
|
check_skip_csi() {
|
||||||
|
if [ ! -z ${SKIP_CSI} ]; then
|
||||||
|
skip "Skipping CSI tests"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
@test "csi: testing deployment" {
|
@test "csi: testing deployment" {
|
||||||
|
check_skip_csi
|
||||||
|
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
|
|
||||||
kubectl delete namespace acceptance --ignore-not-found=true
|
kubectl delete namespace acceptance --ignore-not-found=true
|
||||||
kubectl create namespace acceptance
|
kubectl create namespace acceptance
|
||||||
|
|
||||||
# Install Secrets Store CSI driver
|
# Install Secrets Store CSI driver
|
||||||
CSI_DRIVER_VERSION=0.2.0
|
CSI_DRIVER_VERSION=1.0.0
|
||||||
helm install secrets-store-csi-driver https://github.com/kubernetes-sigs/secrets-store-csi-driver/blob/v${CSI_DRIVER_VERSION}/charts/secrets-store-csi-driver-${CSI_DRIVER_VERSION}.tgz?raw=true \
|
helm install secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts/secrets-store-csi-driver-${CSI_DRIVER_VERSION}.tgz?raw=true \
|
||||||
--wait --timeout=5m \
|
--wait --timeout=5m \
|
||||||
--namespace=acceptance \
|
--namespace=acceptance \
|
||||||
--set linux.image.pullPolicy="IfNotPresent"
|
--set linux.image.pullPolicy="IfNotPresent" \
|
||||||
|
--set syncSecret.enabled=true
|
||||||
# Install Vault and Vault provider
|
# Install Vault and Vault provider
|
||||||
helm install vault \
|
helm install vault \
|
||||||
--wait --timeout=5m \
|
--wait --timeout=5m \
|
||||||
|
@ -49,6 +58,8 @@ load _helpers
|
||||||
|
|
||||||
# Clean up
|
# Clean up
|
||||||
teardown() {
|
teardown() {
|
||||||
|
check_skip_csi
|
||||||
|
|
||||||
if [[ ${CLEANUP:-true} == "true" ]]
|
if [[ ${CLEANUP:-true} == "true" ]]
|
||||||
then
|
then
|
||||||
echo "helm/pvc teardown"
|
echo "helm/pvc teardown"
|
||||||
|
|
|
@ -7,7 +7,7 @@ load _helpers
|
||||||
|
|
||||||
helm install "$(name_prefix)-east" \
|
helm install "$(name_prefix)-east" \
|
||||||
--set='server.image.repository=hashicorp/vault-enterprise' \
|
--set='server.image.repository=hashicorp/vault-enterprise' \
|
||||||
--set='server.image.tag=1.9.0_ent' \
|
--set='server.image.tag=1.9.3-ent' \
|
||||||
--set='injector.enabled=false' \
|
--set='injector.enabled=false' \
|
||||||
--set='server.ha.enabled=true' \
|
--set='server.ha.enabled=true' \
|
||||||
--set='server.ha.raft.enabled=true' \
|
--set='server.ha.raft.enabled=true' \
|
||||||
|
@ -15,9 +15,7 @@ load _helpers
|
||||||
wait_for_running "$(name_prefix)-east-0"
|
wait_for_running "$(name_prefix)-east-0"
|
||||||
|
|
||||||
# Sealed, not initialized
|
# Sealed, not initialized
|
||||||
local sealed_status=$(kubectl exec "$(name_prefix)-east-0" -- vault status -format=json |
|
wait_for_sealed_vault $(name_prefix)-east-0
|
||||||
jq -r '.sealed' )
|
|
||||||
[ "${sealed_status}" == "true" ]
|
|
||||||
|
|
||||||
local init_status=$(kubectl exec "$(name_prefix)-east-0" -- vault status -format=json |
|
local init_status=$(kubectl exec "$(name_prefix)-east-0" -- vault status -format=json |
|
||||||
jq -r '.initialized')
|
jq -r '.initialized')
|
||||||
|
@ -50,7 +48,7 @@ load _helpers
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Sealed, not initialized
|
# Unsealed, initialized
|
||||||
local sealed_status=$(kubectl exec "$(name_prefix)-east-0" -- vault status -format=json |
|
local sealed_status=$(kubectl exec "$(name_prefix)-east-0" -- vault status -format=json |
|
||||||
jq -r '.sealed' )
|
jq -r '.sealed' )
|
||||||
[ "${sealed_status}" == "false" ]
|
[ "${sealed_status}" == "false" ]
|
||||||
|
@ -77,16 +75,14 @@ load _helpers
|
||||||
helm install "$(name_prefix)-west" \
|
helm install "$(name_prefix)-west" \
|
||||||
--set='injector.enabled=false' \
|
--set='injector.enabled=false' \
|
||||||
--set='server.image.repository=hashicorp/vault-enterprise' \
|
--set='server.image.repository=hashicorp/vault-enterprise' \
|
||||||
--set='server.image.tag=1.9.0_ent' \
|
--set='server.image.tag=1.9.3-ent' \
|
||||||
--set='server.ha.enabled=true' \
|
--set='server.ha.enabled=true' \
|
||||||
--set='server.ha.raft.enabled=true' \
|
--set='server.ha.raft.enabled=true' \
|
||||||
--set='server.enterpriseLicense.secretName=vault-license' .
|
--set='server.enterpriseLicense.secretName=vault-license' .
|
||||||
wait_for_running "$(name_prefix)-west-0"
|
wait_for_running "$(name_prefix)-west-0"
|
||||||
|
|
||||||
# Sealed, not initialized
|
# Sealed, not initialized
|
||||||
local sealed_status=$(kubectl exec "$(name_prefix)-west-0" -- vault status -format=json |
|
wait_for_sealed_vault $(name_prefix)-west-0
|
||||||
jq -r '.sealed' )
|
|
||||||
[ "${sealed_status}" == "true" ]
|
|
||||||
|
|
||||||
local init_status=$(kubectl exec "$(name_prefix)-west-0" -- vault status -format=json |
|
local init_status=$(kubectl exec "$(name_prefix)-west-0" -- vault status -format=json |
|
||||||
jq -r '.initialized')
|
jq -r '.initialized')
|
||||||
|
@ -119,7 +115,7 @@ load _helpers
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Sealed, not initialized
|
# Unsealed, initialized
|
||||||
local sealed_status=$(kubectl exec "$(name_prefix)-west-0" -- vault status -format=json |
|
local sealed_status=$(kubectl exec "$(name_prefix)-west-0" -- vault status -format=json |
|
||||||
jq -r '.sealed' )
|
jq -r '.sealed' )
|
||||||
[ "${sealed_status}" == "false" ]
|
[ "${sealed_status}" == "false" ]
|
||||||
|
|
|
@ -8,16 +8,14 @@ load _helpers
|
||||||
helm install "$(name_prefix)-east" \
|
helm install "$(name_prefix)-east" \
|
||||||
--set='injector.enabled=false' \
|
--set='injector.enabled=false' \
|
||||||
--set='server.image.repository=hashicorp/vault-enterprise' \
|
--set='server.image.repository=hashicorp/vault-enterprise' \
|
||||||
--set='server.image.tag=1.9.0_ent' \
|
--set='server.image.tag=1.9.3-ent' \
|
||||||
--set='server.ha.enabled=true' \
|
--set='server.ha.enabled=true' \
|
||||||
--set='server.ha.raft.enabled=true' \
|
--set='server.ha.raft.enabled=true' \
|
||||||
--set='server.enterpriseLicense.secretName=vault-license' .
|
--set='server.enterpriseLicense.secretName=vault-license' .
|
||||||
wait_for_running "$(name_prefix)-east-0"
|
wait_for_running "$(name_prefix)-east-0"
|
||||||
|
|
||||||
# Sealed, not initialized
|
# Sealed, not initialized
|
||||||
local sealed_status=$(kubectl exec "$(name_prefix)-east-0" -- vault status -format=json |
|
wait_for_sealed_vault $(name_prefix)-east-0
|
||||||
jq -r '.sealed' )
|
|
||||||
[ "${sealed_status}" == "true" ]
|
|
||||||
|
|
||||||
local init_status=$(kubectl exec "$(name_prefix)-east-0" -- vault status -format=json |
|
local init_status=$(kubectl exec "$(name_prefix)-east-0" -- vault status -format=json |
|
||||||
jq -r '.initialized')
|
jq -r '.initialized')
|
||||||
|
@ -50,7 +48,7 @@ load _helpers
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Sealed, not initialized
|
# Unsealed, initialized
|
||||||
local sealed_status=$(kubectl exec "$(name_prefix)-east-0" -- vault status -format=json |
|
local sealed_status=$(kubectl exec "$(name_prefix)-east-0" -- vault status -format=json |
|
||||||
jq -r '.sealed' )
|
jq -r '.sealed' )
|
||||||
[ "${sealed_status}" == "false" ]
|
[ "${sealed_status}" == "false" ]
|
||||||
|
@ -77,16 +75,14 @@ load _helpers
|
||||||
helm install "$(name_prefix)-west" \
|
helm install "$(name_prefix)-west" \
|
||||||
--set='injector.enabled=false' \
|
--set='injector.enabled=false' \
|
||||||
--set='server.image.repository=hashicorp/vault-enterprise' \
|
--set='server.image.repository=hashicorp/vault-enterprise' \
|
||||||
--set='server.image.tag=1.9.0_ent' \
|
--set='server.image.tag=1.9.3-ent' \
|
||||||
--set='server.ha.enabled=true' \
|
--set='server.ha.enabled=true' \
|
||||||
--set='server.ha.raft.enabled=true' \
|
--set='server.ha.raft.enabled=true' \
|
||||||
--set='server.enterpriseLicense.secretName=vault-license' .
|
--set='server.enterpriseLicense.secretName=vault-license' .
|
||||||
wait_for_running "$(name_prefix)-west-0"
|
wait_for_running "$(name_prefix)-west-0"
|
||||||
|
|
||||||
# Sealed, not initialized
|
# Sealed, not initialized
|
||||||
local sealed_status=$(kubectl exec "$(name_prefix)-west-0" -- vault status -format=json |
|
wait_for_sealed_vault $(name_prefix)-west-0
|
||||||
jq -r '.sealed' )
|
|
||||||
[ "${sealed_status}" == "true" ]
|
|
||||||
|
|
||||||
local init_status=$(kubectl exec "$(name_prefix)-west-0" -- vault status -format=json |
|
local init_status=$(kubectl exec "$(name_prefix)-west-0" -- vault status -format=json |
|
||||||
jq -r '.initialized')
|
jq -r '.initialized')
|
||||||
|
@ -119,7 +115,7 @@ load _helpers
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Sealed, not initialized
|
# Unsealed, initialized
|
||||||
local sealed_status=$(kubectl exec "$(name_prefix)-west-0" -- vault status -format=json |
|
local sealed_status=$(kubectl exec "$(name_prefix)-west-0" -- vault status -format=json |
|
||||||
jq -r '.sealed' )
|
jq -r '.sealed' )
|
||||||
[ "${sealed_status}" == "false" ]
|
[ "${sealed_status}" == "false" ]
|
||||||
|
|
|
@ -11,9 +11,7 @@ load _helpers
|
||||||
wait_for_running $(name_prefix)-0
|
wait_for_running $(name_prefix)-0
|
||||||
|
|
||||||
# Sealed, not initialized
|
# Sealed, not initialized
|
||||||
local sealed_status=$(kubectl exec "$(name_prefix)-0" -- vault status -format=json |
|
wait_for_sealed_vault $(name_prefix)-0
|
||||||
jq -r '.sealed' )
|
|
||||||
[ "${sealed_status}" == "true" ]
|
|
||||||
|
|
||||||
local init_status=$(kubectl exec "$(name_prefix)-0" -- vault status -format=json |
|
local init_status=$(kubectl exec "$(name_prefix)-0" -- vault status -format=json |
|
||||||
jq -r '.initialized')
|
jq -r '.initialized')
|
||||||
|
@ -112,6 +110,10 @@ setup() {
|
||||||
teardown() {
|
teardown() {
|
||||||
if [[ ${CLEANUP:-true} == "true" ]]
|
if [[ ${CLEANUP:-true} == "true" ]]
|
||||||
then
|
then
|
||||||
|
# If the test failed, print some debug output
|
||||||
|
if [[ "$BATS_ERROR_STATUS" -ne 0 ]]; then
|
||||||
|
kubectl logs -l app.kubernetes.io/name=vault
|
||||||
|
fi
|
||||||
helm delete vault
|
helm delete vault
|
||||||
kubectl delete --all pvc
|
kubectl delete --all pvc
|
||||||
kubectl delete namespace acceptance --ignore-not-found=true
|
kubectl delete namespace acceptance --ignore-not-found=true
|
||||||
|
|
|
@ -10,9 +10,7 @@ load _helpers
|
||||||
wait_for_running $(name_prefix)-0
|
wait_for_running $(name_prefix)-0
|
||||||
|
|
||||||
# Sealed, not initialized
|
# Sealed, not initialized
|
||||||
local sealed_status=$(kubectl exec "$(name_prefix)-0" -- vault status -format=json |
|
wait_for_sealed_vault $(name_prefix)-0
|
||||||
jq -r '.sealed' )
|
|
||||||
[ "${sealed_status}" == "true" ]
|
|
||||||
|
|
||||||
local init_status=$(kubectl exec "$(name_prefix)-0" -- vault status -format=json |
|
local init_status=$(kubectl exec "$(name_prefix)-0" -- vault status -format=json |
|
||||||
jq -r '.initialized')
|
jq -r '.initialized')
|
||||||
|
@ -91,7 +89,7 @@ setup() {
|
||||||
|
|
||||||
helm install consul \
|
helm install consul \
|
||||||
https://github.com/hashicorp/consul-helm/archive/v0.28.0.tar.gz \
|
https://github.com/hashicorp/consul-helm/archive/v0.28.0.tar.gz \
|
||||||
--set 'ui.enabled=false' \
|
--set 'ui.enabled=false'
|
||||||
|
|
||||||
wait_for_running_consul
|
wait_for_running_consul
|
||||||
}
|
}
|
||||||
|
@ -100,6 +98,11 @@ setup() {
|
||||||
teardown() {
|
teardown() {
|
||||||
if [[ ${CLEANUP:-true} == "true" ]]
|
if [[ ${CLEANUP:-true} == "true" ]]
|
||||||
then
|
then
|
||||||
|
# If the test failed, print some debug output
|
||||||
|
if [[ "$BATS_ERROR_STATUS" -ne 0 ]]; then
|
||||||
|
kubectl logs -l app=consul
|
||||||
|
kubectl logs -l app.kubernetes.io/name=vault
|
||||||
|
fi
|
||||||
helm delete vault
|
helm delete vault
|
||||||
helm delete consul
|
helm delete consul
|
||||||
kubectl delete --all pvc
|
kubectl delete --all pvc
|
||||||
|
|
|
@ -13,9 +13,7 @@ load _helpers
|
||||||
wait_for_running $(name_prefix)-0
|
wait_for_running $(name_prefix)-0
|
||||||
|
|
||||||
# Sealed, not initialized
|
# Sealed, not initialized
|
||||||
local sealed_status=$(kubectl exec "$(name_prefix)-0" -- vault status -format=json |
|
wait_for_sealed_vault $(name_prefix)-0
|
||||||
jq -r '.sealed' )
|
|
||||||
[ "${sealed_status}" == "true" ]
|
|
||||||
|
|
||||||
local init_status=$(kubectl exec "$(name_prefix)-0" -- vault status -format=json |
|
local init_status=$(kubectl exec "$(name_prefix)-0" -- vault status -format=json |
|
||||||
jq -r '.initialized')
|
jq -r '.initialized')
|
||||||
|
|
|
@ -5,3 +5,16 @@ nodes:
|
||||||
- role: worker
|
- role: worker
|
||||||
- role: worker
|
- role: worker
|
||||||
- role: worker
|
- role: worker
|
||||||
|
# These apiServer settings are included for running the CSI provider on K8s
|
||||||
|
# prior to 1.21
|
||||||
|
kubeadmConfigPatches:
|
||||||
|
- |
|
||||||
|
apiVersion: kubeadm.k8s.io/v1beta2
|
||||||
|
kind: ClusterConfiguration
|
||||||
|
metadata:
|
||||||
|
name: config
|
||||||
|
apiServer:
|
||||||
|
extraArgs:
|
||||||
|
"service-account-issuer": "https://kubernetes.default.svc.cluster.local"
|
||||||
|
"service-account-signing-key-file": "/etc/kubernetes/pki/sa.key"
|
||||||
|
"service-account-api-audiences": "https://kubernetes.default.svc.cluster.local"
|
||||||
|
|
|
@ -29,5 +29,5 @@ load _helpers
|
||||||
--set "csi.enabled=true" \
|
--set "csi.enabled=true" \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.metadata.name' | tee /dev/stderr)
|
yq -r '.metadata.name' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault-csi-provider-clusterrole" ]
|
[ "${actual}" = "release-name-vault-csi-provider-clusterrole" ]
|
||||||
}
|
}
|
|
@ -29,7 +29,7 @@ load _helpers
|
||||||
--set "csi.enabled=true" \
|
--set "csi.enabled=true" \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.roleRef.name' | tee /dev/stderr)
|
yq -r '.roleRef.name' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault-csi-provider-clusterrole" ]
|
[ "${actual}" = "release-name-vault-csi-provider-clusterrole" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
# ClusterRoleBinding service account name
|
# ClusterRoleBinding service account name
|
||||||
|
@ -40,5 +40,5 @@ load _helpers
|
||||||
--set "csi.enabled=true" \
|
--set "csi.enabled=true" \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.subjects[0].name' | tee /dev/stderr)
|
yq -r '.subjects[0].name' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault-csi-provider" ]
|
[ "${actual}" = "release-name-vault-csi-provider" ]
|
||||||
}
|
}
|
|
@ -27,7 +27,30 @@ load _helpers
|
||||||
--set "global.enabled=false" \
|
--set "global.enabled=false" \
|
||||||
. || echo "---") | tee /dev/stderr |
|
. || echo "---") | tee /dev/stderr |
|
||||||
yq 'length > 0' | tee /dev/stderr)
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
[ "${actual}" = "false" ]
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
# priorityClassName
|
||||||
|
|
||||||
|
@test "csi/daemonset: priorityClassName not set by default" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/csi-daemonset.yaml \
|
||||||
|
--set "csi.enabled=true" \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.spec.template.spec | .priorityClassName? == null' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "csi/daemonset: priorityClassName can be set" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/csi-daemonset.yaml \
|
||||||
|
--set 'csi.priorityClassName=armaggeddon' \
|
||||||
|
--set "csi.enabled=true" \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.spec.template.spec | .priorityClassName == "armaggeddon"' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
# serviceAccountName reference name
|
# serviceAccountName reference name
|
||||||
|
@ -38,7 +61,7 @@ load _helpers
|
||||||
--set "csi.enabled=true" \
|
--set "csi.enabled=true" \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.spec.template.spec.serviceAccountName' | tee /dev/stderr)
|
yq -r '.spec.template.spec.serviceAccountName' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault-csi-provider" ]
|
[ "${actual}" = "release-name-vault-csi-provider" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
# Image
|
# Image
|
||||||
|
@ -295,6 +318,32 @@ load _helpers
|
||||||
[ "${actual}" = "true" ]
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# Extra Labels
|
||||||
|
|
||||||
|
@test "csi/daemonset: specify csi.daemonSet.extraLabels" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/csi-daemonset.yaml \
|
||||||
|
--set 'csi.enabled=true' \
|
||||||
|
--set 'csi.daemonSet.extraLabels.foo=bar' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.metadata.labels.foo' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "bar" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "csi/daemonset: specify csi.pod.extraLabels" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/csi-daemonset.yaml \
|
||||||
|
--set 'csi.enabled=true' \
|
||||||
|
--set 'csi.pod.extraLabels.foo=bar' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.template.metadata.labels.foo' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "bar" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
# volumes
|
# volumes
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ load _helpers
|
||||||
--set "csi.enabled=true" \
|
--set "csi.enabled=true" \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.metadata.name' | tee /dev/stderr)
|
yq -r '.metadata.name' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault-csi-provider" ]
|
[ "${actual}" = "release-name-vault-csi-provider" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "csi/serviceAccount: specify annotations" {
|
@test "csi/serviceAccount: specify annotations" {
|
||||||
|
@ -56,4 +56,19 @@ load _helpers
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.metadata.annotations["foo"]' | tee /dev/stderr)
|
yq -r '.metadata.annotations["foo"]' | tee /dev/stderr)
|
||||||
[ "${actual}" = "bar" ]
|
[ "${actual}" = "bar" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# serviceAccount extraLabels
|
||||||
|
|
||||||
|
@test "csi/serviceAccount: specify csi.serviceAccount.extraLabels" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/csi-serviceaccount.yaml \
|
||||||
|
--set 'csi.enabled=true' \
|
||||||
|
--set 'csi.serviceAccount.extraLabels.foo=bar' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.metadata.labels.foo' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "bar" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -26,12 +26,22 @@ load _helpers
|
||||||
local actual=$( (helm template \
|
local actual=$( (helm template \
|
||||||
--show-only templates/injector-deployment.yaml \
|
--show-only templates/injector-deployment.yaml \
|
||||||
--set 'global.enabled=false' \
|
--set 'global.enabled=false' \
|
||||||
--set 'injector.enabled=true' \
|
|
||||||
. || echo "---") | tee /dev/stderr |
|
. || echo "---") | tee /dev/stderr |
|
||||||
yq 'length > 0' | tee /dev/stderr)
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
[ "${actual}" = "false" ]
|
[ "${actual}" = "false" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "injector/deployment: enable with injector.enabled true and global.enabled false" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-deployment.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'global.enabled=false' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
@test "injector/deployment: image defaults to injector.image" {
|
@test "injector/deployment: image defaults to injector.image" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$(helm template \
|
local actual=$(helm template \
|
||||||
|
@ -157,7 +167,7 @@ load _helpers
|
||||||
|
|
||||||
local value=$(echo $object |
|
local value=$(echo $object |
|
||||||
yq -r 'map(select(.name=="AGENT_INJECT_TLS_AUTO")) | .[] .value' | tee /dev/stderr)
|
yq -r 'map(select(.name=="AGENT_INJECT_TLS_AUTO")) | .[] .value' | tee /dev/stderr)
|
||||||
[ "${value}" = "RELEASE-NAME-vault-agent-injector-cfg" ]
|
[ "${value}" = "release-name-vault-agent-injector-cfg" ]
|
||||||
|
|
||||||
# helm template does uses current context namespace and ignores namespace flags, so
|
# helm template does uses current context namespace and ignores namespace flags, so
|
||||||
# discover the targeted namespace so we can check the rendered value correctly.
|
# discover the targeted namespace so we can check the rendered value correctly.
|
||||||
|
@ -165,7 +175,7 @@ load _helpers
|
||||||
|
|
||||||
local value=$(echo $object |
|
local value=$(echo $object |
|
||||||
yq -r 'map(select(.name=="AGENT_INJECT_TLS_AUTO_HOSTS")) | .[] .value' | tee /dev/stderr)
|
yq -r 'map(select(.name=="AGENT_INJECT_TLS_AUTO_HOSTS")) | .[] .value' | tee /dev/stderr)
|
||||||
[ "${value}" = "RELEASE-NAME-vault-agent-injector-svc,RELEASE-NAME-vault-agent-injector-svc.${namespace:-default},RELEASE-NAME-vault-agent-injector-svc.${namespace:-default}.svc" ]
|
[ "${value}" = "release-name-vault-agent-injector-svc,release-name-vault-agent-injector-svc.${namespace:-default},release-name-vault-agent-injector-svc.${namespace:-default}.svc" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "injector/deployment: manual TLS adds volume mount" {
|
@test "injector/deployment: manual TLS adds volume mount" {
|
||||||
|
@ -742,3 +752,32 @@ load _helpers
|
||||||
yq -r 'map(select(.name=="AGENT_INJECT_TEMPLATE_STATIC_SECRET_RENDER_INTERVAL")) | .[] .value' | tee /dev/stderr)
|
yq -r 'map(select(.name=="AGENT_INJECT_TEMPLATE_STATIC_SECRET_RENDER_INTERVAL")) | .[] .value' | tee /dev/stderr)
|
||||||
[ "${value}" = "1m" ]
|
[ "${value}" = "1m" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "injector/deployment: strategy default" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-deployment.yaml \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.strategy' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "null" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/deployment: strategy set as string" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-deployment.yaml \
|
||||||
|
--set="injector.strategy=testing" \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.strategy' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "testing" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/deployment: strategy can be set as YAML" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-deployment.yaml \
|
||||||
|
--set 'injector.strategy.rollingUpdate.maxUnavailable=1' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.strategy.rollingUpdate.maxUnavailable' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "1" ]
|
||||||
|
}
|
||||||
|
|
54
test/unit/injector-disruptionbudget.bats
Executable file
54
test/unit/injector-disruptionbudget.bats
Executable file
|
@ -0,0 +1,54 @@
|
||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load _helpers
|
||||||
|
|
||||||
|
@test "injector/DisruptionBudget: disabled by default" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$( (helm template \
|
||||||
|
--show-only templates/injector-disruptionbudget.yaml \
|
||||||
|
. || echo "---") | tee /dev/stderr |
|
||||||
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "false" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/DisruptionBudget: configure with injector.podDisruptionBudget minAvailable" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-disruptionbudget.yaml \
|
||||||
|
--set 'injector.podDisruptionBudget.minAvailable=2' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.spec.minAvailable == 2' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/DisruptionBudget: configure with injector.podDisruptionBudget maxUnavailable" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-disruptionbudget.yaml \
|
||||||
|
--set 'injector.podDisruptionBudget.maxUnavailable=3' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.spec.maxUnavailable == 3' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/DisruptionBudget: test is apiVersion is set correctly < version 1.21 of kube" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-disruptionbudget.yaml \
|
||||||
|
--set 'injector.podDisruptionBudget.minAvailable=2' \
|
||||||
|
--kube-version 1.19.5 \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.apiVersion == "policy/v1beta1"' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/DisruptionBudget: test is apiVersion is set correctly >= version 1.21 of kube" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-disruptionbudget.yaml \
|
||||||
|
--set 'injector.podDisruptionBudget.minAvailable=2' \
|
||||||
|
--kube-version 1.22.5 \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.apiVersion == "policy/v1"' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
|
@ -87,6 +87,17 @@ load _helpers
|
||||||
[ "${actual}" = "true" ]
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "injector/certs-secret: namespace is set" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$( (helm template \
|
||||||
|
--show-only templates/injector-certs-secret.yaml \
|
||||||
|
--set "injector.replicas=2" \
|
||||||
|
--namespace foo \
|
||||||
|
. || echo "---") | tee /dev/stderr |
|
||||||
|
yq '.metadata.namespace' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "\"foo\"" ]
|
||||||
|
}
|
||||||
|
|
||||||
@test "injector/role: created/skipped as appropriate" {
|
@test "injector/role: created/skipped as appropriate" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$( (helm template \
|
local actual=$( (helm template \
|
||||||
|
@ -127,6 +138,17 @@ load _helpers
|
||||||
[ "${actual}" = "true" ]
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "injector/role: namespace is set" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$( (helm template \
|
||||||
|
--show-only templates/injector-role.yaml \
|
||||||
|
--set "injector.replicas=2" \
|
||||||
|
--namespace foo \
|
||||||
|
. || echo "---") | tee /dev/stderr |
|
||||||
|
yq '.metadata.namespace' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "\"foo\"" ]
|
||||||
|
}
|
||||||
|
|
||||||
@test "injector/rolebinding: created/skipped as appropriate" {
|
@test "injector/rolebinding: created/skipped as appropriate" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$( (helm template \
|
local actual=$( (helm template \
|
||||||
|
@ -166,3 +188,14 @@ load _helpers
|
||||||
yq 'length > 0' | tee /dev/stderr)
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
[ "${actual}" = "true" ]
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "injector/rolebinding: namespace is set" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$( (helm template \
|
||||||
|
--show-only templates/injector-rolebinding.yaml \
|
||||||
|
--set "injector.replicas=2" \
|
||||||
|
--namespace foo \
|
||||||
|
. || echo "---") | tee /dev/stderr |
|
||||||
|
yq '.metadata.namespace' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "\"foo\"" ]
|
||||||
|
}
|
||||||
|
|
|
@ -53,18 +53,191 @@ load _helpers
|
||||||
[ "${actual}" = "\"\"" ]
|
[ "${actual}" = "\"\"" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "injector/MutatingWebhookConfiguration: namespaceSelector empty by default" {
|
@test "injector/MutatingWebhookConfiguration: failurePolicy 'Ignore' by default (deprecated)" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$(helm template \
|
local actual=$(helm template \
|
||||||
--show-only templates/injector-mutating-webhook.yaml \
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
--set 'injector.enabled=true' \
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook=null' \
|
||||||
|
--namespace foo \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.webhooks[0].failurePolicy' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "\"Ignore\"" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: can set failurePolicy (deprecated)" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook=null' \
|
||||||
|
--set 'injector.failurePolicy=Fail' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.webhooks[0].failurePolicy' | tee /dev/stderr)
|
||||||
|
|
||||||
|
[ "${actual}" = "\"Fail\"" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: webhook.failurePolicy 'Ignore' by default" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.failurePolicy=Invalid' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.webhooks[0].failurePolicy' | tee /dev/stderr)
|
||||||
|
|
||||||
|
[ "${actual}" = "\"Ignore\"" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: can set webhook.failurePolicy" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook.failurePolicy=Fail' \
|
||||||
|
--set 'injector.failurePolicy=Invalid' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.webhooks[0].failurePolicy' | tee /dev/stderr)
|
||||||
|
|
||||||
|
[ "${actual}" = "\"Fail\"" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: webhook.matchPolicy 'Exact' by default" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.webhooks[0].matchPolicy' | tee /dev/stderr)
|
||||||
|
|
||||||
|
[ "${actual}" = "\"Exact\"" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: can set webhook.matchPolicy" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook.matchPolicy=Equivalent' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.webhooks[0].matchPolicy' | tee /dev/stderr)
|
||||||
|
|
||||||
|
[ "${actual}" = "\"Equivalent\"" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: timeoutSeconds by default 30" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook=null' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.webhooks[0].timeoutSeconds' | tee /dev/stderr)
|
||||||
|
|
||||||
|
[ "${actual}" = "30" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: can set webhook.timeoutSeconds" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook.timeoutSeconds=50' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.webhooks[0].timeoutSeconds' | tee /dev/stderr)
|
||||||
|
|
||||||
|
[ "${actual}" = "50" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# annotations
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: default webhookAnnotations (deprecated)" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook=null' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.metadata.annotations' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "null" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: specify webhookAnnotations yaml (deprecated)" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook=null' \
|
||||||
|
--set 'injector.webhookAnnotations.foo=bar' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.metadata.annotations.foo' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "bar" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: specify webhookAnnotations yaml string (deprecated)" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook=null' \
|
||||||
|
--set 'injector.webhookAnnotations=foo: bar' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.metadata.annotations.foo' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "bar" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: default webhook.annotations" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.metadata.annotations' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "null" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: specify webhook.annotations yaml" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook.annotations.foo=bar' \
|
||||||
|
--set 'injector.webhookAnnotations.invalid=invalid' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.metadata.annotations.foo' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "bar" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: specify webhook.annotations yaml string" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook.annotations=foo: bar' \
|
||||||
|
--set 'injector.webhookAnnotations=invalid: invalid' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.metadata.annotations.foo' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "bar" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# namespaceSelector
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: namespaceSelector empty by default (deprecated)" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook=null' \
|
||||||
--namespace foo \
|
--namespace foo \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq '.webhooks[0].namespaceSelector' | tee /dev/stderr)
|
yq '.webhooks[0].namespaceSelector' | tee /dev/stderr)
|
||||||
[ "${actual}" = "null" ]
|
[ "${actual}" = "null" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "injector/MutatingWebhookConfiguration: can set namespaceSelector" {
|
@test "injector/MutatingWebhookConfiguration: can set namespaceSelector (deprecated)" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$(helm template \
|
local actual=$(helm template \
|
||||||
--show-only templates/injector-mutating-webhook.yaml \
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
@ -76,7 +249,59 @@ load _helpers
|
||||||
[ "${actual}" = "true" ]
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "injector/MutatingWebhookConfiguration: objectSelector empty by default" {
|
@test "injector/MutatingWebhookConfiguration: webhook.namespaceSelector empty by default" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--namespace foo \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.webhooks[0].namespaceSelector' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "null" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: can set set webhook.namespaceSelector" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook.namespaceSelector.matchLabels.injector=true' \
|
||||||
|
--set 'injector.namespaceSelector.matchLabels.injector=false' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.webhooks[0].namespaceSelector.matchLabels.injector' | tee /dev/stderr)
|
||||||
|
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# objectSelector
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: objectSelector empty by default (deprecated)" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook=null' \
|
||||||
|
--namespace foo \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.webhooks[0].objectSelector' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "null" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: can set objectSelector (deprecated)" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
--set 'injector.enabled=true' \
|
||||||
|
--set 'injector.webhook=null' \
|
||||||
|
--set 'injector.objectSelector.matchLabels.injector=true' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.webhooks[0].objectSelector.matchLabels.injector' | tee /dev/stderr)
|
||||||
|
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "injector/MutatingWebhookConfiguration: webhook.objectSelector empty by default" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$(helm template \
|
local actual=$(helm template \
|
||||||
--show-only templates/injector-mutating-webhook.yaml \
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
|
@ -87,69 +312,15 @@ load _helpers
|
||||||
[ "${actual}" = "null" ]
|
[ "${actual}" = "null" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "injector/MutatingWebhookConfiguration: can set objectSelector" {
|
@test "injector/MutatingWebhookConfiguration: can set webhook.objectSelector" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$(helm template \
|
local actual=$(helm template \
|
||||||
--show-only templates/injector-mutating-webhook.yaml \
|
--show-only templates/injector-mutating-webhook.yaml \
|
||||||
--set 'injector.enabled=true' \
|
--set 'injector.enabled=true' \
|
||||||
--set 'injector.objectSelector.matchLabels.injector=true' \
|
--set 'injector.webhook.objectSelector.matchLabels.injector=true' \
|
||||||
|
--set 'injector.objectSelector.matchLabels.injector=false' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq '.webhooks[0].objectSelector.matchLabels.injector' | tee /dev/stderr)
|
yq '.webhooks[0].objectSelector.matchLabels.injector' | tee /dev/stderr)
|
||||||
|
|
||||||
[ "${actual}" = "true" ]
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "injector/MutatingWebhookConfiguration: failurePolicy 'Ignore' by default" {
|
|
||||||
cd `chart_dir`
|
|
||||||
local actual=$(helm template \
|
|
||||||
--show-only templates/injector-mutating-webhook.yaml \
|
|
||||||
--set 'injector.enabled=true' \
|
|
||||||
--namespace foo \
|
|
||||||
. | tee /dev/stderr |
|
|
||||||
yq '.webhooks[0].failurePolicy' | tee /dev/stderr)
|
|
||||||
[ "${actual}" = "\"Ignore\"" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "injector/MutatingWebhookConfiguration: can set failurePolicy" {
|
|
||||||
cd `chart_dir`
|
|
||||||
local actual=$(helm template \
|
|
||||||
--show-only templates/injector-mutating-webhook.yaml \
|
|
||||||
--set 'injector.enabled=true' \
|
|
||||||
--set 'injector.failurePolicy=Fail' \
|
|
||||||
. | tee /dev/stderr |
|
|
||||||
yq '.webhooks[0].failurePolicy' | tee /dev/stderr)
|
|
||||||
|
|
||||||
[ "${actual}" = "\"Fail\"" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
|
||||||
# annotations
|
|
||||||
|
|
||||||
@test "injector/MutatingWebhookConfiguration: default annotations" {
|
|
||||||
cd `chart_dir`
|
|
||||||
local actual=$(helm template \
|
|
||||||
--show-only templates/injector-mutating-webhook.yaml \
|
|
||||||
. | tee /dev/stderr |
|
|
||||||
yq -r '.metadata.annotations' | tee /dev/stderr)
|
|
||||||
[ "${actual}" = "null" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "injector/MutatingWebhookConfiguration: specify annotations yaml" {
|
|
||||||
cd `chart_dir`
|
|
||||||
local actual=$(helm template \
|
|
||||||
--show-only templates/injector-mutating-webhook.yaml \
|
|
||||||
--set 'injector.webhookAnnotations.foo=bar' \
|
|
||||||
. | tee /dev/stderr |
|
|
||||||
yq -r '.metadata.annotations.foo' | tee /dev/stderr)
|
|
||||||
[ "${actual}" = "bar" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
@test "injector/MutatingWebhookConfiguration: specify annotations yaml string" {
|
|
||||||
cd `chart_dir`
|
|
||||||
local actual=$(helm template \
|
|
||||||
--show-only templates/injector-mutating-webhook.yaml \
|
|
||||||
--set 'injector.webhookAnnotations=foo: bar' \
|
|
||||||
. | tee /dev/stderr |
|
|
||||||
yq -r '.metadata.annotations.foo' | tee /dev/stderr)
|
|
||||||
[ "${actual}" = "bar" ]
|
|
||||||
}
|
|
|
@ -22,7 +22,7 @@ load _helpers
|
||||||
[ "${actual}" = "true" ]
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "injector/PodSecurityPolicy-Role: disable with global.enabled" {
|
@test "injector/PodSecurityPolicy-Role: ignore global.enabled" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$( (helm template \
|
local actual=$( (helm template \
|
||||||
--show-only templates/injector-psp-role.yaml \
|
--show-only templates/injector-psp-role.yaml \
|
||||||
|
@ -31,5 +31,5 @@ load _helpers
|
||||||
--set 'global.psp.enable=true' \
|
--set 'global.psp.enable=true' \
|
||||||
. || echo "---") | tee /dev/stderr |
|
. || echo "---") | tee /dev/stderr |
|
||||||
yq 'length > 0' | tee /dev/stderr)
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
[ "${actual}" = "false" ]
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ load _helpers
|
||||||
[ "${actual}" = "true" ]
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "injector/PodSecurityPolicy-RoleBinding: disable with global.enabled" {
|
@test "injector/PodSecurityPolicy-RoleBinding: ignore global.enabled" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$( (helm template \
|
local actual=$( (helm template \
|
||||||
--show-only templates/injector-psp-rolebinding.yaml \
|
--show-only templates/injector-psp-rolebinding.yaml \
|
||||||
|
@ -31,5 +31,5 @@ load _helpers
|
||||||
--set 'global.psp.enable=true' \
|
--set 'global.psp.enable=true' \
|
||||||
. || echo "---") | tee /dev/stderr |
|
. || echo "---") | tee /dev/stderr |
|
||||||
yq 'length > 0' | tee /dev/stderr)
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
[ "${actual}" = "false" ]
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ load _helpers
|
||||||
[ "${actual}" = "true" ]
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "injector/PodSecurityPolicy: disable with global.enabled" {
|
@test "injector/PodSecurityPolicy: ignore global.enabled" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$( (helm template \
|
local actual=$( (helm template \
|
||||||
--show-only templates/injector-psp.yaml \
|
--show-only templates/injector-psp.yaml \
|
||||||
|
@ -31,7 +31,7 @@ load _helpers
|
||||||
--set 'global.psp.enable=true' \
|
--set 'global.psp.enable=true' \
|
||||||
. || echo "---") | tee /dev/stderr |
|
. || echo "---") | tee /dev/stderr |
|
||||||
yq 'length > 0' | tee /dev/stderr)
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
[ "${actual}" = "false" ]
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "injector/PodSecurityPolicy: annotations are templated correctly by default" {
|
@test "injector/PodSecurityPolicy: annotations are templated correctly by default" {
|
||||||
|
|
|
@ -52,7 +52,7 @@ load _helpers
|
||||||
--set 'injector.enabled=true' \
|
--set 'injector.enabled=true' \
|
||||||
. || echo "---") | tee /dev/stderr |
|
. || echo "---") | tee /dev/stderr |
|
||||||
yq 'length > 0' | tee /dev/stderr)
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
[ "${actual}" = "false" ]
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "injector/Service: generic annotations" {
|
@test "injector/Service: generic annotations" {
|
||||||
|
|
|
@ -7,9 +7,9 @@ load _helpers
|
||||||
# schema, setting it as a string fails 'helm template'.
|
# schema, setting it as a string fails 'helm template'.
|
||||||
@test "schema: csi enabled datatype" {
|
@test "schema: csi enabled datatype" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
run helm template . --set csi.enabled="nope"
|
run helm template . --set csi.enabled="123"
|
||||||
[ "$status" -eq 1 ]
|
[ "$status" -eq 1 ]
|
||||||
[ "${lines[2]}" = "- csi.enabled: Invalid type. Expected: boolean, given: string" ]
|
[ "${lines[2]}" = "- csi.enabled: Invalid type. Expected: [boolean,string], given: integer" ]
|
||||||
|
|
||||||
run helm template . --set csi.enabled=true
|
run helm template . --set csi.enabled=true
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
|
@ -17,9 +17,9 @@ load _helpers
|
||||||
|
|
||||||
@test "schema: injector enabled datatype" {
|
@test "schema: injector enabled datatype" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
run helm template . --set injector.enabled="nope"
|
run helm template . --set injector.enabled="123"
|
||||||
[ "$status" -eq 1 ]
|
[ "$status" -eq 1 ]
|
||||||
[ "${lines[2]}" = "- injector.enabled: Invalid type. Expected: boolean, given: string" ]
|
[ "${lines[2]}" = "- injector.enabled: Invalid type. Expected: [boolean,string], given: integer" ]
|
||||||
|
|
||||||
run helm template . --set injector.enabled=true
|
run helm template . --set injector.enabled=true
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
|
@ -27,9 +27,9 @@ load _helpers
|
||||||
|
|
||||||
@test "schema: server enabled datatype" {
|
@test "schema: server enabled datatype" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
run helm template . --set server.enabled="nope"
|
run helm template . --set server.enabled="123"
|
||||||
[ "$status" -eq 1 ]
|
[ "$status" -eq 1 ]
|
||||||
[ "${lines[2]}" = "- server.enabled: Invalid type. Expected: boolean, given: string" ]
|
[ "${lines[2]}" = "- server.enabled: Invalid type. Expected: [boolean,string], given: integer" ]
|
||||||
|
|
||||||
run helm template . --set server.enabled=true
|
run helm template . --set server.enabled=true
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
|
@ -37,9 +37,9 @@ load _helpers
|
||||||
|
|
||||||
@test "schema: ui enabled datatype" {
|
@test "schema: ui enabled datatype" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
run helm template . --set ui.enabled="nope"
|
run helm template . --set ui.enabled="123"
|
||||||
[ "$status" -eq 1 ]
|
[ "$status" -eq 1 ]
|
||||||
[ "${lines[2]}" = "- ui.enabled: Invalid type. Expected: boolean, given: string" ]
|
[ "${lines[2]}" = "- ui.enabled: Invalid type. Expected: [boolean,string], given: integer" ]
|
||||||
|
|
||||||
run helm template . --set ui.enabled=true
|
run helm template . --set ui.enabled=true
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
|
|
|
@ -197,3 +197,20 @@ load _helpers
|
||||||
[ "${actual}" = "null" ]
|
[ "${actual}" = "null" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "server/ha-active-Service: publishNotReadyAddresses can be changed" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-ha-active-service.yaml \
|
||||||
|
--set 'server.ha.enabled=true' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.publishNotReadyAddresses' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-ha-active-service.yaml \
|
||||||
|
--set 'server.ha.enabled=true' \
|
||||||
|
--set 'server.service.publishNotReadyAddresses=false' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.publishNotReadyAddresses' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "false" ]
|
||||||
|
}
|
||||||
|
|
|
@ -16,7 +16,7 @@ load _helpers
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$( (helm template \
|
local actual=$( (helm template \
|
||||||
--show-only templates/server-disruptionbudget.yaml \
|
--show-only templates/server-disruptionbudget.yaml \
|
||||||
--set 'globa.enabled=false' \
|
--set 'global.enabled=false' \
|
||||||
--set 'server.ha.enabled=false' \
|
--set 'server.ha.enabled=false' \
|
||||||
. || echo "---") | tee /dev/stderr |
|
. || echo "---") | tee /dev/stderr |
|
||||||
yq 'length > 0' | tee /dev/stderr)
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
|
@ -96,4 +96,28 @@ load _helpers
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq '.spec.maxUnavailable' | tee /dev/stderr)
|
yq '.spec.maxUnavailable' | tee /dev/stderr)
|
||||||
[ "${actual}" = "2" ]
|
[ "${actual}" = "2" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/DisruptionBudget: test is apiVersion is set correctly < version 1.21 of kube" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-disruptionbudget.yaml \
|
||||||
|
--set 'server.ha.enabled=true' \
|
||||||
|
--set 'server.ha.replicas=1' \
|
||||||
|
--kube-version 1.19.5 \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.apiVersion == "policy/v1beta1"' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/DisruptionBudget: test is apiVersion is set correctly >= version 1.21 of kube" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-disruptionbudget.yaml \
|
||||||
|
--set 'server.ha.enabled=true' \
|
||||||
|
--set 'server.ha.replicas=1' \
|
||||||
|
--kube-version 1.22.5 \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq '.apiVersion == "policy/v1"' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
}
|
}
|
|
@ -208,3 +208,20 @@ load _helpers
|
||||||
[ "${actual}" = "null" ]
|
[ "${actual}" = "null" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "server/ha-standby-Service: publishNotReadyAddresses can be changed" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-ha-standby-service.yaml \
|
||||||
|
--set 'server.ha.enabled=true' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.publishNotReadyAddresses' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-ha-standby-service.yaml \
|
||||||
|
--set 'server.ha.enabled=true' \
|
||||||
|
--set 'server.service.publishNotReadyAddresses=false' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.publishNotReadyAddresses' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "false" ]
|
||||||
|
}
|
||||||
|
|
|
@ -417,7 +417,7 @@ load _helpers
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
# VAULT_CLUSTER_ADDR renders
|
# VAULT_CLUSTER_ADDR renders
|
||||||
|
|
||||||
@test "server/ha-StatefulSet: cluster addr renders" {
|
@test "server/ha-StatefulSet: clusterAddr not set" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local object=$(helm template \
|
local object=$(helm template \
|
||||||
--show-only templates/server-statefulset.yaml \
|
--show-only templates/server-statefulset.yaml \
|
||||||
|
@ -428,7 +428,52 @@ load _helpers
|
||||||
|
|
||||||
local value=$(echo $object |
|
local value=$(echo $object |
|
||||||
yq -r 'map(select(.name=="VAULT_CLUSTER_ADDR")) | .[] .value' | tee /dev/stderr)
|
yq -r 'map(select(.name=="VAULT_CLUSTER_ADDR")) | .[] .value' | tee /dev/stderr)
|
||||||
[ "${value}" = 'https://$(HOSTNAME).RELEASE-NAME-vault-internal:8201' ]
|
[ "${value}" = 'https://$(HOSTNAME).release-name-vault-internal:8201' ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/ha-StatefulSet: clusterAddr set to null" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local object=$(helm template \
|
||||||
|
--show-only templates/server-statefulset.yaml \
|
||||||
|
--set 'server.ha.enabled=true' \
|
||||||
|
--set 'server.ha.raft.enabled=true' \
|
||||||
|
--set 'server.ha.clusterAddr=null' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.template.spec.containers[0].env' | tee /dev/stderr)
|
||||||
|
|
||||||
|
local value=$(echo $object |
|
||||||
|
yq -r 'map(select(.name=="VAULT_CLUSTER_ADDR")) | .[] .value' | tee /dev/stderr)
|
||||||
|
[ "${value}" = 'https://$(HOSTNAME).release-name-vault-internal:8201' ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/ha-StatefulSet: clusterAddr set to custom url" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local object=$(helm template \
|
||||||
|
--show-only templates/server-statefulset.yaml \
|
||||||
|
--set 'server.ha.enabled=true' \
|
||||||
|
--set 'server.ha.raft.enabled=true' \
|
||||||
|
--set 'server.ha.clusterAddr=https://test.example.com:8201' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.template.spec.containers[0].env' | tee /dev/stderr)
|
||||||
|
|
||||||
|
local value=$(echo $object |
|
||||||
|
yq -r 'map(select(.name=="VAULT_CLUSTER_ADDR")) | .[] .value' | tee /dev/stderr)
|
||||||
|
[ "${value}" = 'https://test.example.com:8201' ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/ha-StatefulSet: clusterAddr set to custom url with environment variable" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local object=$(helm template \
|
||||||
|
--show-only templates/server-statefulset.yaml \
|
||||||
|
--set 'server.ha.enabled=true' \
|
||||||
|
--set 'server.ha.raft.enabled=true' \
|
||||||
|
--set 'server.ha.clusterAddr=http://$(HOSTNAME).release-name-vault-internal:8201' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.template.spec.containers[0].env' | tee /dev/stderr)
|
||||||
|
|
||||||
|
local value=$(echo $object |
|
||||||
|
yq -r 'map(select(.name=="VAULT_CLUSTER_ADDR")) | .[] .value' | tee /dev/stderr)
|
||||||
|
[ "${value}" = 'http://$(HOSTNAME).release-name-vault-internal:8201' ]
|
||||||
}
|
}
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
|
|
19
test/unit/server-headless-service.bats
Normal file
19
test/unit/server-headless-service.bats
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load _helpers
|
||||||
|
|
||||||
|
@test "server/headless-Service: publishNotReadyAddresses can be changed" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-headless-service.yaml \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.publishNotReadyAddresses' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-headless-service.yaml \
|
||||||
|
--set 'server.service.publishNotReadyAddresses=false' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.publishNotReadyAddresses' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "false" ]
|
||||||
|
}
|
|
@ -165,7 +165,7 @@ load _helpers
|
||||||
--set 'server.service.enabled=true' \
|
--set 'server.service.enabled=true' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.spec.rules[0].http.paths[0].backend.service.name' | tee /dev/stderr)
|
yq -r '.spec.rules[0].http.paths[0].backend.service.name' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault-active" ]
|
[ "${actual}" = "release-name-vault-active" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "server/ingress: uses regular service when configured with ha - yaml" {
|
@test "server/ingress: uses regular service when configured with ha - yaml" {
|
||||||
|
@ -180,7 +180,7 @@ load _helpers
|
||||||
--set 'server.service.enabled=true' \
|
--set 'server.service.enabled=true' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.spec.rules[0].http.paths[0].backend.service.name' | tee /dev/stderr)
|
yq -r '.spec.rules[0].http.paths[0].backend.service.name' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault" ]
|
[ "${actual}" = "release-name-vault" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "server/ingress: uses regular service when not ha - yaml" {
|
@test "server/ingress: uses regular service when not ha - yaml" {
|
||||||
|
@ -194,7 +194,7 @@ load _helpers
|
||||||
--set 'server.service.enabled=true' \
|
--set 'server.service.enabled=true' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.spec.rules[0].http.paths[0].backend.service.name' | tee /dev/stderr)
|
yq -r '.spec.rules[0].http.paths[0].backend.service.name' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault" ]
|
[ "${actual}" = "release-name-vault" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "server/ingress: k8s 1.18.3 uses regular service when not ha - yaml" {
|
@test "server/ingress: k8s 1.18.3 uses regular service when not ha - yaml" {
|
||||||
|
@ -209,7 +209,7 @@ load _helpers
|
||||||
--kube-version 1.18.3 \
|
--kube-version 1.18.3 \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.spec.rules[0].http.paths[0].backend.serviceName' | tee /dev/stderr)
|
yq -r '.spec.rules[0].http.paths[0].backend.serviceName' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault" ]
|
[ "${actual}" = "release-name-vault" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "server/ingress: uses regular service when not ha and activeService is true - yaml" {
|
@test "server/ingress: uses regular service when not ha and activeService is true - yaml" {
|
||||||
|
@ -224,7 +224,7 @@ load _helpers
|
||||||
--set 'server.service.enabled=true' \
|
--set 'server.service.enabled=true' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.spec.rules[0].http.paths[0].backend.service.name' | tee /dev/stderr)
|
yq -r '.spec.rules[0].http.paths[0].backend.service.name' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault" ]
|
[ "${actual}" = "release-name-vault" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "server/ingress: pathType is added to Kubernetes version == 1.19.0" {
|
@test "server/ingress: pathType is added to Kubernetes version == 1.19.0" {
|
||||||
|
|
|
@ -99,7 +99,7 @@ load _helpers
|
||||||
--set 'server.route.enabled=true' \
|
--set 'server.route.enabled=true' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.spec.to.name' | tee /dev/stderr)
|
yq -r '.spec.to.name' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault" ]
|
[ "${actual}" = "release-name-vault" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "server/route: OpenShift - route points to main service when not ha and activeService is true" {
|
@test "server/route: OpenShift - route points to main service when not ha and activeService is true" {
|
||||||
|
@ -112,7 +112,7 @@ load _helpers
|
||||||
--set 'server.route.activeService=true' \
|
--set 'server.route.activeService=true' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.spec.to.name' | tee /dev/stderr)
|
yq -r '.spec.to.name' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault" ]
|
[ "${actual}" = "release-name-vault" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "server/route: OpenShift - route points to active service by when HA by default" {
|
@test "server/route: OpenShift - route points to active service by when HA by default" {
|
||||||
|
@ -125,7 +125,7 @@ load _helpers
|
||||||
--set 'server.ha.enabled=true' \
|
--set 'server.ha.enabled=true' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.spec.to.name' | tee /dev/stderr)
|
yq -r '.spec.to.name' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault-active" ]
|
[ "${actual}" = "release-name-vault-active" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "server/route: OpenShift - route points to general service by when HA when configured" {
|
@test "server/route: OpenShift - route points to general service by when HA when configured" {
|
||||||
|
@ -139,5 +139,43 @@ load _helpers
|
||||||
--set 'server.ha.enabled=true' \
|
--set 'server.ha.enabled=true' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.spec.to.name' | tee /dev/stderr)
|
yq -r '.spec.to.name' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault" ]
|
[ "${actual}" = "release-name-vault" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/route: OpenShift - route termination mode set to default passthrough" {
|
||||||
|
cd `chart_dir`
|
||||||
|
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-route.yaml \
|
||||||
|
--set 'global.openshift=true' \
|
||||||
|
--set 'server.route.enabled=true' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.tls.termination' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "passthrough" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/route: OpenShift - route termination mode set to edge" {
|
||||||
|
cd `chart_dir`
|
||||||
|
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-route.yaml \
|
||||||
|
--set 'global.openshift=true' \
|
||||||
|
--set 'server.route.enabled=true' \
|
||||||
|
--set 'server.route.tls.termination=edge' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.tls.termination' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "edge" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/route: OpenShift - route custom tls entry" {
|
||||||
|
cd `chart_dir`
|
||||||
|
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-route.yaml \
|
||||||
|
--set 'global.openshift=true' \
|
||||||
|
--set 'server.route.enabled=true' \
|
||||||
|
--set 'server.route.tls.insecureEdgeTerminationPolicy=Redirect' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.tls.insecureEdgeTerminationPolicy' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "Redirect" ]
|
||||||
}
|
}
|
||||||
|
|
|
@ -175,6 +175,13 @@ load _helpers
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.spec.publishNotReadyAddresses' | tee /dev/stderr)
|
yq -r '.spec.publishNotReadyAddresses' | tee /dev/stderr)
|
||||||
[ "${actual}" = "true" ]
|
[ "${actual}" = "true" ]
|
||||||
|
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-service.yaml \
|
||||||
|
--set 'server.service.publishNotReadyAddresses=false' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.publishNotReadyAddresses' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "false" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "server/Service: type empty by default" {
|
@test "server/Service: type empty by default" {
|
||||||
|
|
|
@ -26,7 +26,7 @@ load _helpers
|
||||||
--set 'server.dev.enabled=true' \
|
--set 'server.dev.enabled=true' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.metadata.name' | tee /dev/stderr)
|
yq -r '.metadata.name' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault" ]
|
[ "${actual}" = "release-name-vault" ]
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -537,7 +537,7 @@ load _helpers
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local object=$(helm template \
|
local object=$(helm template \
|
||||||
--show-only templates/server-statefulset.yaml \
|
--show-only templates/server-statefulset.yaml \
|
||||||
--set 'server.stanadlone.enabled=true' \
|
--set 'server.standalone.enabled=true' \
|
||||||
--set 'server.extraEnvironmentVars.FOO=bar' \
|
--set 'server.extraEnvironmentVars.FOO=bar' \
|
||||||
--set 'server.extraEnvironmentVars.FOOBAR=foobar' \
|
--set 'server.extraEnvironmentVars.FOOBAR=foobar' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
|
@ -1408,6 +1408,27 @@ load _helpers
|
||||||
[[ "${actual}" = *"foobar"* ]]
|
[[ "${actual}" = *"foobar"* ]]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# terminationGracePeriodSeconds
|
||||||
|
@test "server/standalone-StatefulSet: terminationGracePeriodSeconds default" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-statefulset.yaml \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.template.spec.terminationGracePeriodSeconds' | tee /dev/stderr)
|
||||||
|
[[ "${actual}" = "10" ]]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/standalone-StatefulSet: terminationGracePeriodSeconds 30" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/server-statefulset.yaml \
|
||||||
|
--set 'server.terminationGracePeriodSeconds=30' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.template.spec.terminationGracePeriodSeconds' | tee /dev/stderr)
|
||||||
|
[[ "${actual}" = "30" ]]
|
||||||
|
}
|
||||||
|
|
||||||
#--------------------------------------------------------------------
|
#--------------------------------------------------------------------
|
||||||
# preStop
|
# preStop
|
||||||
@test "server/standalone-StatefulSet: preStop sleep duration default" {
|
@test "server/standalone-StatefulSet: preStop sleep duration default" {
|
||||||
|
@ -1642,7 +1663,7 @@ load _helpers
|
||||||
--set 'server.serviceAccount.create=true' \
|
--set 'server.serviceAccount.create=true' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq -r '.spec.template.spec.serviceAccountName' | tee /dev/stderr)
|
yq -r '.spec.template.spec.serviceAccountName' | tee /dev/stderr)
|
||||||
[ "${actual}" = "RELEASE-NAME-vault" ]
|
[ "${actual}" = "release-name-vault" ]
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
252
test/unit/server-test.bats
Normal file
252
test/unit/server-test.bats
Normal file
|
@ -0,0 +1,252 @@
|
||||||
|
#!/usr/bin/env bats
|
||||||
|
|
||||||
|
load _helpers
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# disable / enable server deployment
|
||||||
|
|
||||||
|
@test "server/server-test-Pod: disabled server.enabled" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$( (helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.enabled=false' \
|
||||||
|
. || echo "---") | tee /dev/stderr |
|
||||||
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "false" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/server-test-Pod: disabled server.enabled random string" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$( (helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.enabled=blabla' \
|
||||||
|
. || echo "---") | tee /dev/stderr |
|
||||||
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "false" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/server-test-Pod: enabled server.enabled explicit true" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$( (helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.enabled=true' \
|
||||||
|
. || echo "---") | tee /dev/stderr |
|
||||||
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
|
||||||
|
@test "server/standalone-server-test-Pod: default server.standalone.enabled" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/standalone-server-test-Pod: enable with server.standalone.enabled true" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.standalone.enabled=true' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/ha-server-test-Pod: enable with server.ha.enabled true" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.ha.enabled=true' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/standalone-server-test-Pod: not disabled with global.enabled" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$( (helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'global.enabled=false' \
|
||||||
|
--set 'server.enabled=true' \
|
||||||
|
--set 'server.standalone.enabled=true' \
|
||||||
|
. || echo "---") | tee /dev/stderr |
|
||||||
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/standalone-server-test-Pod: disable with global.enabled" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$( (helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'global.enabled=false' \
|
||||||
|
. || echo "---") | tee /dev/stderr |
|
||||||
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "false" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/standalone-server-test-Pod: disable with injector.externalVaultAddr" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$( (helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'injector.externalVaultAddr=http://vault-outside' \
|
||||||
|
--set 'server.standalone.enabled=true' \
|
||||||
|
. || echo "---") | tee /dev/stderr |
|
||||||
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "false" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/standalone-server-test-Pod: image defaults to server.image.repository:tag" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.image.repository=foo' \
|
||||||
|
--set 'server.image.tag=1.2.3' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.containers[0].image' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "foo:1.2.3" ]
|
||||||
|
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.image.repository=foo' \
|
||||||
|
--set 'server.image.tag=1.2.3' \
|
||||||
|
--set 'server.standalone.enabled=true' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.containers[0].image' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "foo:1.2.3" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/standalone-server-test-Pod: image tag defaults to latest" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.image.repository=foo' \
|
||||||
|
--set 'server.image.tag=' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.containers[0].image' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "foo:latest" ]
|
||||||
|
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.image.repository=foo' \
|
||||||
|
--set 'server.image.tag=' \
|
||||||
|
--set 'server.standalone.enabled=true' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.containers[0].image' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "foo:latest" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/standalone-server-test-Pod: default imagePullPolicy" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.containers[0].imagePullPolicy' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "IfNotPresent" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
@test "server/standalone-server-test-Pod: Custom imagePullPolicy" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.image.pullPolicy=Always' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.containers[0].imagePullPolicy' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "Always" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# resources
|
||||||
|
|
||||||
|
@test "server/standalone-server-test-Pod: default resources" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.standalone.enabled=true' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.containers[0].resources' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "null" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# volumes
|
||||||
|
|
||||||
|
@test "server/standalone-server-test-Pod: server.volumes adds volume" {
|
||||||
|
cd `chart_dir`
|
||||||
|
|
||||||
|
# Test that it defines it
|
||||||
|
local object=$(helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.volumes[0].name=plugins' \
|
||||||
|
--set 'server.volumes[0].emptyDir=\{\}' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.volumes[] | select(.name == "plugins")' | tee /dev/stderr)
|
||||||
|
|
||||||
|
local actual=$(echo $object |
|
||||||
|
yq -r '.emptyDir' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "{}" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# volumeMounts
|
||||||
|
|
||||||
|
@test "server/standalone-server-test-Pod: server.volumeMounts adds volumeMount" {
|
||||||
|
cd `chart_dir`
|
||||||
|
|
||||||
|
# Test that it defines it
|
||||||
|
local object=$(helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.volumeMounts[0].name=plugins' \
|
||||||
|
--set 'server.volumeMounts[0].mountPath=/usr/local/libexec/vault' \
|
||||||
|
--set 'server.volumeMounts[0].readOnly=true' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.containers[0].volumeMounts[] | select(.name == "plugins")' | tee /dev/stderr)
|
||||||
|
|
||||||
|
local actual=$(echo $object |
|
||||||
|
yq -r '.mountPath' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "/usr/local/libexec/vault" ]
|
||||||
|
|
||||||
|
local actual=$(echo $object |
|
||||||
|
yq -r '.readOnly' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
|
#--------------------------------------------------------------------
|
||||||
|
# extraEnvironmentVars
|
||||||
|
|
||||||
|
@test "server/standalone-server-test-Pod: set extraEnvironmentVars" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local object=$(helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.standalone.enabled=true' \
|
||||||
|
--set 'server.extraEnvironmentVars.FOO=bar' \
|
||||||
|
--set 'server.extraEnvironmentVars.FOOBAR=foobar' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.containers[0].env' | tee /dev/stderr)
|
||||||
|
|
||||||
|
local name=$(echo $object |
|
||||||
|
yq -r 'map(select(.name=="FOO")) | .[] .value' | tee /dev/stderr)
|
||||||
|
[ "${name}" = "bar" ]
|
||||||
|
|
||||||
|
local name=$(echo $object |
|
||||||
|
yq -r 'map(select(.name=="FOOBAR")) | .[] .value' | tee /dev/stderr)
|
||||||
|
[ "${name}" = "foobar" ]
|
||||||
|
|
||||||
|
local object=$(helm template \
|
||||||
|
--show-only templates/tests/server-test.yaml \
|
||||||
|
--set 'server.extraEnvironmentVars.FOO=bar' \
|
||||||
|
--set 'server.extraEnvironmentVars.FOOBAR=foobar' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r '.spec.containers[0].env' | tee /dev/stderr)
|
||||||
|
|
||||||
|
local name=$(echo $object |
|
||||||
|
yq -r 'map(select(.name=="FOO")) | .[] .value' | tee /dev/stderr)
|
||||||
|
[ "${name}" = "bar" ]
|
||||||
|
|
||||||
|
local name=$(echo $object |
|
||||||
|
yq -r 'map(select(.name=="FOOBAR")) | .[] .value' | tee /dev/stderr)
|
||||||
|
[ "${name}" = "foobar" ]
|
||||||
|
}
|
|
@ -53,6 +53,18 @@ load _helpers
|
||||||
[ "${actual}" = "false" ]
|
[ "${actual}" = "false" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@test "ui/Service: 'disable with global, enable with ui.enabled'" {
|
||||||
|
cd `chart_dir`
|
||||||
|
local actual=$(helm template \
|
||||||
|
--show-only templates/ui-service.yaml \
|
||||||
|
--set 'global.enabled=false' \
|
||||||
|
--set 'server.enabled=true' \
|
||||||
|
--set 'ui.enabled=true' \
|
||||||
|
. | tee /dev/stderr |
|
||||||
|
yq -r 'length > 0' | tee /dev/stderr)
|
||||||
|
[ "${actual}" = "true" ]
|
||||||
|
}
|
||||||
|
|
||||||
@test "ui/Service: disable with injector.externalVaultAddr" {
|
@test "ui/Service: disable with injector.externalVaultAddr" {
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$( (helm template \
|
local actual=$( (helm template \
|
||||||
|
|
|
@ -6,13 +6,13 @@ global:
|
||||||
injector:
|
injector:
|
||||||
image:
|
image:
|
||||||
repository: "registry.connect.redhat.com/hashicorp/vault-k8s"
|
repository: "registry.connect.redhat.com/hashicorp/vault-k8s"
|
||||||
tag: "0.14.1-ubi"
|
tag: "0.14.2-ubi"
|
||||||
|
|
||||||
agentImage:
|
agentImage:
|
||||||
repository: "registry.connect.redhat.com/hashicorp/vault"
|
repository: "registry.connect.redhat.com/hashicorp/vault"
|
||||||
tag: "1.9.0-ubi"
|
tag: "1.9.3-ubi"
|
||||||
|
|
||||||
server:
|
server:
|
||||||
image:
|
image:
|
||||||
repository: "registry.connect.redhat.com/hashicorp/vault"
|
repository: "registry.connect.redhat.com/hashicorp/vault"
|
||||||
tag: "1.9.0-ubi"
|
tag: "1.9.3-ubi"
|
||||||
|
|
|
@ -14,6 +14,15 @@
|
||||||
"string"
|
"string"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"extraLabels": {
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
|
"kubeletRootDir": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"providersDir": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"updateStrategy": {
|
"updateStrategy": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
|
@ -24,20 +33,20 @@
|
||||||
"type": "string"
|
"type": "string"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"providersDir": {
|
|
||||||
"type": "string"
|
|
||||||
},
|
|
||||||
"kubeletRootDir": {
|
|
||||||
"type": "string"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"priorityClassName": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"debug": {
|
"debug": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"type": "boolean"
|
"type": [
|
||||||
|
"boolean",
|
||||||
|
"string"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"extraArgs": {
|
"extraArgs": {
|
||||||
"type": "array"
|
"type": "array"
|
||||||
|
@ -85,6 +94,9 @@
|
||||||
"string"
|
"string"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"extraLabels": {
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
"tolerations": {
|
"tolerations": {
|
||||||
"type": [
|
"type": [
|
||||||
"null",
|
"null",
|
||||||
|
@ -125,6 +137,9 @@
|
||||||
"object",
|
"object",
|
||||||
"string"
|
"string"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"extraLabels": {
|
||||||
|
"type": "object"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -254,7 +269,10 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"type": "boolean"
|
"type": [
|
||||||
|
"boolean",
|
||||||
|
"string"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"externalVaultAddr": {
|
"externalVaultAddr": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
|
@ -320,6 +338,9 @@
|
||||||
"objectSelector": {
|
"objectSelector": {
|
||||||
"type": "object"
|
"type": "object"
|
||||||
},
|
},
|
||||||
|
"podDisruptionBudget": {
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
"port": {
|
"port": {
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
|
@ -346,6 +367,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"strategy": {
|
||||||
|
"type": [
|
||||||
|
"object",
|
||||||
|
"string"
|
||||||
|
]
|
||||||
|
},
|
||||||
"tolerations": {
|
"tolerations": {
|
||||||
"type": [
|
"type": [
|
||||||
"null",
|
"null",
|
||||||
|
@ -360,6 +387,32 @@
|
||||||
"string"
|
"string"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"webhook": {
|
||||||
|
"type": "object",
|
||||||
|
"properties": {
|
||||||
|
"annotations": {
|
||||||
|
"type": [
|
||||||
|
"object",
|
||||||
|
"string"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"failurePolicy": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"matchPolicy": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
|
"namespaceSelector": {
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
|
"objectSelector": {
|
||||||
|
"type": "object"
|
||||||
|
},
|
||||||
|
"timeoutSeconds": {
|
||||||
|
"type": "integer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"webhookAnnotations": {
|
"webhookAnnotations": {
|
||||||
"type": [
|
"type": [
|
||||||
"object",
|
"object",
|
||||||
|
@ -467,7 +520,10 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"type": "boolean"
|
"type": [
|
||||||
|
"boolean",
|
||||||
|
"string"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"enterpriseLicense": {
|
"enterpriseLicense": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
@ -517,7 +573,10 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"type": "string"
|
"type": [
|
||||||
|
"string",
|
||||||
|
"object"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"disruptionBudget": {
|
"disruptionBudget": {
|
||||||
"type": "object",
|
"type": "object",
|
||||||
|
@ -540,7 +599,10 @@
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"config": {
|
"config": {
|
||||||
"type": "string"
|
"type": [
|
||||||
|
"string",
|
||||||
|
"object"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
|
@ -607,6 +669,9 @@
|
||||||
"labels": {
|
"labels": {
|
||||||
"type": "object"
|
"type": "object"
|
||||||
},
|
},
|
||||||
|
"pathType": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"tls": {
|
"tls": {
|
||||||
"type": "array"
|
"type": "array"
|
||||||
}
|
}
|
||||||
|
@ -732,6 +797,12 @@
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
|
"publishNotReadyAddresses": {
|
||||||
|
"type": "boolean"
|
||||||
|
},
|
||||||
|
"externalTrafficPolicy": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"port": {
|
"port": {
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
|
@ -764,7 +835,10 @@
|
||||||
"type": "object",
|
"type": "object",
|
||||||
"properties": {
|
"properties": {
|
||||||
"config": {
|
"config": {
|
||||||
"type": "string"
|
"type": [
|
||||||
|
"string",
|
||||||
|
"object"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"type": [
|
"type": [
|
||||||
|
@ -785,6 +859,9 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"terminationGracePeriodSeconds": {
|
||||||
|
"type": "integer"
|
||||||
|
},
|
||||||
"tolerations": {
|
"tolerations": {
|
||||||
"type": [
|
"type": [
|
||||||
"null",
|
"null",
|
||||||
|
@ -822,11 +899,17 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"enabled": {
|
"enabled": {
|
||||||
"type": "boolean"
|
"type": [
|
||||||
|
"boolean",
|
||||||
|
"string"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"externalPort": {
|
"externalPort": {
|
||||||
"type": "integer"
|
"type": "integer"
|
||||||
},
|
},
|
||||||
|
"externalTrafficPolicy": {
|
||||||
|
"type": "string"
|
||||||
|
},
|
||||||
"publishNotReadyAddresses": {
|
"publishNotReadyAddresses": {
|
||||||
"type": "boolean"
|
"type": "boolean"
|
||||||
},
|
},
|
||||||
|
|
133
values.yaml
133
values.yaml
|
@ -26,7 +26,8 @@ global:
|
||||||
|
|
||||||
injector:
|
injector:
|
||||||
# True if you want to enable vault agent injection.
|
# True if you want to enable vault agent injection.
|
||||||
enabled: true
|
# @default: global.enabled
|
||||||
|
enabled: "-"
|
||||||
|
|
||||||
replicas: 1
|
replicas: 1
|
||||||
|
|
||||||
|
@ -49,7 +50,7 @@ injector:
|
||||||
# image sets the repo and tag of the vault-k8s image to use for the injector.
|
# image sets the repo and tag of the vault-k8s image to use for the injector.
|
||||||
image:
|
image:
|
||||||
repository: "hashicorp/vault-k8s"
|
repository: "hashicorp/vault-k8s"
|
||||||
tag: "0.14.1"
|
tag: "0.14.2"
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
# agentImage sets the repo and tag of the Vault image to use for the Vault Agent
|
# agentImage sets the repo and tag of the Vault image to use for the Vault Agent
|
||||||
|
@ -57,7 +58,7 @@ injector:
|
||||||
# required.
|
# required.
|
||||||
agentImage:
|
agentImage:
|
||||||
repository: "hashicorp/vault"
|
repository: "hashicorp/vault"
|
||||||
tag: "1.9.0"
|
tag: "1.9.3"
|
||||||
|
|
||||||
# The default values for the injected Vault Agent containers.
|
# The default values for the injected Vault Agent containers.
|
||||||
agentDefaults:
|
agentDefaults:
|
||||||
|
@ -90,6 +91,61 @@ injector:
|
||||||
# Configures all Vault Agent sidecars to revoke their token when shutting down
|
# Configures all Vault Agent sidecars to revoke their token when shutting down
|
||||||
revokeOnShutdown: false
|
revokeOnShutdown: false
|
||||||
|
|
||||||
|
webhook:
|
||||||
|
# Configures failurePolicy of the webhook. The "unspecified" default behaviour depends on the
|
||||||
|
# API Version of the WebHook.
|
||||||
|
# To block pod creation while webhook is unavailable, set the policy to `Fail` below.
|
||||||
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy
|
||||||
|
#
|
||||||
|
failurePolicy: Ignore
|
||||||
|
|
||||||
|
# matchPolicy specifies the approach to accepting changes based on the rules of
|
||||||
|
# the MutatingWebhookConfiguration.
|
||||||
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-matchpolicy
|
||||||
|
# for more details.
|
||||||
|
#
|
||||||
|
matchPolicy: Exact
|
||||||
|
|
||||||
|
# timeoutSeconds is the amount of seconds before the webhook request will be ignored
|
||||||
|
# or fails.
|
||||||
|
# If it is ignored or fails depends on the failurePolicy
|
||||||
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#timeouts
|
||||||
|
# for more details.
|
||||||
|
#
|
||||||
|
timeoutSeconds: 30
|
||||||
|
|
||||||
|
# namespaceSelector is the selector for restricting the webhook to only
|
||||||
|
# specific namespaces.
|
||||||
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector
|
||||||
|
# for more details.
|
||||||
|
# Example:
|
||||||
|
# namespaceSelector:
|
||||||
|
# matchLabels:
|
||||||
|
# sidecar-injector: enabled
|
||||||
|
namespaceSelector: {}
|
||||||
|
|
||||||
|
# objectSelector is the selector for restricting the webhook to only
|
||||||
|
# specific labels.
|
||||||
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector
|
||||||
|
# for more details.
|
||||||
|
# Example:
|
||||||
|
# objectSelector:
|
||||||
|
# matchLabels:
|
||||||
|
# vault-sidecar-injector: enabled
|
||||||
|
objectSelector: {}
|
||||||
|
|
||||||
|
# Extra annotations to attach to the webhook
|
||||||
|
annotations: {}
|
||||||
|
|
||||||
|
# Deprecated: please use 'webhook.failurePolicy' instead
|
||||||
|
# Configures failurePolicy of the webhook. The "unspecified" default behaviour depends on the
|
||||||
|
# API Version of the WebHook.
|
||||||
|
# To block pod creation while webhook is unavailable, set the policy to `Fail` below.
|
||||||
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy
|
||||||
|
#
|
||||||
|
failurePolicy: Ignore
|
||||||
|
|
||||||
|
# Deprecated: please use 'webhook.namespaceSelector' instead
|
||||||
# namespaceSelector is the selector for restricting the webhook to only
|
# namespaceSelector is the selector for restricting the webhook to only
|
||||||
# specific namespaces.
|
# specific namespaces.
|
||||||
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-namespaceselector
|
||||||
|
@ -99,6 +155,8 @@ injector:
|
||||||
# matchLabels:
|
# matchLabels:
|
||||||
# sidecar-injector: enabled
|
# sidecar-injector: enabled
|
||||||
namespaceSelector: {}
|
namespaceSelector: {}
|
||||||
|
|
||||||
|
# Deprecated: please use 'webhook.objectSelector' instead
|
||||||
# objectSelector is the selector for restricting the webhook to only
|
# objectSelector is the selector for restricting the webhook to only
|
||||||
# specific labels.
|
# specific labels.
|
||||||
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector
|
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#matching-requests-objectselector
|
||||||
|
@ -109,13 +167,7 @@ injector:
|
||||||
# vault-sidecar-injector: enabled
|
# vault-sidecar-injector: enabled
|
||||||
objectSelector: {}
|
objectSelector: {}
|
||||||
|
|
||||||
# Configures failurePolicy of the webhook. The "unspecified" default behaviour deoends on the
|
# Deprecated: please use 'webhook.annotations' instead
|
||||||
# API Version of the WebHook.
|
|
||||||
# To block pod creation while webhook is unavailable, set the policy to `Fail` below.
|
|
||||||
# See https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/#failure-policy
|
|
||||||
#
|
|
||||||
failurePolicy: Ignore
|
|
||||||
|
|
||||||
# Extra annotations to attach to the webhook
|
# Extra annotations to attach to the webhook
|
||||||
webhookAnnotations: {}
|
webhookAnnotations: {}
|
||||||
|
|
||||||
|
@ -205,9 +257,25 @@ injector:
|
||||||
# Extra annotations to attach to the injector service
|
# Extra annotations to attach to the injector service
|
||||||
annotations: {}
|
annotations: {}
|
||||||
|
|
||||||
|
# A disruption budget limits the number of pods of a replicated application
|
||||||
|
# that are down simultaneously from voluntary disruptions
|
||||||
|
podDisruptionBudget: {}
|
||||||
|
# podDisruptionBudget:
|
||||||
|
# maxUnavailable: 1
|
||||||
|
|
||||||
|
# strategy for updating the deployment. This can be a multi-line string or a
|
||||||
|
# YAML map.
|
||||||
|
strategy: {}
|
||||||
|
# strategy: |
|
||||||
|
# rollingUpdate:
|
||||||
|
# maxSurge: 25%
|
||||||
|
# maxUnavailable: 25%
|
||||||
|
# type: RollingUpdate
|
||||||
|
|
||||||
server:
|
server:
|
||||||
# If not set to true, Vault server will not be installed. See vault.mode in _helpers.tpl for implementation details
|
# If true, or "-" with global.enabled true, Vault server will be installed.
|
||||||
enabled: true
|
# See vault.mode in _helpers.tpl for implementation details.
|
||||||
|
enabled: "-"
|
||||||
|
|
||||||
# [Enterprise Only] This value refers to a Kubernetes secret that you have
|
# [Enterprise Only] This value refers to a Kubernetes secret that you have
|
||||||
# created that contains your enterprise license. If you are not using an
|
# created that contains your enterprise license. If you are not using an
|
||||||
|
@ -227,7 +295,7 @@ server:
|
||||||
|
|
||||||
image:
|
image:
|
||||||
repository: "hashicorp/vault"
|
repository: "hashicorp/vault"
|
||||||
tag: "1.9.0"
|
tag: "1.9.3"
|
||||||
# Overrides the default Image Pull Policy
|
# Overrides the default Image Pull Policy
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
|
@ -296,7 +364,7 @@ server:
|
||||||
# - chart-example.local
|
# - chart-example.local
|
||||||
|
|
||||||
# OpenShift only - create a route to expose the service
|
# OpenShift only - create a route to expose the service
|
||||||
# The created route will be of type passthrough
|
# By default the created route will be of type passthrough
|
||||||
route:
|
route:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|
||||||
|
@ -307,6 +375,11 @@ server:
|
||||||
labels: {}
|
labels: {}
|
||||||
annotations: {}
|
annotations: {}
|
||||||
host: chart-example.local
|
host: chart-example.local
|
||||||
|
# tls will be passed directly to the route's TLS config, which
|
||||||
|
# can be used to configure other termination methods that terminate
|
||||||
|
# TLS at the router
|
||||||
|
tls:
|
||||||
|
termination: passthrough
|
||||||
|
|
||||||
# authDelegator enables a cluster role binding to be attached to the service
|
# authDelegator enables a cluster role binding to be attached to the service
|
||||||
# account. This cluster role binding can be used to setup Kubernetes auth
|
# account. This cluster role binding can be used to setup Kubernetes auth
|
||||||
|
@ -374,6 +447,10 @@ server:
|
||||||
# Number of seconds after which the probe times out.
|
# Number of seconds after which the probe times out.
|
||||||
timeoutSeconds: 3
|
timeoutSeconds: 3
|
||||||
|
|
||||||
|
# Optional duration in seconds the pod needs to terminate gracefully.
|
||||||
|
# See: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
|
||||||
|
terminationGracePeriodSeconds: 10
|
||||||
|
|
||||||
# Used to set the sleep time during the preStop step
|
# Used to set the sleep time during the preStop step
|
||||||
preStopSleepSeconds: 5
|
preStopSleepSeconds: 5
|
||||||
|
|
||||||
|
@ -494,6 +571,9 @@ server:
|
||||||
# or NodePort.
|
# or NodePort.
|
||||||
#type: ClusterIP
|
#type: ClusterIP
|
||||||
|
|
||||||
|
# Do not wait for pods to be ready
|
||||||
|
publishNotReadyAddresses: true
|
||||||
|
|
||||||
# The externalTrafficPolicy can be set to either Cluster or Local
|
# The externalTrafficPolicy can be set to either Cluster or Local
|
||||||
# and is only valid for LoadBalancer and NodePort service types.
|
# and is only valid for LoadBalancer and NodePort service types.
|
||||||
# The default value is Cluster.
|
# The default value is Cluster.
|
||||||
|
@ -531,7 +611,7 @@ server:
|
||||||
annotations: {}
|
annotations: {}
|
||||||
|
|
||||||
# This configures the Vault Statefulset to create a PVC for audit
|
# This configures the Vault Statefulset to create a PVC for audit
|
||||||
# logs. Once Vault is deployed, initialized and unseal, Vault must
|
# logs. Once Vault is deployed, initialized and unsealed, Vault must
|
||||||
# be configured to use this for audit logs. This will be mounted to
|
# be configured to use this for audit logs. This will be mounted to
|
||||||
# /vault/audit
|
# /vault/audit
|
||||||
# See https://www.vaultproject.io/docs/audit/index.html to know more
|
# See https://www.vaultproject.io/docs/audit/index.html to know more
|
||||||
|
@ -612,6 +692,11 @@ server:
|
||||||
# If set to null, this will be set to the Pod IP Address
|
# If set to null, this will be set to the Pod IP Address
|
||||||
apiAddr: null
|
apiAddr: null
|
||||||
|
|
||||||
|
# Set the cluster_addr confuguration for Vault HA
|
||||||
|
# See https://www.vaultproject.io/docs/configuration#cluster_addr
|
||||||
|
# If set to null, this will be set to https://$(HOSTNAME).{{ template "vault.fullname" . }}-internal:8201
|
||||||
|
clusterAddr: null
|
||||||
|
|
||||||
# Enables Vault's integrated Raft storage. Unlike the typical HA modes where
|
# Enables Vault's integrated Raft storage. Unlike the typical HA modes where
|
||||||
# Vault's persistence is external (such as Consul), enabling Raft mode will create
|
# Vault's persistence is external (such as Consul), enabling Raft mode will create
|
||||||
# persistent volumes for Vault to store data according to the configuration under server.dataStorage.
|
# persistent volumes for Vault to store data according to the configuration under server.dataStorage.
|
||||||
|
@ -752,7 +837,7 @@ csi:
|
||||||
|
|
||||||
image:
|
image:
|
||||||
repository: "hashicorp/vault-csi-provider"
|
repository: "hashicorp/vault-csi-provider"
|
||||||
tag: "0.3.0"
|
tag: "1.1.0"
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
# volumes is a list of volumes made available to all containers. These are rendered
|
# volumes is a list of volumes made available to all containers. These are rendered
|
||||||
|
@ -793,6 +878,9 @@ csi:
|
||||||
providersDir: "/etc/kubernetes/secrets-store-csi-providers"
|
providersDir: "/etc/kubernetes/secrets-store-csi-providers"
|
||||||
# Kubelet host path
|
# Kubelet host path
|
||||||
kubeletRootDir: "/var/lib/kubelet"
|
kubeletRootDir: "/var/lib/kubelet"
|
||||||
|
# Extra labels to attach to the vault-csi-provider daemonSet
|
||||||
|
# This should be a YAML map of the labels to apply to the csi provider daemonSet
|
||||||
|
extraLabels: {}
|
||||||
|
|
||||||
pod:
|
pod:
|
||||||
# Extra annotations for the provider pods. This can either be YAML or a
|
# Extra annotations for the provider pods. This can either be YAML or a
|
||||||
|
@ -805,12 +893,25 @@ csi:
|
||||||
# in a PodSpec.
|
# in a PodSpec.
|
||||||
tolerations: []
|
tolerations: []
|
||||||
|
|
||||||
|
# Extra labels to attach to the vault-csi-provider pod
|
||||||
|
# This should be a YAML map of the labels to apply to the csi provider pod
|
||||||
|
extraLabels: {}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# Priority class for csi pods
|
||||||
|
priorityClassName: ""
|
||||||
|
|
||||||
serviceAccount:
|
serviceAccount:
|
||||||
# Extra annotations for the serviceAccount definition. This can either be
|
# Extra annotations for the serviceAccount definition. This can either be
|
||||||
# YAML or a YAML-formatted multi-line templated string map of the
|
# YAML or a YAML-formatted multi-line templated string map of the
|
||||||
# annotations to apply to the serviceAccount.
|
# annotations to apply to the serviceAccount.
|
||||||
annotations: {}
|
annotations: {}
|
||||||
|
|
||||||
|
# Extra labels to attach to the vault-csi-provider serviceAccount
|
||||||
|
# This should be a YAML map of the labels to apply to the csi provider serviceAccount
|
||||||
|
extraLabels: {}
|
||||||
|
|
||||||
# Used to configure readinessProbe for the pods.
|
# Used to configure readinessProbe for the pods.
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
# When a probe fails, Kubernetes will try failureThreshold times before giving up
|
# When a probe fails, Kubernetes will try failureThreshold times before giving up
|
||||||
|
|
Loading…
Reference in a new issue