mirror of
https://github.com/ansible-middleware/keycloak.git
synced 2025-04-05 02:10:29 -07:00
Port downstream upgrade
This commit is contained in:
parent
cd36eacb07
commit
3c22417674
5 changed files with 150 additions and 0 deletions
9
molecule/quarkus_upgrade/converge.yml
Normal file
9
molecule/quarkus_upgrade/converge.yml
Normal file
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
- name: Converge
|
||||
hosts: all
|
||||
vars_files:
|
||||
- vars.yml
|
||||
vars:
|
||||
keycloak_quarkus_version: 24.0.3
|
||||
roles:
|
||||
- role: keycloak_quarkus
|
43
molecule/quarkus_upgrade/molecule.yml
Normal file
43
molecule/quarkus_upgrade/molecule.yml
Normal file
|
@ -0,0 +1,43 @@
|
|||
---
|
||||
dependency:
|
||||
name: galaxy
|
||||
options:
|
||||
requirements-file: molecule/requirements.yml
|
||||
driver:
|
||||
name: docker
|
||||
platforms:
|
||||
- name: instance
|
||||
image: registry.access.redhat.com/ubi9/ubi-init:latest
|
||||
command: "/usr/sbin/init"
|
||||
pre_build_image: true
|
||||
privileged: true
|
||||
port_bindings:
|
||||
- 8080:8080
|
||||
published_ports:
|
||||
- 0.0.0.0:8080:8080/TCP
|
||||
provisioner:
|
||||
name: ansible
|
||||
playbooks:
|
||||
prepare: prepare.yml
|
||||
converge: converge.yml
|
||||
verify: verify.yml
|
||||
inventory:
|
||||
host_vars:
|
||||
localhost:
|
||||
ansible_python_interpreter: "{{ ansible_playbook_python }}"
|
||||
verifier:
|
||||
name: ansible
|
||||
scenario:
|
||||
test_sequence:
|
||||
- dependency
|
||||
- cleanup
|
||||
- destroy
|
||||
- syntax
|
||||
- create
|
||||
- prepare
|
||||
- converge
|
||||
- idempotence
|
||||
- side_effect
|
||||
- verify
|
||||
- cleanup
|
||||
- destroy
|
52
molecule/quarkus_upgrade/prepare.yml
Normal file
52
molecule/quarkus_upgrade/prepare.yml
Normal file
|
@ -0,0 +1,52 @@
|
|||
---
|
||||
- name: Prepare
|
||||
hosts: all
|
||||
vars_files:
|
||||
- vars.yml
|
||||
vars:
|
||||
sudo_pkg_name: sudo
|
||||
keycloak_quarkus_version: 22.0.10
|
||||
pre_tasks:
|
||||
- name: Install sudo
|
||||
ansible.builtin.apt:
|
||||
name:
|
||||
- sudo
|
||||
- openjdk-17-jdk-headless
|
||||
state: present
|
||||
when:
|
||||
- ansible_facts.os_family == 'Debian'
|
||||
|
||||
- name: "Ensure common prepare phase are set."
|
||||
ansible.builtin.include_tasks: ../prepare.yml
|
||||
|
||||
- name: Display Ansible version
|
||||
ansible.builtin.debug:
|
||||
msg: "Ansible version is {{ ansible_version.full }}"
|
||||
|
||||
- name: "Ensure {{ sudo_pkg_name }} is installed (if user is root)."
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ sudo_pkg_name }}"
|
||||
when:
|
||||
- ansible_user_id == 'root'
|
||||
|
||||
- name: Gather the package facts
|
||||
ansible.builtin.package_facts:
|
||||
manager: auto
|
||||
|
||||
- name: "Check if {{ sudo_pkg_name }} is installed."
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- sudo_pkg_name in ansible_facts.packages
|
||||
|
||||
- name: Create certificate request
|
||||
ansible.builtin.command: openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365 -nodes -subj '/CN=instance'
|
||||
delegate_to: localhost
|
||||
changed_when: false
|
||||
roles:
|
||||
- role: keycloak_quarkus
|
||||
post_tasks:
|
||||
- name: "Delete custom fact"
|
||||
ansible.builtin.file:
|
||||
path: /etc/ansible/facts.d/keycloak.fact
|
||||
state: absent
|
||||
become: true
|
14
molecule/quarkus_upgrade/vars.yml
Normal file
14
molecule/quarkus_upgrade/vars.yml
Normal file
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
keycloak_quarkus_offline_install: false
|
||||
keycloak_quarkus_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_admin_pass: "remembertochangeme"
|
||||
keycloak_quarkus_realm: TestRealm
|
||||
keycloak_quarkus_host: instance
|
||||
keycloak_quarkus_log: file
|
||||
keycloak_quarkus_https_key_file_enabled: true
|
||||
keycloak_quarkus_log_target: /tmp/keycloak
|
||||
keycloak_quarkus_hostname_strict: false
|
||||
keycloak_quarkus_cert_file_copy_enabled: true
|
||||
keycloak_quarkus_key_file_copy_enabled: true
|
||||
keycloak_quarkus_key_content: "{{ lookup('file', 'key.pem') }}"
|
||||
keycloak_quarkus_cert_file_src: cert.pem
|
32
molecule/quarkus_upgrade/verify.yml
Normal file
32
molecule/quarkus_upgrade/verify.yml
Normal file
|
@ -0,0 +1,32 @@
|
|||
---
|
||||
- name: Verify
|
||||
hosts: instance
|
||||
vars:
|
||||
keycloak_quarkus_admin_password: "remembertochangeme"
|
||||
keycloak_quarkus_port: http://localhost:8080
|
||||
tasks:
|
||||
- name: Populate service facts
|
||||
ansible.builtin.service_facts:
|
||||
|
||||
- name: Check if keycloak service started
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- ansible_facts.services["rhbk.service"]["state"] == "running"
|
||||
- ansible_facts.services["rhbk.service"]["status"] == "enabled"
|
||||
|
||||
- name: Verify we are running on requested jvm
|
||||
ansible.builtin.shell: |
|
||||
set -eo pipefail
|
||||
ps -ef | grep 'etc/alternatives/.*17' | grep -v grep
|
||||
changed_when: false
|
||||
|
||||
- name: Verify token api call
|
||||
ansible.builtin.uri:
|
||||
url: "{{ keycloak_quarkus_port }}/realms/master/protocol/openid-connect/token"
|
||||
method: POST
|
||||
body: "client_id=admin-cli&username=admin&password={{ keycloak_quarkus_admin_password }}&grant_type=password"
|
||||
validate_certs: no
|
||||
register: keycloak_auth_response
|
||||
until: keycloak_auth_response.status == 200
|
||||
retries: 2
|
||||
delay: 2
|
Loading…
Add table
Reference in a new issue