diff --git a/ansible-5/roles/prod.k3s/defaults/main.yml b/ansible-5/roles/prod.k3s/defaults/main.yml index 7c5638b..b95f9e1 100644 --- a/ansible-5/roles/prod.k3s/defaults/main.yml +++ b/ansible-5/roles/prod.k3s/defaults/main.yml @@ -1,18 +1,25 @@ --- # default values for prod.k3s +kube_context: home fstab: gluster: #state can be present, mounted, absent, unmounted, remounted + - name: plex + path: "/var/lib/plex" + state: absent + - name: plex + path: "/opt/data/plex" + state: mounted # - name: jenkins # path: "/var/lib/jenkins" # state: mounted - - name: gitea - path: "/var/lib/gitea" - state: present - - name: vmshares - path: "/opt/shared" - state: mounted +# - name: gitea +# path: "/var/lib/gitea" +# state: present +# - name: vmshares +# path: "/opt/shared" +# state: mounted # - name: mariadb # path: "/opt/mariadb" # state: mounted diff --git a/ansible-5/roles/prod.k3s/files/stash/pv-claim.yaml b/ansible-5/roles/prod.k3s/files/stash/pv-claim.yaml new file mode 100644 index 0000000..0af8bb2 --- /dev/null +++ b/ansible-5/roles/prod.k3s/files/stash/pv-claim.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: stash-pv-claim + namespace: testing +spec: + storageClassName: manual + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi diff --git a/ansible-5/roles/prod.k3s/files/stash/pv.yaml b/ansible-5/roles/prod.k3s/files/stash/pv.yaml new file mode 100644 index 0000000..65c101b --- /dev/null +++ b/ansible-5/roles/prod.k3s/files/stash/pv.yaml @@ -0,0 +1,17 @@ +--- +# persistent volume +apiVersion: v1 +kind: PersistentVolume +metadata: + name: plex-pv-local + labels: + type: local +spec: + storageClassName: manual + capacity: + storage: 100Gi + accessModes: + - ReadWriteOnce + hostPath: + path: "/opt/data/plex" + diff --git a/ansible-5/roles/prod.k3s/files/stash/values.yaml b/ansible-5/roles/prod.k3s/files/stash/values.yaml new file mode 100644 index 0000000..b73825f --- /dev/null +++ b/ansible-5/roles/prod.k3s/files/stash/values.yaml @@ -0,0 +1,14 @@ +--- +#values file for stash deployment + +ingress: + main: + enabled: true + hosts: + - host: stash.xai-corp.net + paths: + - path: /opt/stash +persistence: + config: + enabled: true + existingClaim: stash-pv-claim diff --git a/ansible-5/roles/prod.k3s/tasks/deployments/stash.yaml b/ansible-5/roles/prod.k3s/tasks/deployments/stash.yaml new file mode 100644 index 0000000..154c767 --- /dev/null +++ b/ansible-5/roles/prod.k3s/tasks/deployments/stash.yaml @@ -0,0 +1,47 @@ +--- +# stash media manager + +# helm should be run from local environment +- name: check we can access the cluster + local_action: + module: kubernetes.core.helm_info +# kubeconfig: "/etc/rancher/k3s/k3s.yaml" + context: "{{kube_context}}" + name: test + release_namespace: kube-system +# release_state: all + register: default_namespace + +- name: create persistent volume resources + kubernetes.core.k8s: + kubeconfig: "/etc/rancher/k3s/k3s.yaml" + state: present + definition: "{{ lookup('file', item) | from_yaml }}" + loop: + - stash/pv.yaml + - stash/pv-claim.yaml + become: true + +- name: Add stash chart helm repo + local_action: + module: kubernetes.core.helm_repository + name: k8s-at-home + repo_url: https://k8s-at-home.com/charts/ + +- name: load variables files/stash/values.yaml + ansible.builtin.include_vars: + file: files/stash/values.yaml + name: stash_values + +- name: Install stash Chart + local_action: + module: kubernetes.core.helm + release_state: present + name: stash + namespace: testing + create_namespace: yes + update_repo_cache: True + chart_ref: k8s-at-home/stash + values: "{{stash_values}}" + wait: true + diff --git a/ansible-5/roles/prod.k3s/tasks/main.yml b/ansible-5/roles/prod.k3s/tasks/main.yml index cfa457b..fe0960b 100644 --- a/ansible-5/roles/prod.k3s/tasks/main.yml +++ b/ansible-5/roles/prod.k3s/tasks/main.yml @@ -2,14 +2,16 @@ # provisioning services in k3s cluster # mount gluster -- include_tasks: gluster.fstab.yml +#- include_tasks: gluster.fstab.yml +# +## add helm repositories +#- include_tasks: add_repos.yml +# +#- include_tasks: cert_manager.yml +# +#- include_tasks: hello-world.yaml -# add helm repositories -- include_tasks: add_repos.yml - -- include_tasks: cert_manager.yml - -- include_tasks: hello-world.yaml +- include_tasks: deployments/stash.yaml #- include_tasks: mariadb.yaml