Skip to content

Add IPv6 forward proxy support for connected cluster deployments#757

Merged
openshift-merge-bot[bot] merged 3 commits intoredhat-performance:mainfrom
mcornea:ipv6_proxy
Feb 27, 2026
Merged

Add IPv6 forward proxy support for connected cluster deployments#757
openshift-merge-bot[bot] merged 3 commits intoredhat-performance:mainfrom
mcornea:ipv6_proxy

Conversation

@mcornea
Copy link
Collaborator

@mcornea mcornea commented Jan 19, 2026

Implement Squid forward proxy on bastion to enable IPv6-only clusters to access external container registries (quay.io, registry.redhat.io) without requiring a local mirror registry.

New features:

  • Add bastion-proxy role deploying Squid container with IPv6 support
  • Configure cluster and infra-env with proxy settings via Assisted Installer API
  • Add setup_bastion_proxy variable (mutually exclusive with bastion registry)

Key implementation details:

  • Bastion has dual-stack connectivity, so only cluster nodes use proxy
  • Discovery ISO automatically gets proxy config via infra-env API
  • no_proxy includes bastion hostname for direct API access

@mcornea
Copy link
Collaborator Author

mcornea commented Feb 18, 2026

Tested successfully in PR#73689 - job log

@akrzos
Copy link
Member

akrzos commented Feb 18, 2026

#443 FYSA

Implement Squid forward proxy on bastion to enable IPv6-only clusters
to access external container registries (quay.io, registry.redhat.io)
without requiring a local mirror registry.

New features:
- Add bastion-proxy role deploying Squid container with IPv6 support
- Configure cluster and infra-env with proxy settings via Assisted Installer API
- Add setup_bastion_proxy variable (mutually exclusive with bastion registry)

Key implementation details:
- Bastion has dual-stack connectivity, so only cluster nodes use proxy
- Discovery ISO automatically gets proxy config via infra-env API
- no_proxy includes bastion hostname for direct API access

Signed-off-by: Marius Cornea <mcornea@redhat.com>
Signed-off-by: Marius Cornea <mcornea@redhat.com>
Comment on lines 80 to 82
# Proxy settings (defaults provided, override as needed)
# proxy_port: 3128
# proxy_cache_size_mb: 10000
Copy link
Member

Choose a reason for hiding this comment

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

Do we need these defaults exposed in the all.sample.yml? I have tried to keep the all.sample.yml down to the minimum number of vars to prevent users from adjusting vars that rarely need to be changed.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Nope, they're available in the role defaults. I removed them from all.sample.yml

# Proxy configuration
proxy_type: squid
proxy_port: 3128
proxy_container_image: docker.io/ubuntu/squid:latest
Copy link
Member

Choose a reason for hiding this comment

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

Do we have a quay hosted equivalent?

Copy link
Member

Choose a reason for hiding this comment

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

+1, let's avoid docker.io as much as possible in the labs

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

Updated to use quay.io/konflux-ci/caching/squid:latest which seems well maintained using a recent squid version.

Comment on lines 21 to 24
- name: Pull squid container image
containers.podman.podman_image:
name: "{{ proxy_container_image }}"
state: present
Copy link
Member

Choose a reason for hiding this comment

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

Is it needed to have this task? I don't see it for any other of the "Standard" podman containers running.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

It's not necessary. The image also gets pulled when running the container if not present. I removed it.

@akrzos
Copy link
Member

akrzos commented Feb 26, 2026

I was able to deploy an SNO with this that was ipv6 without a bastion mirror registry so it is definitely neat. I had a few comments I added and was also curious if with should place the squid proxy container inside a podman pod similar to how assisted-service and the http server are setup or if there isn't any real benefit then we could keep it as a standalone container. WDYT?

@mcornea
Copy link
Collaborator Author

mcornea commented Feb 27, 2026

I was able to deploy an SNO with this that was ipv6 without a bastion mirror registry so it is definitely neat. I had a few comments I added and was also curious if with should place the squid proxy container inside a podman pod similar to how assisted-service and the http server are setup or if there isn't any real benefit then we could keep it as a standalone container. WDYT?

Sure, I updated the logic to run the squid container inside a pod to be consistent with the other components.

Signed-off-by: Marius Cornea <mcornea@redhat.com>
@openshift-ci
Copy link

openshift-ci bot commented Feb 27, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: akrzos

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-merge-bot openshift-merge-bot bot merged commit 4acbfc0 into redhat-performance:main Feb 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants