Accept self-generated certificates
This commit is contained in:
parent
568bb08da7
commit
dcde25aec3
|
@ -3,4 +3,6 @@ old-helm
|
|||
old
|
||||
consignas.txt
|
||||
other
|
||||
*.tgz
|
||||
*.tgz
|
||||
*.crt
|
||||
*.key
|
|
@ -112,3 +112,27 @@ ingress:
|
|||
- api.kube.slc.ar
|
||||
```
|
||||
|
||||
|
||||
|
||||
----
|
||||
|
||||
|
||||
Se puede pasar certificados autogenerados en ingress.ssl.* PERO se debe notar las restricciones de helm de seguridad: solo se pueden usar archivos relativos al path del chart. Por lo tanto, si se desea usar un archivo de "afuera" se puede hacer un symbolic link. Por ejemplo: cd helm && ln -sf /usr/local/etc/ssl/certs/ca.crt ca.crt && ln -sf /usr/local/etc/ssl/private/ca.key ca.key. Y luego se puede pasar esos archivos al ingress.ssl.*.
|
||||
|
||||
Note que para que se usen estos secrets:
|
||||
1) si ya existía el secret-crt se debe borrar y hacer un helm upgrade
|
||||
2) si no existía con un install basta (o mismo un upgrade si ya estaba andando)
|
||||
|
||||
Por lo tanto, supongamos que se quieren actualizar los certificados por unos autogenerados por usted (y para actualizarlos una vez expirados los autogenerados por usted). Los pasos son los siguientes:
|
||||
|
||||
1) Borrar `exam-crt`
|
||||
2) Actualizar certificados
|
||||
3) Ponerlos en el values.yaml de haberse modificado el path o si antes se usaba uno autogenerado por helm
|
||||
4) Hacer upgrade
|
||||
|
||||
Si se quiere actualizar los autogenerados por helm los pasos son:
|
||||
|
||||
1) Borrar `exam-crt`
|
||||
2) Hacer upgrade
|
||||
|
||||
Note que si se hace un upgrade solo NO se regenerará el exam-crt. Esto es esperado ya que sino cada vez que modificamos algo se estará autogenerando un nuevo certificado!!
|
|
@ -65,7 +65,7 @@ Create the name of the service account to use
|
|||
Return true if a TLS secret should be created
|
||||
*/}}
|
||||
{{- define "exam.createTlsSecret" -}}
|
||||
{{- if .Values.ingress.ssl -}}
|
||||
{{- if and .Values.ingress.ssl.enabled (not .Values.ingress.ssl.cert) -}}
|
||||
{{- true -}}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
||||
|
|
|
@ -24,7 +24,7 @@ spec:
|
|||
{{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
|
||||
ingressClassName: {{ .Values.ingress.className }}
|
||||
{{- end }}
|
||||
{{- if and (include "exam.createTlsSecret" . ) .Values.ingress.tls }}
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.tls }}
|
||||
- hosts:
|
||||
|
|
|
@ -11,23 +11,25 @@ data:
|
|||
{{- end }}
|
||||
type: Opaque
|
||||
---
|
||||
{{- if (include "exam.createTlsSecret" . ) }}
|
||||
{{- if .Values.ingress.ssl.enabled }}
|
||||
{{- $secretName := printf "%s-crt" (include "exam.fullname" .) }}
|
||||
{{- $ca := genCA "ingress-ca" 365 }}
|
||||
{{- $fullname := (include "exam.host" . ) }}
|
||||
{{- $cert := genSignedCert $fullname nil nil 365 $ca }}
|
||||
apiVersion: v1
|
||||
kind: Secret
|
||||
metadata:
|
||||
name: {{ $secretName }}
|
||||
labels:
|
||||
{{- include "exam.labels" . | nindent 4 }}
|
||||
annotations:
|
||||
"helm.sh/hook": "pre-install"
|
||||
"helm.sh/hook-delete-policy": "before-hook-creation"
|
||||
type: kubernetes.io/tls
|
||||
data:
|
||||
{{- if (include "exam.createTlsSecret" . ) }}
|
||||
{{- $ca := genCA "ingress-ca" 365 }}
|
||||
{{- $fullname := (include "exam.host" . ) }}
|
||||
{{- $cert := genSignedCert $fullname nil nil 365 $ca }}
|
||||
tls.crt: {{ include "exam.lookup" (dict "secret" $secretName "key" "tls.crt" "defaultValue" $cert.Cert "context" $) }}
|
||||
tls.key: {{ include "exam.lookup" (dict "secret" $secretName "key" "tls.key" "defaultValue" $cert.Key "context" $) }}
|
||||
ca.crt: {{ include "exam.lookup" (dict "secret" $secretName "key" "ca.crt" "defaultValue" $ca.Cert "context" $) }}
|
||||
{{- else }}
|
||||
tls.crt: {{ .Files.Get $.Values.ingress.ssl.cert | b64enc | quote }}
|
||||
tls.key: {{ .Files.Get $.Values.ingress.ssl.key | b64enc | quote }}
|
||||
{{- end }}
|
||||
{{- end }}
|
|
@ -14,7 +14,10 @@ shared:
|
|||
tier: &clientTier "frontend"
|
||||
|
||||
ingress:
|
||||
ssl: true
|
||||
ssl:
|
||||
enabled: true
|
||||
# cert: ca.crt
|
||||
# key: ca.key
|
||||
annotations:
|
||||
nginx.ingress.kubernetes.io/rewrite-target: /$2
|
||||
nginx.ingress.kubernetes.io/ssl-redirect: "true"
|
||||
|
|
2
run.sh
2
run.sh
|
@ -77,7 +77,7 @@ fi
|
|||
|
||||
$START_MINIKUBE && minikube addons enable ingress
|
||||
|
||||
helm dependency build helm
|
||||
helm dependency list helm | grep -q "missing" && helm dependency build helm
|
||||
|
||||
if [ "$fluentd" == true ] || [ "$fluentd" == "y" ] || [ "$fluentd" == "Y" ]; then
|
||||
VALUES=("-f" "helm/values.yaml" "-f" "helm/fluentd.yaml")
|
||||
|
|
Loading…
Reference in New Issue