baremetal-final-minikube
This commit is contained in:
parent
0cde91ff1d
commit
b4adf19dbc
19 changed files with 540 additions and 0 deletions
13
Chart.yaml
Normal file
13
Chart.yaml
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
apiVersion: v2
|
||||||
|
name: todo
|
||||||
|
description: Django-ToDo App
|
||||||
|
type: application
|
||||||
|
version: 0.1.0
|
||||||
|
appVersion: latest
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
- name: postgresql
|
||||||
|
version: 9.1.2
|
||||||
|
appVersion: 11.8.0
|
||||||
|
repository: https://charts.bitnami.com/bitnami
|
||||||
|
|
10
Dockerfile
Normal file
10
Dockerfile
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
FROM python:3.6-alpine
|
||||||
|
WORKDIR /app
|
||||||
|
RUN apk add gcc postgresql-dev openssl-dev musl-dev git && \
|
||||||
|
git clone https://github.com/shacker/gtd.git . && \
|
||||||
|
pip install pipenv && \
|
||||||
|
pipenv --python 3.6 && \
|
||||||
|
pipenv install --dev
|
||||||
|
ADD local.py project/.
|
||||||
|
ADD init.sh .
|
||||||
|
CMD [ "./init.sh" ]
|
10
ansible.cfg
Normal file
10
ansible.cfg
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[defaults]
|
||||||
|
allow_world_readable_tmpfiles=True
|
||||||
|
pipelining=True
|
||||||
|
retry_files_enabled = False
|
||||||
|
inventory = inventory
|
||||||
|
roles_path = roles
|
||||||
|
library = library
|
||||||
|
remote_tmp = /root/.ansible/tmp
|
||||||
|
[connection]
|
||||||
|
pipelining=True
|
6
bootstrap.yml
Normal file
6
bootstrap.yml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
---
|
||||||
|
- name: bootstrap playbook for any k8s machine
|
||||||
|
hosts: k8s
|
||||||
|
become: yes
|
||||||
|
roles:
|
||||||
|
- bootstrap
|
3
init.sh
Executable file
3
init.sh
Executable file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
pipenv run python manage.py migrate todo
|
||||||
|
pipenv run python manage.py runserver 0.0.0.0:8080
|
2
inventory/hosts
Normal file
2
inventory/hosts
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[k8s]
|
||||||
|
kubetest ansible_connection=local
|
32
local.py
Normal file
32
local.py
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
# Overrides
|
||||||
|
from .settings import * # noqa: F401
|
||||||
|
import os
|
||||||
|
|
||||||
|
ALLOWED_HOSTS = ['*']
|
||||||
|
DEBUG = True
|
||||||
|
|
||||||
|
SECRET_KEY = os.environ['SECRET_KEY']
|
||||||
|
|
||||||
|
DEBUG = True
|
||||||
|
|
||||||
|
DATABASES = {
|
||||||
|
'default': {
|
||||||
|
'ENGINE': 'django.db.backends.postgresql',
|
||||||
|
'NAME': os.environ['DATABASE_NAME'],
|
||||||
|
'HOST': os.environ['DATABASE_HOST'],
|
||||||
|
'USER': os.environ['DATABASE_USER'],
|
||||||
|
'PASSWORD': os.environ['DATABASE_PASSWORD'],
|
||||||
|
# 'PORT': int(os.environ['DATABASE_PORT']),
|
||||||
|
# 'USER': 'django',
|
||||||
|
# 'PASSWORD': '123Asd123',
|
||||||
|
'PORT': '',
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
|
||||||
|
|
||||||
|
# TODO-specific settings
|
||||||
|
TODO_STAFF_ONLY = False
|
||||||
|
TODO_DEFAULT_LIST_SLUG = 'tickets'
|
||||||
|
TODO_DEFAULT_ASSIGNEE = None
|
||||||
|
TODO_PUBLIC_SUBMIT_REDIRECT = '/'
|
5
roles/bootstrap/defaults/main.yml
Normal file
5
roles/bootstrap/defaults/main.yml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
k8s_version: '1.17.5'
|
||||||
|
kubernetes_apt_release_channel: main
|
||||||
|
kubernetes_apt_repository: "deb http://apt.kubernetes.io/ kubernetes-xenial {{ kubernetes_apt_release_channel }}"
|
||||||
|
helm_apt_repository: "deb https://baltocdn.com/helm/stable/debian/ all main"
|
||||||
|
docker_apt_repository: "deb [arch=amd64] https://download.docker.com/linux/debian/ stretch stable"
|
90
roles/bootstrap/tasks/main.yml
Normal file
90
roles/bootstrap/tasks/main.yml
Normal file
|
@ -0,0 +1,90 @@
|
||||||
|
---
|
||||||
|
- name: Ensure dependencies are installed.
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- apt-transport-https
|
||||||
|
- ca-certificates
|
||||||
|
- qemu-kvm
|
||||||
|
- libvirt-clients
|
||||||
|
- libvirt-daemon-system
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add Docker apt key.
|
||||||
|
apt_key:
|
||||||
|
url: https://download.docker.com/linux/debian/gpg
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add Helm apt key.
|
||||||
|
apt_key:
|
||||||
|
url: https://helm.baltorepo.com/organization/signing.asc
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add Kubernetes apt key.
|
||||||
|
apt_key:
|
||||||
|
url: https://packages.cloud.google.com/apt/doc/apt-key.gpg
|
||||||
|
state: present
|
||||||
|
|
||||||
|
- name: Add Kubernetes repository.
|
||||||
|
apt_repository:
|
||||||
|
repo: "{{ kubernetes_apt_repository }}"
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
|
||||||
|
- name: Add Helm repository.
|
||||||
|
apt_repository:
|
||||||
|
repo: "{{ helm_apt_repository }}"
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
|
||||||
|
- name: Add Docker repository.
|
||||||
|
apt_repository:
|
||||||
|
repo: "{{ docker_apt_repository }}"
|
||||||
|
state: present
|
||||||
|
update_cache: true
|
||||||
|
|
||||||
|
- name: Installing kubectl, docker.
|
||||||
|
apt:
|
||||||
|
pkg:
|
||||||
|
- kubectl={{ k8s_version }}-00
|
||||||
|
- docker-ce-cli
|
||||||
|
update_cache: yes
|
||||||
|
|
||||||
|
- name: Add Kubernetes apt preferences file to pin a version.
|
||||||
|
template:
|
||||||
|
src: apt-preferences-kubernetes.j2
|
||||||
|
dest: /etc/apt/preferences.d/kubernetes
|
||||||
|
|
||||||
|
- name: Downloading Minikube.
|
||||||
|
get_url:
|
||||||
|
url: https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
|
||||||
|
dest: /usr/local/bin/minikube
|
||||||
|
|
||||||
|
- name: Fix permissions for Minicube binary.
|
||||||
|
shell: chmod +x /usr/local/bin/minikube
|
||||||
|
|
||||||
|
- name: Installing Docker Machine KVM driver.
|
||||||
|
get_url:
|
||||||
|
url: https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2
|
||||||
|
dest: /usr/local/bin/docker-machine-driver-kvm2
|
||||||
|
|
||||||
|
- name: Fix permissions for KVM driver.
|
||||||
|
shell: chmod +x /usr/local/bin/docker-machine-driver-kvm2
|
||||||
|
|
||||||
|
- name: Configuring Minikube default driver
|
||||||
|
shell: minikube config set vm-driver kvm2
|
||||||
|
|
||||||
|
- name: Installing Helm.
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- helm
|
||||||
|
state: present
|
||||||
|
|
||||||
|
|
||||||
|
#- name: Installing Werf.
|
||||||
|
# get_url:
|
||||||
|
# url: https://dl.bintray.com/flant/werf/v1.1.19+fix10/werf-linux-amd64-v1.1.19+fix10
|
||||||
|
# dest: /usr/local/bin/werf
|
||||||
|
#
|
||||||
|
#- name: Fix permissions for Werf.io.
|
||||||
|
# shell: chmod +x /usr/local/bin/werf
|
||||||
|
|
3
roles/bootstrap/templates/apt-preferences-kubernetes.j2
Normal file
3
roles/bootstrap/templates/apt-preferences-kubernetes.j2
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
Package: kubectl
|
||||||
|
Pin: version {{ k8s_version }}.*
|
||||||
|
Pin-Priority: 1000
|
30
runme.sh
Executable file
30
runme.sh
Executable file
|
@ -0,0 +1,30 @@
|
||||||
|
#!/bin/sh
|
||||||
|
cuser=`whoami`
|
||||||
|
helm='/usr/sbin/helm'
|
||||||
|
# Installing minikube
|
||||||
|
sudo ansible-playbook bootstrap.yml
|
||||||
|
sudo adduser ${cuser} libvirt
|
||||||
|
# Init minikube
|
||||||
|
minikube start --vm-driver kvm2
|
||||||
|
# Time to Deploy something into our cluster
|
||||||
|
eval $(minikube docker-env)
|
||||||
|
docker build -t todo . && \
|
||||||
|
kubectl create secret generic todo-secrets \
|
||||||
|
--from-literal=SECRET_KEY='It5R3411iR4nd0M5tr1Ng' \
|
||||||
|
--from-literal=DATABASE_NAME='django' \
|
||||||
|
--from-literal=DATABASE_HOST='todo-postgresql.default.svc.cluster.local' \
|
||||||
|
--from-literal=DATABASE_USER='postgres'
|
||||||
|
${helm} repo add stable https://kubernetes-charts.storage.googleapis.com
|
||||||
|
${helm} repo add bitnami https://charts.bitnami.com/bitnami
|
||||||
|
#${helm} install postgres --set postgresqlDatabase=django bitnami/postgresql
|
||||||
|
${helm} dependency build
|
||||||
|
${helm} upgrade -i todo --set postgresql.postgresqlDatabase=django . -f values.yaml
|
||||||
|
while true ; do
|
||||||
|
echo "Waiting for pods..."
|
||||||
|
result=$(kubectl get pods | grep -cv Running)
|
||||||
|
if [ $result -le 1 ] ; then
|
||||||
|
minikube service todo
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
sleep 10
|
||||||
|
done
|
21
templates/NOTES.txt
Normal file
21
templates/NOTES.txt
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
1. Get the application URL by running these commands:
|
||||||
|
{{- if .Values.ingress.enabled }}
|
||||||
|
{{- range $host := .Values.ingress.hosts }}
|
||||||
|
{{- range .paths }}
|
||||||
|
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else if contains "NodePort" .Values.service.type }}
|
||||||
|
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "todo.fullname" . }})
|
||||||
|
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||||
|
echo http://$NODE_IP:$NODE_PORT
|
||||||
|
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||||
|
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||||
|
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "todo.fullname" . }}'
|
||||||
|
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "todo.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
|
||||||
|
echo http://$SERVICE_IP:{{ .Values.service.port }}
|
||||||
|
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||||
|
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "todo.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||||
|
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||||
|
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:80
|
||||||
|
{{- end }}
|
63
templates/_helpers.tpl
Normal file
63
templates/_helpers.tpl
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
{{/* vim: set filetype=mustache: */}}
|
||||||
|
{{/*
|
||||||
|
Expand the name of the chart.
|
||||||
|
*/}}
|
||||||
|
{{- define "todo.name" -}}
|
||||||
|
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create a default fully qualified app name.
|
||||||
|
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||||
|
If release name contains chart name it will be used as a full name.
|
||||||
|
*/}}
|
||||||
|
{{- define "todo.fullname" -}}
|
||||||
|
{{- if .Values.fullnameOverride -}}
|
||||||
|
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- $name := default .Chart.Name .Values.nameOverride -}}
|
||||||
|
{{- if contains $name .Release.Name -}}
|
||||||
|
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create chart name and version as used by the chart label.
|
||||||
|
*/}}
|
||||||
|
{{- define "todo.chart" -}}
|
||||||
|
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Common labels
|
||||||
|
*/}}
|
||||||
|
{{- define "todo.labels" -}}
|
||||||
|
helm.sh/chart: {{ include "todo.chart" . }}
|
||||||
|
{{ include "todo.selectorLabels" . }}
|
||||||
|
{{- if .Chart.AppVersion }}
|
||||||
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||||
|
{{- end }}
|
||||||
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Selector labels
|
||||||
|
*/}}
|
||||||
|
{{- define "todo.selectorLabels" -}}
|
||||||
|
app.kubernetes.io/name: {{ include "todo.name" . }}
|
||||||
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
{{/*
|
||||||
|
Create the name of the service account to use
|
||||||
|
*/}}
|
||||||
|
{{- define "todo.serviceAccountName" -}}
|
||||||
|
{{- if .Values.serviceAccount.create -}}
|
||||||
|
{{ default (include "todo.fullname" .) .Values.serviceAccount.name }}
|
||||||
|
{{- else -}}
|
||||||
|
{{ default "default" .Values.serviceAccount.name }}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
94
templates/deployment.yaml
Normal file
94
templates/deployment.yaml
Normal file
|
@ -0,0 +1,94 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: {{ include "todo.fullname" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "todo.labels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
replicas: {{ .Values.replicaCount }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
{{- include "todo.selectorLabels" . | nindent 6 }}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
{{- include "todo.selectorLabels" . | nindent 8 }}
|
||||||
|
spec:
|
||||||
|
{{- with .Values.imagePullSecrets }}
|
||||||
|
imagePullSecrets:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
serviceAccountName: {{ include "todo.serviceAccountName" . }}
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||||
|
initContainers:
|
||||||
|
- args:
|
||||||
|
- -wait
|
||||||
|
- tcp://todo-postgresql.default.svc.cluster.local:5432
|
||||||
|
- -timeout
|
||||||
|
- 600s
|
||||||
|
image: jwilder/dockerize
|
||||||
|
imagePullPolicy: Always
|
||||||
|
name: waitfor
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 64Mi
|
||||||
|
containers:
|
||||||
|
- name: {{ .Chart.Name }}
|
||||||
|
securityContext:
|
||||||
|
{{- toYaml .Values.securityContext | nindent 12 }}
|
||||||
|
image: "{{ .Values.image.repository }}:{{ .Chart.AppVersion }}"
|
||||||
|
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||||
|
env:
|
||||||
|
- name: SECRET_KEY
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: todo-secrets
|
||||||
|
key: SECRET_KEY
|
||||||
|
- name: DATABASE_NAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: todo-secrets
|
||||||
|
key: DATABASE_NAME
|
||||||
|
- name: DATABASE_HOST
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: todo-secrets
|
||||||
|
key: DATABASE_HOST
|
||||||
|
- name: DATABASE_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: todo-secrets
|
||||||
|
key: DATABASE_USER
|
||||||
|
- name: DATABASE_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: todo-postgresql
|
||||||
|
key: postgresql-password
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: http
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: http
|
||||||
|
resources:
|
||||||
|
{{- toYaml .Values.resources | nindent 12 }}
|
||||||
|
{{- with .Values.nodeSelector }}
|
||||||
|
nodeSelector:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.affinity }}
|
||||||
|
affinity:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
|
{{- with .Values.tolerations }}
|
||||||
|
tolerations:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
41
templates/ingress.yaml
Normal file
41
templates/ingress.yaml
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{{- if .Values.ingress.enabled -}}
|
||||||
|
{{- $fullName := include "todo.fullname" . -}}
|
||||||
|
{{- $svcPort := .Values.service.port -}}
|
||||||
|
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||||
|
apiVersion: networking.k8s.io/v1beta1
|
||||||
|
{{- else -}}
|
||||||
|
apiVersion: extensions/v1beta1
|
||||||
|
{{- end }}
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: {{ $fullName }}
|
||||||
|
labels:
|
||||||
|
{{- include "todo.labels" . | nindent 4 }}
|
||||||
|
{{- with .Values.ingress.annotations }}
|
||||||
|
annotations:
|
||||||
|
{{- toYaml . | nindent 4 }}
|
||||||
|
{{- end }}
|
||||||
|
spec:
|
||||||
|
{{- if .Values.ingress.tls }}
|
||||||
|
tls:
|
||||||
|
{{- range .Values.ingress.tls }}
|
||||||
|
- hosts:
|
||||||
|
{{- range .hosts }}
|
||||||
|
- {{ . | quote }}
|
||||||
|
{{- end }}
|
||||||
|
secretName: {{ .secretName }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
rules:
|
||||||
|
{{- range .Values.ingress.hosts }}
|
||||||
|
- host: {{ .host | quote }}
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
{{- range .paths }}
|
||||||
|
- path: {{ . }}
|
||||||
|
backend:
|
||||||
|
serviceName: {{ $fullName }}
|
||||||
|
servicePort: {{ $svcPort }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
15
templates/service.yaml
Normal file
15
templates/service.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: {{ include "todo.fullname" . }}
|
||||||
|
labels:
|
||||||
|
{{- include "todo.labels" . | nindent 4 }}
|
||||||
|
spec:
|
||||||
|
type: {{ .Values.service.type }}
|
||||||
|
ports:
|
||||||
|
- port: {{ .Values.service.port }}
|
||||||
|
targetPort: http
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
selector:
|
||||||
|
{{- include "todo.selectorLabels" . | nindent 4 }}
|
8
templates/serviceaccount.yaml
Normal file
8
templates/serviceaccount.yaml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{{- if .Values.serviceAccount.create -}}
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: {{ include "todo.serviceAccountName" . }}
|
||||||
|
labels:
|
||||||
|
{{ include "todo.labels" . | nindent 4 }}
|
||||||
|
{{- end -}}
|
15
templates/tests/test-connection.yaml
Normal file
15
templates/tests/test-connection.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Pod
|
||||||
|
metadata:
|
||||||
|
name: "{{ include "todo.fullname" . }}-test-connection"
|
||||||
|
labels:
|
||||||
|
{{ include "todo.labels" . | nindent 4 }}
|
||||||
|
annotations:
|
||||||
|
"helm.sh/hook": test-success
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: wget
|
||||||
|
image: busybox
|
||||||
|
command: ['wget']
|
||||||
|
args: ['{{ include "todo.fullname" . }}:{{ .Values.service.port }}']
|
||||||
|
restartPolicy: Never
|
79
values.yaml
Normal file
79
values.yaml
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
replicaCount: 1
|
||||||
|
image:
|
||||||
|
repository: todo
|
||||||
|
pullPolicy: Never
|
||||||
|
serviceAccount:
|
||||||
|
create: true
|
||||||
|
service:
|
||||||
|
type: NodePort
|
||||||
|
port: 80
|
||||||
|
ingress:
|
||||||
|
enabled: false
|
||||||
|
postgresql:
|
||||||
|
# postgresqlPassword: postgres
|
||||||
|
global:
|
||||||
|
postgresql: {}
|
||||||
|
image:
|
||||||
|
registry: docker.io
|
||||||
|
repository: bitnami/postgresql
|
||||||
|
tag: 12.3.0-debian-10-r74
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
debug: false
|
||||||
|
volumePermissions:
|
||||||
|
enabled: true
|
||||||
|
image:
|
||||||
|
registry: docker.io
|
||||||
|
repository: bitnami/minideb
|
||||||
|
tag: stretch
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
securityContext:
|
||||||
|
enabled: true
|
||||||
|
fsGroup: 1001
|
||||||
|
runAsUser: 1001
|
||||||
|
serviceAccount:
|
||||||
|
enabled: true
|
||||||
|
replication:
|
||||||
|
enabled: false
|
||||||
|
postgresqlDataDir: /bitnami/postgresql/data
|
||||||
|
ldap:
|
||||||
|
enabled: false
|
||||||
|
service:
|
||||||
|
type: ClusterIP
|
||||||
|
port: 5432
|
||||||
|
shmVolume:
|
||||||
|
enabled: true
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
mountPath: /bitnami/postgresql
|
||||||
|
subPath: ""
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
size: 4Gi
|
||||||
|
annotations: {}
|
||||||
|
updateStrategy:
|
||||||
|
type: RollingUpdate
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
memory: 256Mi
|
||||||
|
cpu: 250m
|
||||||
|
networkPolicy:
|
||||||
|
enabled: false
|
||||||
|
allowExternal: true
|
||||||
|
livenessProbe:
|
||||||
|
enabled: true
|
||||||
|
initialDelaySeconds: 30
|
||||||
|
periodSeconds: 10
|
||||||
|
timeoutSeconds: 5
|
||||||
|
failureThreshold: 6
|
||||||
|
successThreshold: 1
|
||||||
|
readinessProbe:
|
||||||
|
enabled: true
|
||||||
|
initialDelaySeconds: 5
|
||||||
|
periodSeconds: 10
|
||||||
|
timeoutSeconds: 5
|
||||||
|
failureThreshold: 6
|
||||||
|
successThreshold: 1
|
||||||
|
metrics:
|
||||||
|
enabled: false
|
Loading…
Add table
Add a link
Reference in a new issue