Skip to content
Snippets Groups Projects
Unverified Commit a2113e18 authored by Piers Harding's avatar Piers Harding Committed by GitHub
Browse files

Merge pull request #8 from ska-telescope/ST-139-include-k8s-configuration

ST-139 alignment with ST-144
parents 50ce8112 8ad72a14
Branches
Tags
No related merge requests found
Showing
with 147 additions and 170 deletions
......@@ -3,3 +3,5 @@ build
*.swp
*~
.pytest_cache
charts/ska-docker/secrets/tls.*
PrivateRules.mak
......@@ -5,10 +5,10 @@ BASEDIR := $(notdir $(patsubst %/,%,$(dir $(MAKEPATH))))
# find IP addresses of this machine, setting THIS_HOST to the first address found
THIS_HOST := $(shell ifconfig | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p' | head -n1)
DISPLAY := $(THIS_HOST):0
XAUTHORITYx ?= ${XAUTHORITY}
XAUTHORITY ?= $(DISPLAY)
KUBE_NAMESPACE ?= default
HELM_CHART ?= ska-docker-k8s
HELM_RELEASE = ska-docker-k8s
HELM_CHART ?= ska-docker
HELM_RELEASE = test
# INGRESS_HOST is the host name used in the Ingress resource definition for
# publishing services via the Ingress Controller
......@@ -23,14 +23,14 @@ KUBE_CONFIG_BASE64 ?= ## base64 encoded kubectl credentials for KUBECONFIG
KUBECONFIG ?= /etc/deploy/config ## KUBECONFIG location
# define overides for above variables in here
-include PrivateRules.mak
-include ../PrivateRules.mak
.PHONY: vars k8s apply logs rm show deploy delete ls podlogs launch-tiller tiller-acls namespace help
.PHONY: vars k8s logs describe show lint install delete namespace delete_namespace localip helm_dependencies kubectl_dependencies kubeconfig mkcerts help
.DEFAULT_GOAL := help
vars: ## Display variables - pass in DISPLAY and XAUTHORITY
@echo "DISPLAY: $(DISPLAY)"
@echo "XAUTHORITY: $(XAUTHORITYx)"
@echo "XAUTHORITY: $(XAUTHORITY)"
@echo "Namespace: $(KUBE_NAMESPACE)"
k8s: ## Which kubernetes are we connected to
......@@ -41,20 +41,7 @@ k8s: ## Which kubernetes are we connected to
@kubectl version
@echo ""
@echo "Helm version:"
@helm version --tiller-namespace $(KUBE_NAMESPACE)
apply: ## apply resource descriptor k8s.yml
kubectl apply -n $(KUBE_NAMESPACE) -f k8s.yml
logs: ## POD logs for descriptor
@for i in `kubectl -n $(KUBE_NAMESPACE) get pods -l group=example -o=name`; \
do echo "-------------------"; \
echo "Logs for $$i"; \
kubectl -n $(KUBE_NAMESPACE) logs $$i; \
done
rm: ## delete applied resources
kubectl delete -n $(KUBE_NAMESPACE) -f k8s.yml
@helm version --tiller-namespace $(KUBE_NAMESPACE) --client
namespace: ## create the kubernetes namespace
kubectl describe namespace $(KUBE_NAMESPACE) || kubectl create namespace $(KUBE_NAMESPACE)
......@@ -64,7 +51,7 @@ deploy: namespace ## deploy the helm chart
--namespace $(KUBE_NAMESPACE) \
--tiller-namespace $(KUBE_NAMESPACE) \
--set display="$(DISPLAY)" \
--set xauthority="$(XAUTHORITYx)" \
--set xauthority="$(XAUTHORITY)" \
--set tangoexample.debug="$(REMOTE_DEBUG)" | kubectl -n $(KUBE_NAMESPACE) apply -f -
show: ## show the helm chart
......@@ -72,7 +59,7 @@ show: ## show the helm chart
--namespace $(KUBE_NAMESPACE) \
--tiller-namespace $(KUBE_NAMESPACE) \
--set display="$(DISPLAY)" \
--set xauthority="$(XAUTHORITYx)" \
--set xauthority="$(XAUTHORITY)" \
--set tangoexample.debug="$(REMOTE_DEBUG)"
lint: ## lint check the helm chart
......@@ -81,7 +68,6 @@ lint: ## lint check the helm chart
--tiller-namespace $(KUBE_NAMESPACE) \
--set ingress.hostname=$(INGRESS_HOST)
install: namespace mkcerts ## install the helm chart (with Tiller)
@helm tiller run $(KUBE_NAMESPACE) -- helm install $(HELM_CHART)/ --name $(HELM_RELEASE) \
--wait \
......@@ -89,23 +75,15 @@ install: namespace mkcerts ## install the helm chart (with Tiller)
--tiller-namespace $(KUBE_NAMESPACE) \
--set ingress.hostname=$(INGRESS_HOST) \
--set display="$(DISPLAY)" \
--set xauthority="$(XAUTHORITYx)" \
--set xauthority="$(XAUTHORITY)"
helm_delete: ## delete the helm chart release (with Tiller)
delete: ## delete the helm chart release (with Tiller)
@helm tiller run $(KUBE_NAMESPACE) -- helm delete $(HELM_RELEASE) --purge \
--tiller-namespace $(KUBE_NAMESPACE)
helm_tests: ## run Helm chart tests
tests: ## run Helm chart tests
@helm tiller run $(KUBE_NAMESPACE) -- helm test $(HELM_RELEASE) --cleanup
delete: ## delete the helm chart release
@helm template $(HELM_CHART)/ --name $(HELM_RELEASE) \
--namespace $(KUBE_NAMESPACE) \
--tiller-namespace $(KUBE_NAMESPACE) \
--set display="$(DISPLAY)" \
--set xauthority="$(XAUTHORITYx)" \
--set tangoexample.debug="$(REMOTE_DEBUG)" | kubectl -n $(KUBE_NAMESPACE) delete -f -
delete_namespace: ## delete the kubernetes namespace
@if [ "default" == "$(KUBE_NAMESPACE)" ] || [ "kube-system" == "$(KUBE_NAMESPACE)" ]; then \
echo "You cannot delete Namespace: $(KUBE_NAMESPACE)"; \
......@@ -114,7 +92,7 @@ delete_namespace: ## delete the kubernetes namespace
kubectl describe namespace $(KUBE_NAMESPACE) && kubectl delete namespace $(KUBE_NAMESPACE); \
fi
poddescribe: ## describe Pods executed from Helm chart
describe: ## describe Pods executed from Helm chart
@for i in `kubectl -n $(KUBE_NAMESPACE) get pods -l release=$(HELM_RELEASE) -o=name`; \
do echo "---------------------------------------------------"; \
echo "Describe for $${i}"; \
......@@ -125,7 +103,7 @@ poddescribe: ## describe Pods executed from Helm chart
echo ""; echo ""; echo ""; \
done
podlogs: ## show Helm chart POD logs
logs: ## show Helm chart POD logs
@for i in `kubectl -n $(KUBE_NAMESPACE) get pods -l release=$(HELM_RELEASE) -o=name`; \
do \
echo "---------------------------------------------------"; \
......@@ -206,8 +184,11 @@ kubectl_dependencies:
kubeconfig: ## export current KUBECONFIG as base64 ready for KUBE_CONFIG_BASE64
@KUBE_CONFIG_BASE64=`kubectl config view --flatten | base64 -w 0`; \
echo "KUBE_CONFIG_BASE64: $$(echo $${KUBE_CONFIG_BASE64} | cut -c 1-40)..."; \
echo "appended to: PrivateRules.mak"; \
echo -e "\n\n# base64 encoded from: kubectl config view --flatten\nKUBE_CONFIG_BASE64 = $${KUBE_CONFIG_BASE64}" >> PrivateRules.mak
echo "appended to: ../PrivateRules.mak"; \
echo -e "\n\n# base64 encoded from: kubectl config view --flatten\nKUBE_CONFIG_BASE64 = $${KUBE_CONFIG_BASE64}" >> ../PrivateRules.mak
help: ## show this help.
@grep -E '^[0-9a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
@echo "make targets:"
@grep -hE '^[0-9a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
@echo ""; echo "make vars (+defaults):"
@grep -hE '^[0-9a-zA-Z_-]+ \?=.*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = " \?\= "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' | sed -e 's/\#\#/ \#/'
......@@ -134,18 +134,18 @@ Status: Active
No resource quota.
No resource limits.
persistentvolume/pogo-ska-docker-k8s created
persistentvolumeclaim/pogo-ska-docker-k8s created
persistentvolume/tangodb-ska-docker-k8s-test created
persistentvolumeclaim/tangodb-ska-docker-k8s-test created
service/databaseds-ska-docker-k8s-test created
statefulset.apps/databaseds-ska-docker-k8s-test created
service/tangodb-ska-docker-k8s-test created
statefulset.apps/tangodb-ska-docker-k8s-test created
pod/jive-ska-docker-k8s-test created
pod/logviewer-ska-docker-k8s-test created
pod/pogo-ska-docker-k8s created
pod/tangotest-ska-docker-k8s-test created
persistentvolume/pogo-ska-docker created
persistentvolumeclaim/pogo-ska-docker created
persistentvolume/tangodb-ska-docker-test created
persistentvolumeclaim/tangodb-ska-docker-test created
service/databaseds-ska-docker-test created
statefulset.apps/databaseds-ska-docker-test created
service/tangodb-ska-docker-test created
statefulset.apps/tangodb-ska-docker-test created
pod/jive-ska-docker-test created
pod/logviewer-ska-docker-test created
pod/pogo-ska-docker created
pod/tangotest-ska-docker-test created
```
Please wait patiently - it will take time for the Container images to download, and for the database to initialise. After some time, you can check what is running with:
......@@ -158,28 +158,28 @@ Which will give output like:
Every 2.0s: kubectl get all,pv,pvc -n integration osboxes: Fri Mar 29 09:25:05 2019
NAME READY STATUS RESTARTS AGE
pod/databaseds-ska-docker-k8s-test-0 0/1 Completed 1 27s
pod/jive-ska-docker-k8s-test 1/1 Running 0 27s
pod/logviewer-ska-docker-k8s-test 1/1 Running 0 27s
pod/pogo-ska-docker-k8s 0/1 Error 1 27s
pod/tangodb-ska-docker-k8s-test-0 1/1 Running 0 27s
pod/tangotest-ska-docker-k8s-test 1/1 Running 0 27s
pod/databaseds-ska-docker-test-0 0/1 Completed 1 27s
pod/jive-ska-docker-test 1/1 Running 0 27s
pod/logviewer-ska-docker-test 1/1 Running 0 27s
pod/pogo-ska-docker 0/1 Error 1 27s
pod/tangodb-ska-docker-test-0 1/1 Running 0 27s
pod/tangotest-ska-docker-test 1/1 Running 0 27s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/databaseds-ska-docker-k8s-test ClusterIP None <none> 10000/TCP 27s
service/tangodb-ska-docker-k8s-test ClusterIP None <none> 3306/TCP 27s
service/databaseds-ska-docker-test ClusterIP None <none> 10000/TCP 27s
service/tangodb-ska-docker-test ClusterIP None <none> 3306/TCP 27s
NAME READY AGE
statefulset.apps/databaseds-ska-docker-k8s-test 0/1 27s
statefulset.apps/tangodb-ska-docker-k8s-test 1/1 27s
statefulset.apps/databaseds-ska-docker-test 0/1 27s
statefulset.apps/tangodb-ska-docker-test 1/1 27s
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/pogo-ska-docker-k8s 1Gi RWO Retain Bound integration/pogo-ska-docker-k8s standard 27s
persistentvolume/tangodb-ska-docker-k8s-test 1Gi RWO Retain Bound integration/tangodb-ska-docker-k8s-test standard 27s
persistentvolume/pogo-ska-docker 1Gi RWO Retain Bound integration/pogo-ska-docker standard 27s
persistentvolume/tangodb-ska-docker-test 1Gi RWO Retain Bound integration/tangodb-ska-docker-test standard 27s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/pogo-ska-docker-k8s Bound pogo-ska-docker-k8s 1Gi RWO standard 27s
persistentvolumeclaim/tangodb-ska-docker-k8s-test Bound tangodb-ska-docker-k8s-test 1Gi RWO standard 27s
persistentvolumeclaim/pogo-ska-docker Bound pogo-ska-docker 1Gi RWO standard 27s
persistentvolumeclaim/tangodb-ska-docker-test Bound tangodb-ska-docker-test 1Gi RWO standard 27s
```
To clean up the Helm Chart release:
......
File moved
apiVersion: v1
appVersion: "1.0"
description: A Helm chart for deploying the TANGO ska-docker on Kubernetes
name: ska-docker-k8s
name: ska-docker
version: 0.1.0
......@@ -2,7 +2,7 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "ska-docker-k8s.name" -}}
{{- define "ska-docker.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
......@@ -11,7 +11,7 @@ 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 "ska-docker-k8s.fullname" -}}
{{- define "ska-docker.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
......@@ -27,6 +27,6 @@ If release name contains chart name it will be used as a full name.
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "ska-docker-k8s.chart" -}}
{{- define "ska-docker.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
......@@ -4,11 +4,11 @@
apiVersion: v1
kind: Service
metadata:
name: databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
name: databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app: databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
......@@ -17,31 +17,31 @@ spec:
port: 10000
clusterIP: None
selector:
app: databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
app: databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
name: databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app: databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
selector:
matchLabels:
app: databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
serviceName: databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
app: databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
serviceName: databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
replicas: 1
template:
metadata:
labels:
app: databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
......@@ -51,7 +51,7 @@ spec:
imagePullPolicy: {{ .Values.databaseds.image.pullPolicy }}
command:
- /usr/local/bin/wait-for-it.sh
- tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}:3306
- tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}:3306
- --timeout=30
- --strict
- --
......@@ -61,7 +61,7 @@ spec:
- giop:tcp::10000
env:
- name: MYSQL_HOST
value: tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}:3306
value: tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}:3306
- name: MYSQL_DATABASE
value: "{{ .Values.tangodb.db.db }}"
- name: MYSQL_USER
......@@ -69,7 +69,7 @@ spec:
- name: MYSQL_PASSWORD
value: "{{ .Values.tangodb.db.password }}"
- name: TANGO_HOST
value: databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}:10000
value: databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}:10000
ports:
- name: ds
containerPort: 10000
......
......@@ -4,11 +4,11 @@
apiVersion: v1
kind: Pod
metadata:
name: itango-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
name: itango-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app: itango-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: itango-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
......@@ -18,7 +18,7 @@ spec:
imagePullPolicy: {{ .Values.itango.image.pullPolicy }}
command:
- /usr/local/bin/wait-for-it.sh
- databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}:10000
- databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}:10000
- --timeout=30
- --strict
- --
......@@ -27,7 +27,7 @@ spec:
# - /venv/bin/itango3
env:
- name: TANGO_HOST
value: databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}:10000
value: databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}:10000
restartPolicy: Always
{{- with .Values.nodeSelector }}
nodeSelector:
......
......@@ -4,11 +4,11 @@
apiVersion: v1
kind: Pod
metadata:
name: jive-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
name: jive-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app: jive-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: jive-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
......@@ -18,7 +18,7 @@ spec:
imagePullPolicy: {{ .Values.jive.image.pullPolicy }}
command:
- /usr/local/bin/wait-for-it.sh
- databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}:10000
- databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}:10000
- --timeout=30
- --strict
- --
......@@ -29,7 +29,7 @@ spec:
- name: DISPLAY
value: "{{ .Values.display }}"
- name: TANGO_HOST
value: databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}:10000
value: databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}:10000
volumeMounts:
- name: xauthority
mountPath: /tmp/.Xauthority
......
......@@ -4,11 +4,11 @@
apiVersion: v1
kind: Pod
metadata:
name: logviewer-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
name: logviewer-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app: logviewer-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: logviewer-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
......@@ -18,7 +18,7 @@ spec:
imagePullPolicy: {{ .Values.logviewer.image.pullPolicy }}
command:
- /usr/local/bin/wait-for-it.sh
- databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}:10000
- databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}:10000
- --timeout=30
- --strict
- --
......@@ -29,7 +29,7 @@ spec:
- name: DISPLAY
value: "{{ .Values.display }}"
- name: TANGO_HOST
value: databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}:10000
value: databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}:10000
volumeMounts:
- name: xauthority
mountPath: /tmp/.Xauthority
......
......@@ -2,11 +2,11 @@
kind: PersistentVolume
apiVersion: v1
metadata:
name: pogo-{{ template "ska-docker-k8s.name" . }}
name: pogo-{{ template "ska-docker.name" . }}
namespace: {{ .Release.Namespace }}
labels:
app: pogo-{{ template "ska-docker-k8s.name" . }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: pogo-{{ template "ska-docker.name" . }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
......@@ -16,18 +16,18 @@ spec:
accessModes:
- ReadWriteOnce
hostPath:
path: /data/pogo-{{ template "ska-docker-k8s.name" . }}/
path: /data/pogo-{{ template "ska-docker.name" . }}/
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pogo-{{ template "ska-docker-k8s.name" . }}
name: pogo-{{ template "ska-docker.name" . }}
namespace: {{ .Release.Namespace }}
labels:
app: pogo-{{ template "ska-docker-k8s.name" . }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: pogo-{{ template "ska-docker.name" . }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
......
......@@ -4,11 +4,11 @@
apiVersion: v1
kind: Pod
metadata:
name: pogo-{{ template "ska-docker-k8s.name" . }}
name: pogo-{{ template "ska-docker.name" . }}
namespace: {{ .Release.Namespace }}
labels:
app: pogo-{{ template "ska-docker-k8s.name" . }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: pogo-{{ template "ska-docker.name" . }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
......@@ -22,7 +22,7 @@ spec:
- name: DISPLAY
value: "{{ .Values.display }}"
- name: TANGO_HOST
value: databaseds-{{ template "ska-docker-k8s.name" . }}:10000
value: databaseds-{{ template "ska-docker.name" . }}:10000
volumeMounts:
- name: xauthority
mountPath: /tmp/.Xauthority
......@@ -32,7 +32,7 @@ spec:
volumes:
- name: pogo
persistentVolumeClaim:
claimName: pogo-{{ template "ska-docker-k8s.name" . }}
claimName: pogo-{{ template "ska-docker.name" . }}
- hostPath:
path: {{ .Values.xauthority }}
type: File
......
......@@ -2,11 +2,11 @@
kind: PersistentVolume
apiVersion: v1
metadata:
name: tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
name: tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app: tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
......@@ -16,18 +16,18 @@ spec:
accessModes:
- ReadWriteOnce
hostPath:
path: /data/tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}/
path: /data/tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}/
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
name: tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app: tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
......
......@@ -4,11 +4,11 @@
apiVersion: v1
kind: Service
metadata:
name: tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
name: tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app: tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
......@@ -17,31 +17,31 @@ spec:
port: 3306
clusterIP: None
selector:
app: tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
app: tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
name: tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app: tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
selector:
matchLabels:
app: tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
serviceName: tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
app: tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
serviceName: tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
replicas: 1
template:
metadata:
labels:
app: tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
......@@ -71,7 +71,7 @@ spec:
volumes:
- name: data
persistentVolumeClaim:
claimName: tangodb-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
claimName: tangodb-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{ toYaml . | indent 8 }}
......
......@@ -4,11 +4,11 @@
apiVersion: v1
kind: Pod
metadata:
name: tangotest-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
name: tangotest-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
labels:
app: tangotest-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: tangotest-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
......@@ -18,7 +18,7 @@ spec:
imagePullPolicy: {{ .Values.tangotest.image.pullPolicy }}
command:
- /usr/local/bin/wait-for-it.sh
- databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}:10000
- databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}:10000
- --timeout=30
- --strict
- --
......@@ -26,7 +26,7 @@ spec:
- test
env:
- name: TANGO_HOST
value: databaseds-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}:10000
value: databaseds-{{ template "ska-docker.name" . }}-{{ .Release.Name }}:10000
restartPolicy: Always
{{- with .Values.nodeSelector }}
nodeSelector:
......
......@@ -3,7 +3,7 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: "databaseds-configmap-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}"
name: "databaseds-configmap-{{ template "ska-docker.name" . }}-{{ .Release.Name }}"
data:
test.py: |
#!/usr/bin/env python
......@@ -26,20 +26,20 @@ data:
apiVersion: v1
kind: Pod
metadata:
name: databaseds-pod-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
name: databaseds-pod-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
annotations:
"helm.sh/hook": test-success
labels:
app: databaseds-pod-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: databaseds-pod-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
volumes:
- name: script
configMap:
name: "databaseds-configmap-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}"
name: "databaseds-configmap-{{ template "ska-docker.name" . }}-{{ .Release.Name }}"
containers:
- name: test-databaseds
image: nexus.engageska-portugal.pt/ska-docker/tango-itango:latest
......@@ -47,7 +47,7 @@ spec:
command: ["python3", "/app/test.py"]
env:
- name: TANGO_HOST
value: databaseds-{{ template "ska-docker-k8s.name" . }}:10000
value: databaseds-{{ template "ska-docker.name" . }}:10000
volumeMounts:
- name: script
mountPath: /app
......@@ -67,4 +67,3 @@ spec:
{{- end }}
{{ end }}
......@@ -3,7 +3,7 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: "tangotest-configmap-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}"
name: "tangotest-configmap-{{ template "ska-docker.name" . }}-{{ .Release.Name }}"
data:
test.py: |
#!/usr/bin/env python
......@@ -36,20 +36,20 @@ data:
apiVersion: v1
kind: Pod
metadata:
name: tangotest-pod-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
name: tangotest-pod-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
namespace: {{ .Release.Namespace }}
annotations:
"helm.sh/hook": test-success
labels:
app: tangotest-pod-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker-k8s.chart" . }}
app: tangotest-pod-{{ template "ska-docker.name" . }}-{{ .Release.Name }}
chart: {{ template "ska-docker.chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
volumes:
- name: script
configMap:
name: "tangotest-configmap-{{ template "ska-docker-k8s.name" . }}-{{ .Release.Name }}"
name: "tangotest-configmap-{{ template "ska-docker.name" . }}-{{ .Release.Name }}"
containers:
- name: test-tangotest
image: nexus.engageska-portugal.pt/ska-docker/tango-itango:latest
......@@ -57,7 +57,7 @@ spec:
command: ["python3", "/app/test.py"]
env:
- name: TANGO_HOST
value: databaseds-{{ template "ska-docker-k8s.name" . }}:10000
value: databaseds-{{ template "ska-docker.name" . }}:10000
volumeMounts:
- name: script
mountPath: /app
......@@ -77,4 +77,3 @@ spec:
{{- end }}
{{ end }}
# Default values for ska-docker-k8s.
# Default values for ska-docker.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.
......
# base64 encoded from: kubectl config view --flatten
KUBE_CONFIG_BASE64 = YXBpVmVyc2lvbjogdjEKY2x1c3RlcnM6Ci0gY2x1c3RlcjoKICAgIGNlcnRpZmljYXRlLWF1dGhvcml0eS1kYXRhOiBMUzB0TFMxQ1JVZEpUaUJEUlZKVVNVWkpRMEZVUlMwdExTMHRDazFKU1VNMWVrTkRRV01yWjBGM1NVSkJaMGxDUVZSQlRrSm5hM0ZvYTJsSE9YY3dRa0ZSYzBaQlJFRldUVkpOZDBWUldVUldVVkZFUlhkd2RHRlhOWEFLWVROV2FWcFZUa0pOUWpSWVJGUkZOVTFFVlhkUFZFVjZUbFJWZDA1c2IxaEVWRWsxVFVSVmQwNTZSWHBPVkZWM1RteHZkMFpVUlZSTlFrVkhRVEZWUlFwQmVFMUxZbGRzZFdGWGRERlpiVlpFVVZSRFEwRlRTWGRFVVZsS1MyOWFTV2gyWTA1QlVVVkNRbEZCUkdkblJWQkJSRU5EUVZGdlEyZG5SVUpCVFdJckNqSlRSa1U0VTFWMFJWRkZhekY1Tkc5WVFXVnlUbVo0YzB4V2VITllhalJ6WmxsSmNVYzRLMk5XT0ZkekwyMXFlakpZYTA1Mk9FcEpSRWhIV214NVVHd0tUamM1T0NzNVVYQnlURU5xZGs5VGJIb3dMeXN4ZVRsR1R6VjNia2huVGtWNVVFeHVkbmQwUWxoNk9XNDVOV3B5ZW1rd01IUTJVV1ZaVUVOcWRGWmhjZ295VDI5M1UwNDBjbGsyVFZsSUx6QkVMekpTVEZvMFVVcGFZM0FyTTNwNGFWSm5UMlZDV1RjeE1VbDFRV3RCU0VWblpuaE5VMU5KTVV0Wk1tOWliMng1Q2t4M1pFdEpNR050Tms1cFEwSnJaVFpUVW1KaVpUbDVURmxqVVRSWlMxaHFOMHByVEdveFVuUnpZVEI1YkRsVFRuaGljRmN6ZDFwaEx6WjNUV3BSSzFnS00xZzFlWGcwTHpCQlRIZFlia1pqT1VaSFMxZDRjVGxpUzI0eFkwVmtURzA1V21odWNIUklabXQyY0RCV1kxYzFlazl6TkZoSE4yRmtUVlJ1TmtkT2RBcDRNRzlMYzB4QlVIUnJkalJOU1dnMk5YZE5RMEYzUlVGQllVNURUVVZCZDBSbldVUldVakJRUVZGSUwwSkJVVVJCWjB0clRVSXdSMEV4VldSS1VWRlhDazFDVVVkRFEzTkhRVkZWUmtKM1RVTkNaMmR5UW1kRlJrSlJZMFJCVkVGUVFtZE9Wa2hTVFVKQlpqaEZRbFJCUkVGUlNDOU5RVEJIUTFOeFIxTkpZak1LUkZGRlFrTjNWVUZCTkVsQ1FWRkRiVVZyU2tsaGFIVlpPWGhRTDFwaGRXeFFaMnc0UTNKYVQxVkhVbFJvUVhoS1NuTjVkbkZUZFU1bll6WXpPWEZKUmdvdlUwOXFlRFV3WjA4d1VVNUpRblpPSzJKWGRubFlXV1ZhTkdWbGQyUXpaamhwWlVSWVVuWXhWMjFZUkU0M09IQlRWaXRsVnl0cFUzcFZiVGwxVG1SUkNrcDZSSFZrWTNsV2EwSnpZMkZhV2sxS2IwMWxTblZxT1hWVlNqaHlTVlpDTUN0c1FUaDZOM2xXYUZCNlkyWjZRWEZqVEV4eGFYZzBSekJSTUZSelNVWUtNRUZsUzBkTk9YcE1OMlpaZFZnd1dsQm5ZelF5Y1ZWNVJFVXJOakkxUzNJeFRYZEdNbTFCSzJOellVVkdSMGh2ZVUweFFsVk1aWE5FWmtkcE9YRkliUW96YVhOWWMzQnVRVmxDYlVOYWRXTjVXblJ0WVhoaFdrVXZNMFIwY1dWV1FqVkpNVUkwVldrM2FHSlJiRUY0T1ZsbVNscFBiVzB6VTJOd1EwaEVjVFpvQ2pkTGVHeDBXRFJrTTFad2RVaFpNRVJsYm05YWNUZGpWalJ0WjBzM1Rta3hUSFZxTXdvdExTMHRMVVZPUkNCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2c9PQogICAgc2VydmVyOiBodHRwczovLzEwLjAuMi4xNTo4NDQzCiAgbmFtZTogbWluaWt1YmUKY29udGV4dHM6Ci0gY29udGV4dDoKICAgIGNsdXN0ZXI6IG1pbmlrdWJlCiAgICB1c2VyOiBtaW5pa3ViZQogIG5hbWU6IG1pbmlrdWJlCmN1cnJlbnQtY29udGV4dDogbWluaWt1YmUKa2luZDogQ29uZmlnCnByZWZlcmVuY2VzOiB7fQp1c2VyczoKLSBuYW1lOiBtaW5pa3ViZQogIHVzZXI6CiAgICBjbGllbnQtY2VydGlmaWNhdGUtZGF0YTogTFMwdExTMUNSVWRKVGlCRFJWSlVTVVpKUTBGVVJTMHRMUzB0Q2sxSlNVUkJSRU5EUVdWcFowRjNTVUpCWjBsQ1FXcEJUa0puYTNGb2EybEhPWGN3UWtGUmMwWkJSRUZXVFZKTmQwVlJXVVJXVVZGRVJYZHdkR0ZYTlhBS1lUTldhVnBWVGtKTlFqUllSRlJGTlUxRVZYaE9WRUUwVFVSbmVFOUdiMWhFVkVsM1RVUlZlRTVVUVRSTlJHZDRUMFp2ZDAxVVJWaE5RbFZIUVRGVlJRcERhRTFQWXpOc2VtUkhWblJQYlRGb1l6TlNiR051VFhoR2FrRlZRbWRPVmtKQlRWUkVWekZ3WW0xc2NtUlhTbXhNV0ZaNldsaEpkMmRuUldsTlFUQkhDa05UY1VkVFNXSXpSRkZGUWtGUlZVRkJORWxDUkhkQmQyZG5SVXRCYjBsQ1FWRkVSM2N4UWtaQmJGVnhWVUpOVVhCek0zQTRaRkZGV2xKemNqUjRkalVLYldoMU4zVkZTVE00WVRWQ2VtZHJiVVY1VlhoYVp6RjBhbTkwTDFkRVFtTnBXUzlyTWl0b1FXaHpaVXBSUm13elNXWklkRTlOVERsTGNTdEJZMU0zWmdvNWEySmlZV00xUm1zdlZFUjVaSEZNV2xJdlRWbHdaRXhzZFc1c05XWkhhRTFSTVRkd2VuVlVZV0ZDVlZKWVQwNXRNREI0UVRoMGVqbG9RVUp3UVRGSkNraEhPVUkzYWxFNFlrZGpSWEJvU0ZscFQzUkRRa2xRSzNORWRtNXhSVkJvVDBOVFJHZ3Jha2hXYzJ4bk1sUTVNbUpKY1hCSVlsSXZXVVJFTUZGTU5XVUtLMDE0VEZwUFFsWXdaSFZyT1VKNWVHUjBiMlJwVTFrMk1XTTNXWEZWYlVnM2RHZFRRa3M0VjBoaGRrNTFTRU5aTW5sU1owMWFibEpXUW1GWk4zaHdSUXBRT0ZGdFFrSjFOSGhyY1VaVk9DdFZhV3hHVlhwalVWTnNLM294U1VGU2N6RlBOazkxVVhNM1QxcE1XbXR3TnpJdmJEbEVPVmRSWmtGblRVSkJRVWRxQ2xCNlFUbE5RVFJIUVRGVlpFUjNSVUl2ZDFGRlFYZEpSbTlFUVdSQ1owNVdTRk5WUlVacVFWVkNaMmR5UW1kRlJrSlJZMFJCVVZsSlMzZFpRa0pSVlVnS1FYZEpkMFJCV1VSV1VqQlVRVkZJTDBKQlNYZEJSRUZPUW1kcmNXaHJhVWM1ZHpCQ1FWRnpSa0ZCVDBOQlVVVkJabWswTTNSbllsWldNRXR6VDJ4alpncGxhalk1YlZrMFZ6WjVNREJLUTFKVVpYSk9ObE5UTVRrd0wxUXdNalZxTjB0UlQwVjNVRlJrV0ZOek4ydDZVMmMxUjFGTmFqYzFlRVZKZW10cGVVMVFDbUZ1Tlhwc1REaDVVa2RYT1VWNU4yODBOMng0Vmtnckt6Qm9PRU5FWm1Nd2VrTlFWVnB1UVdoaVVVZGhlbWczZDFoTkt6bEpaM3BsU1c1dmFrWjJia1FLWjI1UGFsQjJjbW92UmtGVVZucHVWSGd6ZUZwM04yeGFTbk14U0dWNFIwSjJWM1J5U1hCS1JtMUljVFJpU1RGT2FHMUtUbE50TmpSdU5HWnpLMGRGVlFwRVVFbDVTVTlQVm5WRmNYVkViVk5HTVVGWk0zRk9ORnBVZFU1TWFYcHNRbUo0Y25sR01YWlZNR1JrTTBWR1NFSjFZbUZGVEVOU1MxcEphazVWYm5acENtdE5XakppZGtWMGMxbENUSEJ3YVc5T1prUnFiRzlxVDNGNlZucHRiSFF5T1VKWmRISlRPVGM1Y1U0clQwZHZOWFZzT0ZJeU1UWjFNR0kyV1ZaVVNGUUthSHByY0VaUlBUMEtMUzB0TFMxRlRrUWdRMFZTVkVsR1NVTkJWRVV0TFMwdExRbz0KICAgIGNsaWVudC1rZXktZGF0YTogTFMwdExTMUNSVWRKVGlCU1UwRWdVRkpKVmtGVVJTQkxSVmt0TFMwdExRcE5TVWxGYjFGSlFrRkJTME5CVVVWQmVITk9VVkpSU2xaTGJFRlVSVXRpVGpabVNGVkNSMVZpU3l0TllpdGFiMkoxTjJoRFRpOUhkVkZqTkVwS2FFMXNDazFYV1U1aVdUWk1aakZuZDFoSmJWQTFUblp2VVVsaVNHbFZRbHBrZVVoNE4xUnFReTlUY1hablNFVjFNeTlhUnpJeWJrOVNXbEF3ZHpodVlXa3lWV1lLZWtkTFdGTTFZbkExWlZoNGIxUkZUbVUyWXpkck1tMW5Wa1ZXZW1wYWRFNU5VVkJNWXk5WlVVRmhVVTVUUW5oMlVXVTBNRkJIZUc1Q1MxbFNNa2xxY2dwUloxTkVMM0pCTnpVMmFFUTBWR2RyWnpSbWIzZ3hZa3BaVG1zdlpHMTVTM0ZTTWpCbU1rRjNPVVZESzFoMmFrMVRNbFJuVm1SSVluQlFVV056V0dKaENraFphMjFQZEZoUE1rdHNTbWdyTjFsRloxTjJSbWd5Y25waWFIZHRUbk5yV1VSSFdqQldVVmR0VHpoaFVrUXZSVXBuVVdKMVRWcExhRlpRVUd4SmNGSUtWazB6UlVWd1puTTVVMEZGWWs1VWRXcHlhMHhQZW0xVE1scExaVGwyTldaUkwxWnJTSGRKUkVGUlFVSkJiMGxDUVVSSU0xTlpaQzlzV2psRllpOWhRUXB4UlZWSFYxQkZaRFZhTWpkM2RqSldVWGxIUjNGWlltTjROWGxrVTJWc04yRktPSEJqTTJreVJ6bFdVV1Y0TDFsTFVXTXdWRkZrYW0xdFpXcGxTbTlrQ2s4eU9GTkdUbkZHZWpSaGRtSlZVVFUyWjJkbllXY3hUbkV6ZEVsc1FuSXdkV1pEYzFoRVNsSmFjekF6V2lzelNXOW5XVk4yVlZKTGFXeGhSU3QzTlM4S1IzZEhWMWhhTDNsSVNWZzVSWEZYZEVkRU4zWjJZM1oxZVVaeUwxaHFNa3huV0VWS1VrY3lja3gzY1RSVloyOHhNMjh4YTNsTFIycEdURlZUZEVaU2R3cDJOMnBpTTJGcFlYVmlUMU5JYUdoNlRVRTJhbGQxUVRJMUsyaHBVV2hVUWtoRE9IcGpkRlo1ZEdKd2JsVnZiMjFXTkV0cFJESlJaSFZ1V1hRMlVXaDFDbTVQVUN0MFlWZDFSREJMZFRkUVFWSjRiMnhHU1ZkNkwzaG5WMU42VG05cFpFZHlSV3RsVUcxRFVuWTBUalZHU0doRGRreENUM1ZhYmxwM1ZVRlNNV1FLVDBKcVZIZFJSVU5uV1VWQmVEZEpRVlpUVm1WalJVZDRkMWxLVTJwYU1FcEdWMXBOZUVWM2EyY3dVVWg0TlRKWGMwSnFhRmxpV0VWbFdDOXFRMVZ0UkFwRFJXUkJSek41VkhObFRsWjRUR3N5UWtVd0wwZElTVmxOZGxnMVVubEVlVkpRVkhGa1dIUndXRzlSU1VveWFrMUVkVlpqUkRGWFEwbHVXbGxLYVdGcUNuTXhTRlpaT1c1MlVGbGtNWGhHUVRWR2VXdDRWMGxqZWsxTGEwcElSQ3RWV25sT1RVcGxUMFJIVW14M1JFZ3dhbTlhZEdWVmNEaERaMWxGUVM5ek5FUUtaRE5KVm5kNFVIZGFOVUlyTlV0M1ZITjJZM296Y21sNkswWk1VRVJoY3paWmRtWmhielY2VGpSMVZuQnpWMEl4TDJGeVpVUXhWVTh2Um10SFdtbG5TUXBKY1ROQmIxRjJSVWxsWlhOME1DOWtOMEUyT0ZoMlZHcHNOM2Q2SzFKcFVqVnBLMjFETTB4cU1IWmlTV1o1TDJwUFZIRlBaazl2YlV4SFpsRklWamRYQ2xOelRXaERSbkZQWlU5MlpXRnNiM05WYkcxc1lXbENkVGR4VFhCVlFqWTJLMUIzVFM5dlJVTm5XVVZCY1hWRlYyZzRXRU5YYVhwakwzTnRWaXR5WnpFS00yRnVPRnB5TUVKUldrbHNWbWh5ZW5CNGVXcFJRV3hoV25ReVdWZFpiMlZLYVdSVFNrUk5iRGN3UzNCVlpqRnhlVFpQVDB0cmVqTnBRMUZVWlRGdmJBbzVablprTlZWdlJtdEhkRXQ2ZFRWUFRIcEVNRFZsYnpGM1YyVnFXbTlKU2pod2FFVkZXREppZVhaeWRrOHhNbkZtVEdONlJYQTBaVzQzVlVad2NtRkNDazUzUW5SWFREWnRiMEZQTUdKbWRHNVZhRXQ0VlN0RlEyZFpRVEZoUzJSUVdGTnNNR3d6VWxoelVFUTBTelV5UW1OT1JqbHBUV1Z2WTBkeldVZFhSVWNLY0RVNE4yeHFNazV3Y25GMGVFZE9XRUpZTjBGU1puSTNTMEZ1ZDFaamJrZDNlR0pUWVhVek1HdFhVV2hzUjNOWE9VMTJSazQxTWxKRE5VUXhWVXBKWXdwYWNscDFVbVZ0T1V0YU9VUkZXakpYVUVaRWNtNUJWR1ZZTDBFcmFEaGtlRXRyT1RsUFkxbE9WVXAwZUZCWE9USXpNMWRPZEdwcGNXRnhZbHBPVjJaS0NtdHpUME5uVVVvdlNDdFVTMnBhVDI4Mk9VOTFORXRMYlc5bFNWTnNVVGxrZW1aNFdYZ3ZMMEZ0UVZGTVVHTnBVbkF2ZGxwSk9UQXZlREI2V1dacWMwRUtkR2R6YW1aM1QwSnljMk53VVZBMk9WcHdNV2MzSzJwak5rVTJiMkpaT1dadFdDOXNaRmc1VkV4MmRISnZTM1JXVTBVelFrdDBaRWxUUTBZekx6TklhUXBNZG5GS0sxaElVWFZtZGtKRGExVkRlbVp3T0VOa016ZE5UVUU1VUd4Tk1rcElXVWxqYjFwVmJuWldPSGQwU214emR6MDlDaTB0TFMwdFJVNUVJRkpUUVNCUVVrbFdRVlJGSUV0RldTMHRMUzB0Q2c9PQo=
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment