Skip to content

Fix foremanctl install for IPv6 deployments#22125

Merged
shubhamsg199 merged 7 commits into
SatelliteQE:masterfrom
Gauravtalreja1:use-ipv6-upstream-pr-install
Jul 16, 2026
Merged

Fix foremanctl install for IPv6 deployments#22125
shubhamsg199 merged 7 commits into
SatelliteQE:masterfrom
Gauravtalreja1:use-ipv6-upstream-pr-install

Conversation

@Gauravtalreja1

@Gauravtalreja1 Gauravtalreja1 commented Jul 10, 2026

Copy link
Copy Markdown
Member

Problem Statement

  • Currently, the upstream-pr-install JT execution fails for IPv6 because we enable the COPR repository on the host using HTTPS_PROXY whenever deploy_network_type is set. That configuration is currently missing, causing the test setup to fail on IPv6 deployments.
  • Podman pull fails on IPv6 only setup as it can't interact with quay or stage registries causing foremanctl pull-images and foremanctl deploy to fail

Solution

  • Add deploy_network_type to the upstream-pr-install JT execution so the COPR repository is enabled via HTTPS_PROXY and the IPv6 test setup completes successfully.
  • Add IPv6 proxy for podman to be able to pull from quay or stage container registries

Related Issues

Summary by Sourcery

Enhancements:

  • Propagate settings.server.network_type as deploy_network_type to the upstream-pr-install job template to correctly configure COPR access over HTTPS proxy for IPv6 environments.

@Gauravtalreja1 Gauravtalreja1 self-assigned this Jul 10, 2026
@Gauravtalreja1
Gauravtalreja1 requested a review from a team as a code owner July 10, 2026 09:24
@Gauravtalreja1 Gauravtalreja1 added Easy Fix :) Easiest Fix to review and quick merge request. No-CherryPick PR doesnt need CherryPick to previous branches Stream Introduced in or relating directly to Satellite Stream/Master labels Jul 10, 2026
@sourcery-ai

sourcery-ai Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor
Reviewer's guide (collapsed on small PRs)

Reviewer's Guide

Adds the deploy_network_type field to the upstream-pr-install foremanctl job template execution so that IPv6 environments configure COPR via HTTPS_PROXY correctly during upstream PR installs.

Sequence diagram for upstream-pr-install JT execution with deploy_network_type

sequenceDiagram
    participant Host
    participant ForemanctlJobExecution

    Host->>ForemanctlJobExecution: install_satellite_foremanctl(job_template upstream-pr-install, deploy_network_type)
    ForemanctlJobExecution->>ForemanctlJobExecution: execute()
    alt [deploy_network_type is ipv6]
        Note over ForemanctlJobExecution: COPR repo uses HTTPS_PROXY on host
    else [deploy_network_type is ipv4]
        Note over ForemanctlJobExecution: COPR repo enabled without IPv6 proxy handling
    end
Loading

File-Level Changes

Change Details Files
Pass deploy_network_type into the upstream-pr-install foremanctl job template execution so IPv6 deployments configure COPR via HTTPS_PROXY.
  • Update install_satellite_foremanctl to include deploy_network_type when invoking the upstream-pr-install job template execution
  • Wire deploy_network_type from settings.server.network_type into the foremanctl job template call
robottelo/hosts.py

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hey - I've left some high level feedback:

  • Consider guarding deploy_network_type=settings.server.network_type in case settings.server or network_type is unset or missing, to avoid attribute errors during JT execution.
  • If deploy_network_type is optional for this job template, you might want to pass it only when non-None to avoid overriding any default behavior on the JT side.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- Consider guarding `deploy_network_type=settings.server.network_type` in case `settings.server` or `network_type` is unset or missing, to avoid attribute errors during JT execution.
- If `deploy_network_type` is optional for this job template, you might want to pass it only when non-None to avoid overriding any default behavior on the JT side.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@stejskalleos

Copy link
Copy Markdown
Contributor

Do we have any successful executions we can use to verify that the fix really works?

@Gauravtalreja1
Gauravtalreja1 force-pushed the use-ipv6-upstream-pr-install branch from 64eef1f to 92454d5 Compare July 13, 2026 13:46
@Gauravtalreja1

Copy link
Copy Markdown
Member Author
trigger: test-robottelo
pytest: tests/foreman/installer/test_install_foremanctl.py
network_type: ipv6
deployment_type: container
theforeman:
  foremanctl: 608

@Satellite-QE

Copy link
Copy Markdown
Collaborator

PRT Result

Build Number: 16109
Build Status: UNSTABLE
PRT Comment: pytest tests/foreman/installer/test_install_foremanctl.py --external-logging
Test Result : ================= 24 warnings, 20 errors in 2826.18s (0:47:06) =================

@Satellite-QE Satellite-QE added the PRT-Failed Indicates that latest PRT run is failed for the PR label Jul 13, 2026
@Gauravtalreja1
Gauravtalreja1 force-pushed the use-ipv6-upstream-pr-install branch from 92454d5 to 249aaaf Compare July 13, 2026 21:04
@Gauravtalreja1

Copy link
Copy Markdown
Member Author
trigger: test-robottelo
pytest: tests/foreman/installer/test_install_foremanctl.py
network_type: ipv6
deployment_type: container
theforeman:
  foremanctl: 608

