templates

package
v0.0.0-...-77adf46 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 15, 2020 License: Apache-2.0 Imports: 0 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultYamls = map[string]string{
		"_helpers.tpl": `{{/*
check if we should create a kubernetes secret with docker credentials to pull images
*/}}
{{- define "dockerjson" -}}
{{- $username := .Values.dockerRegistry.username -}}
{{- $password := .Values.dockerRegistry.password -}}
{{- $name := .Values.dockerRegistry.registryName -}}
{{- $auth :=  (printf "%s:%s" $username $password) | b64enc -}}
{{- $value := (printf "{\"auths\":{\"%s\":{\"username\":\"%s\",\"password\":\"%s\",\"auth\":\"%v\"}}}\"" $name $username $password $auth ) -}}
{{- printf "%v" ( $value | b64enc ) -}}
{{- end -}}`,
		"deployment.yaml": `{{ range $_, $deployment := .Values.app.deployments }}
  {{ range $_, $process := $deployment.processes }}
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: {{ printf "%s-%s-%v" $.Values.app.name $process.name $deployment.version }}
    shipa.io/app-name: {{ $.Values.app.name }}
    shipa.io/app-process: {{ $process.name }}
    shipa.io/app-process-replicas: {{ $process.units | quote }}
    shipa.io/app-deployment-version: {{ $deployment.version | quote }}
    shipa.io/is-isolated-run: "false"
    {{- range $i, $label := $deployment.labels }}
    {{ $label.name }}: {{ $label.value }}
    {{- end }}
  name: {{ $.Values.app.name }}-{{ $process.name }}-{{ $deployment.version }}
spec:
  replicas: {{ $process.units }}
  selector:
    matchLabels:
      app: {{ printf "%s-%s-%v" $.Values.app.name $process.name $deployment.version }}
      shipa.io/app-name: {{ $.Values.app.name }}
      shipa.io/app-process: {{ $process.name }}
      shipa.io/app-deployment-version: {{ $deployment.version | quote }}
      shipa.io/is-isolated-run: "false"
  template:
    metadata:
      labels:
        app: {{ printf "%s-%s-%v" $.Values.app.name $process.name $deployment.version }}
        shipa.io/app-name: {{ $.Values.app.name }}
        shipa.io/app-process: {{ $process.name }}
        shipa.io/app-deployment-version: {{ $deployment.version | quote }}
        shipa.io/is-isolated-run: "false"
    spec:
      containers:
        - name: {{ $.Values.app.name }}-{{ $process.name }}-{{ $deployment.version }}
          command: {{ $process.cmd | toJson }}
          {{- if or $process.env $.Values.app.env }}
          env:
          {{- if $process.env }}
{{ $process.env | toYaml | indent 12 }}
          {{- end }}
          {{- if $.Values.app.env }}
{{ $.Values.app.env | toYaml | indent 12 }}
          {{- end }}
          {{- end }}
          image: {{ $deployment.image }}
          {{- if $process.containerPorts }}
          ports:
{{ $process.containerPorts | toYaml | indent 10 }}
          {{- end }}
          {{- if $process.extra.volumeMounts }}
          volumeMounts:
{{ $process.extra.volumeMounts | toYaml | indent 12 }}
          {{- end }}
          {{- if $process.extra.resourceRequirements }}
          resources:
{{ $process.extra.resourceRequirements | toYaml | indent 12 }}
          {{- end }}
          {{- if $process.extra.lifecycle }}
          lifecycle:
{{ $process.extra.lifecycle | toYaml | indent 12 }}
          {{- end }}
          {{- if $process.extra.securityContext }}
          securityContext:
{{ $process.extra.securityContext | toYaml | indent 12 }}
          {{- end }}
      {{- if or $.Values.dockerRegistry.imagePullSecret $.Values.dockerRegistry.createImagePullSecret }}
      imagePullSecrets:
      {{- if $.Values.dockerRegistry.imagePullSecret }}
        - name: {{ $.Values.dockerRegistry.imagePullSecret }}
      {{- end }}
      {{- if $.Values.dockerRegistry.createImagePullSecret }}
        - name: {{ $.Values.app.name }}-image-pull-secret
      {{- end }}
      {{- end }}
      {{- if $deployment.extra.volumes }}
      volumes:
{{ $deployment.extra.volumes | toYaml | indent 12 }}
      {{- end }}
      {{- if $process.extra.nodeSelectorTerms }}
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
{{ $process.extra.nodeSelectorTerms | toYaml | indent 14 }}
      {{- end }}
---
{{ end }}
{{ end }}
`,
		"image-pull-secret.yaml": `{{- if .Values.dockerRegistry.createImagePullSecret }}
apiVersion: v1
kind: Secret
metadata:
  name: {{ .Values.app.name }}-image-pull-secret
type: kubernetes.io/dockerconfigjson
data:
  .dockerconfigjson: {{ template "dockerjson" . }}
{{- end }}`,
		"ingress.yaml": `apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  annotations:
    {{- if .Values.ingressController.className }}
    kubernetes.io/ingress.class: {{ .Values.ingressController.className }}
    {{- end }}
    {{- if .Values.ingressController.traefik }}
    traefik.ingress.kubernetes.io/frontend-entry-points: {{ join "," .Values.ingressController.traefik.entryPoints }}
    traefik.ingress.kubernetes.io/service-weights: |
	  {{- range $_, $deployment := .Values.app.deployments }}
      {{- range $_, $process := $deployment.processes }}
      {{- if $process.routable }}
      {{ printf "%s-%s-%v" $.Values.app.name $process.name $deployment.version }}: {{ $deployment.routingSettings.weight }}
      {{- end }}
      {{- end }}
      {{- end }}
    {{- end }}
  labels:
    shipa.io/app-name: {{ $.Values.app.name }}
  name: {{ $.Values.app.name }}-http
spec:
  rules:
    {{- range $_, $cname := .Values.app.cnames.http }}
    - host: {{ $cname }}
      http:
        paths:
          {{- range $_, $deployment := $.Values.app.deployments }}
          {{- range $_, $process := $deployment.processes }}
          {{- if $process.routable }}
          - backend:
              serviceName: {{ printf "%s-%s-%v" $.Values.app.name $process.name $deployment.version }}
              servicePort: {{ $process.publicServicePort }}
          {{- end }}
          {{- end }}
          {{- end }}
    {{- end }}`,
		"service.yaml": `{{ range $_, $deployment := .Values.app.deployments }}
  {{ range $_, $process := $deployment.processes }}
  {{- if $process.servicePorts }}
apiVersion: v1
kind: Service
metadata:
  labels:
    app: {{ printf "%s-%s-%v" $.Values.app.name $process.name $deployment.version }}
    shipa.io/app-name: {{ $.Values.app.name }}
    shipa.io/app-process: {{ $process.name }}
    shipa.io/app-deployment-version: {{ $deployment.version | quote }}
    shipa.io/is-isolated-run: "false"
    {{- range $i, $label := $deployment.labels }}
    {{ $label.name }}: {{ $label.value }}
    {{- end }}
  name: {{ $.Values.app.name }}-{{ $process.name }}-{{ $deployment.version }}
spec:
  type: ClusterIP
  ports:
{{ $process.servicePorts | toYaml | indent 4 }}
  selector:
    shipa.io/app-name: {{ $.Values.app.name }}
    shipa.io/app-process: {{ $process.name }}
    shipa.io/app-deployment-version: {{ $deployment.version | quote }}
    shipa.io/is-isolated-run: "false"
---
  {{- end }}
  {{ end }}
{{ end }}
`,
	}
)

Functions

This section is empty.

Types

type YamlFile

type YamlFile struct {
	Name    string
	Content string
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL