Skip to content

STAC-25553: drop the GitLab PyPI index from the agent build - #497

Merged
rb3ckers merged 2 commits into
stackstate-7.78.2from
STAC-25553-drop-gitlab-pypi-index
Aug 28, 2026
Merged

STAC-25553: drop the GitLab PyPI index from the agent build#497
rb3ckers merged 2 commits into
stackstate-7.78.2from
STAC-25553-drop-gitlab-pypi-index

Conversation

@rb3ckers

@rb3ckers rb3ckers commented Aug 27, 2026

Copy link
Copy Markdown

The private index existed for exactly one package. tasks/omnibus.py named it: vsphere-automation-sdk==1.82.0, which VMware withdrew from public PyPI. stackstate-agent-integrations moved vsphere onto the renamed public VMware packages under STAC-25544, and stackstate-deps.json already pins integrations 7.78.2-5, which contains that change — so nothing needs the index any more. Removing it also leaves the build job with no secret in scope.

The second commit removes the plumbing that served it. Three of those paths were already broken, which is why they are deleted rather than updated: local_init.sh sourced .gitlab-scripts/setup_artifactory.sh, a filename that exists nowhere in this repo, and Development.md / .assistance/Vagrantfile exported artifactory_user / artifactory_password, which the setup script never read.

Jira: https://stackstate.atlassian.net/browse/STAC-25553

The private index existed for exactly one package. tasks/omnibus.py names it:
vsphere-automation-sdk==1.82.0, which VMware withdrew from public PyPI (the
name is squatted there by an unrelated 0.0.1 placeholder), so it was mirrored
into the GitLab Package Registry and resolved with a read-only credential.

That package is gone. stackstate-agent-integrations moved vsphere onto the
renamed public VMware packages -- pyvmomi, vmware-vcenter, vmware-vapi-runtime
and vmware-vapi-common-client, all 9.1.0.0 -- under STAC-25544, and
stackstate-deps.json already pins STACKSTATE_INTEGRATIONS_VERSION 7.78.2-5,
which contains that change. The embedded agent_requirements.in it ships no
longer mentions vsphere-automation-sdk, and its full transitive closure
resolves from public PyPI alone.

So the index is dead weight, and not harmless dead weight: pip-compile echoes
an authenticated index URL into agent_requirements-py3.txt, which is baked into
the published image. That is the shape of the 2026-04-23 credential leak, fixed
by STAC-24642 by moving auth into ~/.netrc. Removing the index removes the
class of failure rather than mitigating it again, and takes the last PyPI read
credential in the estate with it.

Removing the env block also leaves this job with no secret in scope at all.

The setup script, the tasks/omnibus.py block and the local-development
references are left for a follow-up commit once a build confirms the resolve.

Refs STAC-25553, STAC-25360
The DEB build no longer configures the index, so everything that existed to
serve it is now unreferenced. Removing it in one pass rather than leaving a
credential-shaped hole for someone to wire back up.

tasks/omnibus.py loses the extra-index-url block. local.sh sourced the setup
script from two places -- the container env passthrough and the in-container
build path at line 199 -- and both go, along with the Makefile env passthrough
and .gitlab-scripts/setup_artifact_registry.sh itself.

Three of these were already broken and had been for some time, which is the
argument for deleting rather than updating them:

  - Dockerfiles/local_builder/local_init.sh sourced
    .gitlab-scripts/setup_artifactory.sh, a filename that exists nowhere in
    this repository.
  - Development.md told a new engineer to export artifactory_user and
    artifactory_password, which setup_artifact_registry.sh never read -- it
    required GITLAB_PACKAGE_REGISTRY_USER and _READONLY_PASSWORD. The
    documented setup could not have worked as written.
  - .assistance/Vagrantfile exported the same two variables nothing consumes.

omnibus/package-scripts/publish_image.sh had the URL as a dead assignment,
never referenced in its 37 lines. The script itself appears to be unused --
nothing invokes it, and the only remaining mention is a comment in
build-deb.yml explaining that the workflow inlined its docker build -- but
deleting it is a separate claim, so only the assignment goes here.

The --no-emit-{index-url,find-links} flags in the integrations recipe stay.
They were the fix for the 2026-04-23 credential leak (STAC-24642) and cost
nothing; only the comment changes, since it cited the deleted script.

Refs STAC-25553, STAC-25360
@rb3ckers
rb3ckers added this pull request to the merge queue Aug 28, 2026
Merged via the queue into stackstate-7.78.2 with commit 6ec4155 Aug 28, 2026
42 checks passed
@rb3ckers
rb3ckers deleted the STAC-25553-drop-gitlab-pypi-index branch August 28, 2026 08:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants