From 8e53acb53faceb8344f013c0533ed21991e202c5 Mon Sep 17 00:00:00 2001 From: Arie Peterson <arie@greenhost.nl> Date: Tue, 3 Dec 2019 15:18:07 +0100 Subject: [PATCH] Install local-flux via helm chart --- ansible/roles/local-flux/files/Chart.yaml | 6 +++++ ansible/roles/local-flux/files/nginx.yaml | 28 ++++++++++----------- ansible/roles/local-flux/files/values.yaml | 6 +++++ ansible/roles/local-flux/tasks/main.yml | 29 +++++++++++++++++++--- 4 files changed, 51 insertions(+), 18 deletions(-) create mode 100644 ansible/roles/local-flux/files/Chart.yaml create mode 100644 ansible/roles/local-flux/files/values.yaml diff --git a/ansible/roles/local-flux/files/Chart.yaml b/ansible/roles/local-flux/files/Chart.yaml new file mode 100644 index 000000000..65f31ac16 --- /dev/null +++ b/ansible/roles/local-flux/files/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v1 +name: local-flux +version: 0.1.0 +description: | + Sets up an nginx deployment to serve a git repo (stored on local + disk) via http diff --git a/ansible/roles/local-flux/files/nginx.yaml b/ansible/roles/local-flux/files/nginx.yaml index 7104dfa22..a61cd82cd 100644 --- a/ansible/roles/local-flux/files/nginx.yaml +++ b/ansible/roles/local-flux/files/nginx.yaml @@ -1,7 +1,7 @@ apiVersion: v1 kind: PersistentVolume metadata: - name: local-flux-data + name: {{ .Release.Name }}-data labels: type: local spec: @@ -11,17 +11,17 @@ spec: accessModes: - ReadOnlyMany hostPath: - path: "/var/lib/OpenAppStack/local-flux" + path: "{{ .Values.local_flux_directory }}" --- apiVersion: v1 kind: PersistentVolumeClaim metadata: namespace: oas - name: local-flux-data + name: {{ .Release.Name }}-data spec: storageClassName: "" # Make sure this claims uses the persistent volume describe above. - volumeName: "local-flux-data" + volumeName: {{ .Release.Name }}-data accessModes: - ReadOnlyMany resources: @@ -32,38 +32,38 @@ apiVersion: apps/v1 kind: Deployment metadata: namespace: oas - name: local-flux + name: {{ .Release.Name }} spec: selector: matchLabels: - app: local-flux + app: {{ .Release.Name }} replicas: 1 template: metadata: labels: - app: local-flux + app: {{ .Release.Name }} spec: containers: - - name: local-flux-nginx - image: nginx:1.17-alpine + - name: {{ .Release.Name }}-nginx + image: nginx:{{ .Values.nginx.image.tag }} ports: - containerPort: 80 volumeMounts: - mountPath: "/usr/share/nginx/html" - name: local-flux-data + name: {{ .Release.Name }}-data volumes: - - name: local-flux-data + - name: {{ .Release.Name }}-data persistentVolumeClaim: - claimName: local-flux-data + claimName: {{ .Release.Name }}-data --- apiVersion: v1 kind: Service metadata: namespace: oas - name: local-flux + name: {{ .Release.Name }} spec: selector: - app: local-flux + app: {{ .Release.Name }} ports: - protocol: TCP port: 80 diff --git a/ansible/roles/local-flux/files/values.yaml b/ansible/roles/local-flux/files/values.yaml new file mode 100644 index 000000000..c9d504f4b --- /dev/null +++ b/ansible/roles/local-flux/files/values.yaml @@ -0,0 +1,6 @@ +# Directory on node where the HelmRelease files are stored. +local_flux_directory: "/var/lib/OpenAppStack/local-flux" + +nginx: + image: + tag: "1.17-alpine" diff --git a/ansible/roles/local-flux/tasks/main.yml b/ansible/roles/local-flux/tasks/main.yml index cfd9d6b9c..00e5a4257 100644 --- a/ansible/roles/local-flux/tasks/main.yml +++ b/ansible/roles/local-flux/tasks/main.yml @@ -40,12 +40,33 @@ when: helmreleases.changed become: true - - name: Deploy local flux nginx + - name: Create local-flux helm chart directory tags: - flux - k8s: - state: present - definition: "{{ lookup('file', 'nginx.yaml') }}" + file: + path: "/var/lib/OpenAppStack/source/local-flux/templates" + state: directory + become: true + + - name: Copy local-flux helm chart to server + tags: + - flux + copy: + src: "{{ item.file }}" + dest: "/var/lib/OpenAppStack/source/local-flux/{{ item.subdir }}/{{ item.file }}" + with_items: + - file: "nginx.yaml" + subdir: "templates" + - file: "values.yaml" + subdir: "." + - file: "Chart.yaml" + subdir: "." + become: true + + - name: Install local-flux helm chart + tags: + - flux + shell: helm install --namespace=oas --name=local-flux /var/lib/OpenAppStack/source/local-flux vars: repo: "/var/lib/OpenAppStack/local-flux" -- GitLab