Skip to content

Flavor: foreman-proxy-content#571

Draft
arvind4501 wants to merge 6 commits into
theforeman:masterfrom
arvind4501:flavor/foreman-proxy-content
Draft

Flavor: foreman-proxy-content#571
arvind4501 wants to merge 6 commits into
theforeman:masterfrom
arvind4501:flavor/foreman-proxy-content

Conversation

@arvind4501

Copy link
Copy Markdown
Contributor

Why are you introducing these changes? (Problem description, related links)

What are the changes introduced in this pull request?

  • Introduce foreman-proxy-content flavor to deploy standalone content proxy

How to test this pull request

  • ./foremanctl deploy --flavor foreman-proxy-content --foreman-url https://quadlet.example.com

  • Observe only relevent services are deployed

Steps to reproduce:

  • ./foremanctl deploy --flavor foreman-proxy-content --foreman-url https://quadlet.example.com

Checklist

  • Tests added/updated (if applicable)
  • Documentation updated (if applicable)

@arvind4501 arvind4501 marked this pull request as draft June 15, 2026 05:25
- name: Setup quadlet machine
hosts:
- quadlet
- "{{ foremanctl_target | default('quadlet') }}"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a workaround for development and CI, in production quadlet should just work fine

@arvind4501 arvind4501 force-pushed the flavor/foreman-proxy-content branch 3 times, most recently from 1c4914d to 30bf7ff Compare June 15, 2026 12:19
@arvind4501 arvind4501 force-pushed the flavor/foreman-proxy-content branch from 30bf7ff to 22f010a Compare June 15, 2026 12:26
@arvind4501 arvind4501 force-pushed the flavor/foreman-proxy-content branch from 019e1bb to b367887 Compare June 15, 2026 15:18
@@ -1,7 +1,7 @@
---
- name: Setup quadlet demo machine
- name: Setup quadlet machine

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might as well update this as a whole, we don't need to reference the quadlet part in the name here.

- role: pulp
when: enabled_features | has_feature('pulp')
- role: foreman
when: "'foreman' in enabled_features"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this also use has_feature ?

- "'hammer' in enabled_features"
- post_install
- role: post_install
when: "'foreman' in enabled_features"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I expect post_install to have elements that can affect other flavors, so I don't think gating it here is the right approach.

parameter: --bmc-redfish-verify-ssl
help: Verify SSL certificates for Redfish BMC connections.
type: Boolean
foreman_proxy_foreman_server_url:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am starting to think foreman_proxy_ should have it's own variable file.

parameter: --foreman-url
help: URL of the parent Foreman server this proxy connects to.
foreman_proxy_trusted_hosts:
help: FQDN of a host trusted by the smart proxy. Can be specified multiple times.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might be confusing to end users as to what should be specified. e.g. clients? foreman servers?

action: append_unique
foreman_oauth_consumer_key:
parameter: --oauth-consumer-key
help: OAuth consumer key.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oauth consumer key of what? foreman I assume, but it's ambiguous.

parameter: --rhsm-url
help: RHSM URL for Pulp smart proxy content mirroring.
pulp_smart_proxy_auth_methods:
parameter: --smart-proxy-auth-methods

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is confusing, I don't know what this applies to.

@@ -1,2 +1,13 @@
---
checks_databases: []
checks_per_flavor:

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should the flavor define this instead of the checks role defining it?

foreman_proxy_bmc_ipmi_implementation: ipmitool
foreman_proxy_bmc_redfish_verify_ssl: true

foreman_proxy_with_pulp_mirror: "{{ pulp_mirror | default(false) }}"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where does pulp_mirror come from? That reads like a non-role variable.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does foreman_proxy know about Pulp? Pulp has a built in smart-proxy.

- "{{ foreman_proxy_name }}"

foreman_proxy_trusted_hosts: []
foreman_proxy_all_trusted_hosts: "{{ (foreman_proxy_default_trusted_hosts + foreman_proxy_trusted_hosts) | unique | list }}"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this useful here in the defaults? Could you move this directly into the template?

httpd_enabled_pulp_snippets: []

httpd_proxy_foreman_url: "{{ foreman_proxy_foreman_server_url }}"
httpd_client_certificate: "{{ client_certificate }}"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is client_certificate? This role doesn't know about this variable. Be mindful, throughout this PR you are blending role and non-role variables.

@ehelms

ehelms commented Jun 15, 2026

Copy link
Copy Markdown
Member

There are definitely some good nuggets of changes that would make for good, go-ahead, stand-alone PRs to get added. This also points to the need for flavor specific parameters that are only shown for a given flavor.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants