diff --git a/ansible/group_vars/all/oas.yml b/ansible/group_vars/all/oas.yml index c508a9ca42b3be00acc6ee6833f0ae8a30622208..0b47f8dc8de1057d3d9db5baaacb4cb2aabb4cca 100644 --- a/ansible/group_vars/all/oas.yml +++ b/ansible/group_vars/all/oas.yml @@ -20,6 +20,12 @@ onlyoffice_jwt_secret: "{{ lookup('password', '{{ cluster_dir }}/secrets/onlyoff onlyoffice_postgresql_password: "{{ lookup('password', '{{ cluster_dir }}/secrets/onlyoffice_postgresql_password chars=ascii_letters') }}" onlyoffice_rabbitmq_password: "{{ lookup('password', '{{ cluster_dir }}/secrets/onlyoffice_rabbitmq_password chars=ascii_letters') }}" +# Rocketchat credentials +rocketchat_mongodb_password: "{{ lookup('password', '{{ cluster_dir }}/secrets/rocketchat_mongodb_password chars=ascii_letters') }}" +rocketchat_mongodb_root_password: "{{ lookup('password', '{{ cluster_dir }}/secrets/rocketchat_mongodb_root_password chars=ascii_letters') }}" +rocketchat_admin_password: "{{ lookup('password', '{{ cluster_dir }}/secrets/rocketchat_admin_password chars=ascii_letters') }}" + +# Grafana credentials grafana_admin_password: "{{ lookup('password', '{{ cluster_dir }}/secrets/grafana_admin_password chars=ascii_letters') }}" # git repo versions diff --git a/ansible/group_vars/all/settings.yml.example b/ansible/group_vars/all/settings.yml.example index f5ad5d7252966b3b7726b17fd2c4dbf585e00cf0..b7d05d5c9e17dea992476d2ea670cb7574a7ff9e 100644 --- a/ansible/group_vars/all/settings.yml.example +++ b/ansible/group_vars/all/settings.yml.example @@ -19,6 +19,10 @@ helmfiles: - 05-cert-manager - 10-nginx - 15-monitoring +# This setting makes Flux use a local git repository to see if apps need +# updated. In the future this should only be enabled on development machines, +# but at the moment it's te only option +local_flux: true # Optional, custom rke config. # I.e. you can set the desired Kubernetes version but please be aware of diff --git a/ansible/roles/apps/tasks/init.yml b/ansible/roles/apps/tasks/init.yml index a1cd66afc8b512e55566f1be081f71679bb6cf17..ddfec9dace6cbbda512cea2ed9b229161f6769a2 100644 --- a/ansible/roles/apps/tasks/init.yml +++ b/ansible/roles/apps/tasks/init.yml @@ -20,7 +20,6 @@ - name: Create value overrides directory tags: - config - - oas - nextcloud - prometheus - nginx @@ -32,7 +31,6 @@ tags: - config - helmfile - - oas - nextcloud - prometheus - nginx diff --git a/ansible/roles/apps/tasks/main.yml b/ansible/roles/apps/tasks/main.yml index 10de1819a8f9b1c23c40f549f10e2262c94f2207..a2ca1d070df18821f1d4df3be5f33e6e2ba92e20 100644 --- a/ansible/roles/apps/tasks/main.yml +++ b/ansible/roles/apps/tasks/main.yml @@ -28,5 +28,8 @@ tags: [ helmfile ] when: '"15-monitoring" in helmfiles' +- name: Tasks pertaining to Rocket.chat + import_tasks: rocketchat.yml + - name: Tasks pertaining to NextCloud import_tasks: nextcloud.yml diff --git a/ansible/roles/apps/tasks/nextcloud.yml b/ansible/roles/apps/tasks/nextcloud.yml index 1b6047647c34a46d0a7f88d6fc044f3266f783ea..fea230ef46b86eb087cd45007bb4f9dc05fad855 100644 --- a/ansible/roles/apps/tasks/nextcloud.yml +++ b/ansible/roles/apps/tasks/nextcloud.yml @@ -4,7 +4,6 @@ tags: - config - flux - - oas - nextcloud k8s: state: present diff --git a/ansible/roles/apps/tasks/rocketchat.yml b/ansible/roles/apps/tasks/rocketchat.yml new file mode 100644 index 0000000000000000000000000000000000000000..c090a8667050b43919717237859a551f6ee89ce1 --- /dev/null +++ b/ansible/roles/apps/tasks/rocketchat.yml @@ -0,0 +1,18 @@ +--- + +- name: Create Kubernetes secret with Rocketchat values + tags: + - config + - flux + - rocketchat + k8s: + state: present + definition: + api_version: v1 + kind: Secret + metadata: + namespace: "oas-apps" + name: "oas" + data: + rocketchat.yaml: "{{ lookup('template','secrets.rocketchat.yaml') | b64encode }}" + diff --git a/ansible/roles/apps/templates/secrets.rocketchat.yaml b/ansible/roles/apps/templates/secrets.rocketchat.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f33a1032ee8c56092e0ebc17d61e9a0081d282b5 --- /dev/null +++ b/ansible/roles/apps/templates/secrets.rocketchat.yaml @@ -0,0 +1,28 @@ +# Hostname for Rocket.chat +host: "chat.{{ domain }}" + +# Extra environment variables for Rocket.Chat. Used with tpl function, so this +# needs to be a string +extraEnv: | + ADMIN_USERNAME: admin + ADMIN_PASS: "{{ rocketchat_admin_password }}" + ADMIN_EMAIL: "{{ admin_email }}" + +ingress: + enabled: true + annotations: + # Tell cert-manager to automatically get a TLS certificate + kubernetes.io/tls-acme: "true" + tls: + - hosts: + - "chat.{{ domain }}" + secretName: oas-rocketchat + +# Use 2 GB of storage for NC storage (maybe make configurable later?) +persistence: + enabled: true + size: 2Gi + +mongodb: + mongodbRootPassword: "{{ rocketchat_mongodb_root_password }}" + mongodbPassword: "{{ rocketchat_mongodb_password }}" diff --git a/ansible/roles/local-flux/tasks/main.yml b/ansible/roles/local-flux/tasks/main.yml index 00e5a4257ff302478c78db13ab37d3269de8550e..4bf719ff6a91e77be5a29e5a8d5616593fb10a93 100644 --- a/ansible/roles/local-flux/tasks/main.yml +++ b/ansible/roles/local-flux/tasks/main.yml @@ -66,7 +66,7 @@ - name: Install local-flux helm chart tags: - flux - shell: helm install --namespace=oas --name=local-flux /var/lib/OpenAppStack/source/local-flux + shell: helm upgrade --install --namespace=oas local-flux /var/lib/OpenAppStack/source/local-flux vars: repo: "/var/lib/OpenAppStack/local-flux" diff --git a/flux/rocketchat.yaml b/flux/rocketchat.yaml new file mode 100644 index 0000000000000000000000000000000000000000..02a0b01993cfb4d92fd5fa1c85d540affd7cf960 --- /dev/null +++ b/flux/rocketchat.yaml @@ -0,0 +1,20 @@ +--- +apiVersion: helm.fluxcd.io/v1 +kind: HelmRelease +metadata: + name: rocketchat + namespace: oas-apps + annotations: + flux.weave.works/automated: "false" +spec: + releaseName: rocketchat + chart: + repository: https://kubernetes-charts.storage.googleapis.com/ + name: rocketchat + version: 2.0.0 + valuesFrom: + - secretKeyRef: + name: oas + key: rocketchat.yaml + timeout: 300 +