diff options
| author | Robert Günzler <r@gnzler.io> | 2020-04-23 13:29:12 +0200 |
|---|---|---|
| committer | Robert Günzler <r@gnzler.io> | 2020-04-23 13:29:12 +0200 |
| commit | 3952f85268b22f05d160ffbf830b264cef54764a (patch) | |
| tree | 870b1c2fe5c3f81e40a371cbba57a9b5d6017178 /.config/yamlfs/helm.yml | |
| parent | a1c9f2a571a8359ae2ca60f48aed520615a6dc21 (diff) | |
yamlfs: Update go, add helm chart
Diffstat (limited to '.config/yamlfs/helm.yml')
| -rw-r--r-- | .config/yamlfs/helm.yml | 378 |
1 files changed, 378 insertions, 0 deletions
diff --git a/.config/yamlfs/helm.yml b/.config/yamlfs/helm.yml new file mode 100644 index 0000000..f15f02c --- /dev/null +++ b/.config/yamlfs/helm.yml @@ -0,0 +1,378 @@ +README.md: |- + # {% .name %} + + ## Configuration + + | Parameter | Default | Description + |-----------|---------|------------ + | replicas | 1 | + | image.repository | | + | image.tag | latest | + | image.pullPolicy | Always | + | service.port | 8080 | + | service.type | ClusterIP | + | service.loadBalancerIP | "" | + | service.annotations | [] | +{%- if .configmap %} + | configmap.config | "" | +{%- end %} + | nodeSelector | {} | + | affinity | {} | + | podAnnotations | {} | + | prometheus.enabled | false | +{%- if .ingress %} + | ingress.enabled | false | + | ingress.annotations | {} | + | ingress.hosts | false | + | ingress.path | / | + | ingress.tls | {} | +{%- end %} +{%- if .pvc %} + | persistence.enabled | false | + | persistence.accessModes | [ReadOnlyOnce] | + | persistence.size | 500Mi | + | persistence.storageClass | "-" | + | persistence.existingClaim | "" | + | persistence.subPath | "" | + | persistence.hostPath | "" | this skips setting up any PVs/PVCs +{%- end %} + | resources.requests.memory | | + | resources.requests.cpu | | + | resources.limits.memory | | + | resources.limits.cpu | | + +Chart.yaml: |- + apiVersion: v1 + name: {% .name %} + version: {% default "0.1.0" .version %} + description: {% default "TODO" .desc %} + home: TODO + icon: TODO + sources: + - TODO + maintainers: + - name: TODO + email: TODO + engine: gotpl + +values.yaml: |- + replicas: 1 + + image: + repository: docker.io/TODO/TODO + tag: latest + pullPolicy: Always + + additionalArgs: [] + + # service: + # port: 8080 + +{%- if .configmap %} + # configmap: + # config: |- + # # TODO +{%- end %} + + nodeSelector: {} + affinity: {} + + podAnnotations: {} + + prometheus: + enabled: false + +{%- if .ingress %} + ingress: + enabled: false + # annotations: + # - TODO + # path: / + # hosts: + # - TODO + # tls: +{%- end %} + +{%- if .pvc %} + ## Enable persistence using Persistent Volume Claims + ## ref: http://kubernetes.io/docs/user-guide/persistent-volumes/ + ## + persistence: + enabled: true + + accessModes: + - ReadWriteOnce + + ## Persistent Volume Size + size: 5Gi + + ## Persistent Volume Storage Class + ## If defined, storageClassName: <storageClass> + ## If set to "-", storageClassName: "", which disables dynamic provisioning + ## If undefined (the default) or set to null, no storageClassName spec is + ## set, choosing the default provisioner. (gp2 on AWS, standard on + ## GKE, AWS & OpenStack) + ## + # storageClass: "-" + + ## PersistentVolume existing claim name + ## If defined, PVC must be created manually before volume will be bound + ## + existingClaim: "" + + ## Subdirectory of Persistent Volume to mount + ## Useful if the volume's root directory is not empty + ## + subPath: "" + + ## Host directory to mount in to the pod + ## Only use with nodeSelector! + # hostPath: "" +{%- end %} + + ## Configure resource requests and limits + ## ref: http://kubernetes.io/docs/user-guide/compute-resources/ + ## + # resources: + # requests: + # memory: 512Mi + # cpu: 300m + # limits: + # memory: 2Gi + # cpu: 1.0 + +templates: + _helpers.tpl: |- + {{/* vim: set filetype=mustache: */}} + + {{/* + Expand the name of the chart. + */}} + {{- define "{% .name %}.name" -}} + {{- printf "%s" .Chart.Name | trunc 63 | trimSuffix "-" -}} + {{- end -}} + + {{/* + Create a default fully qulified app name. + We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). + */}} + {{- define "{% .name %}.fullname" -}} + {{- $name := default .Chart.Name .Values.nameOverride -}} + {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} + {{- end -}} + + {{/* + Create chart name and version as used by the chart label. + */}} + {{- define "{% .name %}.chart" -}} + {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} + {{- end -}} + + deployment.yaml: |- + apiVersion: apps/v1 + kind: Deployment + metadata: + name: {{ template "{% .name %}.name" }} + labels: + app.kubernetes.io/name: {{ template "{% .name %}.name" . }} + app: {{ template "{% .name %}.name" . }} + chart: {{ template "{% .name %}.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + spec: + replicas: {{ default 1 .Values.replicas }} + selector: + matchLabels: + app: {{ template "{% .name %}.name" . }} + release: "{{ .Release.Name }}" + template: + metadata: + labels: + app.kubernetes.io/name: {{ template "{% .name %}.name" . }} + app: {{ template "{% .name %}.name" . }} + annotations: + {{- if .Values.prometheus.enabled }} + prometheus.io/scrape: "true" + {{- end }} + {{- if .Values.podAnnotations }} + {{- .Values.podAnnotations | toYaml | indent 8 }} + {{- end }} + spec: + {{- if .Values.nodeSelector }} + nodeSelector: + {{- .Values.nodeSelector | toYaml | trimSuffix "\n" | nindent 8 }} + {{- end }} + {{- if .Values.affinity }} + affinity: + {{- .Values.affinity | toYaml | trimSuffix "\n" | nindent 8 }} + {{- end }} + containers: + - name: {{ template "{% .name %}.fullname" . }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ default "" .Values.imagePullPolicy | quote }} + args: + {{- if .Values.additionalArgs }} + {{- .Values.additionalArgs | toYaml | indent 10 }} + {{- end }} + ports: + - name: http + containerPort: TODO + # livenessProbe: + # readinessProbe: + env: [] + volumeMounts: +{%- if .pvc %} + - name: {% .name %}-data + mountPath: /data +{%- end %} + {{- if .Values.configmap }} + - name: {% .name %}-config + mountPath: /config + {{- end }} + volumes: +{%- if .pvc %} + - name: {% .name %}-data + {{- if .Values.persistence.enabled }} + {{- if .Values.persistence.hostPath }} + hostPath: + path: {{ .Values.persistence.hostPath | quote }} + type: Directory + {{- else }} + persistentVolumeClaim: + claimName: {{ if .Values.persistence.existingClaim }}{{ .Values.persistence.existingClaim }}{{- else }}{{ template "{% .name %}.name" . }}{{- end }} + {{- end }} + {{- else }} + emptyDir: {} + {{- end }} +{%- end %} +{%- if .configmap %} + {{- if .Values.configmap }} + - name: {% .name %}-config + configMap: + name: {{ template "{% .name %}.name" . }}-config + {{- end }} +{%- end %} + resources: + {{- toYaml .Values.resources | indent 10 }} + + svc.yaml: |- + apiVersion: v1 + kind: Service + metadata: + name: {{ template "{% .name %}.name" }} + labels: + app.kubernetes.io/name: {{ template "{% .name %}.name" . }} + app: {{ template "{% .name %}.name" . }} + chart: {{ template "{% .name %}.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + {{- if .Values.service.annotations }} + annotations: + {{- .Values.service.annotations | toYaml | trimSuffix "\n" | nindent 4 }} + {{- end }} + spec: + {{ $serviceType := default "ClusterIP" .Values.service.type }} + type: {{ $serviceType }} + {{- if eq $serviceType "LoadBalancer" }} + loadBalancerIP: {{ default "" .Values.service.loadBalancerIP }} + {{- end }} + ports: + - name: http + port: {{ default "80" .Values.service.Port }} + targetPort: http + selector: + app: {{ template "{% .name %}.name" . }} + release: "{{ .Release.Name }}" + +{%- if .ingress %} + ingress.yaml: |- + {{- if .Values.ingress.enabled -}} + {{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} + apiVersion: networking.k8s.io/v1beta1 + {{- else -}} + apiVersion: extensions/v1beta1 + {{- end }} + kind: Ingress + metadata: + name: {{ template "{% .name %}.name" }} + labels: + app.kubernetes.io/name: {{ template "{% .name %}.name" . }} + app: {{ template "{% .name %}.name" . }} + chart: {{ template "{% .name %}.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + {{- if .Values.ingress.annotations }} + annotations: + {{- .Values.ingress.annotations | toYaml | trimSuffix "\n" | nindent 4 }} + {{- end }} + spec: + {{- with .Values.ingress.tls }} + tls: + {{- toYaml . | indent 4 }} + {{- end }} + rules: + {{ $ingressPath := default "/" .Values.ingress.path }} + {{ $fullname := template "{% .name %}.name" . }} + {{- range .Values.ingress.hosts }} + - host: {{ . | quote }} + http: + paths: + - path: {{ $ingressPath }} + backend: + serviceName: {{ $fullname }} + servicePort: http + {{- end }} + {{- end -}} +{%- end %} + +{%- if .pvc %} + pvc.yaml: |- + {{- if .Values.persistence.enabled -}} + {{- if not .Values.persistence.hostPath -}} + {{- if not .Values.persistence.existingClaim -}} + kind: PersistentVolumeClaim + apiVersion: v1 + metadata: + name: {{ template "{% .name %}.name" }} + labels: + app.kubernetes.io/name: {{ template "{% .name %}.name" . }} + app: {{ template "{% .name %}.name" . }} + chart: {{ template "{% .name %}.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + spec: + accessModes: + {{- toYaml .Values.persistence.accessModes | indent 4 }} + {{- if .Values.persistence.storageClass }} + {{- if (eq "-" .Values.persistence.storageClass) }} + storageClassName: "" + {{- else }} + storageClassName: "{{ .Values.persistence.storageClass }}" + {{- end }} + {{- end }} + resources: + requests: + storage: {{ .Values.persistence.size }} + {{- end -}} + {{- end -}} + {{- end -}} +{%- end %} + +{%- if .configmap %} + configmap.yaml: |- + {{- if .Values.configmap }} + apiVersion: v1 + kind: ConfigMap + metadata: + name: {{ template "{% .name %}.name" }} + labels: + app.kubernetes.io/name: {{ template "{% .name %}.name" . }} + app: {{ template "{% .name %}.name" . }} + chart: {{ template "{% .name %}.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} + data: + {{- .Values.configmap | indent 2 }} + {{- end -}} +{%- end %} + |