saltstack / salt-bootstrap

Generic Salt Bootstrap Script
Other
927 stars 551 forks source link

Bootstrap instructions broken due to meta refresh tag: Replace with new index file? #2049

Closed timwsuqld closed 1 week ago

timwsuqld commented 1 week ago

Description of Issue/Question

Following the current out-dated directions for salt-bootstrap, the curl command fails because of an HTML file with meta refresh is downloaded instead of a HTTP redirect.

The provided HTML should instead provide details about the future deprecation of bootstrap.saltproject.io and winbootstrap.saltproject.io by linking out to:

Related issues for updating README:

Problem if using current directions

Setup

https://bootstrap.saltproject.io now uses a meta-refresh tag to download the file, instead of a Location redirect header, preventing curl, wget or python from downloading it with the current instructions.

Steps to Reproduce Issue

Try downloading the bootstrap script with any of the following instructions

curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io
wget -O bootstrap-salt.sh https://bootstrap.saltproject.io
python3 -c 'import urllib.request; print(urllib.request.urlopen("https://bootstrap.saltproject.io").read().decode("ascii"))' > bootstrap-salt.sh

Instead of a valid bootstrap script, you instead get

<meta http-equiv="refresh" content="0; url=./bootstrap-salt.sh" />

You now instead need to use a command like curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io/bootstrap-salt.sh

The -L in the curl command was so we could follow redirects, but that doesn't work for meta tag refresh redirects.

Versions and Systems

Tested on Ubuntu 22.04 and 24.04.

timwsuqld commented 1 week ago

Just to add, here is the headers from the curl command, so you can see the lack of Location based redirect.

$ curl --head https://bootstrap.saltproject.io
HTTP/2 200 
server: GitHub.com
content-type: text/html; charset=utf-8
last-modified: Mon, 11 Nov 2024 17:15:58 GMT
access-control-allow-origin: *
etag: "67323bce-43"
expires: Wed, 20 Nov 2024 00:04:59 GMT
cache-control: max-age=600
x-proxy-cache: MISS
x-github-request-id: A2CB:3875F7:8319F0:844750:673D2553
accept-ranges: bytes
age: 476
date: Wed, 20 Nov 2024 00:02:56 GMT
via: 1.1 varnish
x-served-by: cache-per12628-PER
x-cache: HIT
x-cache-hits: 0
x-timer: S1732060976.243925,VS0,VE1
vary: Accept-Encoding
x-fastly-request-id: dd1f3b89444602a0ee415bf3b3b2ff0d01e3c2ca
content-length: 67
smarakdas314 commented 1 week ago

Same +1

saltstack bootstrapping pipelines broken, waiting for the fix so this would work again, and no changes would be needed for us or documentation.

curl -o bootstrap-salt.sh -L https://bootstrap.saltproject.io stopped working

dafyddj commented 1 week ago

Salt infrastructure had a recent overhaul and I would suggest following the specific instructions provided after that overhaul. e.g. https://saltproject.io/blog/salt-bootstrap-breakage-part-2/ https://docs.saltproject.io/salt/install-guide/en/latest/topics/bootstrap.html

So the command should be something like: curl -o bootstrap-salt.sh -L https://github.com/saltstack/salt-bootstrap/releases/latest/download/bootstrap-salt.sh

If bootstrap.saltproject.io points to anything then I believe that is by accident rather than by intention to be a supported download method.

dafyddj commented 1 week ago

To clarify:

The subdomain approach to downloading the bootstrap script, the method referenced in the above blog post, will be deprecated by end of November 2024. If that method is used throughout the month, users may experience degraded behavior later in the month due to monthly rate limits.

timwsuqld commented 1 week ago

That means all the instructions at https://github.com/saltstack/salt-bootstrap?tab=readme-ov-file#install-using-curl need to be updated then. It's great they have been updated at https://docs.saltproject.io/salt/install-guide/en/latest/topics/bootstrap.html, but we need them updated in the main place we look when something is broken, which is https://github.com/saltstack/salt-bootstrap?tab=readme-ov-file#install-using-curl

I understand this breakage situation has been out of control of the community, but the more places we update with the correct details, the better. It would also probably be best if the github pages now hosting bootstrap.saltproject.io didn't do meta-refresh, but was replaced with a real index page pointing to the new instructions, that would make it much quicker to find why it's broken.

dafyddj commented 1 week ago

We'll see if @ScriptAutomate can help

ScriptAutomate commented 1 week ago
ScriptAutomate commented 1 week ago

As for updating the index.html: they have been updated on both https://bootstrap.saltproject.io and https://winbootstrap.saltproject.io instead of providing an HTML meta refresh.


Salt Bootstrap Script Migration Warning

In October 2024, the Salt Project package repositories migrated. Both bootstrap.saltproject.io and winbootstrap.saltproject.io will be decomissioned by end of November 2024.

New download locations:

Resources