b16b2707d8
This PS adds documentation for the kubernetes entrypoint macros. Change-Id: I1bec4d7a58878742462de624ebe0b77579759c09 Signed-off-by: Pete Birley <pete@port.direct>
155 lines
5.1 KiB
Smarty
155 lines
5.1 KiB
Smarty
{{/*
|
|
Copyright 2017 The Openstack-Helm Authors.
|
|
|
|
Licensed 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.
|
|
*/}}
|
|
|
|
{{/*
|
|
abstract: |
|
|
Returns a container definition for use with the kubernetes-entrypoint image
|
|
from stackanetes.
|
|
values: |
|
|
images:
|
|
tags:
|
|
dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
|
|
pull_policy: IfNotPresent
|
|
local_registry:
|
|
active: true
|
|
exclude:
|
|
- dep_check
|
|
dependencies:
|
|
dynamic:
|
|
common:
|
|
local_image_registry:
|
|
jobs:
|
|
- calico-image-repo-sync
|
|
services:
|
|
- endpoint: node
|
|
service: local_image_registry
|
|
static:
|
|
calico_node:
|
|
services:
|
|
- endpoint: internal
|
|
service: etcd
|
|
endpoints:
|
|
local_image_registry:
|
|
namespace: docker-registry
|
|
hosts:
|
|
default: localhost
|
|
node: localhost
|
|
etcd:
|
|
hosts:
|
|
default: etcd
|
|
usage: |
|
|
{{ tuple . "calico_node" list | include "helm-toolkit.snippets.kubernetes_entrypoint_init_container" }}
|
|
return: |
|
|
- name: init
|
|
image: "quay.io/stackanetes/kubernetes-entrypoint:v0.3.1"
|
|
imagePullPolicy: IfNotPresent
|
|
env:
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.name
|
|
- name: NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.namespace
|
|
- name: INTERFACE_NAME
|
|
value: eth0
|
|
- name: PATH
|
|
value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/
|
|
- name: DEPENDENCY_SERVICE
|
|
value: "default:etcd,docker-registry:localhost"
|
|
- name: DEPENDENCY_JOBS
|
|
value: "calico-image-repo-sync"
|
|
- name: DEPENDENCY_DAEMONSET
|
|
value: ""
|
|
- name: DEPENDENCY_CONTAINER
|
|
value: ""
|
|
- name: DEPENDENCY_POD_JSON
|
|
value: ""
|
|
- name: COMMAND
|
|
value: "echo done"
|
|
command:
|
|
- kubernetes-entrypoint
|
|
volumeMounts:
|
|
[]
|
|
*/}}
|
|
|
|
{{- define "helm-toolkit.snippets.kubernetes_entrypoint_init_container" -}}
|
|
{{- $envAll := index . 0 -}}
|
|
{{- $component := index . 1 -}}
|
|
{{- $mounts := index . 2 -}}
|
|
|
|
{{- $_ := set $envAll.Values "__kubernetes_entrypoint_init_container" dict -}}
|
|
{{- $_ := set $envAll.Values.__kubernetes_entrypoint_init_container "deps" dict -}}
|
|
{{- if and ($envAll.Values.images.local_registry.active) (ne $component "image_repo_sync") -}}
|
|
{{- if eq $component "pod_dependency" -}}
|
|
{{- $_ := include "helm-toolkit.utils.merge" ( tuple $envAll.Values.__kubernetes_entrypoint_init_container.deps ( index $envAll.Values.pod_dependency ) $envAll.Values.dependencies.dynamic.common.local_image_registry ) -}}
|
|
{{- else -}}
|
|
{{- $_ := include "helm-toolkit.utils.merge" ( tuple $envAll.Values.__kubernetes_entrypoint_init_container.deps ( index $envAll.Values.dependencies.static $component ) $envAll.Values.dependencies.dynamic.common.local_image_registry ) -}}
|
|
{{- end -}}
|
|
{{- else -}}
|
|
{{- if eq $component "pod_dependency" -}}
|
|
{{- $_ := set $envAll.Values.__kubernetes_entrypoint_init_container "deps" ( index $envAll.Values.pod_dependency ) -}}
|
|
{{- else -}}
|
|
{{- $_ := set $envAll.Values.__kubernetes_entrypoint_init_container "deps" ( index $envAll.Values.dependencies.static $component ) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- $deps := $envAll.Values.__kubernetes_entrypoint_init_container.deps }}
|
|
|
|
- name: init
|
|
{{ tuple $envAll "dep_check" | include "helm-toolkit.snippets.image" | indent 2 }}
|
|
env:
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.name
|
|
- name: NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.namespace
|
|
- name: INTERFACE_NAME
|
|
value: eth0
|
|
- name: PATH
|
|
value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/
|
|
- name: DEPENDENCY_SERVICE
|
|
value: "{{ tuple $deps.services $envAll | include "helm-toolkit.utils.comma_joined_service_list" }}"
|
|
{{- if $deps.jobs -}}
|
|
{{- if kindIs "string" (index $deps.jobs 0) }}
|
|
- name: DEPENDENCY_JOBS
|
|
value: "{{ include "helm-toolkit.utils.joinListWithComma" $deps.jobs }}"
|
|
{{- else }}
|
|
- name: DEPENDENCY_JOBS_JSON
|
|
value: {{- toJson $deps.jobs | quote -}}
|
|
{{- end -}}
|
|
{{- end }}
|
|
- name: DEPENDENCY_DAEMONSET
|
|
value: "{{ include "helm-toolkit.utils.joinListWithComma" $deps.daemonset }}"
|
|
- name: DEPENDENCY_CONTAINER
|
|
value: "{{ include "helm-toolkit.utils.joinListWithComma" $deps.container }}"
|
|
- name: DEPENDENCY_POD_JSON
|
|
value: {{ if $deps.pod }}{{ toJson $deps.pod | quote }}{{ else }}""{{ end }}
|
|
- name: COMMAND
|
|
value: "echo done"
|
|
command:
|
|
- kubernetes-entrypoint
|
|
volumeMounts:
|
|
{{ toYaml $mounts | indent 4 }}
|
|
{{- end -}}
|