Helm common package

This promotes the common library to be a pure helm package. This allows more
common code to be added easily in separate files to allow for greater
maintainability.

Partially-Implements: blueprint helm-microservices

Change-Id: I96b2c6626fcb5d47fe609a40f20946c51eba4175
This commit is contained in:
Kevin Fox 2016-11-30 06:50:16 -08:00
parent 2f62d25647
commit d46538b48d
4 changed files with 40 additions and 16 deletions

View File

@ -20,6 +20,7 @@ common:
enable_kube_logger: true
fluentd_image_tag: 3.0.1
kolla_toolbox_image_tag: 3.0.1
kubernetes_entrypoint_image_tag: 3.0.1
openvswitch-ovsdb:
openvswitch_ovsdb_image_tag: 3.0.1

View File

@ -0,0 +1,17 @@
{{- define "kolla_toolbox_image_full" }}
{{- $kollaToolboxImageBuilt := printf "%s/%s/%s-%s-kolla-toolbox:%s" .Values.docker_registry .Values.docker_namespace .Values.kolla_base_distro .Values.kolla_install_type .Values.kolla_toolbox_image_tag }}
{{- $kollaToolboxImageFull := .Values.kolla_toolbox_image_full | default $kollaToolboxImageBuilt }}
{{- $kollaToolboxImageFull -}}
{{- end }}
{{- define "fluentd_image_full" }}
{{- $fluentdImageBuilt := printf "%s/%s/%s-%s-fluentd:%s" .Values.docker_registry .Values.docker_namespace .Values.kolla_base_distro .Values.kolla_install_type .Values.fluentd_image_tag }}
{{- $fluentdImageFull := .Values.kolla_toolbox_image_full | default $fluentdImageBuilt }}
{{- $fluentdImageFull -}}
{{- end }}
{{- define "kubernetes_entrypoint_image_full" }}
{{- $kubernetesEntryPointImageBuilt := printf "%s/%s/%s-%s-kubernetes-entrypoint:%s" .Values.docker_registry .Values.docker_namespace .Values.kolla_base_distro .Values.kolla_install_type .Values.kubernetes_entrypoint_image_tag }}
{{- $kubernetesEntryPointImageFull := .Values.kubernetes_entrypoint_image_full | default $kubernetesEntryPointImageBuilt }}
{{- $kubernetesEntryPointImageFull }}
{{- end }}

View File

@ -1,15 +1,3 @@
{{- define "kolla_toolbox_image_full" }}
{{- $kollaToolboxImageBuilt := printf "%s/%s/%s-%s-kolla-toolbox:%s" .Values.docker_registry .Values.docker_namespace .Values.kolla_base_distro .Values.kolla_install_type .Values.kolla_toolbox_image_tag }}
{{- $kollaToolboxImageFull := .Values.kolla_toolbox_image_full | default $kollaToolboxImageBuilt }}
{{- $kollaToolboxImageFull -}}
{{ end }}
{{- define "fluentd_image_full" }}
{{- $fluentdImageBuilt := printf "%s/%s/%s-%s-fluentd:%s" .Values.docker_registry .Values.docker_namespace .Values.kolla_base_distro .Values.kolla_install_type .Values.fluentd_image_tag }}
{{- $fluentdImageFull := .Values.kolla_toolbox_image_full | default $fluentdImageBuilt }}
{{- $fluentdImageFull -}}
{{ end }}
{{- define "common_volume_mounts" }}
- mountPath: /var/log/kolla/
name: kolla-logs

View File

@ -12,12 +12,26 @@
# limitations under the License.
import copy
import errno
import os
import shutil
import subprocess
import sys
import yaml
def helm_build_package(repodir, srcdir):
command_line = "cd %s; helm package %s" % (repodir, srcdir)
try:
res = subprocess.check_output(
command_line, shell=True,
executable='/bin/bash')
res = res.strip() # strip whitespace
print(res)
except subprocess.CalledProcessError as e:
print(e)
raise
def _isdir(path, entry):
return os.path.isdir(os.path.join(path, entry))
@ -31,9 +45,13 @@ def main():
values = yaml.load(open(os.path.join(srcdir, "all_values.yaml")))
for package in [p for p in microservices if _isdir(microdir, p)]:
template = os.path.join("templates", "_common_lib.yaml")
shutil.copy(os.path.join(srcdir, "kolla-common", template),
os.path.join(microdir, package, template))
pkgchartdir = os.path.join(microdir, package, "charts")
try:
os.makedirs(pkgchartdir)
except OSError as e:
if e.errno != errno.EEXIST:
raise
helm_build_package(pkgchartdir, os.path.join(srcdir, "kolla-common"))
pkg_values = copy.deepcopy(values['common'])
try:
pkg_values.update(values[package])