1
0
mirror of synced 2026-05-30 03:40:47 +00:00
Commit Graph

3876 Commits

Author SHA1 Message Date
Hidde Beydals d8ae939d79 Wire SSH signing into bootstrap git
Reads --ssh-signing-key-file when set, decodes the file contents,
resolves the effective signing passphrase, and appends
bootstrap.WithSSHCommitSigning to the bootstrap options. When
--ssh-signing-reuse-private-key is set, reads the transport
--private-key-file, pre-flights it against the subcommand-local
gitArgs.password, and reuses the same bytes + passphrase for signing.

The reuse-path pre-flight lives in this subcommand's RunE because
bootstrapValidate does not have access to the transport password.
Mutual exclusion with --gpg-* and explicit-path key-parse validation
are enforced upstream in bootstrapValidate.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2026-05-29 22:18:31 +02:00
Hidde Beydals e1970390a1 Add SSH signing flags to bootstrap
Introduces four new persistent flags on flux bootstrap:
--ssh-signing-key-file, --ssh-signing-password, the hidden alias
--ssh-signing-passphrase, and the reuse boolean
--ssh-signing-reuse-private-key. They sit next to the existing
--gpg-key-ring / --gpg-passphrase / --gpg-key-id surface.

bootstrapValidate pre-flights the configured signing key for the
explicit GPG and SSH paths so malformed PEM, wrong passphrases, and
unsupported SSH algorithms surface before any clone runs. The GPG
pre-flight calls the now-exported SelectOpenPGPSigningEntity from
pkg/bootstrap directly, so the pre-flight cannot drift from the
bootstrap commit path. The reuse path's pre-flight runs inside each
subcommand's RunE (where the subcommand-local SSH transport password
is in scope) and lands with the wiring commits that follow.

A small effectiveSshSigningPassword helper resolves the
--ssh-signing-passphrase alias purely (returning the resolved value
or a mutual-exclusion error) instead of mutating the
package-scoped bootstrapArgs singleton inside bootstrapValidate.

Mutual exclusion is enforced between the GPG and SSH groups, and
between --ssh-signing-key-file and --ssh-signing-reuse-private-key.
--ssh-signing-reuse-private-key requires --private-key-file;
--ssh-signing-password requires --ssh-signing-key-file. The
--ssh-signing-passphrase alias is hidden in --help.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2026-05-29 22:18:30 +02:00
Hidde Beydals 1be91ee7dd Cover pkg/bootstrap SSH signing roundtrip
Adds two layers of coverage for the SSH commit-signing path that the
previous commit wires through PlainGitBootstrapper.

TestPlainGitBootstrapper_resolveSigner exercises every branch of the
new dispatcher: nil configuration, GPG-only, SSH-only, encrypted-SSH-
without-passphrase failure, and the documented GPG-wins-when-both-
set precedence.

TestPlainGitBootstrapper_sshSignerProducesVerifiableCommit drives an
end-to-end roundtrip: resolveSigner returns an SSH signer, the signer
plugs into repository.WithSigner, gogit.Client.Commit produces a
commit object, and signature.VerifySSHSignature cryptographically
verifies the gpgsig header against the matching authorized_key.
Catches regressions in the SSH-signing wiring that the dispatcher
unit tests would miss.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2026-05-29 22:18:30 +02:00
Hidde Beydals 88c5a7f68d Migrate bootstrap signing to generic Signer
Bumps fluxcd/pkg/git to a pseudo-version exposing the generic
signature.Signer interface and the NewOpenPGPSigner / NewSSHSigner
constructors, and migrates pkg/bootstrap's two WithSigner call sites
accordingly.

Adds a parallel WithSSHCommitSigning option alongside the existing
WithGitCommitSigning so callers can sign commits with an SSH private
key. PlainGitBootstrapper now dispatches through a new resolveSigner
helper that returns either an OpenPGP or SSH signer; the
repository.WithSigner option is appended conditionally to avoid the
typed-nil interface hazard the new generic field introduces.

The bootstrap path's OpenPGP entity selector is renamed and exported
as SelectOpenPGPSigningEntity so the flux CLI's pre-flight (introduced
later in this branch) can call it directly instead of carrying a
duplicate.

Also bumps image-automation-controller/api to a pseudo-version that
exposes SigningKey.Type and the SigningKeyTypeGPG/SigningKeyTypeSSH
constants; the bump is bundled here so the rest of the branch builds
incrementally. Refs fluxcd/pkg#398[1].

[1]: https://github.com/fluxcd/pkg/issues/398

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2026-05-29 22:18:17 +02:00
Matheus Pimenta 8c41d5b56d Merge pull request #5908 from fluxcd/trigger-receiver
Introduce `flux trigger receiver`
2026-05-23 12:46:55 +01:00
Matheus Pimenta 4bfdb6d459 Introduce flux trigger receiver
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2026-05-23 01:44:07 +01:00
Stefan Prodan 9d9e56208c Merge pull request #5909 from immanuwell/validate-helm-source-url
Validate Helm source URL schemes
2026-05-22 12:26:13 +03:00
Immanuel Tikhonov 5425087730 Validate Helm source URL schemes
Reject HelmRepository source URLs with schemes unsupported by the
source-controller API before generating or applying the object.

Signed-off-by: Immanuel Tikhonov <pchpr.00@list.ru>
Assisted-by: codex/gpt-5
2026-05-22 08:56:53 +04:00
Matheus Pimenta fa7cd5f847 Merge pull request #5907 from fluxcd/update-pkg-deps/main
Update fluxcd/pkg dependencies
2026-05-21 19:54:25 +01:00
matheuscscp 6d95d5b1a3 Update fluxcd/pkg dependencies
Signed-off-by: GitHub <noreply@github.com>
2026-05-21 18:40:33 +00:00
Matheus Pimenta f75d52d5c6 Merge pull request #5903 from fluxcd/update-components-main
Update toolkit components
2026-05-20 12:01:00 +01:00
fluxcdbot 272410d3e9 Update toolkit components
- helm-controller to v1.5.5
  https://github.com/fluxcd/helm-controller/blob/v1.5.5/CHANGELOG.md
- source-controller to v1.8.5
  https://github.com/fluxcd/source-controller/blob/v1.8.5/CHANGELOG.md
- image-reflector-controller to v1.1.2
  https://github.com/fluxcd/image-reflector-controller/blob/v1.1.2/CHANGELOG.md
- image-automation-controller to v1.1.4
  https://github.com/fluxcd/image-automation-controller/blob/v1.1.4/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2026-05-20 10:44:10 +00:00
Matheus Pimenta 63281daf2f Merge pull request #5890 from fluxcd/update-components-main
Update toolkit components
2026-05-12 12:05:41 +01:00
fluxcdbot 4b5a433923 Update toolkit components
- kustomize-controller to v1.8.5
  https://github.com/fluxcd/kustomize-controller/blob/v1.8.5/CHANGELOG.md
- source-controller to v1.8.4
  https://github.com/fluxcd/source-controller/blob/v1.8.4/CHANGELOG.md
- image-automation-controller to v1.1.3
  https://github.com/fluxcd/image-automation-controller/blob/v1.1.3/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2026-05-12 10:48:27 +00:00
Matheus Pimenta abb86f161b Merge pull request #5881 from tmmorin/include-source-watcher-in-install-manifests
include source-watcher in install.yaml manifests
2026-05-06 16:48:35 +01:00
Thomas Morin 626bb58a69 include source-watcher in install manifests
Signed-off-by: Thomas Morin <thomas.morin@orange.com>
2026-05-06 17:42:52 +02:00
Matheus Pimenta c8b4c4c620 Merge pull request #5831 from jtyr/jtyr-context-ns
Add `--ns-follows-kube-context` global flag for using the kubeconfig context namespace
2026-04-30 09:58:47 +01:00
Jiri Tyr c031d0c215 Respect kubeconfig context namespace
Signed-off-by: Jiri Tyr <jiri.tyr@gmail.com>
2026-04-30 08:19:41 +01:00
Stefan Prodan 4f5b2fcab9 Merge pull request #5872 from Iam-Karan-Suresh/digest-pinning
Add digest pinning support to `flux plugin install`
2026-04-29 17:00:37 +03:00
iam-karan-suresh df3878d36a feat: adding support digest pinning for flux plugin install
Signed-off-by: iam-karan-suresh <karansuresh.info@gmail.com>
2026-04-29 18:01:18 +05:30
Matheus Pimenta 4e78a9d7e0 Merge pull request #5856 from fluxcd/update-components-main
Update toolkit components
2026-04-21 11:40:53 +01:00
fluxcdbot c1238ec834 Update toolkit components
- helm-controller to v1.5.4
  https://github.com/fluxcd/helm-controller/blob/v1.5.4/CHANGELOG.md
- kustomize-controller to v1.8.4
  https://github.com/fluxcd/kustomize-controller/blob/v1.8.4/CHANGELOG.md
- source-controller to v1.8.3
  https://github.com/fluxcd/source-controller/blob/v1.8.3/CHANGELOG.md
- notification-controller to v1.8.4
  https://github.com/fluxcd/notification-controller/blob/v1.8.4/CHANGELOG.md
- image-automation-controller to v1.1.2
  https://github.com/fluxcd/image-automation-controller/blob/v1.1.2/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2026-04-21 10:26:58 +00:00
Stefan Prodan 99a7d2d735 Merge pull request #5853 from fluxcd/dependabot/go_modules/github.com/go-git/go-git/v5-5.18.0
build(deps): bump github.com/go-git/go-git/v5 from 5.17.1 to 5.18.0
2026-04-21 10:56:39 +03:00
dependabot[bot] 19ab6eeb30 build(deps): bump github.com/go-git/go-git/v5 from 5.17.1 to 5.18.0
Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.17.1 to 5.18.0.
- [Release notes](https://github.com/go-git/go-git/releases)
- [Commits](https://github.com/go-git/go-git/compare/v5.17.1...v5.18.0)

---
updated-dependencies:
- dependency-name: github.com/go-git/go-git/v5
  dependency-version: 5.18.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-21 07:26:09 +00:00
Stefan Prodan 00d918ecaa Merge pull request #5849 from fluxcd/plugin-system
[RFC-0013] Implement plugin system
2026-04-21 10:24:55 +03:00
Stefan Prodan 474efa09cf Split plugin commands into individual files
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-20 21:42:42 +03:00
Stefan Prodan 5256361d8c Make plugin types public
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-14 00:46:29 +03:00
Stefan Prodan c0938d351f Add support for extractPath
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-14 00:46:23 +03:00
Stefan Prodan 2cee1d795e Fetch the plugin catalog from latest immutable release
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-14 00:46:23 +03:00
Stefan Prodan 9a4b93056b Add support for plugin binary artifacts
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-14 00:46:23 +03:00
Stefan Prodan 8be056324a Add plugin management commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-14 00:46:22 +03:00
Stefan Prodan e45e46211b Replace yacspin with briandowns/spinner for progress indication
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-13 22:22:53 +03:00
Stefan Prodan aa608bb769 Implement plugin catalog and discovery system
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-13 22:21:33 +03:00
Stefan Prodan 7d27a26665 Merge pull request #5845 from rycli/enable-diff-new-ks
Add `--ignore-not-found` to `flux diff ks`
2026-04-13 19:59:54 +03:00
rycli e9bcccfede test: add 'flux diff ks' tests for cases that involve new namespaces
Signed-off-by: rycli <cyril@ryc.li>
Assisted-by: claude-code/claude-opus-4-6
2026-04-13 18:36:21 +02:00
rycli d349ffe37d feat: add --ignore-not-found flag to 'flux diff ks' command
Signed-off-by: rycli <cyril@ryc.li>
Assisted-by: claude-code/claude-opus-4-6
2026-04-13 18:35:52 +02:00
Stefan Prodan ac7f72b62b Merge pull request #5795 from fluxcd/rfc-cli-plugin-system
[RFC-0013] Flux CLI Plugin System
2026-04-13 17:00:05 +03:00
Stefan Prodan 968bebadf6 Assign RFC-0013 to the plugin system proposal
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-13 16:09:20 +03:00
Stefan Prodan 2bfdadd301 Add optional field extractPath to plugin definition
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-13 16:09:16 +03:00
Stefan Prodan 36686b945c Add support for direct binary URLs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-13 16:09:16 +03:00
Stefan Prodan 4e52adc7f0 Add plugin authors responsibilities
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-13 16:09:16 +03:00
Stefan Prodan 21ca8d4d17 [RFC] Flux CLI Plugin System
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-13 16:09:16 +03:00
Stefan Prodan 3e198177da Merge pull request #5847 from fluxcd/ai-guidance
Add AI Agents guidance
2026-04-13 09:56:28 +03:00
Stefan Prodan 7ba6dacc5c Add AI Agents guidance
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Assisted-by: claude-code/claude-opus-4-6
2026-04-12 21:14:44 +03:00
Stefan Prodan c97bdd412f Merge pull request #5841 from fluxcd/ai-contrib-guidelines
docs: Add AI Coding Assistants Guidance
2026-04-12 19:58:50 +03:00
Stefan Prodan 4eaf59113f docs: Add AI Coding Assistants Guidance
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-12 16:07:18 +03:00
Stefan Prodan 082a706f7f docs: Explain the Pull Request Process
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-11 11:40:24 +03:00
Stefan Prodan 8668902dd1 Merge pull request #5840 from fluxcd/update-components-e2e
Migrate end-to-end test to latest cloud SDKs
2026-04-11 01:18:55 +03:00
Stefan Prodan 8bc3ba3e1c Migrate end-to-end test to latest cloud SDKs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-10 23:56:03 +03:00
Stefan Prodan 2fdbde7fde Update otel packages
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-04-10 23:20:20 +03:00