UpstreamAuthority cert-manager support (#82)
This commit is contained in:
@@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Issuer
|
||||||
|
metadata:
|
||||||
|
name: selfsigned-issuer
|
||||||
|
spec:
|
||||||
|
selfSigned: {}
|
||||||
|
---
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: demo-selfsigned-ca
|
||||||
|
spec:
|
||||||
|
isCA: true
|
||||||
|
commonName: demo-selfsigned-ca
|
||||||
|
secretName: root-secret
|
||||||
|
privateKey:
|
||||||
|
algorithm: ECDSA
|
||||||
|
size: 256
|
||||||
|
issuerRef:
|
||||||
|
name: selfsigned-issuer
|
||||||
|
kind: Issuer
|
||||||
|
group: cert-manager.io
|
||||||
|
---
|
||||||
|
apiVersion: cert-manager.io/v1
|
||||||
|
kind: Issuer
|
||||||
|
metadata:
|
||||||
|
name: demo-ca
|
||||||
|
spec:
|
||||||
|
ca:
|
||||||
|
secretName: root-secret
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
helm install cert-manager cert-manager --namespace cert-manager --create-namespace --version v1.11.0 --set installCRDs=true --repo https://charts.jetstack.io --wait
|
||||||
|
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
|
||||||
|
kubectl apply -f $SCRIPT_DIR/cert-manager-ca.yaml -n "$VALUES"
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
spire-server:
|
||||||
|
upstreamAuthority:
|
||||||
|
certManager:
|
||||||
|
enabled: true
|
||||||
|
issuer_name: "demo-ca"
|
||||||
@@ -151,7 +151,15 @@ jobs:
|
|||||||
|
|
||||||
- name: Run chart-testing (install)
|
- name: Run chart-testing (install)
|
||||||
run: |
|
run: |
|
||||||
|
[ "$VALUES" != "default" ] && kubectl create namespace "$VALUES"
|
||||||
|
post-install() {
|
||||||
|
[ -x .github/tests/$VALUES/post-install.sh ] && .github/tests/$VALUES/post-install.sh
|
||||||
|
exit $1
|
||||||
|
}
|
||||||
|
trap 'post-install $? $LINENO' EXIT
|
||||||
|
[ -x .github/tests/$VALUES/pre-install.sh ] && .github/tests/$VALUES/pre-install.sh
|
||||||
ct install --debug \
|
ct install --debug \
|
||||||
|
--namespace $VALUES \
|
||||||
--target-branch ${{ github.base_ref }} \
|
--target-branch ${{ github.base_ref }} \
|
||||||
--exclude-deprecated \
|
--exclude-deprecated \
|
||||||
${{ (matrix.values != 'default' && '--helm-extra-set-args "--values=.github/tests/$VALUES/values.yaml"') || '' }}
|
${{ (matrix.values != 'default' && '--helm-extra-set-args "--values=.github/tests/$VALUES/values.yaml"') || '' }}
|
||||||
|
|||||||
@@ -78,6 +78,13 @@ A Helm chart to install the SPIRE server.
|
|||||||
| tolerations | list | `[]` | |
|
| tolerations | list | `[]` | |
|
||||||
| topologySpreadConstraints | list | `[]` | |
|
| topologySpreadConstraints | list | `[]` | |
|
||||||
| trustDomain | string | `"example.org"` | |
|
| trustDomain | string | `"example.org"` | |
|
||||||
|
| upstreamAuthority.certManager.enabled | bool | `false` | |
|
||||||
|
| upstreamAuthority.certManager.issuer_group | string | `"cert-manager.io"` | |
|
||||||
|
| upstreamAuthority.certManager.issuer_kind | string | `"Issuer"` | |
|
||||||
|
| upstreamAuthority.certManager.issuer_name | string | `"spire-ca"` | |
|
||||||
|
| upstreamAuthority.certManager.kube_config_file | string | `""` | |
|
||||||
|
| upstreamAuthority.certManager.namespace | string | `""` | Specify to use a namespace other then the one the chart is installed into |
|
||||||
|
| upstreamAuthority.certManager.rbac.create | bool | `true` | |
|
||||||
| upstreamAuthority.disk.enabled | bool | `false` | |
|
| upstreamAuthority.disk.enabled | bool | `false` | |
|
||||||
| upstreamAuthority.disk.secret.create | bool | `true` | If disabled requires you to create a secret with the given keys (certificate, key and optional bundle) yourself. |
|
| upstreamAuthority.disk.secret.create | bool | `true` | If disabled requires you to create a secret with the given keys (certificate, key and optional bundle) yourself. |
|
||||||
| upstreamAuthority.disk.secret.data | object | `{"bundle":"","certificate":"","key":""}` | If secret creation is enabled, will create a secret with following certificate info |
|
| upstreamAuthority.disk.secret.data | object | `{"bundle":"","certificate":"","key":""}` | If secret creation is enabled, will create a secret with following certificate info |
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
{{ $namespace := .Release.Namespace }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ConfigMap
|
kind: ConfigMap
|
||||||
metadata:
|
metadata:
|
||||||
@@ -71,6 +72,22 @@ data:
|
|||||||
}
|
}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
{{- with .Values.upstreamAuthority.certManager }}
|
||||||
|
{{- if eq (.enabled | toString) "true" }}
|
||||||
|
UpstreamAuthority "cert-manager" {
|
||||||
|
plugin_data {
|
||||||
|
issuer_name = {{ .issuer_name | quote }}
|
||||||
|
issuer_kind = {{ .issuer_kind | quote }}
|
||||||
|
issuer_group = {{ .issuer_group | quote }}
|
||||||
|
namespace = {{ default $namespace .namespace | quote }}
|
||||||
|
{{- if ne .kube_config_file "" }}
|
||||||
|
kube_config_file = {{ .kube_config_file | quote }}
|
||||||
|
{{- end }}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
}
|
}
|
||||||
|
|
||||||
health_checks {
|
health_checks {
|
||||||
|
|||||||
@@ -18,6 +18,18 @@ rules:
|
|||||||
verbs:
|
verbs:
|
||||||
- get
|
- get
|
||||||
- patch
|
- patch
|
||||||
|
{{- if and .Values.upstreamAuthority.certManager.enabled .Values.upstreamAuthority.certManager.rbac.create }}
|
||||||
|
- apiGroups: ["cert-manager.io"]
|
||||||
|
resources:
|
||||||
|
- certificaterequests
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- get
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- patch
|
||||||
|
- update
|
||||||
|
{{- end }}
|
||||||
---
|
---
|
||||||
kind: RoleBinding
|
kind: RoleBinding
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
|||||||
@@ -104,6 +104,16 @@ upstreamAuthority:
|
|||||||
certificate: ""
|
certificate: ""
|
||||||
key: ""
|
key: ""
|
||||||
bundle: ""
|
bundle: ""
|
||||||
|
certManager:
|
||||||
|
enabled: false
|
||||||
|
rbac:
|
||||||
|
create: true
|
||||||
|
issuer_name: "spire-ca"
|
||||||
|
issuer_kind: "Issuer"
|
||||||
|
issuer_group: "cert-manager.io"
|
||||||
|
# -- Specify to use a namespace other then the one the chart is installed into
|
||||||
|
namespace: ""
|
||||||
|
kube_config_file: ""
|
||||||
|
|
||||||
controllerManager:
|
controllerManager:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
|||||||
Reference in New Issue
Block a user