From e728ea692fdd0c34ed254f9caa39b9fd499363a9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jarom=C3=ADr=20Hradil?= <jaromir.hradil@cesnet.cz>
Date: Mon, 26 Aug 2024 17:35:21 +0200
Subject: [PATCH] Adding an automated accounting deploy
---
.../accounting-config.yaml | 13 ++++++
common/playbooks/accounting.yaml | 44 +++++++++++++++++++
.../accounting-config.yaml | 1 +
staging1/playbooks/accounting.yaml | 1 +
.../accounting-config.yaml | 1 +
staging2/playbooks/accounting.yaml | 1 +
6 files changed, 61 insertions(+)
create mode 100644 common/accounting_deployments/accounting-config.yaml
create mode 100644 common/playbooks/accounting.yaml
create mode 120000 staging1/accounting_deployments/accounting-config.yaml
create mode 120000 staging1/playbooks/accounting.yaml
create mode 120000 staging2/accounting_deployments/accounting-config.yaml
create mode 120000 staging2/playbooks/accounting.yaml
diff --git a/common/accounting_deployments/accounting-config.yaml b/common/accounting_deployments/accounting-config.yaml
new file mode 100644
index 0000000..0335719
--- /dev/null
+++ b/common/accounting_deployments/accounting-config.yaml
@@ -0,0 +1,13 @@
+eosc:
+ tokenUrl: "https://{{ secrets['checkin_host'] }}/OIDC/token"
+ clientId: "{{ secrets['client_id'] }}"
+ clientSecret: "{{ secrets['client_secret'] }}"
+ accountingUrl: "https://{{ secrets['accounting_host'] }}"
+ accountingInstallationId: "{{ secrets['accounting_install_id'] }}"
+ flavorMetrics:
+ small-environment-2-vcpu-4-gb-ram: 668bdd5988e1d617b217ecb9
+ medium-environment-4-vcpu-8-gb-ram: 668bdd75d1bc0f46a16be8a2
+ large-environment-8-vcpu-16-gb-ram-gpu: 668bdd8b88e1d617b217ecba
+ large-environment-8-vcpu-16-gb-ram: 6694d9eb744c3c7ae7531917
+
+
diff --git a/common/playbooks/accounting.yaml b/common/playbooks/accounting.yaml
new file mode 100644
index 0000000..293a4c2
--- /dev/null
+++ b/common/playbooks/accounting.yaml
@@ -0,0 +1,44 @@
+- name: EOSC accounting deployment
+ hosts: master
+ become: true
+ tasks:
+ - name: Configure helm repo
+ shell: |-
+ helm repo add egi-accounting https://egi-federation.github.io/egi-notebooks-accounting
+ helm repo update
+ when: "'egi-accounting' not in ansible_local.helm_repos | map(attribute='name') | list"
+ - name: Get credentials from Vault for accounting
+ set_fact:
+ secrets: "{{ lookup('community.hashi_vault.hashi_vault', (vault_mount_point, 'accounting') | path_join,
+ token_validate=false) }}"
+ - name: Get accounting installation ID from Vault
+ set_fact:
+ secrets: "{{ secrets | combine(lookup('community.hashi_vault.hashi_vault', (vault_mount_point, 'site-' + site_name) | path_join,
+ token_validate=false)) }}"
+ - name: Debug accounting secrets
+ debug:
+ msg: "{{ item.key }} = {{ item.value }}"
+ loop: "{{ secrets | dict2items }}"
+ - name: Copy config file to master
+ template:
+ src: "../accounting_deployments/accounting-config.yaml"
+ dest: "/tmp/accounting-config.yaml"
+ mode: 0600
+ - name: Deploy/upgrade accounting instance
+ vars:
+ name: "notebooks-accounting"
+ version: "0.2.0"
+ shell: |-
+ helm status --namespace accounting {{ name }}
+ if [ $? -ne 0 ]; then
+ helm install --create-namespace --namespace accounting \
+ -f /tmp/accounting-config.yaml --version {{ version }} \
+ {{ name }} egi-accounting/notebooks-accounting
+ else
+ helm upgrade --version {{ version }} -f /tmp/accounting-config.yaml \
+ --namespace accounting {{ name }} egi-accounting/notebooks-accounting
+ fi
+ environment:
+ KUBECONFIG: /etc/kubernetes/admin.conf
+ PATH: /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
+ when: true
\ No newline at end of file
diff --git a/staging1/accounting_deployments/accounting-config.yaml b/staging1/accounting_deployments/accounting-config.yaml
new file mode 120000
index 0000000..c064841
--- /dev/null
+++ b/staging1/accounting_deployments/accounting-config.yaml
@@ -0,0 +1 @@
+../../common/accounting_deployments/accounting-config.yaml
\ No newline at end of file
diff --git a/staging1/playbooks/accounting.yaml b/staging1/playbooks/accounting.yaml
new file mode 120000
index 0000000..8928484
--- /dev/null
+++ b/staging1/playbooks/accounting.yaml
@@ -0,0 +1 @@
+../../common/playbooks/accounting.yaml
\ No newline at end of file
diff --git a/staging2/accounting_deployments/accounting-config.yaml b/staging2/accounting_deployments/accounting-config.yaml
new file mode 120000
index 0000000..c064841
--- /dev/null
+++ b/staging2/accounting_deployments/accounting-config.yaml
@@ -0,0 +1 @@
+../../common/accounting_deployments/accounting-config.yaml
\ No newline at end of file
diff --git a/staging2/playbooks/accounting.yaml b/staging2/playbooks/accounting.yaml
new file mode 120000
index 0000000..8928484
--- /dev/null
+++ b/staging2/playbooks/accounting.yaml
@@ -0,0 +1 @@
+../../common/playbooks/accounting.yaml
\ No newline at end of file
--
GitLab