From acc0271dc67f6e92bc9d203a50df0739533865f2 Mon Sep 17 00:00:00 2001 From: faizanahmad055 Date: Tue, 10 Jul 2018 13:14:55 +0500 Subject: [PATCH] Add chart in Reloader --- Makefile | 4 +- build/package/Dockerfile | 4 +- .../kubernetes/chart/reloader/Chart.yaml | 13 ++++++ .../chart/reloader/templates/_helpers.tpl | 33 +++++++++++++++ .../chart/reloader/templates/deployment.yaml | 42 +++++++++++++++++++ .../chart/reloader/templates/rbac.yaml | 40 ++++++++++++++++++ .../kubernetes/chart/reloader/values.yaml | 18 ++++++++ 7 files changed, 150 insertions(+), 4 deletions(-) create mode 100644 deployments/kubernetes/chart/reloader/Chart.yaml create mode 100644 deployments/kubernetes/chart/reloader/templates/_helpers.tpl create mode 100644 deployments/kubernetes/chart/reloader/templates/deployment.yaml create mode 100644 deployments/kubernetes/chart/reloader/templates/rbac.yaml create mode 100644 deployments/kubernetes/chart/reloader/values.yaml diff --git a/Makefile b/Makefile index 28e821b..55e2a25 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ BUILDER ?= reloader-builder BINARY ?= Reloader DOCKER_IMAGE ?= stakater/reloader # Default value "dev" -DOCKER_TAG ?= dev +DOCKER_TAG ?= 1.0.0 REPOSITORY = ${DOCKER_IMAGE}:${DOCKER_TAG} VERSION=$(shell cat .version) @@ -47,6 +47,6 @@ push: ## push the latest Docker image to DockerHub docker push $(REPOSITORY) apply: - kubectl apply -f deployments/manifests/ + kubectl apply -f deployments/manifests/ -n temp-reloader deploy: binary-image push apply diff --git a/build/package/Dockerfile b/build/package/Dockerfile index 024cd72..aa80681 100644 --- a/build/package/Dockerfile +++ b/build/package/Dockerfile @@ -1,5 +1,5 @@ FROM scratch -ENTRYPOINT ["/Reloader"] +ENTRYPOINT ["/reloader"] -COPY ./Reloader / +COPY ./reloader / diff --git a/deployments/kubernetes/chart/reloader/Chart.yaml b/deployments/kubernetes/chart/reloader/Chart.yaml new file mode 100644 index 0000000..5677e79 --- /dev/null +++ b/deployments/kubernetes/chart/reloader/Chart.yaml @@ -0,0 +1,13 @@ +# Generated from deployments/kubernetes/templates/chart/Chart.yaml.tmpl + +apiVersion: v1 +name: reloader +description: Reloader chart that runs on kubernetes +version: 1.0.0 +keywords: + - Reloader + - kubernetes +home: https://github.com/stakater/Reloader +maintainers: +- name: Stakater + email: hello@stakater.com \ No newline at end of file diff --git a/deployments/kubernetes/chart/reloader/templates/_helpers.tpl b/deployments/kubernetes/chart/reloader/templates/_helpers.tpl new file mode 100644 index 0000000..85c17ae --- /dev/null +++ b/deployments/kubernetes/chart/reloader/templates/_helpers.tpl @@ -0,0 +1,33 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" | lower -}} +{{- 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). +*/}} +{{- define "fullname" -}} +{{- $name := default .Chart.Name .Values.nameOverride -}} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{- define "labels.selector" -}} +app: {{ template "name" . }} +group: {{ .Values.reloader.labels.group }} +provider: {{ .Values.reloader.labels.provider }} +{{- end -}} + +{{- define "labels.stakater" -}} +{{ template "labels.selector" . }} +version: {{ .Values.reloader.labels.version }} +{{- end -}} + +{{- define "labels.chart" -}} +chart: "{{ .Chart.Name }}-{{ .Chart.Version }}" +release: {{ .Release.Name | quote }} +heritage: {{ .Release.Service | quote }} +{{- end -}} \ No newline at end of file diff --git a/deployments/kubernetes/chart/reloader/templates/deployment.yaml b/deployments/kubernetes/chart/reloader/templates/deployment.yaml new file mode 100644 index 0000000..ee857fb --- /dev/null +++ b/deployments/kubernetes/chart/reloader/templates/deployment.yaml @@ -0,0 +1,42 @@ +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + annotations: + configmap.fabric8.io/update-on-change: {{ template "name" . }} + labels: +{{ include "labels.stakater" . | indent 4 }} +{{ include "labels.chart" . | indent 4 }} + name: {{ template "name" . }} +spec: + replicas: 1 + revisionHistoryLimit: 2 + selector: + matchLabels: +{{ include "labels.selector" . | indent 6 }} + template: + metadata: + annotations: + configmap.fabric8.io/update-on-change: {{ template "name" . }} + labels: +{{ include "labels.selector" . | indent 8 }} + spec: + containers: + - env: + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: CONFIG_FILE_PATH + value: {{ .Values.reloader.configFilePath }} + image: "{{ .Values.reloader.image.name }}:{{ .Values.reloader.image.tag }}" + imagePullPolicy: {{ .Values.reloader.image.pullPolicy }} + name: {{ template "name" . }} + volumeMounts: + - mountPath: /configs + name: config-volume + serviceAccountName: {{ template "name" . }} + volumes: + - configMap: + name: {{ template "name" . }} + name: config-volume + \ No newline at end of file diff --git a/deployments/kubernetes/chart/reloader/templates/rbac.yaml b/deployments/kubernetes/chart/reloader/templates/rbac.yaml new file mode 100644 index 0000000..90ee763 --- /dev/null +++ b/deployments/kubernetes/chart/reloader/templates/rbac.yaml @@ -0,0 +1,40 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + labels: +{{ include "labels.stakater" . | indent 4 }} +{{ include "labels.chart" . | indent 4 }} + name: {{ template "name" . }} +--- +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRole +metadata: + labels: +{{ include "labels.stakater" . | indent 4 }} +{{ include "labels.chart" . | indent 4 }} + name: {{ template "name" . }}-role +rules: + - apiGroups: + - "" + resources: + - pods + verbs: + - list + - get + - watch +--- +apiVersion: rbac.authorization.k8s.io/v1beta1 +kind: ClusterRoleBinding +metadata: + labels: +{{ include "labels.stakater" . | indent 4 }} +{{ include "labels.chart" . | indent 4 }} + name: {{ template "name" . }}-role-binding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ template "name" . }}-role +subjects: + - kind: ServiceAccount + name: {{ template "name" . }} + namespace: .Release.Namespace \ No newline at end of file diff --git a/deployments/kubernetes/chart/reloader/values.yaml b/deployments/kubernetes/chart/reloader/values.yaml new file mode 100644 index 0000000..6416512 --- /dev/null +++ b/deployments/kubernetes/chart/reloader/values.yaml @@ -0,0 +1,18 @@ +# Generated from deployments/kubernetes/templates/chart/values.yaml.tmpl + +kubernetes: + host: https://kubernetes.default + +reloader: + labels: + provider: stakater + group: com.stakater.platform + version: 1.0.0 + image: + name: stakater/reloader + tag: "1.0.0" + pullPolicy: IfNotPresent + controllers: + - type: pods + + configFilePath: /configs/config.yaml \ No newline at end of file