591 lines
15 KiB
Text
Executable file
591 lines
15 KiB
Text
Executable file
snippet service_sample_spec
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
{{- if .Values.$1.service.annotations }}
|
|
annotations:
|
|
{{ toYaml .Values.$1.service.annotations | indent 4 }}
|
|
{{- end }}
|
|
labels:
|
|
{{- if .Values.$1.service.labels }}
|
|
{{ toYaml .Values.$1.service.labels | indent 4 }}
|
|
{{- end }}
|
|
app: {{ template "$2.name" . }}
|
|
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
|
|
component: "{{ .Values.$1.name }}"
|
|
heritage: {{ .Release.Service }}
|
|
release: {{ .Release.Name }}
|
|
name: {{ template "$2.$1.fullname" . }}
|
|
spec:
|
|
clusterIP: "{{ .Values.$1.service.clusterIP }}"
|
|
{{- if .Values.$1.service.externalIPs }}
|
|
externalIPs:
|
|
{{ toYaml .Values.$1.service.externalIPs | indent 4 }}
|
|
{{- end }}
|
|
{{- if .Values.$1.service.loadBalancerIP }}
|
|
loadBalancerIP: "{{ .Values.$1.service.loadBalancerIP }}"
|
|
{{- end }}
|
|
{{- if .Values.$1.service.loadBalancerSourceRanges }}
|
|
loadBalancerSourceRanges:
|
|
{{ toYaml .Values.$1.service.loadBalancerSourceRanges | indent 4 }}
|
|
{{- end }}
|
|
healthCheckNodePort: {{ .Values.$1.service.healthCheckNodePort }}
|
|
ports:
|
|
- name: http
|
|
port: 80
|
|
protocol: TCP
|
|
targetPort: {{ .Values.$1.service.targetPorts.http }}
|
|
{{- if (and (eq .Values.$1.service.type "NodePort") (not (empty .Values.$1.service.nodePorts.http))) }}
|
|
nodePort: {{ .Values.$1.service.nodePorts.http }}
|
|
{{- end }}
|
|
- name: https
|
|
port: 443
|
|
protocol: TCP
|
|
targetPort: {{ .Values.$1.service.targetPorts.https }}
|
|
{{- if (and (eq .Values.$1.service.type "NodePort") (not (empty .Values.$1.service.nodePorts.https))) }}
|
|
nodePort: {{ .Values.$1.service.nodePorts.https }}
|
|
{{- end }}
|
|
{{- range $key, $value := .Values.tcp }}
|
|
- name: "{{ $key }}-tcp"
|
|
port: {{ $key }}
|
|
protocol: TCP
|
|
targetPort: "{{ $key }}-tcp"
|
|
{{- end }}
|
|
{{- range $key, $value := .Values.udp }}
|
|
- name: "{{ $key }}-udp"
|
|
port: {{ $key }}
|
|
protocol: UDP
|
|
targetPort: "{{ $key }}-udp"
|
|
{{- end }}
|
|
selector:
|
|
app: {{ template "${2:chartName}.name" . }}
|
|
component: "{{ .Values.$1.name }}"
|
|
release: {{ .Release.Name }}
|
|
type: "{{ .Values.${1:value_key}.service.type }}"
|
|
|
|
snippet service_spec
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
{{- if .Values.$1.service.annotations }}
|
|
annotations:
|
|
{{ toYaml .Values.$1.service.annotations | indent 4 }}
|
|
{{- end }}
|
|
labels:
|
|
{{- if .Values.$1.service.labels }}
|
|
{{ toYaml .Values.$1.service.labels | indent 4 }}
|
|
{{- end }}
|
|
app: {{ template "$2.name" . }}
|
|
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
|
|
component: "{{ .Values.$1.name }}"
|
|
heritage: {{ .Release.Service }}
|
|
release: {{ .Release.Name }}
|
|
name: {{ template "${2:chartName}.${1:value_key}.fullname" . }}
|
|
# spec
|
|
${0}
|
|
|
|
snippet annotations_spec
|
|
{{- if .Values.$1.service.annotations }}
|
|
annotations:
|
|
{{ toYaml .Values.${1:value_key}.service.annotations | indent 4 }}
|
|
{{- end }}
|
|
${0}
|
|
|
|
snippet labels_spec
|
|
labels:
|
|
{{- if .Values.$1.service.labels }}
|
|
{{ toYaml .Values.$1.service.labels | indent 4 }}
|
|
{{- end }}
|
|
app: {{ template "$2.name" . }}
|
|
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
|
|
component: "{{ .Values.$1.name }}"
|
|
heritage: {{ .Release.Service }}
|
|
release: {{ .Release.Name }}
|
|
name: {{ template "${2:chartName}.${1:value_key}.fullname" . }}
|
|
${0}
|
|
|
|
snippet service_spec
|
|
spec:
|
|
type: "{{ .Values.$1.service.type }}"
|
|
clusterIP: "{{ .Values.$1.service.clusterIP }}"
|
|
{{- if .Values.$1.service.externalIPs }}
|
|
externalIPs:
|
|
{{ toYaml .Values.$1.service.externalIPs | indent 4 }}
|
|
{{- end }}
|
|
{{- if .Values.$1.service.loadBalancerIP }}
|
|
loadBalancerIP: "{{ .Values.$1.service.loadBalancerIP }}"
|
|
{{- end }}
|
|
{{- if .Values.$1.service.loadBalancerSourceRanges }}
|
|
loadBalancerSourceRanges:
|
|
{{ toYaml .Values.$1.service.loadBalancerSourceRanges | indent 4 }}
|
|
{{- end }}
|
|
{{- if and (semverCompare ">=1.7-0" .Capabilities.KubeVersion.GitVersion) (.Values.$1.service.externalTrafficPolicy) }}
|
|
externalTrafficPolicy: "{{ .Values.$1.service.externalTrafficPolicy }}"
|
|
{{- end }}
|
|
{{- if and (semverCompare ">=1.7-0" .Capabilities.KubeVersion.GitVersion) (.Values.$1.service.healthCheckNodePort) }}
|
|
healthCheckNodePort: {{ .Values.${1:value_key}.service.healthCheckNodePort }}
|
|
{{- end }}
|
|
${0}
|
|
|
|
snippet ports_spec
|
|
ports:
|
|
${0}
|
|
|
|
snippet portHTTP_spec
|
|
- name: http
|
|
port: 80
|
|
protocol: TCP
|
|
targetPort: {{ .Values.$1.service.targetPorts.http }}
|
|
{{- if (and (eq .Values.$1.service.type "NodePort") (not (empty .Values.$1.service.nodePorts.http))) }}
|
|
nodePort: {{ .Values.${1:value_key}.service.nodePorts.http }}
|
|
{{- end }}
|
|
${0}
|
|
|
|
snippet portHTTPS_spec
|
|
- name: https
|
|
port: 443
|
|
protocol: TCP
|
|
targetPort: {{ .Values.$1.service.targetPorts.https }}
|
|
{{- if (and (eq .Values.$1.service.type "NodePort") (not (empty .Values.$1.service.nodePorts.https))) }}
|
|
nodePort: {{ .Values.${1:value_key}.service.nodePorts.https }}
|
|
{{- end }}
|
|
${0}
|
|
|
|
snippet portTCP_spec
|
|
{{- range $key, $value := .Values.tcp }}
|
|
- name: "{{ $key }}-tcp"
|
|
port: {{ $key }}
|
|
protocol: TCP
|
|
targetPort: "{{ $key }}-tcp"
|
|
{{- end }}
|
|
${0}
|
|
|
|
snippet portUDP_spec
|
|
{{- range $key, $value := .Values.udp }}
|
|
- name: "{{ $key }}-udp"
|
|
port: {{ $key }}
|
|
protocol: UDP
|
|
targetPort: "{{ $key }}-udp"
|
|
{{- end }}
|
|
${0}
|
|
|
|
|
|
snippet selector_spec
|
|
selector:
|
|
app: {{ template "${2:chartName}.name" . }}
|
|
component: "{{ .Values.${1:value_key}.name }}"
|
|
release: {{ .Release.Name }}
|
|
${0}
|
|
|
|
|
|
snippet deploy_sample_spec
|
|
{{- if .Values.$1.enabled }}
|
|
apiVersion: extensions/v1beta1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: {{ template "$2.name" . }}
|
|
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
|
|
component: "{{ .Values.$1.name }}"
|
|
heritage: {{ .Release.Service }}
|
|
release: {{ .Release.Name }}
|
|
name: {{ template "$2.$1.fullname" . }}
|
|
spec:
|
|
replicas: {{ .Values.$1.replicaCount }}
|
|
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
|
|
template:
|
|
metadata:
|
|
{{- if .Values.$1.podAnnotations }}
|
|
annotations:
|
|
{{ toYaml .Values.$1.podAnnotations | indent 8 }}
|
|
{{- end }}
|
|
labels:
|
|
app: {{ template "$2.name" . }}
|
|
component: "{{ .Values.$1.name }}"
|
|
release: {{ .Release.Name }}
|
|
{{- if .Values.$1.podLabels }}
|
|
{{ toYaml .Values.$1.podLabels | indent 8 }}
|
|
{{- end }}
|
|
spec:
|
|
{{- if .Values.imagePullSecrets }}
|
|
imagePullSecrets:
|
|
{{ toYaml .Values.imagePullSecrets | indent 8 }}
|
|
{{- end }}
|
|
containers:
|
|
- name: {{ template "${2:chartName}.name" . }}-{{ .Values.$1.name }}
|
|
image: "{{ .Values.$1.image.repository }}:{{ .Values.$1.image.tag }}"
|
|
imagePullPolicy: "{{ .Values.$1.image.pullPolicy }}"
|
|
args:
|
|
{{- range $key, $value := .Values.$1.extraArgs }}
|
|
{{- if $value }}
|
|
- --{{ $key }}={{ $value }}
|
|
{{- else }}
|
|
- --{{ $key }}
|
|
{{- end }}
|
|
{{- end }}
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /healthz
|
|
port: 8080
|
|
scheme: HTTP
|
|
initialDelaySeconds: 30
|
|
timeoutSeconds: 5
|
|
ports:
|
|
- name: http
|
|
containerPort: 8080
|
|
protocol: TCP
|
|
resources:
|
|
{{ toYaml .Values.$1.resources | indent 12 }}
|
|
{{- if .Values.$1.nodeSelector }}
|
|
nodeSelector:
|
|
{{ toYaml .Values.$1.nodeSelector | indent 8 }}
|
|
{{- end }}
|
|
{{- if .Values.$1.tolerations }}
|
|
tolerations:
|
|
{{ toYaml .Values.$1.tolerations | indent 8 }}
|
|
{{- end }}
|
|
{{- if .Values.$1.affinity }}
|
|
affinity:
|
|
{{ toYaml .Values.${1:value_key}.affinity | indent 8 }}
|
|
{{- end }}
|
|
terminationGracePeriodSeconds: 60
|
|
{{- end }}
|
|
|
|
|
|
|
|
snippet deploy_spec
|
|
{{- if .Values.$1.enabled }}
|
|
apiVersion: extensions/v1beta1
|
|
kind: Deployment
|
|
metadata:
|
|
labels:
|
|
app: {{ template "$2.name" . }}
|
|
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
|
|
component: "{{ .Values.$1.name }}"
|
|
heritage: {{ .Release.Service }}
|
|
release: {{ .Release.Name }}
|
|
name: {{ template "${2:chartName}.${1:value_key}.fullname" . }}
|
|
# spec
|
|
# containers_spec
|
|
# livenessProbe_spec
|
|
# PersistentVolumeClaim_spec
|
|
# initContainers_spec
|
|
# resources_spec
|
|
# nodeselector_spec
|
|
# tolerations_spec
|
|
# affinity_spec
|
|
${0}
|
|
|
|
snippet spec_spec
|
|
spec:
|
|
replicas: {{ .Values.$1.replicaCount }}
|
|
revisionHistoryLimit: {{ .Values.revisionHistoryLimit }}
|
|
template:
|
|
metadata:
|
|
{{- if .Values.$1.podAnnotations }}
|
|
annotations:
|
|
{{ toYaml .Values.$1.podAnnotations | indent 8 }}
|
|
{{- end }}
|
|
labels:
|
|
app: {{ template "${2:chartName}.name" . }}
|
|
component: "{{ .Values.$1.name }}"
|
|
release: {{ .Release.Name }}
|
|
{{- if .Values.$1.podLabels }}
|
|
{{ toYaml .Values.${1:value_key}.podLabels | indent 8 }}
|
|
{{- end }}
|
|
spec:
|
|
{{- if .Values.imagePullSecrets }}
|
|
imagePullSecrets:
|
|
{{ toYaml .Values.imagePullSecrets | indent 8 }}
|
|
{{- end }}
|
|
${0}
|
|
|
|
snippet imagePullSecrets_spec
|
|
{{- if .Values.imagePullSecrets }}
|
|
imagePullSecrets:
|
|
{{ toYaml .Values.imagePullSecrets | indent 8 }}
|
|
{{- end }}
|
|
${0}
|
|
|
|
snippet imagePullPolicy_spec
|
|
imagePullPolicy: ${1:imagePullPolicy}
|
|
${0}
|
|
|
|
snippet containers_spec
|
|
containers:
|
|
- name: {{ template "${2:chartName}.name" . }}-{{ .Values.$1.name }}
|
|
image: "{{ .Values.$1.image.repository }}:{{ .Values.$1.image.tag }}"
|
|
imagePullPolicy: "{{ .Values.${1:value_key}.image.pullPolicy }}"
|
|
${0}
|
|
snippet args_spec
|
|
args:
|
|
{{- range $key, $value := .Values.${1:value_key}.extraArgs }}
|
|
{{- if $value }}
|
|
- --{{ $key }}={{ $value }}
|
|
{{- else }}
|
|
- --{{ $key }}
|
|
{{- end }}
|
|
{{- end }}
|
|
${0}
|
|
snippet livenessProbe_spec
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /healthz
|
|
port: 8080
|
|
scheme: HTTP
|
|
initialDelaySeconds: 30
|
|
timeoutSeconds: 5
|
|
${0}
|
|
snippet readinessProbe_spec
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /go/api/v1/health
|
|
port: 8153
|
|
initialDelaySeconds: {{ .Values.$1.healthCheck.initialDelaySeconds }}
|
|
periodSeconds: {{ .Values.$1.healthCheck.periodSeconds }}
|
|
failureThreshold: {{ .Values.$1.healthCheck.failureThreshold }}
|
|
${0}
|
|
snippet resources_spec
|
|
resources:
|
|
{{ toYaml .Values.${1:value_key}.resources | indent 12 }}
|
|
${0}
|
|
snippet nodeselector_spec
|
|
{{- if .Values.$1.nodeSelector }}
|
|
nodeSelector:
|
|
{{ toYaml .Values.${1:value_key}.nodeSelector | indent 8 }}
|
|
{{- end }}
|
|
${0}
|
|
snippet tolerations_spec
|
|
{{- if .Values.$1.tolerations }}
|
|
tolerations:
|
|
{{ toYaml .Values.${1:value_key}.tolerations | indent 8 }}
|
|
{{- end }}
|
|
${0}
|
|
snippet affinity_spec
|
|
{{- if .Values.$1.affinity }}
|
|
affinity:
|
|
{{ toYaml .Values.${1:value_key}.affinity | indent 8 }}
|
|
{{- end }}
|
|
terminationGracePeriodSeconds: 60
|
|
{{- end }}
|
|
${0}
|
|
|
|
snippet PersistentVolumeClaim_spec
|
|
kind: PersistentVolumeClaim
|
|
apiVersion: v1
|
|
metadata:
|
|
name: {{ template "${2}.$1.fullname" . }}
|
|
labels:
|
|
app: {{ template "${2:chartName}.name" . }}
|
|
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
|
release: "{{ .Release.Name }}"
|
|
heritage: "{{ .Release.Service }}"
|
|
spec:
|
|
accessModes:
|
|
- {{ .Values.$1.persistence.accessMode | quote }}
|
|
resources:
|
|
requests:
|
|
storage: {{ .Values.$1.persistence.size | quote }}
|
|
{{- if .Values.$1.persistence.storageClass }}
|
|
{{- if (eq "-" .Values.$1.persistence.storageClass) }}
|
|
storageClassName: ""
|
|
{{- else }}
|
|
storageClassName: "{{ .Values.${1:value_key}.persistence.storageClass }}"
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
${0}
|
|
|
|
snippet configMap_spec
|
|
{{- if .Values.artifactory.enabled -}}
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: {{ template "${2:chartName}.fullname" . }}-${1:value_key}-config
|
|
labels:
|
|
app: {{ template "${2}.name" . }}
|
|
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
|
|
heritage: {{ .Release.Service }}
|
|
release: {{ .Release.Name }}
|
|
data:
|
|
${3:nameOfConfigFile}.conf: |
|
|
# data goes here
|
|
{{- end -}}
|
|
${0}
|
|
|
|
snippet initContainers_spec
|
|
{{- if .Values.$1.initContainers }}
|
|
initContainers:
|
|
- name: wait-workers
|
|
image: "{{ .Values.$1.image.repository }}:{{ .Values.$1.image.tag }}"
|
|
imagePullPolicy: {{ .Values.${1:value_key}.image.pullPolicy }}
|
|
# env
|
|
command:
|
|
- sh
|
|
- -c
|
|
- |
|
|
until printf "." && nc -z -w 2 {{ template "${2:chartName}.fullname" . }} {{ .Values.postgresql.service.port }}; do
|
|
sleep 2;
|
|
done;
|
|
|
|
echo 'PostgreSQL OK ✓'
|
|
# args
|
|
{{- end }}
|
|
${0}
|
|
|
|
snippet pvc_spec
|
|
kind: PersistentVolumeClaim
|
|
apiVersion: v1
|
|
metadata:
|
|
name: {{ template "$2.fullname" . }}
|
|
labels:
|
|
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
|
release: "{{ .Release.Name }}"
|
|
heritage: "{{ .Release.Service }}"
|
|
app: {{ template "${2:chartName}.fullname" . }}
|
|
spec:
|
|
accessModes:
|
|
- {{ .Values.persistence.accessMode | quote }}
|
|
resources:
|
|
requests:
|
|
storage: {{ .Values.persistence.size | quote }}
|
|
{{- if .Values.persistence.storageClass }}
|
|
{{- if (eq "-" .Values.persistence.storageClass) }}
|
|
storageClassName: ""
|
|
{{- else }}
|
|
storageClassName: "{{ .Values.persistence.storageClass }}"
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
${0}
|
|
|
|
snippet pv_nfs_spec
|
|
apiVersion: v1
|
|
kind: PersistentVolume
|
|
metadata:
|
|
name: {{ template "$2.fullname" . }}-data-pv
|
|
labels:
|
|
app: {{ template "$2.name" . }}
|
|
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
|
|
heritage: {{ .Release.Service }}
|
|
release: {{ .Release.Name }}
|
|
id: {{ template "${2:chartName}.name" . }}-data-pv
|
|
type: nfs-volume
|
|
spec:
|
|
capacity:
|
|
storage: {{ .Values.$1.persistence.nfs.capacity }}
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
persistentVolumeReclaimPolicy: Retain
|
|
nfs:
|
|
server: {{ .Values.$1.persistence.nfs.ip }}
|
|
path: "{{ .Values.${1:value_key}.persistence.nfs.haDataMount }}"
|
|
readOnly: false
|
|
${0}
|
|
|
|
snippet pvc_hostpath_spec
|
|
{{- if and .Values.persistence.enabled .Values.persistence.$1.hostPath (not
|
|
.Values.persistence.$1.existingClaim) -}}
|
|
apiVersion: v1
|
|
kind: PersistentVolume
|
|
metadata:
|
|
name: {{ template "${2:chartName}.fullname" . }}-$1
|
|
spec:
|
|
accessModes:
|
|
- {{ .Values.persistence.$1.accessMode | quote }}
|
|
capacity:
|
|
storage: {{ .Values.persistence.$1.size | quote }}
|
|
hostPath:
|
|
path: {{ .Values.persistence.${1:value_key}.hostPath | quote }}
|
|
{{- end -}}
|
|
${0}
|
|
|
|
snippet deploy_values
|
|
$1:
|
|
name: ${1:value_key}
|
|
image:
|
|
repository:
|
|
tag:
|
|
pullPolicy: IfNotPresent
|
|
hostNetwork: false
|
|
dnsPolicy: ClusterFirst
|
|
daemonset:
|
|
useHostPort: false
|
|
podLabels: {}
|
|
scope:
|
|
enabled: false
|
|
namespace: "" # defaults to .Release.Namespace
|
|
extraArgs: {}
|
|
extraEnvs: []
|
|
kind: Deployment
|
|
updateStrategy: {}
|
|
minReadySeconds: 0
|
|
tolerations: []
|
|
affinity: {}
|
|
nodeSelector: {}
|
|
podAnnotations: {}
|
|
replicaCount: 1
|
|
minAvailable: 1
|
|
resources: {}
|
|
autoscaling:
|
|
enabled: false
|
|
extraContainers: {}
|
|
extraVolumeMounts: {}
|
|
extraVolumes: {}
|
|
extraInitContainers: []
|
|
lifecycle: {}
|
|
revisionHistoryLimit: 10
|
|
${0}
|
|
|
|
snippet rbac_values
|
|
${1:value_key}:
|
|
rbac:
|
|
create: true
|
|
serviceAccount:
|
|
create: true
|
|
name:
|
|
imagePullSecrets: []
|
|
${0}
|
|
|
|
snippet service_values
|
|
${1:value_key}:
|
|
service:
|
|
annotations: {}
|
|
labels: {}
|
|
clusterIP: ""
|
|
externalIPs: []
|
|
loadBalancerIP: ""
|
|
loadBalancerSourceRanges: []
|
|
externalTrafficPolicy: ""
|
|
healthCheckNodePort: 0
|
|
targetPorts:
|
|
http: http
|
|
https: https
|
|
type: LoadBalancer
|
|
nodePorts:
|
|
http: ""
|
|
https: ""
|
|
${0}
|
|
|
|
snippet readinessProbe_values
|
|
${1:value_key}:
|
|
readinessProbe:
|
|
failureThreshold: 3
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
successThreshold: 1
|
|
timeoutSeconds: 1
|
|
port: 10254
|
|
${0}
|
|
|
|
snippet livenessProbe_values
|
|
${1:value_key}:
|
|
livenessProbe:
|
|
failureThreshold: 3
|
|
initialDelaySeconds: 10
|
|
periodSeconds: 10
|
|
successThreshold: 1
|
|
timeoutSeconds: 1
|
|
port: 10254
|
|
${0}
|