@Gauravtalreja1 Gauravtalreja1 removed the Easy Fix :) Easiest Fix to review and quick merge request. label Jul 13, 2026
@Satellite-QE

Copy link
Copy Markdown
Collaborator

PRT Result

Build Number: 16117
Build Status: UNSTABLE
PRT Comment: pytest tests/foreman/installer/test_install_foremanctl.py --external-logging
Test Result : ================= 34 warnings, 20 errors in 5776.78s (1:36:16) =================

Comment thread robottelo/hosts.py Outdated
@evgeni

evgeni commented Jul 14, 2026

Copy link
Copy Markdown
Member

PRT Result

Build Number: 16117
Build Status: UNSTABLE
PRT Comment: pytest tests/foreman/installer/test_install_foremanctl.py --external-logging
Test Result : ================= 34 warnings, 20 errors in 5776.78s (1:36:16) =================

This fails to deploy Candlepin, but it deployed PostgreSQL and Valkey just fine before that, so the issue is not the Proxy (anymore)

Signed-off-by: Gaurav Talreja <gtalreja@redhat.com>
Signed-off-by: Gaurav Talreja <gtalreja@redhat.com>
…manctl runs

Signed-off-by: Gaurav Talreja <gtalreja@redhat.com>
On IPv6-only hosts, candlepin healthcheck routes through the HTTP
proxy and gets 503, causing systemd to timeout and kill the service.

Signed-off-by: Gaurav Talreja <gtalreja@redhat.com>
@Gauravtalreja1
Gauravtalreja1 force-pushed the use-ipv6-upstream-pr-install branch 2 times, most recently from 206ebd2 to d94968c Compare July 14, 2026 17:08
Signed-off-by: Gaurav Talreja <gtalreja@redhat.com>
@Gauravtalreja1
Gauravtalreja1 force-pushed the use-ipv6-upstream-pr-install branch from d94968c to 20a80f5 Compare July 14, 2026 17:17
@Gauravtalreja1 Gauravtalreja1 changed the title Add deploy_network_type for upstream-pr-install JT execution Fix foremanctl install for IPv6 deployments Jul 14, 2026
@Gauravtalreja1

Copy link
Copy Markdown
Member Author
trigger: test-robottelo
pytest: tests/foreman/ -m foremanctl
network_type: ipv6
deployment_type: container
theforeman:
  foremanctl: 654

@Satellite-QE

Copy link
Copy Markdown
Collaborator

PRT Result

Build Number: 16125
Build Status: UNSTABLE
PRT Comment: pytest tests/foreman/ -m foremanctl --external-logging
Test Result : == 6 failed, 22 passed, 5920 deselected, 140 warnings in 11178.05s (3:06:18) ===

Comment thread robottelo/hosts.py Outdated
@Gauravtalreja1
Gauravtalreja1 requested a review from a team as a code owner July 15, 2026 10:20
@Gauravtalreja1

Copy link
Copy Markdown
Member Author
trigger: test-robottelo
pytest: tests/foreman/installer/test_install_foremanctl.py
network_type: ipv6
deployment_type: container
theforeman:
  foremanctl: 654

Comment thread tests/foreman/installer/test_install_foremanctl.py Outdated
@Satellite-QE

Copy link
Copy Markdown
Collaborator

PRT Result

Build Number: 16126
Build Status: UNSTABLE
PRT Comment: pytest tests/foreman/installer/test_install_foremanctl.py --external-logging
Test Result : =========== 3 failed, 18 passed, 102 warnings in 8945.92s (2:29:05) ============

Disabling automatic proxy forwarding via http_proxy=false in containers section.

Signed-off-by: Gaurav Talreja <gtalreja@redhat.com>
Signed-off-by: Gaurav Talreja <gtalreja@redhat.com>
@Gauravtalreja1
Gauravtalreja1 force-pushed the use-ipv6-upstream-pr-install branch from ad2a554 to bee0801 Compare July 15, 2026 14:48
@Gauravtalreja1

Copy link
Copy Markdown
Member Author
trigger: test-robottelo
pytest: tests/foreman/installer/test_install_foremanctl.py
network_type: ipv6
deployment_type: container
theforeman:
  foremanctl: 662

@Satellite-QE

Copy link
Copy Markdown
Collaborator

PRT Result

Build Number: 16133
Build Status: UNSTABLE
PRT Comment: pytest tests/foreman/installer/test_install_foremanctl.py --external-logging
Test Result : =========== 2 failed, 19 passed, 123 warnings in 10184.37s (2:49:44) ===========

@shubhamsg199

Copy link
Copy Markdown
Contributor

2 failures will be fixed with theforeman/obsah#127

@shubhamsg199
shubhamsg199 merged commit 090587c into SatelliteQE:master Jul 16, 2026
9 of 10 checks passed
@Gauravtalreja1
Gauravtalreja1 deleted the use-ipv6-upstream-pr-install branch July 16, 2026 09:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

No-CherryPick PR doesnt need CherryPick to previous branches PRT-Failed Indicates that latest PRT run is failed for the PR Stream Introduced in or relating directly to Satellite Stream/Master

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants