Skip to content

Add commands to manage required external tools#1174

Merged
simu merged 6 commits into
masterfrom
feat/external-tool-mgmt
Jul 14, 2025
Merged

Add commands to manage required external tools#1174
simu merged 6 commits into
masterfrom
feat/external-tool-mgmt

Conversation

@simu
Copy link
Copy Markdown
Member

@simu simu commented Jul 9, 2025

This PR introduces a new command group commodore tool which enables users to use Commodore to install and upgrade the required external tools helm (Helm 3), jb (the Project Syn fork of jsonnet-bundler) and kustomize (the standalone Kustomize binary).

The new commands are

  • commodore tool list -- lists the external tools and shows their management state and whether there's an upgrade available
  • commodore tool install TOOL -- installs an external tool which isn't yet managed by Commodore
  • commodore tool install --missing -- installs all external tools which aren't yet managed by Commodore
  • commodore tool upgrade TOOL -- upgrades a managed external tool to the latest version
  • commodore tool upgrade --all -- upgrades all managed external tools to their latest versions

All commands optionally accept a GitHub personal access token (PAT) to avoid running into the fairly strict unauthenticated GitHub rate limits. The PAT can be passed through environment variable COMMODORE_GITHUB_TOKEN (recommended) or with command line flag --github-token.

TODO

  • Consider adding commodore tool install --all / commodore tool install --missing
  • Update CLI docs
  • Rewrite running commodore page to use commodore tool install

Checklist

  • Keep pull requests small so they can be easily reviewed.
  • Update the documentation.
  • Update tests.
  • Categorize the PR by setting a good title and adding one of the labels:
    bug, enhancement, documentation, change, breaking, dependency, internal
    as they show up in the changelog

Base automatically changed from feat/extended-version to master July 9, 2025 11:15
@simu simu force-pushed the feat/external-tool-mgmt branch 2 times, most recently from f487b25 to d6109b1 Compare July 9, 2025 13:25
@simu simu added the enhancement New feature or request label Jul 9, 2025
@simu simu force-pushed the feat/external-tool-mgmt branch 13 times, most recently from 4972449 to 2edae66 Compare July 11, 2025 11:46
@simu simu changed the title Add commodore tool command group Add commands to manage required external tools Jul 11, 2025
@simu simu force-pushed the feat/external-tool-mgmt branch from 2edae66 to 3e9055a Compare July 11, 2025 11:52
@simu simu marked this pull request as ready for review July 11, 2025 11:56
@simu simu requested a review from a team as a code owner July 11, 2025 11:56
@simu simu requested a review from a team July 11, 2025 11:56
@simu simu force-pushed the feat/external-tool-mgmt branch 3 times, most recently from f7c4d69 to 7867dbf Compare July 14, 2025 07:34
@simu simu force-pushed the feat/external-tool-mgmt branch 2 times, most recently from 1b83854 to af9b162 Compare July 14, 2025 09:01
@simu simu force-pushed the feat/external-tool-mgmt branch 2 times, most recently from 8ca0260 to be50116 Compare July 14, 2025 09:52
Copy link
Copy Markdown
Member

@bastjan bastjan left a comment

Choose a reason for hiding this comment

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

The docker image build should most likely also use tool install.

@simu simu force-pushed the feat/external-tool-mgmt branch from be50116 to 4dc943d Compare July 14, 2025 11:28
@simu
Copy link
Copy Markdown
Member Author

simu commented Jul 14, 2025

The docker image build should most likely also use tool install.

done in 4677158

@simu simu requested a review from bastjan July 14, 2025 11:53
@simu simu force-pushed the feat/external-tool-mgmt branch from 6bab03e to 4677158 Compare July 14, 2025 11:59
We update the Dockerfile to use `commodore tool install` to install the
required external tools. Note that we use individual calls for each tool
so we can still have well-defined external tool versions in the
container image. To standardize the external tool management in the
container image, we also introduce an explicit Helm 3 version for the
container image.

Since we don't need Helm 2 anymore, we don't install the `helm2` binary
in the container image anymore.

Finally, we also remove `tools/install-jb.sh` which isn't required
anymore and adjust the container image test to use the new `commodore
version` command.
@simu simu force-pushed the feat/external-tool-mgmt branch from 4677158 to af428f4 Compare July 14, 2025 12:03
@simu simu merged commit 1c04349 into master Jul 14, 2025
20 checks passed
@simu simu deleted the feat/external-tool-mgmt branch July 14, 2025 12:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants