Project

General

Profile

Actions

Feature #22613

closed

Update install scripts/docs to enable external access to HTTP services in containers

Added by Tom Clegg about 1 year ago. Updated 6 months ago.

Status:
Resolved
Priority:
Normal
Assigned To:
Category:
Deployment
Target version:
Story points:
-
Release relationship:
Auto

Description

Wildcard DNS: *.containers.zzzzz.arvadosapi.com should route to controller (resolve to same address as zzzzz.arvadosapi.com)

Wildcard TLS certificate: should be valid for *.containers.zzzzz.arvadosapi.com

Nginx config: Handle *.containers.zzzzz.arvadosapi.com same as zzzzz.arvadosapi.com (proxy to controller)

Arvados config: Services.ContainerWebServices.ExternalURL should have wildcard url like https://*.containers.zzzzz.arvadosapi.com/ (similar to Services.WebDAVDownload)

Side note: To mitigate DNS rebinding attacks, as of #22777 controller routing code checks that the requested URL matches the configured ExternalURL. But Nginx should still do this too (i.e., don't just do a catch-all to route all unrecognized vhosts to controller).


Subtasks 2 (0 open2 closed)

Task #22876: Review 22613-http-proxy-docsResolvedTom Clegg05/15/2025Actions
Task #22948: Review 22613-update-saltResolvedLucas Di Pentima06/17/2025Actions

Related issues 2 (1 open1 closed)

Related to Arvados Epics - Idea #17207: services running in containersIn Progress03/01/202508/31/2025Actions
Blocks Arvados - Support #22833: Configuration updates on tordo to support interactive containersResolvedLucas Di PentimaActions
Actions #1

Updated by Tom Clegg about 1 year ago

  • Related to Idea #17207: services running in containers added
Actions #2

Updated by Tom Clegg about 1 year ago

Some progress on 22613-http-proxy-docs

Actions #3

Updated by Tom Clegg about 1 year ago

  • Description updated (diff)
Actions #4

Updated by Tom Clegg about 1 year ago

  • Description updated (diff)
Actions #5

Updated by Peter Amstutz 10 months ago

  • Target version changed from Future to Development 2025-05-28
Actions #6

Updated by Peter Amstutz 10 months ago

  • config.yml
  • nginx config
  • DNS
  • certificates
Actions #7

Updated by Peter Amstutz 10 months ago

  • Blocks Support #22833: Configuration updates on tordo to support interactive containers added
Actions #8

Updated by Peter Amstutz 10 months ago

  • Assigned To set to Tom Clegg
Actions #9

Updated by Lucas Di Pentima 10 months ago

  • Subtask #22876 added
Actions #10

Updated by Tom Clegg 10 months ago

  • Description updated (diff)
Actions #11

Updated by Peter Amstutz 10 months ago

  • Subtask #22880 added
Actions #12

Updated by Tom Clegg 10 months ago

  • Description updated (diff)
Actions #13

Updated by Tom Clegg 10 months ago

  • Status changed from New to In Progress

22613-http-proxy-docs @ 56985d6ab2adc6fae2760d09a09afa8ce597dc61 -- developer-run-tests: #4778

Included:
  • install guide
  • upgrade notes
  • nginx config used by test suite and arvados-server boot
  • config.default.yml (already done in #22581)
Not included:
  • salt/ansible scripts
Actions #14

Updated by Tom Clegg 10 months ago

  • Subtask deleted (#22880)
Actions #15

Updated by Lucas Di Pentima 10 months ago

Just one observation:

doc/_includes/_multi_host_install_custom_certificates.liquid might need some updating, too.

The rest LGTM, thanks

Actions #16

Updated by Tom Clegg 10 months ago

I merged 22613-http-proxy-docs.

I started to update doc/_includes/_multi_host_install_custom_certificates.liquid but then I wasn't sure we should update the "salt installer expects X" stuff without also updating the salt installer to use X. I left some edits on a separate branch so we can do that.

22613-update-salt @ e2121b115612bfb7fa0c2c7abc560397491dc787

Actions #17

Updated by Tom Clegg 10 months ago

Actions #18

Updated by Tom Clegg 10 months ago

  • Subtask #22948 added
Actions #19

Updated by Tom Clegg 10 months ago

  • Target version changed from Development 2025-05-28 to Development 2025-06-25
Actions #20

Updated by Lucas Di Pentima 10 months ago

Code LGTM, but when I tried to test everything by deploying a multi node cluster in our sandbox account I realized that Terraform needed some updating too.

Commit c7e6f14aaf updates Terraform variables so that the new DNS record is created in Route53.

Also, when I tried to do the deployment, I got an unrelated error:

----------
          ID: postgresql-repo-keyring
    Function: pkg.installed
      Result: False
     Comment: An error was encountered while installing package(s): Error: HTTP 404: Not Found reading /pub/repos/apt/pool/main/p/pgdg-keyring/pgdg-keyring_2018.2_all.deb
     Started: 14:04:08.304756
    Duration: 41.785 ms
     Changes:   

I did some research last night but couldn“t yet find a probable cause for this. On one hand, it seems that they messed up the package repo by removing the pgdg-keyring package, but OTOH it seems that this package was going on its way out (See: https://www.postgresql.org/message-id/Y25%2BRkZxiZKBOKio%40msg.df7cb.de). The odd thing is that I haven't found any notice warning that this would happen, and removing it for older PG packages seems a bad move, so that's why I still think it might not be on purpose.

Not sure what do you want to do, should we merge this and make another ticket to solve the PG package issue?

Actions #21

Updated by Lucas Di Pentima 10 months ago

Unblocked myself by following Brett's advice of setting use_upstream_repo: false on the postgresql.sls pillar.
Now I've found some issues with the saltstack code regarding certificates for the new names, so I'm working on fixing that on the test cluster I've deployed in the sandbox account.

Actions #22

Updated by Lucas Di Pentima 10 months ago

Updates at 244068ae - 22613-update-salt branch (arvados repo)
Updates at commit 15c23c2c - 22613-container-web-services branch (arvados-formula repo)

  • Disables the use of upstream packages for PostgreSQL installation to workaround an issue with the pgdg-keyring package from postgresql.org.
  • Fixes LetsEncrypt config for the *.containers... subdomain in the salt installer.
  • Adds support for ContainerWebServices config on arvados-formula.
  • Updates provision.sh script to use the new arvados-formula version.

I'm not sure how to test this new set of configurations, do we have a service container somewhere I could use on the test cluster?

Actions #23

Updated by Tom Clegg 10 months ago

Updates LGTM.

Actions #24

Updated by Lucas Di Pentima 10 months ago

Branches merged. Not sure if this ticket requires further work, I'm thinking it doesn't but just in case I leave it open.

Actions #25

Updated by Brett Smith 9 months ago

  • Status changed from In Progress to Resolved

I have reviewed the history and as far as I can tell everything in scope is done.

At some point we'll want to add support to the Ansible installer but that's true of a lot of integrations, it makes sense for it to be a separate ticket.

Actions #26

Updated by Brett Smith 6 months ago

  • Release set to 79
Actions

Also available in: Atom PDF