diff --git a/ansible/roles/local-flux/files/Chart.yaml b/ansible/roles/local-flux/files/Chart.yaml new file mode 100644 index 0000000000000000000000000000000000000000..65f31ac167e1b6a9c9be73a6a091373d2dd7fb0e --- /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 7104dfa2250397dcb30110995cf8dd7488b45854..a61cd82cd37ddf6f8e1489f2c554a76f8ad0ff71 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 0000000000000000000000000000000000000000..c9d504f4bc356be2e58c70f65b16f97db911cf2a --- /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 cfd9d6b9cc1df4ec03b28c6f9430d2d11b690591..00e5a4257ff302478c78db13ab37d3269de8550e 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"