Skip to content

Conversation

@sjpb
Copy link
Collaborator

@sjpb sjpb commented Dec 19, 2025

IMPORTANT: This PR impacts default services on the control node. Review docs below to assess suitability of the default configuration. It also changes squid role defaults.

  • Default to running squid on control node as a proxy for EESSI to reduce load on Stratum 1 servers and reduce latency for clients. See docs/eessi.yml for notes on proxy requirements and alternative configurations.

  • Modify squid role to support two default configurations, selectable via squid_mode: general for previous general/DNF proxy and eessi (the default) for EESSI clients.

  • As part of automatic configuration for the above an inventory group_var cluster_subnets is now templated into the hosts.yml file. This contains dicts for each network in OpenTofu variable cluster_networks with keys name and cidr.

  • Adds back testing of EESSI in StackHPC CI.

Requires an image build as changes eessi role which is copied into image.

@sjpb sjpb added the no-ci Don't run CI on this PR label Dec 19, 2025
@sjpb sjpb changed the title Enable simplier configuration for EESSI proxy Enable simpler configuration for EESSI proxy Dec 19, 2025
@sjpb sjpb added requires-imagebuild and removed no-ci Don't run CI on this PR labels Dec 19, 2025
@sjpb
Copy link
Collaborator Author

sjpb commented Jan 22, 2026

@sjpb
Copy link
Collaborator Author

sjpb commented Jan 22, 2026

@sjpb
Copy link
Collaborator Author

sjpb commented Jan 22, 2026

@sjpb
Copy link
Collaborator Author

sjpb commented Jan 22, 2026

@sjpb sjpb changed the title Enable simpler configuration for EESSI proxy Enable EESSI proxy by default Jan 23, 2026
@sjpb sjpb marked this pull request as ready for review January 23, 2026 11:19
@sjpb sjpb requested a review from a team as a code owner January 23, 2026 11:19
@elelaysh elelaysh self-assigned this Jan 26, 2026
Copy link
Contributor

@elelaysh elelaysh left a comment

Choose a reason for hiding this comment

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

LGTM with a couple remarks.

And a question: to not switch to an eessi proxy, what should a client site do?

  • remove control from [squid:children] in the environments/site/inventory/groups
  • set cvmfs_http_proxy: '' in eg. environments/site/inventory/group_vars/all.yml

@sjpb
Copy link
Collaborator Author

sjpb commented Jan 27, 2026

  • remove control from [squid:children] in the environments/site/inventory/groups
  • set cvmfs_http_proxy: '' in eg. environments/site/inventory/group_vars/all.yml

The first would work, the 2nd would work but would still leave you with squid configured to be a proxy. Or alternatively setting squid_conf_mode: general will remove that squid node from being a CVMFS proxy - so if you set that generally, there will be no CVMFS proxies and EESSI will not proxy.

I'm not too fussed about documenting this TBH, everyone should be running with a proxy really if using EESSI and the notes in docs/eeesi do suggest alternative configs.

@elelaysh
Copy link
Contributor

  • remove control from [squid:children] in the environments/site/inventory/groups
  • set cvmfs_http_proxy: '' in eg. environments/site/inventory/group_vars/all.yml

The first would work, the 2nd would work but would still leave you with squid configured to be a proxy. Or alternatively setting squid_conf_mode: general will remove that squid node from being a CVMFS proxy - so if you set that generally, there will be no CVMFS proxies and EESSI will not proxy.

  • remove control from [squid:children] in the environments/site/inventory/groups
  • set cvmfs_http_proxy: '' in eg. environments/site/inventory/group_vars/all.yml

The first would work, the 2nd would work but would still leave you with squid configured to be a proxy.

I thought both were necessary, one to not setup the proxy, the other not to use it.

I'm not too fussed about documenting this TBH, everyone should be running with a proxy really if using EESSI and the notes in docs/eeesi do suggest alternative configs.

Sure

@sjpb
Copy link
Collaborator Author

sjpb commented Jan 27, 2026

I thought both were necessary, one to not setup the proxy, the other not to use it.

If you don't setup the proxy (i.e. no squid nodes in eessi squid_conf_mode, then the logic in environments/common/inventory/group_vars/all/eessi.yml ensures that eessi clients do not use a proxy.

@sjpb
Copy link
Collaborator Author

sjpb commented Jan 27, 2026

Copy link
Contributor

@elelaysh elelaysh left a comment

Choose a reason for hiding this comment

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

LGTM

@sjpb sjpb merged commit 7a7d09f into main Jan 27, 2026
28 of 36 checks passed
@sjpb sjpb deleted the feat/eessi-proxy branch January 27, 2026 09:47
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.

3 participants