aboutsummaryrefslogtreecommitdiff
path: root/roles
diff options
context:
space:
mode:
authorMichal Nasiadka <mnasiadka@gmail.com>2025-10-07 19:57:40 +0200
committerMichal Nasiadka <mnasiadka@gmail.com>2025-10-09 13:05:44 +0000
commit10e719f9d8b4b8d8efbc00e9a69ae6984b4a0a10 (patch)
tree90d8bdb13cc41d8458f5a1b05e88970039a7b487 /roles
parentb2f348c4f6a6740c9faafc68b8e2a6fa9d3987ca (diff)
downloadkolla-ansible-10e719f9d8b4b8d8efbc00e9a69ae6984b4a0a10.tar.gz
kolla-ansible-10e719f9d8b4b8d8efbc00e9a69ae6984b4a0a10.zip
CI: Rework deploy.sh to an Ansible role
Change-Id: Iecb212c38732d38f704f1a7d43036f8bbade496a Signed-off-by: Michal Nasiadka <mnasiadka@gmail.com>
Diffstat (limited to 'roles')
-rw-r--r--roles/kolla-ansible-deploy/tasks/certificates.yml39
-rw-r--r--roles/kolla-ansible-deploy/tasks/deploy.yml55
-rw-r--r--roles/kolla-ansible-deploy/tasks/main.yml11
3 files changed, 105 insertions, 0 deletions
diff --git a/roles/kolla-ansible-deploy/tasks/certificates.yml b/roles/kolla-ansible-deploy/tasks/certificates.yml
new file mode 100644
index 000000000..6296a1dbe
--- /dev/null
+++ b/roles/kolla-ansible-deploy/tasks/certificates.yml
@@ -0,0 +1,39 @@
+---
+- name: Generate self-signed certificates for the optional internal TLS tests
+ ansible.builtin.shell:
+ cmd: >
+ . {{ kolla_ansible_venv_path }}/bin/activate &&
+ kolla-ansible certificates
+ -i /etc/kolla/inventory
+ -vvv
+ >/tmp/logs/ansible/certificates 2>&1
+
+- name: Init pebble when Lets Encrypt is enabled
+ when: (le_enabled | default(False)) | bool
+ block:
+ - name: "Run pebble container"
+ become: true
+ community.docker.docker_container:
+ name: pebble
+ image: "ghcr.io/letsencrypt/pebble:latest"
+ env:
+ PEBBLE_VA_NOSLEEP: "1"
+ PEBBLE_VA_ALWAYS_VALID: "1"
+ network_mode: host
+
+ - name: "Wait for pebble to start"
+ ansible.builtin.wait_for:
+ port: 15000
+ delay: 3
+
+ - name: "Copy pebble miniCA to /etc/kolla/certificates"
+ become: true
+ ansible.builtin.command:
+ cmd: "docker cp pebble:/test/certs/pebble.minica.pem /etc/kolla/certificates/ca/pebble-root.crt"
+
+ - name: "Fetch pebble.crt and store it in /etc/kolla/certificates/ca/"
+ become: true
+ ansible.builtin.get_url:
+ url: "https://127.0.0.1:15000/roots/0"
+ dest: "/etc/kolla/certificates/ca/pebble.crt"
+ validate_certs: false
diff --git a/roles/kolla-ansible-deploy/tasks/deploy.yml b/roles/kolla-ansible-deploy/tasks/deploy.yml
new file mode 100644
index 000000000..5b36d7b97
--- /dev/null
+++ b/roles/kolla-ansible-deploy/tasks/deploy.yml
@@ -0,0 +1,55 @@
+---
+- name: Run kolla-ansible prechecks
+ ansible.builtin.shell:
+ cmd: >
+ . {{ kolla_ansible_venv_path }}/bin/activate &&
+ kolla-ansible prechecks
+ -i /etc/kolla/inventory
+ -vvv
+ >/tmp/logs/ansible/deploy-prechecks 2>&1
+
+- name: Run kolla-ansible pull
+ ansible.builtin.shell:
+ cmd: >
+ . {{ kolla_ansible_venv_path }}/bin/activate &&
+ kolla-ansible pull
+ -i /etc/kolla/inventory
+ -vvv
+ >/tmp/logs/ansible/pull 2>&1
+
+- name: Run kolla-ansible deploy
+ ansible.builtin.shell:
+ cmd: >
+ . {{ kolla_ansible_venv_path }}/bin/activate &&
+ kolla-ansible deploy
+ -i /etc/kolla/inventory
+ -vvv
+ >/tmp/logs/ansible/deploy 2>&1
+
+- name: Run kolla-ansible post-deploy
+ ansible.builtin.shell:
+ cmd: >
+ . {{ kolla_ansible_venv_path }}/bin/activate &&
+ kolla-ansible post-deploy
+ -i /etc/kolla/inventory
+ -vvv
+ >/tmp/logs/ansible/post-deploy 2>&1
+
+- name: Run kolla-ansible validate-config on upgrades
+ ansible.builtin.shell:
+ cmd: >
+ . {{ kolla_ansible_venv_path }}/bin/activate &&
+ kolla-ansible validate-config
+ -i /etc/kolla/inventory
+ -vvv
+ >/tmp/logs/ansible/validate-config 2>&1
+ when: not is_upgrade | bool
+
+- name: Run kolla-ansible check
+ ansible.builtin.shell:
+ cmd: >
+ . {{ kolla_ansible_venv_path }}/bin/activate &&
+ kolla-ansible check
+ -i /etc/kolla/inventory
+ -vvv
+ >/tmp/logs/ansible/check 2>&1
diff --git a/roles/kolla-ansible-deploy/tasks/main.yml b/roles/kolla-ansible-deploy/tasks/main.yml
new file mode 100644
index 000000000..e02765d99
--- /dev/null
+++ b/roles/kolla-ansible-deploy/tasks/main.yml
@@ -0,0 +1,11 @@
+---
+- name: Ensure /etc/kolla is writable
+ become: true
+ ansible.builtin.file:
+ path: /etc/kolla
+ state: directory
+ mode: "0777"
+ recurse: true
+
+- import_tasks: certificates.yml
+- import_tasks: deploy.yml