From 5ecad136ef83bc7b165fc1ba2690a41044da6669 Mon Sep 17 00:00:00 2001 From: "Eric D. Helms" Date: Wed, 1 Apr 2026 14:38:04 -0400 Subject: [PATCH] Deploy iop in the dev environment --- .../playbooks/deploy-dev/deploy-dev.yaml | 44 ++++++++++++++++--- .../roles/foreman_development/tasks/main.yaml | 6 --- .../tasks/smart-proxy/main.yml | 8 ++-- .../foreman_development/tasks/stop-server.yml | 6 +++ src/roles/iop_gateway/templates/relay.conf.j2 | 1 + 5 files changed, 49 insertions(+), 16 deletions(-) create mode 100644 development/roles/foreman_development/tasks/stop-server.yml diff --git a/development/playbooks/deploy-dev/deploy-dev.yaml b/development/playbooks/deploy-dev/deploy-dev.yaml index 2832ff01c..caf89c1d9 100644 --- a/development/playbooks/deploy-dev/deploy-dev.yaml +++ b/development/playbooks/deploy-dev/deploy-dev.yaml @@ -12,11 +12,9 @@ - "../../../src/vars/base.yaml" vars: httpd_foreman_backend: "http://localhost:3000" - roles: - - role: pre_install - - role: certificates - - role: postgresql - vars: + pre_tasks: + - name: Set development postgresql databases + ansible.builtin.set_fact: postgresql_databases: - name: "{{ candlepin_database_name }}" owner: "{{ candlepin_database_user }}" @@ -34,6 +32,31 @@ role_attr_flags: SUPERUSER - name: "{{ pulp_database_user }}" password: "{{ pulp_database_password }}" + + - name: Setup iop requirements + when: + - "'iop' in enabled_features" + block: + - name: Include iop databases + ansible.builtin.include_vars: + file: "../../../src/vars/database_iop.yml" + + - name: Combine lists + ansible.builtin.set_fact: + postgresql_databases: "{{ postgresql_databases + iop_postgresql_databases }}" + postgresql_users: "{{ postgresql_users + iop_postgresql_users }}" + + - name: Enable foreman_rh_cloud plugin for iop + ansible.builtin.set_fact: + foreman_development_enabled_plugins: "{{ foreman_development_enabled_plugins + ['foreman_rh_cloud'] }}" + + - name: Enable foreman_ansible plugin for iop + ansible.builtin.set_fact: + foreman_development_enabled_plugins: "{{ foreman_development_enabled_plugins + ['foreman_ansible'] }}" + roles: + - role: pre_install + - role: certificates + - role: postgresql - role: redis - role: candlepin - role: httpd @@ -43,7 +66,18 @@ foreman_development_oauth_consumer_key: "{{ foreman_oauth_consumer_key }}" foreman_development_oauth_consumer_secret: "{{ foreman_oauth_consumer_secret }}" foreman_development_candlepin_oauth_secret: "{{ candlepin_oauth_secret }}" + - role: iop_core + when: + - "'iop' in enabled_features" + vars: + iop_core_foreman_oauth_consumer_key: "{{ foreman_oauth_consumer_key }}" + iop_core_foreman_oauth_consumer_secret: "{{ foreman_oauth_consumer_secret }}" post_tasks: + - name: Stop Foreman development service + ansible.builtin.include_role: + name: foreman_development + tasks_from: stop-server.yml + - name: Display development environment information ansible.builtin.debug: msg: | diff --git a/development/roles/foreman_development/tasks/main.yaml b/development/roles/foreman_development/tasks/main.yaml index f6356496f..7f5482a35 100644 --- a/development/roles/foreman_development/tasks/main.yaml +++ b/development/roles/foreman_development/tasks/main.yaml @@ -236,12 +236,6 @@ password: "{{ foreman_development_admin_password }}" ca_path: "{{ foreman_development_ca_certificate }}" -- name: Stop Foreman development service after smart proxy registration - ansible.builtin.systemd: - name: foreman-development - state: stopped - enabled: false - - name: Configure smart-proxy for development ansible.builtin.include_tasks: smart-proxy/main.yml when: diff --git a/development/roles/foreman_development/tasks/smart-proxy/main.yml b/development/roles/foreman_development/tasks/smart-proxy/main.yml index a0bd5bb44..1e935497b 100644 --- a/development/roles/foreman_development/tasks/smart-proxy/main.yml +++ b/development/roles/foreman_development/tasks/smart-proxy/main.yml @@ -144,12 +144,10 @@ oauth1_consumer_key: "{{ foreman_development_oauth_consumer_key }}" oauth1_consumer_secret: "{{ foreman_development_oauth_consumer_secret }}" ca_path: "{{ foreman_development_ca_certificate }}" + validate_certs: false -- name: Stop development services after smart proxy registration +- name: Stop smart-proxy-development service ansible.builtin.systemd: - name: "{{ item }}-development" + name: "smart-proxy-development" state: stopped enabled: false - with_items: - - smart-proxy - - foreman diff --git a/development/roles/foreman_development/tasks/stop-server.yml b/development/roles/foreman_development/tasks/stop-server.yml new file mode 100644 index 000000000..5fefbd9dc --- /dev/null +++ b/development/roles/foreman_development/tasks/stop-server.yml @@ -0,0 +1,6 @@ +--- +- name: Stop foreman-development service + ansible.builtin.systemd: + name: "foreman-development" + state: stopped + enabled: false diff --git a/src/roles/iop_gateway/templates/relay.conf.j2 b/src/roles/iop_gateway/templates/relay.conf.j2 index 8d13704ae..4b8e18eee 100644 --- a/src/roles/iop_gateway/templates/relay.conf.j2 +++ b/src/roles/iop_gateway/templates/relay.conf.j2 @@ -3,4 +3,5 @@ proxy_ssl_name "{{ foreman_servername | default(ansible_fqdn) }}"; # URI to forman # Example of host.containers.internal is the container network gateway. +proxy_set_header Host localhost; proxy_pass "https://host.containers.internal";