Feat/cacerts (#619)
This commit is contained in:
parent
3e5c82c229
commit
e8ab0c6ded
105
.ci/clusters/values-cacerts.yaml
Normal file
105
.ci/clusters/values-cacerts.yaml
Normal file
@ -0,0 +1,105 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
# enable TLS with cacerts
|
||||||
|
tls:
|
||||||
|
enabled: true
|
||||||
|
proxy:
|
||||||
|
enabled: true
|
||||||
|
cacerts:
|
||||||
|
enabled: true
|
||||||
|
certs:
|
||||||
|
- name: common-cacert
|
||||||
|
existingSecret: "pulsar-ci-common-cacert"
|
||||||
|
secretKeys:
|
||||||
|
- ca.crt
|
||||||
|
broker:
|
||||||
|
enabled: true
|
||||||
|
cacerts:
|
||||||
|
enabled: true
|
||||||
|
certs:
|
||||||
|
- name: common-cacert
|
||||||
|
existingSecret: "pulsar-ci-common-cacert"
|
||||||
|
secretKeys:
|
||||||
|
- ca.crt
|
||||||
|
bookie:
|
||||||
|
enabled: true
|
||||||
|
cacerts:
|
||||||
|
enabled: true
|
||||||
|
certs:
|
||||||
|
- name: common-cacert
|
||||||
|
existingSecret: "pulsar-ci-common-cacert"
|
||||||
|
secretKeys:
|
||||||
|
- ca.crt
|
||||||
|
zookeeper:
|
||||||
|
enabled: true
|
||||||
|
cacerts:
|
||||||
|
enabled: true
|
||||||
|
certs:
|
||||||
|
- name: common-cacert
|
||||||
|
existingSecret: "pulsar-ci-common-cacert"
|
||||||
|
secretKeys:
|
||||||
|
- ca.crt
|
||||||
|
toolset:
|
||||||
|
cacerts:
|
||||||
|
enabled: true
|
||||||
|
certs:
|
||||||
|
- name: common-cacert
|
||||||
|
existingSecret: "pulsar-ci-common-cacert"
|
||||||
|
secretKeys:
|
||||||
|
- ca.crt
|
||||||
|
autorecovery:
|
||||||
|
cacerts:
|
||||||
|
enabled: true
|
||||||
|
certs:
|
||||||
|
- name: common-cacert
|
||||||
|
existingSecret: "pulsar-ci-common-cacert"
|
||||||
|
secretKeys:
|
||||||
|
- ca.crt
|
||||||
|
|
||||||
|
# enable cert-manager
|
||||||
|
certs:
|
||||||
|
internal_issuer:
|
||||||
|
enabled: true
|
||||||
|
type: selfsigning
|
||||||
|
|
||||||
|
# deploy cacerts
|
||||||
|
extraDeploy:
|
||||||
|
- |
|
||||||
|
apiVersion: "{{ .Values.certs.internal_issuer.apiVersion }}"
|
||||||
|
kind: Certificate
|
||||||
|
metadata:
|
||||||
|
name: "{{ template "pulsar.fullname" . }}-common-cacert"
|
||||||
|
namespace: {{ template "pulsar.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
secretName: "{{ template "pulsar.fullname" . }}-common-cacert"
|
||||||
|
commonName: "common-cacert"
|
||||||
|
duration: "{{ .Values.certs.internal_issuer.duration }}"
|
||||||
|
renewBefore: "{{ .Values.certs.internal_issuer.renewBefore }}"
|
||||||
|
usages:
|
||||||
|
- server auth
|
||||||
|
- client auth
|
||||||
|
isCA: true
|
||||||
|
issuerRef:
|
||||||
|
name: "{{ template "pulsar.fullname" . }}-{{ .Values.certs.internal_issuer.component }}"
|
||||||
|
kind: Issuer
|
||||||
|
group: cert-manager.io
|
||||||
3
.github/workflows/pulsar-helm-chart-ci.yaml
vendored
3
.github/workflows/pulsar-helm-chart-ci.yaml
vendored
@ -233,6 +233,9 @@ jobs:
|
|||||||
- name: OpenID
|
- name: OpenID
|
||||||
values_file: .ci/clusters/values-openid.yaml
|
values_file: .ci/clusters/values-openid.yaml
|
||||||
shortname: openid
|
shortname: openid
|
||||||
|
- name: CA certificates
|
||||||
|
values_file: .ci/clusters/values-cacerts.yaml
|
||||||
|
shortname: cacerts
|
||||||
include:
|
include:
|
||||||
- k8sVersion:
|
- k8sVersion:
|
||||||
version: "1.25.16"
|
version: "1.25.16"
|
||||||
|
|||||||
@ -36,7 +36,7 @@ Define autorecovery zookeeper client tls settings
|
|||||||
*/}}
|
*/}}
|
||||||
{{- define "pulsar.autorecovery.zookeeper.tls.settings" -}}
|
{{- define "pulsar.autorecovery.zookeeper.tls.settings" -}}
|
||||||
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }}
|
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }}
|
||||||
{{- include "pulsar.component.zookeeper.tls.settings" (dict "component" "autorecovery" "isClient" true) -}}
|
{{- include "pulsar.component.zookeeper.tls.settings" (dict "component" "autorecovery" "isClient" true "isCacerts" .Values.tls.autorecovery.cacerts.enabled) -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
@ -52,6 +52,21 @@ Define autorecovery tls certs mounts
|
|||||||
mountPath: "/pulsar/certs/ca"
|
mountPath: "/pulsar/certs/ca"
|
||||||
readOnly: true
|
readOnly: true
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.tls.autorecovery.cacerts.enabled }}
|
||||||
|
- mountPath: "/pulsar/certs/cacerts"
|
||||||
|
name: autorecovery-cacerts
|
||||||
|
{{- range $cert := .Values.tls.autorecovery.cacerts.certs }}
|
||||||
|
- name: {{ $cert.name }}
|
||||||
|
mountPath: "/pulsar/certs/{{ $cert.name }}"
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
- name: certs-scripts
|
||||||
|
mountPath: "/pulsar/bin/certs-combine-pem.sh"
|
||||||
|
subPath: certs-combine-pem.sh
|
||||||
|
- name: certs-scripts
|
||||||
|
mountPath: "/pulsar/bin/certs-combine-pem-infinity.sh"
|
||||||
|
subPath: certs-combine-pem-infinity.sh
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
@ -76,6 +91,24 @@ Define autorecovery tls certs volumes
|
|||||||
- key: ca.crt
|
- key: ca.crt
|
||||||
path: ca.crt
|
path: ca.crt
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.tls.autorecovery.cacerts.enabled }}
|
||||||
|
- name: autorecovery-cacerts
|
||||||
|
emptyDir: {}
|
||||||
|
{{- range $cert := .Values.tls.autorecovery.cacerts.certs }}
|
||||||
|
- name: {{ $cert.name }}
|
||||||
|
secret:
|
||||||
|
secretName: "{{ $cert.existingSecret }}"
|
||||||
|
items:
|
||||||
|
{{- range $key := $cert.secretKeys }}
|
||||||
|
- key: {{ $key }}
|
||||||
|
path: {{ $key }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
- name: certs-scripts
|
||||||
|
configMap:
|
||||||
|
name: "{{ template "pulsar.fullname" . }}-certs-scripts"
|
||||||
|
defaultMode: 0755
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
|
|||||||
@ -37,7 +37,7 @@ Define bookie zookeeper client tls settings
|
|||||||
*/}}
|
*/}}
|
||||||
{{- define "pulsar.bookkeeper.zookeeper.tls.settings" -}}
|
{{- define "pulsar.bookkeeper.zookeeper.tls.settings" -}}
|
||||||
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }}
|
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }}
|
||||||
{{- include "pulsar.component.zookeeper.tls.settings" (dict "component" "bookie" "isClient" true) -}}
|
{{- include "pulsar.component.zookeeper.tls.settings" (dict "component" "bookie" "isClient" true "isCacerts" .Values.tls.bookie.cacerts.enabled) -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
@ -45,21 +45,39 @@ Define bookie zookeeper client tls settings
|
|||||||
Define bookie tls certs mounts
|
Define bookie tls certs mounts
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "pulsar.bookkeeper.certs.volumeMounts" -}}
|
{{- define "pulsar.bookkeeper.certs.volumeMounts" -}}
|
||||||
{{- if and .Values.tls.enabled (or .Values.tls.bookie.enabled .Values.tls.zookeeper.enabled) }}
|
{{- if .Values.tls.enabled }}
|
||||||
|
{{- if or .Values.tls.bookie.enabled .Values.tls.zookeeper.enabled }}
|
||||||
- name: bookie-certs
|
- name: bookie-certs
|
||||||
mountPath: "/pulsar/certs/bookie"
|
mountPath: "/pulsar/certs/bookie"
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
- name: ca
|
- name: ca
|
||||||
mountPath: "/pulsar/certs/ca"
|
mountPath: "/pulsar/certs/ca"
|
||||||
readOnly: true
|
readOnly: true
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.tls.bookie.cacerts.enabled }}
|
||||||
|
- mountPath: "/pulsar/certs/cacerts"
|
||||||
|
name: bookie-cacerts
|
||||||
|
{{- range $cert := .Values.tls.bookie.cacerts.certs }}
|
||||||
|
- name: {{ $cert.name }}
|
||||||
|
mountPath: "/pulsar/certs/{{ $cert.name }}"
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
- name: certs-scripts
|
||||||
|
mountPath: "/pulsar/bin/certs-combine-pem.sh"
|
||||||
|
subPath: certs-combine-pem.sh
|
||||||
|
- name: certs-scripts
|
||||||
|
mountPath: "/pulsar/bin/certs-combine-pem-infinity.sh"
|
||||||
|
subPath: certs-combine-pem-infinity.sh
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Define bookie tls certs volumes
|
Define bookie tls certs volumes
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "pulsar.bookkeeper.certs.volumes" -}}
|
{{- define "pulsar.bookkeeper.certs.volumes" -}}
|
||||||
{{- if and .Values.tls.enabled (or .Values.tls.bookie.enabled .Values.tls.zookeeper.enabled) }}
|
{{- if .Values.tls.enabled }}
|
||||||
|
{{- if or .Values.tls.bookie.enabled .Values.tls.zookeeper.enabled }}
|
||||||
- name: bookie-certs
|
- name: bookie-certs
|
||||||
secret:
|
secret:
|
||||||
secretName: "{{ .Release.Name }}-{{ .Values.tls.bookie.cert_name }}"
|
secretName: "{{ .Release.Name }}-{{ .Values.tls.bookie.cert_name }}"
|
||||||
@ -72,6 +90,7 @@ Define bookie tls certs volumes
|
|||||||
- key: tls-combined.pem
|
- key: tls-combined.pem
|
||||||
path: tls-combined.pem
|
path: tls-combined.pem
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
- name: ca
|
- name: ca
|
||||||
secret:
|
secret:
|
||||||
secretName: "{{ template "pulsar.certs.issuers.ca.secretName" . }}"
|
secretName: "{{ template "pulsar.certs.issuers.ca.secretName" . }}"
|
||||||
@ -79,6 +98,24 @@ Define bookie tls certs volumes
|
|||||||
- key: ca.crt
|
- key: ca.crt
|
||||||
path: ca.crt
|
path: ca.crt
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.tls.bookie.cacerts.enabled }}
|
||||||
|
- name: bookie-cacerts
|
||||||
|
emptyDir: {}
|
||||||
|
{{- range $cert := .Values.tls.bookie.cacerts.certs }}
|
||||||
|
- name: {{ $cert.name }}
|
||||||
|
secret:
|
||||||
|
secretName: "{{ $cert.existingSecret }}"
|
||||||
|
items:
|
||||||
|
{{- range $key := $cert.secretKeys }}
|
||||||
|
- key: {{ $key }}
|
||||||
|
path: {{ $key }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
- name: certs-scripts
|
||||||
|
configMap:
|
||||||
|
name: "{{ template "pulsar.fullname" . }}-certs-scripts"
|
||||||
|
defaultMode: 0755
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
@ -129,7 +166,7 @@ PULSAR_PREFIX_tlsCertificatePath: /pulsar/certs/bookie/tls.crt
|
|||||||
PULSAR_PREFIX_tlsKeyStoreType: PEM
|
PULSAR_PREFIX_tlsKeyStoreType: PEM
|
||||||
PULSAR_PREFIX_tlsKeyStore: /pulsar/certs/bookie/tls.key
|
PULSAR_PREFIX_tlsKeyStore: /pulsar/certs/bookie/tls.key
|
||||||
PULSAR_PREFIX_tlsTrustStoreType: PEM
|
PULSAR_PREFIX_tlsTrustStoreType: PEM
|
||||||
PULSAR_PREFIX_tlsTrustStore: /pulsar/certs/ca/ca.crt
|
PULSAR_PREFIX_tlsTrustStore: {{ ternary "/pulsar/certs/cacerts/ca-combined.pem" "/pulsar/certs/ca/ca.crt" .Values.tls.bookie.cacerts.enabled | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
|||||||
@ -43,7 +43,7 @@ Define broker zookeeper client tls settings
|
|||||||
*/}}
|
*/}}
|
||||||
{{- define "pulsar.broker.zookeeper.tls.settings" -}}
|
{{- define "pulsar.broker.zookeeper.tls.settings" -}}
|
||||||
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }}
|
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }}
|
||||||
{{- include "pulsar.component.zookeeper.tls.settings" (dict "component" "broker" "isClient" true) -}}
|
{{- include "pulsar.component.zookeeper.tls.settings" (dict "component" "broker" "isClient" true "isCacerts" .Values.tls.broker.cacerts.enabled) -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
@ -51,21 +51,39 @@ Define broker zookeeper client tls settings
|
|||||||
Define broker tls certs mounts
|
Define broker tls certs mounts
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "pulsar.broker.certs.volumeMounts" -}}
|
{{- define "pulsar.broker.certs.volumeMounts" -}}
|
||||||
{{- if and .Values.tls.enabled (or .Values.tls.broker.enabled (or .Values.tls.bookie.enabled .Values.tls.zookeeper.enabled)) }}
|
{{- if .Values.tls.enabled }}
|
||||||
|
{{- if or .Values.tls.broker.enabled (or .Values.tls.bookie.enabled .Values.tls.zookeeper.enabled) }}
|
||||||
- name: broker-certs
|
- name: broker-certs
|
||||||
mountPath: "/pulsar/certs/broker"
|
mountPath: "/pulsar/certs/broker"
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
- name: ca
|
- name: ca
|
||||||
mountPath: "/pulsar/certs/ca"
|
mountPath: "/pulsar/certs/ca"
|
||||||
readOnly: true
|
readOnly: true
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.tls.broker.cacerts.enabled }}
|
||||||
|
- mountPath: "/pulsar/certs/cacerts"
|
||||||
|
name: broker-cacerts
|
||||||
|
{{- range $cert := .Values.tls.broker.cacerts.certs }}
|
||||||
|
- name: {{ $cert.name }}
|
||||||
|
mountPath: "/pulsar/certs/{{ $cert.name }}"
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
- name: certs-scripts
|
||||||
|
mountPath: "/pulsar/bin/certs-combine-pem.sh"
|
||||||
|
subPath: certs-combine-pem.sh
|
||||||
|
- name: certs-scripts
|
||||||
|
mountPath: "/pulsar/bin/certs-combine-pem-infinity.sh"
|
||||||
|
subPath: certs-combine-pem-infinity.sh
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Define broker tls certs volumes
|
Define broker tls certs volumes
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "pulsar.broker.certs.volumes" -}}
|
{{- define "pulsar.broker.certs.volumes" -}}
|
||||||
{{- if and .Values.tls.enabled (or .Values.tls.broker.enabled (or .Values.tls.bookie.enabled .Values.tls.zookeeper.enabled)) }}
|
{{- if .Values.tls.enabled }}
|
||||||
|
{{- if or .Values.tls.broker.enabled (or .Values.tls.bookie.enabled .Values.tls.zookeeper.enabled) }}
|
||||||
- name: broker-certs
|
- name: broker-certs
|
||||||
secret:
|
secret:
|
||||||
secretName: "{{ .Release.Name }}-{{ .Values.tls.broker.cert_name }}"
|
secretName: "{{ .Release.Name }}-{{ .Values.tls.broker.cert_name }}"
|
||||||
@ -78,6 +96,7 @@ Define broker tls certs volumes
|
|||||||
- key: tls-combined.pem
|
- key: tls-combined.pem
|
||||||
path: tls-combined.pem
|
path: tls-combined.pem
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
- name: ca
|
- name: ca
|
||||||
secret:
|
secret:
|
||||||
secretName: "{{ template "pulsar.certs.issuers.ca.secretName" . }}"
|
secretName: "{{ template "pulsar.certs.issuers.ca.secretName" . }}"
|
||||||
@ -85,4 +104,22 @@ Define broker tls certs volumes
|
|||||||
- key: ca.crt
|
- key: ca.crt
|
||||||
path: ca.crt
|
path: ca.crt
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.tls.broker.cacerts.enabled }}
|
||||||
|
- name: broker-cacerts
|
||||||
|
emptyDir: {}
|
||||||
|
{{- range $cert := .Values.tls.broker.cacerts.certs }}
|
||||||
|
- name: {{ $cert.name }}
|
||||||
|
secret:
|
||||||
|
secretName: "{{ $cert.existingSecret }}"
|
||||||
|
items:
|
||||||
|
{{- range $key := $cert.secretKeys }}
|
||||||
|
- key: {{ $key }}
|
||||||
|
path: {{ $key }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
- name: certs-scripts
|
||||||
|
configMap:
|
||||||
|
name: "{{ template "pulsar.fullname" . }}-certs-scripts"
|
||||||
|
defaultMode: 0755
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@ -114,3 +114,19 @@ spec:
|
|||||||
# if you are using an external issuer, change this to that issuer group.
|
# if you are using an external issuer, change this to that issuer group.
|
||||||
group: cert-manager.io
|
group: cert-manager.io
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
CA certificates template
|
||||||
|
Usage: {{ include "pulsar.certs.cacerts" (dict "certs" .Values.tls.<component>.cacerts.certs) }}
|
||||||
|
*/}}
|
||||||
|
{{- define "pulsar.certs.cacerts" -}}
|
||||||
|
{{- $certs := .certs -}}
|
||||||
|
{{- $cacerts := list -}}
|
||||||
|
{{- $cacerts = print "/pulsar/certs/ca/ca.crt" | append $cacerts -}}
|
||||||
|
{{- range $cert := $certs -}}
|
||||||
|
{{- range $key := $cert.secretKeys -}}
|
||||||
|
{{- $cacerts = print "/pulsar/certs/" $cert.name "/" $key | append $cacerts -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{ join " " $cacerts }}
|
||||||
|
{{- end -}}
|
||||||
|
|||||||
95
charts/pulsar/templates/_proxy.tpl
Normal file
95
charts/pulsar/templates/_proxy.tpl
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
{{/*
|
||||||
|
Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
or more contributor license agreements. See the NOTICE file
|
||||||
|
distributed with this work for additional information
|
||||||
|
regarding copyright ownership. The ASF licenses this file
|
||||||
|
to you under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance
|
||||||
|
with the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing,
|
||||||
|
software distributed under the License is distributed on an
|
||||||
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, either express or implied. See the License for the
|
||||||
|
specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Define proxy tls certs mounts
|
||||||
|
*/}}
|
||||||
|
{{- define "pulsar.proxy.certs.volumeMounts" -}}
|
||||||
|
{{- if .Values.tls.enabled }}
|
||||||
|
{{- if .Values.tls.proxy.enabled }}
|
||||||
|
- mountPath: "/pulsar/certs/proxy"
|
||||||
|
name: proxy-certs
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
- mountPath: "/pulsar/certs/ca"
|
||||||
|
name: ca
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.tls.proxy.cacerts.enabled }}
|
||||||
|
- mountPath: "/pulsar/certs/cacerts"
|
||||||
|
name: proxy-cacerts
|
||||||
|
{{- range $cert := .Values.tls.proxy.cacerts.certs }}
|
||||||
|
- name: {{ $cert.name }}
|
||||||
|
mountPath: "/pulsar/certs/{{ $cert.name }}"
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
- name: certs-scripts
|
||||||
|
mountPath: "/pulsar/bin/certs-combine-pem.sh"
|
||||||
|
subPath: certs-combine-pem.sh
|
||||||
|
- name: certs-scripts
|
||||||
|
mountPath: "/pulsar/bin/certs-combine-pem-infinity.sh"
|
||||||
|
subPath: certs-combine-pem-infinity.sh
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Define proxy tls certs volumes
|
||||||
|
*/}}
|
||||||
|
{{- define "pulsar.proxy.certs.volumes" -}}
|
||||||
|
{{- if .Values.tls.enabled }}
|
||||||
|
{{- if .Values.tls.proxy.enabled }}
|
||||||
|
- name: proxy-certs
|
||||||
|
secret:
|
||||||
|
secretName: "{{ .Release.Name }}-{{ .Values.tls.proxy.cert_name }}"
|
||||||
|
items:
|
||||||
|
- key: tls.crt
|
||||||
|
path: tls.crt
|
||||||
|
- key: tls.key
|
||||||
|
path: tls.key
|
||||||
|
{{- if .Values.tls.zookeeper.enabled }}
|
||||||
|
- key: tls-combined.pem
|
||||||
|
path: tls-combined.pem
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
- name: ca
|
||||||
|
secret:
|
||||||
|
secretName: "{{ template "pulsar.certs.issuers.ca.secretName" . }}"
|
||||||
|
items:
|
||||||
|
- key: ca.crt
|
||||||
|
path: ca.crt
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.tls.proxy.cacerts.enabled }}
|
||||||
|
- name: proxy-cacerts
|
||||||
|
emptyDir: {}
|
||||||
|
{{- range $cert := .Values.tls.proxy.cacerts.certs }}
|
||||||
|
- name: {{ $cert.name }}
|
||||||
|
secret:
|
||||||
|
secretName: "{{ $cert.existingSecret }}"
|
||||||
|
items:
|
||||||
|
{{- range $key := $cert.secretKeys }}
|
||||||
|
- key: {{ $key }}
|
||||||
|
path: {{ $key }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
- name: certs-scripts
|
||||||
|
configMap:
|
||||||
|
name: "{{ template "pulsar.fullname" . }}-certs-scripts"
|
||||||
|
defaultMode: 0755
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@ -36,7 +36,7 @@ Define toolset zookeeper client tls settings
|
|||||||
*/}}
|
*/}}
|
||||||
{{- define "pulsar.toolset.zookeeper.tls.settings" -}}
|
{{- define "pulsar.toolset.zookeeper.tls.settings" -}}
|
||||||
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled -}}
|
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled -}}
|
||||||
{{- include "pulsar.component.zookeeper.tls.settings" (dict "component" "toolset" "isClient" true) -}}
|
{{- include "pulsar.component.zookeeper.tls.settings" (dict "component" "toolset" "isClient" true "isCacerts" .Values.tls.toolset.cacerts.enabled) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
@ -44,21 +44,39 @@ Define toolset zookeeper client tls settings
|
|||||||
Define toolset tls certs mounts
|
Define toolset tls certs mounts
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "pulsar.toolset.certs.volumeMounts" -}}
|
{{- define "pulsar.toolset.certs.volumeMounts" -}}
|
||||||
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }}
|
{{- if .Values.tls.enabled }}
|
||||||
|
{{- if .Values.tls.zookeeper.enabled }}
|
||||||
- name: toolset-certs
|
- name: toolset-certs
|
||||||
mountPath: "/pulsar/certs/toolset"
|
mountPath: "/pulsar/certs/toolset"
|
||||||
readOnly: true
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
- name: ca
|
- name: ca
|
||||||
mountPath: "/pulsar/certs/ca"
|
mountPath: "/pulsar/certs/ca"
|
||||||
readOnly: true
|
readOnly: true
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.tls.toolset.cacerts.enabled }}
|
||||||
|
- mountPath: "/pulsar/certs/cacerts"
|
||||||
|
name: toolset-cacerts
|
||||||
|
{{- range $cert := .Values.tls.toolset.cacerts.certs }}
|
||||||
|
- name: {{ $cert.name }}
|
||||||
|
mountPath: "/pulsar/certs/{{ $cert.name }}"
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
- name: certs-scripts
|
||||||
|
mountPath: "/pulsar/bin/certs-combine-pem.sh"
|
||||||
|
subPath: certs-combine-pem.sh
|
||||||
|
- name: certs-scripts
|
||||||
|
mountPath: "/pulsar/bin/certs-combine-pem-infinity.sh"
|
||||||
|
subPath: certs-combine-pem-infinity.sh
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
{{/*
|
{{/*
|
||||||
Define toolset tls certs volumes
|
Define toolset tls certs volumes
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "pulsar.toolset.certs.volumes" -}}
|
{{- define "pulsar.toolset.certs.volumes" -}}
|
||||||
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }}
|
{{- if .Values.tls.enabled }}
|
||||||
|
{{- if .Values.tls.zookeeper.enabled }}
|
||||||
- name: toolset-certs
|
- name: toolset-certs
|
||||||
secret:
|
secret:
|
||||||
secretName: "{{ .Release.Name }}-{{ .Values.tls.toolset.cert_name }}"
|
secretName: "{{ .Release.Name }}-{{ .Values.tls.toolset.cert_name }}"
|
||||||
@ -69,6 +87,7 @@ Define toolset tls certs volumes
|
|||||||
path: tls.key
|
path: tls.key
|
||||||
- key: tls-combined.pem
|
- key: tls-combined.pem
|
||||||
path: tls-combined.pem
|
path: tls-combined.pem
|
||||||
|
{{- end }}
|
||||||
- name: ca
|
- name: ca
|
||||||
secret:
|
secret:
|
||||||
secretName: "{{ template "pulsar.certs.issuers.ca.secretName" . }}"
|
secretName: "{{ template "pulsar.certs.issuers.ca.secretName" . }}"
|
||||||
@ -76,4 +95,22 @@ Define toolset tls certs volumes
|
|||||||
- key: ca.crt
|
- key: ca.crt
|
||||||
path: ca.crt
|
path: ca.crt
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.tls.toolset.cacerts.enabled }}
|
||||||
|
- name: toolset-cacerts
|
||||||
|
emptyDir: {}
|
||||||
|
{{- range $cert := .Values.tls.toolset.cacerts.certs }}
|
||||||
|
- name: {{ $cert.name }}
|
||||||
|
secret:
|
||||||
|
secretName: "{{ $cert.existingSecret }}"
|
||||||
|
items:
|
||||||
|
{{- range $key := $cert.secretKeys }}
|
||||||
|
- key: {{ $key }}
|
||||||
|
path: {{ $key }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
- name: certs-scripts
|
||||||
|
configMap:
|
||||||
|
name: "{{ template "pulsar.fullname" . }}-certs-scripts"
|
||||||
|
defaultMode: 0755
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
37
charts/pulsar/templates/_tplvalues.tpl
Normal file
37
charts/pulsar/templates/_tplvalues.tpl
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{{/*
|
||||||
|
Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
or more contributor license agreements. See the NOTICE file
|
||||||
|
distributed with this work for additional information
|
||||||
|
regarding copyright ownership. The ASF licenses this file
|
||||||
|
to you under the Apache License, Version 2.0 (the
|
||||||
|
"License"); you may not use this file except in compliance
|
||||||
|
with the License. You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing,
|
||||||
|
software distributed under the License is distributed on an
|
||||||
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
KIND, either express or implied. See the License for the
|
||||||
|
specific language governing permissions and limitations
|
||||||
|
under the License.
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Renders a value that contains template perhaps with scope if the scope is present.
|
||||||
|
Usage:
|
||||||
|
{{ include "common.tplvalues.render" ( dict "value" .Values.path.to.the.Value "context" $ ) }}
|
||||||
|
{{ include "common.tplvalues.render" ( dict "value" .Values.path.to.the.Value "context" $ "scope" $app ) }}
|
||||||
|
*/}}
|
||||||
|
{{- define "common.tplvalues.render" -}}
|
||||||
|
{{- $value := typeIs "string" .value | ternary .value (.value | toYaml) }}
|
||||||
|
{{- if contains "{{" (toJson .value) }}
|
||||||
|
{{- if .scope }}
|
||||||
|
{{- tpl (cat "{{- with $.RelativeScope -}}" $value "{{- end }}") (merge (dict "RelativeScope" .scope) .context) }}
|
||||||
|
{{- else }}
|
||||||
|
{{- tpl $value .context }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else }}
|
||||||
|
{{- $value }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
@ -53,7 +53,7 @@ Define zookeeper tls settings
|
|||||||
*/}}
|
*/}}
|
||||||
{{- define "pulsar.zookeeper.tls.settings" -}}
|
{{- define "pulsar.zookeeper.tls.settings" -}}
|
||||||
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }}
|
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }}
|
||||||
{{- include "pulsar.component.zookeeper.tls.settings" (dict "component" "zookeeper" "isClient" false) -}}
|
{{- include "pulsar.component.zookeeper.tls.settings" (dict "component" "zookeeper" "isClient" false "isCacerts" .Values.tls.zookeeper.cacerts.enabled) -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
@ -61,7 +61,7 @@ Define zookeeper tls settings
|
|||||||
{{- $component := .component -}}
|
{{- $component := .component -}}
|
||||||
{{- $isClient := .isClient -}}
|
{{- $isClient := .isClient -}}
|
||||||
{{- $keyFile := printf "/pulsar/certs/%s/tls-combined.pem" $component -}}
|
{{- $keyFile := printf "/pulsar/certs/%s/tls-combined.pem" $component -}}
|
||||||
{{- $caFile := "/pulsar/certs/ca/ca.crt" -}}
|
{{- $caFile := ternary "/pulsar/certs/cacerts/ca-combined.pem" "/pulsar/certs/ca/ca.crt" .isCacerts -}}
|
||||||
{{- if $isClient }}
|
{{- if $isClient }}
|
||||||
echo $'\n' >> conf/pulsar_env.sh
|
echo $'\n' >> conf/pulsar_env.sh
|
||||||
echo "PULSAR_EXTRA_OPTS=\"\${PULSAR_EXTRA_OPTS} -Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty -Dzookeeper.client.secure=true -Dzookeeper.client.certReload=true -Dzookeeper.ssl.keyStore.location={{- $keyFile }} -Dzookeeper.ssl.keyStore.type=PEM -Dzookeeper.ssl.trustStore.location={{- $caFile }} -Dzookeeper.ssl.trustStore.type=PEM\"" >> conf/pulsar_env.sh
|
echo "PULSAR_EXTRA_OPTS=\"\${PULSAR_EXTRA_OPTS} -Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty -Dzookeeper.client.secure=true -Dzookeeper.client.certReload=true -Dzookeeper.ssl.keyStore.location={{- $keyFile }} -Dzookeeper.ssl.keyStore.type=PEM -Dzookeeper.ssl.trustStore.location={{- $caFile }} -Dzookeeper.ssl.trustStore.type=PEM\"" >> conf/pulsar_env.sh
|
||||||
@ -73,3 +73,73 @@ echo "PULSAR_EXTRA_OPTS=\"\${PULSAR_EXTRA_OPTS} -Dzookeeper.ssl.keyStore.locatio
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Define zookeeper tls certs mounts
|
||||||
|
*/}}
|
||||||
|
{{- define "pulsar.zookeeper.certs.volumeMounts" -}}
|
||||||
|
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }}
|
||||||
|
- mountPath: "/pulsar/certs/zookeeper"
|
||||||
|
name: zookeeper-certs
|
||||||
|
readOnly: true
|
||||||
|
- mountPath: "/pulsar/certs/ca"
|
||||||
|
name: ca
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.tls.zookeeper.cacerts.enabled }}
|
||||||
|
- mountPath: "/pulsar/certs/cacerts"
|
||||||
|
name: zookeeper-cacerts
|
||||||
|
{{- range $cert := .Values.tls.zookeeper.cacerts.certs }}
|
||||||
|
- name: {{ $cert.name }}
|
||||||
|
mountPath: "/pulsar/certs/{{ $cert.name }}"
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
|
- name: certs-scripts
|
||||||
|
mountPath: "/pulsar/bin/certs-combine-pem.sh"
|
||||||
|
subPath: certs-combine-pem.sh
|
||||||
|
- name: certs-scripts
|
||||||
|
mountPath: "/pulsar/bin/certs-combine-pem-infinity.sh"
|
||||||
|
subPath: certs-combine-pem-infinity.sh
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Define zookeeper tls certs volumes
|
||||||
|
*/}}
|
||||||
|
{{- define "pulsar.zookeeper.certs.volumes" -}}
|
||||||
|
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }}
|
||||||
|
- name: zookeeper-certs
|
||||||
|
secret:
|
||||||
|
secretName: "{{ .Release.Name }}-{{ .Values.tls.zookeeper.cert_name }}"
|
||||||
|
items:
|
||||||
|
- key: tls.crt
|
||||||
|
path: tls.crt
|
||||||
|
- key: tls.key
|
||||||
|
path: tls.key
|
||||||
|
- key: tls-combined.pem
|
||||||
|
path: tls-combined.pem
|
||||||
|
- name: ca
|
||||||
|
secret:
|
||||||
|
secretName: "{{ template "pulsar.certs.issuers.ca.secretName" . }}"
|
||||||
|
items:
|
||||||
|
- key: ca.crt
|
||||||
|
path: ca.crt
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.tls.zookeeper.cacerts.enabled }}
|
||||||
|
- name: zookeeper-cacerts
|
||||||
|
emptyDir: {}
|
||||||
|
{{- range $cert := .Values.tls.zookeeper.cacerts.certs }}
|
||||||
|
- name: {{ $cert.name }}
|
||||||
|
secret:
|
||||||
|
secretName: "{{ $cert.existingSecret }}"
|
||||||
|
items:
|
||||||
|
{{- range $key := $cert.secretKeys }}
|
||||||
|
- key: {{ $key }}
|
||||||
|
path: {{ $key }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
- name: certs-scripts
|
||||||
|
configMap:
|
||||||
|
name: "{{ template "pulsar.fullname" . }}-certs-scripts"
|
||||||
|
defaultMode: 0755
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|||||||
@ -113,6 +113,18 @@ spec:
|
|||||||
terminationGracePeriodSeconds: {{ .Values.autorecovery.gracePeriod }}
|
terminationGracePeriodSeconds: {{ .Values.autorecovery.gracePeriod }}
|
||||||
serviceAccountName: "{{ template "pulsar.fullname" . }}-{{ .Values.autorecovery.component }}"
|
serviceAccountName: "{{ template "pulsar.fullname" . }}-{{ .Values.autorecovery.component }}"
|
||||||
initContainers:
|
initContainers:
|
||||||
|
{{- if .Values.tls.autorecovery.cacerts.enabled }}
|
||||||
|
- name: cacerts
|
||||||
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.autorecovery "root" .) }}"
|
||||||
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.images.autorecovery "root" .) }}"
|
||||||
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
|
command: ["sh", "-c"]
|
||||||
|
args:
|
||||||
|
- |
|
||||||
|
bin/certs-combine-pem.sh /pulsar/certs/cacerts/ca-combined.pem {{ template "pulsar.certs.cacerts" (dict "certs" .Values.tls.autorecovery.cacerts.certs) }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- include "pulsar.autorecovery.certs.volumeMounts" . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- if and .Values.autorecovery.waitBookkeeperTimeout (gt (.Values.autorecovery.waitBookkeeperTimeout | int) 0) }}
|
{{- if and .Values.autorecovery.waitBookkeeperTimeout (gt (.Values.autorecovery.waitBookkeeperTimeout | int) 0) }}
|
||||||
# This initContainer will wait for bookkeeper initnewcluster to complete
|
# This initContainer will wait for bookkeeper initnewcluster to complete
|
||||||
# before deploying the bookies
|
# before deploying the bookies
|
||||||
@ -147,6 +159,11 @@ spec:
|
|||||||
command: ["sh", "-c"]
|
command: ["sh", "-c"]
|
||||||
args:
|
args:
|
||||||
- |
|
- |
|
||||||
|
{{- if .Values.tls.autorecovery.cacerts.enabled }}
|
||||||
|
cd /pulsar/certs/cacerts;
|
||||||
|
nohup /pulsar/bin/certs-combine-pem-infinity.sh /pulsar/certs/cacerts/ca-combined.pem {{ template "pulsar.certs.cacerts" (dict "certs" .Values.tls.autorecovery.cacerts.certs) }} > /pulsar/certs/cacerts/certs-combine-pem-infinity.log 2>&1 &
|
||||||
|
cd /pulsar;
|
||||||
|
{{- end }}
|
||||||
bin/apply-config-from-env.py conf/bookkeeper.conf;
|
bin/apply-config-from-env.py conf/bookkeeper.conf;
|
||||||
{{- include "pulsar.autorecovery.zookeeper.tls.settings" . | nindent 10 }}
|
{{- include "pulsar.autorecovery.zookeeper.tls.settings" . | nindent 10 }}
|
||||||
OPTS="${OPTS} -Dlog4j2.formatMsgNoLookups=true" exec bin/bookkeeper autorecovery
|
OPTS="${OPTS} -Dlog4j2.formatMsgNoLookups=true" exec bin/bookkeeper autorecovery
|
||||||
|
|||||||
@ -49,6 +49,18 @@ spec:
|
|||||||
{{ toYaml .Values.pulsar_metadata.tolerations | indent 8 }}
|
{{ toYaml .Values.pulsar_metadata.tolerations | indent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
initContainers:
|
initContainers:
|
||||||
|
{{- if .Values.tls.bookie.cacerts.enabled }}
|
||||||
|
- name: cacerts
|
||||||
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.bookie "root" .) }}"
|
||||||
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.images.bookie "root" .) }}"
|
||||||
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
|
command: ["sh", "-c"]
|
||||||
|
args:
|
||||||
|
- |
|
||||||
|
bin/certs-combine-pem.sh /pulsar/certs/cacerts/ca-combined.pem {{ template "pulsar.certs.cacerts" (dict "certs" .Values.tls.bookie.cacerts.certs) }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- include "pulsar.toolset.certs.volumeMounts" . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- if and .Values.components.zookeeper .Values.bookkeeper.metadata.waitZookeeperTimeout (gt (.Values.bookkeeper.metadata.waitZookeeperTimeout | int) 0) }}
|
{{- if and .Values.components.zookeeper .Values.bookkeeper.metadata.waitZookeeperTimeout (gt (.Values.bookkeeper.metadata.waitZookeeperTimeout | int) 0) }}
|
||||||
- name: wait-zookeeper-ready
|
- name: wait-zookeeper-ready
|
||||||
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.bookie "root" .) }}"
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.bookie "root" .) }}"
|
||||||
|
|||||||
@ -115,6 +115,18 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if and .Values.bookkeeper.waitMetadataTimeout (gt (.Values.bookkeeper.waitMetadataTimeout | int) 0) }}
|
{{- if and .Values.bookkeeper.waitMetadataTimeout (gt (.Values.bookkeeper.waitMetadataTimeout | int) 0) }}
|
||||||
initContainers:
|
initContainers:
|
||||||
|
{{- if .Values.tls.bookie.cacerts.enabled }}
|
||||||
|
- name: cacerts
|
||||||
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.bookie "root" .) }}"
|
||||||
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.images.bookie "root" .) }}"
|
||||||
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
|
command: ["sh", "-c"]
|
||||||
|
args:
|
||||||
|
- |
|
||||||
|
bin/certs-combine-pem.sh /pulsar/certs/cacerts/ca-combined.pem {{ template "pulsar.certs.cacerts" (dict "certs" .Values.tls.bookie.cacerts.certs) }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- include "pulsar.bookkeeper.certs.volumeMounts" . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
# This initContainer will wait for bookkeeper initnewcluster to complete
|
# This initContainer will wait for bookkeeper initnewcluster to complete
|
||||||
# before deploying the bookies
|
# before deploying the bookies
|
||||||
- name: pulsar-bookkeeper-verify-clusterid
|
- name: pulsar-bookkeeper-verify-clusterid
|
||||||
@ -195,6 +207,11 @@ spec:
|
|||||||
{{- if .Values.bookkeeper.additionalCommand }}
|
{{- if .Values.bookkeeper.additionalCommand }}
|
||||||
{{ .Values.bookkeeper.additionalCommand }}
|
{{ .Values.bookkeeper.additionalCommand }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.tls.bookie.cacerts.enabled }}
|
||||||
|
cd /pulsar/certs/cacerts;
|
||||||
|
nohup /pulsar/bin/certs-combine-pem-infinity.sh /pulsar/certs/cacerts/ca-combined.pem {{ template "pulsar.certs.cacerts" (dict "certs" .Values.tls.bookie.cacerts.certs) }} > /pulsar/certs/cacerts/certs-combine-pem-infinity.log 2>&1 &
|
||||||
|
cd /pulsar;
|
||||||
|
{{- end }}
|
||||||
bin/apply-config-from-env.py conf/bookkeeper.conf;
|
bin/apply-config-from-env.py conf/bookkeeper.conf;
|
||||||
{{- include "pulsar.bookkeeper.zookeeper.tls.settings" . | nindent 10 }}
|
{{- include "pulsar.bookkeeper.zookeeper.tls.settings" . | nindent 10 }}
|
||||||
OPTS="${OPTS} -Dlog4j2.formatMsgNoLookups=true" exec bin/pulsar bookie;
|
OPTS="${OPTS} -Dlog4j2.formatMsgNoLookups=true" exec bin/pulsar bookie;
|
||||||
|
|||||||
@ -204,7 +204,7 @@ data:
|
|||||||
# TLS Settings
|
# TLS Settings
|
||||||
tlsCertificateFilePath: "/pulsar/certs/broker/tls.crt"
|
tlsCertificateFilePath: "/pulsar/certs/broker/tls.crt"
|
||||||
tlsKeyFilePath: "/pulsar/certs/broker/tls.key"
|
tlsKeyFilePath: "/pulsar/certs/broker/tls.key"
|
||||||
tlsTrustCertsFilePath: "/pulsar/certs/ca/ca.crt"
|
tlsTrustCertsFilePath: {{ ternary "/pulsar/certs/cacerts/ca-combined.pem" "/pulsar/certs/ca/ca.crt" .Values.tls.broker.cacerts.enabled | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
# Authentication Settings
|
# Authentication Settings
|
||||||
@ -260,13 +260,13 @@ data:
|
|||||||
bookkeeperTLSKeyFileType: "PEM"
|
bookkeeperTLSKeyFileType: "PEM"
|
||||||
bookkeeperTLSKeyFilePath: "/pulsar/certs/broker/tls.key"
|
bookkeeperTLSKeyFilePath: "/pulsar/certs/broker/tls.key"
|
||||||
bookkeeperTLSCertificateFilePath: "/pulsar/certs/broker/tls.crt"
|
bookkeeperTLSCertificateFilePath: "/pulsar/certs/broker/tls.crt"
|
||||||
bookkeeperTLSTrustCertsFilePath: "/pulsar/certs/ca/ca.crt"
|
bookkeeperTLSTrustCertsFilePath: {{ ternary "/pulsar/certs/cacerts/ca-combined.pem" "/pulsar/certs/ca/ca.crt" .Values.tls.broker.cacerts.enabled | quote }}
|
||||||
bookkeeperTLSTrustCertTypes: "PEM"
|
bookkeeperTLSTrustCertTypes: "PEM"
|
||||||
PULSAR_PREFIX_bookkeeperTLSClientAuthentication: "true"
|
PULSAR_PREFIX_bookkeeperTLSClientAuthentication: "true"
|
||||||
PULSAR_PREFIX_bookkeeperTLSKeyFileType: "PEM"
|
PULSAR_PREFIX_bookkeeperTLSKeyFileType: "PEM"
|
||||||
PULSAR_PREFIX_bookkeeperTLSKeyFilePath: "/pulsar/certs/broker/tls.key"
|
PULSAR_PREFIX_bookkeeperTLSKeyFilePath: "/pulsar/certs/broker/tls.key"
|
||||||
PULSAR_PREFIX_bookkeeperTLSCertificateFilePath: "/pulsar/certs/broker/tls.crt"
|
PULSAR_PREFIX_bookkeeperTLSCertificateFilePath: "/pulsar/certs/broker/tls.crt"
|
||||||
PULSAR_PREFIX_bookkeeperTLSTrustCertsFilePath: "/pulsar/certs/ca/ca.crt"
|
PULSAR_PREFIX_bookkeeperTLSTrustCertsFilePath: {{ ternary "/pulsar/certs/cacerts/ca-combined.pem" "/pulsar/certs/ca/ca.crt" .Values.tls.broker.cacerts.enabled | quote }}
|
||||||
PULSAR_PREFIX_bookkeeperTLSTrustCertTypes: "PEM"
|
PULSAR_PREFIX_bookkeeperTLSTrustCertTypes: "PEM"
|
||||||
# https://github.com/apache/bookkeeper/pull/2300
|
# https://github.com/apache/bookkeeper/pull/2300
|
||||||
bookkeeperUseV2WireProtocol: "false"
|
bookkeeperUseV2WireProtocol: "false"
|
||||||
|
|||||||
@ -130,6 +130,18 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
terminationGracePeriodSeconds: {{ .Values.broker.gracePeriod }}
|
terminationGracePeriodSeconds: {{ .Values.broker.gracePeriod }}
|
||||||
initContainers:
|
initContainers:
|
||||||
|
{{- if .Values.tls.broker.cacerts.enabled }}
|
||||||
|
- name: cacerts
|
||||||
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.broker "root" .) }}"
|
||||||
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.images.broker "root" .) }}"
|
||||||
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
|
command: ["sh", "-c"]
|
||||||
|
args:
|
||||||
|
- |
|
||||||
|
bin/certs-combine-pem.sh /pulsar/certs/cacerts/ca-combined.pem {{ template "pulsar.certs.cacerts" (dict "certs" .Values.tls.broker.cacerts.certs) }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- include "pulsar.broker.certs.volumeMounts" . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- if and .Values.components.zookeeper .Values.broker.waitZookeeperTimeout (gt (.Values.broker.waitZookeeperTimeout | int) 0) }}
|
{{- if and .Values.components.zookeeper .Values.broker.waitZookeeperTimeout (gt (.Values.broker.waitZookeeperTimeout | int) 0) }}
|
||||||
# This init container will wait for zookeeper to be ready before
|
# This init container will wait for zookeeper to be ready before
|
||||||
# deploying the bookies
|
# deploying the bookies
|
||||||
@ -243,6 +255,11 @@ spec:
|
|||||||
{{- if .Values.broker.additionalCommand }}
|
{{- if .Values.broker.additionalCommand }}
|
||||||
{{ .Values.broker.additionalCommand }}
|
{{ .Values.broker.additionalCommand }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.tls.broker.cacerts.enabled }}
|
||||||
|
cd /pulsar/certs/cacerts;
|
||||||
|
nohup /pulsar/bin/certs-combine-pem-infinity.sh /pulsar/certs/cacerts/ca-combined.pem {{ template "pulsar.certs.cacerts" (dict "certs" .Values.tls.broker.cacerts.certs) }} > /pulsar/certs/cacerts/certs-combine-pem-infinity.log 2>&1 &
|
||||||
|
cd /pulsar;
|
||||||
|
{{- end }}
|
||||||
bin/apply-config-from-env.py conf/broker.conf;
|
bin/apply-config-from-env.py conf/broker.conf;
|
||||||
bin/gen-yml-from-env.py conf/functions_worker.yml;
|
bin/gen-yml-from-env.py conf/functions_worker.yml;
|
||||||
echo "OK" > "${statusFilePath:-status}";
|
echo "OK" > "${statusFilePath:-status}";
|
||||||
|
|||||||
82
charts/pulsar/templates/certs-scripts-configmap.yaml
Normal file
82
charts/pulsar/templates/certs-scripts-configmap.yaml
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: "{{ template "pulsar.fullname" . }}-certs-scripts"
|
||||||
|
namespace: {{ template "pulsar.namespace" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "pulsar.standardLabels" . | nindent 4 }}
|
||||||
|
component: certs-scripts
|
||||||
|
data:
|
||||||
|
certs-combine-pem.sh: |
|
||||||
|
#!/bin/bash
|
||||||
|
# This script combines all certificates into a single file.
|
||||||
|
# Usage: certs-combine-pem.sh <output_file> <cert1> <cert2> ...
|
||||||
|
set -eu -o pipefail
|
||||||
|
|
||||||
|
if [ "$#" -lt 2 ]; then
|
||||||
|
echo "Usage: $0 <output_file> <cert1> <cert2> ..."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
OUTPUT_FILE="$1"
|
||||||
|
shift
|
||||||
|
|
||||||
|
OUTPUT_FILE_TMP="${OUTPUT_FILE}.tmp"
|
||||||
|
rm -f "$OUTPUT_FILE_TMP"
|
||||||
|
|
||||||
|
for CERT in "$@"; do
|
||||||
|
if [ -f "$CERT" ]; then
|
||||||
|
echo "# $CERT" >> "$OUTPUT_FILE_TMP"
|
||||||
|
cat "$CERT" >> "$OUTPUT_FILE_TMP"
|
||||||
|
else
|
||||||
|
echo "Certificate file '$CERT' does not exist, skipping"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ ! -f "$OUTPUT_FILE" ]; then
|
||||||
|
touch "$OUTPUT_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if diff -q "$OUTPUT_FILE" "$OUTPUT_FILE_TMP" > /dev/null; then
|
||||||
|
# No changes detected, skipping update
|
||||||
|
rm -f "$OUTPUT_FILE_TMP"
|
||||||
|
else
|
||||||
|
# Update $OUTPUT_FILE with new certificates
|
||||||
|
mv "$OUTPUT_FILE_TMP" "$OUTPUT_FILE"
|
||||||
|
fi
|
||||||
|
|
||||||
|
certs-combine-pem-infinity.sh: |
|
||||||
|
#!/bin/bash
|
||||||
|
# This script combines all certificates into a single file, every minutes.
|
||||||
|
# Usage: certs-combine-pem-infinity.sh <output_file> <cert1> <cert2> ...
|
||||||
|
set -eu -o pipefail
|
||||||
|
|
||||||
|
if [ "$#" -lt 2 ]; then
|
||||||
|
echo "Usage: $0 <output_file> <cert1> <cert2> ..."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
while true; do
|
||||||
|
/pulsar/bin/certs-combine-pem.sh "$@"
|
||||||
|
sleep 60
|
||||||
|
done
|
||||||
|
|
||||||
23
charts/pulsar/templates/extra-list.yaml
Normal file
23
charts/pulsar/templates/extra-list.yaml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
{{- range .Values.extraDeploy }}
|
||||||
|
---
|
||||||
|
{{ include "common.tplvalues.render" (dict "value" . "context" $) }}
|
||||||
|
{{- end }}
|
||||||
@ -42,14 +42,14 @@ data:
|
|||||||
webServicePortTls: "{{ .Values.proxy.ports.containerPorts.https }}"
|
webServicePortTls: "{{ .Values.proxy.ports.containerPorts.https }}"
|
||||||
tlsCertificateFilePath: "/pulsar/certs/proxy/tls.crt"
|
tlsCertificateFilePath: "/pulsar/certs/proxy/tls.crt"
|
||||||
tlsKeyFilePath: "/pulsar/certs/proxy/tls.key"
|
tlsKeyFilePath: "/pulsar/certs/proxy/tls.key"
|
||||||
tlsTrustCertsFilePath: "/pulsar/certs/ca/ca.crt"
|
tlsTrustCertsFilePath: {{ ternary "/pulsar/certs/cacerts/ca-combined.pem" "/pulsar/certs/ca/ca.crt" .Values.tls.proxy.cacerts.enabled | quote }}
|
||||||
{{- if and .Values.tls.enabled .Values.tls.broker.enabled }}
|
{{- if and .Values.tls.enabled .Values.tls.broker.enabled }}
|
||||||
# if broker enables TLS, configure proxy to talk to broker using TLS
|
# if broker enables TLS, configure proxy to talk to broker using TLS
|
||||||
brokerServiceURLTLS: pulsar+ssl://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}:{{ .Values.broker.ports.pulsarssl }}
|
brokerServiceURLTLS: pulsar+ssl://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}:{{ .Values.broker.ports.pulsarssl }}
|
||||||
brokerWebServiceURLTLS: https://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}:{{ .Values.broker.ports.https }}
|
brokerWebServiceURLTLS: https://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}:{{ .Values.broker.ports.https }}
|
||||||
tlsEnabledWithBroker: "true"
|
tlsEnabledWithBroker: "true"
|
||||||
tlsCertRefreshCheckDurationSec: "300"
|
tlsCertRefreshCheckDurationSec: "300"
|
||||||
brokerClientTrustCertsFilePath: "/pulsar/certs/ca/ca.crt"
|
brokerClientTrustCertsFilePath: {{ ternary "/pulsar/certs/cacerts/ca-combined.pem" "/pulsar/certs/ca/ca.crt" .Values.tls.proxy.cacerts.enabled | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if not (and .Values.tls.enabled .Values.tls.broker.enabled) }}
|
{{- if not (and .Values.tls.enabled .Values.tls.broker.enabled) }}
|
||||||
brokerServiceURL: pulsar://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}:{{ .Values.broker.ports.pulsar }}
|
brokerServiceURL: pulsar://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}:{{ .Values.broker.ports.pulsar }}
|
||||||
|
|||||||
@ -112,6 +112,18 @@ spec:
|
|||||||
terminationGracePeriodSeconds: {{ .Values.proxy.gracePeriod }}
|
terminationGracePeriodSeconds: {{ .Values.proxy.gracePeriod }}
|
||||||
serviceAccountName: "{{ template "pulsar.fullname" . }}-{{ .Values.proxy.component }}"
|
serviceAccountName: "{{ template "pulsar.fullname" . }}-{{ .Values.proxy.component }}"
|
||||||
initContainers:
|
initContainers:
|
||||||
|
{{- if .Values.tls.proxy.cacerts.enabled }}
|
||||||
|
- name: combine-certs
|
||||||
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.proxy "root" .) }}"
|
||||||
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.images.proxy "root" .) }}"
|
||||||
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
|
command: ["sh", "-c"]
|
||||||
|
args:
|
||||||
|
- |
|
||||||
|
bin/certs-combine-pem.sh /pulsar/certs/cacerts/ca-combined.pem {{ template "pulsar.certs.cacerts" (dict "certs" .Values.tls.proxy.cacerts.certs) }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- include "pulsar.proxy.certs.volumeMounts" . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- if and .Values.components.zookeeper .Values.proxy.waitZookeeperTimeout (gt (.Values.proxy.waitZookeeperTimeout | int) 0) }}
|
{{- if and .Values.components.zookeeper .Values.proxy.waitZookeeperTimeout (gt (.Values.proxy.waitZookeeperTimeout | int) 0) }}
|
||||||
# This init container will wait for zookeeper to be ready before
|
# This init container will wait for zookeeper to be ready before
|
||||||
# deploying the bookies
|
# deploying the bookies
|
||||||
@ -214,6 +226,11 @@ spec:
|
|||||||
{{- if .Values.proxy.additionalCommand }}
|
{{- if .Values.proxy.additionalCommand }}
|
||||||
{{ .Values.proxy.additionalCommand }}
|
{{ .Values.proxy.additionalCommand }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.tls.proxy.cacerts.enabled }}
|
||||||
|
cd /pulsar/certs/cacerts;
|
||||||
|
nohup /pulsar/bin/certs-combine-pem-infinity.sh /pulsar/certs/cacerts/ca-combined.pem {{ template "pulsar.certs.cacerts" (dict "certs" .Values.tls.proxy.cacerts.certs) }} > /pulsar/certs/cacerts/certs-combine-pem-infinity.log 2>&1 &
|
||||||
|
cd /pulsar;
|
||||||
|
{{- end }}
|
||||||
bin/apply-config-from-env.py conf/proxy.conf &&
|
bin/apply-config-from-env.py conf/proxy.conf &&
|
||||||
echo "OK" > "${statusFilePath:-status}" &&
|
echo "OK" > "${statusFilePath:-status}" &&
|
||||||
OPTS="${OPTS} -Dlog4j2.formatMsgNoLookups=true" exec bin/pulsar proxy
|
OPTS="${OPTS} -Dlog4j2.formatMsgNoLookups=true" exec bin/pulsar proxy
|
||||||
@ -250,16 +267,7 @@ spec:
|
|||||||
readOnly: true
|
readOnly: true
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.tls.proxy.enabled }}
|
{{- include "pulsar.proxy.certs.volumeMounts" . | nindent 10 }}
|
||||||
- mountPath: "/pulsar/certs/proxy"
|
|
||||||
name: proxy-certs
|
|
||||||
readOnly: true
|
|
||||||
{{- end}}
|
|
||||||
{{- if .Values.tls.enabled }}
|
|
||||||
- mountPath: "/pulsar/certs/ca"
|
|
||||||
name: ca
|
|
||||||
readOnly: true
|
|
||||||
{{- end}}
|
|
||||||
{{- if .Values.proxy.extraVolumeMounts }}
|
{{- if .Values.proxy.extraVolumeMounts }}
|
||||||
{{ toYaml .Values.proxy.extraVolumeMounts | indent 10 }}
|
{{ toYaml .Values.proxy.extraVolumeMounts | indent 10 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@ -296,25 +304,6 @@ spec:
|
|||||||
path: proxy/token
|
path: proxy/token
|
||||||
{{- end}}
|
{{- end}}
|
||||||
{{- end}}
|
{{- end}}
|
||||||
{{- if .Values.tls.proxy.enabled }}
|
{{- include "pulsar.proxy.certs.volumes" . | nindent 8 }}
|
||||||
- name: ca
|
|
||||||
secret:
|
|
||||||
secretName: "{{ template "pulsar.certs.issuers.ca.secretName" . }}"
|
|
||||||
items:
|
|
||||||
- key: ca.crt
|
|
||||||
path: ca.crt
|
|
||||||
- name: proxy-certs
|
|
||||||
secret:
|
|
||||||
secretName: "{{ .Release.Name }}-{{ .Values.tls.proxy.cert_name }}"
|
|
||||||
items:
|
|
||||||
- key: tls.crt
|
|
||||||
path: tls.crt
|
|
||||||
- key: tls.key
|
|
||||||
path: tls.key
|
|
||||||
{{- if .Values.tls.zookeeper.enabled }}
|
|
||||||
- key: tls-combined.pem
|
|
||||||
path: tls-combined.pem
|
|
||||||
{{- end }}
|
|
||||||
{{- end}}
|
|
||||||
{{- end}}
|
{{- end}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@ -45,6 +45,18 @@ spec:
|
|||||||
{{ toYaml .Values.pulsar_metadata.nodeSelector | indent 8 }}
|
{{ toYaml .Values.pulsar_metadata.nodeSelector | indent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
initContainers:
|
initContainers:
|
||||||
|
{{- if .Values.tls.toolset.cacerts.enabled }}
|
||||||
|
- name: cacerts
|
||||||
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
||||||
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.pulsar_metadata.image "root" .) }}"
|
||||||
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
|
command: ["sh", "-c"]
|
||||||
|
args:
|
||||||
|
- |
|
||||||
|
bin/certs-combine-pem.sh /pulsar/certs/cacerts/ca-combined.pem {{ template "pulsar.certs.cacerts" (dict "certs" .Values.tls.toolset.cacerts.certs) }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- include "pulsar.toolset.certs.volumeMounts" . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- if and .Values.components.zookeeper .Values.pulsar_metadata.waitZookeeperTimeout (gt (.Values.pulsar_metadata.waitZookeeperTimeout | int) 0) }}
|
{{- if and .Values.components.zookeeper .Values.pulsar_metadata.waitZookeeperTimeout (gt (.Values.pulsar_metadata.waitZookeeperTimeout | int) 0) }}
|
||||||
{{- if .Values.pulsar_metadata.configurationStore }}
|
{{- if .Values.pulsar_metadata.configurationStore }}
|
||||||
- name: wait-zk-cs-ready
|
- name: wait-zk-cs-ready
|
||||||
|
|||||||
@ -36,7 +36,7 @@ data:
|
|||||||
brokerServiceUrl: "pulsar+ssl://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}:{{ .Values.broker.ports.pulsarssl }}/"
|
brokerServiceUrl: "pulsar+ssl://{{ template "pulsar.fullname" . }}-{{ .Values.broker.component }}:{{ .Values.broker.ports.pulsarssl }}/"
|
||||||
useTls: "true"
|
useTls: "true"
|
||||||
tlsAllowInsecureConnection: "false"
|
tlsAllowInsecureConnection: "false"
|
||||||
tlsTrustCertsFilePath: "/pulsar/certs/proxy-ca/ca.crt"
|
tlsTrustCertsFilePath: {{ ternary "/pulsar/certs/cacerts/ca-combined.pem" "/pulsar/certs/ca/ca.crt" .Values.tls.toolset.cacerts.enabled | quote }}
|
||||||
tlsEnableHostnameVerification: "false"
|
tlsEnableHostnameVerification: "false"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if not (and .Values.tls.enabled .Values.tls.broker.enabled) }}
|
{{- if not (and .Values.tls.enabled .Values.tls.broker.enabled) }}
|
||||||
@ -51,7 +51,7 @@ data:
|
|||||||
brokerServiceUrl: "pulsar+ssl://{{ template "pulsar.fullname" . }}-{{ .Values.proxy.component }}:{{ .Values.proxy.ports.pulsarssl }}/"
|
brokerServiceUrl: "pulsar+ssl://{{ template "pulsar.fullname" . }}-{{ .Values.proxy.component }}:{{ .Values.proxy.ports.pulsarssl }}/"
|
||||||
useTls: "true"
|
useTls: "true"
|
||||||
tlsAllowInsecureConnection: "false"
|
tlsAllowInsecureConnection: "false"
|
||||||
tlsTrustCertsFilePath: "/pulsar/certs/proxy-ca/ca.crt"
|
tlsTrustCertsFilePath: {{ ternary "/pulsar/certs/cacerts/ca-combined.pem" "/pulsar/certs/ca/ca.crt" .Values.tls.toolset.cacerts.enabled | quote }}
|
||||||
tlsEnableHostnameVerification: "false"
|
tlsEnableHostnameVerification: "false"
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if not (and .Values.tls.enabled .Values.tls.proxy.enabled) }}
|
{{- if not (and .Values.tls.enabled .Values.tls.proxy.enabled) }}
|
||||||
|
|||||||
@ -64,8 +64,20 @@ spec:
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
terminationGracePeriodSeconds: {{ .Values.toolset.gracePeriod }}
|
terminationGracePeriodSeconds: {{ .Values.toolset.gracePeriod }}
|
||||||
serviceAccountName: "{{ template "pulsar.fullname" . }}-{{ .Values.toolset.component }}"
|
serviceAccountName: "{{ template "pulsar.fullname" . }}-{{ .Values.toolset.component }}"
|
||||||
{{- if .Values.toolset.initContainers }}
|
|
||||||
initContainers:
|
initContainers:
|
||||||
|
{{- if .Values.tls.toolset.cacerts.enabled }}
|
||||||
|
- name: cacerts
|
||||||
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.toolset "root" .) }}"
|
||||||
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.images.toolset "root" .) }}"
|
||||||
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
|
command: ["sh", "-c"]
|
||||||
|
args:
|
||||||
|
- |
|
||||||
|
bin/certs-combine-pem.sh /pulsar/certs/cacerts/ca-combined.pem {{ template "pulsar.certs.cacerts" (dict "certs" .Values.tls.toolset.cacerts.certs) }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- include "pulsar.toolset.certs.volumeMounts" . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.toolset.initContainers }}
|
||||||
{{- toYaml .Values.toolset.initContainers | nindent 6 }}
|
{{- toYaml .Values.toolset.initContainers | nindent 6 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
containers:
|
containers:
|
||||||
@ -87,6 +99,11 @@ spec:
|
|||||||
{{- if .Values.toolset.additionalCommand }}
|
{{- if .Values.toolset.additionalCommand }}
|
||||||
{{ .Values.toolset.additionalCommand }}
|
{{ .Values.toolset.additionalCommand }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.tls.toolset.cacerts.enabled }}
|
||||||
|
cd /pulsar/certs/cacerts;
|
||||||
|
nohup /pulsar/bin/certs-combine-pem-infinity.sh /pulsar/certs/cacerts/ca-combined.pem {{ template "pulsar.certs.cacerts" (dict "certs" .Values.tls.toolset.cacerts.certs) }} > /pulsar/certs/cacerts/certs-combine-pem-infinity.log 2>&1 &
|
||||||
|
cd /pulsar;
|
||||||
|
{{- end }}
|
||||||
bin/apply-config-from-env.py conf/client.conf;
|
bin/apply-config-from-env.py conf/client.conf;
|
||||||
bin/apply-config-from-env.py conf/bookkeeper.conf;
|
bin/apply-config-from-env.py conf/bookkeeper.conf;
|
||||||
{{- include "pulsar.toolset.zookeeper.tls.settings" . | nindent 10 }}
|
{{- include "pulsar.toolset.zookeeper.tls.settings" . | nindent 10 }}
|
||||||
@ -102,11 +119,6 @@ spec:
|
|||||||
readOnly: true
|
readOnly: true
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if and .Values.tls.enabled (or .Values.tls.broker.enabled .Values.tls.proxy.enabled) }}
|
|
||||||
- mountPath: "/pulsar/certs/proxy-ca"
|
|
||||||
name: proxy-ca
|
|
||||||
readOnly: true
|
|
||||||
{{- end}}
|
|
||||||
{{- if .Values.toolset.extraVolumeMounts }}
|
{{- if .Values.toolset.extraVolumeMounts }}
|
||||||
{{ toYaml .Values.toolset.extraVolumeMounts | indent 8 }}
|
{{ toYaml .Values.toolset.extraVolumeMounts | indent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@ -122,14 +134,6 @@ spec:
|
|||||||
path: client/token
|
path: client/token
|
||||||
{{- end}}
|
{{- end}}
|
||||||
{{- end}}
|
{{- end}}
|
||||||
{{- if and .Values.tls.enabled (or .Values.tls.broker.enabled .Values.tls.proxy.enabled) }}
|
|
||||||
- name: proxy-ca
|
|
||||||
secret:
|
|
||||||
secretName: "{{ template "pulsar.certs.issuers.ca.secretName" . }}"
|
|
||||||
items:
|
|
||||||
- key: ca.crt
|
|
||||||
path: ca.crt
|
|
||||||
{{- end}}
|
|
||||||
{{- if .Values.toolset.extraVolumes }}
|
{{- if .Values.toolset.extraVolumes }}
|
||||||
{{ toYaml .Values.toolset.extraVolumes | indent 6 }}
|
{{ toYaml .Values.toolset.extraVolumes | indent 6 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@ -114,8 +114,20 @@ spec:
|
|||||||
securityContext:
|
securityContext:
|
||||||
{{ toYaml .Values.zookeeper.securityContext | indent 8 }}
|
{{ toYaml .Values.zookeeper.securityContext | indent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.zookeeper.initContainers }}
|
|
||||||
initContainers:
|
initContainers:
|
||||||
|
{{- if .Values.tls.zookeeper.cacerts.enabled }}
|
||||||
|
- name: cacerts
|
||||||
|
image: "{{ template "pulsar.imageFullName" (dict "image" .Values.images.zookeeper "root" .) }}"
|
||||||
|
imagePullPolicy: "{{ template "pulsar.imagePullPolicy" (dict "image" .Values.images.zookeeper "root" .) }}"
|
||||||
|
resources: {{ toYaml .Values.initContainer.resources | nindent 10 }}
|
||||||
|
command: ["sh", "-c"]
|
||||||
|
args:
|
||||||
|
- |
|
||||||
|
bin/certs-combine-pem.sh /pulsar/certs/cacerts/ca-combined.pem {{ template "pulsar.certs.cacerts" (dict "certs" .Values.tls.zookeeper.cacerts.certs) }}
|
||||||
|
volumeMounts:
|
||||||
|
{{- include "pulsar.zookeeper.certs.volumeMounts" . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.zookeeper.initContainers }}
|
||||||
{{- toYaml .Values.zookeeper.initContainers | nindent 6 }}
|
{{- toYaml .Values.zookeeper.initContainers | nindent 6 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
containers:
|
containers:
|
||||||
@ -132,6 +144,11 @@ spec:
|
|||||||
{{- if .Values.zookeeper.additionalCommand }}
|
{{- if .Values.zookeeper.additionalCommand }}
|
||||||
{{ .Values.zookeeper.additionalCommand }}
|
{{ .Values.zookeeper.additionalCommand }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.tls.zookeeper.cacerts.enabled }}
|
||||||
|
cd /pulsar/certs/cacerts;
|
||||||
|
nohup /pulsar/bin/certs-combine-pem-infinity.sh /pulsar/certs/cacerts/ca-combined.pem {{ template "pulsar.certs.cacerts" (dict "certs" .Values.tls.zookeeper.cacerts.certs) }} > /pulsar/certs/cacerts/certs-combine-pem-infinity.log 2>&1 &
|
||||||
|
cd /pulsar;
|
||||||
|
{{- end }}
|
||||||
bin/apply-config-from-env.py conf/zookeeper.conf;
|
bin/apply-config-from-env.py conf/zookeeper.conf;
|
||||||
{{- include "pulsar.zookeeper.tls.settings" . | nindent 10 }}
|
{{- include "pulsar.zookeeper.tls.settings" . | nindent 10 }}
|
||||||
bin/generate-zookeeper-config.sh conf/zookeeper.conf;
|
bin/generate-zookeeper-config.sh conf/zookeeper.conf;
|
||||||
@ -220,14 +237,7 @@ spec:
|
|||||||
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }}-{{ .Values.zookeeper.volumes.datalog.name }}"
|
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }}-{{ .Values.zookeeper.volumes.datalog.name }}"
|
||||||
mountPath: /pulsar/data-log
|
mountPath: /pulsar/data-log
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }}
|
{{- include "pulsar.zookeeper.certs.volumeMounts" . | nindent 8 }}
|
||||||
- mountPath: "/pulsar/certs/zookeeper"
|
|
||||||
name: zookeeper-certs
|
|
||||||
readOnly: true
|
|
||||||
- mountPath: "/pulsar/certs/ca"
|
|
||||||
name: ca
|
|
||||||
readOnly: true
|
|
||||||
{{- end }}
|
|
||||||
{{- if .Values.zookeeper.extraVolumeMounts }}
|
{{- if .Values.zookeeper.extraVolumeMounts }}
|
||||||
{{ toYaml .Values.zookeeper.extraVolumeMounts | indent 8 }}
|
{{ toYaml .Values.zookeeper.extraVolumeMounts | indent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@ -236,27 +246,10 @@ spec:
|
|||||||
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }}-{{ .Values.zookeeper.volumes.data.name }}"
|
- name: "{{ template "pulsar.fullname" . }}-{{ .Values.zookeeper.component }}-{{ .Values.zookeeper.volumes.data.name }}"
|
||||||
emptyDir: {}
|
emptyDir: {}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- include "pulsar.zookeeper.certs.volumes" . | nindent 6 }}
|
||||||
{{- if .Values.zookeeper.extraVolumes }}
|
{{- if .Values.zookeeper.extraVolumes }}
|
||||||
{{ toYaml .Values.zookeeper.extraVolumes | indent 6 }}
|
{{ toYaml .Values.zookeeper.extraVolumes | indent 6 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if and .Values.tls.enabled .Values.tls.zookeeper.enabled }}
|
|
||||||
- name: zookeeper-certs
|
|
||||||
secret:
|
|
||||||
secretName: "{{ .Release.Name }}-{{ .Values.tls.zookeeper.cert_name }}"
|
|
||||||
items:
|
|
||||||
- key: tls.crt
|
|
||||||
path: tls.crt
|
|
||||||
- key: tls.key
|
|
||||||
path: tls.key
|
|
||||||
- key: tls-combined.pem
|
|
||||||
path: tls-combined.pem
|
|
||||||
- name: ca
|
|
||||||
secret:
|
|
||||||
secretName: "{{ template "pulsar.certs.issuers.ca.secretName" . }}"
|
|
||||||
items:
|
|
||||||
- key: ca.crt
|
|
||||||
path: ca.crt
|
|
||||||
{{- end}}
|
|
||||||
{{- include "pulsar.imagePullSecrets" . | nindent 6}}
|
{{- include "pulsar.imagePullSecrets" . | nindent 6}}
|
||||||
{{- if and (and .Values.persistence .Values.volumes.persistence) .Values.zookeeper.volumes.persistence }}
|
{{- if and (and .Values.persistence .Values.volumes.persistence) .Values.zookeeper.volumes.persistence }}
|
||||||
volumeClaimTemplates:
|
volumeClaimTemplates:
|
||||||
|
|||||||
@ -241,6 +241,13 @@ tls:
|
|||||||
# The dnsNames field specifies a list of Subject Alternative Names to be associated with the certificate.
|
# The dnsNames field specifies a list of Subject Alternative Names to be associated with the certificate.
|
||||||
dnsNames:
|
dnsNames:
|
||||||
# - example.com
|
# - example.com
|
||||||
|
cacerts:
|
||||||
|
enabled: false
|
||||||
|
certs:
|
||||||
|
# - name: proxy-cacert
|
||||||
|
# existingSecret: proxy-cacert
|
||||||
|
# secretKeys:
|
||||||
|
# - ca.crt
|
||||||
# settings for generating certs for broker
|
# settings for generating certs for broker
|
||||||
broker:
|
broker:
|
||||||
enabled: false
|
enabled: false
|
||||||
@ -248,26 +255,69 @@ tls:
|
|||||||
# The dnsNames field specifies a list of Subject Alternative Names to be associated with the certificate.
|
# The dnsNames field specifies a list of Subject Alternative Names to be associated with the certificate.
|
||||||
dnsNames:
|
dnsNames:
|
||||||
# - example.com
|
# - example.com
|
||||||
|
cacerts:
|
||||||
|
enabled: false
|
||||||
|
certs:
|
||||||
|
# - name: broker-cacert
|
||||||
|
# existingSecret: broker-cacert
|
||||||
|
# secretKeys:
|
||||||
|
# - ca.crt
|
||||||
# settings for generating certs for bookies
|
# settings for generating certs for bookies
|
||||||
bookie:
|
bookie:
|
||||||
enabled: false
|
enabled: false
|
||||||
cert_name: tls-bookie
|
cert_name: tls-bookie
|
||||||
|
cacerts:
|
||||||
|
enabled: false
|
||||||
|
certs:
|
||||||
|
# - name: bookie-cacert
|
||||||
|
# existingSecret: bookie-cacert
|
||||||
|
# secretKeys:
|
||||||
|
# - ca.crt
|
||||||
# settings for generating certs for zookeeper
|
# settings for generating certs for zookeeper
|
||||||
zookeeper:
|
zookeeper:
|
||||||
enabled: false
|
enabled: false
|
||||||
cert_name: tls-zookeeper
|
cert_name: tls-zookeeper
|
||||||
|
cacerts:
|
||||||
|
enabled: false
|
||||||
|
certs:
|
||||||
|
# - name: zookeeper-cacert
|
||||||
|
# existingSecret: zookeeper-cacert
|
||||||
|
# secretKeys:
|
||||||
|
# - ca.crt
|
||||||
# settings for generating certs for recovery
|
# settings for generating certs for recovery
|
||||||
autorecovery:
|
autorecovery:
|
||||||
cert_name: tls-recovery
|
cert_name: tls-recovery
|
||||||
|
cacerts:
|
||||||
|
enabled: false
|
||||||
|
certs:
|
||||||
|
# - name: autorecovery-cacert
|
||||||
|
# existingSecret: autorecovery-cacert
|
||||||
|
# secretKeys:
|
||||||
|
# - ca.crt
|
||||||
# settings for generating certs for toolset
|
# settings for generating certs for toolset
|
||||||
toolset:
|
toolset:
|
||||||
cert_name: tls-toolset
|
cert_name: tls-toolset
|
||||||
|
cacerts:
|
||||||
|
enabled: false
|
||||||
|
certs:
|
||||||
|
# - name: toolset-cacert
|
||||||
|
# existingSecret: toolset-cacert
|
||||||
|
# secretKeys:
|
||||||
|
# - ca.crt
|
||||||
# TLS setting for function runtime instance
|
# TLS setting for function runtime instance
|
||||||
function_instance:
|
function_instance:
|
||||||
# controls the use of TLS for function runtime connections towards brokers
|
# controls the use of TLS for function runtime connections towards brokers
|
||||||
enabled: false
|
enabled: false
|
||||||
oxia:
|
oxia:
|
||||||
enabled: false
|
enabled: false
|
||||||
|
pulsar_metadata:
|
||||||
|
cacerts:
|
||||||
|
enabled: false
|
||||||
|
certs:
|
||||||
|
# - name: pulsar-metadata-cacert
|
||||||
|
# existingSecret: pulsar-metadata-cacert
|
||||||
|
# secretKeys:
|
||||||
|
# - ca.crt
|
||||||
|
|
||||||
# Enable or disable broker authentication and authorization.
|
# Enable or disable broker authentication and authorization.
|
||||||
auth:
|
auth:
|
||||||
@ -1889,3 +1939,7 @@ initContainer:
|
|||||||
requests:
|
requests:
|
||||||
memory: 256Mi
|
memory: 256Mi
|
||||||
cpu: 0.1
|
cpu: 0.1
|
||||||
|
|
||||||
|
## Array of extra objects to deploy with the release (evaluated as a template)
|
||||||
|
##
|
||||||
|
extraDeploy: []
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user