1
0
mirror of synced 2026-03-01 19:26:55 +00:00

Compare commits

...

1757 Commits

Author SHA1 Message Date
Matheus Pimenta
97222a775a Merge pull request #5741 from fluxcd/backport-5740-to-release/v2.8.x
[release/v2.8.x] Update toolkit components
2026-02-27 09:39:11 +00:00
fluxcdbot
959025e649 Update toolkit components
- helm-controller to v1.5.1
  https://github.com/fluxcd/helm-controller/blob/v1.5.1/CHANGELOG.md
- kustomize-controller to v1.8.1
  https://github.com/fluxcd/kustomize-controller/blob/v1.8.1/CHANGELOG.md
- notification-controller to v1.8.1
  https://github.com/fluxcd/notification-controller/blob/v1.8.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
(cherry picked from commit ab4bbffa5b)
2026-02-27 09:28:19 +00:00
Matheus Pimenta
75f5e33fd1 Merge pull request #5739 from fluxcd/update-pkg-deps/release/v2.8.x
Update fluxcd/pkg dependencies
2026-02-27 09:05:41 +00:00
matheuscscp
79cae5d033 Update fluxcd/pkg dependencies
Signed-off-by: GitHub <noreply@github.com>
2026-02-27 08:52:59 +00:00
Matheus Pimenta
41505fd5f3 Merge pull request #5735 from fluxcd/backport-5733-to-release/v2.8.x
[release/v2.8.x] Remove no longer needed workaround for Flux 2.8
2026-02-25 11:10:32 +00:00
Matheus Pimenta
2042ddf849 Remove no longer needed workaround for Flux 2.8
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
(cherry picked from commit 2666eaf8fc)
2026-02-25 11:00:30 +00:00
Stefan Prodan
ac71dd88a3 Merge pull request #5731 from fluxcd/conform-min-1.33
Update conformance tests to min Kubernetes 1.33
2026-02-24 15:15:56 +02:00
Stefan Prodan
c5e5dfb8ae Update conformance tests to min Kubernetes 1.33
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-02-24 14:45:55 +02:00
Matheus Pimenta
6ae880501e Merge pull request #5730 from fluxcd/bump-min-k8s-version
Set Kubernetes 1.33 as min supported version
2026-02-24 12:16:55 +00:00
Matheus Pimenta
fd547dfe42 Bump minimum Kubernetes version to 1.33
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2026-02-24 12:06:45 +00:00
Matheus Pimenta
436dc7920a Merge pull request #5729 from fluxcd/debug-e2e
Dump debug info on e2e tests
2026-02-24 11:38:39 +00:00
Matheus Pimenta
7a8cf63623 Dump debug info on e2e tests
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2026-02-24 11:22:17 +00:00
Stefan Prodan
a6aefab55b Merge pull request #5726 from veeceey/fix/issue-1153-windows-cross-drive-bootstrap
Fix bootstrap failure on Windows cross-drive paths
2026-02-24 13:21:58 +02:00
Varun Chawla
5e5ee73046 Fix bootstrap failure on Windows when working directory is on different drive than TEMP
When running flux bootstrap from a drive (e.g. D:\) different from
where %TEMP% lives (typically C:\), filepath.Rel fails because Go
can't compute relative paths across different drive letters.

The original code converted absolute paths to relative as a workaround
for a kustomize bug (kubernetes-sigs/kustomize#2789) that was caused
by go-getter. Since kustomize dropped go-getter in 2021, absolute
paths work fine now. Instead of hard-failing when filepath.Rel errors,
keep the absolute path as a fallback.

Signed-off-by: Varun Chawla <varun_6april@hotmail.com>
2026-02-22 20:27:12 -08:00
Stefan Prodan
8362c88791 Merge pull request #5720 from fluxcd/dependabot/github_actions/ci-47823c94aa
build(deps): bump the ci group across 1 directory with 12 updates
2026-02-20 23:07:39 +02:00
dependabot[bot]
340a048e8b build(deps): bump the ci group across 1 directory with 12 updates
Bumps the ci group with 12 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `5.0.0` | `6.0.2` |
| [actions/setup-go](https://github.com/actions/setup-go) | `6.0.0` | `6.2.0` |
| [helm/kind-action](https://github.com/helm/kind-action) | `1.12.0` | `1.13.0` |
| [fluxcd/pkg](https://github.com/fluxcd/pkg) | `1.22.0` | `1.27.0` |
| [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) | `3.6.0` | `3.7.0` |
| [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) | `3.11.1` | `3.12.0` |
| [docker/login-action](https://github.com/docker/login-action) | `3.6.0` | `3.7.0` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.6.2` | `6.0.0` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.30.5` | `4.32.3` |
| [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.20.6` | `0.22.2` |
| [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) | `3.10.0` | `4.0.0` |
| [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) | `7.0.8` | `8.1.0` |



Updates `actions/checkout` from 5.0.0 to 6.0.2
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](08c6903cd8...de0fac2e45)

Updates `actions/setup-go` from 6.0.0 to 6.2.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](4469467582...7a3fe6cf4c)

Updates `helm/kind-action` from 1.12.0 to 1.13.0
- [Release notes](https://github.com/helm/kind-action/releases)
- [Commits](a1b0e39133...92086f6be0)

Updates `fluxcd/pkg` from 1.22.0 to 1.27.0
- [Commits](bf02f0a2d6...9a8c0edd5d)

Updates `docker/setup-qemu-action` from 3.6.0 to 3.7.0
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](29109295f8...c7c5346462)

Updates `docker/setup-buildx-action` from 3.11.1 to 3.12.0
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](e468171a9d...8d2750c68a)

Updates `docker/login-action` from 3.6.0 to 3.7.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](5e57cd1181...c94ce9fb46)

Updates `actions/upload-artifact` from 4.6.2 to 6.0.0
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](ea165f8d65...b7c566a772)

Updates `github/codeql-action` from 3.30.5 to 4.32.3
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](3599b3baa1...9e907b5e64)

Updates `anchore/sbom-action` from 0.20.6 to 0.22.2
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Changelog](https://github.com/anchore/sbom-action/blob/main/RELEASE.md)
- [Commits](f8bdd1d8ac...28d71544de)

Updates `sigstore/cosign-installer` from 3.10.0 to 4.0.0
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](d7543c93d8...faadad0cce)

Updates `peter-evans/create-pull-request` from 7.0.8 to 8.1.0
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](271a8d0340...c0f553fe54)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.2
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: actions/setup-go
  dependency-version: 6.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: helm/kind-action
  dependency-version: 1.13.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: fluxcd/pkg
  dependency-version: 1.27.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: docker/setup-qemu-action
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: docker/setup-buildx-action
  dependency-version: 3.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: docker/login-action
  dependency-version: 3.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: actions/upload-artifact
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: github/codeql-action
  dependency-version: 4.32.3
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-version: 0.22.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: sigstore/cosign-installer
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: peter-evans/create-pull-request
  dependency-version: 8.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-20 20:38:58 +00:00
Matheus Pimenta
4b2fc84402 Merge pull request #5725 from fluxcd/update-components
Update helm-controller to v1.5.0
2026-02-20 14:03:23 +00:00
fluxcdbot
2673348c2f Update toolkit components
- helm-controller to v1.5.0
  https://github.com/fluxcd/helm-controller/blob/v1.5.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2026-02-20 13:45:59 +00:00
Matheus Pimenta
7132eb3435 Merge pull request #5722 from fluxcd/update-components
Update toolkit components
2026-02-19 12:20:21 +00:00
fluxcdbot
473b02ce5c Update toolkit components
- kustomize-controller to v1.8.0
  https://github.com/fluxcd/kustomize-controller/blob/v1.8.0/CHANGELOG.md
- source-controller to v1.8.0
  https://github.com/fluxcd/source-controller/blob/v1.8.0/CHANGELOG.md
- notification-controller to v1.8.0
  https://github.com/fluxcd/notification-controller/blob/v1.8.0/CHANGELOG.md
- image-reflector-controller to v1.1.0
  https://github.com/fluxcd/image-reflector-controller/blob/v1.1.0/CHANGELOG.md
- image-automation-controller to v1.1.0
  https://github.com/fluxcd/image-automation-controller/blob/v1.1.0/CHANGELOG.md
- source-watcher to v2.1.0
  https://github.com/fluxcd/source-watcher/blob/v2.1.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2026-02-19 10:25:55 +00:00
Stefan Prodan
862d9ddb6d Merge pull request #5723 from fluxcd/go-1.26
Build with Go 1.26
2026-02-19 12:25:09 +02:00
Stefan Prodan
33b9345883 Build with Go 1.26
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-02-19 11:11:47 +02:00
Matheus Pimenta
e169a97577 Merge pull request #5721 from fluxcd/fix-5683
Fix event listing ignoring pagination token
2026-02-18 16:58:28 +00:00
Matheus Pimenta
4eddf80724 Fix event listing ignoring pagination token
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2026-02-18 15:53:10 +00:00
Matheus Pimenta
99f182be06 Merge pull request #5719 from fluxcd/update-pkg-deps/main
Update fluxcd/pkg dependencies
2026-02-16 13:43:36 +00:00
matheuscscp
cf785cebcc Update fluxcd/pkg dependencies
Signed-off-by: GitHub <noreply@github.com>
2026-02-16 13:18:51 +00:00
Matheus Pimenta
7ff4c32d16 Merge pull request #5717 from fluxcd/cmd-bump
Introduce workflow for bumping fluxcd/pkg deps
2026-02-16 13:17:38 +00:00
Matheus Pimenta
75bf2d608f Introduce workflow for bumping fluxcd/pkg deps
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2026-02-16 13:02:26 +00:00
Matheus Pimenta
f950198f9d Merge pull request #5713 from fluxcd/migrate-v2.8
Add 2.8 to supported versions for `flux migrate -f`
2026-02-12 11:13:27 +00:00
Matheus Pimenta
2a2201fe56 Add 2.8 to supported versions for flux migrate -f
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2026-02-12 11:02:58 +00:00
Stefan Prodan
a4903a95be Merge pull request #5690 from Aman-Cool/fix/resume-success-after-failure
Fix resume command logging success after reconciliation failure
2026-01-25 10:29:02 +02:00
Aman-Cool
8c041095ab Fix resume command logging success after reconciliation failure
Signed-off-by: Aman-Cool <aman017102007@gmail.com>
2026-01-25 04:53:17 +05:30
Stefan Prodan
63dfdd133c Merge pull request #5688 from fluxcd/k8s-1.35.0
Update dependencies to Kubernetes v1.35.0
2026-01-22 18:12:41 +02:00
Stefan Prodan
b2be6f96c9 Update dependencies to Kubernetes v1.35.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2026-01-22 17:01:34 +02:00
Matheus Pimenta
1dfc906802 Merge pull request #5682 from fluxcd/gh-app-owner
Introduce support for looking up GH app installation ID
2026-01-19 12:20:27 +00:00
Matheus Pimenta
d57313ae2c Introduce support for looking up GH app installation ID
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2026-01-19 12:03:08 +00:00
Matheus Pimenta
c125bcb1ca Merge pull request #5674 from sibasispadhi/fix-windows-path-issue-5673
fix: normalize path for Windows compatibility
2026-01-13 16:41:23 +00:00
Sibasis Padhi
7dd9fde7ce fix: normalize paths to prevent concatenation on Windows
Fixes #5673

On Windows, when using absolute paths like C:\path\to\dir,
the path could be incorrectly concatenated, resulting in:
C:\working\dir\C:\path\to\dir\file

This fix applies filepath.Abs() and filepath.Clean() to normalize
the path before using it, ensuring absolute paths are handled
correctly on all platforms.

Changes:
- Apply filepath.Abs() to convert relative paths to absolute
- Apply filepath.Clean() to remove redundant separators and resolve ..
- Add tests for absolute paths, complex paths with .., and paths
  with redundant separators to verify normalization works correctly

The tests use actual 'flux build kustomization' commands with:
1. Absolute paths (prevents concatenation bugs)
2. Paths with parent directory (..) references
3. Paths with redundant separators (//)

All tests verify the command produces correct output, ensuring
the path normalization fix works as expected.

Signed-off-by: Sibasis Padhi <sibasis.padhi@gmail.com>
2026-01-13 10:25:59 -06:00
Stefan Prodan
f2f7d59577 Merge pull request #5663 from fluxcd/conform-k8s-1.35
Run conformance tests for Kubernetes 1.35.0
2025-12-18 11:47:06 +02:00
Stefan Prodan
7459e457bf Run conformance tests for Kubernetes 1.35.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-12-18 11:15:02 +02:00
Stefan Prodan
145f98b53a ci: Move release to large runners
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-12-18 11:13:58 +02:00
Stefan Prodan
6c58ea576e Merge pull request #5659 from ivan-munteanu/retry-pulling-the-binary
Added retry logic with delays to the Flux CLI download
2025-12-15 20:17:23 +02:00
ivan-munteanu
580ef30c8f Added retry logic to install.sh
What Changed:
- Downloads now retry up to 5 times with 5-second delays between attempts
- Applied to both the Flux binary and checksums file downloads
- Clear feedback on retry attempts and failures

Why This Matters
- Improves Reliability: Network hiccups, rate limiting, or temporary outages no longer cause immediate failures. The action automatically recovers from transient issues.

Signed-off-by: ivan-munteanu <148127170+ivan-munteanu@users.noreply.github.com>
2025-12-15 09:14:27 -05:00
Matheus Pimenta
94e9af6b2a Merge pull request #5656 from jaxels10/main
fix: #5654 by checking if both --chart and --chart-ref are set
2025-12-10 21:32:28 +00:00
Jesper Axelsen
3fb05a604f fix: #5654 by check if both --chart and --chart-ref are set
Signed-off-by: Jesper Axelsen <jesperbaxelsen@gmail.com>
2025-12-10 22:08:31 +01:00
Matheus Pimenta
9b76ba19a8 Merge pull request #5648 from fluxcd/update-components
Update toolkit components
2025-11-27 10:08:05 +00:00
fluxcdbot
1e7dd5dfd8 Update toolkit components
- helm-controller to v1.4.5
  https://github.com/fluxcd/helm-controller/blob/v1.4.5/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-11-27 09:53:28 +00:00
Stefan Prodan
d6dec730d8 Merge pull request #5597 from anshuishere/skip-tenant-ns-create
Allow option to skip tenant namespace creation
2025-11-21 17:16:29 +02:00
Anshuman Singh
0ba28f3f91 Allow option to skip tenant namespace creation
Add --skip-namespace flag to the 'create tenant' command to skip automatic
namespace creation when the namespace already exists.

Signed-off-by: Anshuman Singh <anshumanchauhan9@gmail.com>
2025-11-21 17:46:12 +05:30
Matheus Pimenta
55936e9366 Merge pull request #5639 from fluxcd/update-components
Update toolkit components
2025-11-20 07:17:19 +00:00
fluxcdbot
6ecad4783f Update toolkit components
- helm-controller to v1.4.4
  https://github.com/fluxcd/helm-controller/blob/v1.4.4/CHANGELOG.md
- kustomize-controller to v1.7.3
  https://github.com/fluxcd/kustomize-controller/blob/v1.7.3/CHANGELOG.md
- source-controller to v1.7.4
  https://github.com/fluxcd/source-controller/blob/v1.7.4/CHANGELOG.md
- notification-controller to v1.7.5
  https://github.com/fluxcd/notification-controller/blob/v1.7.5/CHANGELOG.md
- image-reflector-controller to v1.0.4
  https://github.com/fluxcd/image-reflector-controller/blob/v1.0.4/CHANGELOG.md
- image-automation-controller to v1.0.4
  https://github.com/fluxcd/image-automation-controller/blob/v1.0.4/CHANGELOG.md
- source-watcher to v2.0.3
  https://github.com/fluxcd/source-watcher/blob/v2.0.3/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-11-20 07:04:02 +00:00
Matheus Pimenta
5759d08473 Merge pull request #5625 from hown3d/report-diff-skip
diff: report if object is skipped
2025-11-19 08:31:43 +00:00
Lukas Hoehl
5048de80f0 diff: report if object is skipped
Signed-off-by: Lukas Hoehl <lukas.hoehl@stackit.cloud>
2025-11-19 07:24:11 +01:00
Matheus Pimenta
97a437d059 Merge pull request #5633 from fluxcd/upgrade-deps
Upgrade k8s to 1.34.2, c-r to 0.22.4 and helm to 3.19.2
2025-11-18 15:02:24 +00:00
Matheus Pimenta
cfb28ffdc0 Upgrade k8s to 1.34.2, c-r to 0.22.4 and helm to 3.19.2
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-11-18 14:34:27 +00:00
Matheus Pimenta
ae9ef62f39 Merge pull request #5630 from fluxcd/fix-5629
Fix panic on reconcile with source of ExternalArtifact kind
2025-11-17 14:32:37 +00:00
Matheus Pimenta
69feb7214a Fix panic on reconcile with source of ExternalArtifact kind
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-11-17 13:31:13 +00:00
Matheus Pimenta
e95da82f5a Merge pull request #5627 from fluxcd/fix-5626
Add source.extensions.fluxcd.io group to aggregated RBAC roles
2025-11-13 12:56:50 +01:00
Matheus Pimenta
7c5f9befb4 Add source.extensions.fluxcd.io group to aggregated RBAC roles
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-11-13 11:52:09 +00:00
Stefan Prodan
26a8d0c1c7 Merge pull request #5614 from fluxcd/conform-source-watcher
ci: Include source-watcher in the e2e test suite
2025-11-01 11:46:35 +02:00
Stefan Prodan
833815c71d ci: Include source-watcher in the e2e test suite
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-11-01 10:34:07 +02:00
Matheus Pimenta
31287b9b27 Merge pull request #5602 from jaxels10/main
fix: return accepted values for flags when calling Values.Type()
2025-10-28 14:09:23 +00:00
Jesper Axelsen
28f5b553a2 fix: return supported values for flags when calling Values.Type()
Signed-off-by: Jesper Axelsen <jesperbaxelsen@gmail.com>
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-10-28 13:35:22 +00:00
Matheus Pimenta
b33f173670 Merge pull request #5603 from fluxcd/update-components
Update toolkit components
2025-10-28 13:17:06 +00:00
Matheus Pimenta
d8c6ee167c Fix bootstrap e2e test for image policy
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-10-28 12:59:53 +00:00
fluxcdbot
e288cb2771 Update toolkit components
- helm-controller to v1.4.3
  https://github.com/fluxcd/helm-controller/blob/v1.4.3/CHANGELOG.md
- kustomize-controller to v1.7.2
  https://github.com/fluxcd/kustomize-controller/blob/v1.7.2/CHANGELOG.md
- source-controller to v1.7.3
  https://github.com/fluxcd/source-controller/blob/v1.7.3/CHANGELOG.md
- notification-controller to v1.7.4
  https://github.com/fluxcd/notification-controller/blob/v1.7.4/CHANGELOG.md
- image-reflector-controller to v1.0.3
  https://github.com/fluxcd/image-reflector-controller/blob/v1.0.3/CHANGELOG.md
- image-automation-controller to v1.0.3
  https://github.com/fluxcd/image-automation-controller/blob/v1.0.3/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-10-28 12:39:44 +00:00
Stefan Prodan
5f2a6ebc2b Merge pull request #5583 from dgunzy/add-export-source-external
[RFC-0012] Add command `flux export source external`
2025-10-28 09:33:06 +02:00
Daniel Guns
cdc37c304a Adding export source external
Signed-off-by: Daniel Guns <danbguns@gmail.com>
2025-10-24 14:52:36 -03:00
Matheus Pimenta
60e4d99b57 Merge pull request #5594 from fluxcd/pin-cosign-v2.6.1
Pin cosign to v2.6.1
2025-10-20 15:54:43 +01:00
Matheus Pimenta
8229ffb674 Pin cosign to v2.6.1
xref: https://github.com/fluxcd/source-controller/issues/1923
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-10-20 15:34:46 +01:00
Stefan Prodan
9b944da896 Merge pull request #5589 from akshatsinha0/fix/check-prompt-write-error
fix: handle error when writing password prompt to stdout
2025-10-13 22:30:18 +03:00
Akshat Sinha
5b37a6b04b fix(cli): handle error when writing password prompt and correct spelling (i) Add error handling for fmt.Fprint when writing password prompt to stdout (ii) Fixed : initalization to initialization in the commented region
Signed-off-by: Akshat Sinha <akshatsinhasramhardy@gmail.com>
2025-10-13 20:21:49 +05:30
Stefan Prodan
9f18062d43 Merge pull request #5555 from dgunzy/add-get-source-external-artifact
[RFC-0012] Add command `flux get source external`
2025-10-10 15:56:18 +03:00
Daniel Guns
1055f28524 Adding get source external-artifact
Signed-off-by: Daniel Guns <danbguns@gmail.com>
2025-10-09 08:45:01 -03:00
Matheus Pimenta
7b0021c1a8 Merge pull request #5581 from fluxcd/restore-github-pat-for-backports
Restore GitHub PAT for backports
2025-10-09 11:54:20 +01:00
Matheus Pimenta
ba997449aa Restore GitHub PAT for backports
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-10-09 11:48:57 +01:00
Matheus Pimenta
ca2f0205c4 Merge pull request #5578 from fluxcd/update-components
Update toolkit components
2025-10-08 18:53:00 +01:00
fluxcdbot
058525fe37 Update toolkit components
- helm-controller to v1.4.2
  https://github.com/fluxcd/helm-controller/blob/v1.4.2/CHANGELOG.md
- kustomize-controller to v1.7.1
  https://github.com/fluxcd/kustomize-controller/blob/v1.7.1/CHANGELOG.md
- source-controller to v1.7.2
  https://github.com/fluxcd/source-controller/blob/v1.7.2/CHANGELOG.md
- notification-controller to v1.7.3
  https://github.com/fluxcd/notification-controller/blob/v1.7.3/CHANGELOG.md
- image-reflector-controller to v1.0.2
  https://github.com/fluxcd/image-reflector-controller/blob/v1.0.2/CHANGELOG.md
- image-automation-controller to v1.0.2
  https://github.com/fluxcd/image-automation-controller/blob/v1.0.2/CHANGELOG.md
- source-watcher to v2.0.2
  https://github.com/fluxcd/source-watcher/blob/v2.0.2/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-10-08 17:36:49 +00:00
Stefan Prodan
686ee31f8a Merge pull request #5576 from fluxcd/k8s-1.34.1
Update dependencies to Kubernetes v1.34.1 and Go 1.25.2
2025-10-08 19:26:14 +03:00
Stefan Prodan
767f235f94 Update dependencies to Kubernetes v1.34.1 and Go 1.25.2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-10-08 18:42:48 +03:00
Stefan Prodan
d5a2c66746 Merge pull request #5574 from fluxcd/fix-manifestgen
Fix manifest generation for `--storage-adv-addr` and `--events-addr` flags
2025-10-08 10:59:43 +03:00
Stefan Prodan
f2ff083b8e Use RUNTIME_NAMESPACE when setting --events-addr
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-10-07 20:47:37 +03:00
Stefan Prodan
8c45f25f33 Fix --storage-adv-addr for source-watcher
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-10-07 20:46:31 +03:00
Stefan Prodan
f85cbfa9c8 Merge pull request #5570 from fluxcd/remove-aur-pkgs
Disable AUR publishing
2025-10-06 18:46:03 +03:00
Stefan Prodan
71a3dad213 Disable AUR publishing
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-10-06 18:43:27 +03:00
Matheus Pimenta
72e0535958 Merge pull request #5568 from fluxcd/update-components
Update toolkit components
2025-10-06 12:55:14 +01:00
fluxcdbot
4f2d1c3a2a Update toolkit components
- helm-controller to v1.4.1
  https://github.com/fluxcd/helm-controller/blob/v1.4.1/CHANGELOG.md
- source-controller to v1.7.1
  https://github.com/fluxcd/source-controller/blob/v1.7.1/CHANGELOG.md
- notification-controller to v1.7.2
  https://github.com/fluxcd/notification-controller/blob/v1.7.2/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-10-06 11:38:19 +00:00
Stefan Prodan
8e99cf7c93 Merge pull request #5566 from ramasai1/refactor-variable-sub
refactor: convert `Kustomization` resource into unstructured map only once during variable substitution
2025-10-06 12:25:16 +03:00
Ramasai Venkatsitarambhaskar Tadepalli
2bb7f38603 refactor: convert Kustomization resource into unstructured map only once during variable substitution
Signed-off-by: Ramasai Venkatsitarambhaskar Tadepalli <ramasai.tadepalli@mongodb.com>
2025-10-04 21:56:20 -04:00
Matheus Pimenta
0fe4449870 Merge pull request #5563 from fluxcd/fix-migrate-f
Fix `flux migrate -f` not considering kind comments
2025-10-04 16:33:35 +01:00
Matheus Pimenta
7c5fb2297c Fix flux migrate -f not considering kind comments
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-10-04 14:26:54 +01:00
Stefan Prodan
f4a811fbd3 Merge pull request #5562 from fluxcd/source-watcher-links
Add source-watcher to docs
2025-10-04 09:50:09 +03:00
Stefan Prodan
bb3726bb87 Add source-watcher to docs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-10-03 19:45:13 +03:00
Matheus Pimenta
333c8fe704 Merge pull request #5560 from fluxcd/fix-migrate-files
Fix `flux migrate -f` command to work with comments
2025-10-03 15:45:13 +01:00
Matheus Pimenta
83213ce83f Fix migrate -f command to work with comments
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-10-03 14:54:41 +01:00
Stefan Prodan
69718599ac Merge pull request #5558 from fluxcd/improve-flux-migrate
Improve `flux migrate` for live cluster migrations
2025-10-03 16:52:44 +03:00
Stefan Prodan
0255957dd7 Improve flux migrate for live cluster migrations
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-10-03 15:24:44 +03:00
Stefan Prodan
69b4b85cd9 Merge pull request #5554 from fluxcd/migrate-dir
Extend `flux migrate` to work with local files
2025-10-03 11:49:51 +03:00
Matheus Pimenta
a9b5be7ff4 Extend flux migrate to work with local files
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-10-02 15:35:02 +01:00
Matheus Pimenta
1b46056e7d Merge pull request #5551 from fluxcd/fix-5549
Fix `flux push artifact` not working with `--provider`
2025-10-01 10:39:42 +01:00
Matheus Pimenta
039d79b3c2 Fix flux push artifact not working with --provider
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-10-01 09:37:35 +01:00
Stefan Prodan
66b8aca399 Merge pull request #5548 from fluxcd/dependabot/github_actions/ci-b5b9679c22
build(deps): bump the ci group across 1 directory with 3 updates
2025-10-01 11:03:14 +03:00
dependabot[bot]
41c413e178 build(deps): bump the ci group across 1 directory with 3 updates
Bumps the ci group with 3 updates in the / directory: [docker/login-action](https://github.com/docker/login-action), [ossf/scorecard-action](https://github.com/ossf/scorecard-action) and [github/codeql-action](https://github.com/github/codeql-action).


Updates `docker/login-action` from 3.5.0 to 3.6.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](184bdaa072...5e57cd1181)

Updates `ossf/scorecard-action` from 2.4.2 to 2.4.3
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](05b42c6244...4eaacf0543)

Updates `github/codeql-action` from 3.30.3 to 3.30.5
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](192325c861...3599b3baa1)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-version: 3.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: ossf/scorecard-action
  dependency-version: 2.4.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: github/codeql-action
  dependency-version: 3.30.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-10-01 07:52:39 +00:00
Matheus Pimenta
d5f8720c4d Merge pull request #5550 from fluxcd/update-labels
Add backport label for Flux 2.7
2025-10-01 08:08:08 +01:00
Matheus Pimenta
e6eb9d79e3 Add backport label for Flux 2.7
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-10-01 08:07:01 +01:00
Stefan Prodan
b90d1738a9 Merge pull request #5547 from fluxcd/ci-fix-release-flux-manifests
ci: Set `GITHUB_TOKEN` in the `release-flux-manifests` workflow
2025-10-01 00:11:33 +03:00
Stefan Prodan
f9e66dee9e ci: Set GITHUB_TOKEN in the release-flux-manifests workflow
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-30 23:44:54 +03:00
Matheus Pimenta
f251e8e8a9 Merge pull request #5509 from RussellAult/action-without-api
`fluxcd/flux2/action`: Determine latest version without using GitHub API
2025-09-30 07:23:03 +01:00
RussellAult
44f0d50dbf fluxcd/flux2/action: Determine latest version without using GitHub API
Signed-off-by: RussellAult <RussellAult@users.noreply.github.com>
Co-authored-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-09-30 07:19:32 +01:00
Matheus Pimenta
4664d49e29 Merge pull request #5542 from fluxcd/update-components
Update image-automation-controller to v1.0.1
2025-09-28 21:12:32 +01:00
fluxcdbot
2997645ea3 Update toolkit components
- image-automation-controller to v1.0.1
  https://github.com/fluxcd/image-automation-controller/blob/v1.0.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-09-28 19:59:27 +00:00
Matheus Pimenta
3247a46654 Merge pull request #5541 from fluxcd/debug-ks-history
Add `--show-history` flag to `debug kustomization`
2025-09-26 11:04:46 +01:00
Matheus Pimenta
b5ecb9bc56 Add --show-history flag to debug kustomization
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-09-26 10:01:31 +01:00
Stefan Prodan
550260638d Merge pull request #5540 from fluxcd/update-components
Update source-watcher to v2.0.1
2025-09-26 11:16:34 +03:00
fluxcdbot
b52d76d6e6 Update toolkit components
- source-watcher to v2.0.1
  https://github.com/fluxcd/source-watcher/blob/v2.0.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-09-26 07:56:24 +00:00
Matheus Pimenta
95b2d855cb Merge pull request #5539 from fluxcd/no-cron-for-update
ci: remove cron schedule from update
2025-09-25 16:59:54 +01:00
Matheus Pimenta
52e0c9815b ci: remove cron schedule from update
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-09-25 16:48:33 +01:00
Stefan Prodan
154069893b Merge pull request #5537 from fluxcd/update-components
Update toolkit components
2025-09-25 18:45:37 +03:00
Stefan Prodan
6185366b8a Migrate create commands to DependencyReference type
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-25 18:22:08 +03:00
fluxcdbot
f7665f4b47 Update toolkit components
- helm-controller to v1.4.0
  https://github.com/fluxcd/helm-controller/blob/v1.4.0/CHANGELOG.md
- kustomize-controller to v1.7.0
  https://github.com/fluxcd/kustomize-controller/blob/v1.7.0/CHANGELOG.md
- notification-controller to v1.7.1
  https://github.com/fluxcd/notification-controller/blob/v1.7.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-09-25 15:06:43 +00:00
Stefan Prodan
b20eb0ca22 Merge pull request #5534 from prasad89/issue#5526
Add support for custom storage namespace in HelmRelease creation
2025-09-24 21:45:08 +03:00
prasad89
8000a41015 Add support for custom storage namespace in HelmRelease creation
Signed-off-by: prasad89 <vdbhaleraovb@gmail.com>
2025-09-24 21:46:06 +05:30
Stefan Prodan
4601a304dd Merge pull request #5535 from fluxcd/dependabot/github_actions/ci-57db20d2cc
build(deps): bump the ci group with 6 updates
2025-09-24 12:49:56 +03:00
dependabot[bot]
2fc09963e8 build(deps): bump the ci group with 6 updates
Bumps the ci group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [fluxcd/gha-workflows](https://github.com/fluxcd/gha-workflows) | `0.3.0` | `0.4.0` |
| [actions/setup-go](https://github.com/actions/setup-go) | `5.5.0` | `6.0.0` |
| [fluxcd/pkg](https://github.com/fluxcd/pkg) | `1.20.0` | `1.22.0` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.29.11` | `3.30.3` |
| [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.20.5` | `0.20.6` |
| [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) | `3.9.2` | `3.10.0` |


Updates `fluxcd/gha-workflows` from 0.3.0 to 0.4.0
- [Release notes](https://github.com/fluxcd/gha-workflows/releases)
- [Commits](https://github.com/fluxcd/gha-workflows/compare/v0.3.0...v0.4.0)

Updates `actions/setup-go` from 5.5.0 to 6.0.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](d35c59abb0...4469467582)

Updates `fluxcd/pkg` from 1.20.0 to 1.22.0
- [Commits](7f090e9313...bf02f0a2d6)

Updates `github/codeql-action` from 3.29.11 to 3.30.3
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](3c3833e0f8...192325c861)

Updates `anchore/sbom-action` from 0.20.5 to 0.20.6
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Changelog](https://github.com/anchore/sbom-action/blob/main/RELEASE.md)
- [Commits](da167eac91...f8bdd1d8ac)

Updates `sigstore/cosign-installer` from 3.9.2 to 3.10.0
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](d58896d6a1...d7543c93d8)

---
updated-dependencies:
- dependency-name: fluxcd/gha-workflows
  dependency-version: 0.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: actions/setup-go
  dependency-version: 6.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: fluxcd/pkg
  dependency-version: 1.22.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: github/codeql-action
  dependency-version: 3.30.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-version: 0.20.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: sigstore/cosign-installer
  dependency-version: 3.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-24 09:37:59 +00:00
Stefan Prodan
a2b4edc2f3 Merge pull request #5533 from fluxcd/conform-k8s-1.34.1
Set Kubernetes 1.32 as min supported version
2025-09-24 11:11:25 +03:00
Stefan Prodan
55bb3fe643 Set Kubernetes 1.32 as min supported version
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-24 10:39:53 +03:00
Stefan Prodan
7060770258 Merge pull request #5532 from fluxcd/trace-external-artifact
Add support for `ExternalArtifact` to `flux trace`
2025-09-23 16:18:20 +03:00
Stefan Prodan
c3eadad983 Add support for ExternalArtifact to flux trace
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-23 15:49:19 +03:00
Stefan Prodan
e56dfcacf2 Merge pull request #5531 from fluxcd/uninstall-artifact-generator
Remove `ArtifactGenerators` during uninstall
2025-09-23 15:10:44 +03:00
Stefan Prodan
56e73ae03c Remove ArtifactGenerators during uninstall
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-23 14:41:50 +03:00
Stefan Prodan
7a2f77ffe0 Merge pull request #5529 from fluxcd/fluxcd/gha-workflows
ci: Refactor CI with `fluxcd/gha-workflows`
2025-09-22 13:50:04 +02:00
Stefan Prodan
c1b2c7cae8 ci: Refactor CI with fluxcd/gha-workflows
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-22 14:01:38 +03:00
Stefan Prodan
79186a0055 Merge pull request #5528 from fluxcd/diff-force
Handle `force: enabled` annotation in `flux diff ks` command
2025-09-22 12:55:04 +02:00
Stefan Prodan
e7f1faea01 Handle force: enabled annotation in flux diff ks command
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-22 13:11:43 +03:00
Matheus Pimenta
74edb12bd1 Merge pull request #5492 from lukas8219/5411-reconcile-suspend-resume-img-policy
Implement `flux [reconcile|suspend|resume] image policy` commands
2025-09-20 04:24:31 +01:00
lukas8219
48d509d838 Implement flux [reconcile|suspend|resume] image policy commands
Signed-off-by: lukas8219 <lucas.c4d@gmail.com>
2025-09-20 00:00:10 -03:00
Matheus Pimenta
948ed45f10 Merge pull request #5525 from fluxcd/update-components
Update image-reflector-controller to v1.0.1
2025-09-20 03:31:45 +01:00
fluxcdbot
6f47ae0f2f Update toolkit components
- image-reflector-controller to v1.0.1
  https://github.com/fluxcd/image-reflector-controller/blob/v1.0.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-09-20 02:18:40 +00:00
Matheus Pimenta
a1f366933b Merge pull request #5522 from fluxcd/update-components
Update image-automation-controller to v1.0.0
2025-09-16 13:29:55 +01:00
fluxcdbot
99b51ad525 Update toolkit components
- image-automation-controller to v1.0.0
  https://github.com/fluxcd/image-automation-controller/blob/v1.0.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-09-16 12:08:15 +01:00
Stefan Prodan
b6e0e8fd63 Merge pull request #5521 from fluxcd/update-source-watcher
ci: Add source-watcher to the update workflow
2025-09-16 12:08:36 +03:00
Stefan Prodan
9056ec029c ci: Add source-watcher to the update workflow
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-16 11:57:01 +03:00
Stefan Prodan
9caea521ea Merge pull request #5520 from fluxcd/artifact-generator
Add read-only commands for `ArtifactGenerator` kind
2025-09-16 11:28:34 +03:00
Stefan Prodan
a317f7c445 Add support for events --for ArtifactGenerator/<name>
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-16 11:17:27 +03:00
Stefan Prodan
698a68424f Add tree artifact generator command
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-16 11:00:17 +03:00
Stefan Prodan
5556a5cc9a Add get artifact generator command
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-16 11:00:12 +03:00
Stefan Prodan
c416671ec4 Add export artifact generator command
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-16 11:00:12 +03:00
Stefan Prodan
f719d2bf76 Use stdout when exporting objects
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-16 11:00:12 +03:00
Stefan Prodan
46aa068fda Merge pull request #5519 from fluxcd/source-watcher
Add the source-watcher controller to the Flux distribution
2025-09-16 00:28:02 +03:00
Stefan Prodan
3542d61afd Add source-watcher to the install and bootstrap commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-15 23:59:03 +03:00
Stefan Prodan
0a87ed5a42 Add source-watcher to manifests
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-15 21:22:04 +03:00
Matheus Pimenta
e4dcc4bd5f Merge pull request #5518 from fluxcd/update-components
Update source-controller to v1.7.0
2025-09-15 18:04:28 +01:00
fluxcdbot
b4bc0d4932 Update toolkit components
- source-controller to v1.7.0
  https://github.com/fluxcd/source-controller/blob/v1.7.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-09-15 17:33:20 +01:00
Stefan Prodan
6cc446af00 Merge pull request #5517 from fluxcd/update-components
Update image-reflector-controller to v1.0.0
2025-09-15 15:57:50 +03:00
Matheus Pimenta
8db628cc90 Update image-reflector-controller to v1 in integration tests
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-09-15 13:34:36 +01:00
Matheus Pimenta
e765897df7 Update image-reflector-controller API imports to v1
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-09-15 13:34:32 +01:00
fluxcdbot
210b2aa458 Update toolkit components
- image-reflector-controller to v1.0.0
  https://github.com/fluxcd/image-reflector-controller/blob/v1.0.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-09-15 11:34:09 +00:00
Matheus Pimenta
a8e0ea495d Merge pull request #5508 from fluxcd/azure-e2e
ci: Align azure e2e tests secret names with fluxcd/pkg
2025-09-08 20:31:07 +01:00
Matheus Pimenta
8fb1ccebfa ci: Align azure e2e tests secret names with fluxcd/pkg
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-09-08 19:58:51 +01:00
Matheus Pimenta
664423230d Merge pull request #5507 from fluxcd/skip-rc-upd
Skip release candidates on updates
2025-09-04 19:58:11 +01:00
Matheus Pimenta
0c8cfcdc85 Skip release candidates on updates
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-09-04 19:54:33 +01:00
Matheus Pimenta
89d4467a50 Merge pull request #5505 from hawkaii/history
Add `--show-history` flag to `debug  helmrelease`
2025-09-04 14:44:37 +01:00
Parthib Mukherjee
bef6f36755 Add --show-history flag to debug helmrelease
Signed-off-by: Parthib Mukherjee <parthibmukherjee@gmail.com>
2025-09-04 12:44:28 +00:00
Stefan Prodan
6125991b78 Merge pull request #5292 from fluxcd/rfc-external-artifact
[RFC-0012] External Artifact API
2025-09-03 18:40:04 +03:00
Stefan Prodan
64bfa02db4 Add Artifact access restrictions to recommendations
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-03 13:57:38 +03:00
Stefan Prodan
1e662e5ed9 Assign 0012 to RFC
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-03 01:04:08 +03:00
Stefan Prodan
df57392f48 Add Feature Gate
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-03 01:00:47 +03:00
Stefan Prodan
19cd02e548 Add SDK for packaging and exposing artifacts
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-03 01:00:35 +03:00
Stefan Prodan
8bc7822fe5 Add security considerations and recommendations
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-03 01:00:34 +03:00
Stefan Prodan
e97da26435 Add design details to ExternalArtifact RFC
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-03 01:00:34 +03:00
Stefan Prodan
1a89fa419e RFC External Artifact API
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-09-03 01:00:33 +03:00
Stefan Prodan
7c0e70b9cc Merge pull request #5321 from adri1197/rfcs-opentelemetry
[RFC-0011] OpenTelemetry Tracing
2025-09-03 00:58:36 +03:00
Adrian Fernandez De La Torre
ed9ee95dbe [RFC-0011] - OpenTelemetry Tracing
Signed-off-by: Adrian Fernandez De La Torre <adri1197@gmail.com>
2025-09-01 20:37:10 +02:00
Matheus Pimenta
63a38ab228 Merge pull request #5414 from mohiuddin-khan-shiam/main
fix(events): respect `--all-namespaces` flag
2025-09-01 09:09:53 +01:00
S. M. Mohiuddin Khan Shiam
c2a883e25a fix(events): respect --all-namespaces flag
The `flux events` command always applied a namespace filter, even when `--all-namespaces` was set.
This produced incomplete results and confused users expecting cluster-wide events.

Changes made:
* Build `clientListOpts` dynamically.
* Omit `client.InNamespace(...)` when `eventArgs.allNamespaces` is true, ensuring no namespace constraint.

Impact:
`flux events --all-namespaces` now returns events from every namespace, restoring expected functionality without affecting other options.

Signed-off-by: S. M. Mohiuddin Khan Shiam <147746955+mohiuddin-khan-shiam@users.noreply.github.com>
2025-09-01 08:55:15 +01:00
Stefan Prodan
24ae50cfd5 Merge pull request #5501 from fluxcd/auto-gomaxprocs
Allow the Go runtime to dynamically set `GOMAXPROCS`
2025-09-01 10:46:29 +03:00
Stefan Prodan
0573138e38 Allow the Go runtime to dynamically set GOMAXPROCS
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-08-31 22:07:38 +03:00
Stefan Prodan
2f14313646 Merge pull request #5500 from fluxcd/dependabot/github_actions/ci-fe119e88f8
build(deps): bump the ci group across 1 directory with 10 updates
2025-08-30 16:55:04 +03:00
dependabot[bot]
e135336aae build(deps): bump the ci group across 1 directory with 10 updates
Bumps the ci group with 10 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4.2.2` | `5.0.0` |
| [korthout/backport-action](https://github.com/korthout/backport-action) | `3.2.1` | `3.3.0` |
| [fluxcd/pkg](https://github.com/fluxcd/pkg) | `1.19.0` | `1.20.0` |
| [google-github-actions/auth](https://github.com/google-github-actions/auth) | `2.1.10` | `3.0.0` |
| [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) | `2.1.4` | `3.0.1` |
| [docker/login-action](https://github.com/docker/login-action) | `3.4.0` | `3.5.0` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.29.2` | `3.29.11` |
| [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.20.2` | `0.20.5` |
| [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) | `3.9.1` | `3.9.2` |
| [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) | `6.3.0` | `6.4.0` |



Updates `actions/checkout` from 4.2.2 to 5.0.0
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](11bd71901b...08c6903cd8)

Updates `korthout/backport-action` from 3.2.1 to 3.3.0
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](0193454f0c...ca4972adce)

Updates `fluxcd/pkg` from 1.19.0 to 1.20.0
- [Commits](9e79277372...7f090e9313)

Updates `google-github-actions/auth` from 2.1.10 to 3.0.0
- [Release notes](https://github.com/google-github-actions/auth/releases)
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md)
- [Commits](ba79af0395...7c6bc770da)

Updates `google-github-actions/setup-gcloud` from 2.1.4 to 3.0.1
- [Release notes](https://github.com/google-github-actions/setup-gcloud/releases)
- [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/main/CHANGELOG.md)
- [Commits](77e7a554d4...aa5489c893)

Updates `docker/login-action` from 3.4.0 to 3.5.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](74a5d14239...184bdaa072)

Updates `github/codeql-action` from 3.29.2 to 3.29.11
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](181d5eefc2...3c3833e0f8)

Updates `anchore/sbom-action` from 0.20.2 to 0.20.5
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Changelog](https://github.com/anchore/sbom-action/blob/main/RELEASE.md)
- [Commits](cee1b8e05a...da167eac91)

Updates `sigstore/cosign-installer` from 3.9.1 to 3.9.2
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](398d4b0eee...d58896d6a1)

Updates `goreleaser/goreleaser-action` from 6.3.0 to 6.4.0
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)
- [Commits](9c156ee8a1...e435ccd777)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 5.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: korthout/backport-action
  dependency-version: 3.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: fluxcd/pkg
  dependency-version: 1.20.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: google-github-actions/auth
  dependency-version: 3.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: google-github-actions/setup-gcloud
  dependency-version: 3.0.1
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: docker/login-action
  dependency-version: 3.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: github/codeql-action
  dependency-version: 3.29.11
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-version: 0.20.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: sigstore/cosign-installer
  dependency-version: 3.9.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: goreleaser/goreleaser-action
  dependency-version: 6.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-30 13:29:00 +00:00
Stefan Prodan
64eeda58e6 Merge pull request #5499 from fluxcd/k8s-1.34
Update to Kubernetes v1.34.0 and Go 1.25.0
2025-08-30 16:24:22 +03:00
Stefan Prodan
acdf523c54 Build with Go 1.25
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-08-30 15:35:53 +03:00
Stefan Prodan
e2abf8e358 Update flux-cli image to Alpine 3.22 and kubectl 1.34
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-08-30 15:11:43 +03:00
Stefan Prodan
d340f80d75 Update dependencies to Kubernetes v1.34.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-08-30 15:11:43 +03:00
Stefan Prodan
76d36cb429 Merge pull request #5497 from fluxcd/conform-k8s-1.34
Run conformance tests for Kubernetes 1.34.0
2025-08-29 13:10:58 +02:00
Stefan Prodan
a7fadcd344 Run conformance tests for Kubernetes 1.34.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-08-29 12:32:31 +02:00
Stefan Prodan
f19f8611f4 Merge pull request #5480 from fluxcd/rfc-0007-history
[RFC-0007] Implementation history update
2025-08-13 14:13:23 +03:00
Stefan Prodan
8cccb90f90 [RFC-0007] Implementation history update
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-08-13 13:25:41 +03:00
Stefan Prodan
1408bb8294 Merge pull request #5473 from fluxcd/cmd-migrate
Implement `flux migrate` command
2025-08-11 17:56:05 +03:00
Stefan Prodan
45837d2d1b Implement flux migrate command
The migrate command must be run before a Flux minor version upgrade.
The command migrates the Flux custom resources stored in Kubernetes etcd to their latest API version, ensuring the Flux components can continue to function correctly after the upgrade.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-08-08 13:23:00 +03:00
Matheus Pimenta
ccb9d12927 Merge pull request #5462 from cappyzawa/feat/runtime-secrets-migration
Migrate sourcesecret package to runtime/secrets APIs
2025-07-29 14:59:44 +01:00
cappyzawa
8b95a09319 Migrate sourcesecret package to runtime/secrets APIs
The sourcesecret package now uses pkg/runtime/secrets factory
functions instead of the previous monolithic approach. This
provides standardized secret generation with consistent
validation and error handling across all authentication types.

Signed-off-by: cappyzawa <cappyzawa@gmail.com>
2025-07-29 22:50:56 +09:00
Stefan Prodan
8176d88801 Merge pull request #5440 from pinkavaj/pi-labels
manifests: Add `app.kubernetes.io/part-of: flux` label to controller pods
2025-07-28 11:37:24 +03:00
Jiří Pinkava
2f850743fa Add labels to Pod templates
Ensure also pods contain the relevant labels inherited from pared
Deployment object, this makes it easier to select and filter the pods
using the labels eg. when scraping for metrics.

Signed-off-by: Jiří Pinkava <j-pi@seznam.cz>
2025-07-28 10:09:12 +02:00
Stefan Prodan
4e53b6cb8d Merge pull request #5460 from fluxcd/ci-token-update
ci: Use GITHUB_TOKEN for API calls in update workflow
2025-07-18 14:16:08 +03:00
Stefan Prodan
0bb2e3929f ci: Use GITHUB_TOKEN for API calls in update workflow
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-07-18 13:33:10 +03:00
Matheus Pimenta
82b38dfa68 Merge pull request #5455 from fluxcd/upgrade-deps
Upgrade fluxcd/pkg dependencies
2025-07-15 10:51:36 +01:00
Matheus Pimenta
b3b404ed30 Upgrade fluxcd/pkg dependencies
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-07-15 10:32:35 +01:00
Stefan Prodan
45990633e6 Merge pull request #5435 from fluxcd/dependabot/github_actions/ci-641206964f
build(deps): bump the ci group across 1 directory with 7 updates
2025-07-15 10:31:53 +03:00
dependabot[bot]
97937c55bf build(deps): bump the ci group across 1 directory with 7 updates
Bumps the ci group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [korthout/backport-action](https://github.com/korthout/backport-action) | `3.2.0` | `3.2.1` |
| [fluxcd/pkg](https://github.com/fluxcd/pkg) | `1.17.0` | `1.18.0` |
| [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) | `3.10.0` | `3.11.1` |
| [ossf/scorecard-action](https://github.com/ossf/scorecard-action) | `2.4.1` | `2.4.2` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.28.17` | `3.29.2` |
| [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.19.0` | `0.20.1` |
| [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) | `3.8.2` | `3.9.1` |



Updates `korthout/backport-action` from 3.2.0 to 3.2.1
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](436145e922...0193454f0c)

Updates `fluxcd/pkg` from 1.17.0 to 1.18.0
- [Commits](7e9c75bbb6...3d6f759b76)

Updates `docker/setup-buildx-action` from 3.10.0 to 3.11.1
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](b5ca514318...e468171a9d)

Updates `ossf/scorecard-action` from 2.4.1 to 2.4.2
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](f49aabe0b5...05b42c6244)

Updates `github/codeql-action` from 3.28.17 to 3.29.2
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](60168efe1c...181d5eefc2)

Updates `anchore/sbom-action` from 0.19.0 to 0.20.1
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Changelog](https://github.com/anchore/sbom-action/blob/main/RELEASE.md)
- [Commits](9f73021414...9246b90769)

Updates `sigstore/cosign-installer` from 3.8.2 to 3.9.1
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](3454372f43...398d4b0eee)

---
updated-dependencies:
- dependency-name: korthout/backport-action
  dependency-version: 3.2.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: fluxcd/pkg
  dependency-version: 1.18.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: docker/setup-buildx-action
  dependency-version: 3.11.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: ossf/scorecard-action
  dependency-version: 2.4.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: github/codeql-action
  dependency-version: 3.29.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-version: 0.20.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: sigstore/cosign-installer
  dependency-version: 3.9.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-15 06:30:36 +00:00
Stefan Prodan
f79c44ee0a Merge pull request #5453 from fluxcd/k8s-1.33.2
Update dependencies to Kubernetes 1.33.2
2025-07-11 19:31:37 +03:00
Stefan Prodan
16eb212609 Update dependencies to Kubernetes 1.33.2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-07-11 18:31:11 +03:00
Stefan Prodan
5da5186b3b Merge pull request #5451 from dgunzy/bump-kustomize-1.18.1
Fix `flux diff kustomization` ignore patterns
2025-07-11 18:05:29 +03:00
Daniel Guns
158618e632 Bump pkg/kustomize 1.18.1
Fixes #4921

Signed-off-by: Daniel Guns <danbguns@gmail.com>
2025-07-11 11:53:42 -03:00
Matheus Pimenta
81bd619abd Merge pull request #5452 from fluxcd/rfc-0010-kubeconfig
[RFC-0010] Add workload identity support for remote generic clusters
2025-07-11 11:42:10 +01:00
Matheus Pimenta
d2aa9fb996 [RFC-0010] Add workload identity support for remote generic clusters
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-07-11 11:40:45 +01:00
Stefan Prodan
315dad8682 Merge pull request #5449 from fluxcd/fix-push-insecure
Fix `flux push artifact` for insecure registries
2025-07-10 13:07:11 +03:00
Stefan Prodan
600ec37524 Fix flux push artifact for insecure registries
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-07-10 12:38:53 +03:00
Matheus Pimenta
1af7e08f07 Merge pull request #5443 from fluxcd/update-components
Update toolkit components
2025-07-08 10:23:45 +01:00
fluxcdbot
61a19cac84 Update toolkit components
- kustomize-controller to v1.6.1
  https://github.com/fluxcd/kustomize-controller/blob/v1.6.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-07-08 09:07:31 +00:00
Matheus Pimenta
fa8ef5b9d1 Merge pull request #5434 from fluxcd/rfc-0010-kubeconfig
[RFC-0010] Add workload identity support for remote clusters
2025-07-07 16:14:35 +01:00
Matheus Pimenta
eb5904fb9d [RFC-0010] Add workload identity support for remote clusters
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-06-30 17:02:53 +01:00
Matheus Pimenta
fda72a014c Merge pull request #5431 from dgunzy/bump-ssa-v0.49.0
Bump pkg/ssa to v0.49.0 for CABundle validation fix
2025-06-29 16:48:37 +01:00
Daniel Guns
f4d6934a6f Bump pkg/ssa to v0.49.0 for CABundle validation fix
Includes fix for #800: Remove CABundle from CRDs if cert is invalid

Signed-off-by: Daniel Guns <danbguns@gmail.com>
2025-06-29 12:38:45 -03:00
Stefan Prodan
545b338004 Merge pull request #5426 from fluxcd/update-components
Update toolkit components
2025-06-27 13:39:38 +03:00
Matheus Pimenta
a8425f50bd Fix: Prioritize sha2-512 and sha2-256 for ssh-rsa host keys
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-06-27 11:26:31 +01:00
fluxcdbot
24bf751d4d Update toolkit components
- source-controller to v1.6.2
  https://github.com/fluxcd/source-controller/blob/v1.6.2/CHANGELOG.md
- image-automation-controller to v0.41.2
  https://github.com/fluxcd/image-automation-controller/blob/v0.41.2/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-06-27 10:21:22 +00:00
Matheus Pimenta
cf157ad8a3 Merge pull request #5421 from dgunzy/promote-image-commands-stable
Promote image CLI commands to stable
2025-06-26 10:08:21 +01:00
Daniel Guns
5a4bc9410b Promote image CLI commands to stable
Remove experimental status from flux image commands in preparation
for GA release of image automation APIs.

Partial fix for #5411

Signed-off-by: Daniel Guns <danbguns@gmail.com>
2025-06-25 20:52:11 -03:00
Matheus Pimenta
de594183bd Merge pull request #5418 from cappyzawa/cleanup-auth-error-handling
refactor: cleanup GetArtifactRegistryCredentials error handling
2025-06-21 08:47:13 +01:00
cappyzawa
4c343893c5 refactor: cleanup GetArtifactRegistryCredentials error handling
Update fluxcd/pkg/auth to v0.18.0 and simplify error handling for
GetArtifactRegistryCredentials() following the improvements made in
the library.

Similar to fluxcd/image-reflector-controller#786, this removes
unnecessary nil checks as the function now returns errors directly
for unsupported providers.

- Replace authentication code in push_artifact.go with loginWithProvider()
- Remove unnecessary authenticator nil check in oci.go
- Remove unused imports (errors, auth packages)

Signed-off-by: cappyzawa <cappyzawa@gmail.com>
2025-06-21 14:11:18 +09:00
Matheus Pimenta
8ae0aaa46c Merge pull request #5409 from fluxcd/update-components
Update toolkit components
2025-06-13 18:13:38 +01:00
fluxcdbot
6b3a1134bd Update toolkit components
- source-controller to v1.6.1
  https://github.com/fluxcd/source-controller/blob/v1.6.1/CHANGELOG.md
- image-reflector-controller to v0.35.2
  https://github.com/fluxcd/image-reflector-controller/blob/v0.35.2/CHANGELOG.md
- image-automation-controller to v0.41.1
  https://github.com/fluxcd/image-automation-controller/blob/v0.41.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-06-13 16:59:37 +00:00
Stefan Prodan
40a9b495b2 Merge pull request #5402 from reiSh6phoo9o/feat/configurable_serviceaccountname
Make service-account name configurable in `flux create tenant`
2025-06-13 15:30:11 +03:00
Stefan Bickel
1d34e5355b Make golden tests pass
Signed-off-by: Stefan Bickel <stefan.bickel@cornelsen.de>
2025-06-13 13:25:26 +02:00
Stefan Bickel
00d0e1af25 Add tests and golden files for create tenant
Signed-off-by: Stefan Bickel <stefan.bickel@cornelsen.de>
2025-06-13 13:25:26 +02:00
Stefan Bickel
9f29702f54 Add cli arg --with-service-account
Signed-off-by: Stefan Bickel <stefan.bickel@cornelsen.de>
2025-06-13 13:25:26 +02:00
Stefan Prodan
7626cd0c86 Merge pull request #5407 from cappyzawa/refactor-deprecated-ssa-func
refactor: Use `normalize.UnstructuredList` instead of `ssa.SetNativeKindsDefaults`
2025-06-13 14:07:43 +03:00
cappyzawa
5291902fd7 Use normalize.UnstructuredList instead of ssa.SetNativeKindsDefaults
Signed-off-by: cappyzawa <cappyzawa@gmail.com>
2025-06-13 15:15:47 +09:00
Matheus Pimenta
1757d964c0 Merge pull request #5404 from fluxcd/fix-host-keys
Fix `knownhosts key mismatch` regression bug
2025-06-12 18:54:43 +01:00
Matheus Pimenta
999f61c02e Upgrade dependencies
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-06-12 18:12:50 +01:00
Matheus Pimenta
5eb43e4566 Merge pull request #5390 from fluxcd/azure-cli-auth
fix: Allow Azure CLI calls in `flux push artifact --provider azure` on DevOps runners
2025-06-09 15:59:31 +01:00
Matheus Pimenta
ec3804cc6f Introduce support for shelling out to Azure binaries in authentication
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-06-09 14:07:51 +01:00
Matheus Pimenta
4c3aed9faf Merge pull request #5389 from ba-work/add-sparse-checkout
Add sparse checkout to cli
2025-06-04 18:10:30 +01:00
Brock Alberry
06e3047a2f add sparse checkout to cli
Signed-off-by: Brock Alberry <brock.alberry@cse-cst.gc.ca>
2025-06-04 12:04:41 -04:00
Matheus Pimenta
99e6791f4b Merge pull request #5347 from fluxcd/remove-manifests
Remove credentials sync manifests
2025-06-04 15:57:59 +01:00
Matheus Pimenta
9cad95dda5 Remove credentials sync manifests
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-06-04 15:35:47 +01:00
Matheus Pimenta
76c584e751 Merge pull request #5388 from JIbald/typo
correct small typo
2025-06-04 11:43:07 +01:00
Johannes Ibald
cd4244ae65 correct small typo
Signed-off-by: Johannes Ibald <johannes.ibald@etes.de>
2025-06-04 11:21:11 +02:00
Stefan Prodan
1d6137d39d Merge pull request #5383 from fluxcd/test-image-automation-digest
Add digest pinning to image automation testing
2025-06-01 22:11:27 +03:00
Stefan Prodan
be8acc0cfb Add digest pinning to image automation testing
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-06-01 21:36:13 +03:00
Stefan Prodan
2f5f40d593 Merge pull request #5381 from fluxcd/update-components
Update image-reflector-controller to v0.35.1
2025-06-01 21:19:12 +03:00
fluxcdbot
4172a8a7f9 Update toolkit components
- image-reflector-controller to v0.35.1
  https://github.com/fluxcd/image-reflector-controller/blob/v0.35.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-06-01 18:05:34 +00:00
Stefan Prodan
4addf8a528 Merge pull request #5379 from fluxcd/backport-2.6-label
Add backport label for `v2.6.x`
2025-06-01 19:59:14 +03:00
Stefan Prodan
1df7697811 Add backport label for v2.6/x
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-06-01 15:36:59 +03:00
Matheus Pimenta
4c66d37545 Merge pull request #5370 from fluxcd/update-components
Update toolkit components
2025-05-28 15:02:14 +01:00
fluxcdbot
481c3c6e1e Update toolkit components
- helm-controller to v1.3.0
  https://github.com/fluxcd/helm-controller/blob/v1.3.0/CHANGELOG.md
- kustomize-controller to v1.6.0
  https://github.com/fluxcd/kustomize-controller/blob/v1.6.0/CHANGELOG.md
- image-automation-controller to v0.41.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.41.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-05-28 13:47:47 +00:00
Stefan Prodan
1d1d96b489 Merge pull request #5373 from fluxcd/dependabot-up
Update dependabot config
2025-05-28 16:31:16 +03:00
Stefan Prodan
0b972771fd Update dependabot config
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-05-28 15:52:42 +03:00
Stefan Prodan
650732109e Merge pull request #5371 from fluxcd/oci-ga
Update CLI to OCIRepository v1 (GA)
2025-05-28 15:32:54 +03:00
Stefan Prodan
79fed691ca Update CLI to OCIRepository v1 (GA)
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-05-28 15:12:17 +03:00
Matheus Pimenta
b37ba736fa Merge pull request #5345 from fluxcd/store-digests
Add --interval and --reflect-digest flags to flux create image policy
2025-05-28 08:47:26 +01:00
Matheus Pimenta
65766ff4fc Add --interval and --reflect-digest flags to flux create image policy
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-05-28 08:25:10 +01:00
Matheus Pimenta
19d9b87c62 Merge pull request #5369 from fluxcd/oci-commands
Promote artifact commands to stable
2025-05-27 17:32:25 +01:00
Matheus Pimenta
d82ec5a211 Promote artifact commands to stable
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-05-27 16:53:47 +01:00
Matheus Pimenta
5e5ffdbcc3 Merge pull request #5368 from fluxcd/update-components
Update toolkit components
2025-05-27 16:11:13 +01:00
Matheus Pimenta
13ec11da58 Fix image-reflector-controller tests after output change
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-05-27 15:57:45 +01:00
fluxcdbot
2948d5e70f Update toolkit components
- source-controller to v1.6.0
  https://github.com/fluxcd/source-controller/blob/v1.6.0/CHANGELOG.md
- notification-controller to v1.6.0
  https://github.com/fluxcd/notification-controller/blob/v1.6.0/CHANGELOG.md
- image-reflector-controller to v0.35.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.35.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-05-27 14:49:04 +00:00
Matheus Pimenta
bb9a119456 Merge pull request #5366 from fluxcd/upgrade-deps
Update dependencies
2025-05-25 14:49:37 +01:00
Matheus Pimenta
22ac16f3a1 Update dependencies
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-05-25 14:30:10 +01:00
Stefan Prodan
79a654d605 Merge pull request #5364 from fluxcd/conform-4.18.0-okd
Set Kubernetes 1.31 as min supported version
2025-05-23 14:32:45 +02:00
Stefan Prodan
a421ce4266 Set Kubernetes 1.31 as min supported version
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-05-23 15:15:13 +03:00
Stefan Prodan
4b42c9e746 Update conformance tests to supported versions
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-05-23 14:16:29 +03:00
Stefan Prodan
5ffca1b157 Merge pull request #5357 from fluxcd/upgrade-deps
Upgrade fluxcd/pkg packages
2025-05-23 08:46:12 +02:00
Matheus Pimenta
0951061b5e Upgrade fluxcd/pkg packages
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-05-19 14:08:33 +01:00
leigh capili
ad9d63ac52 Merge pull request #5356 from fluxcd/upgrade-deps
Upgrade fluxcd/pkg packages
2025-05-16 20:39:34 -04:00
Matheus Pimenta
dccc658273 Upgrade fluxcd/pkg packages
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-05-16 14:07:09 +01:00
Matheus Pimenta
ef5389cd56 Merge pull request #5355 from fluxcd/rfc-0010-feature-gate
[RFC-0010] Update RFC feature gate behavior
2025-05-15 17:42:26 +01:00
Matheus Pimenta
3f63b3e864 [RFC-0010] Update RFC feature gate behavior
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-05-15 17:38:33 +01:00
Matheus Pimenta
656d9d892d Merge pull request #5354 from fluxcd/rfc-0010-feature-gate
[RFC-0010] Update RFC to include opt-in feature gate
2025-05-15 17:14:59 +01:00
Matheus Pimenta
e979df122a [RFC-0010] Update RFC to include opt-in feature gate
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-05-15 17:02:55 +01:00
Stefan Prodan
8804b856ea Merge pull request #5351 from fluxcd/fix-ci
Fix e2e workflow
2025-05-15 18:48:40 +03:00
Max Jonas Werner
3ba170e4d4 Fix e2e workflow
The `--short` flag has been removed from kubectl with 1.28.0
(49945dbfab/CHANGELOG/CHANGELOG-1.28.md (deprecation)).

Signed-off-by: Max Jonas Werner <max@coppersoft.com>
2025-05-14 18:28:08 +02:00
Max Jonas Werner
6150fe9942 Merge pull request #5349 from fluxcd/trace-hr-oci
Fix `flux trace` for HRs from `OCIRepository`s
2025-05-14 18:12:54 +02:00
Max Jonas Werner
3e80c5809e Fix flux trace for HRs from OCIRepositorys
Before:
```
$ flux -n default trace pod default-podinfo-585856f49c-4jl4m
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x2 addr=0x40 pc=0x10618da70]

goroutine 1 [running]:
main.traceHelm({0x106dd7b28, 0x14000201490}, {0x12f34c0d8, 0x14000783100}, {{0x1400071e130?, 0x1061e7795?}, {0x1400071e109?, 0x1000d9c84?}}, 0x140006a6030)
	/home/runner/work/flux2/flux2/cmd/flux/trace.go:404 +0x2f0
main.traceObject({0x106dd7b28, 0x14000201490}, {0x12f34c0d8, 0x14000783100}, 0x140006a6030)
	/home/runner/work/flux2/flux2/cmd/flux/trace.go:134 +0x11c
main.traceObjects({0x106dd7b28, 0x14000201490}, {0x12f34c0d8, 0x14000783100}, {0x140006a6040, 0x1, 0x0?})
	/home/runner/work/flux2/flux2/cmd/flux/trace.go:112 +0x74
main.traceCmdRun(0x14000592800?, {0x140003aea80, 0x2, 0x4})
	/home/runner/work/flux2/flux2/cmd/flux/trace.go:107 +0x180
github.com/spf13/cobra.(*Command).execute(0x108341980, {0x140003aea40, 0x4, 0x4})
	/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:985 +0x834
github.com/spf13/cobra.(*Command).ExecuteC(0x108329280)
	/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:1117 +0x344
github.com/spf13/cobra.(*Command).Execute(...)
	/home/runner/go/pkg/mod/github.com/spf13/cobra@v1.8.1/command.go:1041
main.main()
	/home/runner/work/flux2/flux2/cmd/flux/main.go:189 +0x78
```

After:

```
 $ ~/dev/flux/flux2/bin/flux -n default trace pod default-podinfo-585856f49c-4jl4m

Object:         Pod/default-podinfo-585856f49c-4jl4m
Namespace:      default
Status:         Managed by Flux
---
HelmRelease:    podinfo
Namespace:      flux-system
Target:         default
Revision:       6.8.0+2360bdf32ddc
Status:         Last reconciled at 2025-05-14 16:10:37 +0200 CEST
Message:        Helm install succeeded for release default/default-podinfo.v1 with chart podinfo@6.8.0+2360bdf32ddc
---
OCIRepository:   podinfo
Namespace:       flux-system
URL:             oci://ghcr.io/stefanprodan/charts/podinfo
Tag:             6.8.0
Revision:        6.8.0@sha256:2360bdf32ddc50c05f8e128118173343b0a012a338daf145b16e0da9c80081a4
Status:          Last reconciled at 2025-05-14 16:09:17 +0200 CEST
Message:         stored artifact for digest '6.8.0@sha256:2360bdf32ddc50c05f8e128118173343b0a012a338daf145b16e0da9c80081a4'
```

Signed-off-by: Max Jonas Werner <max@coppersoft.com>
2025-05-14 18:02:18 +02:00
Stefan Prodan
8928ac7d39 Merge pull request #5325 from fluxcd/dependabot/github_actions/ci-2efaba0903
build(deps): bump the ci group across 1 directory with 18 updates
2025-05-12 09:38:50 +03:00
dependabot[bot]
289645f142 build(deps): bump the ci group across 1 directory with 18 updates
Bumps the ci group with 18 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [korthout/backport-action](https://github.com/korthout/backport-action) | `3.1.0` | `3.2.0` |
| [actions/setup-go](https://github.com/actions/setup-go) | `5.3.0` | `5.4.0` |
| [fluxcd/pkg](https://github.com/fluxcd/pkg) | `1.2.0` | `1.3.0` |
| [replicatedhq/replicated-actions](https://github.com/replicatedhq/replicated-actions) | `1.17.0` | `1.19.0` |
| [Azure/login](https://github.com/azure/login) | `2.2.0` | `2.3.0` |
| [google-github-actions/auth](https://github.com/google-github-actions/auth) | `2.1.8` | `2.1.10` |
| [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) | `3.4.0` | `3.6.0` |
| [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) | `3.9.0` | `3.10.0` |
| [docker/login-action](https://github.com/docker/login-action) | `3.3.0` | `3.4.0` |
| [ossf/scorecard-action](https://github.com/ossf/scorecard-action) | `2.4.0` | `2.4.1` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.6.0` | `4.6.2` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.28.9` | `3.28.16` |
| [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.18.0` | `0.19.0` |
| [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) | `3.8.0` | `3.8.2` |
| [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) | `6.1.0` | `6.3.0` |
| [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) | `2.0.0` | `2.1.0` |
| [fossa-contrib/fossa-action](https://github.com/fossa-contrib/fossa-action) | `3.0.0` | `3.0.1` |
| [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) | `7.0.6` | `7.0.8` |



Updates `korthout/backport-action` from 3.1.0 to 3.2.0
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](be567af183...436145e922)

Updates `actions/setup-go` from 5.3.0 to 5.4.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](f111f3307d...0aaccfd150)

Updates `fluxcd/pkg` from 1.2.0 to 1.3.0
- [Commits](c964ce7b91...7e9c75bbb6)

Updates `replicatedhq/replicated-actions` from 1.17.0 to 1.19.0
- [Release notes](https://github.com/replicatedhq/replicated-actions/releases)
- [Commits](c98ab3b979...49b440dabd)

Updates `Azure/login` from 2.2.0 to 2.3.0
- [Release notes](https://github.com/azure/login/releases)
- [Commits](a65d910e8a...a457da9ea1)

Updates `google-github-actions/auth` from 2.1.8 to 2.1.10
- [Release notes](https://github.com/google-github-actions/auth/releases)
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md)
- [Commits](71f986410d...ba79af0395)

Updates `docker/setup-qemu-action` from 3.4.0 to 3.6.0
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](4574d27a47...29109295f8)

Updates `docker/setup-buildx-action` from 3.9.0 to 3.10.0
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](f7ce87c1d6...b5ca514318)

Updates `docker/login-action` from 3.3.0 to 3.4.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](9780b0c442...74a5d14239)

Updates `ossf/scorecard-action` from 2.4.0 to 2.4.1
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](62b2cac7ed...f49aabe0b5)

Updates `actions/upload-artifact` from 4.6.0 to 4.6.2
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](65c4c4a1dd...ea165f8d65)

Updates `github/codeql-action` from 3.28.9 to 3.28.16
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](9e8d0789d4...28deaeda66)

Updates `anchore/sbom-action` from 0.18.0 to 0.19.0
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Changelog](https://github.com/anchore/sbom-action/blob/main/RELEASE.md)
- [Commits](f325610c9f...9f73021414)

Updates `sigstore/cosign-installer` from 3.8.0 to 3.8.2
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](c56c2d3e59...3454372f43)

Updates `goreleaser/goreleaser-action` from 6.1.0 to 6.3.0
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)
- [Commits](9ed2f89a66...9c156ee8a1)

Updates `slsa-framework/slsa-github-generator` from 2.0.0 to 2.1.0
- [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases)
- [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v2.0.0...v2.1.0)

Updates `fossa-contrib/fossa-action` from 3.0.0 to 3.0.1
- [Release notes](https://github.com/fossa-contrib/fossa-action/releases)
- [Changelog](https://github.com/fossa-contrib/fossa-action/blob/master/CHANGELOG.md)
- [Commits](cdc5065bcd...3d2ef181b1)

Updates `peter-evans/create-pull-request` from 7.0.6 to 7.0.8
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](67ccf781d6...271a8d0340)

---
updated-dependencies:
- dependency-name: korthout/backport-action
  dependency-version: 3.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: actions/setup-go
  dependency-version: 5.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: fluxcd/pkg
  dependency-version: 1.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: replicatedhq/replicated-actions
  dependency-version: 1.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: Azure/login
  dependency-version: 2.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: google-github-actions/auth
  dependency-version: 2.1.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: docker/setup-qemu-action
  dependency-version: 3.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: docker/setup-buildx-action
  dependency-version: 3.10.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: docker/login-action
  dependency-version: 3.4.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: ossf/scorecard-action
  dependency-version: 2.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: actions/upload-artifact
  dependency-version: 4.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: github/codeql-action
  dependency-version: 3.28.16
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-version: 0.19.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: sigstore/cosign-installer
  dependency-version: 3.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: goreleaser/goreleaser-action
  dependency-version: 6.3.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: slsa-framework/slsa-github-generator
  dependency-version: 2.1.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: fossa-contrib/fossa-action
  dependency-version: 3.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: peter-evans/create-pull-request
  dependency-version: 7.0.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-12 00:46:46 +00:00
Stefan Prodan
8d9cbe7693 Merge pull request #5338 from dgunzy/fix/get-command-error-formatting
Fix exit code handling in get command
2025-05-08 08:37:02 +03:00
Daniel Guns
392a33d425 Change error reporting in get.go from logger.Failure to fmt.Errorf to give non 0 exit code
Signed-off-by: Daniel Guns <danbguns@gmail.com>
2025-05-07 19:11:16 -03:00
Matheus Pimenta
6af448e037 Merge pull request #5333 from fluxcd/upgrade-deps
Upgrade fluxcd/pkg auth, oci, git and git/gogit
2025-05-07 18:01:48 +01:00
Matheus Pimenta
ac66adc24c Upgrade fluxcd/pkg auth, oci, git and git/gogit
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-05-07 17:49:36 +01:00
Stefan Prodan
0a64800784 Merge pull request #5332 from fluxcd/rfc-0010
[RFC-0010] Add RBAC for creating service account tokens
2025-05-03 08:59:24 +03:00
Matheus Pimenta
941af6a648 [RFC-0010] Add RBAC for creating service account tokens
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-05-03 02:07:03 +01:00
Matheus Pimenta
a6b5013649 Merge pull request #5309 from fluxcd/update-rfc-0010
[RFC-0010] Remove EKS Pod Identity from the proposal
2025-04-29 17:29:13 +01:00
Matheus Pimenta
c18ab38877 [RFC-0010] Remove EKS Pod Identity from the proposal
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-04-29 17:24:50 +01:00
Stefan Prodan
8738712cfa Merge pull request #5323 from fluxcd/k8s-1.33
Update to Kubernetes 1.33.0 and Go 1.24.0
2025-04-28 16:07:25 +03:00
Stefan Prodan
8816c5f7de Update to Kubernetes 1.33.0 and Go 1.24.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-04-28 15:02:33 +03:00
Stefan Prodan
e9e15c5f7a Merge pull request #5318 from fluxcd/conform-k8s-1.33.0
Run conformance tests for Kubernetes 1.33.0
2025-04-24 12:29:57 +03:00
Stefan Prodan
5b582917ec Run conformance tests for Kubernetes 1.33.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-04-23 22:35:48 +03:00
Stefan Prodan
d9b66f6959 Merge pull request #5219 from niveau0/allow-recursive-dry-run
fix: allow recursive dry-run over local sources
2025-04-16 11:30:10 +03:00
niveau0
1b98e16940 fix: allow recursive dry-run over local sources
Signed-off-by: niveau0 <plingplong@t-online.de>
2025-04-16 09:27:26 +02:00
Stefan Prodan
0c73420ccf Merge pull request #5302 from maboehm/fix-multiple-kustomizations
flux diff: Reset target struct before decoding
2025-04-15 15:03:04 +03:00
Marcel Boehm
8cb7188919 Reset target struct before decoding
Signed-off-by: Marcel Boehm <marcel.boehm@inovex.de>
2025-04-15 11:39:33 +02:00
Marcel Boehm
72a2866508 Add test for reading multiple Kustomizations in a single file
Signed-off-by: Marcel Boehm <marcel.boehm@inovex.de>
2025-04-15 11:39:33 +02:00
Matheus Pimenta
912718103c Merge pull request #5209 from fluxcd/rfc-multi-tenant-workload-identity
[RFC-0010] Multi-Tenant Workload Identity
2025-04-14 11:44:54 +01:00
Matheus Pimenta
a7e41df1e3 [RFC-0010] Multi-Tenant Workload Identity
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-04-14 11:33:49 +01:00
Stefan Prodan
c436708a13 Allow to pull/push artifacts to insecure registries without TLS
Allow to pull/push artifacts to insecure registries without TLS
2025-04-12 01:37:12 +03:00
Matthieu Mottet
3f4743037b Allow to pull/push artifacts without TLS
If applied, this commit will introduce a new `--insecure-repository`
flag to the following commands: `push artifacts`, `pull artifact`,
`diff artifact` and `list artifacts`. When used the flag will lead to
the option `crane.Insecure` being passed to the `crane` client allowing
the use of insecure repositories.

Signed-off-by: Matthieu Mottet <m.mottet@outlook.com>
2025-04-11 20:12:55 +02:00
Stefan Prodan
7b551b0d35 Merge pull request #5295 from fluxcd/dependabot/go_modules/helm.sh/helm/v3-3.17.3
build(deps): bump helm.sh/helm/v3 from 3.17.0 to 3.17.3
2025-04-10 18:15:06 +03:00
dependabot[bot]
bb8a10bab8 build(deps): bump helm.sh/helm/v3 from 3.17.0 to 3.17.3
Bumps [helm.sh/helm/v3](https://github.com/helm/helm) from 3.17.0 to 3.17.3.
- [Release notes](https://github.com/helm/helm/releases)
- [Commits](https://github.com/helm/helm/compare/v3.17.0...v3.17.3)

---
updated-dependencies:
- dependency-name: helm.sh/helm/v3
  dependency-version: 3.17.3
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-10 13:51:34 +00:00
Matheus Pimenta
09af0becc5 Merge pull request #5287 from piontec/ignore-scorecard-for-backports
add: OSSF scorecard configuration file - ignore false-positive
2025-04-04 11:06:29 +01:00
Matheus Pimenta
d84bff7d1b Merge branch 'main' into ignore-scorecard-for-backports 2025-04-04 10:53:35 +01:00
Stefan Prodan
a4c513487e Merge pull request #5282 from piontec/use-gh-token
change: use the default ephemeral GITHUB_TOKEN instead of the static one
2025-04-04 10:45:57 +01:00
piontec
2046003714 Merge branch 'main' into use-gh-token 2025-04-04 10:35:38 +02:00
piontec
f07ee355ea Merge branch 'main' into ignore-scorecard-for-backports 2025-04-03 17:14:13 +02:00
Łukasz Piątkowski
5e02724e49 add: OSSF scorecard configuration file - ignore false-positive
Signed-off-by: Łukasz Piątkowski <piontec@gmail.com>
2025-04-03 17:11:26 +02:00
Matheus Pimenta
e5926bcaad Merge pull request #5284 from y-eight/main
ci: switch to goreleaser changelog generation
2025-04-03 16:08:28 +01:00
maximilian.schubert@telekom.de
355f2bc5f3 ci: sw to goreleaser changlog gen; rm dep
Signed-off-by: Maximilian Schubert <maximilian.schubert@telekom.de>
2025-04-03 13:15:03 +02:00
Łukasz Piątkowski
7e8e0ab772 change: use the default ephemeral GITHUB_TOKEN instead of the static GHCR_TOKEN
Signed-off-by: Łukasz Piątkowski <piontec@gmail.com>
2025-04-03 12:56:01 +02:00
Matheus Pimenta
f0fecf7399 Merge pull request #5038 from laiminhtrung1997/remove-redundant-space
Remove redundant space.
2025-03-24 09:11:31 +00:00
laiminhtrung1997
54db4ffc8b Remove redundant space.
Signed-off-by: laiminhtrung1997 <68812829+laiminhtrung1997@users.noreply.github.com>
2025-03-24 15:07:48 +07:00
Matheus Pimenta
73fff7404f Merge pull request #5227 from fluxcd/fix-debug-hr
Fix command debug hr not taking targetPath into account
2025-03-03 11:28:14 +00:00
Matheus Pimenta
24057743bb Fix command debug hr not taking targetPath into account
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-03-03 10:56:16 +00:00
Matheus Pimenta
04d87be082 Merge pull request #5215 from fluxcd/update-labels
Update backport labels for 2.5
2025-02-25 15:36:05 +00:00
Matheus Pimenta
e7c6ebccc3 Update backport labels for 2.5
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-02-25 15:32:26 +00:00
Matheus Pimenta
48382f885b Merge pull request #5214 from fluxcd/update-components
Update kustomize-controller to v1.5.1
2025-02-25 15:31:53 +00:00
fluxcdbot
511d8346f2 Update toolkit components
- kustomize-controller to v1.5.1
  https://github.com/fluxcd/kustomize-controller/blob/v1.5.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-02-25 15:05:00 +00:00
Matheus Pimenta
f0e8e84ee0 Merge pull request #5141 from fluxcd/rfc-0008-implemented
Update RFC 0008 and RFC 0009 milestones
2025-02-22 22:38:10 +00:00
Matheus Pimenta
c277fbf14e Update RFC 0008 and RFC 0009 milestones
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-02-22 17:24:41 +00:00
Matheus Pimenta
28570296a9 Merge pull request #5202 from NotAwar/patch-1
fix: correct name on github app secret
2025-02-20 15:03:45 +00:00
Awar Abdulkarim
39ec0cb594 fix: correct name on github app secret
Signed-off-by: Awar Abdulkarim <48431495+NotAwar@users.noreply.github.com>
2025-02-20 14:40:33 +00:00
Stefan Prodan
af67405ee4 Merge pull request #5204 from fluxcd/kubectl-1.32.2
Update kubectl in flux-cli image
2025-02-20 16:18:51 +02:00
Stefan Prodan
6f65c92fe7 Update kubectl in flux-cli image
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-02-20 16:17:54 +02:00
Stefan Prodan
c84d312289 Merge pull request #5203 from fluxcd/fix-cli-build
Update flux-cli image
2025-02-20 16:03:46 +02:00
Stefan Prodan
d37473ff44 Update flux-cli image
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-02-20 16:00:20 +02:00
Stefan Prodan
712b03727a Merge pull request #5200 from fluxcd/update-k8s-check
Update Kubernetes min supported version to 1.30
2025-02-20 15:05:28 +02:00
Stefan Prodan
14da7d58be Update Kubernetes min supported version to 1.30
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-02-20 14:54:41 +02:00
Matheus Pimenta
45da6a86f8 Merge pull request #5199 from fluxcd/tests-2.5
Update integration tests dependencies for Flux 2.5
2025-02-19 10:26:48 +00:00
Matheus Pimenta
3053a0b840 Update integration tests dependencies for Flux 2.5
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-02-19 10:08:07 +00:00
Stefan Prodan
96f95b6b4c Merge pull request #5195 from fluxcd/update-components
Update toolkit components
2025-02-19 11:55:12 +02:00
fluxcdbot
cf92e02f53 Update toolkit components
- helm-controller to v1.2.0
  https://github.com/fluxcd/helm-controller/blob/v1.2.0/CHANGELOG.md
- kustomize-controller to v1.5.0
  https://github.com/fluxcd/kustomize-controller/blob/v1.5.0/CHANGELOG.md
- image-automation-controller to v0.40.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.40.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-02-19 09:01:39 +00:00
Matheus Pimenta
ce50286a92 Merge pull request #5103 from dipti-pai/github-app-auth
[RFC-007] Flux cli support for GitHub app authentication
2025-02-13 22:26:32 +00:00
Dipti Pai
c15eb30b0d [RFC-007] Flux cmd support for GitHub provider: This commit includes the following changes -
- Add flux create secret githubapp command that accepts and validates the inputs to create a github app secret with options to export the secret yaml or create the secret directly in the Kubernetes cluster

- Add tests for flux create secret githubapp command

- Add flux create source git command that accepts and validates the inputs to create a gitrepository source with for github provider with options to export the source yaml or create the github gitrepository source directly in the Kubernetes cluster.

- Add tests for flux create source git command for github provider.

Signed-off-by: Dipti Pai <diptipai89@outlook.com>
2025-02-13 11:36:24 -08:00
Stefan Prodan
8bedcc46d4 Merge pull request #5192 from fluxcd/update-components
Update toolkit components
2025-02-13 18:16:32 +02:00
fluxcdbot
5d64a9fc76 Update toolkit components
- source-controller to v1.5.0
  https://github.com/fluxcd/source-controller/blob/v1.5.0/CHANGELOG.md
- notification-controller to v1.5.0
  https://github.com/fluxcd/notification-controller/blob/v1.5.0/CHANGELOG.md
- image-reflector-controller to v0.34.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.34.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2025-02-13 16:01:56 +00:00
Stefan Prodan
035afd9533 Merge pull request #5190 from fluxcd/dependabot/go_modules/github.com/distribution/distribution/v3-3.0.0-rc.3
build(deps): bump github.com/distribution/distribution/v3 from 3.0.0-rc.2 to 3.0.0-rc.3
2025-02-11 23:06:20 +02:00
dependabot[bot]
c859688b37 build(deps): bump github.com/distribution/distribution/v3
Bumps [github.com/distribution/distribution/v3](https://github.com/distribution/distribution) from 3.0.0-rc.2 to 3.0.0-rc.3.
- [Release notes](https://github.com/distribution/distribution/releases)
- [Commits](https://github.com/distribution/distribution/compare/v3.0.0-rc.2...v3.0.0-rc.3)

---
updated-dependencies:
- dependency-name: github.com/distribution/distribution/v3
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-11 17:59:05 +00:00
Matheus Pimenta
13b1d199ee Merge pull request #5188 from fluxcd/upgrade-deps
Upgrade pkg/runtime
2025-02-11 12:15:13 +00:00
Matheus Pimenta
5f9108c53f Upgrade pkg/runtime
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-02-11 11:56:34 +00:00
Stefan Prodan
abf52ff866 Merge pull request #5187 from fluxcd/conform-flux-2.5
Update conformance test suite
2025-02-11 12:18:34 +02:00
Stefan Prodan
b319ee1ddf Update conformance test suite
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-02-11 11:50:49 +02:00
Stefan Prodan
b564d2fb3b Merge pull request #5181 from fluxcd/dependabot/github_actions/ci-bbc5a3e0d5
build(deps): bump the ci group across 1 directory with 13 updates
2025-02-09 11:57:11 +02:00
dependabot[bot]
d9e25d86aa build(deps): bump the ci group across 1 directory with 13 updates
Bumps the ci group with 13 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/setup-go](https://github.com/actions/setup-go) | `5.1.0` | `5.3.0` |
| [helm/kind-action](https://github.com/helm/kind-action) | `1.10.0` | `1.12.0` |
| [fluxcd/pkg](https://github.com/fluxcd/pkg) | `1.0.0` | `1.2.0` |
| [replicatedhq/replicated-actions](https://github.com/replicatedhq/replicated-actions) | `1.16.2` | `1.17.0` |
| [google-github-actions/auth](https://github.com/google-github-actions/auth) | `2.1.7` | `2.1.8` |
| [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) | `2.1.2` | `2.1.4` |
| [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) | `3.2.0` | `3.4.0` |
| [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) | `3.7.1` | `3.9.0` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.4.3` | `4.6.0` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.27.6` | `3.28.9` |
| [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.17.8` | `0.18.0` |
| [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) | `3.7.0` | `3.8.0` |
| [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) | `7.0.5` | `7.0.6` |



Updates `actions/setup-go` from 5.1.0 to 5.3.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](41dfa10bad...f111f3307d)

Updates `helm/kind-action` from 1.10.0 to 1.12.0
- [Release notes](https://github.com/helm/kind-action/releases)
- [Commits](0025e74a8c...a1b0e39133)

Updates `fluxcd/pkg` from 1.0.0 to 1.2.0
- [Commits](5bf9095331...c964ce7b91)

Updates `replicatedhq/replicated-actions` from 1.16.2 to 1.17.0
- [Release notes](https://github.com/replicatedhq/replicated-actions/releases)
- [Commits](7712178595...c98ab3b979)

Updates `google-github-actions/auth` from 2.1.7 to 2.1.8
- [Release notes](https://github.com/google-github-actions/auth/releases)
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md)
- [Commits](6fc4af4b14...71f986410d)

Updates `google-github-actions/setup-gcloud` from 2.1.2 to 2.1.4
- [Release notes](https://github.com/google-github-actions/setup-gcloud/releases)
- [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/main/CHANGELOG.md)
- [Commits](6189d56e40...77e7a554d4)

Updates `docker/setup-qemu-action` from 3.2.0 to 3.4.0
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](49b3bc8e6b...4574d27a47)

Updates `docker/setup-buildx-action` from 3.7.1 to 3.9.0
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](c47758b77c...f7ce87c1d6)

Updates `actions/upload-artifact` from 4.4.3 to 4.6.0
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](b4b15b8c7c...65c4c4a1dd)

Updates `github/codeql-action` from 3.27.6 to 3.28.9
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](aa57810251...9e8d0789d4)

Updates `anchore/sbom-action` from 0.17.8 to 0.18.0
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Changelog](https://github.com/anchore/sbom-action/blob/main/RELEASE.md)
- [Commits](55dc4ee224...f325610c9f)

Updates `sigstore/cosign-installer` from 3.7.0 to 3.8.0
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](dc72c7d5c4...c56c2d3e59)

Updates `peter-evans/create-pull-request` from 7.0.5 to 7.0.6
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](5e914681df...67ccf781d6)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: helm/kind-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: fluxcd/pkg
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: replicatedhq/replicated-actions
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: google-github-actions/auth
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: google-github-actions/setup-gcloud
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-09 09:44:20 +00:00
Stefan Prodan
dcc4251a2a Merge pull request #5176 from YvanGuidoin/diff-dry-run-skipping
fix: align `flux diff` skipping with kustomize-controller
2025-02-09 11:35:49 +02:00
Yvan
960f72fe6a Align skipping of resources in flux diff to kustomize-controller
Signed-off-by: Yvan <y.guidoin@meteocontrol.com>
2025-02-06 12:43:15 +00:00
Stefan Prodan
6f815a36fe Merge pull request #5175 from fluxcd/controller-runtime-v0.20.1
Update dependencies
2025-02-06 11:46:38 +00:00
Stefan Prodan
1d08cace4f Update dependencies
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-02-06 11:22:15 +00:00
Stefan Prodan
cfd369df47 Merge pull request #5151 from fluxcd/rfc-custom-health-checks
[RFC-0009] Custom Health Checks using CEL expressions
2025-01-31 11:24:44 +02:00
Matheus Pimenta
9e6f723436 Clarify expression evaluation logic
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-01-31 09:14:33 +00:00
Stefan Prodan
e4325961af Apply suggestions from code review
Co-authored-by: Matheus Pimenta <matheuscscp@gmail.com>
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-01-22 09:27:35 +02:00
Stefan Prodan
74d748f547 Explain the evaluation logic based on conditions
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-01-17 16:49:48 +02:00
Stefan Prodan
6f6d3fb269 Add ClusterAPI example to RFC
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-01-17 12:40:20 +02:00
Stefan Prodan
e51e5df9da Add SealedSecret example to RFC
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-01-17 12:09:10 +02:00
Stefan Prodan
f604d7f342 Add Custom Health Check Library to RFC
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-01-17 11:49:07 +02:00
Stefan Prodan
3346542917 Rework the custom health check spec
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2025-01-17 11:18:12 +02:00
Soule BA
f0e7f92ef1 Add RFC - Custom Health Checks for Kustomization using Common Expression Language(CEL)
Signed-off-by: Soule BA <bah.soule@gmail.com>
2025-01-17 11:15:04 +02:00
Matheus Pimenta
e09ba7a8e6 Merge pull request #5146 from sjorsholtrop-ritense/improve-resume-error-msg
Improve "flux resume" error message on non-existent object
2025-01-14 15:05:02 +00:00
Sjors Holtrop
f29bcfb108 handle len(args) < 1 case
Signed-off-by: Sjors Holtrop <sjors.holtrop@ritense.com>
2025-01-14 14:45:49 +01:00
Sjors Holtrop
2e9e8e2690 pass args to enable more detailed error message
Signed-off-by: Sjors Holtrop <sjors.holtrop@ritense.com>
2025-01-14 14:29:40 +01:00
Sjors Holtrop
3478fe343d fix golden file
Signed-off-by: Sjors Holtrop <sjors.holtrop@ritense.com>
2025-01-14 13:53:24 +01:00
Sjors Holtrop
8b10a32088 Improve "flux resume" error message on non-existent object
Signed-off-by: Sjors Holtrop <sjors.holtrop@ritense.com>
2025-01-14 13:15:57 +01:00
Matheus Pimenta
16ae23a3a6 Merge pull request #5142 from fluxcd/fix-create-cmd
Fix create command always using imageRepositoryType
2025-01-13 11:15:57 +00:00
Matheus Pimenta
055958d533 Fix create command always using imageRepositoryType
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-01-12 14:09:24 +00:00
Stefan Prodan
0cc68e0521 Merge pull request #5137 from scottrigby/conformance-openshift-add-4.16-and-4.17
Add OpenShift 4.16 & 4.17 to conformance testing
2025-01-09 19:31:20 +02:00
Scott Rigby
fae5d62b07 Add OpenShift 4.16 & 4.17 to conformance testing
Signed-off-by: Scott Rigby <scott@r6by.com>
2025-01-08 13:53:44 -05:00
Matheus Pimenta
16f55bbf22 Merge pull request #4809 from matheuscscp/rfc-7-custom-event-metadata
[RFC-0008] Custom Event Metadata from Annotations
2025-01-07 11:08:10 +00:00
Matheus Pimenta
83c16f9c4a Add RFC 0008 - Custom Event Metadata from Annotations
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2025-01-07 10:44:20 +00:00
Stefan Prodan
b232bbe004 Merge pull request #5117 from fluxcd/debug-kc
Implement `flux debug kustomization` command
2025-01-06 12:09:49 +02:00
Stefan Prodan
5208515604 Make flux debug hr single flag selection required
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-12-23 17:44:33 +02:00
Stefan Prodan
928ea24bcb Add links to status docs in flux debug commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-12-18 00:50:02 +02:00
Stefan Prodan
9b1b5e8a51 Add name completion to debug commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-12-13 18:40:02 +02:00
Stefan Prodan
5b740c45d1 Implement flux debug kustomization command
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-12-13 12:21:41 +02:00
Stefan Prodan
19568eb94e Add missing copyright headers
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-12-13 10:54:07 +02:00
Stefan Prodan
5cf0dcc77d Add preview note to debug hr
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-12-13 10:53:39 +02:00
Stefan Prodan
b45a8b5c1f Merge pull request #5114 from fluxcd/k8s-1.32
Update dependencies to Kubernetes 1.32.0 and Go 1.23.0
2024-12-12 16:39:53 +02:00
Stefan Prodan
2b68c8c664 Update dependencies to Kubernetes 1.32.0 and Go 1.23.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-12-12 16:21:42 +02:00
Stefan Prodan
939cffa561 Merge pull request #5111 from fluxcd/conform-k8s-1.32.0
Run conformance tests for Kubernetes 1.32.0
2024-12-12 11:12:43 +02:00
Stefan Prodan
30ed414938 Run conformance tests for Kubernetes 1.32.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-12-12 01:38:32 +02:00
Stefan Prodan
d51a2f8bce Merge pull request #5106 from fluxcd/debug-cmd
Implement `flux debug helmrelease` command
2024-12-11 15:57:30 +02:00
Stefan Prodan
120ec049f9 Implement flux debug helmrelease command
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-12-11 11:41:27 +02:00
Stefan Prodan
aa9de2c6bc Merge pull request #5107 from fluxcd/workflows-tf-setup
workflows: Use setup-terraform to install latest
2024-12-10 20:37:30 +02:00
Sunny
226cb462c2 workflows: Use setup-terraform to install latest
Signed-off-by: Sunny <github@darkowlzz.space>
2024-12-10 15:06:12 +00:00
Stefan Prodan
b1bdab4e6a Merge pull request #5105 from fluxcd/kustomize-v5.5.0
Update `fluxcd/pkg` dependencies
2024-12-10 13:19:52 +02:00
Stefan Prodan
8110d2f05d Update dependencies
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-12-10 12:59:21 +02:00
Stefan Prodan
13c56f3e4e Merge pull request #5104 from fluxcd/dependabot/github_actions/ci-c2db65349b
build(deps): bump the ci group across 1 directory with 11 updates
2024-12-10 12:42:22 +02:00
dependabot[bot]
1013e98c0f build(deps): bump the ci group across 1 directory with 11 updates
Bumps the ci group with 11 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4.2.0` | `4.2.2` |
| [actions/setup-go](https://github.com/actions/setup-go) | `5.0.2` | `5.1.0` |
| [fluxcd/pkg](https://github.com/fluxcd/pkg) | `30c101fc7c9fac4d84937ff4890a3da46a9db2dd` | `5bf9095331052934ae6b4585b8632c0e5b0a2106` |
| [google-github-actions/auth](https://github.com/google-github-actions/auth) | `2.1.5` | `2.1.7` |
| [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) | `2.1.1` | `2.1.2` |
| [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) | `3.6.1` | `3.7.1` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.4.0` | `4.4.3` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.26.9` | `3.27.6` |
| [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.17.2` | `0.17.8` |
| [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) | `3.6.0` | `3.7.0` |
| [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) | `6.0.0` | `6.1.0` |



Updates `actions/checkout` from 4.2.0 to 4.2.2
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](d632683dd7...11bd71901b)

Updates `actions/setup-go` from 5.0.2 to 5.1.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](0a12ed9d6a...41dfa10bad)

Updates `fluxcd/pkg` from 30c101fc7c9fac4d84937ff4890a3da46a9db2dd to 5bf9095331052934ae6b4585b8632c0e5b0a2106
- [Commits](30c101fc7c...5bf9095331)

Updates `google-github-actions/auth` from 2.1.5 to 2.1.7
- [Release notes](https://github.com/google-github-actions/auth/releases)
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md)
- [Commits](62cf5bd3e4...6fc4af4b14)

Updates `google-github-actions/setup-gcloud` from 2.1.1 to 2.1.2
- [Release notes](https://github.com/google-github-actions/setup-gcloud/releases)
- [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/main/CHANGELOG.md)
- [Commits](f0990588f1...6189d56e40)

Updates `docker/setup-buildx-action` from 3.6.1 to 3.7.1
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](988b5a0280...c47758b77c)

Updates `actions/upload-artifact` from 4.4.0 to 4.4.3
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](50769540e7...b4b15b8c7c)

Updates `github/codeql-action` from 3.26.9 to 3.27.6
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](461ef6c76d...aa57810251)

Updates `anchore/sbom-action` from 0.17.2 to 0.17.8
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Changelog](https://github.com/anchore/sbom-action/blob/main/RELEASE.md)
- [Commits](61119d458a...55dc4ee224)

Updates `sigstore/cosign-installer` from 3.6.0 to 3.7.0
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](4959ce089c...dc72c7d5c4)

Updates `goreleaser/goreleaser-action` from 6.0.0 to 6.1.0
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)
- [Commits](286f3b13b1...9ed2f89a66)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: fluxcd/pkg
  dependency-type: direct:production
  dependency-group: ci
- dependency-name: google-github-actions/auth
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: google-github-actions/setup-gcloud
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: goreleaser/goreleaser-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-10 10:29:57 +00:00
Stefan Prodan
85405928a7 Merge pull request #5099 from bkreitch/fix-misplaced-quotes
fix misplaced quotes
2024-12-09 12:58:05 +02:00
Boris Kreitchman
570bc81278 fix misplaced quotes
Signed-off-by: Boris Kreitchman <bkreitch@gmail.com>
2024-12-09 12:21:52 +02:00
Stefan Prodan
f42a17de54 Merge pull request #5071 from milas/diff-kustomization-recursive-remote
fix: skip remote Kustomizations on recursive diff
2024-11-14 16:58:20 +02:00
Milas Bowman
7697699e65 fix: skip remote Kustomizations on recursive diff
When recursively diffing Kustomization objects on a cluster, each
Kustomization is built and then a server-side dry-run apply is
performed. This isn't practical to perform if the Kustomization
references a remote cluster via `kubeConfig.secretRef`.

Currently, because it's not skipped, it's treated as though it's
being applied to the context cluster, not the remote cluter, which
results in an incorrect diff.

Instead, write out special message / warnings indicating that it
has been skipped:
```
► Kustomization/my-ns/my-kst skipped: diff not supported for remote clusters
```

Signed-off-by: Milas Bowman <devnull@milas.dev>
2024-11-14 08:33:29 -05:00
Stefan Prodan
9f854cb7e2 Merge pull request #5073 from mloskot/patch-1
docs: Mention Flux upgrade guide in release notes
2024-11-14 11:42:28 +02:00
Mateusz Łoskot
995e1dcc32 docs: Mention Flux upgrade guide in release notes
See https://github.com/fluxcd/flux2/discussions/5072

Signed-off-by: Mateusz Łoskot <mateusz@loskot.net>
2024-11-13 14:39:41 +01:00
Max Jonas Werner
5b83111dc6 Merge pull request #5068 from h3nryc0ding/fix/cli-invalid-error-message
fix(cli): confusing error message for missing kind
2024-11-11 12:30:52 +01:00
h3nryc0ding
9abc802f15 fix: error message for missing kind
Signed-off-by: h3nryc0ding <101796272+h3nryc0ding@users.noreply.github.com>
Signed-off-by: h3nryc0ding <hr.richterhenry@gmail.com>
2024-11-10 03:33:45 +00:00
Stefan Prodan
2a5948fe42 Merge pull request #5060 from jdewinne/patch-1
Use replicated-actions in conformance tests
2024-11-06 15:40:47 +00:00
Josh De Winne
af765388d2 Update conformance.yaml
Signed-off-by: Josh De Winne <joris.dewinne@gmail.com>
2024-11-04 08:51:30 -08:00
Stefan Prodan
5350425cdc Merge pull request #5014 from fluxcd/k8s-v0.31.1
Update Kubernetes dependencies to v1.31.1
2024-09-30 12:29:31 +03:00
Stefan Prodan
6611a4fba6 Update Kubernetes dependencies to v1.31.1
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-09-30 10:29:50 +03:00
Stefan Prodan
297b15b82b Merge pull request #5005 from fluxcd/update-components
Update toolkit components
2024-09-30 10:00:07 +03:00
fluxcdbot
56a3d08bf8 Update toolkit components
- helm-controller to v1.1.0
  https://github.com/fluxcd/helm-controller/blob/v1.1.0/CHANGELOG.md
- kustomize-controller to v1.4.0
  https://github.com/fluxcd/kustomize-controller/blob/v1.4.0/CHANGELOG.md
- notification-controller to v1.4.0
  https://github.com/fluxcd/notification-controller/blob/v1.4.0/CHANGELOG.md
- image-reflector-controller to v0.33.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.33.0/CHANGELOG.md
- image-automation-controller to v0.39.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.39.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2024-09-27 17:09:36 +00:00
Stefan Prodan
cf26cf25f1 Merge pull request #5011 from fluxcd/remove-deprecated-tls-flags
Remove TLS deprecated flags from `flux create secret`
2024-09-27 20:08:51 +03:00
Stefan Prodan
a3dbf31e87 Remove TLS deprecated flags from flux create secret
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-09-27 19:54:11 +03:00
Stefan Prodan
3e4524b987 Merge pull request #5010 from fluxcd/create-secret-proxy
Add `flux create secret proxy` command
2024-09-27 19:37:22 +03:00
Stefan Prodan
8470f23ad2 Add flux create secret proxy command
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-09-27 19:11:10 +03:00
Stefan Prodan
e17f3f0168 Merge pull request #5009 from fluxcd/proxy-secret-ref
Add `--proxy-secret-ref` to `flux create source` commands
2024-09-27 18:44:44 +03:00
Stefan Prodan
e0b8464a6c Add --proxy-secret-ref to flux create source commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-09-27 18:08:46 +03:00
Stefan Prodan
2c7d781ec5 Merge pull request #5008 from fluxcd/bucket-ga
Promote `bucket` commands to GA
2024-09-27 17:53:30 +03:00
Stefan Prodan
c7daf6466f Promote bucket commands to GA
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-09-27 17:01:21 +03:00
Stefan Prodan
0d101e0e36 Merge pull request #5007 from fluxcd/conform-k8s-1.31.1
Run conformance tests for Kubernetes 1.29-1.31
2024-09-27 15:51:16 +03:00
Stefan Prodan
0a5d263f77 Update Kubernetes Kind to v0.24.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-09-27 12:06:56 +03:00
Stefan Prodan
7d7a8f81f4 Run conformance tests for Kubernetes 1.29-1.31
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-09-27 11:11:05 +03:00
Stefan Prodan
cbda2be6b8 Merge pull request #5006 from fluxcd/dependabot/github_actions/ci-34f3b07ea7
build(deps): bump the ci group across 1 directory with 6 updates
2024-09-27 10:41:00 +03:00
dependabot[bot]
d5427d12cf build(deps): bump the ci group across 1 directory with 6 updates
Bumps the ci group with 6 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4.1.7` | `4.2.0` |
| [fluxcd/pkg](https://github.com/fluxcd/pkg) | `e40e7ed2bc31c6b6e36d263b6299e5082d9fef12` | `30c101fc7c9fac4d84937ff4890a3da46a9db2dd` |
| [Azure/login](https://github.com/azure/login) | `2.1.1` | `2.2.0` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.3.6` | `4.4.0` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.26.5` | `3.26.9` |
| [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) | `6.1.0` | `7.0.5` |



Updates `actions/checkout` from 4.1.7 to 4.2.0
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](692973e3d9...d632683dd7)

Updates `fluxcd/pkg` from e40e7ed2bc31c6b6e36d263b6299e5082d9fef12 to 30c101fc7c9fac4d84937ff4890a3da46a9db2dd
- [Commits](e40e7ed2bc...30c101fc7c)

Updates `Azure/login` from 2.1.1 to 2.2.0
- [Release notes](https://github.com/azure/login/releases)
- [Commits](6c251865b4...a65d910e8a)

Updates `actions/upload-artifact` from 4.3.6 to 4.4.0
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](834a144ee9...50769540e7)

Updates `github/codeql-action` from 3.26.5 to 3.26.9
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](2c779ab0d0...461ef6c76d)

Updates `peter-evans/create-pull-request` from 6.1.0 to 7.0.5
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](c5a7806660...5e914681df)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: fluxcd/pkg
  dependency-type: direct:production
  dependency-group: ci
- dependency-name: Azure/login
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-09-27 07:30:23 +00:00
Stefan Prodan
e970a2d6a7 Merge pull request #4986 from dipti-pai/git-azure-oidc
[RFC-0007] Add `--provider` flag to `flux create source git`
2024-09-27 10:25:51 +03:00
Dipti Pai
a4ef1f6992 Flux CLI change to add provider field to GitRepository spec.
- Add provider flag to `flux create source git` command with supported values: azure, generic.

- Unit tests validating the generated yaml and error conditions.

Signed-off-by: Dipti Pai <diptipai89@outlook.com>
2024-09-26 23:50:12 +05:30
Stefan Prodan
055d85fc18 Merge pull request #5004 from fluxcd/update-components
Update source-controller to v1.4.1
2024-09-26 21:08:39 +03:00
fluxcdbot
927f3e50f6 Update toolkit components
- source-controller to v1.4.1
  https://github.com/fluxcd/source-controller/blob/v1.4.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2024-09-26 16:35:21 +00:00
Stefan Prodan
d13dec297a Merge pull request #4939 from bkreitch/resursive-diff
Recursively diff Kustomizations
2024-09-09 19:12:31 +03:00
Boris Kreitchman
2d37544b06 Recursively build and diff Kustomizations
Signed-off-by: Boris Kreitchman <bkreitch@gmail.com>
2024-09-06 21:24:38 +03:00
Stefan Prodan
1b4de026dd Merge pull request #4970 from JasonTheDeveloper/notation-go-1.2.1
Update notaryproject/notation-go to 1.2.1
2024-09-05 15:31:38 +03:00
Jason
9af1e85b93 build(deps): bump notation-go to v1.2.1
Signed-off-by: Jason <jagoodse@microsoft.com>
2024-09-05 22:22:47 +10:00
Stefan Prodan
cb327a793e Merge pull request #4967 from mxtw/use-tempdir
tests: use tempdir to avoid manual gc
2024-09-05 15:07:02 +03:00
Max Tantow
82671cfd24 tests: use tempdir to avoid manual gc
Signed-off-by: Max Tantow <max@macks.cloud>
2024-09-03 17:40:13 +02:00
Stefan Prodan
69964519e7 Merge pull request #4959 from fluxcd/fix-github-bootstrap
Fix GitHub bootstrap for repositories with custom properties
2024-09-03 12:19:06 +03:00
Stefan Prodan
1ac06fd859 Update go-git-providers to v0.21.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-08-28 12:42:31 +03:00
Stefan Prodan
1563d2b81b Merge pull request #4952 from fluxcd/dependabot/github_actions/ci-bba31507db
build(deps): bump the ci group with 2 updates
2024-08-28 12:30:57 +03:00
dependabot[bot]
285495a0e7 build(deps): bump the ci group with 2 updates
Bumps the ci group with 2 updates: [fluxcd/pkg](https://github.com/fluxcd/pkg) and [github/codeql-action](https://github.com/github/codeql-action).


Updates `fluxcd/pkg` from 11195c91e5e1898cfa5840267a7fd0aa462cd040 to e40e7ed2bc31c6b6e36d263b6299e5082d9fef12
- [Commits](11195c91e5...e40e7ed2bc)

Updates `github/codeql-action` from 3.26.4 to 3.26.5
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](f0f3afee80...2c779ab0d0)

---
updated-dependencies:
- dependency-name: fluxcd/pkg
  dependency-type: direct:production
  dependency-group: ci
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-26 00:50:14 +00:00
Stefan Prodan
16e30439b7 Merge pull request #4950 from fluxcd/dependabot/github_actions/ci-d30b57bcb7
build(deps): bump the ci group across 1 directory with 4 updates
2024-08-24 11:45:49 +03:00
dependabot[bot]
36dec31fd7 build(deps): bump the ci group across 1 directory with 4 updates
Bumps the ci group with 4 updates in the / directory: [korthout/backport-action](https://github.com/korthout/backport-action), [google-github-actions/auth](https://github.com/google-github-actions/auth), [github/codeql-action](https://github.com/github/codeql-action) and [anchore/sbom-action](https://github.com/anchore/sbom-action).


Updates `korthout/backport-action` from 3.0.2 to 3.1.0
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](bd410d37cd...be567af183)

Updates `google-github-actions/auth` from 2.1.4 to 2.1.5
- [Release notes](https://github.com/google-github-actions/auth/releases)
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md)
- [Commits](f112390a2d...62cf5bd3e4)

Updates `github/codeql-action` from 3.26.1 to 3.26.4
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](29d86d22a3...f0f3afee80)

Updates `anchore/sbom-action` from 0.17.1 to 0.17.2
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](ab9d16d4b4...61119d458a)

---
updated-dependencies:
- dependency-name: korthout/backport-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: google-github-actions/auth
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-23 15:23:16 +00:00
Stefan Prodan
bd1ff8f771 Merge pull request #4948 from harshitasao/scorecard-checks-fix
fix: fixed GHA token-permission and pinned dependencies issue
2024-08-23 18:19:27 +03:00
harshitasao
83402e8834 fix: fixed the token-permission and pinned dependencies issue
Signed-off-by: harshitasao <harshitasao@gmail.com>
2024-08-23 01:11:22 +05:30
Stefan Prodan
cc87ffd66e Merge pull request #4936 from fluxcd/go-1.23
Build with Go 1.23
2024-08-15 14:37:29 +03:00
Stefan Prodan
c39af08b47 Update alpine to 3.20 for flux-cli
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-08-15 14:19:31 +03:00
Stefan Prodan
18e0087439 Build with Go 1.23
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-08-15 14:10:21 +03:00
Stefan Prodan
1b0eecd145 Merge pull request #4934 from fluxcd/k8s-1.31
Update dependencies to Kubernetes v1.31.0
2024-08-15 14:05:28 +03:00
Stefan Prodan
2694dfd489 Update dependencies to Kubernetes v1.31.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-08-15 13:45:28 +03:00
Stefan Prodan
466d30047a Merge pull request #4930 from fluxcd/dependabot/github_actions/ci-289148a3ce
build(deps): bump the ci group across 1 directory with 13 updates
2024-08-15 12:45:57 +03:00
dependabot[bot]
2281013050 build(deps): bump the ci group across 1 directory with 13 updates
Bumps the ci group with 13 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4.1.6` | `4.1.7` |
| [actions/setup-go](https://github.com/actions/setup-go) | `5.0.1` | `5.0.2` |
| [google-github-actions/auth](https://github.com/google-github-actions/auth) | `2.1.3` | `2.1.4` |
| [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) | `2.1.0` | `2.1.1` |
| [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) | `3.0.0` | `3.2.0` |
| [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) | `3.3.0` | `3.6.1` |
| [docker/login-action](https://github.com/docker/login-action) | `3.2.0` | `3.3.0` |
| [ossf/scorecard-action](https://github.com/ossf/scorecard-action) | `2.3.3` | `2.4.0` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.3.3` | `4.3.6` |
| [github/codeql-action](https://github.com/github/codeql-action) | `3.25.8` | `3.26.1` |
| [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.16.0` | `0.17.1` |
| [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) | `3.5.0` | `3.6.0` |
| [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) | `6.0.5` | `6.1.0` |



Updates `actions/checkout` from 4.1.6 to 4.1.7
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](a5ac7e51b4...692973e3d9)

Updates `actions/setup-go` from 5.0.1 to 5.0.2
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](cdcb360436...0a12ed9d6a)

Updates `google-github-actions/auth` from 2.1.3 to 2.1.4
- [Release notes](https://github.com/google-github-actions/auth/releases)
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md)
- [Commits](71fee32a0b...f112390a2d)

Updates `google-github-actions/setup-gcloud` from 2.1.0 to 2.1.1
- [Release notes](https://github.com/google-github-actions/setup-gcloud/releases)
- [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/main/CHANGELOG.md)
- [Commits](98ddc00a17...f0990588f1)

Updates `docker/setup-qemu-action` from 3.0.0 to 3.2.0
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](68827325e0...49b3bc8e6b)

Updates `docker/setup-buildx-action` from 3.3.0 to 3.6.1
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](d70bba72b1...988b5a0280)

Updates `docker/login-action` from 3.2.0 to 3.3.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](0d4c9c5ea7...9780b0c442)

Updates `ossf/scorecard-action` from 2.3.3 to 2.4.0
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](dc50aa9510...62b2cac7ed)

Updates `actions/upload-artifact` from 4.3.3 to 4.3.6
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](65462800fd...834a144ee9)

Updates `github/codeql-action` from 3.25.8 to 3.26.1
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](2e230e8fe0...29d86d22a3)

Updates `anchore/sbom-action` from 0.16.0 to 0.17.1
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](e8d2a6937e...ab9d16d4b4)

Updates `sigstore/cosign-installer` from 3.5.0 to 3.6.0
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](59acb6260d...4959ce089c)

Updates `peter-evans/create-pull-request` from 6.0.5 to 6.1.0
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](6d6857d369...c5a7806660)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: google-github-actions/auth
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: google-github-actions/setup-gcloud
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-08-14 10:03:42 +00:00
Stefan Prodan
e06e561150 Merge pull request #4892 from fluxcd/conformance-tests-k8s-1.31
Run conformance tests for Kubernetes v1.31
2024-08-14 12:58:47 +03:00
Stefan Prodan
41bdb88be2 Run conformance tests for Kubernetes v1.31
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-08-14 09:19:18 +03:00
Stefan Prodan
52512a94a8 Merge pull request #4922 from bkreitch/stop-spinner-on-cancel
Stop spinner on cancel of flux diff kustomization
2024-08-09 17:24:00 +03:00
Boris Kreitchman
170e4f6f57 Stop spinner on cancel
Signed-off-by: Boris Kreitchman <bkreitch@gmail.com>
2024-08-09 16:23:29 +03:00
Stefan Prodan
b8bf44e0ae Merge pull request #4918 from matheuscscp/fix-copy-paste-mistake
Fix reconcile helmrelease command description
2024-08-08 10:00:37 +03:00
Matheus Pimenta
f6a0250712 Fix reconcile helmrelease command description
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2024-08-08 00:30:38 +01:00
Stefan Prodan
31d160b309 Merge pull request #4866 from nagyv/Introduce-visibility-flag-for-bootstrap-gitlab
Introduce visibility flag for bootstrap gitlab
2024-07-18 09:20:57 +03:00
Viktor Nagy
fabdbaaf92 Introduce visibility flag for bootstrap gitlab
Signed-off-by: Viktor Nagy <vnagy@gitlab.com>
2024-07-17 20:22:25 +02:00
Stefan Prodan
a9017239b7 Merge pull request #4871 from harshitasao/scorecard-badge-link
changed the scorecard badge link to the standard format
2024-07-04 14:20:34 +03:00
harshitasao
9f873c0a07 changed the scorecard badge link to the standard format
Signed-off-by: harshitasao <harshitasao@gmail.com>
2024-07-04 02:07:46 +05:30
Stefan Prodan
0720935fb4 Merge pull request #4863 from fluxcd/conform-e2e-k8s-update
Update conformance tests to Kubernetes v1.30.2
2024-06-28 19:39:51 +03:00
Stefan Prodan
298e28b63e Update conformance tests to Kubernetes v1.30.2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-06-28 13:46:32 +03:00
Stefan Prodan
ec141c63c4 Merge pull request #4845 from fluxcd/conformance-arm64-gh
Run ARM64 e2e tests on GitHub runners
2024-06-14 09:27:40 +03:00
Stefan Prodan
b45cd59b7c Run ARM64 e2e tests on GitHub runners
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-06-14 00:32:21 +03:00
Stefan Prodan
e42aa8e448 Merge pull request #4842 from fluxcd/base-part-of-flux
Add `part-of` label to controllers base
2024-06-14 00:24:46 +03:00
Stefan Prodan
a5447e4c77 Add part-of label to controllers base
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-06-13 22:16:17 +03:00
souleb
638e537b40 Merge pull request #4806 from dipti-pai/rfc-git-passwordless-auth
[RFC] Passwordless authentication for Git repositories
2024-06-12 23:01:00 +02:00
Sanskar Jaiswal
d95e8b63e0 RFC: Add passswordless auth for git repos
Signed-off-by: Dipti Pai <diptipai89@outlook.com>
Signed-off-by: Soule BA <bah.soule@gmail.com>
Signed-off-by: Sunny <github@darkowlzz.space>
Co-authored-by: Dipti Pai <diptipai89@outlook.com>
Co-authored-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
Co-authored-by: Soule BA <bah.soule@gmail.com>
Co-authored-by: Sunny <github@darkowlzz.space>
Co-authored-by: Viktor Nagy <126671+nagyv@users.noreply.github.com>
2024-06-12 13:33:07 -07:00
souleb
f5f799b5fc Merge pull request #4660 from avoidalone/main
chore: remove repetitive word
2024-06-12 09:15:13 +02:00
avoidalone
f42c91448d chore: remove repetitive word
Signed-off-by: avoidalone <wuguangdong@outlook.com>
2024-06-11 23:56:04 +02:00
Stefan Prodan
bde7489e45 Merge pull request #4835 from fluxcd/goreleaser-v2
ci: Adapt config to GoRelease v2
2024-06-11 10:11:21 +03:00
Stefan Prodan
dcca1328a3 Adapt config to GoRelease v2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-06-11 09:58:22 +03:00
Stefan Prodan
ffc1f721ac Merge pull request #4833 from fluxcd/dependabot/github_actions/ci-38c577afb2
build(deps): bump the ci group across 1 directory with 8 updates
2024-06-11 09:43:45 +03:00
dependabot[bot]
6b062fb82f build(deps): bump the ci group across 1 directory with 8 updates
Bumps the ci group with 8 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4.1.5` | `4.1.6` |
| [korthout/backport-action](https://github.com/korthout/backport-action) | `2.5.0` | `3.0.2` |
| [Azure/login](https://github.com/azure/login) | `2.1.0` | `2.1.1` |
| [google-github-actions/auth](https://github.com/google-github-actions/auth) | `2.1.2` | `2.1.3` |
| [docker/login-action](https://github.com/docker/login-action) | `3.1.0` | `3.2.0` |
| [github/codeql-action](https://github.com/github/codeql-action) | `2.13.4` | `3.25.8` |
| [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.15.11` | `0.16.0` |
| [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) | `5.1.0` | `6.0.0` |



Updates `actions/checkout` from 4.1.5 to 4.1.6
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](44c2b7a8a4...a5ac7e51b4)

Updates `korthout/backport-action` from 2.5.0 to 3.0.2
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](ef20d86abc...bd410d37cd)

Updates `Azure/login` from 2.1.0 to 2.1.1
- [Release notes](https://github.com/azure/login/releases)
- [Commits](6b2456866f...6c251865b4)

Updates `google-github-actions/auth` from 2.1.2 to 2.1.3
- [Release notes](https://github.com/google-github-actions/auth/releases)
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md)
- [Commits](55bd3a7c6e...71fee32a0b)

Updates `docker/login-action` from 3.1.0 to 3.2.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](e92390c5fb...0d4c9c5ea7)

Updates `github/codeql-action` from 2.13.4 to 3.25.8
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](cdcdbb5797...2e230e8fe0)

Updates `anchore/sbom-action` from 0.15.11 to 0.16.0
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](7ccf588e3c...e8d2a6937e)

Updates `goreleaser/goreleaser-action` from 5.1.0 to 6.0.0
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)
- [Commits](5742e2a039...286f3b13b1)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: korthout/backport-action
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: Azure/login
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: google-github-actions/auth
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: goreleaser/goreleaser-action
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-06-10 01:02:22 +00:00
Stefan Prodan
896e0fa46d Merge pull request #4785 from fluxcd/dependabot/github_actions/ci-f6abfb4cf0
build(deps): bump the ci group with 3 updates
2024-05-13 10:18:12 +03:00
dependabot[bot]
8d75df8fc3 build(deps): bump the ci group with 3 updates
Bumps the ci group with 3 updates: [actions/checkout](https://github.com/actions/checkout), [ossf/scorecard-action](https://github.com/ossf/scorecard-action) and [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action).


Updates `actions/checkout` from 4.1.4 to 4.1.5
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](0ad4b8fada...44c2b7a8a4)

Updates `ossf/scorecard-action` from 2.3.1 to 2.3.3
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](0864cf1902...dc50aa9510)

Updates `goreleaser/goreleaser-action` from 5.0.0 to 5.1.0
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)
- [Commits](7ec5c2b0c6...5742e2a039)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: goreleaser/goreleaser-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-13 00:48:35 +00:00
souleb
dd7ef7d0c1 Merge pull request #4766 from fluxcd/reconcile-hr-with-chartref
Add support for HelmRelease v2 in `flux reconcile` and `flux create`
2024-05-12 15:40:37 +02:00
Soule BA
5feee5c73d Add support for creating HR with .spec.ChartRef
Signed-off-by: Soule BA <bah.soule@gmail.com>
2024-05-11 22:49:52 +02:00
Soule BA
0d0285ad09 Enable reconciling HelmReleases with ChartRef
If implemented HR with ChartRef can be reconciled with
`--with-source`set.

Signed-off-by: Soule BA <bah.soule@gmail.com>
2024-05-11 20:55:55 +02:00
Stefan Prodan
86b3581f5e Merge pull request #4783 from fluxcd/conformance-tests
ci: Consolidate conformance tests
2024-05-11 20:19:20 +03:00
Stefan Prodan
32804f6518 ci: Consolidate conformance tests
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-11 20:06:00 +03:00
Stefan Prodan
070fa0ff8e Merge pull request #4781 from fluxcd/drop-kubernetes-eol
Set Kubernetes 1.28 as min required version
2024-05-10 19:34:52 +03:00
Stefan Prodan
9ef9464e77 Update kubectl to 1.30.0 in flux-cli image
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-10 18:53:07 +03:00
Stefan Prodan
d8e6199b2a Set Kubernetes 1.28 as min required version
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-10 18:52:15 +03:00
Stefan Prodan
6552ced272 Merge pull request #4780 from fluxcd/helm-controller-v1.0.1
Update helm-controller to v1.0.1
2024-05-10 18:47:33 +03:00
Stefan Prodan
6edf2bc5a2 Update helm-controller/api to v1.0.1
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-10 18:29:37 +03:00
fluxcdbot
0948d1440d Update toolkit components
- helm-controller to v1.0.1
  https://github.com/fluxcd/helm-controller/blob/v1.0.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2024-05-10 15:20:11 +00:00
Stefan Prodan
55728ce6d7 Merge pull request #4778 from fluxcd/int-run-check
tests/integration: Run flux check after installation
2024-05-10 18:15:17 +03:00
Sunny
b87d04e629 tests/int: Run flux check after installation
Run flux check after installation to show the relevant cluster and
resource configurations in the environment.

Signed-off-by: Sunny <github@darkowlzz.space>
2024-05-10 14:45:31 +00:00
Stefan Prodan
6b1f0fedd9 Merge pull request #4777 from fluxcd/k3s-conformance-test
Add k3s to the conformance test suite
2024-05-10 12:12:36 +03:00
Stefan Prodan
299a5423ef Add k3s to the conformance test suite
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-10 11:29:52 +03:00
Stefan Prodan
6981683dcc Merge pull request #4775 from fluxcd/helmrelease-ga
Update `HelmRelease` API to v2 (GA)
2024-05-09 19:21:12 +03:00
Stefan Prodan
d5aedaca7d Update tests to GA APIs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-09 19:05:45 +03:00
Stefan Prodan
83b7b17f11 Update dependencies
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-09 17:29:38 +03:00
Stefan Prodan
52f1ae2df7 Mark HelmRelease commands as GA
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-09 17:18:11 +03:00
Stefan Prodan
8856de1478 Update HelmRelease API to v2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-09 17:10:00 +03:00
Stefan Prodan
472396728b Adapt HelmRelease revision to API v2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-09 16:52:23 +03:00
fluxcdbot
b85d34644b Update toolkit components
- helm-controller to v1.0.0
  https://github.com/fluxcd/helm-controller/blob/v1.0.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2024-05-09 12:57:02 +00:00
Stefan Prodan
54f33ece2a Merge pull request #4773 from fluxcd/source-chart-cmds
Add `(create|delete|export) source chart` commands
2024-05-09 13:13:44 +03:00
Max Jonas Werner
18d5ec4ecd Add (create|delete|export) source chart commands
The `create source chart` command supports all HelmChart.spec fields
except `.valuesFiles` and `ignoreMissingValuesFiles` as these are
assumingly rarely used fields and the CLI usually only supports
commonly used ones.

closes #4760

Co-authored-by: Stefan Prodan <stefan.prodan@gmail.com>
Signed-off-by: Max Jonas Werner <mail@makk.es>
2024-05-09 11:57:38 +02:00
Stefan Prodan
9325eac0d3 Merge pull request #4771 from matheuscscp/new-release-label
Add 2.3.x release label
2024-05-08 17:07:00 +03:00
Matheus Pimenta
227b124f02 Add 2.3.x release label
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2024-05-08 14:32:26 +01:00
Stefan Prodan
c1ff78c68e Merge pull request #4769 from frekw/feat/reproducible-push
Add `--reproducible` flag to `flux push artifact`
2024-05-08 14:55:15 +03:00
frekw
26109ee821 Add --reproducible flag to flux push artifact
This makes the pushed artifact have the exact same hash if the contents
are the same.

E.g
```
flux push artifact oci://repo/image:tag1 --source deploy --revision="test" --path=deploy --reproducible
flux push artifact oci://repo/image:tag2 --source deploy --revision="test" --path=deploy --reproducible
```

will both result in the same sha hash, tagged with `tag1` and `tag2`.

This is useful when producing flux artifacts in a monorepo setup where
you don't want to unnecessarily push new artifacts unless something has
actually changed.

Signed-off-by: frekw <fredrik@warnsberg.se>
2024-05-08 13:30:22 +02:00
Stefan Prodan
eaf1c0fab6 Merge pull request #4770 from fluxcd/update-diagram
Update Flux architecture diagram
2024-05-08 13:23:25 +03:00
Stefan Prodan
8006c3ddc8 Update Flux architecture diagram
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-08 11:12:25 +03:00
Stefan Prodan
7640afc852 Merge pull request #4768 from fluxcd/update-tests
Improve end-to-end test workflow
2024-05-07 16:22:15 +03:00
Stefan Prodan
ff3ca3a355 ci: Add events test to e2e
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-07 16:03:12 +03:00
Stefan Prodan
3322b52786 ci: Run e2e tests on ubuntu-latest-16-cores
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-07 15:15:55 +03:00
Stefan Prodan
008326ec22 ci: Update Calico to v3.27 in e2e tests
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-07 14:57:58 +03:00
Stefan Prodan
d413503244 ci: Use ghcr.io/fluxcd/kindest/node in e2e tests
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-07 14:45:03 +03:00
Stefan Prodan
d86838902d Merge pull request #4678 from fluxcd/iac-v1beta2
Update `ImageUpdateAutomation` API to v1beta2
2024-05-07 14:02:48 +03:00
Sunny
4edc640d0c Update image-automation-controller API to v1beta2
Signed-off-by: Sunny <github@darkowlzz.space>
2024-05-07 08:34:10 +00:00
Stefan Prodan
7b8906fe41 Merge pull request #4764 from fluxcd/iac-update-e2e-test
ci: Adapt image automation test to v1beta2
2024-05-06 20:43:32 +03:00
Stefan Prodan
47e30e2e5f ci: Run bootstrap e2e using Kubernetes 1.30
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-06 20:21:41 +03:00
Stefan Prodan
de46bae6fe Address kustomize version cmd deprecation
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-06 20:02:16 +03:00
Stefan Prodan
7eba0aedde ci: Adapt image automation test to v1beta2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-06 19:57:41 +03:00
Stefan Prodan
46bb1a0b47 Merge pull request #4701 from fluxcd/update-components
Update toolkit components
2024-05-06 19:13:07 +03:00
fluxcdbot
2ab0a7506b Update toolkit components
- notification-controller to v1.3.0
  https://github.com/fluxcd/notification-controller/blob/v1.3.0/CHANGELOG.md
- image-reflector-controller to v0.32.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.32.0/CHANGELOG.md
- image-automation-controller to v0.38.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.38.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2024-05-06 15:53:43 +00:00
Stefan Prodan
214a273f66 Merge pull request #4759 from fluxcd/source-helm-api-ga
Update Helm Source APIs to v1 (GA)
2024-05-06 16:00:21 +03:00
Stefan Prodan
aae086c508 Migrate flux uninstall to Helm Source API v1
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-06 15:43:10 +03:00
Stefan Prodan
e40961c6d0 Migrate flux trace to Helm Source API v1
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-06 15:23:30 +03:00
Stefan Prodan
315c53a717 Migrate flux events to Helm Source API v1
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-06 15:15:38 +03:00
Stefan Prodan
6baefa2586 Mark source helm commands as GA
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-06 12:50:22 +03:00
Stefan Prodan
1aaa48fa09 Update Helm Source APIs to v1 (GA)
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-06 12:28:34 +03:00
fluxcdbot
89038b7300 Update toolkit components
- kustomize-controller to v1.3.0
  https://github.com/fluxcd/kustomize-controller/blob/v1.3.0/CHANGELOG.md
- source-controller to v1.3.0
  https://github.com/fluxcd/source-controller/blob/v1.3.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2024-05-06 09:12:31 +00:00
Stefan Prodan
e25823ab28 Merge pull request #4758 from fluxcd/dependabot/github_actions/ci-b23e0286c6
build(deps): bump actions/setup-go from 5.0.0 to 5.0.1 in the ci group
2024-05-06 12:12:01 +03:00
dependabot[bot]
856ff67f34 build(deps): bump actions/setup-go from 5.0.0 to 5.0.1 in the ci group
Bumps the ci group with 1 update: [actions/setup-go](https://github.com/actions/setup-go).


Updates `actions/setup-go` from 5.0.0 to 5.0.1
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](0c52d547c9...cdcb360436)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-05-06 00:14:03 +00:00
Stefan Prodan
2338cc24a6 Merge pull request #4754 from fluxcd/ssh-hostkey-algos
Add `--ssh-hostkey-algos` flag to bootstrap command
2024-05-02 08:53:53 +03:00
Stefan Prodan
7027e823d8 Add --ssh-hostkey-algos flag to bootstrap command
Allow configuring the list of host key algorithms to use for
SSH connections initialized by the CLI during bootstrap.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-05-01 13:02:50 +03:00
Stefan Prodan
ad1d33262d Merge pull request #4750 from fluxcd/dependabot/github_actions/ci-b0e940dd59
build(deps): bump the ci group with 6 updates
2024-04-29 09:05:53 +03:00
dependabot[bot]
86b3075535 build(deps): bump the ci group with 6 updates
Bumps the ci group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4.1.3` | `4.1.4` |
| [helm/kind-action](https://github.com/helm/kind-action) | `1.9.0` | `1.10.0` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.3.2` | `4.3.3` |
| [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.15.10` | `0.15.11` |
| [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) | `1.10.0` | `2.0.0` |
| [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) | `6.0.4` | `6.0.5` |


Updates `actions/checkout` from 4.1.3 to 4.1.4
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](1d96c772d1...0ad4b8fada)

Updates `helm/kind-action` from 1.9.0 to 1.10.0
- [Release notes](https://github.com/helm/kind-action/releases)
- [Commits](99576bfa6d...0025e74a8c)

Updates `actions/upload-artifact` from 4.3.2 to 4.3.3
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](1746f4ab65...65462800fd)

Updates `anchore/sbom-action` from 0.15.10 to 0.15.11
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](ab5d7b5f48...7ccf588e3c)

Updates `slsa-framework/slsa-github-generator` from 1.10.0 to 2.0.0
- [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases)
- [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v1.10.0...v2.0.0)

Updates `peter-evans/create-pull-request` from 6.0.4 to 6.0.5
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](9153d834b6...6d6857d369)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: helm/kind-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: slsa-framework/slsa-github-generator
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-29 01:14:17 +00:00
Stefan Prodan
88b028fd50 Merge pull request #4747 from fluxcd/kubernetes-1.30
Update dependencies to Kubernetes 1.30
2024-04-26 12:25:58 +03:00
Stefan Prodan
37d139c462 Update dependencies to Kubernetes 1.30
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-04-26 11:58:21 +03:00
Stefan Prodan
01ebcf864d Merge pull request #4746 from swade1987/remove-go-cache
Specifying go version in setup-go github action.
2024-04-26 08:59:01 +03:00
Steven Wade
d97221423f Specifying go version in setup-go github action.
Signed-off-by: Steven Wade <steven@stevenwade.co.uk>
2024-04-25 14:40:34 +01:00
Stefan Prodan
acad6ca73f Merge pull request #4735 from JasonTheDeveloper/feat/4692
feat(secret): add create notation secret handler
2024-04-23 15:57:26 +03:00
Jason
c49ba9d310 Add command for creating notation configuration secrets
Signed-off-by: Jason <jagoodse@microsoft.com>
2024-04-23 22:29:23 +10:00
Stefan Prodan
0cb24f9c6a Merge pull request #4736 from fluxcd/dependabot/github_actions/ci-b33de11f99
build(deps): bump the ci group with 4 updates
2024-04-22 12:20:44 +03:00
dependabot[bot]
e17d429df2 build(deps): bump the ci group with 4 updates
Bumps the ci group with 4 updates: [actions/checkout](https://github.com/actions/checkout), [Azure/login](https://github.com/azure/login), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).


Updates `actions/checkout` from 4.1.2 to 4.1.3
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](9bb56186c3...1d96c772d1)

Updates `Azure/login` from 2.0.0 to 2.1.0
- [Release notes](https://github.com/azure/login/releases)
- [Commits](8c334a195c...6b2456866f)

Updates `actions/upload-artifact` from 4.3.1 to 4.3.2
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](5d5d22a312...1746f4ab65)

Updates `peter-evans/create-pull-request` from 6.0.3 to 6.0.4
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](c55203cfde...9153d834b6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: Azure/login
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-22 07:50:46 +00:00
Stefan Prodan
6b7a93961c Merge pull request #4734 from fluxcd/e2e-kubernetes-1.30
Run conformance tests for Kubernetes 1.30.0
2024-04-22 10:46:36 +03:00
Stefan Prodan
8d4454d0c1 Run conformance tests for Kubernetes 1.30.0
Drop support for Kubernetes 1.26 and 1.27

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-04-21 13:39:38 +03:00
Stefan Prodan
cc6b170c4b e2e: Use KinD images from ghcr.io/fluxcd/kindest/node
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-04-21 13:33:15 +03:00
Stefan Prodan
d0f558c7ab Merge pull request #4729 from fluxcd/openshift-e2e-testing
Add OpenShift to the conformance test suite
2024-04-17 23:10:19 +03:00
Stefan Prodan
1299387408 e2e: Run tests for OpenShift v4.14 and v4.15
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-04-17 17:49:06 +03:00
Stefan Prodan
cbe41a6bf9 e2e: Run integration test suite on OpenShift
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-04-17 13:00:56 +03:00
Stefan Prodan
b3a29b56bb e2e: Install Flux on OpenShift
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-04-17 13:00:55 +03:00
Stefan Prodan
2dfb536600 e2e: Run OpenShift from Replicated
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-04-17 13:00:55 +03:00
Max Jonas Werner
ec62b84c5d Merge pull request #4727 from fluxcd/verify-issuer-subject
Add flags for issuer/subject OCI signature verification
2024-04-17 11:28:48 +02:00
Max Jonas Werner
1bb92548e4 Add flags for issuer/subject OCI signature verification
This change introduces two new flags to `create source oci` for
providing the values to the
`OCIRepository.spec.verify.matchOIDCIdentity.(issuer,subject)` fields.

Signed-off-by: Max Jonas Werner <mail@makk.es>
2024-04-17 09:45:33 +02:00
Stefan Prodan
90f3c5a5cb Merge pull request #4728 from toomaj/support-git-authorization-header
bootstrap: Add support for Git HTTP/S authorization header
2024-04-17 10:03:00 +03:00
toomaj
9ff9f2beba add support for bearer token as header to bootstrap git
Signed-off-by: toomaj <toomaj@tuta.io>

Set tokenAuth to true with withBearerToken

Signed-off-by: toomaj <toomaj@tuta.io>

Set breaderToken if tokenAuth & withBearerToken were set

Signed-off-by: toomaj <toomaj@tuta.io>
2024-04-17 16:47:31 +10:00
Stefan Prodan
5456635ee7 Merge pull request #4723 from fluxcd/dependabot/github_actions/ci-d80e277903
build(deps): bump the ci group with 3 updates
2024-04-15 12:07:25 +03:00
dependabot[bot]
5b619d8001 build(deps): bump the ci group with 3 updates
Bumps the ci group with 3 updates: [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action), [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).


Updates `docker/setup-buildx-action` from 3.2.0 to 3.3.0
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](2b51285047...d70bba72b1)

Updates `sigstore/cosign-installer` from 3.4.0 to 3.5.0
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](e1523de757...59acb6260d)

Updates `peter-evans/create-pull-request` from 6.0.2 to 6.0.3
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](70a41aba78...c55203cfde)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-15 01:11:46 +00:00
Stefan Prodan
e573800c1b Merge pull request #4717 from hawwwdi/main
Set `GOMAXPROCS` and `GOMEMLIMIT` to all Flux controllers
2024-04-12 13:43:30 +03:00
Stefan Prodan
26168b1241 Set GOMAXPROCS and GOMEMLIMIT for bootstrap
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-04-12 13:32:06 +03:00
Hadi Abbasi
205314e363 set GOMAXPROCS and GOMEMLIMIT vars
if applied, set GOMAXPROCS and GOMEMLIMIT for all controllers based on container resources which leads to reduce throttling and better performance

Signed-off-by: Hadi Abbasi <hawwwdi@gmail.com>
2024-04-11 18:45:52 +03:30
Stefan Prodan
f93da6fa76 Merge pull request #4710 from fluxcd/envsubst-cmd
Add `flux envsubst` command
2024-04-09 10:21:15 +03:00
Stefan Prodan
493c1fbdf9 Add flux envsubst command
This command can be used to replicate the behavior of the
Flux Kustomization post-build substitutions.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-04-08 17:54:38 +03:00
Stefan Prodan
4d86311c11 Merge pull request #4709 from fluxcd/build-diff-strict-substitute
Add `--strict-substitute` flag to `flux build ks` and `flux diff ks`
2024-04-08 16:56:43 +03:00
Stefan Prodan
7d52267fc4 Add --strict-substitute flag to flux build and flux diff ks commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-04-08 16:05:10 +03:00
Stefan Prodan
9e52b3ff41 Merge pull request #4706 from fluxcd/bootstrap-registry-creds
Add `--registry-creds` flag to bootstrap and install commands
2024-04-08 11:02:34 +03:00
Stefan Prodan
0672c8add2 Generate image pull secret at install
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-04-06 11:39:51 +03:00
Stefan Prodan
05903e2171 Generate image pull secret at bootstrap
Add an optional flag called `--registry-creds` to the bootstrap
command for generating an image pull secret for container images
stored in private registries.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-04-05 16:42:15 +03:00
Stefan Prodan
afa648933b Merge pull request #4705 from fluxcd/kustomize-v5.4.0
Update dependencies to Kustomize v5.4.0
2024-04-05 16:30:40 +03:00
Stefan Prodan
8d11b2742f Update dependencies to Kustomize v5.4.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-04-05 11:03:08 +03:00
Stefan Prodan
80c886c0cf Merge pull request #4696 from fluxcd/dependabot/github_actions/ci-5a961a13fe
build(deps): bump the ci group with 12 updates
2024-04-03 11:31:40 +03:00
dependabot[bot]
f63385a43f build(deps): bump the ci group with 12 updates
Bumps the ci group with 12 updates:

| Package | From | To |
| --- | --- | --- |
| [actions/checkout](https://github.com/actions/checkout) | `4.1.1` | `4.1.2` |
| [korthout/backport-action](https://github.com/korthout/backport-action) | `2.4.1` | `2.5.0` |
| [Azure/login](https://github.com/azure/login) | `1.6.1` | `2.0.0` |
| [helm/kind-action](https://github.com/helm/kind-action) | `1.8.0` | `1.9.0` |
| [google-github-actions/auth](https://github.com/google-github-actions/auth) | `2.1.0` | `2.1.2` |
| [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) | `3.0.0` | `3.2.0` |
| [docker/login-action](https://github.com/docker/login-action) | `3.0.0` | `3.1.0` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.3.0` | `4.3.1` |
| [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.15.8` | `0.15.10` |
| [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator) | `1.9.0` | `1.10.0` |
| [EndBug/label-sync](https://github.com/endbug/label-sync) | `2.3.2` | `2.3.3` |
| [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) | `6.0.0` | `6.0.2` |


Updates `actions/checkout` from 4.1.1 to 4.1.2
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](b4ffde65f4...9bb56186c3)

Updates `korthout/backport-action` from 2.4.1 to 2.5.0
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](e8161d6a0d...ef20d86abc)

Updates `Azure/login` from 1.6.1 to 2.0.0
- [Release notes](https://github.com/azure/login/releases)
- [Commits](cb79c773a3...8c334a195c)

Updates `helm/kind-action` from 1.8.0 to 1.9.0
- [Release notes](https://github.com/helm/kind-action/releases)
- [Commits](dda0770415...99576bfa6d)

Updates `google-github-actions/auth` from 2.1.0 to 2.1.2
- [Release notes](https://github.com/google-github-actions/auth/releases)
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md)
- [Commits](5a50e58116...55bd3a7c6e)

Updates `docker/setup-buildx-action` from 3.0.0 to 3.2.0
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](f95db51fdd...2b51285047)

Updates `docker/login-action` from 3.0.0 to 3.1.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](343f7c4344...e92390c5fb)

Updates `actions/upload-artifact` from 4.3.0 to 4.3.1
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](26f96dfa69...5d5d22a312)

Updates `anchore/sbom-action` from 0.15.8 to 0.15.10
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](b6a39da807...ab5d7b5f48)

Updates `slsa-framework/slsa-github-generator` from 1.9.0 to 1.10.0
- [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases)
- [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v1.9.0...v1.10.0)

Updates `EndBug/label-sync` from 2.3.2 to 2.3.3
- [Release notes](https://github.com/endbug/label-sync/releases)
- [Commits](da00f2c11f...5207415819)

Updates `peter-evans/create-pull-request` from 6.0.0 to 6.0.2
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](b1ddad2c99...70a41aba78)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: korthout/backport-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: Azure/login
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: helm/kind-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: google-github-actions/auth
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: slsa-framework/slsa-github-generator
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: EndBug/label-sync
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-04-03 06:31:11 +00:00
Stefan Prodan
45faebb6b3 Merge pull request #4699 from fluxcd/go1.22
Update dependencies to Go 1.22 and Kubernetes 1.29.3
2024-04-03 09:27:56 +03:00
Stefan Prodan
0dda09408c Update dependencies to Go 1.22 and Kubernetes 1.29.3
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-04-02 19:15:44 +03:00
Stefan Prodan
c7db0c6b9f Merge pull request #4689 from fluxcd/pin-envtest
Pin envtest version
2024-03-25 16:23:21 +02:00
Max Jonas Werner
f03a1d19c1 Pin envtest version
[This
commit](4c2442e4d7)
causes failures to install envtest, see
https://github.com/kubernetes-sigs/controller-runtime/issues/2720 for
details.

This change pins envtest to the latest version that still works.

Signed-off-by: Max Jonas Werner <mail@makk.es>
2024-03-25 14:12:18 +01:00
Stefan Prodan
60bb4ff983 Merge pull request #4687 from carlpett/patch-1
Add permissions required for flow control
2024-03-25 14:55:07 +02:00
Calle Pettersson
539dfa0942 Add permissions required for flow control
Signed-off-by: Calle Pettersson <carlpett@users.noreply.github.com>
2024-03-25 13:03:08 +01:00
Stefan Prodan
d9e435c041 Merge pull request #4657 from fluxcd/snyk-test-all-projects
ci: Include all go modules in snyk testing
2024-03-14 11:57:08 +02:00
Stefan Prodan
bb4f27a070 ci: Include all go modules in snyk testing
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-03-14 11:16:20 +02:00
Stefan Prodan
35e0ba6eda Merge pull request #4666 from fluxcd/rfc-0006-implementable
Mark RFC-0006 as implementable
2024-03-14 10:33:10 +02:00
Stefan Prodan
af44bae621 Mark RFC-0006 as implementable
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-03-13 20:15:10 +02:00
Stefan Prodan
30dbfa399a Improve the RFC specifications
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-03-13 20:14:40 +02:00
Stefan Prodan
54a7132f14 Merge pull request #4534 from Nordix/RFC
[RFC-0006] Flux-CDEvent Receiver
2024-03-13 15:03:51 +02:00
adamkenihan
d48cbe3fcb Create CDEvents RFC
Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Create CDEvents RFC

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Update README.md

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Add files via upload

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Edits to diagrams

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Update README.md

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Add files via upload

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Update README.md

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Improvements to rfcs/NNNN-cdevents/README.md

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Add CDEvents Receiver RFC

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Add CDEvents Receiver RFC

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Add CDEvents Receiver RFC

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Small tweaks to cdevents RFC

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

change cdevents RFC yaml example format

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Add CDEvents Receiver RFC

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Create CDEvents RFC

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Change RFC number

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Update rfcs/0006-cdevents/README.md

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Update README.md

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Update rfcs/0006-cdevents/README.md

Signed-off-by: adamkenihan <adam.kenihan@est.tech>

Update rfcs/0006-cdevents/README.md

Signed-off-by: adamkenihan <adam.kenihan@est.tech>
Co-Authored-By: Sunny <github@darkowlzz.space>
Co-Authored-By: souleb <bah.soule@gmail.com>
2024-03-13 11:24:17 +00:00
Stefan Prodan
03ee7a3c26 Merge pull request #4654 from fluxcd/cleanup-e2e
Remove deprecated e2e tests
2024-03-07 23:28:27 +02:00
Stefan Prodan
51b0cbfe28 Remove deprecated e2e tests
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-03-07 22:28:24 +02:00
Stefan Prodan
229d40cc93 Merge pull request #4629 from rishinair11/main
Fix a typo in `--force` flag description
2024-02-26 17:56:10 +02:00
Rishikesh Nair
1e7dc1b392 Fix a typo in --force flag description
Signed-off-by: Rishikesh Nair <alienware505@gmail.com>
2024-02-26 20:15:30 +05:30
Stefan Prodan
127a742db0 Merge pull request #4620 from fluxcd/arm-runners-update
Update Equinix ARM64 GitHub runners
2024-02-21 12:32:08 +02:00
Stefan Prodan
43437bf2d5 Update equinix runners
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-02-21 11:45:21 +02:00
Stefan Prodan
a3038865be Merge pull request #4610 from takp/fix-typo
Fix typo in build.go
2024-02-19 09:38:27 +02:00
Taka Nishida
8fdfbcd251 Fix typo
Signed-off-by: Taka Nishida <takpme@gmail.com>
2024-02-16 16:59:48 +09:00
Stefan Prodan
2460a79026 Merge pull request #4589 from fluxcd/update-api-deps
Update dependencies
2024-02-05 15:17:48 +02:00
Stefan Prodan
9c06883ccf Update dependencies
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-02-05 14:10:09 +02:00
Stefan Prodan
b326e5616b Merge pull request #4583 from fluxcd/update-components
Update toolkit components
2024-02-05 13:42:36 +02:00
fluxcdbot
a30020a6d6 Update toolkit components
- helm-controller to v0.37.4
  https://github.com/fluxcd/helm-controller/blob/v0.37.4/CHANGELOG.md
- kustomize-controller to v1.2.2
  https://github.com/fluxcd/kustomize-controller/blob/v1.2.2/CHANGELOG.md
- source-controller to v1.2.4
  https://github.com/fluxcd/source-controller/blob/v1.2.4/CHANGELOG.md
- notification-controller to v1.2.4
  https://github.com/fluxcd/notification-controller/blob/v1.2.4/CHANGELOG.md
- image-reflector-controller to v0.31.2
  https://github.com/fluxcd/image-reflector-controller/blob/v0.31.2/CHANGELOG.md
- image-automation-controller to v0.37.1
  https://github.com/fluxcd/image-automation-controller/blob/v0.37.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2024-02-05 09:19:05 +00:00
Stefan Prodan
dfdfe45b5b Merge pull request #4585 from fluxcd/dependabot/github_actions/ci-2e27c022f1
build(deps): bump the ci group with 3 updates
2024-02-05 11:18:26 +02:00
dependabot[bot]
976f40b642 build(deps): bump the ci group with 3 updates
Bumps the ci group with 3 updates: [anchore/sbom-action](https://github.com/anchore/sbom-action), [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) and [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request).


Updates `anchore/sbom-action` from 0.15.5 to 0.15.8
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](24b0d52385...b6a39da807)

Updates `sigstore/cosign-installer` from 3.3.0 to 3.4.0
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](9614fae9e5...e1523de757)

Updates `peter-evans/create-pull-request` from 5.0.2 to 6.0.0
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](153407881e...b1ddad2c99)

---
updated-dependencies:
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-02-05 00:56:55 +00:00
Stefan Prodan
adb77740b5 Merge pull request #4575 from fluxcd/k8s-v1.28.6
Update dependencies to Kubernetes v1.28.6
2024-01-30 14:33:56 +02:00
Stefan Prodan
5e14014e37 Update dependencies to Kubernetes v1.28.6
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2024-01-30 14:07:35 +02:00
Stefan Prodan
475bcb63b5 Merge pull request #4573 from fluxcd/dependabot/github_actions/ci-6b7665cf80
build(deps): bump the ci group with 5 updates
2024-01-29 09:26:15 +02:00
dependabot[bot]
cccb044dd1 build(deps): bump the ci group with 5 updates
Bumps the ci group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [korthout/backport-action](https://github.com/korthout/backport-action) | `2.3.0` | `2.4.1` |
| [google-github-actions/auth](https://github.com/google-github-actions/auth) | `2.0.1` | `2.1.0` |
| [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) | `2.0.1` | `2.1.0` |
| [actions/upload-artifact](https://github.com/actions/upload-artifact) | `4.2.0` | `4.3.0` |
| [anchore/sbom-action](https://github.com/anchore/sbom-action) | `0.15.4` | `0.15.5` |


Updates `korthout/backport-action` from 2.3.0 to 2.4.1
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](addffea45a...e8161d6a0d)

Updates `google-github-actions/auth` from 2.0.1 to 2.1.0
- [Release notes](https://github.com/google-github-actions/auth/releases)
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md)
- [Commits](f6de81663f...5a50e58116)

Updates `google-github-actions/setup-gcloud` from 2.0.1 to 2.1.0
- [Release notes](https://github.com/google-github-actions/setup-gcloud/releases)
- [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/main/CHANGELOG.md)
- [Commits](5a5f7b85fc...98ddc00a17)

Updates `actions/upload-artifact` from 4.2.0 to 4.3.0
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](694cdabd8b...26f96dfa69)

Updates `anchore/sbom-action` from 0.15.4 to 0.15.5
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](41f7a6c033...24b0d52385)

---
updated-dependencies:
- dependency-name: korthout/backport-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: google-github-actions/auth
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: google-github-actions/setup-gcloud
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-29 00:32:12 +00:00
Stefan Prodan
cdbad4d946 Merge pull request #4558 from twinguy/detect-bad-args-check-command
`flux check` should error on unrecognised args
2024-01-26 08:24:13 +02:00
Kenny Meador
933cf9db02 detect unexpected args on flux check command
Signed-off-by: Kenny Meador <kenny.meador@outlook.com>
2024-01-26 00:25:40 +02:00
Stefan Prodan
40bf47f41a Merge pull request #4557 from twinguy/main
`flux stats` should error on unrecognised args
2024-01-23 09:01:00 +02:00
Kenny Meador
1a0d931ab5 detect unexpected args in flux stats command
Signed-off-by: Kenny Meador <kenny.meador@outlook.com>
2024-01-22 19:50:51 -06:00
Stefan Prodan
779156cf9a Merge pull request #4554 from fluxcd/dependabot/github_actions/ci-e03874c51b
build(deps): bump the ci group with 3 updates
2024-01-22 10:12:47 +02:00
dependabot[bot]
2726da5b85 build(deps): bump the ci group with 3 updates
Bumps the ci group with 3 updates: [Azure/login](https://github.com/azure/login), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [anchore/sbom-action](https://github.com/anchore/sbom-action).


Updates `Azure/login` from 1.6.0 to 1.6.1
- [Release notes](https://github.com/azure/login/releases)
- [Commits](e15b166166...cb79c773a3)

Updates `actions/upload-artifact` from 4.1.0 to 4.2.0
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](1eb3cb2b3e...694cdabd8b)

Updates `anchore/sbom-action` from 0.15.3 to 0.15.4
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](c7f031d924...41f7a6c033)

---
updated-dependencies:
- dependency-name: Azure/login
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-22 08:01:30 +00:00
Stefan Prodan
09b157d74c Merge pull request #4553 from twinguy/main
Properly detect unexpected arguments during uninstall
2024-01-22 09:22:58 +02:00
Kenny Meador
145fd1c2f2 Properly detect unexpected arguments
Signed-off-by: Kenny Meador <kenny.meador@outlook.com>
2024-01-21 13:06:59 -06:00
Max Jonas Werner
33e9a89305 Merge pull request #4537 from fluxcd/dependabot/go_modules/tests/integration/github.com/cloudflare/circl-1.3.7
build(deps): bump github.com/cloudflare/circl from 1.3.6 to 1.3.7 in /tests/integration
2024-01-17 15:07:28 +01:00
dependabot[bot]
417e3d02d1 build(deps): bump github.com/cloudflare/circl in /tests/integration
Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.3.6 to 1.3.7.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.3.6...v1.3.7)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-17 11:08:38 +00:00
Stefan Prodan
ba555de7da Merge pull request #4536 from fluxcd/dependabot/go_modules/tests/azure/github.com/cloudflare/circl-1.3.7
build(deps): bump github.com/cloudflare/circl from 1.3.6 to 1.3.7 in /tests/azure
2024-01-17 13:06:57 +02:00
dependabot[bot]
83450ab1d2 build(deps): bump github.com/cloudflare/circl in /tests/azure
Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.3.6 to 1.3.7.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.3.6...v1.3.7)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-17 09:56:13 +00:00
Stefan Prodan
1296b4d16b Merge pull request #4545 from fluxcd/dependabot/github_actions/ci-bab66fc3c5
build(deps): bump the ci group with 4 updates
2024-01-15 09:33:03 +02:00
dependabot[bot]
2924af5074 build(deps): bump the ci group with 4 updates
Bumps the ci group with 4 updates: [Azure/login](https://github.com/azure/login), [google-github-actions/auth](https://github.com/google-github-actions/auth), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [anchore/sbom-action](https://github.com/anchore/sbom-action).


Updates `Azure/login` from 1.5.1 to 1.6.0
- [Release notes](https://github.com/azure/login/releases)
- [Commits](de95379fe4...e15b166166)

Updates `google-github-actions/auth` from 2.0.0 to 2.0.1
- [Release notes](https://github.com/google-github-actions/auth/releases)
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md)
- [Commits](67e9c72af6...f6de81663f)

Updates `actions/upload-artifact` from 4.0.0 to 4.1.0
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](c7d193f32e...1eb3cb2b3e)

Updates `anchore/sbom-action` from 0.15.2 to 0.15.3
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](719133684c...c7f031d924)

---
updated-dependencies:
- dependency-name: Azure/login
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: google-github-actions/auth
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-15 01:25:22 +00:00
Sunny
2a8492a053 Merge pull request #4533 from fluxcd/int-test-destroy-only
tests/int: Add separate resource cleanup step
2024-01-10 19:38:07 +05:30
Sunny
94c9b13fbd tests/int: Add separate resource cleanup step
Introduce a destroy-only mode in the test runner to run terraform
destroy for the respective cloud provider configurations. This can be
used to destroy cloud resources without going through the whole
provision-test process.

Add a new step in github actions workflow to run the test binary in
destoy-only mode at the very end irrespective of the result of the
previous steps. This ensures that the infrastructure is always
destroyed, even if the CI job is cancelled.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2024-01-09 03:22:13 +05:30
Stefan Prodan
1532687191 Merge pull request #4535 from fluxcd/dependabot/go_modules/github.com/cloudflare/circl-1.3.7
build(deps): bump github.com/cloudflare/circl from 1.3.6 to 1.3.7
2024-01-08 19:08:58 +02:00
dependabot[bot]
128301199d build(deps): bump github.com/cloudflare/circl from 1.3.6 to 1.3.7
Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.3.6 to 1.3.7.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.3.6...v1.3.7)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 16:54:04 +00:00
Max Jonas Werner
fbce734ab6 Merge pull request #4531 from fluxcd/dependabot/github_actions/ci-c6e395c8d6
build(deps): bump the ci group with 2 updates
2024-01-08 08:44:32 +01:00
dependabot[bot]
3294c7c008 build(deps): bump the ci group with 2 updates
Bumps the ci group with 2 updates: [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) and [anchore/sbom-action](https://github.com/anchore/sbom-action).


Updates `google-github-actions/setup-gcloud` from 2.0.0 to 2.0.1
- [Release notes](https://github.com/google-github-actions/setup-gcloud/releases)
- [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/main/CHANGELOG.md)
- [Commits](825196879a...5a5f7b85fc)

Updates `anchore/sbom-action` from 0.15.1 to 0.15.2
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](5ecf649a41...719133684c)

---
updated-dependencies:
- dependency-name: google-github-actions/setup-gcloud
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-08 00:57:55 +00:00
Hidde Beydals
20fbcfadac Merge pull request #4505 from fluxcd/update-hc-tests
Update helm-controller to v0.37.2 in tests
2023-12-19 18:26:43 +01:00
Hidde Beydals
4b0cda68b1 Update helm-controller to v0.37.2 in tests
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-12-19 18:10:05 +01:00
Hidde Beydals
b91a185641 Merge pull request #4501 from fluxcd/update-components
Update toolkit components
2023-12-19 18:03:28 +01:00
fluxcdbot
954e682da8 Update toolkit components
- helm-controller to v0.37.2
  https://github.com/fluxcd/helm-controller/blob/v0.37.2/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-12-19 16:47:53 +00:00
Hidde Beydals
3f3009e507 Merge pull request #4499 from stuebingerb/stuebingerb-patch-1
Fix typo in Git bootstrap
2023-12-19 17:47:14 +01:00
Stuebinger, Bernd
b93d4a4a17 Fix typo in bootstrap_plain_git.go
Signed-off-by: Bernd Stübinger <41049452+stuebingerb@users.noreply.github.com>
2023-12-19 17:34:12 +01:00
Hidde Beydals
d321644e30 Merge pull request #4491 from fluxcd/dependabot/github_actions/ci-d8391f5813
build(deps): bump the ci group with 3 updates
2023-12-19 17:33:43 +01:00
dependabot[bot]
4f20be427e build(deps): bump the ci group with 3 updates
Bumps the ci group with 3 updates: [korthout/backport-action](https://github.com/korthout/backport-action), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer).


Updates `korthout/backport-action` from 2.2.0 to 2.3.0
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](b982d297e3...addffea45a)

Updates `actions/upload-artifact` from 3.1.3 to 4.0.0
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](a8a3f3ad30...c7d193f32e)

Updates `sigstore/cosign-installer` from 3.2.0 to 3.3.0
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](1fc5bd396d...9614fae9e5)

---
updated-dependencies:
- dependency-name: korthout/backport-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-19 08:52:20 +00:00
Hidde Beydals
b4b0eee142 Merge pull request #4494 from fluxcd/dependabot/go_modules/golang.org/x/crypto-0.17.0
build(deps): bump golang.org/x/crypto from 0.16.0 to 0.17.0
2023-12-19 09:48:18 +01:00
dependabot[bot]
2935bea6a2 build(deps): bump golang.org/x/crypto from 0.16.0 to 0.17.0
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.16.0 to 0.17.0.
- [Commits](https://github.com/golang/crypto/compare/v0.16.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-19 08:43:01 +00:00
Hidde Beydals
2bf80d8644 Merge pull request #4495 from fluxcd/dependabot/go_modules/tests/integration/golang.org/x/crypto-0.17.0
build(deps): bump golang.org/x/crypto from 0.16.0 to 0.17.0 in /tests/integration
2023-12-19 09:41:33 +01:00
dependabot[bot]
284dfc05c6 build(deps): bump golang.org/x/crypto in /tests/integration
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.16.0 to 0.17.0.
- [Commits](https://github.com/golang/crypto/compare/v0.16.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-19 08:40:35 +00:00
Hidde Beydals
4a97a13300 Merge pull request #4493 from fluxcd/dependabot/go_modules/tests/azure/golang.org/x/crypto-0.17.0
build(deps): bump golang.org/x/crypto from 0.16.0 to 0.17.0 in /tests/azure
2023-12-19 09:37:55 +01:00
dependabot[bot]
9db8c4a990 build(deps): bump golang.org/x/crypto in /tests/azure
Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.16.0 to 0.17.0.
- [Commits](https://github.com/golang/crypto/compare/v0.16.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/crypto
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-19 00:08:30 +00:00
Hidde Beydals
eafbb753da Merge pull request #4488 from fluxcd/update-test-deps
tests: update API dependencies
2023-12-15 11:07:22 +01:00
Hidde Beydals
0e75d96911 tests: update API dependencies
- github.com/fluxcd/helm-controller/api to v0.37.1
- github.com/fluxcd/kustomize-controller/api to v1.2.1
- github.com/fluxcd/notification-controller/api to v1.2.3
- github.com/fluxcd/source-controller/api to v1.2.3

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-12-15 10:47:02 +01:00
Hidde Beydals
3ae3327a13 Merge pull request #4483 from fluxcd/update-components
Update toolkit components
2023-12-15 10:18:20 +01:00
fluxcdbot
9ec8e717ae Update toolkit components
- helm-controller to v0.37.1
  https://github.com/fluxcd/helm-controller/blob/v0.37.1/CHANGELOG.md
- kustomize-controller to v1.2.1
  https://github.com/fluxcd/kustomize-controller/blob/v1.2.1/CHANGELOG.md
- source-controller to v1.2.3
  https://github.com/fluxcd/source-controller/blob/v1.2.3/CHANGELOG.md
- notification-controller to v1.2.3
  https://github.com/fluxcd/notification-controller/blob/v1.2.3/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-12-15 09:07:50 +00:00
Stefan Prodan
a995989961 Merge pull request #4484 from fluxcd/e2e-k8s-1.29.0
Run conformance tests for Kubernetes v1.29.0
2023-12-14 22:18:18 +02:00
Stefan Prodan
0cf855f16f Run conformance tests for Kubernetes v1.29.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-12-14 21:49:26 +02:00
Stefan Prodan
88f973fc56 Merge pull request #4481 from hoexter/reconcile-reset-help-update
Remove duplicate part of the reconcile hr --reset help message
2023-12-14 12:29:39 +02:00
Sven Hoexter
59e5f4c887 Remove duplicate part of the reconcile hr --reset help message
Signed-off-by: Sven Hoexter <sven@stormbind.net>
2023-12-14 11:14:22 +01:00
Stefan Prodan
e0181209c9 Merge pull request #4478 from fluxcd/rm-deprecated-monitoring
Remove deprecated monitoring configs
2023-12-13 17:32:41 +02:00
Stefan Prodan
056189265b Remove deprecated monitoring from e2e
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-12-13 17:22:03 +02:00
Stefan Prodan
36adfff99e Remove deprecated monitoring configs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-12-13 17:08:12 +02:00
Hidde Beydals
6c45df8c46 Merge pull request #4476 from fluxcd/fix-no-match-err
Properly detect unsupported API errors
2023-12-13 13:26:22 +01:00
Hidde Beydals
bf6754e20c Properly detect unsupported API errors
This can happen when Custom Resource Definitions do not exist on the
cluster. For example, because only a subset of the Flux controllers are
installed on the cluster.

Previously, the detection was based on a combination of error type and
string matching. However, a more reliable (and maintained)
`apimeta.IsNoMatchError` checker is available upstream. Making it less
likely this suddenly stops to matching properly when Kubernetes changes
things.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-12-13 13:16:18 +01:00
Hidde Beydals
bae59fde6a Merge pull request #4468 from fluxcd/2.2.x-backport-label
Add 2.2.x backport label
2023-12-12 17:16:54 +01:00
Hidde Beydals
5ede32b327 Add 2.2.x backport label
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-12-12 17:11:22 +01:00
Stefan Prodan
53ad742e2d Merge pull request #4467 from fluxcd/drop-kube-eol
Drop support for Kubernetes EOL versions
2023-12-12 15:22:36 +01:00
Stefan Prodan
c22d8f28f9 Drop support for Kubernetes EOL versions
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-12-12 16:09:54 +02:00
Stefan Prodan
4c905310c0 Merge pull request #4464 from souleb/update-go-git-provider
updating go-git-providers to v0.19.2
2023-12-12 12:38:12 +01:00
Soule BA
4cb756bfb0 updating go-git-providers to v0.19.2
Signed-off-by: Soule BA <soule@weave.works>
2023-12-12 12:23:07 +01:00
Stefan Prodan
b0629d74b1 Merge pull request #4317 from Jaykul/fix-commit-log
Correct "sync" to "component" in log lines
2023-12-12 12:18:41 +01:00
Joel Bennett
cdcf332491 Correct "sync" to "component" in log lines
Signed-off-by: Joel Bennett <Jaykul@HuddledMasses.org>
2023-12-12 12:01:14 +01:00
Stefan Prodan
7b56fffcc9 Merge pull request #4465 from fluxcd/alpine-3.19
build: Update alpine and kubectl in flux-cli image
2023-12-12 11:38:44 +01:00
Stefan Prodan
04cc1278fb Update alpine and kubectl in flux-cli image
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-12-12 12:27:32 +02:00
Stefan Prodan
b0c697d2ac Merge pull request #4437 from fluxcd/hr-force-reset
Add force and reset flags to `flux reconcile hr`
2023-12-12 11:22:56 +01:00
Stefan Prodan
2b653f9cfa Use IsObjectNamespaced from controller-runtime
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-12-12 11:55:35 +02:00
Stefan Prodan
b4f5d121c8 Update tests to HelmRelease v2beta2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-12-12 11:40:16 +02:00
Stefan Prodan
afcf12194d Adapt tree command to HelmRelease v2beta2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-12-12 11:25:12 +02:00
Stefan Prodan
437a943677 Update HelmRelease to v2beta2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-12-12 11:08:30 +02:00
Stefan Prodan
bed6efa671 Add force and reset flags to flux reconcile hr
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-12-12 11:00:49 +02:00
Hidde Beydals
7cf04515d5 Merge pull request #4461 from fluxcd/update-components
Update toolkit components
2023-12-12 09:55:30 +01:00
Hidde Beydals
eeaffd5c0e Update HelmRelease golden file with new message
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-12-12 09:40:44 +01:00
fluxcdbot
43c9cfc52f Update toolkit components
- helm-controller to v0.37.0
  https://github.com/fluxcd/helm-controller/blob/v0.37.0/CHANGELOG.md
- kustomize-controller to v1.2.0
  https://github.com/fluxcd/kustomize-controller/blob/v1.2.0/CHANGELOG.md
- source-controller to v1.2.2
  https://github.com/fluxcd/source-controller/blob/v1.2.2/CHANGELOG.md
- notification-controller to v1.2.2
  https://github.com/fluxcd/notification-controller/blob/v1.2.2/CHANGELOG.md
- image-reflector-controller to v0.31.1
  https://github.com/fluxcd/image-reflector-controller/blob/v0.31.1/CHANGELOG.md
- image-automation-controller to v0.37.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.37.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-12-12 08:12:44 +00:00
Stefan Prodan
03b76aa0d1 Merge pull request #4463 from fluxcd/go-git-v5.11.0
Update Git dependencies
2023-12-12 08:56:32 +01:00
Stefan Prodan
8ce8b1b690 Update Git dependencies
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-12-12 09:26:11 +02:00
Stefan Prodan
b742799307 Merge pull request #4460 from fluxcd/dependabot/github_actions/ci-4046e4e628
build(deps): bump the ci group with 4 updates
2023-12-11 08:43:28 +01:00
dependabot[bot]
3abc829250 build(deps): bump the ci group with 4 updates
Bumps the ci group with 4 updates: [korthout/backport-action](https://github.com/korthout/backport-action), [actions/setup-go](https://github.com/actions/setup-go), [google-github-actions/setup-gcloud](https://github.com/google-github-actions/setup-gcloud) and [anchore/sbom-action](https://github.com/anchore/sbom-action).


Updates `korthout/backport-action` from 2.1.1 to 2.2.0
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](08bafb375e...b982d297e3)

Updates `actions/setup-go` from 4.1.0 to 5.0.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](93397bea11...0c52d547c9)

Updates `google-github-actions/setup-gcloud` from 1.1.1 to 2.0.0
- [Release notes](https://github.com/google-github-actions/setup-gcloud/releases)
- [Changelog](https://github.com/google-github-actions/setup-gcloud/blob/main/CHANGELOG.md)
- [Commits](e30db14379...825196879a)

Updates `anchore/sbom-action` from 0.15.0 to 0.15.1
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](fd74a6fb98...5ecf649a41)

---
updated-dependencies:
- dependency-name: korthout/backport-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: google-github-actions/setup-gcloud
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-11 01:03:57 +00:00
Sunny
92486b70be Merge pull request #4433 from fluxcd/helm-oci-static-rfc
Update Helm OCI RFC - static HelmRepository design
2023-12-08 22:13:20 +05:30
Sunny
1e37cbeae7 Update Helm OCI RFC - static HelmRepository design
Update the design details to reflect the design change to make the
HelmRepository of type OCI static.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2023-12-08 21:46:05 +05:30
Sunny
0e7dedc728 Merge pull request #4298 from fluxcd/no-reconcile-ready-static
Add support for HelmRepo OCI and NC v1beta3 static objects
2023-12-08 21:32:27 +05:30
Sunny
2649bfb3a3 tests/int: do not wait for static objects
HelmRepo OCI, Alerts and Providers are static objects and don't need to
be checked for readiness.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2023-12-08 21:16:54 +05:30
Sunny
e901e8b6f8 Update all the references of NC v1beta2 to v1beta3
Signed-off-by: Sunny <darkowlzz@protonmail.com>
2023-12-08 21:16:54 +05:30
Sunny
b28b5dd9b9 non-reconciliable & readiness of static objects
Remove reconcile subcommand for static object APIs Alerts and Providers.

Add a isStatic() method on all the object adapters to determine if
they are static and don't have reconciler. The objects that don't
have reconcilers are skipped from reconciliation and readiness
checks like HelmRepository of type OCI.

Add default ready message for `get` subcommand output for static
objects, Alerts, Providers and HelmRepositories of type OCI, as ready
message can't be derived for them from their status.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2023-12-08 21:15:20 +05:30
Sunny
6135c326d8 Merge pull request #4311 from fluxcd/kstatus-readiness
Check readiness of Flux kinds using kstatus
2023-12-08 20:29:16 +05:30
Sunny
05c13fe35a check readiness using kstatus
This change replaces all the many functions and ways of calculating
readiness of objects into one unified way that uses kstatus.Compute() to
check if the object is in progress or current. Only the objects that are
current are considered to be ready. This takes advantage of the kstatus
compatibility of Flux's APIs and also makes sure that they remain
kstatus compatible.

The new isObjectReady() function is also aware of static/statusless
objects and knows how to check their readiness using kstatus. This
prepares the CLI for the upcoming static API objects.

All the is*Ready() functions for specific objects have been removed.

This change doesn't affect any of the existing tests results.

Introduce suspend and resume subcommands for alert-provider.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2023-12-08 19:47:12 +05:30
Sunny
8e3a809e91 Merge pull request #4422 from somtochiama/fix-bootstrap-failed
bootstrap: More details for `context deadline exceeded` error
2023-12-08 19:10:44 +05:30
Somtochi Onyekwere
2289c6cc60 bootstrap: provide better error message on timeout
Check GitRepository and return Ready condition message as part of error
on timeout.

Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-12-08 19:00:01 +05:30
Sunny
b6447800a7 Merge pull request #4454 from fluxcd/update-components
Update toolkit components
2023-12-08 18:59:36 +05:30
fluxcdbot
e4747b55c7 Update toolkit components
- source-controller to v1.2.1
  https://github.com/fluxcd/source-controller/blob/v1.2.1/CHANGELOG.md
- notification-controller to v1.2.1
  https://github.com/fluxcd/notification-controller/blob/v1.2.1/CHANGELOG.md
- image-reflector-controller to v0.31.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.31.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-12-08 13:02:54 +00:00
Max Jonas Werner
3c06ebcda2 Merge pull request #4455 from chewong/bootstrap-typo
Fix typos in flux bootstrap documentation
2023-12-08 12:04:10 +01:00
Ernest Wong
5685afb9d5 Fix typos in flux bootstrap documentation
Signed-off-by: Ernest Wong <chwong719@gmail.com>
2023-12-07 13:03:12 -08:00
Sunny
3da7e1ce2d Merge pull request #4424 from somtochiama/version-check
Show distribution name in flux check and flux version
2023-12-06 20:13:11 +05:30
Somtochi Onyekwere
fd163ddcf2 show cluster instance name and version in flux check and flux version
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-12-06 15:21:55 +01:00
Stefan Prodan
62ac960273 Merge pull request #4447 from fluxcd/dependabot/github_actions/ci-10ada1b5dc
build(deps): bump the ci group with 4 updates
2023-12-04 08:33:10 +02:00
dependabot[bot]
daa25a9a30 build(deps): bump the ci group with 4 updates
Bumps the ci group with 4 updates: [Azure/login](https://github.com/azure/login), [google-github-actions/auth](https://github.com/google-github-actions/auth), [anchore/sbom-action](https://github.com/anchore/sbom-action) and [fossa-contrib/fossa-action](https://github.com/fossa-contrib/fossa-action).


Updates `Azure/login` from 1.4.7 to 1.5.1
- [Release notes](https://github.com/azure/login/releases)
- [Commits](92a5484dfa...de95379fe4)

Updates `google-github-actions/auth` from 1.1.1 to 2.0.0
- [Release notes](https://github.com/google-github-actions/auth/releases)
- [Changelog](https://github.com/google-github-actions/auth/blob/main/CHANGELOG.md)
- [Commits](35b0e87d16...67e9c72af6)

Updates `anchore/sbom-action` from 0.14.3 to 0.15.0
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](78fc58e266...fd74a6fb98)

Updates `fossa-contrib/fossa-action` from 2.0.0 to 3.0.0
- [Release notes](https://github.com/fossa-contrib/fossa-action/releases)
- [Changelog](https://github.com/fossa-contrib/fossa-action/blob/master/CHANGELOG.md)
- [Commits](6728dc6fe9...cdc5065bcd)

---
updated-dependencies:
- dependency-name: Azure/login
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: google-github-actions/auth
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: fossa-contrib/fossa-action
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-12-04 01:15:12 +00:00
Max Jonas Werner
f20fe76168 Merge pull request #4404 from VinGarcia/main
Fix flux install command so it returns an error when unexpected arguments are passed
2023-11-27 18:19:10 +01:00
Vinícius Garcia
b596aefb91 Fix flux install command so it returns an error when unexpected arguments are passed
Co-authored-by: Max Jonas Werner <makkes@users.noreply.github.com>
Signed-off-by: Vinícius Garcia <vingarcia00@gmail.com>
2023-11-27 13:02:14 -03:00
Stefan Prodan
c5b5263b1b Merge pull request #4388 from fluxcd/rfc-0003-keyless-match
[RFC-0003] OIDC identity matching for keyless verification
2023-11-23 13:05:45 +02:00
Stefan Prodan
765ebbacfe OIDC identity matching for keyless verification
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-11-23 10:56:30 +02:00
Stefan Prodan
2fb132bdc5 Merge pull request #4416 from fluxcd/kube-1.28
Update dependencies to Kubernetes v1.28
2023-11-20 17:02:37 +02:00
Stefan Prodan
80efd29ec0 Update dependencies
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-11-20 15:27:46 +02:00
Stefan Prodan
4cb89adec4 Merge pull request #4409 from somtochiama/flux-events
Make events cmd work well with lowercased and only kind selector
2023-11-20 15:01:23 +02:00
Somtochi Onyekwere
aca461912c make flux events work with lowercased kinds
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-11-17 02:25:17 +01:00
Max Jonas Werner
e645402ced Merge pull request #4402 from mclarke47/patch-1
fix build_artifact.go typo
2023-11-15 08:44:54 +01:00
Matthew Clarke
e184ef2618 fix build_artifact.go typo
Signed-off-by: Matthew Clarke <matthewclarke47@gmail.com>
2023-11-14 15:02:54 -05:00
Max Jonas Werner
0fcda45659 Merge pull request #4399 from fluxcd/dependabot/github_actions/ci-da8bbba46e
build(deps): bump the ci group with 2 updates
2023-11-13 08:53:20 +01:00
dependabot[bot]
c5dd6a18fa build(deps): bump the ci group with 2 updates
Bumps the ci group with 2 updates: [korthout/backport-action](https://github.com/korthout/backport-action) and [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer).


Updates `korthout/backport-action` from 2.1.0 to 2.1.1
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](cb79e4e5f4...08bafb375e)

Updates `sigstore/cosign-installer` from 3.1.2 to 3.2.0
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](11086d2504...1fc5bd396d)

---
updated-dependencies:
- dependency-name: korthout/backport-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-13 01:09:39 +00:00
Hidde Beydals
3c8072d0e6 Merge pull request #4380 from fluxcd/tweak-file-perms
Tweak permissions on created files
2023-11-06 12:49:01 +01:00
Hidde Beydals
cbccb8c46a Update fluxcd/pkg dependencies
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-11-06 12:33:39 +01:00
Hidde Beydals
e73d1acb20 Tweak permissions on created files
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-11-06 12:33:38 +01:00
Max Jonas Werner
1b239fbc82 Merge pull request #4385 from fluxcd/dependabot/github_actions/ci-f6b2bf3fcc
build(deps): bump the ci group with 2 updates
2023-11-06 07:45:15 +01:00
dependabot[bot]
0ad4db9f82 build(deps): bump the ci group with 2 updates
Bumps the ci group with 2 updates: [korthout/backport-action](https://github.com/korthout/backport-action) and [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform).


Updates `korthout/backport-action` from 2.0.0 to 2.1.0
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](408fae11ed...cb79e4e5f4)

Updates `hashicorp/setup-terraform` from 2.0.3 to 3.0.0
- [Release notes](https://github.com/hashicorp/setup-terraform/releases)
- [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md)
- [Commits](633666f66e...a1502cd9e7)

---
updated-dependencies:
- dependency-name: korthout/backport-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: hashicorp/setup-terraform
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 00:39:04 +00:00
Sunny
659ce798c9 Merge pull request #4382 from fluxcd/int-test-stop-exit-code
tests/int: Set exit code 1 on tf destroy fail
2023-11-04 16:34:39 +05:30
Sunny
6dd0cbfadd tests/int: Set exit code 1 on tf destroy fail
Explicitly set the test program exit code to 1 when terraform destroy
fails to delete the infrastructure.

This was observed when GKE clusters failed to delete due to delete
protection enabled by default in the latest version of terraform
provider google.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2023-11-04 00:16:54 +05:30
Max Jonas Werner
e7c015d24c Merge pull request #4270 from Azhovan/jabar/add-gitea-bootstrapper
feat: add bootstrap gitea command
2023-11-01 16:12:42 +01:00
Jabar Asadi
dcbca6b1bf feat: add gitea bootstrapper
Signed-off-by: Jabar Asadi <jasadi@d2iq.com>
2023-11-01 15:46:42 +01:00
Stefan Prodan
28971edc07 Merge pull request #4355 from somtochiama/safe-bootstrap
Confirm before overriding installation by another manager
2023-11-01 13:09:12 +02:00
Somtochi Onyekwere
9cd4a7215f Display better uninstall prompt if flux is managed by a different tool
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-11-01 11:36:57 +01:00
Somtochi Onyekwere
2f15ad972b confirm before overriding installation by another manager
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-11-01 11:36:13 +01:00
Stefan Prodan
10cddb457f Merge pull request #4370 from fluxcd/dependabot/go_modules/tests/integration/github.com/docker/docker-24.0.7incompatible
build(deps): bump github.com/docker/docker from 23.0.3+incompatible to 24.0.7+incompatible in /tests/integration
2023-10-30 23:06:19 +02:00
dependabot[bot]
7771107e4d build(deps): bump github.com/docker/docker in /tests/integration
Bumps [github.com/docker/docker](https://github.com/docker/docker) from 23.0.3+incompatible to 24.0.7+incompatible.
- [Release notes](https://github.com/docker/docker/releases)
- [Commits](https://github.com/docker/docker/compare/v23.0.3...v24.0.7)

---
updated-dependencies:
- dependency-name: github.com/docker/docker
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 17:12:00 +00:00
Stefan Prodan
5879d8575a Merge pull request #4369 from fluxcd/dependabot/go_modules/github.com/docker/docker-24.0.7incompatible
build(deps): bump github.com/docker/docker from 24.0.0+incompatible to 24.0.7+incompatible
2023-10-30 18:01:52 +02:00
dependabot[bot]
80810bdc0f build(deps): bump github.com/docker/docker
Bumps [github.com/docker/docker](https://github.com/docker/docker) from 24.0.0+incompatible to 24.0.7+incompatible.
- [Release notes](https://github.com/docker/docker/releases)
- [Commits](https://github.com/docker/docker/compare/v24.0.0...v24.0.7)

---
updated-dependencies:
- dependency-name: github.com/docker/docker
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 15:44:06 +00:00
Max Jonas Werner
e3605acc13 Merge pull request #4366 from fluxcd/dependabot/github_actions/ci-fa2bfd4781
build(deps): bump the ci group with 2 updates
2023-10-30 09:00:07 +01:00
dependabot[bot]
cbce9b5e26 build(deps): bump the ci group with 2 updates
Bumps the ci group with 2 updates: [korthout/backport-action](https://github.com/korthout/backport-action) and [ossf/scorecard-action](https://github.com/ossf/scorecard-action).


Updates `korthout/backport-action` from 1.4.0 to 2.0.0
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](bd68141f07...408fae11ed)

Updates `ossf/scorecard-action` from 2.3.0 to 2.3.1
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](483ef80eb9...0864cf1902)

---
updated-dependencies:
- dependency-name: korthout/backport-action
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 00:09:02 +00:00
Stefan Prodan
1ff76bd4a5 Merge pull request #4358 from fluxcd/dependabot/go_modules/tests/integration/google.golang.org/grpc-1.56.3
build(deps): bump google.golang.org/grpc from 1.55.0 to 1.56.3 in /tests/integration
2023-10-26 08:19:32 +03:00
dependabot[bot]
920fea7d1b build(deps): bump google.golang.org/grpc in /tests/integration
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.55.0 to 1.56.3.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.55.0...v1.56.3)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-25 22:41:32 +00:00
Stefan Prodan
adc04651cf Merge pull request #4345 from somtochiama/safe-bootstrap
Prevent `flux install` from overriding bootrapped cluster
2023-10-23 17:01:05 +03:00
Somtochi Onyekwere
0eba9662e6 prevent flux install from overriding bootrapped cluster
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-10-23 14:39:43 +01:00
Max Jonas Werner
7949135a74 Merge pull request #4351 from fluxcd/dependabot/github_actions/ci-16ff15100a
build(deps): bump the ci group with 1 update
2023-10-23 09:06:52 +02:00
dependabot[bot]
025fe9ced1 build(deps): bump the ci group with 1 update
Bumps the ci group with 1 update: [actions/checkout](https://github.com/actions/checkout).

- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](8ade135a41...b4ffde65f4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-23 00:19:31 +00:00
Hidde Beydals
5f1fe306bb Merge pull request #4329 from fluxcd/tidy-nits
Address various issues throughout code base
2023-10-17 14:24:37 +02:00
Hidde Beydals
f137263fe9 misc: clean up immediately and avoid delayed defer
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-10-17 14:08:11 +02:00
Hidde Beydals
ba1180ad4d misc: fix hypothetical implicit memory aliasing
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-10-17 14:08:10 +02:00
Hidde Beydals
e3f6f0f8b3 misc: sinceSeconds -> sinceDuration
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-10-17 14:08:10 +02:00
Hidde Beydals
f5d3283cff misc: remove unused bits of code
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-10-17 14:08:09 +02:00
Hidde Beydals
3fdb292381 misc: address wait.PollImmediate deprecation
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-10-17 14:08:09 +02:00
Hidde Beydals
22134b1233 misc: use errors.As instead of type checking
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-10-17 14:08:08 +02:00
Hidde Beydals
ce3e264c7d misc: unconditional strings.TrimPrefix
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-10-17 14:08:07 +02:00
Hidde Beydals
5b22207c98 misc: address kustomize/api/filesys deprecation
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-10-17 14:08:07 +02:00
Hidde Beydals
3278a0782f misc: simplify row append
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-10-17 14:08:06 +02:00
Hidde Beydals
43c2359705 misc: address double import
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-10-17 14:08:05 +02:00
Hidde Beydals
a2a3b4f00f misc: use raw string for regex to avoid double esc
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-10-17 14:08:03 +02:00
Hidde Beydals
3c495861a1 misc: address unnecessary use of fmt.Sprintf
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-10-17 14:08:02 +02:00
Hidde Beydals
b67a46371b misc: handle undhandled error
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-10-17 14:08:00 +02:00
Hidde Beydals
16d352b15b misc: address strings.Title deprecation
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-10-17 14:07:58 +02:00
Stefan Prodan
ac95ac0653 Merge pull request #4332 from matheuscscp/oci-verify-secret
Add CLI flags for OCIRepository signature verification
2023-10-17 14:53:20 +03:00
Matheus Pimenta
840e717b72 Add CLI flag for OCIRepo verify secret
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2023-10-17 12:36:35 +01:00
Stefan Prodan
ae0c3c8020 Merge pull request #4284 from errordeveloper/pull-any-artifact
Make `flux pull` work for OCI artifacts produced by other tools
2023-10-12 16:14:35 +03:00
Ilya Dmitrichenko
b46e298b4d Print artifact source and revision only when available
Signed-off-by: Ilya Dmitrichenko <errordeveloper@gmail.com>
2023-10-12 16:00:57 +03:00
Ilya Dmitrichenko
e9d4b42b12 Upgrade github.com/fluxcd/pkg/oci
Signed-off-by: Ilya Dmitrichenko <errordeveloper@gmail.com>
2023-10-12 16:00:57 +03:00
Hidde Beydals
771b7ab98a Merge pull request #4296 from Skarlso/fix-apply-timeout-on-empty-set
fix: only wait for changeset if the result is not empty
2023-10-12 14:12:01 +02:00
Gergely Brautigam
a51ede681f fix: only wait for changeset if the result is not empty
Signed-off-by: Gergely Brautigam <182850+Skarlso@users.noreply.github.com>
2023-10-12 13:54:49 +02:00
Stefan Prodan
be03ca3b5d Merge pull request #4324 from somtochiama/update-ggp
bootstrap: Fix error msg when the Git token doesn't match the repo owner
2023-10-12 14:03:32 +03:00
Somtochi Onyekwere
08cb3858ed Update go-git-providers to v0.19.1
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-10-12 11:48:05 +01:00
Stefan Prodan
39d4270f32 Merge pull request #4323 from fluxcd/update-e2e-deps
e2e: Update Go dependencies
2023-10-12 10:03:44 +03:00
Stefan Prodan
42372d9ef6 e2e: Update Go dependencies
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-10-12 09:43:46 +03:00
Stefan Prodan
e9aa53d2ed Merge pull request #4318 from fluxcd/dependabot/go_modules/golang.org/x/net-0.17.0
build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0
2023-10-12 09:25:18 +03:00
dependabot[bot]
8f7ed74913 build(deps): bump golang.org/x/net from 0.15.0 to 0.17.0
Bumps [golang.org/x/net](https://github.com/golang/net) from 0.15.0 to 0.17.0.
- [Commits](https://github.com/golang/net/compare/v0.15.0...v0.17.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-11 23:12:22 +00:00
Stefan Prodan
2c090dbdf6 Merge pull request #4313 from fluxcd/update-components
Update toolkit components
2023-10-11 18:23:57 +03:00
fluxcdbot
084fb6318d Update toolkit components
- helm-controller to v0.36.2
  https://github.com/fluxcd/helm-controller/blob/v0.36.2/CHANGELOG.md
- kustomize-controller to v1.1.1
  https://github.com/fluxcd/kustomize-controller/blob/v1.1.1/CHANGELOG.md
- source-controller to v1.1.2
  https://github.com/fluxcd/source-controller/blob/v1.1.2/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-10-11 14:02:03 +00:00
Max Jonas Werner
1daa7a8aa4 Merge pull request #4308 from fluxcd/dependabot/github_actions/ci-2f3aab97f7
build(deps): bump the ci group with 1 update
2023-10-09 16:40:44 +02:00
dependabot[bot]
cf78e029aa build(deps): bump the ci group with 1 update
Bumps the ci group with 1 update: [ossf/scorecard-action](https://github.com/ossf/scorecard-action).

- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](08b4669551...483ef80eb9)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-09 00:47:36 +00:00
Stefan Prodan
a337a7ec73 Merge pull request #4285 from matheuscscp/slsa
Add badge for SLSA Level 3
2023-09-27 14:56:40 +03:00
Matheus Pimenta
630ca340dd Add badge for SLSA Level 3
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2023-09-27 12:41:35 +01:00
Max Jonas Werner
e12839567e Merge pull request #4279 from fluxcd/dependabot/github_actions/ci-663ed1f0b6
build(deps): bump the ci group with 1 update
2023-09-25 17:23:03 +02:00
dependabot[bot]
524a729f5d build(deps): bump the ci group with 1 update
Bumps the ci group with 1 update: [actions/checkout](https://github.com/actions/checkout).

- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](3df4ab11eb...8ade135a41)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-25 00:39:21 +00:00
Hidde Beydals
d3eacd4c20 Merge pull request #4228 from sonbui00/fix-4224
Improve AUR package templates
2023-09-19 12:44:34 +02:00
Son Bui
f9e7190a04 Improve AUR package templates
- remove armv6h #4224
- unique source name #4224
- improve pkgver/_srcver #4224
- fix source name in .SRCINFO

Signed-off-by: Son Bui <sonbv00@gmail.com>
2023-09-19 12:23:27 +02:00
Hidde Beydals
15a63e3f2e Merge pull request #4255 from fluxcd/update-azure-test-deps
tests/azure: update controller dependencies
2023-09-19 11:33:11 +02:00
Hidde Beydals
1cba3e4476 tests/azure: update controller dependencies
- github.com/fluxcd/helm-controller/api to v0.36.1
- github.com/fluxcd/image-automation-controller/api to v0.36.1
- github.com/fluxcd/source-controller/api to v1.1.1

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-09-19 11:10:22 +02:00
Stefan Prodan
5c567a1ea8 Merge pull request #4251 from fluxcd/update-components
Update toolkit components
2023-09-19 11:02:20 +03:00
fluxcdbot
0c47d738a9 Update toolkit components
- helm-controller to v0.36.1
  https://github.com/fluxcd/helm-controller/blob/v0.36.1/CHANGELOG.md
- source-controller to v1.1.1
  https://github.com/fluxcd/source-controller/blob/v1.1.1/CHANGELOG.md
- image-automation-controller to v0.36.1
  https://github.com/fluxcd/image-automation-controller/blob/v0.36.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-09-18 15:11:52 +00:00
Stefan Prodan
ebace983b9 Merge pull request #4226 from somtochiama/update-kubeconfig-flag
Update description of kubeconfig specific flag
2023-09-18 13:31:58 +03:00
Somtochi Onyekwere
1654791feb update description of kubeconfig flags
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-09-18 10:48:08 +01:00
Stefan Prodan
c20a57f1df Merge pull request #4246 from fluxcd/dependabot/github_actions/ci-6331f14bff
build(deps): bump the ci group with 4 updates
2023-09-18 10:16:24 +03:00
dependabot[bot]
1fc463c065 build(deps): bump the ci group with 4 updates
Bumps the ci group with 4 updates: [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action), [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action), [docker/login-action](https://github.com/docker/login-action) and [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action).


Updates `docker/setup-qemu-action` from 2.2.0 to 3.0.0
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](2b82ce82d5...68827325e0)

Updates `docker/setup-buildx-action` from 2.10.0 to 3.0.0
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](885d1462b8...f95db51fdd)

Updates `docker/login-action` from 2.2.0 to 3.0.0
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](465a07811f...343f7c4344)

Updates `goreleaser/goreleaser-action` from 4.6.0 to 5.0.0
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)
- [Commits](5fdedb94ab...7ec5c2b0c6)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: goreleaser/goreleaser-action
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-18 01:02:23 +00:00
Max Jonas Werner
904226fcf3 Merge pull request #4238 from fluxcd/upgrade-pkg
Upgrade github.com/fluxcd/pkg/{git,git/gogit}
2023-09-13 19:37:59 +02:00
Max Jonas Werner
c721474e0b Upgrade github.com/fluxcd/pkg/{git,git/gogit}
This allows us to get rid of the replace directive consuming the
filepath-securejoin fork.

Signed-off-by: Max Jonas Werner <mail@makk.es>
2023-09-13 17:49:02 +02:00
Max Jonas Werner
1902f4af0d Merge pull request #4233 from sonbui00/fix-4224-armv6h
chore: remove support armv6h for aur package
2023-09-12 12:56:44 +02:00
Son Bui
bc90e7cf01 chore: remove support armv6h for aur package #4224
Signed-off-by: Son Bui <sonbv00@gmail.com>
2023-09-12 17:15:05 +08:00
Max Jonas Werner
0d18dc128a Merge pull request #4227 from fluxcd/dependabot/github_actions/ci-ae28534c02
build(deps): bump the ci group with 3 updates
2023-09-11 10:31:45 +02:00
dependabot[bot]
8cd7d8c5d2 build(deps): bump the ci group with 3 updates
Bumps the ci group with 3 updates: [actions/checkout](https://github.com/actions/checkout), [actions/upload-artifact](https://github.com/actions/upload-artifact) and [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action).


Updates `actions/checkout` from 3.6.0 to 4.0.0
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](f43a0e5ff2...3df4ab11eb)

Updates `actions/upload-artifact` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](0b7f8abb15...a8a3f3ad30)

Updates `goreleaser/goreleaser-action` from 4.4.0 to 4.6.0
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)
- [Commits](3fa32b8bb5...5fdedb94ab)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: ci
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
- dependency-name: goreleaser/goreleaser-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-11 01:13:25 +00:00
Max Jonas Werner
9b1e160798 Merge pull request #4222 from fluxcd/dependabot/go_modules/tests/integration/github.com/cyphar/filepath-securejoin-0.2.4
build(deps): bump github.com/cyphar/filepath-securejoin from 0.2.3 to 0.2.4 in /tests/integration
2023-09-08 11:07:05 +02:00
dependabot[bot]
ab18cfe1a2 build(deps): bump github.com/cyphar/filepath-securejoin
Bumps [github.com/cyphar/filepath-securejoin](https://github.com/cyphar/filepath-securejoin) from 0.2.3 to 0.2.4.
- [Release notes](https://github.com/cyphar/filepath-securejoin/releases)
- [Commits](https://github.com/cyphar/filepath-securejoin/compare/v0.2.3...v0.2.4)

---
updated-dependencies:
- dependency-name: github.com/cyphar/filepath-securejoin
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-08 07:28:36 +00:00
Stefan Prodan
037562bf7b Merge pull request #4221 from fluxcd/dependabot/go_modules/tests/azure/github.com/cyphar/filepath-securejoin-0.2.4
build(deps): bump github.com/cyphar/filepath-securejoin from 0.2.3 to 0.2.4 in /tests/azure
2023-09-08 10:26:43 +03:00
dependabot[bot]
2d1937a5c8 build(deps): bump github.com/cyphar/filepath-securejoin in /tests/azure
Bumps [github.com/cyphar/filepath-securejoin](https://github.com/cyphar/filepath-securejoin) from 0.2.3 to 0.2.4.
- [Release notes](https://github.com/cyphar/filepath-securejoin/releases)
- [Commits](https://github.com/cyphar/filepath-securejoin/compare/v0.2.3...v0.2.4)

---
updated-dependencies:
- dependency-name: github.com/cyphar/filepath-securejoin
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-07 13:02:50 +00:00
Max Jonas Werner
c5723821da Merge pull request #4215 from fluxcd/dependabot/github_actions/ci-2ac463fa23
build(deps): bump the ci group with 4 updates
2023-09-04 12:51:56 +02:00
dependabot[bot]
dbb9ea303d build(deps): bump the ci group with 4 updates
Bumps the ci group with 4 updates: [actions/checkout](https://github.com/actions/checkout), [actions/setup-go](https://github.com/actions/setup-go), [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) and [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer).


Updates `actions/checkout` from 3.4.0 to 3.6.0
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3.4.0...f43a0e5ff2bd294095638e18286ca9a3d1956744)

Updates `actions/setup-go` from 4.0.0 to 4.1.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v4...93397bea11091df50f3d7e59dc26a7711a8bcfbe)

Updates `docker/setup-buildx-action` from 2.9.1 to 2.10.0
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](4c0219f9ac...885d1462b8)

Updates `sigstore/cosign-installer` from 3.1.1 to 3.1.2
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](6e04d228eb...11086d2504)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-04 00:52:11 +00:00
Stefan Prodan
47c8e5f44d Merge pull request #4213 from fluxcd/dependabot/go_modules/tests/integration/github.com/docker/distribution-2.8.2incompatible
build(deps): bump github.com/docker/distribution from 2.8.1+incompatible to 2.8.2+incompatible in /tests/integration
2023-09-01 11:16:53 +03:00
dependabot[bot]
aff3365750 build(deps): bump github.com/docker/distribution in /tests/integration
Bumps [github.com/docker/distribution](https://github.com/docker/distribution) from 2.8.1+incompatible to 2.8.2+incompatible.
- [Release notes](https://github.com/docker/distribution/releases)
- [Commits](https://github.com/docker/distribution/compare/v2.8.1...v2.8.2)

---
updated-dependencies:
- dependency-name: github.com/docker/distribution
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-09-01 07:59:47 +00:00
Stefan Prodan
d61efd1e2c Merge pull request #4212 from fluxcd/dependabot/go_modules/tests/integration/github.com/docker/docker-23.0.3incompatible
build(deps): bump github.com/docker/docker from 23.0.1+incompatible to 23.0.3+incompatible in /tests/integration
2023-09-01 10:55:56 +03:00
dependabot[bot]
5d1cadcd5e build(deps): bump github.com/docker/docker in /tests/integration
Bumps [github.com/docker/docker](https://github.com/docker/docker) from 23.0.1+incompatible to 23.0.3+incompatible.
- [Release notes](https://github.com/docker/docker/releases)
- [Commits](https://github.com/docker/docker/compare/v23.0.1...v23.0.3)

---
updated-dependencies:
- dependency-name: github.com/docker/docker
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-31 18:24:29 +00:00
Sunny
ffe5657367 Merge pull request #4092 from fluxcd/azure-e2e-refactor
Add new Azure and GCP e2e test setup
2023-08-31 23:52:53 +05:30
Sunny
a9a67a27e7 workflows/e2e-azure: Disable new azure job
There's no azure subscription to run the tests against at present.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2023-08-31 21:39:39 +05:30
Sunny
c2e526ca57 workflows/e2e-gcp: Fix secret variable typo
Also update terraform config to add a description to the service
account and a note about github organization repo.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2023-08-31 21:39:14 +05:30
Somtochi Onyekwere
7141271bae instructions for test user in Azure DevOps and GCP source repo
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-08-29 17:43:59 +05:30
Sunny
3b637a5125 tests/int: Separate ssh key names for Azure & GCP
- Also update IAM setup docs to include github terraform provider
  configuration with github owner so that it can be used with a
  repository under an organization.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2023-08-29 17:43:59 +05:30
Somtochi Onyekwere
cdc1c98a11 add workflow for gcp
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-08-29 17:43:59 +05:30
Sunny
ab94c8064c tests/int: Add IAM setup automation docs and misc fixes
Add instructions about how to create service accounts with IAM
permissions and populate the secrets and variables required in the CI.

Update the panic recovery code to ensure that the exit status surfaces
on panic along with a log message.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2023-08-29 17:43:59 +05:30
Somtochi Onyekwere
e63ddb99de make tests for notifications provider agnostic
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-08-29 17:43:59 +05:30
Somtochi Onyekwere
7c1b897919 Add terraform files and config for GCP
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-08-29 17:43:59 +05:30
Somtochi Onyekwere
f6b0c6e7ef Add refactored e2e tests
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-08-29 17:43:53 +05:30
Max Jonas Werner
1730f3c46b Merge pull request #4198 from fluxcd/2.1.x-label
Add 2.1.x backport label
2023-08-28 13:09:48 +02:00
Max Jonas Werner
a814487d4b Add 2.1.x backport label
Signed-off-by: Max Jonas Werner <mail@makk.es>
2023-08-28 12:42:24 +02:00
Stefan Prodan
cd90bc2c92 Merge pull request #4197 from fluxcd/fix-gh-action-links
Fix links to fluxcd.io
2023-08-28 12:19:58 +03:00
Stefan Prodan
709b17ce59 Fix links to fluxcd.io
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-08-28 12:10:03 +03:00
Stefan Prodan
39fa7d5502 Merge pull request #4195 from fluxcd/dependabot/github_actions/ci-17ac1b16d8
build(deps): bump the ci group with 2 updates
2023-08-28 11:25:39 +03:00
dependabot[bot]
29f77d2cb3 build(deps): bump the ci group with 2 updates
Bumps the ci group with 2 updates: [actions/checkout](https://github.com/actions/checkout) and [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator).


Updates `actions/checkout` from 3.5.3 to 3.6.0
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](c85c95e3d7...f43a0e5ff2)

Updates `slsa-framework/slsa-github-generator` from 1.8.0 to 1.9.0
- [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases)
- [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v1.8.0...v1.9.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: slsa-framework/slsa-github-generator
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-28 00:57:07 +00:00
Stefan Prodan
22cf986a79 Merge pull request #4169 from fluxcd/monitoring-deprecation
Add monitoring configuration deprecation notice
2023-08-24 12:35:06 +03:00
Sunny
d80b697fbd Add monitoring configuration deprecation notice
Signed-off-by: Sunny <darkowlzz@protonmail.com>
2023-08-24 14:51:15 +05:30
Stefan Prodan
8b9aaad20a Merge pull request #4189 from fluxcd/update-deps
Update dependencies
2023-08-24 12:15:41 +03:00
Hidde Beydals
4080d5807a tests/azure: update dependencies
- github.com/Azure/azure-event-hubs-go/v3 to v3.6.1
- github.com/fluxcd/helm-controller/api to v0.36.0
- github.com/fluxcd/image-automation-controller/api to v0.36.0
- github.com/fluxcd/image-reflector-controller/api to v0.30.0
- github.com/fluxcd/kustomize-controller/api to v1.1.0
- github.com/fluxcd/notification-controller/api to v1.1.0
- github.com/fluxcd/pkg/apis/event to v0.5.2
- github.com/fluxcd/pkg/apis/meta to v1.1.2
- github.com/fluxcd/pkg/git to v0.13.0
- github.com/fluxcd/pkg/git/gogit to v0.13.0
- github.com/fluxcd/source-controller/api to v1.1.0
- github.com/go-git/go-git/v5 to v5.8.1
- k8s.io/api to v0.27.4
- k8s.io/apimachinery to v0.27.4
- k8s.io/client-go to v0.27.4
- sigs.k8s.io/controller-runtime to v0.15.1

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-08-24 10:56:11 +02:00
Hidde Beydals
7c2072eed1 Update dependencies
- github.com/ProtonMail/go-crypto to v0.0.0-20230717121422-5aa5874ade95
- github.com/distribution/distribution/v3 to v3.0.0-20230823142118-4f7424c8eb41
- github.com/fluxcd/pkg/apis/event to v0.5.2
- github.com/fluxcd/pkg/git to v0.13.0
- github.com/fluxcd/pkg/git/gogit to v0.13.0
- github.com/fluxcd/pkg/oci to v0.31.0
- github.com/fluxcd/pkg/runtime to v0.42.0
- github.com/fluxcd/pkg/sourceignore to v0.3.5
- github.com/fluxcd/pkg/ssa to v0.32.0
- github.com/fluxcd/pkg/ssh to v0.8.2
- github.com/go-git/go-git/v5 to v5.8.1
- github.com/google/go-containerregistry to v0.16.1
- github.com/onsi/gomega to v1.27.10
- golang.org/x/crypto to v0.12.0
- golang.org/x/term to v0.11.0
- k8s.io/cli-runtime to v0.27.4
- k8s.io/kubectl to v0.27.4
- sigs.k8s.io/cli-utils to v0.35.0

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-08-24 10:54:40 +02:00
Stefan Prodan
d21e779b9f Merge pull request #4186 from fluxcd/update-components
Update toolkit components
2023-08-24 11:19:58 +03:00
fluxcdbot
f7e5223533 Update toolkit components
- helm-controller to v0.36.0
  https://github.com/fluxcd/helm-controller/blob/v0.36.0/CHANGELOG.md
- kustomize-controller to v1.1.0
  https://github.com/fluxcd/kustomize-controller/blob/v1.1.0/CHANGELOG.md
- source-controller to v1.1.0
  https://github.com/fluxcd/source-controller/blob/v1.1.0/CHANGELOG.md
- notification-controller to v1.1.0
  https://github.com/fluxcd/notification-controller/blob/v1.1.0/CHANGELOG.md
- image-reflector-controller to v0.30.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.30.0/CHANGELOG.md
- image-automation-controller to v0.36.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.36.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-08-24 08:02:17 +00:00
Sanskar Jaiswal
525bd21cd1 Merge pull request #4147 from fluxcd/tls-flags
Adopt Kubernetes style TLS Secrets and add relevant flags
2023-08-23 15:09:40 +05:30
Sanskar Jaiswal
8df27d8c3a modify flux create secret tls to create secrets of type TLS
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-08-23 14:44:10 +05:30
Sanskar Jaiswal
6464d6c7b4 add deprecation warning per secret key field and constant
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-08-23 14:44:09 +05:30
Sanskar Jaiswal
2fc9d73c5f add flag --ca-crt-file to flux create secret git
Add flag `--ca-crt-file` to `flux create secret git` to specify the path
to CA certificate. It takes precedence over `--ca-file` and uses the
key `ca.crt` in the generated Secret.

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-08-23 14:44:09 +05:30
Sanskar Jaiswal
b32051df53 deprecate TLS flags for flux create secret helm
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-08-23 14:44:09 +05:30
Sanskar Jaiswal
bf36a29ca2 add support for Kubernetes TLS keys for flux create secret tls
Add support for using `tls.key`, `tls.crt` and `ca.crt` keys while
generating a Secret, using the `--tls-key-file`, `--tls-crt-file` and
`--ca-crt-file` flags respectively.
Mark the flags `--key-file`, `--cert-file` and `--ca-file` as
deprecated.

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-08-23 14:44:09 +05:30
Stefan Prodan
a2ac94b625 Merge pull request #4183 from somtochiama/fix-auto-complete
Fix autocompletion for helm chart
2023-08-22 16:57:34 +03:00
Somtochi Onyekwere
c81afa6993 fix autocompletion for helm chart
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-08-22 14:19:08 +01:00
Hidde Beydals
4fa93ec4d6 Merge pull request #4182 from fluxcd/clean-http-client
manifestgen/install: use clean default HTTP client
2023-08-22 14:20:17 +02:00
Hidde Beydals
00c6ac81b9 manifestgen/install: use clean default HTTP client
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-08-22 14:05:12 +02:00
Hidde Beydals
8801031f06 Merge pull request #4181 from fluxcd/cmd-events-err-fix
cmd/events: handle error value
2023-08-22 13:57:56 +02:00
Hidde Beydals
2a033215a4 cmd/events: handle error value
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-08-22 13:39:39 +02:00
Stefan Prodan
8214fefde6 Merge pull request #4180 from fluxcd/fix-version-info
Fix controller version info
2023-08-22 12:56:14 +03:00
Stefan Prodan
4cdb75b74d Fix controller version info
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-08-22 12:36:58 +03:00
Stefan Prodan
eac82585ad Merge pull request #4177 from fluxcd/min-rsa-size
Set min value for the `--ssh-rsa-bits` flag
2023-08-22 11:59:35 +03:00
Stefan Prodan
2c76c70205 Set min value for the --ssh-rsa-bits flag
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-08-22 11:42:33 +03:00
Hidde Beydals
a9e09b856f Merge pull request #4176 from fluxcd/e2e-improvements
ci: disable fail-fast for ARM end-to-end
2023-08-21 17:40:59 +02:00
Hidde Beydals
c03a0b7f87 ci: disable fail-fast for ARM end-to-end
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-08-21 17:17:02 +02:00
Hidde Beydals
0ab8740832 cmd: address typo in end-to-end tests
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-08-21 17:17:02 +02:00
Hidde Beydals
aa1eae22c7 Merge pull request #4175 from fluxcd/update-securejoin
build: update securejoin dependency
2023-08-21 16:58:23 +02:00
Hidde Beydals
4f3b34f86b build: update securejoin dependency
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-08-21 16:36:52 +02:00
Stefan Prodan
8435cb8df9 Merge pull request #4167 from fluxcd/dependabot/github_actions/ci-ab6beeed51
build(deps): bump the ci group with 2 updates
2023-08-18 12:16:37 +03:00
dependabot[bot]
0d457d6d11 build(deps): bump the ci group with 2 updates
Bumps the ci group with 2 updates: [korthout/backport-action](https://github.com/korthout/backport-action) and [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action).


Updates `korthout/backport-action` from 1.3.1 to 1.4.0
- [Release notes](https://github.com/korthout/backport-action/releases)
- [Commits](bf5fdd624b...bd68141f07)

Updates `goreleaser/goreleaser-action` from 4.3.0 to 4.4.0
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)
- [Commits](336e29918d...3fa32b8bb5)

---
updated-dependencies:
- dependency-name: korthout/backport-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: goreleaser/goreleaser-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-17 09:50:14 +00:00
Stefan Prodan
484015ceea Merge pull request #4166 from fluxcd/e2e-kube-1.28.0
e2e: Add Kubernetes v1.28.0 to conformance tests
2023-08-17 12:47:35 +03:00
Stefan Prodan
1b5c4245df e2e: Add Kubernetes v1.28.0 to conformance tests
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-08-17 11:45:36 +03:00
Stefan Prodan
ce68a06436 Merge pull request #4142 from fluxcd/dependabot/github_actions/ci-a9a55711ae
build(deps): bump the ci group with 2 updates
2023-08-10 12:00:07 +03:00
dependabot[bot]
7273059cb9 build(deps): bump the ci group with 2 updates
Bumps the ci group with 2 updates: [actions/setup-go](https://github.com/actions/setup-go) and [slsa-framework/slsa-github-generator](https://github.com/slsa-framework/slsa-github-generator).


Updates `actions/setup-go` from 4.0.1 to 4.1.0
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](fac708d667...93397bea11)

Updates `slsa-framework/slsa-github-generator` from 1.7.0 to 1.8.0
- [Release notes](https://github.com/slsa-framework/slsa-github-generator/releases)
- [Changelog](https://github.com/slsa-framework/slsa-github-generator/blob/main/CHANGELOG.md)
- [Commits](https://github.com/slsa-framework/slsa-github-generator/compare/v1.7.0...v1.8.0)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: slsa-framework/slsa-github-generator
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-09 16:35:22 +00:00
Hidde Beydals
a03ea8ace3 Merge pull request #4151 from fluxcd/enable-codeql-quality
ci: enable security-and-quality CodeQL query
2023-08-09 18:32:15 +02:00
Hidde Beydals
d6cbfa39f8 ci: enable security-and-quality CodeQL query
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-08-09 18:14:39 +02:00
Sunny
a2e4cbbfe2 Merge pull request #4134 from sestegra/monitor
monitoring: add OCIRepository in cluster dashboard and new source panels in control-plane dashboard
2023-08-09 14:42:35 +05:30
Stéphane Este-Gracias
23518953d0 monitoring: add Sources Stats panels
Signed-off-by: Stéphane Este-Gracias <sestegra@gmail.com>
2023-08-09 14:22:33 +05:30
Stéphane Este-Gracias
2716ca449e monitoring: add OCIRepository in cluster dashboard panels
Signed-off-by: Stéphane Este-Gracias <sestegra@gmail.com>
2023-08-09 14:21:49 +05:30
Hidde Beydals
ecb1ad6ca5 Merge pull request #4140 from somtochiama/disable-test 2023-08-08 20:48:09 +02:00
Somtochi Onyekwere
3fa7af12e0 disable e2e test
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-08-08 16:35:47 +01:00
Stefan Prodan
12efb1967e Merge pull request #4131 from mraerino/fix/diff-with-multiobj
Fix selection of kustomization resource from multi doc yaml
2023-08-07 14:04:32 +03:00
Marcus Weiner
56b1e80758 Fix selection of kustomization resource from multi doc yaml
Signed-off-by: Marcus Weiner <marcus.weiner@gmail.com>
2023-08-07 12:05:29 +02:00
Stefan Prodan
baf874ea67 Merge pull request #4126 from fluxcd/min-kube-1.25
Set Kubernetes min version to 1.25
2023-08-03 13:39:24 +03:00
Stefan Prodan
28262f59d3 Set Kubernetes min version to 1.25
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-08-02 14:17:30 +03:00
Stefan Prodan
44d69d6fc0 Merge pull request #4077 from fluxcd/dependabot/github_actions/ci-f6f7181596
build(deps): bump the ci group with 2 updates
2023-07-17 18:24:01 +03:00
dependabot[bot]
4d76ff4e6a build(deps): bump the ci group with 2 updates
Bumps the ci group with 2 updates: [helm/kind-action](https://github.com/helm/kind-action) and [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action).


Updates `helm/kind-action` from 1.7.0 to 1.8.0
- [Release notes](https://github.com/helm/kind-action/releases)
- [Commits](fa81e57adf...dda0770415)

Updates `docker/setup-buildx-action` from 2.8.0 to 2.9.1
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](16c0bc4a6e...4c0219f9ac)

---
updated-dependencies:
- dependency-name: helm/kind-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: ci
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-17 00:37:57 +00:00
Stefan Prodan
1eaf259e52 Merge pull request #4068 from fluxcd/up-deps-tests
Update dependencies
2023-07-11 14:51:19 +03:00
Stefan Prodan
bca1fa0968 Update dependencies
- bump the APIs packages in tests
- bump golang crypto and term to latest

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-11 14:14:27 +03:00
Hidde Beydals
bd79884d84 Merge pull request #4065 from fluxcd/action-toolcache
action: support `openssl` and `sha256sum`
2023-07-11 11:11:11 +02:00
Hidde Beydals
3b42b200d3 action: support openssl and sha256sum
As availability may be limited in some edge cases.

When a job is for example running within a container, `openssl` is not
always available. However, when running on a macOS or Windows runner,
the actual opposite is true.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-07-11 11:10:08 +02:00
souleb
dad4a20fa7 Merge pull request #4062 from souleb/fix-diff-kustomization
diff: Take into account the server-side inventory for local Flux Kustomizations
2023-07-11 10:32:38 +02:00
Soule BA
90d95988aa Take into account the server-side inventory for local diff
If implemented users will be able to use a local kustomization file while
retrieving status from the live kustomization file.

Signed-off-by: Soule BA <soule@weave.works>
2023-07-11 10:19:12 +02:00
Hidde Beydals
e88577fe52 Merge pull request #4061 from fluxcd/action-toolcache
action: re-allow configuration of non-default token
2023-07-10 16:39:52 +02:00
Hidde Beydals
6fa495b843 action: re-allow configuration of non-default token
To allow usage of action on GitHub Enterprise instances.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-07-10 16:25:36 +02:00
Stefan Prodan
3311bfd3ca Merge pull request #4057 from fluxcd/update-components
Update toolkit components
2023-07-10 15:32:15 +03:00
fluxcdbot
cfd4d285da Update toolkit components
- kustomize-controller to v1.0.1
  https://github.com/fluxcd/kustomize-controller/blob/v1.0.1/CHANGELOG.md
- source-controller to v1.0.1
  https://github.com/fluxcd/source-controller/blob/v1.0.1/CHANGELOG.md
- image-reflector-controller to v0.29.1
  https://github.com/fluxcd/image-reflector-controller/blob/v0.29.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-07-10 12:02:21 +00:00
Stefan Prodan
c751bf6bdb Merge pull request #4052 from fluxcd/docs-gh-action
docs: Link to the Flux GitHub Action documentation
2023-07-07 18:10:17 +03:00
Stefan Prodan
6f94844a35 docs: Link to the Flux GitHub Action documentation
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-07 17:45:51 +03:00
Hidde Beydals
f74d097837 Merge pull request #4051 from fluxcd/action-toolcache
action: use `$RUNNER_TOOL_CACHE`, support MacOS and Windows, validate checksum
2023-07-07 12:08:57 +02:00
Hidde Beydals
0a58b0cdad ci: add workflow to test action
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-07-07 11:56:00 +02:00
Hidde Beydals
6f94ec728f action: rewrite action to use $RUNNER_TOOL_CACHE
Plus the verification of the SHA256 of the archive, as advertised in
the checksum file published together with the release.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-07-07 11:50:33 +02:00
Stefan Prodan
e3747209eb Merge pull request #4043 from fluxcd/ci-release-fix-slsa-tag
ci: release: extract the image tag from GITHUB_REF
2023-07-06 11:11:01 +03:00
Stefan Prodan
36b39a50a4 ci: release: extract the image tag from GITHUB_REF
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-06 10:40:50 +03:00
Hidde Beydals
d9c7ff8685 Merge pull request #4046 from fluxcd/fix-backport
ci: backport: set write permissions
2023-07-06 09:35:23 +02:00
Stefan Prodan
625d865625 ci: backport: set write permissions
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-06 10:21:16 +03:00
Hidde Beydals
00c6bd0240 Merge pull request #4041 from fluxcd/ci-release-fix-slsa
ci: release: disable interpretation backslash esc
2023-07-05 17:21:54 +02:00
Hidde Beydals
506da2466b ci: release: disable interpretation backslash esc
This ensures `jq` can properly parse the given `ARTIFACTS` JSON blob,
as it contains escaped newlines in for example the Brew formula.

This should address the issue with the generation of SLSA metadata.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-07-05 17:07:03 +02:00
Stefan Prodan
9ea0a535ea Merge pull request #4035 from fluxcd/up-go-deps
Update dependencies
2023-07-04 18:03:22 +03:00
Stefan Prodan
25d2a3cdf1 Bump kubectl to v1.27.3
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-04 17:37:10 +03:00
Stefan Prodan
9fa59df798 Update dependencies
- k8s.io/* v0.27.3
- github.com/fluxcd/go-git-providers v0.18.0
- github.com/fluxcd/pkg/git v0.12.3
- github.com/fluxcd/pkg/oci v0.28.0
- github.com/fluxcd/pkg/runtime v0.40.0
- github.com/fluxcd/pkg/ssa v0.28.2
- github.com/fluxcd/pkg/ssh v0.8.0
- github.com/homeport/dyff v1.5.8
- golang.org/x/crypto v0.10.0

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-04 17:35:34 +03:00
Stefan Prodan
93c0467f91 Merge pull request #4006 from fluxcd/update-components
Update toolkit components
2023-07-04 17:22:34 +03:00
fluxcdbot
c377fe7651 Update toolkit components
- helm-controller to v0.35.0
  https://github.com/fluxcd/helm-controller/blob/v0.35.0/CHANGELOG.md
- kustomize-controller to v1.0.0
  https://github.com/fluxcd/kustomize-controller/blob/v1.0.0/CHANGELOG.md
- source-controller to v1.0.0
  https://github.com/fluxcd/source-controller/blob/v1.0.0/CHANGELOG.md
- notification-controller to v1.0.0
  https://github.com/fluxcd/notification-controller/blob/v1.0.0/CHANGELOG.md
- image-reflector-controller to v0.29.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.29.0/CHANGELOG.md
- image-automation-controller to v0.35.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.35.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-07-04 12:26:47 +00:00
Stefan Prodan
9ed24522bb Merge pull request #4033 from fluxcd/docs-release-links
docs: link to releases spec from website
2023-07-04 15:26:15 +03:00
Stefan Prodan
ddcabbf95d docs: link to releases spec from website
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-04 15:13:06 +03:00
Stefan Prodan
5c58b45340 Merge pull request #4031 from fluxcd/ci-e2e-k8s
Run conformance tests for Kubernetes v1.27.3
2023-07-04 14:59:55 +03:00
Stefan Prodan
5690b639cd Run conformance tests for Kubernetes v1.27.3
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-04 14:46:43 +03:00
Stefan Prodan
22d0ff8173 Merge pull request #4029 from fluxcd/ci-release-workflows
Run e2e tests on release branches
2023-07-04 14:11:03 +03:00
Stefan Prodan
8e61fe805c ci: group all GH action updates under the same PR
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-04 13:43:22 +03:00
Stefan Prodan
5356436c94 ci: enable workflows for release/** branches
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-04 13:27:33 +03:00
Stefan Prodan
8ca8b92f92 ci: run backport under fluxcdbot account
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-04 12:21:22 +03:00
Stefan Prodan
7c98f20e11 Merge pull request #3254 from fluxcd/docs-release-spec
Flux GA release spec and long term support pledge
2023-07-03 16:57:09 +03:00
Stefan Prodan
1a8798a5d4 Link to release cadence from minor section
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-03 16:41:11 +03:00
Hidde Beydals
926842a216 Address review comment section titles
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-07-03 16:41:08 +03:00
Hidde Beydals
9e11b860ec Address release procedure review nits
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-07-03 16:41:08 +03:00
Hidde Beydals
5abf1ee817 Address various nits
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-07-03 16:41:08 +03:00
Hidde Beydals
4e78e80619 Document various release procedures
This lacks documentation for the Terraform provider repository, which
is a higher level component than anything documented here.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-07-03 16:41:08 +03:00
Stefan Prodan
33be9840f0 Apply suggestions from code review
Co-authored-by: Max Jonas Werner <makkes@users.noreply.github.com>
Co-authored-by: Aurel Canciu <aurelcanciu@gmail.com>
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-03 16:41:08 +03:00
Stefan Prodan
33fdaee399 Move the release procedures to dedicated doc
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-03 16:41:07 +03:00
Stefan Prodan
91660a98d5 Add SLSA provenance to release artifacts
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-03 16:41:07 +03:00
Stefan Prodan
8d5c4492d8 Apply suggestions from code review
Co-authored-by: Aurel Canciu <aurelcanciu@gmail.com>
Co-authored-by: Hidde Beydals <hiddeco@users.noreply.github.com>
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-03 16:41:07 +03:00
Stefan Prodan
29ad52bb46 Add Flux release spec
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-03 16:41:07 +03:00
Stefan Prodan
590b7b7682 Add controller release artifacts spec
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-03 16:41:07 +03:00
Stefan Prodan
ea06d9614f Add API versioning spec
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-03 16:41:07 +03:00
Stefan Prodan
41ba55634a Add controller release spec
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-03 16:41:07 +03:00
Stefan Prodan
f09616e780 Add shared packages release spec
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-03 16:41:07 +03:00
Stefan Prodan
a4d7e35cdd Cleanup internal docs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-07-03 16:41:06 +03:00
Stefan Prodan
346e0ea734 Merge pull request #4028 from fluxcd/prefix-ggp-error
Annotate errors from go-git-providers
2023-07-03 16:38:58 +03:00
Max Jonas Werner
ce854236cf Annotate errors from go-git-providers
closes #3623

Signed-off-by: Max Jonas Werner <mail@makk.es>
2023-07-03 13:55:53 +02:00
Hidde Beydals
1588663358 Merge pull request #4027 from fluxcd/bump-gogit
Update go-git to unreleased v5.8.0
2023-07-03 13:39:53 +02:00
Hidde Beydals
68fdc0a2b6 Update go-git to unreleased v5.8.0
To improve support for Git >=v2.41.0.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-07-03 12:55:59 +02:00
Stefan Prodan
d335f8f981 Merge pull request #4025 from fluxcd/dependabot/github_actions/docker/setup-buildx-action-2.8.0
build(deps): bump docker/setup-buildx-action from 2.7.0 to 2.8.0
2023-06-30 18:01:28 +03:00
dependabot[bot]
b4efd15afd build(deps): bump docker/setup-buildx-action from 2.7.0 to 2.8.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.7.0 to 2.8.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](ecf95283f0...16c0bc4a6e)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-30 14:47:48 +00:00
Stefan Prodan
0e6f9da761 Merge pull request #4024 from fluxcd/dependabot/github_actions/sigstore/cosign-installer-3.1.1
build(deps): bump sigstore/cosign-installer from 3.1.0 to 3.1.1
2023-06-30 17:47:07 +03:00
dependabot[bot]
02b34f05c8 build(deps): bump sigstore/cosign-installer from 3.1.0 to 3.1.1
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](d13028333d...6e04d228eb)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-30 14:29:43 +00:00
Stefan Prodan
f26800eb85 Merge pull request #4023 from fluxcd/backport-automation
Add backport GitHub Action workflow
2023-06-30 17:29:19 +03:00
Stefan Prodan
d2cc01169b Declaratively define (and sync) labels
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-06-30 17:04:12 +03:00
Stefan Prodan
d8924cd8a9 Add backport GitHub Action workflow
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-06-30 16:55:54 +03:00
Stefan Prodan
25af5d2968 Merge pull request #3755 from rishinair11/add_multiple_args
Allow multiple arguments for "flux suspend/resume"
2023-06-29 11:20:12 +03:00
Rishikesh Nair
3580d4ff85 Add examples for resuming/suspending multiple objects
Signed-off-by: Rishikesh Nair <alienware505@gmail.com>
2023-06-29 12:50:38 +05:30
Rishikesh Nair
42607aadc3 Add support for passing multiple objects to suspend/resume commands
This change adds support for running `suspend/resume` on multiple
supported resources at the same time. This improves the user
experience by converting

```
flux suspend ks operator && \
flux suspend ks database && \
flux suspend ks app
```

to

```
flux suspend ks operator database app
```

This works for all types of resources (Kustomizations, Sources, etc.)
since it has been implemented at the `suspend.go` and `resume.go`
level.

When the `--wait` flag is passed to the `resume` command, then Flux
will wait for all resources in parallel within a goroutine each.

Each object is only processed once, even if user provided its name
more than once.

If suspension or resuming fails for one object, it is still carried
out for the remaining objects.

As a special case, the old behaviour of `resume` is retained, i.e.
when only one object name is provided, `resume` waits for the object
to become ready even if the `--wait` flag is not provided. In all
other cases the `--wait` flag is always considered.

closes #3746
closes #3793

Co-Authored-By: Max Jonas Werner <mail@makk.es>
Signed-off-by: Rishikesh Nair <alienware505@gmail.com>
Signed-off-by: Max Jonas Werner <mail@makk.es>
2023-06-29 08:23:13 +02:00
Stefan Prodan
2fe86a4cde Merge pull request #4020 from fluxcd/min-kube-1.24
Set minimum supported version to Kubernetes 1.24.0
2023-06-28 18:33:19 +03:00
Stefan Prodan
db0256e0f7 Set minimum supported version to Kubernetes 1.24.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-06-28 17:36:04 +03:00
Stefan Prodan
224e808c21 Merge pull request #4018 from fluxcd/fix-push-aws-doc
docs: Fix the `flux push` example for ECR
2023-06-27 17:59:45 +03:00
Stefan Prodan
6ed6b937f8 Fix the flux push example for ECR
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-06-27 16:33:40 +03:00
Stefan Prodan
99b940f56f Merge pull request #4015 from fluxcd/go.mod-1.20
Align `go.mod` version with Kubernetes (Go 1.20)
2023-06-27 08:35:52 +03:00
Stefan Prodan
66a417a3ee Bump Go to 1.20 in aur deps
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-06-26 19:52:26 +03:00
Stefan Prodan
761762bdc0 Align go.mod version with Kubernetes (Go 1.20)
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-06-26 19:36:20 +03:00
Sanskar Jaiswal
bd8ada9e4a Merge pull request #3990 from fluxcd/rfc-insecure-http
RFC-0004: add section about proxy
2023-06-26 19:27:50 +05:30
Sanskar Jaiswal
ba5c7e4fc3 RFC-0004: add section about proxy
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-06-26 19:07:18 +05:30
Stefan Prodan
903284fe59 Merge pull request #4008 from fluxcd/slsa3
Add SLSA3 generators to release workflow
2023-06-26 13:21:01 +03:00
Stefan Prodan
cf7ee0081c Add SLSA3 generators to release workflow
Generate SLSA level 3 provenance attestations for the release assets and for the multi-arch container images.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-06-26 12:40:35 +03:00
Hidde Beydals
e6a1d8156b Merge pull request #4012 from fluxcd/dependabot/github_actions/ossf/scorecard-action-2.2.0
build(deps): bump ossf/scorecard-action from 2.1.3 to 2.2.0
2023-06-26 10:56:52 +02:00
dependabot[bot]
b850f51ef5 build(deps): bump ossf/scorecard-action from 2.1.3 to 2.2.0
Bumps [ossf/scorecard-action](https://github.com/ossf/scorecard-action) from 2.1.3 to 2.2.0.
- [Release notes](https://github.com/ossf/scorecard-action/releases)
- [Changelog](https://github.com/ossf/scorecard-action/blob/main/RELEASE.md)
- [Commits](80e868c13c...08b4669551)

---
updated-dependencies:
- dependency-name: ossf/scorecard-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-26 08:40:29 +00:00
Hidde Beydals
4e57de4776 Merge pull request #4011 from fluxcd/dependabot/github_actions/sigstore/cosign-installer-3.1.0
build(deps): bump sigstore/cosign-installer from 3.0.5 to 3.1.0
2023-06-26 10:39:50 +02:00
dependabot[bot]
0a2945e7f1 build(deps): bump sigstore/cosign-installer from 3.0.5 to 3.1.0
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.0.5 to 3.1.0.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](dd6b2e2b61...d13028333d)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-26 08:27:20 +00:00
Hidde Beydals
4f9beae49d Merge pull request #4010 from fluxcd/dependabot/github_actions/anchore/sbom-action-0.14.3
build(deps): bump anchore/sbom-action from 0.14.2 to 0.14.3
2023-06-26 09:58:53 +02:00
dependabot[bot]
15a49334d8 build(deps): bump anchore/sbom-action from 0.14.2 to 0.14.3
Bumps [anchore/sbom-action](https://github.com/anchore/sbom-action) from 0.14.2 to 0.14.3.
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](4d571ad103...78fc58e266)

---
updated-dependencies:
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-26 01:16:48 +00:00
Max Jonas Werner
cf5e7c39e0 Merge pull request #4002 from fluxcd/fix-get-all
Don't log errors with missing CRDs for "get * all" commands
2023-06-22 18:40:27 +02:00
Max Jonas Werner
173ee5fcdc Don't log errors with missing CRDs for "get * all" commands
Whenever an API type is not available then both, `flux get all` and
`flux get image all` will just skip over that type instead of logging
an error message.

Before:

```
$ flux get all
✗ failed to get API group resources: unable to retrieve the complete
list of server APIs: source.toolkit.fluxcd.io/v1beta2: the server
could not find the requested resource
[...]
✗ failed to get API group resources: unable to retrieve the complete
list of server APIs: image.toolkit.fluxcd.io/v1beta2: the server could
not find the requested resource
✗ failed to get API group resources: unable to retrieve the complete
list of server APIs: image.toolkit.fluxcd.io/v1beta2: the server could
not find the requested resource
[...]
$ echo $?
0
```

After:

```
$ flux get all
$ echo $?
0
```
closes #3973

Signed-off-by: Max Jonas Werner <mail@makk.es>
2023-06-22 18:03:38 +02:00
Stefan Prodan
67968dff7e Merge pull request #3981 from fluxcd/dependabot/github_actions/docker/setup-buildx-action-2.7.0
build(deps): bump docker/setup-buildx-action from 2.6.0 to 2.7.0
2023-06-19 14:30:15 +03:00
dependabot[bot]
c596c70d42 build(deps): bump docker/setup-buildx-action from 2.6.0 to 2.7.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.6.0 to 2.7.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](6a58db7e0d...ecf95283f0)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 11:07:15 +00:00
Max Jonas Werner
d30c3aef32 Merge pull request #3983 from fluxcd/dependabot/github_actions/peter-evans/create-pull-request-5.0.2
build(deps): bump peter-evans/create-pull-request from 5.0.1 to 5.0.2
2023-06-19 12:58:51 +02:00
dependabot[bot]
f7e5101753 build(deps): bump peter-evans/create-pull-request from 5.0.1 to 5.0.2
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 5.0.1 to 5.0.2.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](284f54f989...153407881e)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 10:37:22 +00:00
Stefan Prodan
597b13d1b3 Merge pull request #3982 from fluxcd/dependabot/github_actions/goreleaser/goreleaser-action-4.3.0
build(deps): bump goreleaser/goreleaser-action from 4.2.0 to 4.3.0
2023-06-19 13:36:38 +03:00
dependabot[bot]
2b8385a874 build(deps): bump goreleaser/goreleaser-action from 4.2.0 to 4.3.0
Bumps [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) from 4.2.0 to 4.3.0.
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)
- [Commits](f82d6c1c34...336e29918d)

---
updated-dependencies:
- dependency-name: goreleaser/goreleaser-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-19 01:17:57 +00:00
Hidde Beydals
ddcc301ab6 Merge pull request #3976 from darklore/brew-completion
Use equivalent and shorter way to generate shell completions
2023-06-14 22:00:11 +02:00
Katsunori Tanaka
ab983c678f Use equivalent and shorter way to generate shell completions
Signed-off-by: Katsunori Tanaka <958690+darklore@users.noreply.github.com>
2023-06-15 01:18:18 +09:00
Sunny
79dfbec910 Merge pull request #3955 from somtochiama/fix-kustomize-deprecated
Fix 'patchesJson6902' is deprecated' warning
2023-06-14 21:18:14 +05:30
Somtochi Onyekwere
6bf439d4ce fix 'patchesJson6902' is deprecated' warning
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-06-14 16:32:27 +01:00
Max Jonas Werner
063c5ee328 Merge pull request #3967 from fluxcd/dependabot/github_actions/docker/login-action-2.2.0
build(deps): bump docker/login-action from 2.1.0 to 2.2.0
2023-06-12 12:44:58 +02:00
dependabot[bot]
19137b8e8c build(deps): bump docker/login-action from 2.1.0 to 2.2.0
Bumps [docker/login-action](https://github.com/docker/login-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](f4ef78c080...465a07811f)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 10:10:29 +00:00
Max Jonas Werner
95aa30ad41 Merge pull request #3966 from fluxcd/dependabot/github_actions/docker/setup-qemu-action-2.2.0
build(deps): bump docker/setup-qemu-action from 2.1.0 to 2.2.0
2023-06-12 12:09:21 +02:00
dependabot[bot]
55aa96a33a build(deps): bump docker/setup-qemu-action from 2.1.0 to 2.2.0
Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2.1.0 to 2.2.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](e81a89b173...2b82ce82d5)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 09:53:46 +00:00
Max Jonas Werner
5460348450 Merge pull request #3965 from fluxcd/dependabot/github_actions/actions/checkout-3.5.3
build(deps): bump actions/checkout from 3.5.2 to 3.5.3
2023-06-12 11:53:08 +02:00
dependabot[bot]
0d1a68ecb4 build(deps): bump actions/checkout from 3.5.2 to 3.5.3
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.2 to 3.5.3.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](8e5e7e5ab8...c85c95e3d7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 09:39:54 +00:00
Max Jonas Werner
98466220c7 Merge pull request #3964 from fluxcd/dependabot/github_actions/docker/setup-buildx-action-2.6.0
build(deps): bump docker/setup-buildx-action from 2.5.0 to 2.6.0
2023-06-12 11:39:14 +02:00
dependabot[bot]
6d2dd076dc build(deps): bump docker/setup-buildx-action from 2.5.0 to 2.6.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.5.0 to 2.6.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](4b4e9c3e2d...6a58db7e0d)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 09:25:10 +00:00
Max Jonas Werner
5e07bcb79a Merge pull request #3968 from fluxcd/dependabot/github_actions/github/codeql-action-2.13.4
build(deps): bump github/codeql-action from 2.3.6 to 2.13.4
2023-06-12 11:24:32 +02:00
dependabot[bot]
9c81a74743 build(deps): bump github/codeql-action from 2.3.6 to 2.13.4
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.3.6 to 2.13.4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](83f0fe6c49...cdcdbb5797)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-12 01:20:41 +00:00
Max Jonas Werner
a3f2b1d829 Merge pull request #3945 from fluxcd/lenient-logs-cmd
Make `flux logs` more lenient
2023-06-05 10:19:54 +02:00
Max Jonas Werner
cbdd71e44e Make flux logs more lenient
UX changes:

- Only print an error when a pod doesn't have a matching container
  instead of exiting early.
- Return a non-zero status code when no pod is found at all.

Details:

In certain situations there might be 3rd-party pods running in the
Flux namespace that cause the command to fail streaming logs, e.g.
when they have multiple containers but none of them is called
`manager` (which all Flux-maintained pods do). An example of such a
situation is when Flux is installed with the 3rd-party Flux extension
on AKS.

The `logs` command is now more forgiving and merely logs an error in
these situations instead of completely bailing out. It still returns a
non-zero exit code.

For the parallel log streaming with `-f` the code is now a little more
complex so that errors are now written to stderr in parallel with all
other logs written to stdout. That's what `asyncCopy` is for.

refs #3944

Signed-off-by: Max Jonas Werner <mail@makk.es>
2023-06-05 10:07:38 +02:00
Max Jonas Werner
f01cf5e04c Merge pull request #3952 from fluxcd/dependabot/github_actions/github/codeql-action-2.3.6
build(deps): bump github/codeql-action from 2.3.5 to 2.3.6
2023-06-05 08:29:33 +02:00
dependabot[bot]
bbb3063cb2 build(deps): bump github/codeql-action from 2.3.5 to 2.3.6
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.3.5 to 2.3.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](0225834cc5...83f0fe6c49)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-05 01:19:20 +00:00
Hidde Beydals
c0fa6e6939 Merge pull request #3940 from somtochiama/fix-azure
Set controller runtime logger in Azure e2e tests
2023-06-01 13:04:50 +02:00
Somtochi Onyekwere
0337362eec return clone error
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-06-01 12:49:09 +02:00
Somtochi Onyekwere
fb3013cb95 set logger for controller runtime
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-06-01 12:49:09 +02:00
Hidde Beydals
833fec3d21 Merge pull request #3943 from fluxcd/update-components
Update toolkit components
2023-06-01 12:48:44 +02:00
Hidde Beydals
007b79c729 Update github.com/fluxcd/pkg/git/gogit to v0.12.0
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-06-01 12:28:52 +02:00
Hidde Beydals
09f55955e8 tests/azure: update dependencies
- github.com/Azure/azure-event-hubs-go/v3 to v3.6.0
- github.com/fluxcd/helm-controller/api to v0.34.1
- github.com/fluxcd/image-automation-controller/api to v0.34.1
- github.com/fluxcd/pkg/git/gogit to v0.12.0
- github.com/fluxcd/source-controller/api to v1.0.0-rc.5
- github.com/stretchr/testify to v1.8.4

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-06-01 12:07:58 +02:00
fluxcdbot
29c2c72d8f Update toolkit components
- helm-controller to v0.34.1
  https://github.com/fluxcd/helm-controller/blob/v0.34.1/CHANGELOG.md
- source-controller to v1.0.0-rc.5
  https://github.com/fluxcd/source-controller/blob/v1.0.0-rc.5/CHANGELOG.md
- image-automation-controller to v0.34.1
  https://github.com/fluxcd/image-automation-controller/blob/v0.34.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-06-01 10:01:54 +00:00
Sanskar Jaiswal
ae9b541ce2 Merge pull request #3938 from fluxcd/e2e-azure-main
e2e: Run e2e Azure tests for PRs to main if tests or wofklow changes
2023-05-31 21:34:20 +05:30
Sanskar Jaiswal
8d86637d3f e2e: run e2e Azure tests for PRs to main if tests or wofklow changes
Run e2e Azure tests for PRs and commits to main if the `tests` directory
or the Azure workflow itself changes.

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-05-31 18:07:40 +05:30
Sanskar Jaiswal
390ff1bcf7 Merge pull request #3932 from aryan9600/null-logger
Set `controller-runtime` logger to a null logger
2023-05-30 15:23:57 +05:30
Sanskar Jaiswal
aa65589391 set controller-runtime logger to a null logger
This is required because controller-runtime expects its consumers to
set a logger through log.SetLogger within 30 seconds of the program's
initalization. If not set, the entire debug stack is printed as an
error. Ref: https://github.com/kubernetes-sigs/controller-runtime/blob/ed8be90/pkg/log/log.go#L59
Since we have our own logging and don't care about controller-runtime's
logger, we configure it's logger to do nothing.

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-05-30 14:40:17 +05:30
Stefan Prodan
9ee23a9086 Merge pull request #3929 from fluxcd/up-git-pkg
Update Git packages
2023-05-29 14:29:50 +03:00
Stefan Prodan
41cdd3dcf7 Update Git packages
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-05-29 14:13:56 +03:00
Stefan Prodan
aba5741450 Merge pull request #3922 from fluxcd/update-components
Update toolkit components
2023-05-29 13:33:08 +03:00
fluxcdbot
cb5eb417c5 Update toolkit components
- helm-controller to v0.34.0
  https://github.com/fluxcd/helm-controller/blob/v0.34.0/CHANGELOG.md
- kustomize-controller to v1.0.0-rc.4
  https://github.com/fluxcd/kustomize-controller/blob/v1.0.0-rc.4/CHANGELOG.md
- source-controller to v1.0.0-rc.4
  https://github.com/fluxcd/source-controller/blob/v1.0.0-rc.4/CHANGELOG.md
- notification-controller to v1.0.0-rc.4
  https://github.com/fluxcd/notification-controller/blob/v1.0.0-rc.4/CHANGELOG.md
- image-reflector-controller to v0.28.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.28.0/CHANGELOG.md
- image-automation-controller to v0.34.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.34.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-05-29 10:04:34 +00:00
Stefan Prodan
9f8b8b624b Merge pull request #3928 from fluxcd/k8s-1.27.2
Update kubectl to v1.27.2 in flux-cli image
2023-05-29 13:03:52 +03:00
Stefan Prodan
8728b07e85 Update kubectl to v1.27.2 in flux-cli image
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-05-29 12:47:54 +03:00
Stefan Prodan
e1ffd83b64 Merge pull request #3918 from somtochiama/retry-oci-push
Retry oci push operations
2023-05-29 12:14:24 +03:00
Somtochi Onyekwere
020a494f3f Retry oci push operations
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-05-29 09:59:47 +01:00
Stefan Prodan
96ed1e1372 Merge pull request #3927 from fluxcd/dependabot/github_actions/github/codeql-action-2.3.5
build(deps): bump github/codeql-action from 2.3.3 to 2.3.5
2023-05-29 10:54:54 +03:00
dependabot[bot]
860682e476 build(deps): bump github/codeql-action from 2.3.3 to 2.3.5
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.3.3 to 2.3.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](29b1f65c5e...0225834cc5)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-29 07:24:59 +00:00
Stefan Prodan
2903b4910c Merge pull request #3926 from fluxcd/dependabot/github_actions/snyk/actions-b98d498629f1c368650224d6d212bf7dfa89e4bf
build(deps): bump snyk/actions from 806182742461562b67788a64410098c9d9b96adb to b98d498629f1c368650224d6d212bf7dfa89e4bf
2023-05-29 10:24:22 +03:00
dependabot[bot]
c07e33eff0 build(deps): bump snyk/actions
Bumps [snyk/actions](https://github.com/snyk/actions) from 806182742461562b67788a64410098c9d9b96adb to b98d498629f1c368650224d6d212bf7dfa89e4bf.
- [Release notes](https://github.com/snyk/actions/releases)
- [Commits](8061827424...b98d498629)

---
updated-dependencies:
- dependency-name: snyk/actions
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-29 01:21:22 +00:00
Stefan Prodan
a5b1b04915 Merge pull request #3924 from hgranillo/main
Fix break lines in create helmrelease and source
2023-05-26 17:21:31 +03:00
Horacio Granillo
799848c2a0 Fix break lines in create helmrelease and source
Signed-off-by: Horacio Granillo <horacio.granillo@smarttra.de>
2023-05-26 15:37:55 +02:00
Stefan Prodan
7e6cd34071 Merge pull request #3675 from raffis/feat-reconcilechart
feat: add reconcile source chart command
2023-05-25 15:05:08 +03:00
Raffael Sahli
b8c24f906d fix: support reconcile recursive source tree hr => chart => repo
Signed-off-by: Raffael Sahli <raffael.sahli@doodle.com>
2023-05-25 13:40:21 +02:00
Raffael Sahli
e678738ded feat: add reconcile source chart command
Signed-off-by: Raffael Sahli <raffael.sahli@doodle.com>
2023-05-25 13:40:21 +02:00
Stefan Prodan
9000be6daa Merge pull request #3910 from fluxcd/k8s-1.27
Update Kubernetes to v1.27 and Kustomize to v5.0
2023-05-24 10:29:58 +03:00
Stefan Prodan
13ff4afaa4 Update Kubernetes to v1.27 and Kustomize to v5.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-05-23 18:49:47 +03:00
Hidde Beydals
40b9c07641 Merge pull request #3903 from fluxcd/dependabot/github_actions/sigstore/cosign-installer-3.0.5
build(deps): bump sigstore/cosign-installer from 3.0.3 to 3.0.5
2023-05-22 09:36:11 +02:00
dependabot[bot]
0ce5117715 build(deps): bump sigstore/cosign-installer from 3.0.3 to 3.0.5
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.0.3 to 3.0.5.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](204a51a57a...dd6b2e2b61)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-22 07:17:20 +00:00
Hidde Beydals
526d154172 Merge pull request #3902 from fluxcd/dependabot/github_actions/actions/setup-go-4.0.1 2023-05-22 09:16:32 +02:00
dependabot[bot]
9e422576b8 build(deps): bump actions/setup-go from 4.0.0 to 4.0.1
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](4d34df0c23...fac708d667)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-22 07:06:34 +00:00
Stefan Prodan
069bca29d1 Merge pull request #3901 from fluxcd/dependabot/github_actions/helm/kind-action-1.7.0
build(deps): bump helm/kind-action from 1.5.0 to 1.7.0
2023-05-22 09:59:42 +03:00
dependabot[bot]
34ac124b6b build(deps): bump helm/kind-action from 1.5.0 to 1.7.0
Bumps [helm/kind-action](https://github.com/helm/kind-action) from 1.5.0 to 1.7.0.
- [Release notes](https://github.com/helm/kind-action/releases)
- [Commits](d8ccf8fb62...fa81e57adf)

---
updated-dependencies:
- dependency-name: helm/kind-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-22 01:22:42 +00:00
Stefan Prodan
e475a22435 Merge pull request #3883 from fluxcd/update-az-deps
e2e: Update dependencies
2023-05-12 15:37:08 +03:00
Stefan Prodan
d1ec628d6c e2e: Update dependencies
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-05-12 15:12:25 +03:00
Stefan Prodan
d13227b277 Merge pull request #3882 from fluxcd/update-components
Update toolkit components
2023-05-12 15:07:41 +03:00
fluxcdbot
fcb992240e Update toolkit components
- helm-controller to v0.33.0
  https://github.com/fluxcd/helm-controller/blob/v0.33.0/CHANGELOG.md
- kustomize-controller to v1.0.0-rc.3
  https://github.com/fluxcd/kustomize-controller/blob/v1.0.0-rc.3/CHANGELOG.md
- source-controller to v1.0.0-rc.3
  https://github.com/fluxcd/source-controller/blob/v1.0.0-rc.3/CHANGELOG.md
- notification-controller to v1.0.0-rc.3
  https://github.com/fluxcd/notification-controller/blob/v1.0.0-rc.3/CHANGELOG.md
- image-reflector-controller to v0.27.2
  https://github.com/fluxcd/image-reflector-controller/blob/v0.27.2/CHANGELOG.md
- image-automation-controller to v0.33.1
  https://github.com/fluxcd/image-automation-controller/blob/v0.33.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-05-12 11:46:20 +00:00
Stefan Prodan
cf5eb6a0bc Merge pull request #3879 from fluxcd/resourcequota
Add ResourceQuota for critical pods
2023-05-12 12:12:08 +03:00
Stefan Prodan
2aa38baa35 Add ResourceQuota for critical pods
Fixes insufficient quota error on GKE

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-05-12 11:34:54 +03:00
Stefan Prodan
84d046ab2a Merge pull request #3880 from fluxcd/ossf-scorecard
Add OSSF Scorecard
2023-05-12 10:56:42 +03:00
Stefan Prodan
29b08fc306 Add OSSF Scorecard
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-05-12 10:42:46 +03:00
Stefan Prodan
a7153a0ff5 Merge pull request #3876 from fluxcd/dependabot/go_modules/tests/azure/github.com/cloudflare/circl-1.3.3
build(deps): bump github.com/cloudflare/circl from 1.3.2 to 1.3.3 in /tests/azure
2023-05-12 09:07:47 +03:00
dependabot[bot]
bc67308f85 build(deps): bump github.com/cloudflare/circl in /tests/azure
Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.3.2 to 1.3.3.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.3.2...v1.3.3)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-12 05:47:08 +00:00
Stefan Prodan
6e93a87265 Merge pull request #3875 from fluxcd/dependabot/go_modules/github.com/cloudflare/circl-1.3.3
build(deps): bump github.com/cloudflare/circl from 1.3.2 to 1.3.3
2023-05-12 08:46:00 +03:00
dependabot[bot]
6fd1f794f9 build(deps): bump github.com/cloudflare/circl from 1.3.2 to 1.3.3
Bumps [github.com/cloudflare/circl](https://github.com/cloudflare/circl) from 1.3.2 to 1.3.3.
- [Release notes](https://github.com/cloudflare/circl/releases)
- [Commits](https://github.com/cloudflare/circl/compare/v1.3.2...v1.3.3)

---
updated-dependencies:
- dependency-name: github.com/cloudflare/circl
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-12 05:30:40 +00:00
Stefan Prodan
5942e65b1c Merge pull request #3877 from fluxcd/dependabot/go_modules/github.com/docker/distribution-2.8.2incompatible
build(deps): bump github.com/docker/distribution from 2.8.1+incompatible to 2.8.2+incompatible
2023-05-12 08:29:33 +03:00
dependabot[bot]
77d670c224 build(deps): bump github.com/docker/distribution
Bumps [github.com/docker/distribution](https://github.com/docker/distribution) from 2.8.1+incompatible to 2.8.2+incompatible.
- [Release notes](https://github.com/docker/distribution/releases)
- [Commits](https://github.com/docker/distribution/compare/v2.8.1...v2.8.2)

---
updated-dependencies:
- dependency-name: github.com/docker/distribution
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-11 20:48:22 +00:00
Hidde Beydals
70546e5dfe Merge pull request #3866 from onedr0p/main
Update Alpine to 3.18
2023-05-10 17:32:15 +02:00
Devin Buhl
fec7dfefa4 Update Alpine to 3.18
This change would be nice to get in because MUSL finally implemented TCP fallback in their DNS resolver.

alpinelinux.org/posts/Alpine-3.18.0-released.html

Signed-off-by: Devin Buhl <devin@buhl.casa>
2023-05-10 09:47:59 -04:00
Stefan Prodan
9a8944df94 Merge pull request #3858 from fluxcd/update-components
Update toolkit components
2023-05-09 18:51:03 +03:00
fluxcdbot
ace242fca2 Update toolkit components
- kustomize-controller to v1.0.0-rc.2
  https://github.com/fluxcd/kustomize-controller/blob/v1.0.0-rc.2/CHANGELOG.md
- source-controller to v1.0.0-rc.2
  https://github.com/fluxcd/source-controller/blob/v1.0.0-rc.2/CHANGELOG.md
- notification-controller to v1.0.0-rc.2
  https://github.com/fluxcd/notification-controller/blob/v1.0.0-rc.2/CHANGELOG.md
- image-reflector-controller to v0.27.1
  https://github.com/fluxcd/image-reflector-controller/blob/v0.27.1/CHANGELOG.md
- image-automation-controller to v0.33.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.33.0/CHANGELOG.md

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-05-09 18:34:03 +03:00
Stefan Prodan
96d4034a74 Merge pull request #3860 from bigkevmcd/azure-devops-summary
e2e: Add summary to Azure Alert
2023-05-09 17:05:26 +03:00
Kevin McDermott
2e3624d636 Add summary to Azure Alert.
This updates the Azure alert testing to add a summary which should be
sent to Azure as a commit-status genre.

Signed-off-by: Kevin McDermott <kevin@weave.works>
2023-05-09 14:38:15 +01:00
Stefan Prodan
cb54bbcd97 Merge pull request #3853 from fluxcd/dependabot/github_actions/anchore/sbom-action-0.14.2
build(deps): bump anchore/sbom-action from 0.14.1 to 0.14.2
2023-05-09 10:34:18 +03:00
dependabot[bot]
847e78541a build(deps): bump anchore/sbom-action from 0.14.1 to 0.14.2
Bumps [anchore/sbom-action](https://github.com/anchore/sbom-action) from 0.14.1 to 0.14.2.
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](422cb34a0f...4d571ad103)

---
updated-dependencies:
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-08 13:06:08 +00:00
Stefan Prodan
ad3eebcf63 Merge pull request #3857 from talife/auto-completion-image-repository
Fix autocompletion for image repository reconcile
2023-05-08 15:30:53 +03:00
Vincent Gillet
86df468c3f Fix autocompletion for image repository reconcile
Signed-off-by: Vincent Gillet <gilletvincent@gmail.com>
2023-05-08 20:14:19 +08:00
Max Jonas Werner
2cf2486a2b Merge pull request #3854 from fluxcd/dependabot/github_actions/github/codeql-action-2.3.3
build(deps): bump github/codeql-action from 2.3.2 to 2.3.3
2023-05-08 08:39:30 +02:00
dependabot[bot]
4d443d614b build(deps): bump github/codeql-action from 2.3.2 to 2.3.3
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.3.2 to 2.3.3.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](f3feb00acb...29b1f65c5e)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-08 06:26:05 +00:00
Max Jonas Werner
50968ec1a6 Merge pull request #3855 from fluxcd/dependabot/github_actions/peter-evans/create-pull-request-5.0.1
build(deps): bump peter-evans/create-pull-request from 5.0.0 to 5.0.1
2023-05-08 08:25:23 +02:00
dependabot[bot]
38ada0b998 build(deps): bump peter-evans/create-pull-request from 5.0.0 to 5.0.1
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 5.0.0 to 5.0.1.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](5b4a9f6a9e...284f54f989)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-08 01:03:23 +00:00
Stefan Prodan
0b0f9827b9 Merge pull request #3849 from fluxcd/bump-ggp
Update fluxcd/go-git-providers to v0.15.3
2023-05-04 13:24:13 +03:00
Max Jonas Werner
88b5e3f71b bump ggp to latest version
Signed-off-by: Max Jonas Werner <mail@makk.es>
2023-05-04 11:44:27 +02:00
Hidde Beydals
bc608dc130 Merge pull request #3796 from fluxcd/update-components
Update toolkit components
2023-05-03 11:31:17 +02:00
fluxcdbot
961c237d33 Update toolkit components
- helm-controller to v0.32.2
  https://github.com/fluxcd/helm-controller/blob/v0.32.2/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-05-02 15:57:21 +00:00
Stefan Prodan
73e2f56ff5 Merge pull request #3802 from fluxcd/system-cluster-critical
Set priority class for the critical Flux components
2023-05-02 18:56:46 +03:00
Stefan Prodan
a122ceb09b Set priority class to critical Flux components
Mark source-controller, kustomize-controller and helm-controller as system-cluster-critical.
This will reduce the chances of Flux controllers being evicted before other non-critical workloads.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-05-02 15:06:30 +03:00
Stefan Prodan
b30d7cb3dc Merge pull request #3795 from fluxcd/e2e-kube-1.27
Run conformance tests for Kubernetes 1.27
2023-05-02 15:02:36 +03:00
Stefan Prodan
cd81362781 Run conformance tests for Kubernetes 1.27
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-05-02 14:24:31 +03:00
Hidde Beydals
63abf0b840 Merge pull request #3833 from matheuscscp/oci-provider
Add OCI provider option to create Helm source command
2023-05-02 11:50:56 +02:00
Matheus Pimenta
56d265ae11 Add OCI provider option to create Helm source command
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2023-05-02 10:08:40 +01:00
Max Jonas Werner
c0c76da4c8 Merge pull request #3830 from cuishuang/main
misc: fix some comments
2023-05-02 08:34:29 +02:00
cui fliter
3edfff49a2 fix some comments
Signed-off-by: cui fliter <imcusg@gmail.com>
2023-05-01 18:05:10 +02:00
Hidde Beydals
f9be835288 Merge pull request #3837 from fluxcd/dependabot/github_actions/sigstore/cosign-installer-3.0.3
build(deps): bump sigstore/cosign-installer from 3.0.2 to 3.0.3
2023-05-01 10:41:03 +02:00
dependabot[bot]
86e542e524 build(deps): bump sigstore/cosign-installer from 3.0.2 to 3.0.3
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](9e9de2292d...204a51a57a)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-01 08:07:56 +00:00
Hidde Beydals
f28e189cf5 Merge pull request #3838 from fluxcd/dependabot/github_actions/github/codeql-action-2.3.2
build(deps): bump github/codeql-action from 2.3.0 to 2.3.2
2023-05-01 10:05:28 +02:00
dependabot[bot]
2538b6921f build(deps): bump github/codeql-action from 2.3.0 to 2.3.2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.3.0 to 2.3.2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](b2c19fb9a2...f3feb00acb)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-05-01 01:09:35 +00:00
Max Jonas Werner
83525807a2 Merge pull request #3821 from fluxcd/bump-ggp
Make bootstrap work with Bitbucket Server again
2023-04-24 11:28:10 +02:00
Max Jonas Werner
c6a61c1b92 fix: make bootstrap work with Bitbucket Server again
Bumping GGP to include fluxcd/go-git-provider#210 and fix the
bootstrap process with Bitbucket Server.

closes #3808

Signed-off-by: Max Jonas Werner <mail@makk.es>
2023-04-24 10:13:41 +02:00
Max Jonas Werner
0257171cf5 Merge pull request #3827 from fluxcd/dependabot/github_actions/github/codeql-action-2.3.0
build(deps): bump github/codeql-action from 2.2.12 to 2.3.0
2023-04-24 10:10:00 +02:00
dependabot[bot]
f431f9858c build(deps): bump github/codeql-action from 2.2.12 to 2.3.0
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.2.12 to 2.3.0.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](7df0ce3489...b2c19fb9a2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-24 01:13:50 +00:00
Max Jonas Werner
71e9230789 Merge pull request #3822 from Hey/patch-1
Outdated Loki Helm values URL
2023-04-21 10:05:58 +02:00
Hey
08859f1588 Outdated URL
The location of this URL was moved

Signed-off-by: Hey <18427051+Hey@users.noreply.github.com>
2023-04-20 21:35:15 +02:00
Hidde Beydals
d0a255c84a Merge pull request #3805 from fluxcd/dependabot/github_actions/github/codeql-action-2.2.12
build(deps): bump github/codeql-action from 2.2.11 to 2.2.12
2023-04-17 11:40:42 +02:00
dependabot[bot]
ec6f341497 build(deps): bump github/codeql-action from 2.2.11 to 2.2.12
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.2.11 to 2.2.12.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](d186a2a36c...7df0ce3489)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-17 08:17:17 +00:00
Stefan Prodan
811b26275f Merge pull request #3804 from fluxcd/dependabot/github_actions/actions/checkout-3.5.2
build(deps): bump actions/checkout from 3.5.0 to 3.5.2
2023-04-17 11:14:19 +03:00
dependabot[bot]
107894eccf build(deps): bump actions/checkout from 3.5.0 to 3.5.2
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.5.0 to 3.5.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](8f4b7f8486...8e5e7e5ab8)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-17 01:10:39 +00:00
Max Jonas Werner
cb8387cba6 Merge pull request #3797 from fluxcd/improve-messaging
better messaging for `pull artifact` command
2023-04-13 13:20:53 +02:00
Max Jonas Werner
6700aac4a4 better messaging for pull artifact command
- When there's an error stat'ing the output directory flux now prints
  the error:

  Before:
  ```
  ✗ invalid output path ./ro-dir/foo
  ```

  After:
  ```
  ✗ invalid output path "./ro-dir/foo": stat ./ro-dir/foo: permission denied
  ```
- When no output directory is provided flux now explicitly says so in
  the error:

  Before:
  ```
  ✗ invalid output path
  ```

  After:
  ```
  ✗ output path cannot be empty
  ```

Signed-off-by: Max Jonas Werner <mail@makk.es>
2023-04-13 12:43:49 +02:00
Aurel Canciu
3d1173a2cd Merge pull request #3768 from relu/fix-aur-publish-pre
Fix publishing pre-release versions to AUR
2023-04-12 12:18:55 +02:00
Aurel Canciu
52c7cca3fc Fix publishing pre-release versions to AUR
Fixes #3767

Signed-off-by: Aurel Canciu <aurelcanciu@gmail.com>
2023-04-12 11:59:56 +02:00
Stefan Prodan
9a59a90187 Merge pull request #3783 from aryan9600/clean-dir
Clean directory before cloning git repo
2023-04-12 12:14:23 +03:00
Sanskar Jaiswal
08370cb3a6 clean dir before cloning git repo
Remove all files/subdirs from the directory we are cloning into. This is
needed because go-git returns a `repository already exists` error if
the directory is non-empty, which is possible since we retry cloning
(into the same dir) if the first attempt fails.

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-04-12 14:29:45 +05:30
Stefan Prodan
2dce1f23b0 Merge pull request #3764 from somtochiama/get-selector
Add label selector flag to get cmd
2023-04-11 19:20:27 +03:00
Somtochi Onyekwere
a52f5aaa75 Add label selector flag to get cmd
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-04-11 17:00:57 +01:00
Max Jonas Werner
ef5f7bca64 Merge pull request #3778 from fluxcd/dependabot/github_actions/sigstore/cosign-installer-3.0.2
build(deps): bump sigstore/cosign-installer from 3.0.1 to 3.0.2
2023-04-11 08:48:22 +02:00
dependabot[bot]
1435c71d9c build(deps): bump sigstore/cosign-installer from 3.0.1 to 3.0.2
Bumps [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) from 3.0.1 to 3.0.2.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](c3667d9942...9e9de2292d)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-10 11:36:28 +00:00
Stefan Prodan
0d2517b96d Merge pull request #3780 from fluxcd/dependabot/github_actions/github/codeql-action-2.2.11
build(deps): bump github/codeql-action from 2.2.9 to 2.2.11
2023-04-10 14:35:46 +03:00
dependabot[bot]
48a1c0f5d4 build(deps): bump github/codeql-action from 2.2.9 to 2.2.11
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.2.9 to 2.2.11.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](04df1262e6...d186a2a36c)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-10 07:52:00 +00:00
Stefan Prodan
64fb04b77b Merge pull request #3779 from fluxcd/dependabot/github_actions/peter-evans/create-pull-request-5.0.0
build(deps): bump peter-evans/create-pull-request from 4.2.4 to 5.0.0
2023-04-10 10:51:22 +03:00
dependabot[bot]
2696a93ee0 build(deps): bump peter-evans/create-pull-request from 4.2.4 to 5.0.0
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4.2.4 to 5.0.0.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](38e0b6e68b...5b4a9f6a9e)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-10 01:03:48 +00:00
Stefan Prodan
c350e300f9 Merge pull request #3763 from souleb/feat-ignore
Add the possibility to ignore files with build and diff Kustomization
2023-04-06 12:46:15 +03:00
Soule BA
b74638c25c Add the possibility to ignore files with build and diff ks
If implemented, user will be able to ignore files when using `build
kustomization` and `diff kustomization` both with .sourceignore and
`ignore-paths` flag.

Signed-off-by: Soule BA <bah.soule@gmail.com>
2023-04-06 11:33:13 +02:00
Stefan Prodan
f00fee5328 Merge pull request #3762 from fluxcd/dependabot/go_modules/github.com/docker/docker-23.0.3incompatible
build(deps): bump github.com/docker/docker from 23.0.1 to 23.0.3
2023-04-06 12:01:38 +03:00
dependabot[bot]
c3aa940c2b build(deps): bump github.com/docker/docker
Bumps [github.com/docker/docker](https://github.com/docker/docker) from 23.0.1+incompatible to 23.0.3+incompatible.
- [Release notes](https://github.com/docker/docker/releases)
- [Commits](https://github.com/docker/docker/compare/v23.0.1...v23.0.3)

---
updated-dependencies:
- dependency-name: github.com/docker/docker
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-06 08:48:02 +00:00
Stefan Prodan
3fc15c42c4 Merge pull request #3758 from fluxcd/release-v2.0.0-rc.1
Release Flux v2.0.0-rc.1
2023-04-06 11:47:04 +03:00
Stefan Prodan
f0c498ff54 Add support for .sourceignore to flux build/diff
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-04-05 16:33:34 +03:00
Stefan Prodan
cecffc0588 Add commonMetadata to flux build/diff
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-04-05 16:09:49 +03:00
Stefan Prodan
9293781702 Update dependencies
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-04-05 16:07:34 +03:00
Sanskar Jaiswal
97b064be13 add a preview note for all non-bootstrap commands
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-04-05 16:05:21 +03:00
Max Jonas Werner
52acac1a37 Add /v2 suffix to module name in preparation of 2.0.0 release
Signed-off-by: Max Jonas Werner <mail@makk.es>
2023-04-05 16:05:21 +03:00
Somtochi Onyekwere
a296afdd69 update azure e2e tests
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-04-05 16:05:21 +03:00
Somtochi Onyekwere
2e71c718ce update internal flags
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-04-05 16:05:20 +03:00
Somtochi Onyekwere
e44ab85880 update testdata yamls
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-04-05 16:05:20 +03:00
Somtochi Onyekwere
24452ecd37 Update GitRepository Receiver, and Kustomization to v1
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-04-05 16:05:20 +03:00
Stefan Prodan
ccb7d62d95 ci: Run the e2e tests for the release branches
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-04-05 16:05:20 +03:00
fluxcdbot
83d2739dc5 Update toolkit components
- helm-controller to v0.32.1
  https://github.com/fluxcd/helm-controller/blob/v0.32.1/CHANGELOG.md
- kustomize-controller to v1.0.0-rc.1
  https://github.com/fluxcd/kustomize-controller/blob/v1.0.0-rc.1/CHANGELOG.md
- source-controller to v1.0.0-rc.1
  https://github.com/fluxcd/source-controller/blob/v1.0.0-rc.1/CHANGELOG.md
- notification-controller to v1.0.0-rc.1
  https://github.com/fluxcd/notification-controller/blob/v1.0.0-rc.1/CHANGELOG.md
- image-reflector-controller to v0.27.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.27.0/CHANGELOG.md
- image-automation-controller to v0.32.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.32.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-04-05 16:05:19 +03:00
Stefan Prodan
c0aa1b99b5 Merge pull request #3756 from fluxcd/dependabot/go_modules/github.com/docker/docker-20.10.24incompatible
build(deps): bump github.com/docker/docker from 20.10.20+incompatible to 20.10.24+incompatible
2023-04-05 09:22:57 +03:00
dependabot[bot]
1260db1bcf build(deps): bump github.com/docker/docker
Bumps [github.com/docker/docker](https://github.com/docker/docker) from 20.10.20+incompatible to 20.10.24+incompatible.
- [Release notes](https://github.com/docker/docker/releases)
- [Commits](https://github.com/docker/docker/compare/v20.10.20...v20.10.24)

---
updated-dependencies:
- dependency-name: github.com/docker/docker
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-04 21:19:03 +00:00
Stefan Prodan
0625bf8185 Merge pull request #3744 from fluxcd/dependabot/github_actions/anchore/sbom-action-0.14.1
build(deps): bump anchore/sbom-action from 0.13.4 to 0.14.1
2023-04-03 10:23:45 +03:00
dependabot[bot]
403ea39825 build(deps): bump anchore/sbom-action from 0.13.4 to 0.14.1
Bumps [anchore/sbom-action](https://github.com/anchore/sbom-action) from 0.13.4 to 0.14.1.
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](448520c4f1...422cb34a0f)

---
updated-dependencies:
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 07:09:38 +00:00
Stefan Prodan
28e1f6e3c7 Merge pull request #3745 from fluxcd/dependabot/github_actions/github/codeql-action-2.2.9
build(deps): bump github/codeql-action from 2.2.8 to 2.2.9
2023-04-03 10:02:56 +03:00
dependabot[bot]
7ee92db427 build(deps): bump github/codeql-action from 2.2.8 to 2.2.9
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.2.8 to 2.2.9.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](67a35a0858...04df1262e6)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-04-03 01:35:22 +00:00
Hidde Beydals
d4cc45f55e Merge pull request #3728 from fluxcd/dependabot/github_actions/anchore/sbom-action-0.13.4 2023-03-27 09:06:27 +02:00
dependabot[bot]
8240d19fbd build(deps): bump anchore/sbom-action from 0.13.3 to 0.13.4
Bumps [anchore/sbom-action](https://github.com/anchore/sbom-action) from 0.13.3 to 0.13.4.
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](07978da4bd...448520c4f1)

---
updated-dependencies:
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-27 06:37:54 +00:00
Hidde Beydals
a158360d7a Merge pull request #3729 from fluxcd/dependabot/github_actions/actions/checkout-3.5.0 2023-03-27 08:37:14 +02:00
dependabot[bot]
a30f77f8a4 build(deps): bump actions/checkout from 3.4.0 to 3.5.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](24cb908017...8f4b7f8486)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-27 06:12:24 +00:00
Hidde Beydals
8ec9e9ef4d Merge pull request #3730 from fluxcd/dependabot/github_actions/github/codeql-action-2.2.8 2023-03-27 08:09:35 +02:00
dependabot[bot]
dbfb4269cb build(deps): bump github/codeql-action from 2.2.7 to 2.2.8
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.2.7 to 2.2.8.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](168b99b3c2...67a35a0858)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-27 01:27:08 +00:00
Sunny
fad7112dd0 Merge pull request #3643 from Santosh1176/fix-3597
Add support for create source git with --commit and --ref-name flags
2023-03-24 18:08:18 +05:30
Santosh Kaluskar
6afef04a88 Add support for create source git with --commit and --ref-name flags
Signed-off-by: Santosh Kaluskar <dtshbl@gmail.com>
2023-03-24 16:54:50 +05:30
Hidde Beydals
10f8849e12 Merge pull request #3721 from yiannistri/3593-fix-double-newline
fix: Avoid printing an extra newline when exporting resources
2023-03-24 11:07:23 +01:00
Yiannis
b55f49b4fe fix: Remove any leading and trailing whitespace from resource before
exporting

Signed-off-by: Yiannis <yiannistri@users.noreply.github.com>
2023-03-24 09:07:36 +00:00
Max Jonas Werner
883815cd53 Merge pull request #3717 from fluxcd/dependabot/go_modules/google.golang.org/protobuf-1.29.1
build(deps): bump google.golang.org/protobuf from 1.29.0 to 1.29.1
2023-03-23 11:50:38 +01:00
dependabot[bot]
c9e73edd86 build(deps): bump google.golang.org/protobuf from 1.29.0 to 1.29.1
Bumps [google.golang.org/protobuf](https://github.com/protocolbuffers/protobuf-go) from 1.29.0 to 1.29.1.
- [Release notes](https://github.com/protocolbuffers/protobuf-go/releases)
- [Changelog](https://github.com/protocolbuffers/protobuf-go/blob/master/release.bash)
- [Commits](https://github.com/protocolbuffers/protobuf-go/compare/v1.29.0...v1.29.1)

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-23 10:35:38 +00:00
Max Jonas Werner
2ac2a75c8c Merge pull request #3654 from timofurrer/gitlab-deploy-token-auth
Implement `--deploy-token-auth` in GitLab bootstrapping
2023-03-23 11:34:43 +01:00
Timo Furrer
2e1721ca85 Implement --deploy-token-auth in GitLab bootstrapping
This change set implements support for the `--deploy-token-auth` option
in the `flux bootstrap gitlab` command.

That option will reconcile a GitLab Project Deploy Token to use for the
authentication of the GitLab git repository.
A GitLab Project Deploy Token can be used the same way as a Personal
Access Token which is already supported via `--token-auth`.
The difference with the GitLab Project Deploy Token is that the token is
managed (created, updated, deleted) by Flux and not provided by the
user.

This change is transparent to the source-controller.

A prerequisite for this change is the
`fluxcd/go-git-providers` change here:

* https://github.com/fluxcd/go-git-providers/pull/191

See related discussion here: https://github.com/fluxcd/flux2/discussions/3595
GitLab Issue here: https://gitlab.com/gitlab-org/gitlab/-/issues/392605

Signed-off-by: Timo Furrer <tuxtimo@gmail.com>
2023-03-21 14:03:09 +01:00
Timo Furrer
91d1e1df48 Update go-git-providers to v0.15.0
Signed-off-by: Timo Furrer <tuxtimo@gmail.com>
2023-03-21 14:03:09 +01:00
Stefan Prodan
2cfdeeb5a2 Merge pull request #3696 from matheuscscp/retry-interval
Add retry interval option to create kustomization command
2023-03-21 14:56:20 +02:00
Matheus Pimenta
c9fea671a7 Add retry interval option to create kustomization command
Signed-off-by: Matheus Pimenta <matheuscscp@gmail.com>
2023-03-21 12:36:07 +00:00
Hidde Beydals
dbda8fbdb8 Merge pull request #3710 from fluxcd/update-test-components
tests/azure: update toolkit components
2023-03-20 18:52:03 +01:00
Hidde Beydals
e2012a8272 tests/azure: update toolkit components
- github.com/fluxcd/helm-controller/api to v0.31.2
- github.com/fluxcd/image-reflector-controller/api to v0.26.1
- github.com/fluxcd/kustomize-controller/api to v0.35.1
- github.com/fluxcd/source-controller/api to v0.36.1

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-20 18:25:47 +01:00
Hidde Beydals
c930d58672 Merge pull request #3707 from fluxcd/update-components
Update toolkit components
2023-03-20 18:21:28 +01:00
fluxcdbot
cdd116dedf Update toolkit components
- helm-controller to v0.31.2
  https://github.com/fluxcd/helm-controller/blob/v0.31.2/CHANGELOG.md
- kustomize-controller to v0.35.1
  https://github.com/fluxcd/kustomize-controller/blob/v0.35.1/CHANGELOG.md
- source-controller to v0.36.1
  https://github.com/fluxcd/source-controller/blob/v0.36.1/CHANGELOG.md
- image-reflector-controller to v0.26.1
  https://github.com/fluxcd/image-reflector-controller/blob/v0.26.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-03-20 16:42:10 +00:00
Stefan Prodan
ad3141dac7 Merge pull request #3706 from fluxcd/update-workflows-go
build: update `actions/setup-go` in workflows
2023-03-20 13:01:22 +01:00
Hidde Beydals
ce405b6060 build: update actions/setup-go in workflows
- Update `actions/setup-go` to v4.0.0 in workflows.
- Remove separate caching steps in favor of built-in caching feature
  in action (since >=v3.0.0).

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-20 12:19:42 +01:00
Hidde Beydals
53d98c882e Merge pull request #3704 from fluxcd/dependabot/github_actions/peter-evans/create-pull-request-4.2.4
build(deps): bump peter-evans/create-pull-request from 4.2.3 to 4.2.4
2023-03-20 11:45:34 +01:00
dependabot[bot]
519cf58d27 build(deps): bump peter-evans/create-pull-request from 4.2.3 to 4.2.4
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4.2.3 to 4.2.4.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](2b011faafd...38e0b6e68b)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-20 11:29:29 +01:00
Hidde Beydals
fdeae99ba5 Merge pull request #3701 from fluxcd/dependabot/github_actions/actions/checkout-3.4.0
build(deps): bump actions/checkout from 3.3.0 to 3.4.0
2023-03-20 11:29:05 +01:00
dependabot[bot]
1071f04e93 build(deps): bump actions/checkout from 3.3.0 to 3.4.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](ac59398561...24cb908017)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-20 10:13:50 +00:00
Hidde Beydals
3f6ca549b9 Merge pull request #3703 from fluxcd/dependabot/github_actions/github/codeql-action-2.2.7
build(deps): bump github/codeql-action from 2.2.6 to 2.2.7
2023-03-20 11:04:17 +01:00
dependabot[bot]
a452f15905 build(deps): bump github/codeql-action from 2.2.6 to 2.2.7
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.2.6 to 2.2.7.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](16964e90ba...168b99b3c2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-20 01:27:33 +00:00
Sunny
5fdc8c3e08 Merge pull request #3617 from Santosh1176/patch-3536
Create secret with bearer-token
2023-03-16 17:42:48 +05:30
Santosh Kaluskar
5a45d2b127 Create secret with bearer-token
Signed-off-by: Santosh Kaluskar <dtshbl@gmail.com>
2023-03-14 22:31:45 +05:30
Hidde Beydals
0fd8fbe301 Merge pull request #3684 from fluxcd/dependabot/github_actions/github/codeql-action-2.2.6
build(deps): bump github/codeql-action from 2.2.5 to 2.2.6
2023-03-13 12:50:36 +01:00
dependabot[bot]
ec978fc79f build(deps): bump github/codeql-action from 2.2.5 to 2.2.6
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.2.5 to 2.2.6.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](32dc499307...16964e90ba)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-13 10:25:14 +00:00
Hidde Beydals
8c3abb0d8b Merge pull request #3683 from fluxcd/dependabot/github_actions/docker/setup-buildx-action-2.5.0
build(deps): bump docker/setup-buildx-action from 2.4.1 to 2.5.0
2023-03-13 11:24:34 +01:00
dependabot[bot]
e1fca7f062 build(deps): bump docker/setup-buildx-action from 2.4.1 to 2.5.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.4.1 to 2.5.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](f03ac48505...4b4e9c3e2d)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-13 08:52:53 +00:00
Max Jonas Werner
50829c3217 Merge pull request #3685 from fluxcd/dependabot/github_actions/actions/cache-3.3.0
build(deps): bump actions/cache from 3.2.6 to 3.3.0
2023-03-13 09:52:09 +01:00
dependabot[bot]
da06854e05 build(deps): bump actions/cache from 3.2.6 to 3.3.0
Bumps [actions/cache](https://github.com/actions/cache) from 3.2.6 to 3.3.0.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](69d9d449ac...940f3d7cf1)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-13 01:33:06 +00:00
Hidde Beydals
865f172e33 Merge pull request #3680 from fluxcd/update-components
Update toolkit components
2023-03-10 16:09:39 +01:00
fluxcdbot
5607754702 Update toolkit components
- helm-controller to v0.31.1
  https://github.com/fluxcd/helm-controller/blob/v0.31.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-03-10 14:55:09 +00:00
Stefan Prodan
17d134766d Merge pull request #3676 from fluxcd/update-kube-prometheus-stack
Disable drift detection for kube-prometheus-stack webhooks
2023-03-09 20:19:00 +02:00
Stefan Prodan
06ed881e37 Disable drift detection for kube-prometheus-stack webhooks
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-03-09 19:51:25 +02:00
Hidde Beydals
eabd250ed2 Merge pull request #3628 from somtochiama/flux-events-cmd
Add `flux events` command
2023-03-09 14:54:29 +01:00
Hidde Beydals
af153ea0cf events: avoid having to keep individal kind maps
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 14:41:32 +01:00
Hidde Beydals
3f3d68a33a events: reword error messages
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 14:41:32 +01:00
Hidde Beydals
c0916edc44 events: prevent defer in loop
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 14:41:32 +01:00
Hidde Beydals
34220fd514 events: make --for case insensitive for kinds
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 14:41:32 +01:00
Hidde Beydals
5b8f673baa events: use constants for supported Flux kinds
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 14:41:31 +01:00
Somtochi Onyekwere
5b18289808 Add flux events command
This adds a command to Flux which behaves similarly as `kubectl events`,
including the Flux sources events when showing events for top level
objects, thus making debugging easy for Flux users.

For example, `flux events --for kustomization/<name>` includes the
events of its source (e.g. a `GitRepository`, `OCIRepository` or
`Bucket`).

In addition, `flux events --for helmrelease/<name>` includes events of
the `HelmChart` and `HelmRepository`. While `flux events --for
alerts/<name>` includes the events of the `Provider`.

Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2023-03-09 14:41:31 +01:00
Hidde Beydals
2589c90c25 Merge pull request #3674 from fluxcd/update-deps
Update dependencies
2023-03-09 14:31:21 +01:00
Hidde Beydals
16e0b93bec diff: update Action references to typed Action
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 13:10:24 +01:00
Hidde Beydals
9274e80d71 Update dependencies
- github.com/fluxcd/pkg/git to v0.11.0
- github.com/fluxcd/pkg/git/gogit to v0.8.1
- github.com/fluxcd/pkg/kustomize to v0.13.2
- github.com/fluxcd/pkg/oci to v0.21.1
- github.com/fluxcd/pkg/runtime to v0.31.0
- github.com/fluxcd/pkg/ssa to v0.24.1
- github.com/fluxcd/pkg/ssh to v0.7.3
- golang.org/x/crypto to v0.7.0
- golang.org/x/term to v0.6.0
- k8s.io/cli-runtime to v0.26.2
- k8s.io/kubectl to v0.26.2

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 13:06:43 +01:00
Stefan Prodan
66deeec9f1 Merge pull request #3673 from fluxcd/fix-e2e-kind
ci: Use latest available images of kindest/node
2023-03-09 13:38:17 +02:00
Stefan Prodan
59ca6548ea ci: Use latest available images of kindest/node
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-03-09 13:24:10 +02:00
Stefan Prodan
267d2314e0 Merge pull request #3672 from fluxcd/update-test-deps
tests/azure: update dependencies
2023-03-09 13:11:48 +02:00
Hidde Beydals
0b5502963e tests/azure: update dependencies
- github.com/fluxcd/image-automation-controller/api to v0.31.0
- github.com/fluxcd/image-reflector-controller/api to v0.26.0
- github.com/fluxcd/kustomize-controller/api to v0.35.0
- github.com/fluxcd/notification-controller/api to v0.33.0
- github.com/fluxcd/pkg/apis/event to v0.4.1
- github.com/fluxcd/pkg/git to v0.11.0
- github.com/fluxcd/pkg/git/gogit to v0.8.1
- github.com/fluxcd/source-controller/api to v0.36.0
- github.com/hashicorp/terraform-exec to v0.18.1
- go.uber.org/multierr to v1.10.0

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 11:59:00 +01:00
Hidde Beydals
4431aa2dd0 Merge pull request #3669 from fluxcd/update-release-workflow
Update GitHub Action workflows
2023-03-09 11:58:23 +01:00
Hidde Beydals
26aafa1b6f e2e: update podinfo to version with newer APIs
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 11:43:05 +01:00
Hidde Beydals
d29f1c062f build: update Kubernetes versions in e2e workflows
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 09:41:23 +01:00
Hidde Beydals
879558fe20 build: update scan workflow
To include a (full) version number behind the actions with a SHA
reference, so Dependabot will continue to update them from now on.

Except for the `snyk/actions`, which follows `main`.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 09:41:23 +01:00
Hidde Beydals
940b5c4fb9 build: update update workflow
To include a version number behind the actions with a SHA reference, so
Dependabot will continue to update them from now on.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 09:41:23 +01:00
Hidde Beydals
5ab9c01378 build: update e2e{-*} workflows
To include a version number behind the actions with a SHA reference, so
Dependabot will continue to update them from now on.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 09:41:23 +01:00
Hidde Beydals
db67d2c4df build: update release workflow
- sigstore/cosign-installer to v3.0.1
- Put (exact) version comment behind all action references, while taking note
  this is an absolute insane way to manage versions.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 09:41:23 +01:00
Hidde Beydals
47867cd80b Merge pull request #3670 from fluxcd/update-go-1.20
Update Go to 1.20
2023-03-09 09:40:52 +01:00
Hidde Beydals
fe0baa4de9 build: update cache keys to reflect Go 1.20
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 09:26:51 +01:00
Hidde Beydals
262e6bb543 Update kubectl in Dockerfile to v1.26.2
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 09:26:51 +01:00
Hidde Beydals
18760acaa8 Update Go to 1.20
Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-09 09:26:51 +01:00
Hidde Beydals
a62404c16f Merge pull request #3666 from fluxcd/update-components
Update toolkit components
2023-03-09 09:26:40 +01:00
fluxcdbot
44db4e100a Update toolkit components
- kustomize-controller to v0.35.0
  https://github.com/fluxcd/kustomize-controller/blob/v0.35.0/CHANGELOG.md
- source-controller to v0.36.0
  https://github.com/fluxcd/source-controller/blob/v0.36.0/CHANGELOG.md
- notification-controller to v0.33.0
  https://github.com/fluxcd/notification-controller/blob/v0.33.0/CHANGELOG.md
- image-reflector-controller to v0.26.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.26.0/CHANGELOG.md
- image-automation-controller to v0.31.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.31.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-03-09 08:10:05 +00:00
Hidde Beydals
62d8448b9c Merge pull request #3667 from fluxcd/update-helm-controller
Update helm-controller to v0.31.0
2023-03-09 09:09:13 +01:00
Hidde Beydals
1cc7682d44 Replace helmv2.KubeConfig with meta.KubeConfig
This is a backwards compatible change in terms of "YAML API", as they
spec still equals the previous one. Object type has just changed.

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-08 18:51:14 +01:00
Hidde Beydals
6eb3fdf863 Update helm-controller to v0.31.0
Which includes an update of:

- github.com/fluxcd/pkg/apis/meta to v0.19.1
- k8s.io/apiextensions-apiserver to v0.26.2
- k8s.io/apimachinery to v0.26.2
- k8s.io/client-go to v0.26.2

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-03-08 18:51:13 +01:00
Stefan Prodan
2e4de673b2 Merge pull request #3653 from fluxcd/push-with-annotations
Allow custom annotations to be set when pushing OCI artifacts
2023-03-03 12:57:00 +02:00
Stefan Prodan
a64913f2f0 Allow custom annotations to be set when pushing OCI artifacts
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-03-03 12:40:59 +02:00
Hidde Beydals
2c7d650d44 Merge pull request #3645 from fluxcd/update-deps
Update dependencies
2023-02-28 15:14:27 +01:00
Hidde Beydals
c05b540518 Update dependencies
- github.com/onsi/gomega to v1.27.2

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-02-28 14:37:53 +01:00
Hidde Beydals
c8bd8d0f26 tests/azure: update dependencies
- github.com/fluxcd/notification-controller/api to v0.32.1
- github.com/stretchr/testify to v1.8.2

Signed-off-by: Hidde Beydals <hidde@hhh.computer>
2023-02-28 14:35:29 +01:00
Hidde Beydals
a4cd8095a1 Merge pull request #3644 from fluxcd/update-components
Update toolkit components
2023-02-28 14:34:11 +01:00
fluxcdbot
79485c99ab Update toolkit components
- notification-controller to v0.32.1
  https://github.com/fluxcd/notification-controller/blob/v0.32.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-02-28 13:07:03 +00:00
Stefan Prodan
e29f171844 Merge pull request #3638 from fluxcd/dependabot/github_actions/actions/cache-3.2.6
build(deps): bump actions/cache from 3.2.5 to 3.2.6
2023-02-27 16:17:44 +02:00
dependabot[bot]
c16cca891f build(deps): bump actions/cache from 3.2.5 to 3.2.6
Bumps [actions/cache](https://github.com/actions/cache) from 3.2.5 to 3.2.6.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](6998d139dd...69d9d449ac)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 13:55:42 +00:00
Stefan Prodan
68ef3a464e Merge pull request #3637 from fluxcd/dependabot/github_actions/github/codeql-action-2.2.5
build(deps): bump github/codeql-action from 2.2.4 to 2.2.5
2023-02-27 15:55:05 +02:00
dependabot[bot]
a5958b494d build(deps): bump github/codeql-action from 2.2.4 to 2.2.5
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.2.4 to 2.2.5.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](17573ee1cc...32dc499307)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 01:57:43 +00:00
Hidde Beydals
c88a2f4137 Merge pull request #3626 from fluxcd/update-deps
Update dependencies
2023-02-23 15:21:18 +01:00
Hidde Beydals
349bad9240 tests/azure: update dependencies
- github.com/hashicorp/terraform-exec to v0.18.0
- Unpin golang.org/x/crypto to allow update to v0.6.0

Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-23 14:52:25 +01:00
Hidde Beydals
8c7b534544 Update dependencies
- github.com/distribution/distribution/v3 to v3.0.0-20230223072852-e5d5810851d
- github.com/fluxcd/pkg/oci to v0.20.0
- github.com/fluxcd/pkg/sourceignore to v0.3.2
- github.com/onsi/gomega to v1.27.1

Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-23 14:52:25 +01:00
Hidde Beydals
3028897392 Merge pull request #3624 from fluxcd/update-components
Update toolkit components
2023-02-23 14:46:49 +01:00
Hidde Beydals
b28d80e752 tests/azure: update source-controller to v0.35.2
Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-23 14:30:43 +01:00
fluxcdbot
76552855bb Update toolkit components
- source-controller to v0.35.2
  https://github.com/fluxcd/source-controller/blob/v0.35.2/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-02-23 13:07:38 +00:00
Stefan Prodan
e4d19c84eb Merge pull request #3615 from fluxcd/rfc-status-updates
Update implementation history of RFC-0003 and RFC-0005
2023-02-20 16:52:55 +02:00
Stefan Prodan
737d615fbc Update implementation history of RFC-0003 and RFC-0005
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-02-20 16:36:29 +02:00
Stefan Prodan
2cac6ce281 Merge pull request #3578 from fluxcd/stats-cmd
Add command to print the reconcilers status
2023-02-20 13:24:41 +02:00
Stefan Prodan
7490d4d4b8 Add command to print the reconcilers status
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-02-20 13:08:04 +02:00
Stefan Prodan
3cb9e7cbee Merge pull request #3612 from fluxcd/dependabot/github_actions/fossa-contrib/fossa-action-2.0.0
build(deps): bump fossa-contrib/fossa-action from 1.2.0 to 2.0.0
2023-02-20 09:35:00 +02:00
dependabot[bot]
7b731f7777 build(deps): bump fossa-contrib/fossa-action from 1.2.0 to 2.0.0
Bumps [fossa-contrib/fossa-action](https://github.com/fossa-contrib/fossa-action) from 1.2.0 to 2.0.0.
- [Release notes](https://github.com/fossa-contrib/fossa-action/releases)
- [Changelog](https://github.com/fossa-contrib/fossa-action/blob/master/CHANGELOG.md)
- [Commits](6cffaa0641...6728dc6fe9)

---
updated-dependencies:
- dependency-name: fossa-contrib/fossa-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-20 02:05:21 +00:00
Hidde Beydals
7e5cbdaea5 Merge pull request #3610 from fluxcd/azure-deps
Update dependencies
2023-02-17 17:40:14 +01:00
Hidde Beydals
6e81e82c8c tests/azure: update other dependencies
- github.com/fluxcd/pkg/apis/event to v0.4.0
- github.com/fluxcd/pkg/git to v0.10.0
- github.com/fluxcd/pkg/git/gogit to v0.7.1
- github.com/hashicorp/hc-install to v0.5.0

Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-17 16:58:12 +01:00
Hidde Beydals
a4e1b80ba7 tests/azure: update dependencies
- github.com/fluxcd/helm-controller/api v0.30.0
- github.com/fluxcd/image-automation-controller/api v0.30.0
- github.com/fluxcd/kustomize-controller/api v0.34.0
- github.com/fluxcd/notification-controller/api v0.32.0

Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-17 16:57:57 +01:00
Hidde Beydals
e0131f22dd Update dependencies
- github.com/ProtonMail/go-crypto to v0.0.0-20230217124315-7d5c6f04bbb8
- github.com/distribution/distribution/v3 to v3.0.0-20230217093620-e64b08ada6c3
- github.com/fluxcd/go-git-providers to v0.14.0
- github.com/fluxcd/pkg/git/gogit to v0.7.1
- github.com/fluxcd/pkg/kustomize to v0.13.1
- github.com/fluxcd/pkg/oci to v0.19.1
- github.com/fluxcd/pkg/runtime to v0.29.0
- github.com/fluxcd/pkg/sourceignore to v0.3.1
- github.com/fluxcd/pkg/ssa to v0.23.1
- github.com/fluxcd/pkg/ssh to v0.7.1
- github.com/fluxcd/pkg/version to v0.2.1
- github.com/onsi/gomega to v1.27.0

Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-17 16:57:57 +01:00
Hidde Beydals
caf55ccb7f Merge pull request #3598 from fluxcd/update-components 2023-02-17 16:00:02 +01:00
fluxcdbot
04afc09d58 Update toolkit components
- helm-controller to v0.30.0
  https://github.com/fluxcd/helm-controller/blob/v0.30.0/CHANGELOG.md
- kustomize-controller to v0.34.0
  https://github.com/fluxcd/kustomize-controller/blob/v0.34.0/CHANGELOG.md
- notification-controller to v0.32.0
  https://github.com/fluxcd/notification-controller/blob/v0.32.0/CHANGELOG.md
- image-automation-controller to v0.30.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.30.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-02-17 14:07:05 +00:00
Hidde Beydals
b67c432bc1 Merge pull request #3606 from fluxcd/set-output-deprecation
build: further solve issue release workflow
2023-02-17 15:06:07 +01:00
Hidde Beydals
a59aaa4dfb build: further solve issue release workflow
Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-17 14:57:45 +01:00
Hidde Beydals
1302fb17c2 Merge pull request #3605 from fluxcd/set-output-deprecation
build: ensure newlines work with $GITHUB_OUTPUT
2023-02-17 14:41:19 +01:00
Hidde Beydals
2e1e4106fd build: ensure newlines work with $GITHUB_OUTPUT
Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-17 14:21:45 +01:00
Hidde Beydals
e4df6c9d14 Merge pull request #3604 from fluxcd/set-output-deprecation
build: convert ::set-output to $GITHUB_OUTPUT
2023-02-17 14:12:00 +01:00
Hidde Beydals
bca26ebf0a build: convert ::set-output to $GITHUB_OUTPUT
Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-17 13:44:27 +01:00
Stefan Prodan
2827171dd8 Merge pull request #3603 from fluxcd/remove-deprecated-flags
Remove deprecated flags
2023-02-17 14:35:46 +02:00
Stefan Prodan
b44a3d36ba Remove deprecated flags
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-02-17 14:23:11 +02:00
Hidde Beydals
ea04bc8e47 Merge pull request #3602 from fluxcd/update-sc
Update source-controller to v0.35.1
2023-02-17 13:01:49 +01:00
Hidde Beydals
0f7b903ace Update push artifact's --revision to RFC-0005
Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-17 12:48:55 +01:00
Hidde Beydals
71d59e36cc bootstrap: support legacy revision while polling
Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-17 12:48:55 +01:00
Hidde Beydals
7f99655a2b Update golden files with RFC-0005 revision formats
Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-17 12:48:55 +01:00
Hidde Beydals
d56844010f Update source-controller to v0.35.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-17 11:21:48 +01:00
Stefan Prodan
218a661449 Merge pull request #3601 from fluxcd/fix-snyk
ci: Fix Snyk Go build VCS stamping error
2023-02-17 12:20:04 +02:00
Stefan Prodan
873950dc55 ci: Fix Snyk Go build VCS stamping error
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-02-17 12:04:14 +02:00
Stefan Prodan
b445013d25 Merge pull request #3566 from fluxcd/rbac-edit-view
rbac: Add view and edit aggregated cluster roles
2023-02-17 11:51:39 +02:00
Stefan Prodan
65055c273f rbac: Add view and edit aggregated cluster roles
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-02-17 11:21:47 +02:00
Sunny
3c14f8beb0 Merge pull request #3585 from fluxcd/irc-v1beta2
Update image-reflector API to v1beta2
2023-02-17 14:44:04 +05:30
Sunny
9dd98fb2b2 Update image-reflector API to v1beta2
Signed-off-by: Sunny <darkowlzz@protonmail.com>
2023-02-17 00:32:48 +05:30
Hidde Beydals
4a871cdf10 Merge pull request #3587 from fluxcd/digest-revision-fmt
Support shortening of revision with digest
2023-02-15 16:03:09 +01:00
Hidde Beydals
bb6a7b8f07 Support shortening of revision with digest
The `\b` in the regular expression ensures we only match with a
hexadecimal notation as awhole, while still allowing to match with
e.g. `sha1:...` which would not have been possible by using `\W`
as this includes `_`.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-15 15:43:11 +01:00
Hidde Beydals
ae9728685c Merge pull request #3592 from fluxcd/fix-golden-files
tests: only provide template values when used
2023-02-15 14:25:44 +01:00
Hidde Beydals
662f0d8cae tests: rename "kubectl" setupTestNamespace
As the other version has a different signature, but exists for a
different build tag. Resulting in my IDE becoming absolutely confused
when I tried to enable both at the same time. Opted for "exec" because
this one shells out.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-15 13:56:55 +01:00
Hidde Beydals
1f5961d2ad tests: deal with remaining defer
Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-15 13:52:05 +01:00
Hidde Beydals
b263e14fa8 tests: only provide template values when used
As otherwise the `.golden` values can not be automatically updated using
`-update` as documented in `CONTRIBUTING.md`.

Also ensure we do not use `defer` but rather `t.Cleanup` in tests, as
this will always be called even if e.g. `t.Fatal` absruptly stops the
test.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2023-02-15 13:22:44 +01:00
Stefan Prodan
1e67d75848 Merge pull request #3582 from fluxcd/dependabot/github_actions/actions/cache-3.2.5
build(deps): bump actions/cache from 3.2.4 to 3.2.5
2023-02-13 17:34:05 +02:00
dependabot[bot]
f4acc0cfc9 build(deps): bump actions/cache from 3.2.4 to 3.2.5
Bumps [actions/cache](https://github.com/actions/cache) from 3.2.4 to 3.2.5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](627f0f41f6...6998d139dd)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 14:05:50 +00:00
Stefan Prodan
e5c9132d1d Merge pull request #3581 from fluxcd/dependabot/github_actions/github/codeql-action-2.2.4
build(deps): bump github/codeql-action from 2.2.1 to 2.2.4
2023-02-13 16:02:40 +02:00
dependabot[bot]
3c330b71aa build(deps): bump github/codeql-action from 2.2.1 to 2.2.4
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.2.1 to 2.2.4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](3ebbd71c74...17573ee1cc)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 13:37:02 +00:00
Stefan Prodan
f3f6c373fc Merge pull request #3583 from fluxcd/dependabot/github_actions/snyk/actions-806182742461562b67788a64410098c9d9b96adb
build(deps): bump snyk/actions from e25b2e6f5658d1bb7a6671b113260f13134cc3af to 806182742461562b67788a64410098c9d9b96adb
2023-02-13 15:36:16 +02:00
dependabot[bot]
577d4e71af build(deps): bump snyk/actions
Bumps [snyk/actions](https://github.com/snyk/actions) from e25b2e6f5658d1bb7a6671b113260f13134cc3af to 806182742461562b67788a64410098c9d9b96adb.
- [Release notes](https://github.com/snyk/actions/releases)
- [Commits](e25b2e6f56...8061827424)

---
updated-dependencies:
- dependency-name: snyk/actions
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 11:40:21 +00:00
Stefan Prodan
a80325995d Merge pull request #3575 from fluxcd/rfc-0003-oci-media-type
RFC-0003: Introduce Flux OCI media type
2023-02-13 13:32:56 +02:00
Stefan Prodan
c093714597 RFC-0003: Introduce Flux OCI media type
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-02-13 13:08:01 +02:00
Stefan Prodan
fa9d42d7bf Merge pull request #3584 from fluxcd/dependabot/github_actions/docker/setup-buildx-action-2.4.1
build(deps): bump docker/setup-buildx-action from 2.4.0 to 2.4.1
2023-02-13 12:59:19 +02:00
dependabot[bot]
e93b3d8d75 build(deps): bump docker/setup-buildx-action from 2.4.0 to 2.4.1
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.4.0 to 2.4.1.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](15c905b16b...f03ac48505)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-13 02:06:09 +00:00
Stefan Prodan
6ea3e5b4da Merge pull request #3563 from fluxcd/dependabot/github_actions/actions/cache-3.2.4
build(deps): bump actions/cache from 3.2.3 to 3.2.4
2023-02-06 12:51:16 +02:00
dependabot[bot]
ae5294f010 build(deps): bump actions/cache from 3.2.3 to 3.2.4
Bumps [actions/cache](https://github.com/actions/cache) from 3.2.3 to 3.2.4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](58c146cc91...627f0f41f6)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 09:41:09 +00:00
Stefan Prodan
8571f9e1f8 Merge pull request #3562 from fluxcd/dependabot/github_actions/goreleaser/goreleaser-action-4.2.0
build(deps): bump goreleaser/goreleaser-action from 4.1.1 to 4.2.0
2023-02-06 11:40:25 +02:00
dependabot[bot]
0cd0bf3b58 build(deps): bump goreleaser/goreleaser-action from 4.1.1 to 4.2.0
Bumps [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) from 4.1.1 to 4.2.0.
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)
- [Commits](9754a253a8...f82d6c1c34)

---
updated-dependencies:
- dependency-name: goreleaser/goreleaser-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-06 01:05:36 +00:00
Hidde Beydals
d62cc90f51 Merge pull request #3560 from fluxcd/action-perms
docs: Add permissions to update workflow
2023-02-03 15:14:12 +00:00
Stefan Prodan
3fc5f34344 docs: Add permissions to update workflow
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-02-03 16:51:22 +02:00
Stefan Prodan
978cc0c5b8 Merge pull request #3545 from fluxcd/update-components
Update toolkit components
2023-02-02 12:59:47 +02:00
fluxcdbot
4e009a7167 Update toolkit components
- helm-controller to v0.29.0
  https://github.com/fluxcd/helm-controller/blob/v0.29.0/CHANGELOG.md
- kustomize-controller to v0.33.0
  https://github.com/fluxcd/kustomize-controller/blob/v0.33.0/CHANGELOG.md
- source-controller to v0.34.0
  https://github.com/fluxcd/source-controller/blob/v0.34.0/CHANGELOG.md
- notification-controller to v0.31.0
  https://github.com/fluxcd/notification-controller/blob/v0.31.0/CHANGELOG.md
- image-reflector-controller to v0.24.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.24.0/CHANGELOG.md
- image-automation-controller to v0.29.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.29.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2023-02-01 18:02:11 +00:00
Stefan Prodan
176444263c Merge pull request #3550 from fluxcd/fix-tree-crds
flux tree: Set CRDs GroupKind in output
2023-02-01 12:57:25 +02:00
Stefan Prodan
87232fd4dd flux tree: Set CRDs GroupKind in output
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-02-01 12:41:35 +02:00
Stefan Prodan
0361a08aa0 Merge pull request #3549 from fluxcd/tree-hr-crds
flux tree: Track CRDs managed by HelmReleases
2023-02-01 12:22:02 +02:00
Stefan Prodan
be154d079b flux tree: Track CRDs managed by HelmReleases
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-02-01 12:01:11 +02:00
Stefan Prodan
feccc36415 Merge pull request #3542 from fluxcd/tree-hr-ns
flux tree: Add namespaces to objects reconciled from HRs
2023-01-31 18:40:12 +02:00
Stefan Prodan
06b8ad2402 flux tree: Add namespaces to objects reconcile from HRs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-01-31 18:17:48 +02:00
Stefan Prodan
023a709b6a Merge pull request #3540 from fluxcd/push-output
Add json/yaml output to flux push artifact
2023-01-31 15:28:26 +02:00
Stefan Prodan
6681cd05a9 Add example of push and sign OCI artifacts
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-01-31 14:30:50 +02:00
Stefan Prodan
56807fddf6 Add json/yaml output to flux push artifact
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-01-31 13:36:59 +02:00
Stefan Prodan
51504406da Merge pull request #3537 from fluxcd/kube-1.26
Update dependencies to Kubernetes v1.26.1
2023-01-31 12:31:07 +02:00
Stefan Prodan
d28cdd9726 Update dependencies
- github.com/fluxcd/go-git-providers v0.13.0
- github.com/fluxcd/pkg/runtime v0.27.0
- github.com/fluxcd/pkg/ssa v0.23.0
- github.com/google/go-containerregistry v0.13.0
- sigs.k8s.io/controller-runtime v0.14.2
- k8s.io/* v0.26.1

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-01-31 11:26:44 +02:00
Stefan Prodan
c1f120facc Merge pull request #3507 from thezanke/patch-1
Update prometheus-community helm repo due to the suspension of OCI builds
2023-01-30 18:32:34 +02:00
Alex Howard
87f792915a Fix kube-prometheus-stack manifests
Updates the HelmRepository and HelmRelease to remove chart
verification and switch to using the official HTTPS repository
at https://prometheus-community.github.io/helm-charts.

OCI builds have temporarily been suspended for these charts due
to pipeline errors.

See: prometheus-community/helm-charts#2841

Signed-off-by: Alex Howard <thezanke@gmail.com>
2023-01-30 11:13:05 -05:00
Max Jonas Werner
9fb5fe3af3 Merge pull request #3531 from fluxcd/fix-misleading-messaging
fix misleading messaging when using `-A` flag
2023-01-30 17:08:22 +01:00
Max Jonas Werner
0648f56049 fix misleading messaging when using -A flag
Before:

```
$ flux get source git -A
✗ no GitRepository objects found in flux-system namespace
```

After:

```
$ flux get source git -A
✗ no GitRepository objects found in any namespace
```

Signed-off-by: Max Jonas Werner <max@e13.dev>
2023-01-30 16:54:16 +01:00
Stefan Prodan
7da8ffd87f Merge pull request #3532 from fluxcd/alpine-3.17
Update Alpine to v3.17 and kubectl to v1.26.1 in flux-cli image
2023-01-30 17:50:49 +02:00
Stefan Prodan
79f900b82e ci: Replace engineerd/setup-kind with helm/kind-action
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-01-30 17:18:35 +02:00
Stefan Prodan
0394c4d5ef Update Alpine to v3.17
Bump kubectl binary to v1.26.1

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2023-01-30 17:05:14 +02:00
Stefan Prodan
693f0c1da1 Merge pull request #3529 from fluxcd/dependabot/github_actions/docker/setup-buildx-action-2.4.0
build(deps): bump docker/setup-buildx-action from 2.2.1 to 2.4.0
2023-01-30 14:37:51 +02:00
dependabot[bot]
65481c223e build(deps): bump docker/setup-buildx-action from 2.2.1 to 2.4.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2.2.1 to 2.4.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](8c0edbc76e...15c905b16b)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 12:12:38 +00:00
Stefan Prodan
d2222426f5 Merge pull request #3526 from fluxcd/dependabot/github_actions/anchore/sbom-action-0.13.3
Bump anchore/sbom-action from 0.13.1 to 0.13.3
2023-01-30 14:09:34 +02:00
dependabot[bot]
18924d29a7 Bump anchore/sbom-action from 0.13.1 to 0.13.3
Bumps [anchore/sbom-action](https://github.com/anchore/sbom-action) from 0.13.1 to 0.13.3.
- [Release notes](https://github.com/anchore/sbom-action/releases)
- [Commits](06e109483e...07978da4bd)

---
updated-dependencies:
- dependency-name: anchore/sbom-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 11:38:26 +00:00
Stefan Prodan
84a3cdde93 Merge pull request #3525 from fluxcd/dependabot/github_actions/github/codeql-action-2.2.1
Bump github/codeql-action from 2.1.38 to 2.2.1
2023-01-30 13:37:34 +02:00
dependabot[bot]
e5eb4d4a67 Bump github/codeql-action from 2.1.38 to 2.2.1
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.1.38 to 2.2.1.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](515828d974...3ebbd71c74)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 10:23:13 +00:00
Stefan Prodan
60c44c16f5 Merge pull request #3524 from fluxcd/dependabot/github_actions/goreleaser/goreleaser-action-4.1.1
Bump goreleaser/goreleaser-action from 4.1.0 to 4.1.1
2023-01-30 12:19:07 +02:00
dependabot[bot]
f22222f71d Bump goreleaser/goreleaser-action from 4.1.0 to 4.1.1
Bumps [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) from 4.1.0 to 4.1.1.
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)
- [Commits](8f67e590f2...9754a253a8)

---
updated-dependencies:
- dependency-name: goreleaser/goreleaser-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-30 01:03:33 +00:00
Stefan Prodan
287ac6b003 Merge pull request #3517 from jooooel/joel/fix-bug-in-action
Fix broken GitHub Action and handle case where VERSION is provided as an input
2023-01-26 16:54:41 +02:00
Joel Guedj
5b422bef17 Handle case where VERSION is provided as an input
If VERSION is provided, VERSION_SLUG will never be set and VERSION will
be overwritten with a bad value.

Signed-off-by: Joel Guedj <joel.guedj@gmail.com>
2023-01-26 11:46:21 +01:00
Stefan Prodan
1dc3ff6c59 Merge pull request #3513 from kingdonb/fix-action-3
Fix fluxcd/flux2/action
2023-01-24 22:08:23 +02:00
Kingdon Barrett
ed13067ff2 test conditionals in a nested structure
add an "else" branch
(https://github.com/fluxcd/flux2/pull/3511 failed to fix #3509)

* factor out sed and cut

so we at least do not repeat the most complex part of the expression

* eliminate intermediary array TOKEN
* delete reassignment of token
* wording

Signed-off-by: Kingdon Barrett <kingdon@weave.works>
2023-01-24 14:25:42 -05:00
Stefan Prodan
a3151aa10c Merge pull request #3511 from kingdonb/fix-action-again
Fix fluxcd/flux2/action (finally)
2023-01-24 13:51:24 +02:00
Kingdon Barrett
536f4c31ce do not quote token here
Adding quotes here, when the variable is empty you get:

curl https://api.github.com/repos/fluxcd/flux2/releases/latest -sL ''

(ref:
https://github.com/kingdonb/bootstrap-repo/actions/runs/3991169408/jobs/6845685491#step:3:31
)

That does curl twice, once for the URL provided and again for the empty
string, which results in curl returning error code 3 "malformed URL"

Signed-off-by: Kingdon Barrett <kingdon@weave.works>
2023-01-23 17:50:12 -05:00
Hidde Beydals
3a8765859d Merge pull request #3508 from kingdonb/fix-action
Quote tested values in fluxcd/flux GitHub Action
2023-01-23 22:23:38 +00:00
Kingdon Barrett
369ae5aa71 Quote tested values in fluxcd/flux GitHub Action
Fix an issue with improperly quoted variables created by #3474

Also, curl should fail with an error code if the download results in
404 not found

* + (x3) Update action/action.yml
* for consistent format

Co-authored-by: Steven E. Harris <seh@panix.com>
Signed-off-by: Kingdon Barrett <kingdon@weave.works>
2023-01-23 14:51:18 -05:00
Stefan Prodan
ca2b93ba39 Merge pull request #3501 from kingdonb/flux-action-updates
Add GITHUB_TOKEN  to Flux GitHub Action
2023-01-23 13:27:41 +02:00
Erik Kristensen
8ff8295d0c fix: update example to use correct output method
feat: add ability to auth to github api
docs: add authentication snippet example
docs: update checkout@v3, create-pull-request@v4
docs: add documentation about the github token secret

Review: Add suggested change from last week

(per
https://github.com/fluxcd/flux2/pull/3474#discussion_r1067178730)

Signed-off-by: Erik Kristensen <erik@erikkristensen.com>
Signed-off-by: Kingdon Barrett <kingdon@weave.works>
2023-01-21 13:07:23 -05:00
Stefan Prodan
0439154564 Merge pull request #3488 from fluxcd/dependabot/github_actions/snyk/actions-e25b2e6f5658d1bb7a6671b113260f13134cc3af
Bump snyk/actions from 1cc9026f51d822442cb4b872d8d7ead8cc69a018 to e25b2e6f5658d1bb7a6671b113260f13134cc3af
2023-01-16 17:11:38 +02:00
dependabot[bot]
e7e05f870b Bump snyk/actions
Bumps [snyk/actions](https://github.com/snyk/actions) from 1cc9026f51d822442cb4b872d8d7ead8cc69a018 to e25b2e6f5658d1bb7a6671b113260f13134cc3af.
- [Release notes](https://github.com/snyk/actions/releases)
- [Commits](1cc9026f51...e25b2e6f56)

---
updated-dependencies:
- dependency-name: snyk/actions
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-16 13:43:09 +00:00
Stefan Prodan
d54f08e7a9 Merge pull request #3487 from fluxcd/dependabot/github_actions/actions/cache-3.2.3
Bump actions/cache from 3.2.2 to 3.2.3
2023-01-16 15:42:12 +02:00
dependabot[bot]
ece3a07567 Bump actions/cache from 3.2.2 to 3.2.3
Bumps [actions/cache](https://github.com/actions/cache) from 3.2.2 to 3.2.3.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](4723a57e26...58c146cc91)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-16 09:07:24 +00:00
Max Jonas Werner
9c37506130 Merge pull request #3486 from fluxcd/dependabot/github_actions/github/codeql-action-2.1.38
Bump github/codeql-action from 2.1.37 to 2.1.38
2023-01-16 10:04:41 +01:00
dependabot[bot]
58b4ed586a Bump github/codeql-action from 2.1.37 to 2.1.38
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.1.37 to 2.1.38.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](959cbb7472...515828d974)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-16 01:16:39 +00:00
Aurel Canciu
c479eb80c6 Merge pull request #3477 from raffis/gh-auth-token
fix(install-script): support $GITHUB_TOKEN
2023-01-11 13:47:46 +01:00
raffis
da7af5ab5f Update install/README.md
Co-authored-by: Aurel Canciu <aurelcanciu@gmail.com>
Signed-off-by: raffis <raffael.sahli@doodle.com>
2023-01-11 13:13:20 +01:00
Raffael Sahli
d1b4851fbe fix(install-script): support github api auth
Signed-off-by: Raffael Sahli <raffael.sahli@doodle.com>
2023-01-11 08:05:49 +00:00
Sunny
a9f53b4f1a Merge pull request #3476 from aryan9600/revert-auto-stage
Update git/gogit to v0.4.1
2023-01-10 20:33:09 +05:30
Sanskar Jaiswal
7327b14a62 update git/gogit to v0.4.1
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2023-01-10 17:15:51 +05:30
Hidde Beydals
3d5fc3dc18 Merge pull request #3469 from fluxcd/dependabot/github_actions/actions/checkout-3.3.0
Bump actions/checkout from 3.2.0 to 3.3.0
2023-01-09 14:23:23 +00:00
dependabot[bot]
1d80ff2b09 Bump actions/checkout from 3.2.0 to 3.3.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](755da8c3cf...ac59398561)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-09 00:57:58 +00:00
Sunny
28111d27fb Merge pull request #3465 from kingdonb/powershell-completion-doc
Fix fluxcd/website#1347
2023-01-06 16:20:36 +05:30
Kingdon Barrett
ddd377b997 Fix fluxcd/website#1347
Signed-off-by: Kingdon Barrett <kingdon@weave.works>
2023-01-05 20:19:53 -05:00
Stefan Prodan
e01810037b Merge pull request #3457 from fluxcd/dependabot/github_actions/actions/cache-3.2.2
Bump actions/cache from 3.0.11 to 3.2.2
2023-01-02 18:44:05 +02:00
dependabot[bot]
f5563de144 Bump actions/cache from 3.0.11 to 3.2.2
Bumps [actions/cache](https://github.com/actions/cache) from 3.0.11 to 3.2.2.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](9b0c1fce7a...4723a57e26)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-01-02 00:36:13 +00:00
Stefan Prodan
8ecaa56461 Merge pull request #3441 from fluxcd/check-crds-version
check: Show the latest stored version of CRDs
2022-12-23 12:09:27 +02:00
Stefan Prodan
9d38ea6ffc check: Show the latest stored version of CRDs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-12-23 11:44:28 +02:00
Stefan Prodan
f58b82fb4e Merge pull request #3437 from fluxcd/update-components
Update toolkit components
2022-12-22 15:52:18 +02:00
fluxcdbot
be361a44d5 Update toolkit components
- helm-controller to v0.28.1
  https://github.com/fluxcd/helm-controller/blob/v0.28.1/CHANGELOG.md
- notification-controller to v0.30.2
  https://github.com/fluxcd/notification-controller/blob/v0.30.2/CHANGELOG.md

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-12-22 15:34:56 +02:00
Stefan Prodan
12e065cc43 Merge pull request #3429 from fluxcd/cli-notification-v1beta2
Update CLI commands to Notification API v1beta2
2022-12-21 17:32:23 +02:00
Stefan Prodan
f9e69089ea Update CLI commands to Notification API v1beta2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-12-21 17:14:18 +02:00
Stefan Prodan
2eced064dd Merge pull request #3428 from fluxcd/update-components
Update notification-controller to v0.30.1
2022-12-21 16:56:23 +02:00
fluxcdbot
7be91884b7 Update toolkit components
- notification-controller to v0.30.1
  https://github.com/fluxcd/notification-controller/blob/v0.30.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-12-21 14:38:45 +00:00
Hidde Beydals
b2b610b55e Merge pull request #3427 from fluxcd/update-deps
Update dependencies
2022-12-21 12:09:40 +00:00
Stefan Prodan
21a943e6f9 e2e: Update Kubernetes to v1.23.13 on AMD64
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-12-21 13:49:13 +02:00
Hidde Beydals
cb1b117d17 tests/azure: update dependencies
- github.com/fluxcd/go-git/v5 to v5.0.0-20221219190809-2e5c9d01cfc4

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-12-21 10:50:10 +00:00
Hidde Beydals
96f177b101 Update dependencies
- github.com/distribution/distribution/v3 to v3.0.0-20221208165359-362910506bc2
- github.com/fluxcd/go-git/v5 to v5.0.0-20221219190809-2e5c9d01cfc4
- github.com/fluxcd/go-git-providers to v0.12.0

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-12-21 10:49:12 +00:00
Hidde Beydals
7621418b72 tests/azure: update toolkit components
- github.com/fluxcd/helm-controller/api to v0.28.0
- github.com/fluxcd/image-automation-controller/api to v0.28.0
- github.com/fluxcd/image-reflector-controller/api to v0.23.1
- github.com/fluxcd/kustomize-controller/api to v0.32.0
- github.com/fluxcd/notification-controller/api to v0.30.0
- github.com/fluxcd/source-controller/api to v0.33.0

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-12-21 10:31:33 +00:00
Stefan Prodan
7a94a3ac71 Merge pull request #3360 from fluxcd/update-components
Update toolkit components
2022-12-21 12:22:49 +02:00
fluxcdbot
58b799fa83 Update toolkit components
- helm-controller to v0.28.0
  https://github.com/fluxcd/helm-controller/blob/v0.28.0/CHANGELOG.md
- kustomize-controller to v0.32.0
  https://github.com/fluxcd/kustomize-controller/blob/v0.32.0/CHANGELOG.md
- source-controller to v0.33.0
  https://github.com/fluxcd/source-controller/blob/v0.33.0/CHANGELOG.md
- notification-controller to v0.30.0
  https://github.com/fluxcd/notification-controller/blob/v0.30.0/CHANGELOG.md
- image-reflector-controller to v0.23.1
  https://github.com/fluxcd/image-reflector-controller/blob/v0.23.1/CHANGELOG.md
- image-automation-controller to v0.28.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.28.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-12-21 09:54:10 +00:00
Stefan Prodan
38635e0ec5 Merge pull request #3418 from somtochiama/fix-path-push
Fix path on `flux push`
2022-12-20 13:35:32 +02:00
Somtochi Onyekwere
d79e49f80b fix path on flux push
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-12-20 12:15:35 +01:00
Paulo Gomes
5e44b7b1b3 Merge pull request #3424 from pjbgf/cosign-revert
build: Revert sigstore/cosign-installer to v2.8.1
2022-12-19 13:54:23 +00:00
Paulo Gomes
131c05d9c7 build: Revert sigstore/cosign-installer to v2.8.1
Dependabot should stick to tagged versions if the existing hash relates
to the tag made in the comment.

Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2022-12-19 13:29:02 +00:00
Paulo Gomes
3ac8d54a30 Merge pull request #3422 from fluxcd/dependabot/github_actions/goreleaser/goreleaser-action-4.1.0
Bump goreleaser/goreleaser-action from 3.2.0 to 4.1.0
2022-12-19 13:28:32 +00:00
dependabot[bot]
c605f9a44f Bump goreleaser/goreleaser-action from 3.2.0 to 4.1.0
Bumps [goreleaser/goreleaser-action](https://github.com/goreleaser/goreleaser-action) from 3.2.0 to 4.1.0.
- [Release notes](https://github.com/goreleaser/goreleaser-action/releases)
- [Commits](b508e2e3ef...8f67e590f2)

---
updated-dependencies:
- dependency-name: goreleaser/goreleaser-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 13:07:50 +00:00
Paulo Gomes
eefd47d701 Merge pull request #3420 from fluxcd/dependabot/github_actions/actions/checkout-3.2.0
Bump actions/checkout from 3.1.0 to 3.2.0
2022-12-19 13:05:34 +00:00
dependabot[bot]
0014bc4c43 Bump actions/checkout from 3.1.0 to 3.2.0
Bumps [actions/checkout](https://github.com/actions/checkout) from 3.1.0 to 3.2.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](93ea575cb5...755da8c3cf)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 12:32:31 +00:00
Paulo Gomes
ccf358f0ca Merge pull request #3421 from fluxcd/dependabot/github_actions/actions/setup-go-3.5.0
Bump actions/setup-go from 3.4.0 to 3.5.0
2022-12-19 12:31:58 +00:00
dependabot[bot]
bd284ab28b Bump actions/setup-go from 3.4.0 to 3.5.0
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3.4.0 to 3.5.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](d0a58c1c4d...6edd4406fa)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 12:14:24 +00:00
Paulo Gomes
bed46f6b68 Merge pull request #3423 from fluxcd/dependabot/github_actions/github/codeql-action-2.1.37
Bump github/codeql-action from 2.1.36 to 2.1.37
2022-12-19 12:11:19 +00:00
dependabot[bot]
fdd3fd1d06 Bump github/codeql-action from 2.1.36 to 2.1.37
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.1.36 to 2.1.37.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](a669cc5936...959cbb7472)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 01:01:28 +00:00
Stefan Prodan
e81201b8cb Merge pull request #3415 from souleb/issue-3411
Fix dry-run still loading kubeconfig issue
2022-12-17 08:49:43 +02:00
Soule BA
2c1085d9ce Fix dry-run still loading kubeconfig issue
If this is implemented, it will not assume that access to a kubeconfig
is guaranteed even if just for retrieving configured namespace.

Signed-off-by: Soule BA <soule@weave.works>
2022-12-17 00:34:38 +01:00
Stefan Prodan
49eb1c5444 Merge pull request #3413 from aryan9600/update-deps
Update dependencies
2022-12-16 13:58:32 +02:00
Sanskar Jaiswal
81dc4adc69 tests/azure: update dependencies
- github.com/Azure/azure-event-hubs-go/v3 to v3.4.0
- github.com/fluxcd/notification-controller/api to v0.29.1
- github.com/fluxcd/pkg/git/gogit to v0.4.0
- go.uber.org/multierr to v1.9.0

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-12-16 16:06:19 +05:30
Sanskar Jaiswal
8e23989418 update dependencies
- github.com/Masterminds/semver/v3 to v3.2.0
- github.com/fluxcd/notification-controller/api to v0.29.1
- github.com/fluxcd/pkg/git/gogit to v0.4.0
- github.com/fluxcd/pkg/oci to v0.17.0
- github.com/onsi/gomega to v1.24.2
- golang.org/x/crypto to v0.4.0
- golang.org/x/term to v0.3.0

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-12-16 16:03:43 +05:30
Stefan Prodan
f532bd2d48 Merge pull request #3408 from souleb/issue-3391
Update fluxcd/pkg/kustomize dependency
2022-12-15 15:37:30 +02:00
Soule BA
da9df03675 Update fluxcd/pkg/kustomize dependency
This fixes the issue where only .yaml was accepted by `flux build/diff` for a kustomization file extension.

It also adds support for kustomize componenents.

Signed-off-by: Soule BA <soule@weave.works>
2022-12-15 12:51:39 +01:00
Stefan Prodan
91965ddfc9 Merge pull request #3389 from somtochiama/build-stdin
Push/Build artifacts from stdin
2022-12-15 11:33:39 +02:00
Somtochi Onyekwere
0bd78ca80c read manifests from stdin
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-12-15 01:36:34 +01:00
Stefan Prodan
96b96ac78e Merge pull request #3404 from fluxcd/azure-e2e-fixes
e2e: Fix Azure test suite
2022-12-14 12:44:43 +02:00
Stefan Prodan
a9a63b8423 Fix flux2-kustomize-helm-example test
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-12-14 12:20:18 +02:00
Stefan Prodan
8abb93e831 Merge pull request #3403 from somtochiama/fix-azure
Use proper file paths in Azure e2e tests
2022-12-14 11:11:41 +02:00
Somtochi Onyekwere
645f9df4f0 add detail to returned error
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-12-14 01:30:29 +01:00
Somtochi Onyekwere
6924a16ac7 use proper paths for committing
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-12-14 01:27:51 +01:00
Paulo Gomes
dc2a4c267b Merge pull request #3394 from fluxcd/dependabot/github_actions/sigstore/cosign-installer-b6757d8360bb6b9803c38b68e8cb7442baaf7eb5
Update sigstore/cosign-installer requirement to b6757d8360bb6b9803c38b68e8cb7442baaf7eb5
2022-12-12 10:57:23 +00:00
dependabot[bot]
d5e5a26f5c Update sigstore/cosign-installer requirement to b6757d8360bb6b9803c38b68e8cb7442baaf7eb5
Updates the requirements on [sigstore/cosign-installer](https://github.com/sigstore/cosign-installer) to permit the latest version.
- [Release notes](https://github.com/sigstore/cosign-installer/releases)
- [Commits](b6757d8360)

---
updated-dependencies:
- dependency-name: sigstore/cosign-installer
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-12 10:27:54 +00:00
Paulo Gomes
df5ac34c9b Merge pull request #3377 from aryan9600/use-pkg-git
bootstrap: fallback to default known_hosts
2022-12-12 10:26:48 +00:00
Sanskar Jaiswal
319dbad795 bump go-git packages in tests/azure
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-12-12 15:33:34 +05:30
Sanskar Jaiswal
28feb8b1d7 bootstrap: fallback to default known_hosts
Use default known_hosts and ssh configuration when no private key file
is provided while bootstraping using ssh.

Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-12-12 15:33:34 +05:30
Paulo Gomes
f4d898cb92 Merge pull request #3393 from fluxcd/dependabot/github_actions/github/codeql-action-2.1.36
Bump github/codeql-action from 2.1.35 to 2.1.36
2022-12-12 09:12:23 +00:00
dependabot[bot]
75b5b0fd3c Bump github/codeql-action from 2.1.35 to 2.1.36
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.1.35 to 2.1.36.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](b2a92eb56d...a669cc5936)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-12 00:29:53 +00:00
Paulo Gomes
6ee3439462 Merge pull request #3372 from fluxcd/dependabot/github_actions/peter-evans/create-pull-request-4.2.3
Bump peter-evans/create-pull-request from 4.2.2 to 4.2.3
2022-12-05 08:29:38 +00:00
dependabot[bot]
4eda5a7ccd Bump peter-evans/create-pull-request from 4.2.2 to 4.2.3
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4.2.2 to 4.2.3.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](331d02c7e2...2b011faafd)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-05 08:08:45 +00:00
Paulo Gomes
ad94037516 Merge pull request #3371 from fluxcd/dependabot/github_actions/snyk/actions-1cc9026f51d822442cb4b872d8d7ead8cc69a018
Bump snyk/actions from a8dd587d8a94f5663fa3d67d51abd0cc66aff244 to 1cc9026f51d822442cb4b872d8d7ead8cc69a018
2022-12-05 08:06:32 +00:00
dependabot[bot]
882fb35601 Bump snyk/actions
Bumps [snyk/actions](https://github.com/snyk/actions) from a8dd587d8a94f5663fa3d67d51abd0cc66aff244 to 1cc9026f51d822442cb4b872d8d7ead8cc69a018.
- [Release notes](https://github.com/snyk/actions/releases)
- [Commits](a8dd587d8a...1cc9026f51)

---
updated-dependencies:
- dependency-name: snyk/actions
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-05 07:47:09 +00:00
Paulo Gomes
48f10a6a20 Merge pull request #3370 from fluxcd/dependabot/github_actions/actions/setup-go-3.4.0
Bump actions/setup-go from 3.3.1 to 3.4.0
2022-12-05 07:46:47 +00:00
dependabot[bot]
2c35880cbf Bump actions/setup-go from 3.3.1 to 3.4.0
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 3.3.1 to 3.4.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](c4a742cab1...d0a58c1c4d)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-05 06:46:50 +00:00
Paulo Gomes
c8af9ced89 Merge pull request #3369 from fluxcd/dependabot/github_actions/github/codeql-action-2.1.35
Bump github/codeql-action from 2.1.33 to 2.1.35
2022-12-05 06:46:28 +00:00
dependabot[bot]
f89525f8bd Bump github/codeql-action from 2.1.33 to 2.1.35
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.1.33 to 2.1.35.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](678fc3afe2...b2a92eb56d)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-05 00:43:23 +00:00
Paulo Gomes
ad11fbcd00 Merge pull request #3352 from fluxcd/dependabot/github_actions/peter-evans/create-pull-request-4.2.2
Bump peter-evans/create-pull-request from 4.2.0 to 4.2.2
2022-11-30 11:48:00 +00:00
dependabot[bot]
9db661ae63 Bump peter-evans/create-pull-request from 4.2.0 to 4.2.2
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 4.2.0 to 4.2.2.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](b4d51739f9...331d02c7e2)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-28 01:15:01 +00:00
Stefan Prodan
fff5cd50f0 Merge pull request #3350 from fluxcd/fix-nc-image
Set notification-controller container image to GHCR
2022-11-25 14:46:18 +02:00
Stefan Prodan
b3b50cf503 Set notification-controller image to GHCR
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-11-25 12:41:44 +02:00
Stefan Prodan
cbebad9586 Merge pull request #3193 from bkreitch/process-getversion-error
Process getVersion error in bootstrap
2022-11-23 14:19:00 +02:00
Boris Kreitchman
c01023d8f8 Process getVersion error in bootstrap
Signed-off-by: Boris Kreitchman <bkreitch@gmail.com>
2022-11-23 13:37:20 +02:00
Stefan Prodan
df610c3cca Merge pull request #3345 from fluxcd/azure-e2e-refactoring
e2e: Refactor Azure test suite to use go-git
2022-11-23 12:37:13 +02:00
Somtochi Onyekwere
3b7c40bbb3 e2e: Refactor Azure test suite to use go-git
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-11-23 11:36:57 +02:00
Hidde Beydals
8674f31874 Merge pull request #3339 from fluxcd/update-deps
Update dependencies
2022-11-22 14:27:54 +00:00
Hidde Beydals
b518aad5ac tests/azure: update dependencies
- github.com/Azure/azure-event-hubs-go/v3 to v3.3.20
- github.com/fluxcd/helm-controller/api to v0.27.0
- github.com/fluxcd/image-automation-controller/api to v0.27.0
- github.com/fluxcd/image-reflector-controller/api to v0.23.0
- github.com/fluxcd/kustomize-controller/api to v0.31.0
- github.com/fluxcd/notification-controller/api to v0.29.0
- github.com/fluxcd/pkg/apis/meta to v0.18.0
- github.com/fluxcd/pkg/runtime to v0.24.0
- github.com/fluxcd/source-controller/api to v0.32.1
- github.com/stretchr/testify to v1.8.1
- k8s.io/api to v0.25.4
- k8s.io/apimachinery to v0.25.4
- k8s.io/client-go to v0.25.4
- sigs.k8s.io/controller-runtime to v0.13.1

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-22 14:07:28 +00:00
Hidde Beydals
12959dec88 Update dependencies
- github.com/distribution/distribution/v3 to v3.0.0-20221119093643-85d4039064cc
- github.com/fluxcd/go-git-providers to v0.11.0
- golang.org/x/crypto to v0.3.0

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-22 14:07:08 +00:00
Hidde Beydals
e381da6a08 Merge pull request #3294 from fluxcd/uninstall-err
Aggregate errors in uninstall functions
2022-11-22 13:57:56 +00:00
Hidde Beydals
b004fbfc41 Use k8s.io/apimachinery/pkg for error aggregation
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-22 13:29:35 +00:00
Philip Laine
8c56ccc5b0 Aggregate errors in uninstall functions
Signed-off-by: Philip Laine <philip.laine@gmail.com>
2022-11-22 13:29:20 +00:00
Hidde Beydals
c8051eeeed Merge pull request #3326 from fluxcd/update-components
Update toolkit components
2022-11-22 13:27:57 +00:00
fluxcdbot
5d944b69df Update toolkit components
- helm-controller to v0.27.0
  https://github.com/fluxcd/helm-controller/blob/v0.27.0/CHANGELOG.md
- kustomize-controller to v0.31.0
  https://github.com/fluxcd/kustomize-controller/blob/v0.31.0/CHANGELOG.md
- source-controller to v0.32.1
  https://github.com/fluxcd/source-controller/blob/v0.32.1/CHANGELOG.md
- notification-controller to v0.29.0
  https://github.com/fluxcd/notification-controller/blob/v0.29.0/CHANGELOG.md
- image-reflector-controller to v0.23.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.23.0/CHANGELOG.md
- image-automation-controller to v0.27.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.27.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-11-22 12:59:39 +00:00
Paulo Gomes
1fca76c4a8 Merge pull request #3323 from pjbgf/hermetic-actions
build: Pin GitHub Actions
2022-11-17 16:48:27 +00:00
Paulo Gomes
d0e6fcad3f build: Pin GitHub Actions
The main benefit of pinning GitHub actions is the determinism it brings
in terms of what version of a given action will be executed. This is
a step towards having hermetic builds.

Once pinned to a commit, dependabot will automatically issue PRs to update
to newer versions.

Pinned versions is the only security metric from OpenSSF scorecard that
this repository currently have a zero score.

Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2022-11-17 15:33:59 +00:00
Paulo Gomes
d4ba6c4f44 Merge pull request #3299 from aryan9600/use-pkg-git
Refactor bootstrap process to use `fluxcd/pkg/git`
2022-11-17 13:39:14 +00:00
Sanskar Jaiswal
35e1b5cbb9 add aws codecommit example and validation; azure devops example
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-11-17 17:42:44 +05:30
Sanskar Jaiswal
f8da3a1b44 make gpg signing more robust for bootstrap
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-11-17 17:30:49 +05:30
Sanskar Jaiswal
4ea253220a use fluxcd/go-git instead of go-git/go-git directly
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-11-17 17:30:49 +05:30
Sanskar Jaiswal
0a5048a56b refactor bootstrap process to use fluxcd/pkg/git
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-11-17 17:30:49 +05:30
Hidde Beydals
a06652a374 Merge pull request #3233 from fluxcd/rfc-artifact-revision-fmt
RFC-0005: Artifact `Revision` format and introduction of `Digest`
2022-11-17 11:52:55 +00:00
Hidde Beydals
86e3991998 RFC: change 0005 status to implementable
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Hidde Beydals
d9102150cf RFC: address more nits
- Properly refer to OCI repository name
- Ensure checksum examples are unique to help distinguish difference
  between Revision and Digest
- Slightly change proposal wordings to explicitly mention deprecation
  of `Checksum` field
- Add reference to OCI digests spec

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Hidde Beydals
fd08bae1c7 RFC: reword summary
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Hidde Beydals
4b2af2ede2 RFC: address review nits
Various typo and structural fixes.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Hidde Beydals
c6be0b9389 RFC: add assigned reference number (0005)
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Hidde Beydals
6ccdfa074f RFC: wording nit
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Hidde Beydals
8801029d95 RFC: avoid overlap between calculation and config
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Hidde Beydals
5faf6ebadc RFC: add design details artifact digest
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Hidde Beydals
f92d708051 RFC: add design details artifact revision
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Hidde Beydals
76c31c6303 RFC: outline design details
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Hidde Beydals
cf8ac4dd0e RFC: document alternatives
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Hidde Beydals
879041677c RFC: write down user stories
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Hidde Beydals
cac36365ae RFC: add additional user story about algo config
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Hidde Beydals
2c12385344 RFC: add revision format example for Buckets
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Hidde Beydals
fa217b8775 RFC: draft proposal for artifact revision fmt
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-11-17 11:22:41 +00:00
Stefan Prodan
6f7cdde1ba Merge pull request #3324 from fluxcd/kubectl-1.25.4
Update kubectl and remove nsswitch.conf in flux-cli image
2022-11-17 11:38:35 +02:00
Stefan Prodan
da9cc00a56 Update kubectl and remove nsswitch.conf in flux-cli image
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-11-17 11:14:06 +02:00
Stefan Prodan
161c90eb8f Merge pull request #3317 from souleb/update-pkg-kustomize
Add a dry-run mode to flux build kustomization
2022-11-16 18:10:59 +02:00
Soule BA
ad5daee004 Add a dry-run mode to flux build kustomization
If implemented user will be able to use `flux build kustomization`
without any connection to the cluster.

Signed-off-by: Soule BA <soule@weave.works>
2022-11-16 16:06:30 +01:00
Soule BA
35ea91c111 Revert MakeSecureFSOnDisk to MakeFSOnDisk
The reason to this is because MakeSecureFSOnDisk is not consistent
between OS.

Signed-off-by: Soule BA <soule@weave.works>
2022-11-16 10:23:35 +01:00
Stefan Prodan
6763490ef6 Merge pull request #3288 from fluxcd/dependabot/github_actions/hashicorp/setup-terraform-2.0.3
Bump hashicorp/setup-terraform from 2.0.2 to 2.0.3
2022-11-15 12:46:36 +02:00
dependabot[bot]
93382f65bb Bump hashicorp/setup-terraform from 2.0.2 to 2.0.3
Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 2.0.2 to 2.0.3.
- [Release notes](https://github.com/hashicorp/setup-terraform/releases)
- [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/setup-terraform/compare/v2.0.2...v2.0.3)

---
updated-dependencies:
- dependency-name: hashicorp/setup-terraform
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-09 13:33:14 +00:00
Stefan Prodan
190c732c3a Merge pull request #3303 from fluxcd/e2e-arm64-flux-monitoring
monitoring: Use kube-prometheus-stack signed OCI Helm chart
2022-11-09 15:32:24 +02:00
Stefan Prodan
8bd13edc75 Add the monitoring stack to e2e tests
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-11-09 14:10:56 +02:00
Stefan Prodan
98e0774f56 Use kube-prometheus-stack signed OCI Helm chart
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-11-09 14:05:46 +02:00
Philip Laine
c3a44e890d Merge pull request #3249 from fluxcd/bootstrap/files
Remove file reading from bootstrap package
2022-11-07 09:07:55 +01:00
Philip Laine
a4734d7e30 Remove file reading from bootstrap package
Signed-off-by: Philip Laine <philip.laine@gmail.com>
2022-11-04 15:23:08 +01:00
Stefan Prodan
2c267c95e5 Merge pull request #3281 from fluxcd/e2e-arm64-refactoring
Refactor ARM64 e2e test suite
2022-11-04 15:19:22 +02:00
Stefan Prodan
78f9a6214c Refactor ARM64 e2e test suite
- Migrate the GitHub runners to Equinix c3.large.arm64 instances
- Run the test suite on all supported Kubernetes versions
- Add multi-tenancy smoke test

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-11-04 14:14:37 +02:00
Paulo Gomes
7ee90a34e5 Merge pull request #3269 from fluxcd/dependabot/github_actions/actions/setup-go-3
Bump actions/setup-go from 2 to 3
2022-10-31 08:49:48 +00:00
dependabot[bot]
1a6b09afb4 Bump actions/setup-go from 2 to 3
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2 to 3.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](https://github.com/actions/setup-go/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-31 00:45:59 +00:00
Stefan Prodan
c7e158aaa7 Merge pull request #3081 from aryan9600/rfc-insecure-http
RFC-0004: Block insecure HTTP connections across Flux
2022-10-24 13:55:21 +03:00
Sanskar Jaiswal
98c7afd69c add last updated date and mark as implementable
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-10-24 05:35:57 -04:00
Sanskar Jaiswal
f3da59e5af fix markdown formatting and update status conditions
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-10-24 05:35:57 -04:00
Sanskar Jaiswal
a17210f387 add implementation history section
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-10-24 05:35:57 -04:00
Sanskar Jaiswal
443212d3da rename flag and propose renaming insecure-kubeconfig-tls
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-10-24 05:35:57 -04:00
Sanskar Jaiswal
7a5f60e23f address concerns about kustomize and helm controller
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-10-24 05:35:57 -04:00
Sanskar Jaiswal
7a1d978339 add details about CLI in insecure HTTP RFC
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-10-24 05:35:57 -04:00
Sanskar Jaiswal
6c7ef96354 add design details for insecure HTTP RFC
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-10-24 05:35:57 -04:00
Sanskar Jaiswal
d2e7a37eb4 add user stories and alternatives for insecure HTTP RFC
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-10-24 05:35:57 -04:00
Sanskar Jaiswal
1d8105247a add RFC for blocking insecure HTTP connections across Flux
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-10-24 05:35:57 -04:00
Stefan Prodan
6d110cdfb1 Merge pull request #3229 from fluxcd/rfc-0002-cosign
RFC-0002: Add Cosign verification for Helm OCI charts
2022-10-24 12:24:16 +03:00
Stefan Prodan
d015895caa RFC-0002: Add Cosign verification for Helm OCI charts
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-10-23 12:09:34 +03:00
Stefan Prodan
64e76a23c6 Merge pull request #3242 from fluxcd/kube-1.25.3
Update dependencies
2022-10-21 22:07:03 +03:00
Stefan Prodan
f5006aa239 Update dependencies
- Kubernetes packages to v1.25.3
- Fix CVE-2022-32149
- Sync tests go.mod with root

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-10-21 21:29:17 +03:00
Stefan Prodan
4bd06771ae Merge pull request #3187 from fluxcd/update-components
Update toolkit components
2022-10-21 20:59:27 +03:00
fluxcdbot
4643f8383e Update toolkit components
- helm-controller to v0.26.0
  https://github.com/fluxcd/helm-controller/blob/v0.26.0/CHANGELOG.md
- kustomize-controller to v0.30.0
  https://github.com/fluxcd/kustomize-controller/blob/v0.30.0/CHANGELOG.md
- source-controller to v0.31.0
  https://github.com/fluxcd/source-controller/blob/v0.31.0/CHANGELOG.md
- notification-controller to v0.28.0
  https://github.com/fluxcd/notification-controller/blob/v0.28.0/CHANGELOG.md
- image-reflector-controller to v0.22.1
  https://github.com/fluxcd/image-reflector-controller/blob/v0.22.1/CHANGELOG.md
- image-automation-controller to v0.26.1
  https://github.com/fluxcd/image-automation-controller/blob/v0.26.1/CHANGELOG.md

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-10-21 20:37:09 +03:00
Philip Laine
b82759b35a Merge pull request #3237 from fluxcd/move/bootstrap
Move bootstrap package from internal to pkg
2022-10-21 13:47:39 +02:00
Philip Laine
0343575146 Move bootstrap package from internal to pkg
Signed-off-by: Philip Laine <philip.laine@gmail.com>
2022-10-21 11:54:28 +02:00
Stefan Prodan
e7847b75db Merge pull request #3236 from fluxcd/ci-refactor
ci: Refactor GitHub workflows
2022-10-21 10:56:24 +03:00
Stefan Prodan
bb1078d610 ci: Refactor GitHub workflows
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-10-21 09:46:10 +03:00
Stefan Prodan
6f6c097980 Merge pull request #3232 from eddie-knight/fix/workflow-permissions
Additional workflow permissions tweaks
2022-10-20 21:15:55 +03:00
Eddie Knight
73692df272 Additional workflow permissions tweaks
Signed-off-by: Eddie Knight <knight@linux.com>
2022-10-20 12:48:05 -05:00
Stefan Prodan
138cba6e57 Merge pull request #3231 from eddie-knight/fix/workflow-permissions
Adjusted workflow permissions
2022-10-20 20:35:08 +03:00
Eddie Knight
2abf932ee4 Updated scan & update permissions
Signed-off-by: Eddie Knight <knight@linux.com>
2022-10-20 12:09:34 -05:00
Eddie Knight
939a75115c Adjusted workflow permissions
Signed-off-by: Eddie Knight <knight@linux.com>
2022-10-20 11:04:49 -05:00
Stefan Prodan
9f41efb6f7 Merge pull request #3224 from developer-guy/feature/diff
Add `diff artifact` command
2022-10-20 13:46:15 +03:00
Batuhan Apaydın
c3d7cad53e feat: diff artifact capability added
Signed-off-by: Batuhan Apaydın <batuhan.apaydin@trendyol.com>
2022-10-20 13:23:50 +03:00
Stefan Prodan
463f9fbc64 Merge pull request #3218 from fluxcd/dependabot/github_actions/peter-evans/create-pull-request-4
Bump peter-evans/create-pull-request from 3 to 4
2022-10-19 17:19:08 +03:00
dependabot[bot]
4a51b111e6 Bump peter-evans/create-pull-request from 3 to 4
Bumps [peter-evans/create-pull-request](https://github.com/peter-evans/create-pull-request) from 3 to 4.
- [Release notes](https://github.com/peter-evans/create-pull-request/releases)
- [Commits](https://github.com/peter-evans/create-pull-request/compare/v3...v4)

---
updated-dependencies:
- dependency-name: peter-evans/create-pull-request
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-19 13:48:54 +00:00
Philip Laine
63ebd7fd09 Merge pull request #3217 from fluxcd/dependabot/github_actions/hashicorp/setup-terraform-2.0.2
Bump hashicorp/setup-terraform from 1 to 2.0.2
2022-10-19 15:48:10 +02:00
dependabot[bot]
c31367909e Bump hashicorp/setup-terraform from 1 to 2.0.2
Bumps [hashicorp/setup-terraform](https://github.com/hashicorp/setup-terraform) from 1 to 2.0.2.
- [Release notes](https://github.com/hashicorp/setup-terraform/releases)
- [Changelog](https://github.com/hashicorp/setup-terraform/blob/main/CHANGELOG.md)
- [Commits](https://github.com/hashicorp/setup-terraform/compare/v1...v2.0.2)

---
updated-dependencies:
- dependency-name: hashicorp/setup-terraform
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-19 13:26:45 +00:00
Stefan Prodan
0f0649a674 Merge pull request #3219 from fluxcd/dependabot/github_actions/github/codeql-action-2
Bump github/codeql-action from 1 to 2
2022-10-19 16:26:04 +03:00
dependabot[bot]
09cbf348a7 Bump github/codeql-action from 1 to 2
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 1 to 2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v1...v2)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-18 07:32:38 +00:00
Stefan Prodan
287bc520b1 Merge pull request #3220 from fluxcd/fix-dependabot
Only run e2e tests for Dependabot PRs
2022-10-18 10:31:58 +03:00
Stefan Prodan
65a2ceec5c Only run e2e tests for Dependabot PRs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-10-17 19:49:57 +03:00
Stefan Prodan
516399bf81 Merge pull request #3216 from fluxcd/dependabot
Enable Dependabot for GitHub Actions
2022-10-17 19:20:42 +03:00
Stefan Prodan
4ea70765af Enable Dependabot for GitHub Actions
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-10-17 18:57:09 +03:00
Stefan Prodan
d6372e396b Merge pull request #3213 from fluxcd/fossa-badge
Add FOSSA license scanning badge
2022-10-17 17:02:33 +03:00
Stefan Prodan
7b20ad5dd2 Add link to roadmap, adopters and ecosystem
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-10-17 16:38:20 +03:00
Stefan Prodan
3d962136a8 Add FOSSA license scanning badge
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-10-17 16:36:25 +03:00
Stefan Prodan
f3386505cf Merge pull request #3214 from eddie-knight/docs/artifact-hub-badge
Added ArtifactHub badge
2022-10-17 16:36:11 +03:00
Eddie Knight
f4c8da35e8 Added ArtifactHub badge
Signed-off-by: Eddie Knight <iv.eddieknight@gmail.com>
2022-10-15 11:03:04 -05:00
Philip Laine
cc3f2c7bde Merge pull request #3197 from fluxcd/move-uninstall
Move uninstall code to pkg
2022-10-13 11:07:38 +02:00
Philip Laine
80b87729b6 Move uninstall code to pkg
Signed-off-by: Philip Laine <philip.laine@gmail.com>
2022-10-12 19:25:14 +02:00
Philip Laine
2282223592 Merge pull request #3198 from fluxcd/discard-logger
Add nop logger
2022-10-12 14:14:51 +02:00
Philip Laine
f6c96aea48 Add discard logger
Signed-off-by: Philip Laine <philip.laine@gmail.com>
2022-10-12 11:55:00 +02:00
Stefan Prodan
1fa48bf916 Merge pull request #3190 from developer-guy/feature/3180
Accept a file path as input for `flux build|push artifact`
2022-10-11 14:56:19 +03:00
Batuhan Apaydın
d49b77c8d2 chore: bump the pkg/oci package to v0.12.0
Signed-off-by: Batuhan Apaydın <batuhan.apaydin@trendyol.com>
2022-10-11 14:32:24 +03:00
Stefan Prodan
91132e9c87 Merge pull request #3174 from fluxcd/fix/azure-libgit2
Update libgit2 version in Azure e2e tests
2022-10-07 16:43:56 +03:00
Philip Laine
4680abe951 Update libgit2 version in Azure e2e tests
Signed-off-by: Philip Laine <philip.laine@gmail.com>
2022-10-07 15:26:06 +02:00
Stefan Prodan
2963708a6c Merge pull request #3162 from somtochiama/fix-oci
Update golden file for `get source oci`
2022-10-06 13:50:16 +02:00
Somtochi Onyekwere
1f57cf3d31 Update oci golden file
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-09-30 06:04:38 +01:00
Stefan Prodan
80611ec70e Merge pull request #3161 from fluxcd/rfc-0003-implemented
Update RFC-0003 implementation history
2022-09-29 21:59:25 +03:00
Stefan Prodan
d37bb42995 Update RFC-0003 implementation history
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-09-29 21:32:34 +03:00
Stefan Prodan
1bf63a94c2 Merge pull request #3149 from fluxcd/update-components
Update toolkit components
2022-09-29 21:27:56 +03:00
Stefan Prodan
cad251444c Update OCI golden files
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-09-29 21:06:57 +03:00
fluxcdbot
358c6d38b7 Update toolkit components
- helm-controller to v0.25.0
  https://github.com/fluxcd/helm-controller/blob/v0.25.0/CHANGELOG.md
- kustomize-controller to v0.29.0
  https://github.com/fluxcd/kustomize-controller/blob/v0.29.0/CHANGELOG.md
- source-controller to v0.30.0
  https://github.com/fluxcd/source-controller/blob/v0.30.0/CHANGELOG.md
- notification-controller to v0.27.0
  https://github.com/fluxcd/notification-controller/blob/v0.27.0/CHANGELOG.md
- image-reflector-controller to v0.22.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.22.0/CHANGELOG.md
- image-automation-controller to v0.26.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.26.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-09-29 18:04:36 +00:00
Stefan Prodan
b8fd46d0df Merge pull request #3098 from Santosh1176/monitoring
[Grafana] Use `container_memory_working_set_bytes` to report memory consumption
2022-09-29 11:16:10 +03:00
Santosh Kaluskar
6a1ba3c545 monitoring: use container_memory_working_set_bytes
Signed-off-by: Santosh Kaluskar <dtshbl@gmail.com>
2022-09-29 07:49:13 +00:00
Stefan Prodan
33a874800b Merge pull request #3154 from fluxcd/rfc-0003-cosign
[RFC-0003] Add Cosign keyless specification
2022-09-29 09:42:20 +03:00
Stefan Prodan
f417352370 Add Cosign keyless specification
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-09-29 09:20:46 +03:00
Stefan Prodan
72d90b5692 Merge pull request #3153 from fluxcd/build-go1.19
Build with Go 1.19
2022-09-29 00:21:18 +03:00
Stefan Prodan
d7dadb4425 e2e: Update bootstrap test to Kubernetes 1.25.2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-09-28 23:54:08 +03:00
Stefan Prodan
348408e16e Build with Go 1.19
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-09-28 22:05:48 +03:00
Stefan Prodan
04de52044a Merge pull request #3117 from carlosonunez-vmw/main
Maintain original scheme when using --token-auth
2022-09-28 10:51:06 +03:00
Carlos Nunez
45a00a0170 Maintain original scheme when using --token-auth
If you're using an HTTP-based Git server with Flux, you need to provide `--token-auth` to avoid triggering an SSH host key check (see [here](https://github.com/fluxcd/flux2/issues/2825#issuecomment-1151355914)). Unfortunately, doing this forces the URL in the `GitRepository` resource created during bootstrapping to always use `https`. This will cause Kustomization reconcile errors for servers that do not have HTTPS enabled or do not have the appropriate certs installed or available.

This pull request fixes this by keeping the repository URL scheme intact when using `--token-auth`.

Signed-off-by: Carlos Nunez <75340335+carlosonunez-vmw@users.noreply.github.com>
2022-09-27 22:14:29 -05:00
Stefan Prodan
1ac380a7f9 Merge pull request #3145 from fluxcd/component-label
Add component label for controllers and their CRDs
2022-09-26 14:45:26 +03:00
Stefan Prodan
2971d34a13 Add component label for controllers and their CRDs
Label each controller deployment, service, service account and CRDs with `app.kubernetes.io/component: <controller-name>`.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-09-26 14:08:32 +03:00
Stefan Prodan
90f0d81532 Merge pull request #3097 from fluxcd/oci-insecure-flag
Add `--insecure` flag to `flux create source oci`
2022-09-12 15:37:52 +03:00
Stefan Prodan
d5262404f3 Add insecure flag to flux create source oci
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-09-12 14:31:03 +03:00
Stefan Prodan
03c3cb860a Update Azure e2e dependencies
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-09-12 14:21:46 +03:00
Stefan Prodan
a1faa1d965 Merge pull request #3091 from fluxcd/update-components
Update toolkit components
2022-09-12 14:14:52 +03:00
fluxcdbot
c40d290e46 Update toolkit components
- helm-controller to v0.24.0
  https://github.com/fluxcd/helm-controller/blob/v0.24.0/CHANGELOG.md
- kustomize-controller to v0.28.0
  https://github.com/fluxcd/kustomize-controller/blob/v0.28.0/CHANGELOG.md
- source-controller to v0.29.0
  https://github.com/fluxcd/source-controller/blob/v0.29.0/CHANGELOG.md
- notification-controller to v0.26.0
  https://github.com/fluxcd/notification-controller/blob/v0.26.0/CHANGELOG.md
- image-reflector-controller to v0.21.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.21.0/CHANGELOG.md
- image-automation-controller to v0.25.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.25.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-09-12 10:44:50 +00:00
Stefan Prodan
5106a71e6a Merge pull request #3079 from ManoManoTech/push-autologin
Support autologin when pushing OCI artifacts
2022-09-12 13:43:20 +03:00
Adrien Fillon
491acf57ad Setup CodeQL CI job with Go 1.18
Signed-off-by: Adrien Fillon <adrien.fillon@manomano.com>
2022-09-12 12:08:47 +02:00
Adrien Fillon
0694a9582f Support logging in directly to the provider when pushing OCI artifacts
I've noticed during CI, that the current command
already expected a configured Docker client to
push artifacts to authenticated registries.

Some users might not want to have the Docker client
in their process (like a CI job) or build an handcrafted
config.json file.

This would allow this kind of behavior:

```
flux push artifact oci://my-registry.dev/foo:v1 \
  --source xxx \
  --revision xxx \
  --path . \
  --creds $TOKEN # Authenticate via "Bearer $TOKEN" Authorization header
```

Or via Autologin:

```
flux push artifact oci://012345678901.dkr.ecr.us-east-1.amazonaws.com/foo:v1 \
  --source xxx \
  --revision xxx \
  --path . \
  --provider aws
```

This has been implemented for:

* flux push artifact
* flux list artifact
* flux tag artifact
* flux pull artifact

This will require another PR in https://github.com/fluxcd/pkg/pull/352

Signed-off-by: Adrien Fillon <adrien.fillon@manomano.com>
2022-09-12 12:08:47 +02:00
Stefan Prodan
0c817378cf Merge pull request #3085 from souleb/reconcile-repository
[bootstrap] Make sure we reconcile with the right reconciliation method
2022-09-12 12:47:27 +03:00
Soule BA
ec2aa13165 Make sure we reconcile with the right reconciliation method
Signed-off-by: Soule BA <soule@weave.works>
2022-09-12 09:34:24 +02:00
Stefan Prodan
c921cf0d54 Merge pull request #3087 from somtochiama/notify-finalize
Remove finalizers for notification controllers
2022-09-11 15:48:33 +03:00
Somtochi Onyekwere
11dd0d918c remove finalizers for notification controllers
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-09-11 13:16:53 +01:00
Stefan Prodan
467969de0f Merge pull request #3088 from fluxcd/flux-manifests
Publish the install manifests to GHCR and DockerHub as OCI artifacts
2022-09-09 15:23:34 +03:00
Stefan Prodan
bdc5ae4573 Publish install manifests to GHCR and DockerHub as OCI artifacts
Add workflow to build and push the install manifests to:
- ghcr.io/fluxcd/flux-manifests
- docker.io/fluxcd/flux-manifests
The OCI artifacts are signed with Cosign and GitHub OIDC (keyless).
The manifests pushed to GHCR have the container images set to ghcr.io/fluxcd/<controller-name> while the manifests pushed to DockerHub have the controller images set to docker.io/fluxcd/<controller-name>.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-09-09 14:49:58 +03:00
Stefan Prodan
1eb4b67013 Merge pull request #3082 from fluxcd/uninstall-oci-repos
Remove finalizers for OCI repositories on uninstall
2022-09-08 11:07:21 +03:00
Stefan Prodan
e777947539 Remove finalizers for OCI repositories on uninstall
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-09-08 10:43:31 +03:00
Stefan Prodan
70b906cae2 Merge pull request #3053 from dholbach/revert-3034-fix/broken-edit-page-links-2203
Revert "Fix broken "edit this page" links in Flux CLI section"
2022-09-06 16:52:19 +03:00
Daniel Holbach
c57afa1e56 Revert "Fix broken "edit this page" links in Flux CLI section"
Signed-off-by: Daniel Holbach <daniel@weave.works>
2022-09-06 15:20:42 +02:00
Stefan Prodan
73668d19d9 Merge pull request #3073 from acondrat/patch-1
Filter out non-running pods in Prometheus
2022-09-06 16:09:57 +03:00
Arcadie Condrat
82f847e21d Filter out non-running pods in Prometheus
Prometheus job generated by the PodMonitor does not exclude non-running pods. All the "completed" Pods are still going to be  listed as targets in Prometheus and marked as down. This issue is related to PodMonitor implementation and is discussed in prometheus-operator/prometheus-operator#4816

Signed-off-by: Arcadie Condrat <arcadie.condrat@gmail.com>
2022-09-05 11:34:39 +02:00
Stefan Prodan
753b2e6eda Merge pull request #3063 from somtochiama/update-runtime
Update `flux logs` to accomodate the new format
2022-09-01 19:17:49 +03:00
Somtochi Onyekwere
7b95e90a33 Update flux logs to accomodate the new format
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-31 17:58:43 +01:00
Stefan Prodan
7824229d7b Merge pull request #3052 from dholbach/update-flux-docs-structure
update to new doc links structure
2022-08-30 16:08:53 +03:00
Daniel Holbach
20557f9f15 update to new doc links structure
Signed-off-by: Daniel Holbach <daniel@weave.works>
2022-08-30 14:50:05 +02:00
Stefan Prodan
6430f2b4b0 Merge pull request #3048 from fluxcd/azure-e2e-updates
Update packages in Azure e2e tests
2022-08-30 10:29:46 +03:00
Stefan Prodan
92e136ed54 Update packages in Azure e2e tests
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
Signed-off-by: Philip Laine <philip.laine@gmail.com>
2022-08-29 16:50:26 +02:00
Stefan Prodan
e79b008878 Merge pull request #3050 from fluxcd/oci-rfc-updates
Status update for RFC-0002 and RFC-0003
2022-08-29 17:09:30 +03:00
Stefan Prodan
43cdea01d6 Status update for RFC-0002 and RFC-0003
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-29 16:31:51 +03:00
Stefan Prodan
6ddaedb4fc Merge pull request #3049 from fluxcd/kube-1.25
Update Kubernetes dependencies to v1.25.0
2022-08-29 15:24:31 +03:00
Stefan Prodan
b4fef0a6b9 Update Kubernetes dependencies to v1.25.0
- update `k8s.io` packages to match the Kubernetes v1.25.0 release
- update `kubectl` to v1.25.0 in the flux-cli container image
- update `go.mod` to Go 1.18

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-29 15:03:36 +03:00
Stefan Prodan
735ebd3336 Merge pull request #2999 from fluxcd/update-components
Update toolkit components
2022-08-29 14:28:37 +03:00
Stefan Prodan
a5a9158a24 Add provider to Helm OCI tests
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-29 14:09:42 +03:00
fluxcdbot
93fdd795da Update toolkit components
- helm-controller to v0.23.1
  https://github.com/fluxcd/helm-controller/blob/v0.23.1/CHANGELOG.md
- kustomize-controller to v0.27.1
  https://github.com/fluxcd/kustomize-controller/blob/v0.27.1/CHANGELOG.md
- source-controller to v0.28.0
  https://github.com/fluxcd/source-controller/blob/v0.28.0/CHANGELOG.md
- notification-controller to v0.25.2
  https://github.com/fluxcd/notification-controller/blob/v0.25.2/CHANGELOG.md
- image-reflector-controller to v0.20.1
  https://github.com/fluxcd/image-reflector-controller/blob/v0.20.1/CHANGELOG.md
- image-automation-controller to v0.24.2
  https://github.com/fluxcd/image-automation-controller/blob/v0.24.2/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-08-29 10:57:30 +00:00
Stefan Prodan
18c944d18a Merge pull request #3034 from snebel29/fix/broken-edit-page-links-2203
Fix broken "edit this page" links in Flux CLI section #2203
2022-08-26 10:03:36 +03:00
Sven Nebel
2c9ef85f6d Fix broken "edit this page" links in Flux CLI section #2203
Signed-off-by: Sven Nebel <nebel.sven@gmail.com>
2022-08-25 21:01:53 +01:00
Stefan Prodan
80669d71ef Merge pull request #3028 from snebel29/update/terraform-exec-dep
Update tests/azure github.com/hashicorp/terraform-exec to v0.16.1
2022-08-25 18:02:36 +03:00
Sven Nebel
b993d17148 Update tests/azure dependency
- Update "github.com/hashicorp/terraform-exec" to v0.16.1
- Replace "github.com/hashicorp/terraform-exec/tfinstall" with "github.com/hashicorp/hc-install"
- Fix typos and wording in README.md

Signed-off-by: Sven Nebel <nebel.sven@gmail.com>
2022-08-25 15:13:47 +01:00
Stefan Prodan
c454dd481b Merge pull request #3025 from fluxcd/rfc-0002-auth
[RFC-0002] Add auth specification for Helm OCI
2022-08-25 15:09:45 +03:00
Stefan Prodan
07de9d9ffe [RFC-0002] Add auth specification for Helm OCI
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-25 12:16:02 +03:00
Stefan Prodan
9f26b09a06 Merge pull request #3019 from somtochiama/get-cmd
Improve error message in get cmd
2022-08-24 14:59:41 +03:00
Somtochi Onyekwere
ad0f3373b6 Improve error message in get cmd
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-24 11:35:46 +01:00
Stefan Prodan
f880cce4f9 Merge pull request #3024 from fluxcd/validate-version
Add version validation to install commands
2022-08-24 13:27:27 +03:00
Stefan Prodan
8a0fd6ddf9 Add version validation to install commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-24 11:58:29 +03:00
Stefan Prodan
c56f338b12 Merge pull request #3014 from fluxcd/oci-mediatype
[RFC-0003] Select layer by OCI media type
2022-08-23 17:21:49 +03:00
Stefan Prodan
463d241a91 Update TODOs for RFC-0003
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-23 16:03:40 +03:00
Stefan Prodan
db0920ba32 Clarify the layer selection behaviour
Co-authored-by: Hidde Beydals <hiddeco@users.noreply.github.com>
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-23 16:03:37 +03:00
Stefan Prodan
16d3180e42 [RFC-0003] OCI select layer by media type
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-23 16:03:37 +03:00
Stefan Prodan
81d2ad8245 Merge pull request #2998 from somtochiama/filter-artifact
Add `--filter-semver` and `--filter-regex` flags to `list artifacts`
2022-08-23 11:00:22 +03:00
Somtochi Onyekwere
96d1c1b2bd Add --filter-semver and regex flags to list artifact
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-22 20:35:15 +01:00
Stefan Prodan
545949c67f Merge pull request #2996 from fluxcd/go-git-providers-up
Update dependencies
2022-08-17 17:52:52 +03:00
Stefan Prodan
342bb81687 Update kubectl to v1.24.3 in flux-cli image
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-17 17:12:54 +03:00
Stefan Prodan
60b483569d Update dependencies
- fluxcd/go-git-providers v0.8.0
- google/go-containerregistry v0.11.0
- homeport/dyff v1.5.5
- spf13/cobra v1.5.0
- k8s.io/cli-runtime v0.24.3

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-17 17:12:48 +03:00
Stefan Prodan
b7a2fb4be0 Merge pull request #2997 from fluxcd/make-ghcr-default
Use ghcr.io in the static manifests
2022-08-17 17:11:02 +03:00
Stefan Prodan
5bdc083ce2 Use ghcr.io in the static manifests
Use the same container registry as `flux install` for the static install manifests.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-17 16:48:52 +03:00
Stefan Prodan
787b6953c8 Merge pull request #2995 from fluxcd/oci-ignore
Add `--ignore-paths` arg to `flux build|push artifact`
2022-08-17 15:33:01 +03:00
Stefan Prodan
40717fa4f4 Exclude VCS files by default from OCI artifacts
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-17 13:49:38 +03:00
Stefan Prodan
899a1fffca Add --ignore-paths arg to flux build|push artifact
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-16 15:31:39 +03:00
Stefan Prodan
02b38ac8e0 Merge pull request #2945 from somtochiama/reset-test-arg
Reset flag after executing command in tests
2022-08-12 14:00:48 +03:00
Somtochi Onyekwere
5dcd599612 reset cmd flags
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-12 10:49:00 +01:00
Stefan Prodan
854ec02823 Merge pull request #2979 from fluxcd/oci-rfcs-update
Status update for RFC-0002 and RFC-0003
2022-08-11 18:25:39 +03:00
Stefan Prodan
9386b9e0c3 Status update for RFC-0002 and RFC-0003
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-11 17:34:37 +03:00
Stefan Prodan
f2d749069e Merge pull request #2966 from fluxcd/update-components
Update toolkit components
2022-08-11 17:29:33 +03:00
fluxcdbot
d4169aa4dd Update toolkit components
- kustomize-controller to v0.27.0
  https://github.com/fluxcd/kustomize-controller/blob/v0.27.0/CHANGELOG.md
- source-controller to v0.26.1
  https://github.com/fluxcd/source-controller/blob/v0.26.1/CHANGELOG.md
- notification-controller to v0.25.1
  https://github.com/fluxcd/notification-controller/blob/v0.25.1/CHANGELOG.md
- image-reflector-controller to v0.20.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.20.0/CHANGELOG.md
- image-automation-controller to v0.24.1
  https://github.com/fluxcd/image-automation-controller/blob/v0.24.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-08-11 14:03:13 +00:00
Stefan Prodan
c06072d5cf Merge pull request #2856 from fluxcd/oci
[RFC-0003] Add commands for managing OCI artifacts
2022-08-11 17:02:01 +03:00
Max Jonas Werner
7e2d235f53 Merge pull request #2971 from fluxcd/trace-ocirepo
Make `flux trace` work with OCIRepository
2022-08-10 14:56:26 +02:00
Max Jonas Werner
b810aea6cc Make flux trace work with OCIRepository
* Added support for OCIRepositories to `flux trace`
* Changed indentation to compensate new, longer field name "Source
  Revision"
* Added unit tests for the new output

closes #2970

Signed-off-by: Max Jonas Werner <max@e13.dev>
2022-08-10 14:37:28 +02:00
Stefan Prodan
75a879c770 OCI docs improvements
Co-authored-by: Kingdon Barrett <kingdon@weave.works>
Co-authored-by: Sunny <darkowlzz@protonmail.com>
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-10 12:02:30 +03:00
Stefan Prodan
d4c5a137a1 Add examples for pushing artifacts with GH Actions
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 13:51:14 +03:00
Stefan Prodan
d4718f6ff4 Improve artifact commands docs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 13:27:45 +03:00
Stefan Prodan
ac9b3d193d Update controllers with OCI support
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:45:33 +03:00
Stefan Prodan
7c7e76f9f0 Use fluxcd/pkg/oci/client
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:45:00 +03:00
Stefan Prodan
08401f62b2 Add OCI provider arg
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:45:00 +03:00
Kingdon Barrett
69e26ca1d9 Pull artifact not push artifact
Fixup docs string to match pull command

Signed-off-by: Kingdon Barrett <kingdon@weave.works>
2022-08-09 12:45:00 +03:00
Somtochi Onyekwere
41aac68193 Add link to kubectl repo
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-09 12:44:59 +03:00
Somtochi Onyekwere
fcd38c9395 Fix cli description
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-09 12:44:59 +03:00
Somtochi Onyekwere
fe4b65972a Update cli description
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-09 12:44:59 +03:00
Somtochi Onyekwere
4c576bf599 Add create oci secret command
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-09 12:44:59 +03:00
Stefan Prodan
70d30fd52e Update golden files to latest digest
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:59 +03:00
Stefan Prodan
803104578f Add make build-dev command
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:59 +03:00
Stefan Prodan
030b6bc77c Update source-controller with OCI metadata
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:59 +03:00
Somtochi Onyekwere
009413affd Add test for annotations
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-09 12:44:59 +03:00
Somtochi Onyekwere
9e76787e9f working golden files
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-09 12:44:58 +03:00
Somtochi Onyekwere
b78bbd5b9d fill test files
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-09 12:44:58 +03:00
Somtochi Onyekwere
3e15e83926 Add test for tag/list/build/pull/push artifacts
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-09 12:44:58 +03:00
Stefan Prodan
1b327e9d4e Show artifact digest in list output
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:58 +03:00
Stefan Prodan
7dd736954b Use OCI standard annotations
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:58 +03:00
Stefan Prodan
6b98590461 Add --cert-ref to flux create source oci
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:58 +03:00
Stefan Prodan
8049634e4d Add oci:// prefix
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:58 +03:00
Somtochi Onyekwere
adc7981f22 Add tests for source oci command
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-09 12:44:58 +03:00
Stefan Prodan
30e5389d02 Run e2e tests for PRs against oci branch
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:57 +03:00
Stefan Prodan
b6a78f42ea Update SC with OCI semver support
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:57 +03:00
Stefan Prodan
e4fb8e75f9 Add e2e tests for artifact commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:57 +03:00
Stefan Prodan
2f35367a7f Add list artifacts command
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:57 +03:00
Stefan Prodan
2d8db4f20d Implement OCIRepository commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:57 +03:00
Stefan Prodan
12a491f538 Update controllers to OCI preview images
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:57 +03:00
Stefan Prodan
9503ecafb1 Add artifact commands
Implement build, push, pull and tag artifact commands.
For authentication purposes, all `flux <verb> artifact` commands are using the '~/.docker/config.json' config file and the Docker credential helpers.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:57 +03:00
Stefan Prodan
e927d39a27 Add OCI internal package
Implement OCI artifacts operations using crane

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-09 12:44:56 +03:00
Stefan Prodan
ac50aea21f Merge pull request #2964 from pjbgf/clean-up
Add validation to namespace flag
2022-08-08 15:53:55 +03:00
Paulo Gomes
c45536723c add validation to namespace flag
Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2022-08-08 12:52:02 +01:00
Paulo Gomes
fb1de8c649 remove unused func
Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2022-08-05 19:07:04 +01:00
Stefan Prodan
e1c082e5ac Merge pull request #2955 from somtochiama/logs-test
fix log filter and add tests for `flux logs`
2022-08-03 10:19:25 +03:00
Somtochi Onyekwere
1889b64b4e remove print statement
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-02 19:55:52 +01:00
Somtochi Onyekwere
0cfdc5d674 move struct definition
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-02 19:46:19 +01:00
Somtochi Onyekwere
96afee996a Add unit tests for flux logs
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-08-02 19:44:23 +01:00
Stefan Prodan
da9747a406 Merge pull request #2951 from fluxcd/oci-oidc-auth
[RFC-0003] Add the provider field for OIDC auth
2022-08-02 13:03:56 +03:00
Stefan Prodan
36d219e05c [RFC-0003] Add the provider field for OIDC auth
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-08-02 11:46:20 +03:00
Hidde Beydals
ea2de24ade Merge pull request #2940 from fluxcd/fix-srcinfo-bin
AUR: further solve `.SRCINFO` issues
2022-07-28 16:27:01 +00:00
Hidde Beydals
f01911d0e2 AUR: further solve .SRCINFO issues
Due to the release CI job running on an Ubuntu machine, we do not have
easy access to `makepkg` to generate the `.SRCINFO` using `--printsrcinfo`
as this is a `pacman` specific utility, and instead we maintain a
template.

Historically seen, something went wrong here while the `PKGBUILD` file
became more complex and certain fields added there were not _also_
included in the `.SRCINFO` template.

This commit ensures everything is restored to working state, and
provides the proper fix for what was attempted in #2917. In addition,
checksums are now included in the file.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-07-28 15:48:27 +00:00
Hidde Beydals
43eb9327d5 Merge pull request #2937 from fluxcd/fix-srcinfo-bin
AUR: ensure `pkgname` is bottom entry in .SRCINFO
2022-07-28 07:41:02 +00:00
Hidde Beydals
ca212ac592 AUR: ensure pkgname is bottom entry in .SRCINFO
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-07-28 07:13:34 +00:00
Sunny
fe3e0efcf1 Merge pull request #2932 from fluxcd/update-components
Update toolkit components
2022-07-27 21:33:58 +05:30
fluxcdbot
ed7a880287 Update toolkit components
- source-controller to v0.25.11
  https://github.com/fluxcd/source-controller/blob/v0.25.11/CHANGELOG.md
- image-reflector-controller to v0.19.4
  https://github.com/fluxcd/image-reflector-controller/blob/v0.19.4/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-07-27 15:47:46 +00:00
Stefan Prodan
e94853f023 Merge pull request #2917 from morancj/aur-srcinfo
SRCINFO: fix path
2022-07-26 14:27:01 +02:00
Ciaran Moran
cbecd8ab56 SRCINFO: consistent style
Signed-off-by: Ciaran Moran <ciaran@weave.works>
2022-07-18 11:48:38 +01:00
Ciaran Moran
feaab54f70 SRCINFO: fix path
Signed-off-by: Ciaran Moran <ciaran@weave.works>
2022-07-18 11:29:15 +01:00
Paulo Gomes
02e12cf871 Merge pull request #2905 from fluxcd/update-components
Update toolkit components
2022-07-18 09:06:13 +01:00
fluxcdbot
7aeec0a0c4 Update toolkit components
- helm-controller to v0.22.2
  https://github.com/fluxcd/helm-controller/blob/v0.22.2/CHANGELOG.md
- kustomize-controller to v0.26.3
  https://github.com/fluxcd/kustomize-controller/blob/v0.26.3/CHANGELOG.md
- source-controller to v0.25.10
  https://github.com/fluxcd/source-controller/blob/v0.25.10/CHANGELOG.md
- notification-controller to v0.24.1
  https://github.com/fluxcd/notification-controller/blob/v0.24.1/CHANGELOG.md
- image-reflector-controller to v0.19.3
  https://github.com/fluxcd/image-reflector-controller/blob/v0.19.3/CHANGELOG.md
- image-automation-controller to v0.23.5
  https://github.com/fluxcd/image-automation-controller/blob/v0.23.5/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-07-15 18:02:07 +00:00
Stefan Prodan
abeea06e72 Merge pull request #2601 from fluxcd/rfc-kubernetes-oci
[RFC-0003] Flux OCI support for Kubernetes manifests
2022-07-08 12:11:29 +03:00
Stefan Prodan
4a55b828b1 Mark RFC-0003 as implementable
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-07-06 17:02:19 +03:00
Stefan Prodan
6b9c0a5e48 Add oci:// proto to the spec
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-07-06 16:57:45 +03:00
Stefan Prodan
e060873246 Add examples for flux build, push and list commands
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-07-06 16:57:42 +03:00
Stefan Prodan
143609b9fb Add specification for spec.url
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-07-06 16:57:41 +03:00
Stefan Prodan
a22438b7fa Add design details
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-07-06 16:57:41 +03:00
Stefan Prodan
34321983e7 Add OCI artifact type to alternatives
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-07-06 16:57:41 +03:00
Stefan Prodan
44762933b3 Add flux tag artifact command
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-07-06 16:57:41 +03:00
Stefan Prodan
2912d1d437 Add serviceAccountName to auth spec
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-07-06 16:57:41 +03:00
Stefan Prodan
4885278691 Restructure the OCI auth spec
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-07-06 16:57:41 +03:00
Stefan Prodan
8a7c94180b Add client certificate authentication
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-07-06 16:57:41 +03:00
Stefan Prodan
183b9a7ee0 Add auto-login feature
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-07-06 16:57:41 +03:00
Stefan Prodan
0fc582d6fd Add user stories for publishing and reconciling OCI artifacts
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-07-06 16:57:40 +03:00
Stefan Prodan
c7a6ed53ca Add proposal for adding OCI support for Kubernetes manifests to Flux
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-07-06 16:57:40 +03:00
Stefan Prodan
547e39d24c Merge pull request #2881 from fluxcd/update-components
Update toolkit components
2022-06-29 16:36:18 +03:00
fluxcdbot
115b58fe49 Update toolkit components
- kustomize-controller to v0.26.2
  https://github.com/fluxcd/kustomize-controller/blob/v0.26.2/CHANGELOG.md
- source-controller to v0.25.9
  https://github.com/fluxcd/source-controller/blob/v0.25.9/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-06-29 13:14:11 +00:00
Stefan Prodan
613e270d00 Merge pull request #2851 from TianZong48/fix-logs-stream
logs: write into writer from io.Pipe instead of os.Stdout
2022-06-28 19:27:30 +03:00
TianZong48
c24e738973 logs: write into writer from io.Pipe instead os.Stdout
Signed-off-by: TianZong48 <tianzong48@gmail.com>
2022-06-28 23:27:32 +08:00
Stefan Prodan
e2fb6089c9 Merge pull request #2877 from sympatheticmoose/patch-1
Add the `--branch` arg to the basic auth example
2022-06-28 14:43:42 +03:00
David Harris
95eb7aede0 add branch to basic auth example
Without a reference specified, the create command will fail. 

Signed-off-by: David Harris <david.harris@weave.works>
2022-06-27 21:08:48 +01:00
Stefan Prodan
3cef177e24 Merge pull request #2839 from fluxcd/update-components
Update toolkit components
2022-06-24 16:36:58 +03:00
fluxcdbot
c430556498 Update toolkit components
- source-controller to v0.25.8
  https://github.com/fluxcd/source-controller/blob/v0.25.8/CHANGELOG.md
- image-reflector-controller to v0.19.2
  https://github.com/fluxcd/image-reflector-controller/blob/v0.19.2/CHANGELOG.md
- image-automation-controller to v0.23.4
  https://github.com/fluxcd/image-automation-controller/blob/v0.23.4/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-06-24 12:29:23 +00:00
Stefan Prodan
ff9c982df4 Merge pull request #2867 from fluxcd/image-finalizers
Remove image finalizers on uninstall
2022-06-24 12:46:28 +03:00
Stefan Prodan
724c93c23d Remove image finalizers on uninstall
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-06-24 11:34:53 +03:00
Hidde Beydals
769e20423d Merge pull request #2844 from fluxcd/fix-logs-multiple-containers
logs: select manager container when multiple exist
2022-06-23 14:14:58 +02:00
Hidde Beydals
d12e697769 logs: select manager container when multiple exist
This sets the container to `manager` which is used by all Flux
controllers as the container name.

The other options I thought about were selecting the first, or doing
something with image detection. But both can be sensitive to either
users adding their patch as a first entry, or e.g. mirroring the image
to a different name.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-06-23 13:52:08 +02:00
Stefan Prodan
874b05c5da Merge pull request #2829 from SomtochiAma/update-valuesFrom
Accept multiple values for `flux create hr --values-from`
2022-06-23 14:25:11 +03:00
Somtochi Onyekwere
1894b90d84 Accept multiple valuesFrom for create_helmrelease
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-06-23 09:09:22 +01:00
Stefan Prodan
cdf5bf3c9e Merge pull request #2862 from bplasmeijer/bugs/monitoring-configmap-in-wrong-namespace
Put the dashboard configmap in the right namespace for monitoring
2022-06-23 08:47:19 +03:00
bart-plasmeijer
5f35bd4e00 put the dashboard config map in the right namespace
Signed-off-by: Bart Plasmeijer <bart.plasmeijer@gmail.com>
2022-06-22 23:05:48 +02:00
Stefan Prodan
12504c76d0 Merge pull request #2859 from SomtochiAma/oci-success-msg
Return different success message for `oci` type - `reconcile_source_helm`
2022-06-22 18:37:11 +03:00
Somtochi Onyekwere
7346b1a762 Return a different success message for helm oci
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-06-22 12:03:20 +01:00
Stefan Prodan
f7d616d223 Merge pull request #2823 from fluxcd/check-crds
Add CRDs to `flux check` command
2022-06-10 12:00:45 +03:00
Stefan Prodan
443e5b5539 Fail check if no controllers or crds are found
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-06-09 09:27:27 +03:00
Stefan Prodan
f6c14c939d Add CRDs to flux check command
Verify that the Flux CRDs are registered on the cluster and print their version.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-06-09 09:17:15 +03:00
Stefan Prodan
a602c57e5d Merge pull request #2820 from fluxcd/update-pkgs
Update dependencies
2022-06-08 15:59:06 +03:00
Stefan Prodan
9ae41899a8 Update go-getter to fix CVEs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-06-08 15:33:47 +03:00
Stefan Prodan
cfdd5f0284 Update kubectl to v1.24.1 in flux-cli image
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-06-08 15:27:08 +03:00
Stefan Prodan
04b0a0a7ae Update dependencies
- fluxcd/pkg/kustomize v0.5.2
- fluxcd/pkg/runtime v0.16.2
- fluxcd/pkg/ssa v0.17.0
- fluxcd/pkg/ssh v0.5.0
- cli-utils v0.31.2

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-06-08 15:26:33 +03:00
Stefan Prodan
83fcac1868 Merge pull request #2814 from fluxcd/update-components
Update toolkit components
2022-06-08 15:20:41 +03:00
fluxcdbot
efb0ecb4f9 Update toolkit components
- helm-controller to v0.22.1
  https://github.com/fluxcd/helm-controller/blob/v0.22.1/CHANGELOG.md
- kustomize-controller to v0.26.1
  https://github.com/fluxcd/kustomize-controller/blob/v0.26.1/CHANGELOG.md
- source-controller to v0.25.5
  https://github.com/fluxcd/source-controller/blob/v0.25.5/CHANGELOG.md
- image-reflector-controller to v0.19.1
  https://github.com/fluxcd/image-reflector-controller/blob/v0.19.1/CHANGELOG.md
- image-automation-controller to v0.23.2
  https://github.com/fluxcd/image-automation-controller/blob/v0.23.2/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-06-08 12:02:56 +00:00
Stefan Prodan
7498d516d4 Merge pull request #2811 from fluxcd/rfc-0002-status-update
[RFC-0002] Update status and implementation history
2022-06-07 12:47:58 +03:00
Stefan Prodan
2fe3362c3d [RFC-0002] Update status and implementation history
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-06-07 12:21:19 +03:00
Stefan Prodan
6473331399 Merge pull request #2809 from fluxcd/update-components
Update source-controller to v0.25.3
2022-06-06 16:12:30 +03:00
fluxcdbot
6f85363e58 Update toolkit components
- source-controller to v0.25.3
  https://github.com/fluxcd/source-controller/blob/v0.25.3/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-06-06 12:39:05 +00:00
Stefan Prodan
02c0d3bd0d Merge pull request #2807 from fluxcd/update-azure-deps
Update dependencies
2022-06-04 08:12:50 +03:00
Stefan Prodan
f1f4cc007a Update dependencies
- sync tests/azure with main go.mod
- update homeport/dyff to v1.5.4
- update k8s.io/apiextensions-apiserver to v0.24.1

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-06-03 17:51:43 +03:00
Stefan Prodan
7293771766 Merge pull request #2796 from fluxcd/update-components
Update toolkit components
2022-06-03 17:41:06 +03:00
fluxcdbot
25d065c211 Update toolkit components
- helm-controller to v0.22.0
  https://github.com/fluxcd/helm-controller/blob/v0.22.0/CHANGELOG.md
- source-controller to v0.25.2
  https://github.com/fluxcd/source-controller/blob/v0.25.2/CHANGELOG.md
- image-automation-controller to v0.23.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.23.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-06-03 14:01:51 +00:00
Stefan Prodan
bf14f47459 Merge pull request #2806 from fluxcd/monitoring-logs
monitoring: Add Grafana Loki HR and Flux logs dashboard
2022-06-03 13:24:37 +03:00
Stefan Prodan
8576073b9d monitoring: Add Grafana Loki HR and Flux logs dashboard
- add loki-stack HelmRelease to install Loki and Promtail in the monitoring namespace
- make the loki-stack HelmRelease depend on kube-prometheus-stack to install Loki's datasource and service monitors in the correct order
- add a Grafana dashboard for displaying and filtering the Flux controllers JSON logs

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-06-03 12:50:41 +03:00
Max Jonas Werner
cbe1331815 Merge pull request #2802 from fluxcd/kubeconfig-secret-ref
Add `--kubeconfig-secret-ref` to `flux create ks|hr`
2022-06-02 15:49:19 +02:00
Stefan Prodan
998b763cf9 Add --kubeconfig-secret-ref to flux create ks|hr
Allow specifying the name of the Kubernetes Secret that contains a key with the kubeconfig file for connecting to a remote cluster.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-06-02 16:10:31 +03:00
Stefan Prodan
15e8f106ce Merge pull request #2801 from fluxcd/e2e-arm64-kube-1.24
e2e: Update ARM64 runners to Kubernetes 1.24
2022-06-02 15:33:02 +03:00
Stefan Prodan
9aee262054 e2e: Update ARM64 runners to Kubernetes 1.24
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-06-02 15:18:01 +03:00
Stefan Prodan
c718336143 Merge pull request #2792 from SomtochiAma/flux-diff
Handle multi-doc yaml for flux build
2022-06-02 15:08:27 +03:00
Somtochi Onyekwere
355ed94852 check for correct kustomization in multi-doc yaml
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-06-02 11:23:58 +01:00
Stefan Prodan
56c5e784fb Merge pull request #2787 from vipulnewaskar7/main
Add `--allow-insecure-http` to `bootstrap git`
2022-06-02 13:19:33 +03:00
Vipul Newaskar
0a30bc1024 allow http git repos connections while bootstrap
Updated misleading error message

Signed-off-by: Vipul Newaskar <vipulnewaskar7@gmail.com>
2022-06-02 10:32:58 +05:30
Vipul Newaskar
a55548de07 allow http git repos connections while bootstrap
This change will allow user to bootstrap with http git urls
But user must explicitely set --allow-insecure-http=true

Signed-off-by: Vipul Newaskar <vipulnewaskar7@gmail.com>
2022-06-02 10:32:58 +05:30
Stefan Prodan
b84e613b5e Merge pull request #2781 from fluxcd/create-source-helm-oci
Add OCI support to `create source helm`
2022-06-01 20:29:40 +03:00
Max Jonas Werner
6b9e6cb9a5 Merge branch 'main' into create-source-helm-oci 2022-06-01 16:35:26 +02:00
Max Jonas Werner
f24c4034e2 Merge pull request #2775 from fluxcd/update-components
Update toolkit components
2022-06-01 16:35:02 +02:00
fluxcdbot
797352e4fa Update toolkit components
- kustomize-controller to v0.26.0
  https://github.com/fluxcd/kustomize-controller/blob/v0.26.0/CHANGELOG.md
- source-controller to v0.25.0
  https://github.com/fluxcd/source-controller/blob/v0.25.0/CHANGELOG.md
- notification-controller to v0.24.0
  https://github.com/fluxcd/notification-controller/blob/v0.24.0/CHANGELOG.md
- image-reflector-controller to v0.19.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.19.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-06-01 14:08:16 +00:00
Max Jonas Werner
7d742924f6 bump SC version in azure test module
Signed-off-by: Max Jonas Werner <mail@makk.es>
2022-06-01 16:06:45 +02:00
Max Jonas Werner
e19ea796b1 Add OCI support to create source helm
closes #2774

Signed-off-by: Max Jonas Werner <mail@makk.es>
2022-06-01 15:59:52 +02:00
Stefan Prodan
bcef28e80b Merge pull request #2782 from fluxcd/monitoring-refactoring
Refactor Flux Prometheus monitoring stack
2022-05-30 11:02:21 +03:00
Stefan Prodan
4acef9d508 Add Flux events to dashboard annotations
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-05-29 17:46:02 +03:00
Stefan Prodan
8128fc190d Update kube-prometheus-stack chart to v35
- Automate kube-prometheus-stack helm release upgrades for the v35.x range
- Remove deprecated Grafana settings
- Set Prometheus retention to 24h
- Label Flux dashboards and PodMonitors with `app.kubernetes.io/component: monitoring`
- Change the `podMonitorSelector` to match the label `app.kubernetes.io/component: monitoring`

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-05-29 16:14:18 +03:00
Stefan Prodan
2ba0c4435e Remove deprecated monitoring stack
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-05-29 16:09:57 +03:00
Stefan Prodan
b8164717da Merge pull request #2767 from takirala/tga/add-ignore-field
Add `--ignore-paths` flag to `flux create source (git|bucket)`
2022-05-28 16:02:34 +03:00
Tarun Gupta Akirala
ed88e9dec5 feat: add --ignore-paths flag to flux create source (git|bucket)
A new --ignore-paths flag is added to following commands:

flux create source git --ignore-paths ...
flux create source bucket --ignore-paths ...

A StringSliceVar is used which supports specifying the flag multiple
times to populate a list or either a comma seperated string value

A unit test with a golden file is added to validate the flag

Signed-off-by: Tarun Gupta Akirala <takirala@users.noreply.github.com>
2022-05-27 09:45:25 -07:00
Stefan Prodan
5ebb985b10 Merge pull request #2778 from fluxcd/go-git-providers
Update go-git-providers to v0.6.0
2022-05-27 17:43:32 +03:00
Stefan Prodan
7f5f80286e Update go-git-providers to v0.6.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-05-27 17:17:02 +03:00
Stefan Prodan
3cd0bc9672 Merge pull request #2773 from fluxcd/update-deps
Update dependencies
2022-05-27 14:52:11 +03:00
Stefan Prodan
95f896e92c Update fluxcd/pkg/ssh to v0.4.1
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-05-27 14:24:25 +03:00
Stefan Prodan
0b9e3d24ef Update GitHub actions
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-05-27 13:35:13 +03:00
Stefan Prodan
3f0efc9435 Update dependencies
- Update Kubernetes packages to v1.24
- Update go-yaml to v3.0.0 (fix CVE-2022-28948)
- Update fluxcd/pkg/runtime to v0.15.1

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-05-27 13:29:20 +03:00
Stefan Prodan
64205cf523 Merge pull request #2727 from thedataflows/thedataflows/grafana-dashboard
grafana: display exported ns, slight resizing, default sorting by state
2022-05-26 14:46:22 +03:00
Cristian Chiru
38c62d46c7 [grafana dashboard] display exported namespace, slight resizing, default sorting by state
Signed-off-by: Cristian Chiru <cristi.chiru@gmail.com>
2022-05-26 14:21:39 +03:00
Stefan Prodan
b1ac3a26f4 Merge pull request #2769 from fluxcd/go-1.18
Update Go to 1.18 in CI
2022-05-25 13:47:43 +03:00
Stefan Prodan
b795e612f7 Update Go to v1.18
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-05-25 11:43:30 +03:00
Stefan Prodan
a1a2286794 Update Alpine to v3.16
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-05-25 11:04:26 +03:00
Hidde Beydals
8c5d83d9fe Merge pull request #2764 from fluxcd/fix-rel-paths-custom-bootstrap
Ensure proper FS root is set while bootstrapping
2022-05-24 12:40:46 +02:00
Hidde Beydals
5130a154e4 Ensure proper FS root is set while bootstrapping
This ensures relative paths to e.g. bases can be used.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-05-24 12:14:21 +02:00
Max Jonas Werner
938f2570ef Merge pull request #2747 from dholbach/update-maintainers-file
Move MAINTAINERS to f/community
2022-05-18 18:16:10 +02:00
Daniel Holbach
97a7b4450f Move MAINTAINERS to f/community
Signed-off-by: Daniel Holbach <daniel@weave.works>
2022-05-18 17:28:49 +02:00
Max Jonas Werner
46fbc7c71b Merge pull request #2748 from makkes/debug-e2e-failure
fix e2e tests
2022-05-18 17:28:28 +02:00
Max Jonas Werner
e35da1c890 trim prefix from server version
It's not part of the `flux check` output.

Signed-off-by: Max Jonas Werner <mail@makk.es>
2022-05-18 17:08:50 +02:00
Max Jonas Werner
9af6175302 fix e2e check test
The output of `kubectl version` has changed with newer kubectl version
from

```
{
  "serverVersion": ...,
  "clientVersion": ...
}
```

to

```
{
  "serverVersion": ...,
  "clientVersion": ...,
  "kustomizeVersion": ...
}
```

So the `kustomizeVersion` field is new which causes the JSON
unmarshaling to fail.

We now just unmarshal it to `map[string]interface{}` and peel the
server git version out of that map manually w/o unmarshalling the JSON
into a custom type.

Signed-off-by: Max Jonas Werner <mail@makk.es>
2022-05-18 16:51:18 +02:00
Max Jonas Werner
e1def4f8ac make e2e test easier to debug
Signed-off-by: Max Jonas Werner <mail@makk.es>
2022-05-18 16:36:18 +02:00
Hidde Beydals
e09078f697 Merge pull request #2703 from aryan9600/fix-securefs-macos 2022-05-04 11:58:16 +02:00
Sanskar Jaiswal
7232ff9ea0 modify tmp dir generation to be absolute on all OSes
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-05-04 15:13:39 +05:30
Stefan Prodan
45876a723c Merge pull request #2701 from fluxcd/add-sa-read
Grant service account read-only access to controllers
2022-05-04 11:33:15 +03:00
Stefan Prodan
1ece35e4c5 Add leader election required permissions
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-05-04 11:11:51 +03:00
Stefan Prodan
5dee903374 Grant service account read-only access to controllers
For image automation to use a service account to authenticate to container registries, the controllers needs read-only access to service accounts.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-05-04 10:47:04 +03:00
Stefan Prodan
4dd20af7e0 Merge pull request #2700 from fluxcd/fix-bootstrap-fs
MacOS: fix bootstrap manifest generation
2022-05-04 10:01:42 +03:00
Stefan Prodan
b9fbdfc9a4 Fix bootstrap manifest generation
Use the OS package to write the generated files on disk instead of Flux  secure FS package which is meant for read operations.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-05-04 09:41:26 +03:00
Hidde Beydals
ab00e348a4 Merge pull request #2698 from fluxcd/update-deps 2022-05-03 21:26:22 +02:00
Hidde Beydals
b5c0ae9d5a build: update various CI dependencies
- kind to v0.12.0
- kubectl to v1.23.6
- helm to v3.8.2
- runner to v2.291.1

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-05-03 21:07:35 +02:00
Hidde Beydals
8e4044eed9 Update dependencies
- github.com/fluxcd/pkg/runtime to v0.14.2
- github.com/google/go-cmp to v0.5.8
- golang.org/x/crypto to v0.0.0-20220427172511-eb4f295cb31f
- k8s.io/cli-runtime to v0.23.6
- k8s.io/kubectl to v0.23.6

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-05-03 21:07:35 +02:00
Hidde Beydals
7034ef46af Merge pull request #2695 from fluxcd/update-components 2022-05-03 20:45:53 +02:00
Hidde Beydals
8dfbe952ae tests/azure: update toolkit components
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-05-03 20:19:29 +02:00
fluxcdbot
f1e9da56dc Update toolkit components
- helm-controller to v0.21.0
  https://github.com/fluxcd/helm-controller/blob/v0.21.0/CHANGELOG.md
- kustomize-controller to v0.25.0
  https://github.com/fluxcd/kustomize-controller/blob/v0.25.0/CHANGELOG.md
- source-controller to v0.24.4
  https://github.com/fluxcd/source-controller/blob/v0.24.4/CHANGELOG.md
- notification-controller to v0.23.5
  https://github.com/fluxcd/notification-controller/blob/v0.23.5/CHANGELOG.md
- image-reflector-controller to v0.18.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.18.0/CHANGELOG.md
- image-automation-controller to v0.22.1
  https://github.com/fluxcd/image-automation-controller/blob/v0.22.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-05-03 18:17:11 +00:00
Hidde Beydals
f924c5f76d Merge pull request #2651 from fluxcd/customize-kustomize-fs 2022-05-03 14:25:27 +02:00
Hidde Beydals
57442e8faa kustomize: use FS from fluxcd/pkg
This switches to a secure FS implementation in most places, except for
where we can not make changes at this moment because it would break
behavior.

Not handled in this commit:

- Allowing the root for `manifestgen` packages to be configured.
- Allowing the user to define a working root while building locally.
- Defaulting to the secure FS implementation in
  `kustomization.MakeDefaultOptions`. Problem here is that constructing
  the secure FS could result in an error, which we can not surface
  without signature changes to the constructor func.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-05-03 13:52:51 +02:00
Hidde Beydals
95bfd3b3a4 Merge pull request #2686 from fluxcd/update-components 2022-04-28 11:03:09 +02:00
Hidde Beydals
2858e83fe1 tests/azure: update toolkit components
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-04-28 10:42:42 +02:00
fluxcdbot
5430152c7f Update toolkit components
- kustomize-controller to v0.24.4
  https://github.com/fluxcd/kustomize-controller/blob/v0.24.4/CHANGELOG.md
- source-controller to v0.24.3
  https://github.com/fluxcd/source-controller/blob/v0.24.3/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-04-28 08:35:38 +00:00
Stefan Prodan
3433079121 Merge pull request #2638 from pjbgf/paulo-maintainers
Add Paulo Gomes to maintainer's list
2022-04-27 15:32:19 +03:00
Paulo Gomes
151b84b8fe Add Paulo Gomes to maintainer's list
Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2022-04-27 13:07:07 +01:00
Hidde Beydals
e3e01cb5da Merge pull request #2679 from fluxcd/update-components 2022-04-26 09:51:17 +02:00
Hidde Beydals
c4c890d4e9 tests/azure: update toolkit components
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-04-26 09:31:11 +02:00
fluxcdbot
64a473db2e Update toolkit components
- source-controller to v0.24.2
  https://github.com/fluxcd/source-controller/blob/v0.24.2/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-04-26 07:29:06 +00:00
Hidde Beydals
cc9bcbaefd Merge pull request #2668 from fluxcd/update-components 2022-04-22 12:26:17 +02:00
Hidde Beydals
787d491bd5 tests/azure: update toolkit components
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-04-22 12:09:27 +02:00
fluxcdbot
5c4991299c Update toolkit components
- kustomize-controller to v0.24.3
  https://github.com/fluxcd/kustomize-controller/blob/v0.24.3/CHANGELOG.md
- source-controller to v0.24.1
  https://github.com/fluxcd/source-controller/blob/v0.24.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-04-22 10:09:00 +00:00
Hidde Beydals
33ac3ef2c6 Merge pull request #2662 from fluxcd/update-components 2022-04-21 11:52:23 +02:00
Hidde Beydals
c7504442bd tests/azure: update toolkit components
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-04-21 11:31:07 +02:00
fluxcdbot
1a546a1d82 Update toolkit components
- kustomize-controller to v0.24.2
  https://github.com/fluxcd/kustomize-controller/blob/v0.24.2/CHANGELOG.md
- notification-controller to v0.23.4
  https://github.com/fluxcd/notification-controller/blob/v0.23.4/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-04-21 09:29:20 +00:00
Hidde Beydals
713365a12c Merge pull request #2657 from fluxcd/update-kc 2022-04-20 18:08:22 +02:00
Hidde Beydals
5d8248d31d Update kustomize-controller to v0.24.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-04-20 17:34:12 +02:00
Hidde Beydals
5346c1cca3 Merge pull request #2652 from fluxcd/update-components 2022-04-20 12:28:48 +02:00
Hidde Beydals
baadaa05d2 tests/azure: Update toolkit components
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-04-20 11:49:49 +02:00
fluxcdbot
224a1ce941 Update toolkit components
- helm-controller to v0.20.1
  https://github.com/fluxcd/helm-controller/blob/v0.20.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-04-20 09:46:28 +00:00
Hidde Beydals
52f1bfed4c Merge pull request #2646 from aryan9600/fix-mask-sops 2022-04-19 20:05:14 +02:00
Sanskar Jaiswal
5c9cbe676d handle secret types properly while masking sops data
Signed-off-by: Sanskar Jaiswal <jaiswalsanskar078@gmail.com>
2022-04-19 23:12:00 +05:30
Hidde Beydals
e25bb74c05 Merge pull request #2649 from fluxcd/update-deps 2022-04-19 19:21:45 +02:00
Hidde Beydals
c2f465e246 Update dependencies
- github.com/ProtonMail/go-crypto to v0.0.0-20220407094043-a94812496cf5
- github.com/fluxcd/pkg/kustomize to v0.2.0
- github.com/fluxcd/pkg/runtime to v0.14.1
- github.com/fluxcd/pkg/ssa to v0.15.2
- golang.org/x/crypto to v0.0.0-20220411220226-7b82a4e95df4
- golang.org/x/term to v0.0.0-20220411215600-e5f449aeb171
- k8s.io/cli-runtime to v0.23.5
- k8s.io/kubectl to v0.23.5
- sigs.k8s.io/cli-utils to v0.29.4
- sigs.k8s.io/kustomize/api to v0.11.4
- sigs.k8s.io/kustomize/kyaml to v0.13.6

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-04-19 18:27:33 +02:00
Hidde Beydals
6bbbf16140 tests/azure: update dependencies
This does not include an update of `github.com/hashicorp/terraform-exec`
to `v0.16.1`, as it contains a breaking change. `tfinstall` has been
removed and needs to be replaced with `github.com/hashicorp/hc-install`.

- github.com/fluxcd/helm-controller/api to v0.20.0
- github.com/fluxcd/image-automation-controller/api to v0.22.0
- github.com/fluxcd/image-reflector-controller/api to v0.17.2
- github.com/fluxcd/kustomize-controller/api to v0.24.0
- github.com/fluxcd/notification-controller/api to v0.23.3
- github.com/fluxcd/pkg/apis/meta to v0.12.2
- github.com/fluxcd/pkg/runtime to v0.14.1
- github.com/fluxcd/source-controller/api to v0.24.0
- k8s.io/api to v0.23.5
- k8s.io/apimachinery to v0.23.5
- k8s.io/client-go to v0.23.5
- sigs.k8s.io/controller-runtime to v0.11.2

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-04-19 18:23:42 +02:00
Hidde Beydals
c5cdb70031 Merge pull request #2617 from fluxcd/update-components 2022-04-19 18:20:30 +02:00
fluxcdbot
2955cd70a8 Update toolkit components
- helm-controller to v0.20.0
  https://github.com/fluxcd/helm-controller/blob/v0.20.0/CHANGELOG.md
- kustomize-controller to v0.24.0
  https://github.com/fluxcd/kustomize-controller/blob/v0.24.0/CHANGELOG.md
- source-controller to v0.24.0
  https://github.com/fluxcd/source-controller/blob/v0.24.0/CHANGELOG.md
- notification-controller to v0.23.3
  https://github.com/fluxcd/notification-controller/blob/v0.23.3/CHANGELOG.md
- image-reflector-controller to v0.17.2
  https://github.com/fluxcd/image-reflector-controller/blob/v0.17.2/CHANGELOG.md
- image-automation-controller to v0.22.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.22.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-04-19 15:45:35 +00:00
Stefan Prodan
7b4940914c Merge pull request #2597 from fluxcd/rfc-helm-oci
[RFC-0002] Flux OCI support for Helm
2022-04-13 11:01:25 +03:00
Stefan Prodan
30f977a7cb Assign RFC-0002 to Helm OCI proposal
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-04-13 10:27:11 +03:00
Stefan Prodan
e06fa24616 Add dedicated reconcilers to the design docs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-04-12 15:09:51 +03:00
Stefan Prodan
20d7d0c78a Add image registry example to story 2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-04-12 15:08:31 +03:00
Stefan Prodan
606078c1b3 Add chart update automation to Git
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-04-12 15:08:31 +03:00
Stefan Prodan
0135eb19d4 Add proposal for adding Helm OCI support to Flux Source API
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-04-12 15:08:30 +03:00
Stefan Prodan
8b989190c4 Merge pull request #2631 from canidam/add-bootstrap-git-pass-from-stdin-and-env
bootstrap git: Allow the password to be specified with GIT_PASSWORD env var
2022-04-12 14:59:17 +03:00
Chen Anidam
a85ea59824 Read password of generic git bootstrap command from env or stdin
Signed-off-by: Chen Anidam <canidam@gmail.com>
2022-04-12 12:17:11 +03:00
Stefan Prodan
d012f0f2bc Merge pull request #2624 from kingdonb/docs-when-prune-enabled
Add detail to delete docs
2022-04-07 19:47:22 +03:00
Kingdon Barrett
7e2b63ea5d add detail to delete docs
Signed-off-by: Kingdon Barrett <kingdon@weave.works>
2022-04-07 08:29:57 -04:00
Stefan Prodan
cb53243fc1 Merge pull request #2611 from souleb/diff-local-kustomization
Add an option to diff with a local Flux Kustomization file
2022-04-05 19:40:11 +03:00
Soule BA
5536af9756 Add an option to diff with a local kustomization file
If implemented, users will be able to provide a local kustomization file
to `flux build/diff`.

Signed-off-by: Soule BA <soule@weave.works>
2022-04-05 17:21:11 +02:00
Stefan Prodan
28087c1d76 Merge pull request #2616 from SomtochiAma/resume-all-wait
Add cli flags for chart interval and reconcile strategy
2022-04-05 17:19:07 +03:00
Somtochi Onyekwere
b80f32ce7d Add cli flags for chart interval and reconcile strategy
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2022-04-05 12:56:50 +01:00
Stefan Prodan
8bad59ebde Merge pull request #2609 from darkowlzz/grafana-dashboard-labelvalues
monitoring-config: set grafana dashboards labelValues
2022-04-03 09:46:23 +03:00
Sunny
b44e4617e0 monitoring-config: grafana dashboards labelValue
Since kube-prometheus-stack helm chart v32.2.0, the `labelValue` has to
be set to "1" for the default grafana dashboard label selector to select
the flux dashboard configuration.

Also, update kube-prometheus-stack to v34.7.0, latest.

Refer: eba5b198f5

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2022-04-02 23:55:11 +05:30
Stefan Prodan
5d99e3d191 Merge pull request #2607 from souleb/issue-2598
[Diff] Update pkg/kustomize to v0.1.0
2022-04-01 17:45:01 +03:00
Soule BA
1807852b6b Update pkg/kustomize to v0.1.0
If implemented this fixes a bug where retrieving the groupVersion.Group
of a kustomization were returning an empty string.

Signed-off-by: Soule BA <soule@weave.works>
2022-04-01 10:27:37 +02:00
Hidde Beydals
4f4a5c0ba0 Merge pull request #2594 from fluxcd/update-components 2022-03-30 20:41:16 +02:00
fluxcdbot
24188e58ff Update toolkit components
- kustomize-controller to v0.22.3
  https://github.com/fluxcd/kustomize-controller/blob/v0.22.3/CHANGELOG.md
- source-controller to v0.22.5
  https://github.com/fluxcd/source-controller/blob/v0.22.5/CHANGELOG.md
- notification-controller to v0.23.2
  https://github.com/fluxcd/notification-controller/blob/v0.23.2/CHANGELOG.md
- image-automation-controller to v0.21.3
  https://github.com/fluxcd/image-automation-controller/blob/v0.21.3/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-03-30 17:39:09 +00:00
Stefan Prodan
e2be598988 Merge pull request #2584 from souleb/update-homeport-dyff
Diff: Update homeport/Dyff to v1.5.2
2022-03-29 10:16:39 +03:00
Soule BA
9e2a4f329b Update homeport/Dyff to v1.5.2
If implmented, this will provide an inline diff for configmaps with the
command `flux diff``.

Signed-off-by: Soule BA <soule@weave.works>
2022-03-29 08:52:53 +02:00
Stefan Prodan
574b86cbca Merge pull request #2534 from jooooel/joel/update_docs
Add coreutils (for Mac OS) as a dependency
2022-03-29 08:26:45 +03:00
jooooel
4b7042cc46 Add coreutils (for Mac OS) as a dependency
Signed-off-by: jooooel <jooooel@users.noreply.github.com>
2022-03-28 20:34:07 +02:00
Sunny
5ae4711f7b Merge pull request #2583 from fluxcd/update-components
Update toolkit components
2022-03-28 22:41:58 +05:30
fluxcdbot
97a53b1536 Update toolkit components
- source-controller to v0.22.4
  https://github.com/fluxcd/source-controller/blob/v0.22.4/CHANGELOG.md
- image-automation-controller to v0.21.2
  https://github.com/fluxcd/image-automation-controller/blob/v0.21.2/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-03-28 16:52:13 +00:00
Hidde Beydals
cc982cf3b1 Merge pull request #2577 from fluxcd/update-components 2022-03-25 19:10:52 +01:00
fluxcdbot
3f652f8b05 Update toolkit components
- helm-controller to v0.18.2
  https://github.com/fluxcd/helm-controller/blob/v0.18.2/CHANGELOG.md
- kustomize-controller to v0.22.2
  https://github.com/fluxcd/kustomize-controller/blob/v0.22.2/CHANGELOG.md
- source-controller to v0.22.3
  https://github.com/fluxcd/source-controller/blob/v0.22.3/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-03-25 17:50:26 +00:00
Hidde Beydals
dcd86dec6e Merge pull request #2572 from fluxcd/client-rate-limit-args 2022-03-25 11:08:07 +01:00
Stefan Prodan
0d8194c800 Add the kube client qps and burst to the global args
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-03-25 10:43:59 +01:00
Stefan Prodan
150d9d7ae6 Merge pull request #2570 from fluxcd/update-components
Update toolkit components
2022-03-24 09:45:29 +02:00
Stefan Prodan
694f1797d2 Update packages for Azure e2e testing
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-03-24 09:23:35 +02:00
fluxcdbot
116be0cfed Update toolkit components
- kustomize-controller to v0.22.1
  https://github.com/fluxcd/kustomize-controller/blob/v0.22.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-03-24 07:01:20 +00:00
Hidde Beydals
aa2b5ae18d Merge pull request #2569 from fluxcd/update-components 2022-03-23 21:47:35 +01:00
Hidde Beydals
e2ccbe2088 tests/azure: update toolkit components
- helm-controller to v0.18.1
  https://github.com/fluxcd/helm-controller/blob/v0.18.1/CHANGELOG.md
- source-controller to v0.22.2
  https://github.com/fluxcd/source-controller/blob/v0.22.2/CHANGELOG.md
- notification-controller to v0.23.1
  https://github.com/fluxcd/notification-controller/blob/v0.23.1/CHANGELOG.md
- image-reflector-controller to v0.17.1
  https://github.com/fluxcd/image-reflector-controller/blob/v0.17.1/CHANGELOG.md
- image-automation-controller to v0.21.1
  https://github.com/fluxcd/image-automation-controller/blob/v0.21.1/CHANGELOG.md

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-23 21:33:34 +01:00
Hidde Beydals
775891fc88 build: ensure component update runs with make tidy
This to include the `-compat` flag.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-23 21:32:00 +01:00
fluxcdbot
c85954ddef Update toolkit components
- helm-controller to v0.18.1
  https://github.com/fluxcd/helm-controller/blob/v0.18.1/CHANGELOG.md
- source-controller to v0.22.2
  https://github.com/fluxcd/source-controller/blob/v0.22.2/CHANGELOG.md
- notification-controller to v0.23.1
  https://github.com/fluxcd/notification-controller/blob/v0.23.1/CHANGELOG.md
- image-reflector-controller to v0.17.1
  https://github.com/fluxcd/image-reflector-controller/blob/v0.17.1/CHANGELOG.md
- image-automation-controller to v0.21.1
  https://github.com/fluxcd/image-automation-controller/blob/v0.21.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-03-23 21:30:38 +01:00
Hidde Beydals
dd6db2cbd9 Merge pull request #2566 from fluxcd/fix-resume-bucket 2022-03-23 14:50:41 +01:00
Stefan Prodan
5f74c7d294 Fix resume source bucket panic
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-03-23 15:33:57 +02:00
Hidde Beydals
ed87a632b0 Merge pull request #2565 from fluxcd/source-create-wait 2022-03-23 12:55:08 +01:00
Hidde Beydals
3edcd16b62 fix: wait for Source objects observed generation
This ensures the command will wait for the object to report a Ready
Condition with an ObservedGeneration matching the Generation of the
resource. Ensuring that when a "create" is actually a mutation, it waits
instead of prematurely assuming the Source to be Ready.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-23 12:38:42 +01:00
Hidde Beydals
b01d3aeecd Merge pull request #2561 from fluxcd/update-deps 2022-03-23 11:55:57 +01:00
Hidde Beydals
0717c8bdbb Update fluxcd/source-controller to v0.22.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-23 11:33:35 +01:00
Hidde Beydals
f1e4561bdd tests/azure: update dependencies
- github.com/Azure/azure-event-hubs-go/v3 to v3.3.17
- github.com/fluxcd/helm-controller/api to v0.18.0
- github.com/fluxcd/image-automation-controller/api to v0.21.0
- github.com/fluxcd/image-reflector-controller/api to v0.17.0
- github.com/fluxcd/kustomize-controller/api to v0.22.0
- github.com/fluxcd/notification-controller/api to v0.23.0
- github.com/fluxcd/pkg/runtime to v0.13.2
- github.com/hashicorp/terraform-exec to v0.15.0
- github.com/libgit2/git2go/v31 to v31.7.9
- github.com/stretchr/testify to v1.7.1
- go.uber.org/multierr to v1.8.0
- k8s.io/api to v0.23.4
- k8s.io/client-go to v0.23.4

For `github.com/hashicorp/terraform-exec`, a newer version (v0.16.0)
is availabe. This version however contains a breaking change (as it
removes the `tfinstall` module), which I did not want to deal with at
the moment.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-23 11:33:35 +01:00
Hidde Beydals
efe9a30523 Update dependencies
- github.com/Masterminds/semver/v3 to v3.1.1
- github.com/ProtonMail/go-crypto to v0.0.0-20220113124808-70ae35bab23f
- github.com/cyphar/filepath-securejoin to v0.2.3
- github.com/fluxcd/pkg/kustomize to v0.0.3
- github.com/fluxcd/pkg/runtime to v0.13.2
- github.com/fluxcd/pkg/ssa to v0.15.1
- github.com/fluxcd/pkg/ssh to v0.3.2
- github.com/fluxcd/pkg/untar to v0.1.0
- github.com/fluxcd/pkg/version to v0.1.0
- github.com/gonvenience/bunt to v1.3.3
- github.com/gonvenience/ytbx to v1.4.4
- github.com/google/go-containerregistry to v0.8.0
- github.com/homeport/dyff to v1.5.1
- github.com/olekukonko/tablewriter to v0.0.5
- github.com/spf13/cobra to v1.4.0
- golang.org/x/crypto to v0.0.0-20220321153916-2c7772ba3064
- k8s.io/kubectl to v0.23.4
- k8s.io/cli-runtime to v0.23.4
- sigs.k8s.io/cli-utils to v0.29.3

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-23 11:33:35 +01:00
Paulo Gomes
e5ede275f8 Update Source API to v1beta2
The creation of oldConditions, statusableConditions and
reconcilableConditions is an adhoc solution to deal with the upstream
changes on `pkg/apis/meta`, which are yet to be replicated across other
Flux API components.

Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2022-03-23 11:33:35 +01:00
fluxcdbot
a929d24924 Update toolkit components
- helm-controller to v0.18.0
  https://github.com/fluxcd/helm-controller/blob/v0.18.0/CHANGELOG.md
- kustomize-controller to v0.22.0
  https://github.com/fluxcd/kustomize-controller/blob/v0.22.0/CHANGELOG.md
- source-controller to v0.22.0
  https://github.com/fluxcd/source-controller/blob/v0.22.0/CHANGELOG.md
- notification-controller to v0.23.0
  https://github.com/fluxcd/notification-controller/blob/v0.23.0/CHANGELOG.md
- image-reflector-controller to v0.17.0
  https://github.com/fluxcd/image-reflector-controller/blob/v0.17.0/CHANGELOG.md
- image-automation-controller to v0.21.0
  https://github.com/fluxcd/image-automation-controller/blob/v0.21.0/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-03-23 11:33:35 +01:00
Stefan Prodan
368f2d3542 Merge pull request #2564 from fluxcd/dot-domain-nc
Use absolute domain name for the events address
2022-03-23 12:17:35 +02:00
Stefan Prodan
139bbbb87c Use absolute domain name for the events address
Add ending dot to the events address to be consistent with source controller address.
This will affect bootstrap and install by setting `--events-addr=http://notification-controller.flux-system.svc.cluster.local./`.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-03-23 11:57:46 +02:00
Stefan Prodan
51f5d85861 Merge pull request #2559 from fluxcd/fix-non-fast-forward
Retry bootstrap operations on Git conflict errors
2022-03-22 17:12:31 +02:00
Stefan Prodan
7756faec1f Retry bootstrap operations on Git conflict errors
When running bootstrap in-parallel for many clusters that target the same repository, the 2nd commit with the sync files fails with ` non-fast-forward update`. We now detect the conflict, and we retry the operations by creating a fresh clone from upstream.

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-03-22 16:09:31 +02:00
Sunny
d9e3e3aa95 Merge pull request #2542 from fluxcd/update-components
Update toolkit components
2022-03-16 03:16:19 +05:30
fluxcdbot
ff65491bb6 Update toolkit components
- helm-controller to v0.17.2
  https://github.com/fluxcd/helm-controller/blob/v0.17.2/CHANGELOG.md
- notification-controller to v0.22.3
  https://github.com/fluxcd/notification-controller/blob/v0.22.3/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-03-15 20:41:25 +00:00
Stefan Prodan
8f514d8991 Merge pull request #2530 from fluxcd/components-extra-example
Add components-extra example usage to CLI help
2022-03-11 11:34:22 +02:00
Stefan Prodan
2e1000c31a Add components-extra example usage to CLI help
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-03-11 09:19:56 +02:00
Stefan Prodan
c5171a1f2e Merge pull request #2512 from souleb/introduce-printer-interface
Introduce a printer interface for flux resources
2022-03-07 13:55:33 +02:00
Soule BA
7359e63960 Introduce a printer interface for flux resource
If implemented, there will a common interface to print flux resource.

We are adding new way to print resource information e.g. diff of
objects.

Signed-off-by: Soule BA <soule@weave.works>
2022-03-07 12:15:35 +01:00
Stefan Prodan
307309504b Merge pull request #2484 from cuishuang/main
all: fix some typos
2022-03-02 14:23:04 +02:00
cuishuang
1fda202cf9 all: fix some typos
Signed-off-by: cuishuang <imcusg@gmail.com>
2022-03-02 19:36:08 +08:00
Sunny
7e634c154f Merge pull request #2483 from fluxcd/update-components
Update toolkit components
2022-03-01 21:18:05 +05:30
fluxcdbot
3c72e35381 Update toolkit components
- image-automation-controller to v0.20.1
  https://github.com/fluxcd/image-automation-controller/blob/v0.20.1/CHANGELOG.md

Signed-off-by: GitHub <noreply@github.com>
2022-03-01 15:07:34 +00:00
Stefan Prodan
7e23430882 Merge pull request #2467 from fluxcd/update-get-column-order
Update `get` subcommand column order
2022-02-28 15:34:38 +02:00
Sunny
2c4c3fd749 test: ignore golden template files with -update
Add a template values check in the `assertGoldenTemplateFile()` function
to only update golden files if they aren't templates. A note is printed
when an update to a template golden file is needed and `-update` flag
can't update it.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2022-02-28 08:56:08 +05:30
Sunny
edaf6ca522 Add test flag -update to update the golden files
Test flag `-update` can be used to update all the golden files whenever
the CLI output changes.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2022-02-24 08:58:19 +05:30
Sunny
21f0d5d82c Move MESSAGE to the end of get subcommand output
Message content could be long compared to other fields. Moving it to
the end helps improve the visibility of the other fields.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2022-02-24 04:21:47 +05:30
708 changed files with 30367 additions and 13878 deletions

View File

@@ -4,13 +4,16 @@ pkgbase = flux-bin
pkgrel = ${PKGREL}
url = https://fluxcd.io/
arch = x86_64
arch = armv6h
arch = armv7h
arch = aarch64
license = APACHE
source_x86_64 = flux-bin-${PKGVER}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v1/flux_${PKGVER}_linux_amd64.tar.gz
source_armv6h = flux-bin-${PKGVER}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v1/flux_${PKGVER}_linux_arm.tar.gz
source_armv7h = flux-bin-${PKGVER}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v1/flux_${PKGVER}_linux_arm.tar.gz
source_aarch64 = flux-bin-${PKGVER}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v1/flux_${PKGVER}_linux_arm64.tar.gz
optdepends = bash-completion: auto-completion for flux in Bash
optdepends = zsh-completions: auto-completion for flux in ZSH
source_x86_64 = flux-bin-${PKGVER}_linux_amd64.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${VERSION}/flux_${VERSION}_linux_amd64.tar.gz
sha256sums_x86_64 = ${SHA256SUM_AMD64}
source_armv7h = flux-bin-${PKGVER}_linux_arm.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${VERSION}/flux_${VERSION}_linux_arm.tar.gz
sha256sums_armv7h = ${SHA256SUM_ARM}
source_aarch64 = flux-bin-${PKGVER}_linux_arm64.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${VERSION}/flux_${VERSION}_linux_arm64.tar.gz
sha256sums_aarch64 = ${SHA256SUM_ARM64}
pkgname = flux-bin

View File

@@ -4,37 +4,32 @@
pkgname=flux-bin
pkgver=${PKGVER}
pkgrel=${PKGREL}
_srcname=flux
_srcver=${VERSION}
pkgdesc="Open and extensible continuous delivery solution for Kubernetes"
url="https://fluxcd.io/"
arch=("x86_64" "armv6h" "armv7h" "aarch64")
arch=("x86_64" "armv7h" "aarch64")
license=("APACHE")
optdepends=('bash-completion: auto-completion for flux in Bash',
'zsh-completions: auto-completion for flux in ZSH')
optdepends=('bash-completion: auto-completion for flux in Bash'
'zsh-completions: auto-completion for flux in ZSH')
source_x86_64=(
"${pkgname}-${pkgver}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${pkgver}/flux_${pkgver}_linux_amd64.tar.gz"
)
source_armv6h=(
"${pkgname}-${pkgver}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${pkgver}/flux_${pkgver}_linux_arm.tar.gz"
"${pkgname}-${pkgver}_linux_amd64.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${_srcver}/flux_${_srcver}_linux_amd64.tar.gz"
)
source_armv7h=(
"${pkgname}-${pkgver}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${pkgver}/flux_${pkgver}_linux_arm.tar.gz"
"${pkgname}-${pkgver}_linux_arm.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${_srcver}/flux_${_srcver}_linux_arm.tar.gz"
)
source_aarch64=(
"${pkgname}-${pkgver}.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${pkgver}/flux_${pkgver}_linux_arm64.tar.gz"
"${pkgname}-${pkgver}_linux_arm64.tar.gz::https://github.com/fluxcd/flux2/releases/download/v${_srcver}/flux_${_srcver}_linux_arm64.tar.gz"
)
sha256sums_x86_64=(
${SHA256SUM_AMD64}
)
sha256sums_armv6h=(
${SHA256SUM_ARM}
)
sha256sums_armv7h=(
${SHA256SUM_ARM}
)
sha256sums_aarch64=(
${SHA256SUM_ARM64}
)
_srcname=flux
package() {
install -Dm755 ${_srcname} "${pkgdir}/usr/bin/${_srcname}"

View File

@@ -28,6 +28,7 @@ git clone aur@aur.archlinux.org:$PKGNAME $GITDIR 2>&1
CURRENT_PKGVER=$(cat $GITDIR/.SRCINFO | grep pkgver | awk '{ print $3 }')
CURRENT_PKGREL=$(cat $GITDIR/.SRCINFO | grep pkgrel | awk '{ print $3 }')
# Transform pre-release to AUR compatible version format
export PKGVER=${VERSION/-/}
if [[ "${CURRENT_PKGVER}" == "${PKGVER}" ]]; then
@@ -36,12 +37,12 @@ else
export PKGREL=1
fi
export SHA256SUM_ARM=$(sha256sum ${ROOT}/dist/flux_${PKGVER}_linux_arm.tar.gz | awk '{ print $1 }')
export SHA256SUM_ARM64=$(sha256sum ${ROOT}/dist/flux_${PKGVER}_linux_arm64.tar.gz | awk '{ print $1 }')
export SHA256SUM_AMD64=$(sha256sum ${ROOT}/dist/flux_${PKGVER}_linux_amd64.tar.gz | awk '{ print $1 }')
export SHA256SUM_ARM=$(sha256sum ${ROOT}/dist/flux_${VERSION}_linux_arm.tar.gz | awk '{ print $1 }')
export SHA256SUM_ARM64=$(sha256sum ${ROOT}/dist/flux_${VERSION}_linux_arm64.tar.gz | awk '{ print $1 }')
export SHA256SUM_AMD64=$(sha256sum ${ROOT}/dist/flux_${VERSION}_linux_amd64.tar.gz | awk '{ print $1 }')
envsubst '$PKGVER $PKGREL $SHA256SUM_AMD64 $SHA256SUM_ARM $SHA256SUM_ARM64' < .SRCINFO.template > $GITDIR/.SRCINFO
envsubst '$PKGVER $PKGREL $SHA256SUM_AMD64 $SHA256SUM_ARM $SHA256SUM_ARM64' < PKGBUILD.template > $GITDIR/PKGBUILD
envsubst '$VERSION $PKGVER $PKGREL $SHA256SUM_AMD64 $SHA256SUM_ARM $SHA256SUM_ARM64' < .SRCINFO.template > $GITDIR/.SRCINFO
envsubst '$VERSION $PKGVER $PKGREL $SHA256SUM_AMD64 $SHA256SUM_ARM $SHA256SUM_ARM64' < PKGBUILD.template > $GITDIR/PKGBUILD
cd $GITDIR
git config user.name "fluxcdbot"

View File

@@ -4,7 +4,6 @@ pkgbase = flux-go
pkgrel = ${PKGREL}
url = https://fluxcd.io/
arch = x86_64
arch = armv6h
arch = armv7h
arch = aarch64
license = APACHE
@@ -13,6 +12,6 @@ pkgbase = flux-go
provides = flux-bin
conflicts = flux-bin
replaces = flux-cli
source = flux-go-${PKGVER}.tar.gz::https://github.com/fluxcd/flux2/archive/v${PKGVER}.tar.gz
source = flux-go-${PKGVER}.tar.gz::https://github.com/fluxcd/flux2/archive/v${VERSION}.tar.gz
pkgname = flux-go

View File

@@ -4,43 +4,44 @@
pkgname=flux-go
pkgver=${PKGVER}
pkgrel=${PKGREL}
_srcname=flux
_srcver=${VERSION}
pkgdesc="Open and extensible continuous delivery solution for Kubernetes"
url="https://fluxcd.io/"
arch=("x86_64" "armv6h" "armv7h" "aarch64")
arch=("x86_64" "armv7h" "aarch64")
license=("APACHE")
provides=("flux-bin")
conflicts=("flux-bin")
replaces=("flux-cli")
depends=("glibc")
makedepends=('go>=1.17', 'kustomize>=3.0')
makedepends=('go>=1.20', 'kustomize>=5.0')
optdepends=('bash-completion: auto-completion for flux in Bash',
'zsh-completions: auto-completion for flux in ZSH')
source=(
"${pkgname}-${pkgver}.tar.gz::https://github.com/fluxcd/flux2/archive/v${pkgver}.tar.gz"
"${pkgname}-${pkgver}.tar.gz::https://github.com/fluxcd/flux2/archive/v${_srcver}.tar.gz"
)
sha256sums=(
${SHA256SUM}
)
_srcname=flux
build() {
cd "flux2-${pkgver}"
cd "flux2-${_srcver}"
export CGO_LDFLAGS="$LDFLAGS"
export CGO_CFLAGS="$CFLAGS"
export CGO_CXXFLAGS="$CXXFLAGS"
export CGO_CPPFLAGS="$CPPFLAGS"
export GOFLAGS="-buildmode=pie -trimpath -mod=readonly -modcacherw"
make cmd/flux/.manifests.done
go build -ldflags "-linkmode=external -X main.VERSION=${pkgver}" -o ${_srcname} ./cmd/flux
go build -ldflags "-linkmode=external -X main.VERSION=${_srcver}" -o ${_srcname} ./cmd/flux
}
check() {
cd "flux2-${pkgver}"
cd "flux2-${_srcver}"
case $CARCH in
aarch64)
export ENVTEST_ARCH=arm64
;;
armv6h|armv7h)
armv7h)
export ENVTEST_ARCH=arm
;;
esac
@@ -48,7 +49,7 @@ check() {
}
package() {
cd "flux2-${pkgver}"
cd "flux2-${_srcver}"
install -Dm755 ${_srcname} "${pkgdir}/usr/bin/${_srcname}"
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"

View File

@@ -28,6 +28,7 @@ git clone aur@aur.archlinux.org:$PKGNAME $GITDIR 2>&1
CURRENT_PKGVER=$(cat $GITDIR/.SRCINFO | grep pkgver | awk '{ print $3 }')
CURRENT_PKGREL=$(cat $GITDIR/.SRCINFO | grep pkgrel | awk '{ print $3 }')
# Transform pre-release to AUR compatible version format
export PKGVER=${VERSION/-/}
if [[ "${CURRENT_PKGVER}" == "${PKGVER}" ]]; then
@@ -36,10 +37,10 @@ else
export PKGREL=1
fi
export SHA256SUM=$(curl -sL https://github.com/fluxcd/flux2/archive/v$PKGVER.tar.gz | sha256sum | awk '{ print $1 }')
export SHA256SUM=$(curl -sL https://github.com/fluxcd/flux2/archive/v${VERSION}.tar.gz | sha256sum | awk '{ print $1 }')
envsubst '$PKGVER $PKGREL $SHA256SUM' < .SRCINFO.template > $GITDIR/.SRCINFO
envsubst '$PKGVER $PKGREL $SHA256SUM' < PKGBUILD.template > $GITDIR/PKGBUILD
envsubst '$VERSION $PKGVER $PKGREL $SHA256SUM' < .SRCINFO.template > $GITDIR/.SRCINFO
envsubst '$VERSION $PKGVER $PKGREL $SHA256SUM' < PKGBUILD.template > $GITDIR/PKGBUILD
cd $GITDIR
git config user.name "fluxcdbot"

View File

@@ -4,7 +4,6 @@ pkgbase = flux-scm
pkgrel = ${PKGREL}
url = https://fluxcd.io/
arch = x86_64
arch = armv6h
arch = armv7h
arch = aarch64
license = APACHE

View File

@@ -4,21 +4,21 @@
pkgname=flux-scm
pkgver=${PKGVER}
pkgrel=${PKGREL}
_srcname=flux
pkgdesc="Open and extensible continuous delivery solution for Kubernetes"
url="https://fluxcd.io/"
arch=("x86_64" "armv6h" "armv7h" "aarch64")
arch=("x86_64" "armv7h" "aarch64")
license=("APACHE")
provides=("flux-bin")
conflicts=("flux-bin")
depends=("glibc")
makedepends=('go>=1.17', 'kustomize>=3.0', 'git')
makedepends=('go>=1.20', 'kustomize>=5.0', 'git')
optdepends=('bash-completion: auto-completion for flux in Bash',
'zsh-completions: auto-completion for flux in ZSH')
source=(
"git+https://github.com/fluxcd/flux2.git"
)
md5sums=('SKIP')
_srcname=flux
pkgver() {
cd "flux2"
@@ -42,7 +42,7 @@ check() {
aarch64)
export ENVTEST_ARCH=arm64
;;
armv6h|armv7h)
armv7h)
export ENVTEST_ARCH=arm
;;
esac

View File

@@ -28,6 +28,7 @@ git clone aur@aur.archlinux.org:$PKGNAME $GITDIR 2>&1
CURRENT_PKGVER=$(cat $GITDIR/.SRCINFO | grep pkgver | awk '{ print $3 }')
CURRENT_PKGREL=$(cat $GITDIR/.SRCINFO | grep pkgrel | awk '{ print $3 }')
# Transform pre-release to AUR compatible version format
export PKGVER=${VERSION/-/}
if [[ "${CURRENT_PKGVER}" == "${PKGVER}" ]]; then

14
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,14 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
labels: ["area/ci", "dependencies"]
groups:
# Group all updates together, so that they are all applied in a single PR.
# xref: https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file#groups
ci:
patterns:
- "*"
schedule:
interval: "monthly"

View File

@@ -1,5 +1,9 @@
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
networking:
disableDefaultCNI: true # disable kindnet
podSubnet: 192.168.0.0/16 # set to Calico's default subnet

55
.github/labels.yaml vendored Normal file
View File

@@ -0,0 +1,55 @@
# Configuration file to declaratively configure labels
# Ref: https://github.com/EndBug/label-sync#Config-files
- name: area/bootstrap
description: Bootstrap related issues and pull requests
color: '#86efc9'
- name: area/install
description: Install and uninstall related issues and pull requests
color: '#86efc9'
- name: area/diff
description: Diff related issues and pull requests
color: '#BA4192'
- name: area/bucket
description: Bucket related issues and pull requests
color: '#00b140'
- name: area/git
description: Git related issues and pull requests
color: '#863faf'
- name: area/oci
description: OCI related issues and pull requests
color: '#c739ff'
- name: area/kustomization
description: Kustomization related issues and pull requests
color: '#00e54d'
- name: area/helm
description: Helm related issues and pull requests
color: '#1673b6'
- name: area/image-automation
description: Automated image updates related issues and pull requests
color: '#c5def5'
- name: area/monitoring
description: Monitoring related issues and pull requests
color: '#dd75ae'
- name: area/multi-tenancy
description: Multi-tenancy related issues and pull requests
color: '#72CDBD'
- name: area/notification
description: Notification API related issues and pull requests
color: '#434ec1'
- name: area/source
description: Source API related issues and pull requests
color: '#863faf'
- name: area/rfc
description: Feature request proposals in the RFC format
color: '#D621C3'
aliases: ['area/RFC']
- name: backport:release/v2.5.x
description: To be backported to release/v2.5.x
color: '#ffd700'
- name: backport:release/v2.6.x
description: To be backported to release/v2.6.x
color: '#ffd700'
- name: backport:release/v2.7.x
description: To be backported to release/v2.7.x
color: '#ffd700'

View File

@@ -1,24 +1,34 @@
# Flux ARM64 GitHub runners
The Flux ARM64 end-to-end tests run on Equinix instances provisioned with Docker and GitHub self-hosted runners.
The Flux ARM64 end-to-end tests run on Equinix Metal instances provisioned with Docker and GitHub self-hosted runners.
## Current instances
| Runner | Instance | Region |
|---------------|---------------------|--------|
| equinix-arm-1 | flux-equinix-arm-01 | AMS1 |
| equinix-arm-2 | flux-equinix-arm-01 | AMS1 |
| equinix-arm-3 | flux-equinix-arm-01 | AMS1 |
| equinix-arm-4 | flux-equinix-arm-02 | DFW2 |
| equinix-arm-5 | flux-equinix-arm-02 | DFW2 |
| equinix-arm-6 | flux-equinix-arm-02 | DFW2 |
| Repository | Runner | Instance | Location |
|-----------------------------|------------------|----------------|---------------|
| flux2 | equinix-arm-dc-1 | flux-arm-dc-01 | Washington DC |
| flux2 | equinix-arm-dc-2 | flux-arm-dc-01 | Washington DC |
| flux2 | equinix-arm-da-1 | flux-arm-da-01 | Dallas |
| flux2 | equinix-arm-da-2 | flux-arm-da-01 | Dallas |
| flux-benchmark | equinix-arm-dc-1 | flux-arm-dc-01 | Washington DC |
| flux-benchmark | equinix-arm-da-1 | flux-arm-da-01 | Dallas |
| source-controller | equinix-arm-dc-1 | flux-arm-dc-01 | Washington DC |
| source-controller | equinix-arm-da-1 | flux-arm-da-01 | Dallas |
| image-automation-controller | equinix-arm-dc-1 | flux-arm-dc-01 | Washington DC |
| image-automation-controller | equinix-arm-da-1 | flux-arm-da-01 | Dallas |
Instance spec:
- Ampere Altra Q80-30 80-core processor @ 2.8GHz
- 2 x 960GB NVME
- 256GB RAM
- 2 x 25Gbps
## Instance setup
In order to add a new runner to the GitHub Actions pool,
first create a server on Equinix with the following configuration:
- Type: c2.large.arm
- OS: Ubuntu 20.04
- Type: `c3.large.arm64`
- OS: `Ubuntu 22.04 LTS`
### Install prerequisites
@@ -54,14 +64,14 @@ sudo ./prereq.sh
- Retrieve the GitHub runner token from the repository [settings page](https://github.com/fluxcd/flux2/settings/actions/runners/new?arch=arm64&os=linux)
- Create 3 directories `runner1`, `runner2`, `runner3`
- Create two directories `flux2-01`, `flux2-02`
- In each dir run:
```shell
curl -sL https://raw.githubusercontent.com/fluxcd/flux2/main/.github/runners/runner-setup.sh > runner-setup.sh \
&& chmod +x ./runner-setup.sh
./runner-setup.sh equinix-arm-<NUMBER> <TOKEN>
./runner-setup.sh equinix-arm-<NUMBER> <TOKEN> <REPO>
```
- Reboot the instance

View File

@@ -18,11 +18,11 @@
set -eu
KIND_VERSION=0.11.1
KUBECTL_VERSION=1.21.2
KUSTOMIZE_VERSION=4.1.3
HELM_VERSION=3.7.2
GITHUB_RUNNER_VERSION=2.285.1
KIND_VERSION=0.22.0
KUBECTL_VERSION=1.29.0
KUSTOMIZE_VERSION=5.3.0
HELM_VERSION=3.14.1
GITHUB_RUNNER_VERSION=2.313.0
PACKAGES="apt-transport-https ca-certificates software-properties-common build-essential libssl-dev gnupg lsb-release jq pkg-config"
# install prerequisites
@@ -31,6 +31,10 @@ apt-get update \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
# fix Kubernetes DNS resolution
rm /etc/resolv.conf
cat "/run/systemd/resolve/stub-resolv.conf" | sed '/search/d' > /etc/resolv.conf
# install docker
curl -fsSL https://get.docker.com -o get-docker.sh \
&& chmod +x get-docker.sh

View File

@@ -22,7 +22,7 @@ RUNNER_NAME=$1
REPOSITORY_TOKEN=$2
REPOSITORY_URL=${3:-https://github.com/fluxcd/flux2}
GITHUB_RUNNER_VERSION=2.285.1
GITHUB_RUNNER_VERSION=2.313.0
# download runner
curl -o actions-runner-linux-arm64.tar.gz -L https://github.com/actions/runner/releases/download/v${GITHUB_RUNNER_VERSION}/actions-runner-linux-arm64-${GITHUB_RUNNER_VERSION}.tar.gz \

50
.github/workflows/README.md vendored Normal file
View File

@@ -0,0 +1,50 @@
# Flux GitHub Workflows
## End-to-end Testing
The e2e workflows run a series of tests to ensure that the Flux CLI and
the GitOps Toolkit controllers work well all together.
The tests are written in Go, Bash, Make and Terraform.
| Workflow | Jobs | Runner | Role |
|--------------------|----------------------|----------------|-----------------------------------------------|
| e2e.yaml | e2e-amd64-kubernetes | GitHub Ubuntu | integration testing with Kubernetes Kind<br/> |
| e2e-arm64.yaml | e2e-arm64-kubernetes | Equinix Ubuntu | integration testing with Kubernetes Kind<br/> |
| e2e-bootstrap.yaml | e2e-boostrap-github | GitHub Ubuntu | integration testing with GitHub API<br/> |
| e2e-azure.yaml | e2e-amd64-aks | GitHub Ubuntu | integration testing with Azure API<br/> |
| scan.yaml | scan-fossa | GitHub Ubuntu | license scanning<br/> |
| scan.yaml | scan-snyk | GitHub Ubuntu | vulnerability scanning<br/> |
| scan.yaml | scan-codeql | GitHub Ubuntu | vulnerability scanning<br/> |
## Components Update
The components update workflow scans the GitOps Toolkit controller repositories for new releases,
amd when it finds a new controller version, the workflow performs the following steps:
- Updates the controller API package version in `go.mod`.
- Patches the controller CRDs version in the `manifests/crds` overlay.
- Patches the controller Deployment version in `manifests/bases` overlay.
- Opens a Pull Request against the `main` branch.
- Triggers the e2e test suite to run for the opened PR.
| Workflow | Jobs | Runner | Role |
|-------------|-------------------|---------------|-----------------------------------------------------|
| update.yaml | update-components | GitHub Ubuntu | update the GitOps Toolkit APIs and controllers<br/> |
## Release
The release workflow is triggered by a semver Git tag and performs the following steps:
- Generates the Flux install manifests (YAML).
- Generates the OpenAPI validation schemas for the GitOps Toolkit CRDs (JSON).
- Generates a Software Bill of Materials (SPDX JSON).
- Builds the Flux CLI binaries and the multi-arch container images.
- Pushes the container images to GitHub Container Registry and DockerHub.
- Signs the sbom, the binaries checksum and the container images with Cosign and GitHub OIDC.
- Uploads the sbom, binaries, checksums and install manifests to GitHub Releases.
- Pushes the install manifests as OCI artifacts to GitHub Container Registry and DockerHub.
- Signs the OCI artifacts with Cosign and GitHub OIDC.
| Workflow | Jobs | Runner | Role |
|--------------|------------------------|---------------|------------------------------------------------------|
| release.yaml | release-flux-cli | GitHub Ubuntu | build, push and sign the CLI release artifacts<br/> |
| release.yaml | release-flux-manifests | GitHub Ubuntu | build, push and sign the Flux install manifests<br/> |

29
.github/workflows/action.yaml vendored Normal file
View File

@@ -0,0 +1,29 @@
name: test-gh-action
on:
pull_request:
paths:
- 'action/**'
push:
paths:
- 'action/**'
branches:
- 'main'
- 'release/**'
permissions: read-all
jobs:
actions:
strategy:
fail-fast: false
matrix:
version: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.version }}
name: action on ${{ matrix.version }}
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup flux
uses: ./action

13
.github/workflows/backport.yaml vendored Normal file
View File

@@ -0,0 +1,13 @@
name: backport
on:
pull_request_target:
types: [closed, labeled]
permissions: read-all
jobs:
backport:
permissions:
contents: write # for reading and creating branches.
pull-requests: write # for creating pull requests against release branches.
uses: fluxcd/gha-workflows/.github/workflows/backport.yaml@v0.9.0
secrets:
github-token: ${{ secrets.BOT_GITHUB_TOKEN }}

254
.github/workflows/conformance.yaml vendored Normal file
View File

@@ -0,0 +1,254 @@
name: conformance
on:
workflow_dispatch:
push:
branches: [ 'main', 'update-components', 'release/**', 'conform*' ]
permissions:
contents: read
env:
GO_VERSION: 1.26.x
jobs:
conform-kubernetes:
runs-on:
group: "ARM64"
strategy:
matrix:
# Keep this list up-to-date with https://endoflife.date/kubernetes
# Build images with https://github.com/fluxcd/flux-benchmark/actions/workflows/build-kind.yaml
KUBERNETES_VERSION: [1.33.0, 1.34.1, 1.35.0]
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Go
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: |
**/go.sum
**/go.mod
- name: Prepare
id: prep
run: |
ID=${GITHUB_SHA:0:7}-${{ matrix.KUBERNETES_VERSION }}-$(date +%s)
echo "CLUSTER=arm64-${ID}" >> $GITHUB_OUTPUT
- name: Build
run: |
make build
- name: Setup Kubernetes
uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # v1.14.0
with:
version: v0.30.0
cluster_name: ${{ steps.prep.outputs.CLUSTER }}
node_image: ghcr.io/fluxcd/kindest/node:v${{ matrix.KUBERNETES_VERSION }}-arm64
- name: Run e2e tests
run: TEST_KUBECONFIG=$HOME/.kube/config make e2e
- name: Run multi-tenancy tests
run: |
./bin/flux install
./bin/flux create source git flux-system \
--interval=15m \
--url=https://github.com/fluxcd/flux2-multi-tenancy \
--branch=main \
--ignore-paths="./clusters/**/flux-system/"
./bin/flux create kustomization flux-system \
--interval=15m \
--source=flux-system \
--path=./clusters/staging
kubectl -n flux-system wait kustomization/tenants --for=condition=ready --timeout=5m
kubectl -n apps wait kustomization/dev-team --for=condition=ready --timeout=1m
kubectl -n apps wait helmrelease/podinfo --for=condition=ready --timeout=1m
- name: Debug failure
if: failure()
run: |
kubectl -n flux-system get all
kubectl -n flux-system describe po
kubectl -n flux-system logs deploy/source-controller
kubectl -n flux-system logs deploy/kustomize-controller
conform-k3s:
runs-on: ubuntu-latest
strategy:
matrix:
# Keep this list up-to-date with https://endoflife.date/kubernetes
# Available versions can be found with "replicated cluster versions"
K3S_VERSION: [ 1.33.7, 1.34.3, 1.35.0 ]
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Go
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: |
**/go.sum
**/go.mod
- name: Prepare
id: prep
run: |
ID=${GITHUB_SHA:0:7}-${{ matrix.K3S_VERSION }}-$(date +%s)
PSEUDO_RAND_SUFFIX=$(echo "${ID}" | shasum | awk '{print $1}')
echo "cluster=flux2-k3s-${PSEUDO_RAND_SUFFIX}" >> $GITHUB_OUTPUT
KUBECONFIG_PATH="$(git rev-parse --show-toplevel)/bin/kubeconfig.yaml"
echo "kubeconfig-path=${KUBECONFIG_PATH}" >> $GITHUB_OUTPUT
- name: Setup Kustomize
uses: fluxcd/pkg/actions/kustomize@9a8c0edd5da84dc51a585738c67e3a3950d7fbf0 # main
- name: Build
run: make build-dev
- name: Create repository
run: |
gh repo create --private --add-readme fluxcd-testing/${{ steps.prep.outputs.cluster }}
env:
GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }}
- name: Create cluster
id: create-cluster
uses: replicatedhq/replicated-actions/create-cluster@49b440dabd7e0e868cbbabda5cfc0d8332a279fa # v1.19.0
with:
api-token: ${{ secrets.REPLICATED_API_TOKEN }}
kubernetes-distribution: "k3s"
kubernetes-version: ${{ matrix.K3S_VERSION }}
ttl: 20m
cluster-name: "${{ steps.prep.outputs.cluster }}"
kubeconfig-path: ${{ steps.prep.outputs.kubeconfig-path }}
export-kubeconfig: true
- name: Run e2e tests
run: TEST_KUBECONFIG=${{ steps.prep.outputs.kubeconfig-path }} make e2e
- name: Run flux bootstrap
run: |
./bin/flux bootstrap git --manifests ./manifests/test/ \
--url=https://github.com/fluxcd-testing/${{ steps.prep.outputs.cluster }} \
--branch=main \
--path=clusters/k3s \
--token-auth
env:
GIT_PASSWORD: ${{ secrets.GITPROVIDER_BOT_TOKEN }}
- name: Run flux check
run: |
./bin/flux check
- name: Run flux reconcile
run: |
./bin/flux reconcile ks flux-system --with-source
./bin/flux get all
./bin/flux events
- name: Collect reconcile logs
if: ${{ always() }}
continue-on-error: true
run: |
kubectl -n flux-system get all
kubectl -n flux-system describe pods
kubectl -n flux-system logs deploy/source-controller
kubectl -n flux-system logs deploy/kustomize-controller
kubectl -n flux-system logs deploy/notification-controller
- name: Delete flux
run: |
./bin/flux uninstall -s --keep-namespace
kubectl delete ns flux-system --wait
- name: Delete cluster
if: ${{ always() }}
uses: replicatedhq/replicated-actions/remove-cluster@49b440dabd7e0e868cbbabda5cfc0d8332a279fa # v1.19.0
continue-on-error: true
with:
api-token: ${{ secrets.REPLICATED_API_TOKEN }}
cluster-id: ${{ steps.create-cluster.outputs.cluster-id }}
- name: Delete repository
if: ${{ always() }}
continue-on-error: true
run: |
gh repo delete fluxcd-testing/${{ steps.prep.outputs.cluster }} --yes
env:
GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }}
conform-openshift:
runs-on: ubuntu-latest
strategy:
matrix:
# Keep this list up-to-date with https://endoflife.date/red-hat-openshift
OPENSHIFT_VERSION: [ 4.20.0-okd ]
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Go
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version: ${{ env.GO_VERSION }}
cache-dependency-path: |
**/go.sum
**/go.mod
- name: Prepare
id: prep
run: |
ID=${GITHUB_SHA:0:7}-${{ matrix.OPENSHIFT_VERSION }}-$(date +%s)
PSEUDO_RAND_SUFFIX=$(echo "${ID}" | shasum | awk '{print $1}')
echo "cluster=flux2-openshift-${PSEUDO_RAND_SUFFIX}" >> $GITHUB_OUTPUT
KUBECONFIG_PATH="$(git rev-parse --show-toplevel)/bin/kubeconfig.yaml"
echo "kubeconfig-path=${KUBECONFIG_PATH}" >> $GITHUB_OUTPUT
- name: Setup Kustomize
uses: fluxcd/pkg/actions/kustomize@9a8c0edd5da84dc51a585738c67e3a3950d7fbf0 # main
- name: Build
run: make build-dev
- name: Create repository
run: |
gh repo create --private --add-readme fluxcd-testing/${{ steps.prep.outputs.cluster }}
env:
GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }}
- name: Create cluster
id: create-cluster
uses: replicatedhq/replicated-actions/create-cluster@49b440dabd7e0e868cbbabda5cfc0d8332a279fa # v1.19.0
with:
api-token: ${{ secrets.REPLICATED_API_TOKEN }}
kubernetes-distribution: "openshift"
kubernetes-version: ${{ matrix.OPENSHIFT_VERSION }}
ttl: 20m
cluster-name: "${{ steps.prep.outputs.cluster }}"
kubeconfig-path: ${{ steps.prep.outputs.kubeconfig-path }}
export-kubeconfig: true
- name: Run flux bootstrap
run: |
./bin/flux bootstrap git --manifests ./manifests/openshift/ \
--url=https://github.com/fluxcd-testing/${{ steps.prep.outputs.cluster }} \
--branch=main \
--path=clusters/openshift \
--token-auth
env:
GIT_PASSWORD: ${{ secrets.GITPROVIDER_BOT_TOKEN }}
- name: Run flux check
run: |
./bin/flux check
- name: Run flux reconcile
run: |
./bin/flux reconcile ks flux-system --with-source
./bin/flux get all
./bin/flux events
- name: Collect reconcile logs
if: ${{ always() }}
continue-on-error: true
run: |
kubectl -n flux-system get all
kubectl -n flux-system describe pods
kubectl -n flux-system logs deploy/source-controller
kubectl -n flux-system logs deploy/kustomize-controller
kubectl -n flux-system logs deploy/notification-controller
- name: Delete flux
run: |
./bin/flux uninstall -s --keep-namespace
kubectl delete ns flux-system --wait
- name: Delete cluster
if: ${{ always() }}
uses: replicatedhq/replicated-actions/remove-cluster@49b440dabd7e0e868cbbabda5cfc0d8332a279fa # v1.19.0
continue-on-error: true
with:
api-token: ${{ secrets.REPLICATED_API_TOKEN }}
cluster-id: ${{ steps.create-cluster.outputs.cluster-id }}
- name: Delete repository
if: ${{ always() }}
continue-on-error: true
run: |
gh repo delete fluxcd-testing/${{ steps.prep.outputs.cluster }} --yes
env:
GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }}

View File

@@ -1,37 +0,0 @@
name: e2e-arm64
on:
workflow_dispatch:
push:
branches: [ main, update-components, equinix-runners ]
jobs:
test:
# Hosted on Equinix
# Docs: https://github.com/fluxcd/flux2/tree/main/.github/runners
runs-on: [self-hosted, Linux, ARM64, equinix]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Go
uses: actions/setup-go@v2
with:
go-version: 1.17.x
- name: Prepare
id: prep
run: |
echo ::set-output name=CLUSTER::arm64-${GITHUB_SHA:0:7}-$(date +%s)
echo ::set-output name=CONTEXT::kind-arm64-${GITHUB_SHA:0:7}-$(date +%s)
- name: Build
run: |
make build
- name: Setup Kubernetes Kind
run: |
kind create cluster --name ${{ steps.prep.outputs.CLUSTER }} --kubeconfig=/tmp/${{ steps.prep.outputs.CLUSTER }}
- name: Run e2e tests
run: TEST_KUBECONFIG=/tmp/${{ steps.prep.outputs.CLUSTER }} make e2e
- name: Cleanup
if: always()
run: |
kind delete cluster --name ${{ steps.prep.outputs.CLUSTER }}
rm /tmp/${{ steps.prep.outputs.CLUSTER }}

View File

@@ -3,64 +3,92 @@ name: e2e-azure
on:
workflow_dispatch:
schedule:
- cron: '0 6 * * *'
- cron: '0 6 * * *'
push:
branches: [ azure* ]
branches:
- main
paths:
- 'tests/**'
- '.github/workflows/e2e-azure.yaml'
pull_request:
branches:
- main
paths:
- 'tests/**'
- '.github/workflows/e2e-azure.yaml'
permissions:
contents: read
jobs:
e2e:
e2e-aks:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./tests/integration
if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]'
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Restore Go cache
uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go1.17-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go1.17-
- name: CheckoutD
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Go
uses: actions/setup-go@v2
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version: 1.17.x
- name: Install libgit2
run: |
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 648ACFD622F3D138
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0E98404D386FA1D9
echo "deb http://deb.debian.org/debian unstable main" | sudo tee -a /etc/apt/sources.list
echo "deb-src http://deb.debian.org/debian unstable main" | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install -y --allow-downgrades libgit2-dev/unstable zlib1g-dev/unstable libssh2-1-dev/unstable libpcre3-dev/unstable
go-version: 1.26.x
cache-dependency-path: tests/integration/go.sum
- name: Setup Terraform
uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2
- name: Setup Flux CLI
run: |
make build
mkdir -p $HOME/.local/bin
mv ./bin/flux $HOME/.local/bin
run: make build
working-directory: ./
- name: Setup SOPS
run: |
wget https://github.com/mozilla/sops/releases/download/v3.7.1/sops-v3.7.1.linux
chmod +x sops-v3.7.1.linux
mkdir -p $HOME/.local/bin
mv sops-v3.7.1.linux $HOME/.local/bin/sops
- name: Setup Terraform
uses: hashicorp/setup-terraform@v1
wget -O $HOME/.local/bin/sops https://github.com/mozilla/sops/releases/download/v$SOPS_VER/sops-v$SOPS_VER.linux
chmod +x $HOME/.local/bin/sops
env:
SOPS_VER: 3.7.1
- name: Authenticate to Azure
uses: Azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v1.4.6
with:
terraform_version: 1.0.7
terraform_wrapper: false
- name: Setup Azure CLI
creds: '{"clientId":"${{ secrets.ARM_CLIENT_ID }}","clientSecret":"${{ secrets.ARM_CLIENT_SECRET }}","subscriptionId":"${{ secrets.ARM_SUBSCRIPTION_ID }}","tenantId":"${{ secrets.ARM_TENANT_ID }}"}'
- name: Set dynamic variables in .env
run: |
curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash
cat > .env <<EOF
export TF_VAR_tags='{ "environment"="github", "ci"="true", "repo"="flux2", "createdat"="$(date -u +x%Y-%m-%d_%Hh%Mm%Ss)" }'
EOF
- name: Print .env for dynamic tag value reference
run: cat .env
- name: Run Azure e2e tests
env:
ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}
TF_VAR_azuredevops_org: ${{ secrets.TF_VAR_azuredevops_org }}
TF_VAR_azuredevops_pat: ${{ secrets.TF_VAR_azuredevops_pat }}
TF_VAR_azure_location: ${{ vars.TF_VAR_azure_location }}
GITREPO_SSH_CONTENTS: ${{ secrets.GIT_SSH_IDENTITY }}
GITREPO_SSH_PUB_CONTENTS: ${{ secrets.GIT_SSH_IDENTITY_PUB }}
run: |
echo $HOME
echo $PATH
ls $HOME/.local/bin
az login --service-principal -u ${ARM_CLIENT_ID} -p ${ARM_CLIENT_SECRET} -t ${ARM_TENANT_ID}
cd ./tests/azure
go test -v -coverprofile cover.out -timeout 60m .
source .env
mkdir -p ./build/ssh
cat <<EOF > build/ssh/key
$GITREPO_SSH_CONTENTS
EOF
export GITREPO_SSH_PATH=build/ssh/key
cat <<EOF > build/ssh/key.pub
$GITREPO_SSH_PUB_CONTENTS
EOF
export GITREPO_SSH_PUB_PATH=build/ssh/key.pub
make test-azure
- name: Ensure resource cleanup
if: ${{ always() }}
env:
ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }}
ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }}
ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }}
ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }}
TF_VAR_azuredevops_org: ${{ secrets.TF_VAR_azuredevops_org }}
TF_VAR_azuredevops_pat: ${{ secrets.TF_VAR_azuredevops_pat }}
TF_VAR_azure_location: ${{ vars.TF_VAR_azure_location }}
run: source .env && make destroy-azure

View File

@@ -1,40 +1,45 @@
name: bootstrap
name: e2e-bootstrap
on:
workflow_dispatch:
push:
branches: [ main ]
branches: [ 'main', 'release/**' ]
pull_request:
branches: [ main ]
branches: [ 'main', 'release/**' ]
paths-ignore: [ 'docs/**', 'rfcs/**' ]
permissions:
contents: read
jobs:
github:
e2e-boostrap-github:
runs-on: ubuntu-latest
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]'
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Restore Go cache
uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go1.17-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go1.17-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Go
uses: actions/setup-go@v2
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version: 1.17.x
go-version: 1.26.x
cache-dependency-path: |
**/go.sum
**/go.mod
- name: Setup Kubernetes
uses: engineerd/setup-kind@v0.5.0
uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # v1.14.0
with:
version: v0.11.1
image: kindest/node:v1.21.1@sha256:69860bda5563ac81e3c0057d654b5253219618a22ec3a346306239bba8cfa1a6
version: v0.30.0
cluster_name: kind
# The versions below should target the newest Kubernetes version
# Keep this up-to-date with https://endoflife.date/kubernetes
node_image: ghcr.io/fluxcd/kindest/node:v1.33.0-amd64
kubectl_version: v1.33.0
- name: Setup Kustomize
uses: fluxcd/pkg//actions/kustomize@main
uses: fluxcd/pkg/actions/kustomize@9a8c0edd5da84dc51a585738c67e3a3950d7fbf0 # main
- name: Setup yq
uses: fluxcd/pkg/actions/yq@9a8c0edd5da84dc51a585738c67e3a3950d7fbf0 # main
- name: Build
run: |
make cmd/flux/.manifests.done
go build -o /tmp/flux ./cmd/flux
run: make build-dev
- name: Set outputs
id: vars
run: |
@@ -43,21 +48,27 @@ jobs:
COMMIT_SHA=$(git rev-parse HEAD)
PSEUDO_RAND_SUFFIX=$(echo "${BRANCH_NAME}-${COMMIT_SHA}" | shasum | awk '{print $1}')
TEST_REPO_NAME="${REPOSITORY_NAME}-${PSEUDO_RAND_SUFFIX}"
echo "::set-output name=test_repo_name::$TEST_REPO_NAME"
echo "test_repo_name=$TEST_REPO_NAME" >> $GITHUB_OUTPUT
- name: bootstrap init
run: |
/tmp/flux bootstrap github --manifests ./manifests/install/ \
./bin/flux bootstrap github --manifests ./manifests/test/ \
--owner=fluxcd-testing \
--image-pull-secret=ghcr-auth \
--registry-creds=fluxcd:$GITHUB_TOKEN \
--repository=${{ steps.vars.outputs.test_repo_name }} \
--branch=main \
--path=test-cluster \
--team=team-z
env:
GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }}
- name: verify image pull secret
run: |
kubectl -n flux-system get secret ghcr-auth | grep dockerconfigjson
- name: bootstrap no-op
run: |
/tmp/flux bootstrap github --manifests ./manifests/install/ \
./bin/flux bootstrap github --manifests ./manifests/test/ \
--owner=fluxcd-testing \
--image-pull-secret=ghcr-auth \
--repository=${{ steps.vars.outputs.test_repo_name }} \
--branch=main \
--path=test-cluster \
@@ -67,7 +78,7 @@ jobs:
- name: bootstrap customize
run: |
make setup-bootstrap-patch
/tmp/flux bootstrap github --manifests ./manifests/install/ \
./bin/flux bootstrap github --manifests ./manifests/test/ \
--owner=fluxcd-testing \
--repository=${{ steps.vars.outputs.test_repo_name }} \
--branch=main \
@@ -80,56 +91,36 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }}
GITHUB_REPO_NAME: ${{ steps.vars.outputs.test_repo_name }}
GITHUB_ORG_NAME: fluxcd-testing
- name: libgit2
run: |
/tmp/flux create source git test-libgit2 \
--url=ssh://git@github.com/fluxcd-testing/${{ steps.vars.outputs.test_repo_name }} \
--git-implementation=libgit2 \
--secret-ref=flux-system \
--branch=main
- name: uninstall
run: |
/tmp/flux uninstall -s --keep-namespace
./bin/flux uninstall -s --keep-namespace
kubectl delete ns flux-system --timeout=10m --wait=true
- name: test image automation
run: |
make setup-image-automation
/tmp/flux bootstrap github --manifests ./manifests/install/ \
./bin/flux bootstrap github --manifests ./manifests/test/ \
--owner=fluxcd-testing \
--repository=${{ steps.vars.outputs.test_repo_name }} \
--branch=main \
--path=test-cluster \
--read-write-key
/tmp/flux reconcile image repository podinfo
/tmp/flux reconcile image update flux-system
/tmp/flux get images all
retries=10
count=0
ok=false
until ${ok}; do
/tmp/flux get image update flux-system | grep 'commit' && ok=true || ok=false
count=$(($count + 1))
if [[ ${count} -eq ${retries} ]]; then
echo "No more retries left"
exit 1
fi
sleep 6
/tmp/flux reconcile image update flux-system
done
./bin/flux reconcile image repository podinfo
./bin/flux reconcile image policy podinfo
./bin/flux reconcile image update flux-system
./bin/flux get images all
./bin/flux -n flux-system events --for ImageUpdateAutomation/flux-system
kubectl -n flux-system get -o yaml ImageUpdateAutomation flux-system
kubectl -n flux-system get -o yaml ImageUpdateAutomation flux-system | \
yq '.status.lastPushCommit | length > 1' | grep 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }}
GITHUB_REPO_NAME: ${{ steps.vars.outputs.test_repo_name }}
GITHUB_ORG_NAME: fluxcd-testing
- name: delete repository
if: ${{ always() }}
continue-on-error: true
run: |
curl \
-X DELETE \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: token ${GITHUB_TOKEN}" \
--fail --silent \
https://api.github.com/repos/fluxcd-testing/${{ steps.vars.outputs.test_repo_name }}
gh repo delete fluxcd-testing/${{ steps.vars.outputs.test_repo_name }} --yes
env:
GITHUB_TOKEN: ${{ secrets.GITPROVIDER_BOT_TOKEN }}
- name: Debug failure

104
.github/workflows/e2e-gcp.yaml vendored Normal file
View File

@@ -0,0 +1,104 @@
name: e2e-gcp
on:
workflow_dispatch:
schedule:
- cron: '0 6 * * *'
push:
branches:
- main
paths:
- 'tests/**'
- '.github/workflows/e2e-gcp.yaml'
pull_request:
branches:
- main
paths:
- 'tests/**'
- '.github/workflows/e2e-gcp.yaml'
permissions:
contents: read
jobs:
e2e-gcp:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./tests/integration
if: (github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository) && github.actor != 'dependabot[bot]'
steps:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Go
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version: 1.26.x
cache-dependency-path: tests/integration/go.sum
- name: Setup Terraform
uses: hashicorp/setup-terraform@b9cd54a3c349d3f38e8881555d616ced269862dd # v3.1.2
- name: Setup Flux CLI
run: make build
working-directory: ./
- name: Setup SOPS
run: |
mkdir -p $HOME/.local/bin
wget -O $HOME/.local/bin/sops https://github.com/mozilla/sops/releases/download/v$SOPS_VER/sops-v$SOPS_VER.linux
chmod +x $HOME/.local/bin/sops
env:
SOPS_VER: 3.7.1
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@7c6bc770dae815cd3e89ee6cdf493a5fab2cc093 # v3.0.0
id: 'auth'
with:
credentials_json: '${{ secrets.FLUX2_E2E_GOOGLE_CREDENTIALS }}'
token_format: 'access_token'
- name: Setup gcloud
uses: google-github-actions/setup-gcloud@aa5489c8933f4cc7a4f7d45035b3b1440c9c10db # v3.0.1
- name: Setup QEMU
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
- name: Log into us-central1-docker.pkg.dev
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
with:
registry: us-central1-docker.pkg.dev
username: oauth2accesstoken
password: ${{ steps.auth.outputs.access_token }}
- name: Set dynamic variables in .env
run: |
cat > .env <<EOF
export TF_VAR_tags='{ "environment"="github", "ci"="true", "repo"="flux2", "createdat"="$(date -u +x%Y-%m-%d_%Hh%Mm%Ss)" }'
EOF
- name: Print .env for dynamic tag value reference
run: cat .env
- name: Run GCP e2e tests
env:
TF_VAR_gcp_project_id: ${{ vars.TF_VAR_gcp_project_id }}
TF_VAR_gcp_region: ${{ vars.TF_VAR_gcp_region }}
TF_VAR_gcp_zone: ${{ vars.TF_VAR_gcp_zone }}
TF_VAR_gcp_email: ${{ secrets.TF_VAR_gcp_email }}
TF_VAR_gcp_keyring: ${{ secrets.TF_VAR_gcp_keyring }}
TF_VAR_gcp_crypto_key: ${{ secrets.TF_VAR_gcp_crypto_key }}
GITREPO_SSH_CONTENTS: ${{ secrets.GCP_GITREPO_SSH_CONTENTS }}
GITREPO_SSH_PUB_CONTENTS: ${{ secrets.GCP_GITREPO_SSH_PUB_CONTENTS }}
run: |
source .env
mkdir -p ./build/ssh
touch ./build/ssh/key
echo $GITREPO_SSH_CONTENTS | base64 -d > build/ssh/key
export GITREPO_SSH_PATH=build/ssh/key
touch ./build/ssh/key.pub
echo $GITREPO_SSH_PUB_CONTENTS | base64 -d > ./build/ssh/key.pub
export GITREPO_SSH_PUB_PATH=build/ssh/key.pub
make test-gcp
- name: Ensure resource cleanup
if: ${{ always() }}
env:
TF_VAR_gcp_project_id: ${{ vars.TF_VAR_gcp_project_id }}
TF_VAR_gcp_region: ${{ vars.TF_VAR_gcp_region }}
TF_VAR_gcp_zone: ${{ vars.TF_VAR_gcp_zone }}
TF_VAR_gcp_email: ${{ secrets.TF_VAR_gcp_email }}
TF_VAR_gcp_keyring: ${{ secrets.TF_VAR_gcp_keyring }}
TF_VAR_gcp_crypto_key: ${{ secrets.TF_VAR_gcp_crypto_key }}
run: source .env && make destroy-gcp

View File

@@ -1,40 +1,52 @@
name: e2e
on:
workflow_dispatch:
push:
branches: [ main, e2e* ]
branches: [ 'main', 'release/**' ]
pull_request:
branches: [ main ]
branches: [ 'main', 'release/**' ]
paths-ignore: [ 'docs/**', 'rfcs/**' ]
permissions:
contents: read
jobs:
kind:
runs-on: ubuntu-latest
e2e-amd64-kubernetes:
runs-on:
group: "Default Larger Runners"
labels: ubuntu-latest-16-cores
services:
registry:
image: registry:2
ports:
- 5000:5000
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Restore Go cache
uses: actions/cache@v1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go1.17-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go1.17-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Go
uses: actions/setup-go@v2
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version: 1.17.x
go-version: 1.26.x
cache-dependency-path: |
**/go.sum
**/go.mod
- name: Setup Kubernetes
uses: engineerd/setup-kind@v0.5.0
uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # v1.14.0
with:
version: v0.11.1
image: kindest/node:v1.20.7
version: v0.30.0
cluster_name: kind
wait: 5s
config: .github/kind/config.yaml # disable KIND-net
# The versions below should target the oldest supported Kubernetes version
# Keep this up-to-date with https://endoflife.date/kubernetes
node_image: ghcr.io/fluxcd/kindest/node:v1.33.0-amd64
kubectl_version: v1.33.0
- name: Setup Calico for network policy
run: |
kubectl apply -f https://docs.projectcalico.org/v3.20/manifests/calico.yaml
kubectl -n kube-system set env daemonset/calico-node FELIX_IGNORELOOSERPF=true
kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.27.3/manifests/calico.yaml
- name: Setup Kustomize
uses: fluxcd/pkg//actions/kustomize@main
uses: fluxcd/pkg/actions/kustomize@9a8c0edd5da84dc51a585738c67e3a3950d7fbf0 # main
- name: Run tests
run: make test
- name: Run e2e tests
@@ -47,51 +59,43 @@ jobs:
exit 1
fi
- name: Build
run: |
go build -o /tmp/flux ./cmd/flux
run: make build-dev
- name: flux check --pre
run: |
/tmp/flux check --pre
./bin/flux check --pre
- name: flux install --manifests
run: |
/tmp/flux install --manifests ./manifests/install/
./bin/flux install --manifests ./manifests/test/
- name: flux create secret
run: |
/tmp/flux create secret git git-ssh-test \
./bin/flux create secret git git-ssh-test \
--url ssh://git@github.com/stefanprodan/podinfo
/tmp/flux create secret git git-https-test \
./bin/flux create secret git git-https-test \
--url https://github.com/stefanprodan/podinfo \
--username=test --password=test
/tmp/flux create secret helm helm-test \
./bin/flux create secret helm helm-test \
--username=test --password=test
- name: flux create source git
run: |
/tmp/flux create source git podinfo \
./bin/flux create source git podinfo \
--url https://github.com/stefanprodan/podinfo \
--tag-semver=">=3.2.3"
--tag-semver=">=6.3.5"
- name: flux create source git export apply
run: |
/tmp/flux create source git podinfo-export \
./bin/flux create source git podinfo-export \
--url https://github.com/stefanprodan/podinfo \
--tag-semver=">=3.2.3" \
--tag-semver=">=6.3.5" \
--export | kubectl apply -f -
/tmp/flux delete source git podinfo-export --silent
- name: flux create source git libgit2 semver
run: |
/tmp/flux create source git podinfo-libgit2 \
--url https://github.com/stefanprodan/podinfo \
--tag-semver=">=3.2.3" \
--git-implementation=libgit2
/tmp/flux delete source git podinfo-libgit2 --silent
./bin/flux delete source git podinfo-export --silent
- name: flux get sources git
run: |
/tmp/flux get sources git
./bin/flux get sources git
- name: flux get sources git --all-namespaces
run: |
/tmp/flux get sources git --all-namespaces
./bin/flux get sources git --all-namespaces
- name: flux create kustomization
run: |
/tmp/flux create kustomization podinfo \
./bin/flux create kustomization podinfo \
--source=podinfo \
--path="./deploy/overlays/dev" \
--prune=true \
@@ -101,110 +105,152 @@ jobs:
--health-check-timeout=3m
- name: flux trace
run: |
/tmp/flux trace frontend \
./bin/flux trace frontend \
--kind=deployment \
--api-version=apps/v1 \
--namespace=dev
- name: flux reconcile kustomization --with-source
run: |
/tmp/flux reconcile kustomization podinfo --with-source
./bin/flux reconcile kustomization podinfo --with-source
- name: flux get kustomizations
run: |
/tmp/flux get kustomizations
./bin/flux get kustomizations
- name: flux get kustomizations --all-namespaces
run: |
/tmp/flux get kustomizations --all-namespaces
./bin/flux get kustomizations --all-namespaces
- name: flux suspend kustomization
run: |
/tmp/flux suspend kustomization podinfo
./bin/flux suspend kustomization podinfo
- name: flux resume kustomization
run: |
/tmp/flux resume kustomization podinfo
./bin/flux resume kustomization podinfo
- name: flux export
run: |
/tmp/flux export source git --all
/tmp/flux export kustomization --all
./bin/flux export source git --all
./bin/flux export kustomization --all
- name: flux delete kustomization
run: |
/tmp/flux delete kustomization podinfo --silent
./bin/flux delete kustomization podinfo --silent
- name: flux create source helm
run: |
/tmp/flux create source helm podinfo \
./bin/flux create source helm podinfo \
--url https://stefanprodan.github.io/podinfo
- name: flux create helmrelease --source=HelmRepository/podinfo
run: |
/tmp/flux create hr podinfo-helm \
./bin/flux create hr podinfo-helm \
--target-namespace=default \
--source=HelmRepository/podinfo.flux-system \
--chart=podinfo \
--chart-version=">4.0.0 <5.0.0"
--chart-version=">6.0.0 <7.0.0"
- name: flux create helmrelease --source=GitRepository/podinfo
run: |
/tmp/flux create hr podinfo-git \
./bin/flux create hr podinfo-git \
--target-namespace=default \
--source=GitRepository/podinfo \
--chart=./charts/podinfo
- name: flux reconcile helmrelease --with-source
run: |
/tmp/flux reconcile helmrelease podinfo-git --with-source
./bin/flux reconcile helmrelease podinfo-git --with-source
- name: flux get helmreleases
run: |
/tmp/flux get helmreleases
./bin/flux get helmreleases
- name: flux get helmreleases --all-namespaces
run: |
/tmp/flux get helmreleases --all-namespaces
./bin/flux get helmreleases --all-namespaces
- name: flux export helmrelease
run: |
/tmp/flux export hr --all
./bin/flux export hr --all
- name: flux delete helmrelease podinfo-helm
run: |
/tmp/flux delete hr podinfo-helm --silent
./bin/flux delete hr podinfo-helm --silent
- name: flux delete helmrelease podinfo-git
run: |
/tmp/flux delete hr podinfo-git --silent
./bin/flux delete hr podinfo-git --silent
- name: flux delete source helm
run: |
/tmp/flux delete source helm podinfo --silent
./bin/flux delete source helm podinfo --silent
- name: flux delete source git
run: |
/tmp/flux delete source git podinfo --silent
./bin/flux delete source git podinfo --silent
- name: flux oci artifacts
run: |
./bin/flux push artifact oci://localhost:5000/fluxcd/flux:${{ github.sha }} \
--path="./manifests" \
--source="${{ github.repositoryUrl }}" \
--revision="${{ github.ref }}@sha1:${{ github.sha }}"
./bin/flux tag artifact oci://localhost:5000/fluxcd/flux:${{ github.sha }} \
--tag latest
./bin/flux list artifacts oci://localhost:5000/fluxcd/flux
- name: flux oci repositories
run: |
./bin/flux create source oci podinfo-oci \
--url oci://ghcr.io/stefanprodan/manifests/podinfo \
--tag-semver 6.3.x \
--interval 10m
./bin/flux create kustomization podinfo-oci \
--source=OCIRepository/podinfo-oci \
--path="./" \
--prune=true \
--interval=5m \
--target-namespace=default \
--wait=true \
--health-check-timeout=3m
./bin/flux reconcile source oci podinfo-oci
./bin/flux suspend source oci podinfo-oci
./bin/flux get sources oci
./bin/flux resume source oci podinfo-oci
./bin/flux export source oci podinfo-oci
./bin/flux delete ks podinfo-oci --silent
./bin/flux delete source oci podinfo-oci --silent
- name: flux create tenant
run: |
/tmp/flux create tenant dev-team --with-namespace=apps
/tmp/flux -n apps create source helm podinfo \
./bin/flux create tenant dev-team --with-namespace=apps
./bin/flux -n apps create source helm podinfo \
--url https://stefanprodan.github.io/podinfo
/tmp/flux -n apps create hr podinfo-helm \
./bin/flux -n apps create hr podinfo-helm \
--source=HelmRepository/podinfo \
--chart=podinfo \
--chart-version="5.0.x" \
--chart-version="6.3.x" \
--service-account=dev-team
- name: flux2-kustomize-helm-example
run: |
/tmp/flux create source git flux-system \
./bin/flux create source git flux-system \
--url=https://github.com/fluxcd/flux2-kustomize-helm-example \
--branch=main \
--ignore-paths="./clusters/**/flux-system/" \
--recurse-submodules
/tmp/flux create kustomization flux-system \
./bin/flux create kustomization flux-system \
--source=flux-system \
--path=./clusters/staging
kubectl -n flux-system wait kustomization/infrastructure --for=condition=ready --timeout=5m
kubectl -n flux-system wait kustomization/infra-controllers --for=condition=ready --timeout=5m
kubectl -n flux-system wait kustomization/apps --for=condition=ready --timeout=5m
kubectl -n nginx wait helmrelease/nginx --for=condition=ready --timeout=5m
kubectl -n redis wait helmrelease/redis --for=condition=ready --timeout=5m
kubectl -n podinfo wait helmrelease/podinfo --for=condition=ready --timeout=5m
- name: flux tree
run: |
/tmp/flux tree kustomization flux-system | grep Service/podinfo
./bin/flux tree kustomization flux-system | grep Service/podinfo
- name: flux events
run: |
./bin/flux -n flux-system events --for Kustomization/apps | grep 'HelmRelease/podinfo'
./bin/flux -n podinfo events --for HelmRelease/podinfo | grep 'podinfo.v1'
- name: flux stats
run: |
./bin/flux stats -A
- name: flux check
run: |
/tmp/flux check
./bin/flux check
- name: flux migrate
run: |
./bin/flux migrate
- name: flux version
run: |
./bin/flux version
- name: flux uninstall
run: |
/tmp/flux uninstall --silent
./bin/flux uninstall --silent
- name: Debug failure
if: failure()
run: |
kubectl version --client --short
kubectl version --client
kubectl -n flux-system get all
kubectl -n flux-system describe pods
kubectl -n flux-system get kustomizations -oyaml

39
.github/workflows/ossf.yaml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: ossf
on:
workflow_dispatch:
push:
branches:
- main
schedule:
# Weekly on Saturdays.
- cron: '30 1 * * 6'
permissions: read-all
jobs:
scorecard:
runs-on: ubuntu-latest
permissions:
security-events: write
id-token: write
actions: read
contents: read
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Run analysis
uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
with:
results_file: results.sarif
results_format: sarif
repo_token: ${{ secrets.GITHUB_TOKEN }}
publish_results: true
- name: Upload artifact
uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
with:
name: SARIF file
path: results.sarif
retention-days: 5
- name: Upload SARIF results
uses: github/codeql-action/upload-sarif@89a39a4e59826350b863aa6b6252a07ad50cf83e # v4.32.4
with:
sarif_file: results.sarif

View File

@@ -1,21 +0,0 @@
name: rebase
on:
pull_request:
types: [ opened ]
issue_comment:
types: [ created ]
jobs:
rebase:
if: github.event.issue.pull_request != '' && contains(github.event.comment.body, '/rebase') && (github.event.comment.author_association == 'CONTRIBUTOR' || github.event.comment.author_association == 'MEMBER' || github.event.comment.author_association == 'OWNER')
runs-on: ubuntu-latest
steps:
- name: Checkout the latest code
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Automatic Rebase
uses: cirrus-actions/rebase@1.3.1
env:
GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }}

View File

@@ -2,44 +2,55 @@ name: release
on:
push:
tags: [ 'v*' ]
tags: ["v*"]
permissions:
contents: write # needed to write releases
id-token: write # needed for keyless signing
packages: write # needed for ghcr access
contents: read
jobs:
goreleaser:
runs-on: ubuntu-latest
release-flux-cli:
outputs:
hashes: ${{ steps.slsa.outputs.hashes }}
image_url: ${{ steps.slsa.outputs.image_url }}
image_digest: ${{ steps.slsa.outputs.image_digest }}
runs-on:
group: "Default Larger Runners"
labels: ubuntu-latest-16-cores
permissions:
contents: write # needed to write releases
id-token: write # needed for keyless signing
packages: write # needed for ghcr access
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Unshallow
run: git fetch --prune --unshallow
- name: Setup Go
uses: actions/setup-go@v2
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version: 1.17.x
go-version: 1.26.x
cache: false
- name: Setup QEMU
uses: docker/setup-qemu-action@v1
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
- name: Setup Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
- name: Setup Syft
uses: anchore/sbom-action/download-syft@v0
uses: anchore/sbom-action/download-syft@28d71544de8eaf1b958d335707167c5f783590ad # v0.22.2
- name: Setup Cosign
uses: sigstore/cosign-installer@main
uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
with:
cosign-release: v2.6.1 # TODO: remove after Flux 2.8 with support for cosign v3
- name: Setup Kustomize
uses: fluxcd/pkg//actions/kustomize@main
uses: fluxcd/pkg/actions/kustomize@9a8c0edd5da84dc51a585738c67e3a3950d7fbf0 # main
- name: Login to GitHub Container Registry
uses: docker/login-action@v1
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
with:
registry: ghcr.io
username: fluxcdbot
password: ${{ secrets.GHCR_TOKEN }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Docker Hub
uses: docker/login-action@v1
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
with:
username: fluxcdbot
password: ${{ secrets.DOCKER_FLUXCD_PASSWORD }}
@@ -51,33 +62,147 @@ jobs:
- name: Build CRDs
run: |
kustomize build manifests/crds > all-crds.yaml
# Pinned to commit before https://github.com/fluxcd/pkg/pull/189 due to
# introduction faulty behavior.
- name: Generate OpenAPI JSON schemas from CRDs
uses: fluxcd/pkg//actions/crdjsonschema@49e26aa2ee9e734c3233c560253fd9542afe18ae
uses: fluxcd/pkg/actions/crdjsonschema@9a8c0edd5da84dc51a585738c67e3a3950d7fbf0 # main
with:
crd: all-crds.yaml
output: schemas
- name: Archive the OpenAPI JSON schemas
run: |
tar -czvf ./output/crd-schemas.tar.gz -C schemas .
- name: Download release notes utility
env:
GH_REL_URL: https://github.com/buchanae/github-release-notes/releases/download/0.2.0/github-release-notes-linux-amd64-0.2.0.tar.gz
run: cd /tmp && curl -sSL ${GH_REL_URL} | tar xz && sudo mv github-release-notes /usr/local/bin/
- name: Generate release notes
run: |
NOTES="./output/notes.md"
echo '## CLI Changelog' > ${NOTES}
github-release-notes -org fluxcd -repo flux2 -since-latest-release -include-author >> ${NOTES}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v1
id: run-goreleaser
uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0
with:
version: latest
args: release --release-notes=output/notes.md --skip-validate
args: release --skip=validate
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }}
AUR_BOT_SSH_PRIVATE_KEY: ${{ secrets.AUR_BOT_SSH_PRIVATE_KEY }}
- name: Generate SLSA metadata
id: slsa
env:
ARTIFACTS: "${{ steps.run-goreleaser.outputs.artifacts }}"
run: |
set -euo pipefail
hashes=$(echo -E $ARTIFACTS | jq --raw-output '.[] | {name, "digest": (.extra.Digest // .extra.Checksum)} | select(.digest) | {digest} + {name} | join(" ") | sub("^sha256:";"")' | base64 -w0)
echo "hashes=$hashes" >> $GITHUB_OUTPUT
image_url=fluxcd/flux-cli:$GITHUB_REF_NAME
echo "image_url=$image_url" >> $GITHUB_OUTPUT
image_digest=$(docker buildx imagetools inspect ${image_url} --format '{{json .}}' | jq -r .manifest.digest)
echo "image_digest=$image_digest" >> $GITHUB_OUTPUT
release-flux-manifests:
runs-on: ubuntu-latest
needs: release-flux-cli
permissions:
id-token: write
packages: write
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Kustomize
uses: fluxcd/pkg/actions/kustomize@9a8c0edd5da84dc51a585738c67e3a3950d7fbf0 # main
- name: Setup Flux CLI
uses: ./action/
with:
token: ${{ secrets.GITHUB_TOKEN }}
- name: Prepare
id: prep
run: |
VERSION=$(flux version --client | awk '{ print $NF }')
echo "version=${VERSION}" >> $GITHUB_OUTPUT
- name: Login to GHCR
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
with:
registry: ghcr.io
username: fluxcdbot
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to DockerHub
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
with:
username: fluxcdbot
password: ${{ secrets.DOCKER_FLUXCD_PASSWORD }}
- name: Push manifests to GHCR
run: |
mkdir -p ./ghcr.io/flux-system
flux install --registry=ghcr.io/fluxcd \
--components-extra=image-reflector-controller,image-automation-controller \
--export > ./ghcr.io/flux-system/gotk-components.yaml
cd ./ghcr.io && flux push artifact \
oci://ghcr.io/fluxcd/flux-manifests:${{ steps.prep.outputs.version }} \
--path="./flux-system" \
--source=${{ github.repositoryUrl }} \
--revision="${{ github.ref_name }}@sha1:${{ github.sha }}"
- name: Push manifests to DockerHub
run: |
mkdir -p ./docker.io/flux-system
flux install --registry=docker.io/fluxcd \
--components-extra=image-reflector-controller,image-automation-controller \
--export > ./docker.io/flux-system/gotk-components.yaml
cd ./docker.io && flux push artifact \
oci://docker.io/fluxcd/flux-manifests:${{ steps.prep.outputs.version }} \
--path="./flux-system" \
--source=${{ github.repositoryUrl }} \
--revision="${{ github.ref_name }}@sha1:${{ github.sha }}"
- uses: sigstore/cosign-installer@faadad0cce49287aee09b3a48701e75088a2c6ad # v4.0.0
with:
cosign-release: v2.6.1 # TODO: remove after Flux 2.8 with support for cosign v3
- name: Sign manifests
env:
COSIGN_EXPERIMENTAL: 1
run: |
cosign sign --yes ghcr.io/fluxcd/flux-manifests:${{ steps.prep.outputs.version }}
cosign sign --yes docker.io/fluxcd/flux-manifests:${{ steps.prep.outputs.version }}
- name: Tag manifests
run: |
flux tag artifact oci://ghcr.io/fluxcd/flux-manifests:${{ steps.prep.outputs.version }} \
--tag latest
flux tag artifact oci://docker.io/fluxcd/flux-manifests:${{ steps.prep.outputs.version }} \
--tag latest
release-provenance:
needs: [release-flux-cli]
permissions:
actions: read # for detecting the Github Actions environment.
id-token: write # for creating OIDC tokens for signing.
contents: write # for uploading attestations to GitHub releases.
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.1.0
with:
provenance-name: "provenance.intoto.jsonl"
base64-subjects: "${{ needs.release-flux-cli.outputs.hashes }}"
upload-assets: true
dockerhub-provenance:
needs: [release-flux-cli]
permissions:
actions: read # for detecting the Github Actions environment.
id-token: write # for creating OIDC tokens for signing.
packages: write # for uploading attestations.
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_container_slsa3.yml@v2.1.0
with:
image: ${{ needs.release-flux-cli.outputs.image_url }}
digest: ${{ needs.release-flux-cli.outputs.image_digest }}
registry-username: fluxcdbot
secrets:
registry-password: ${{ secrets.DOCKER_FLUXCD_PASSWORD }}
ghcr-provenance:
needs: [release-flux-cli]
permissions:
actions: read # for detecting the Github Actions environment.
id-token: write # for creating OIDC tokens for signing.
packages: write # for uploading attestations.
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_container_slsa3.yml@v2.1.0
with:
image: ghcr.io/${{ needs.release-flux-cli.outputs.image_url }}
digest: ${{ needs.release-flux-cli.outputs.image_digest }}
registry-username: fluxcdbot
secrets:
registry-password: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,60 +1,19 @@
name: Scan
name: scan
on:
workflow_dispatch:
push:
branches: [ main ]
branches: [ 'main', 'release/**' ]
pull_request:
branches: [ main ]
branches: [ 'main', 'release/**' ]
schedule:
- cron: '18 10 * * 3'
permissions: read-all
jobs:
fossa:
name: FOSSA
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Run FOSSA scan and upload build data
uses: fossa-contrib/fossa-action@v1
with:
# FOSSA Push-Only API Token
fossa-api-key: 5ee8bf422db1471e0bcf2bcb289185de
github-token: ${{ github.token }}
snyk:
name: Snyk
runs-on: ubuntu-latest
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository
steps:
- uses: actions/checkout@v2
- name: Setup Kustomize
uses: fluxcd/pkg//actions/kustomize@main
- name: Build manifests
run: |
make cmd/flux/.manifests.done
- name: Run Snyk to check for vulnerabilities
uses: snyk/actions/golang@master
continue-on-error: true
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
with:
args: --sarif-file-output=snyk.sarif
- name: Upload result to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@v1
with:
sarif_file: snyk.sarif
codeql:
name: CodeQL
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: go
- name: Autobuild
uses: github/codeql-action/autobuild@v1
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
analyze:
permissions:
contents: read # for reading the repository code.
security-events: write # for uploading the CodeQL analysis results.
uses: fluxcd/gha-workflows/.github/workflows/code-scan.yaml@v0.9.0
secrets:
github-token: ${{ secrets.GITHUB_TOKEN }}
fossa-token: ${{ secrets.FOSSA_TOKEN }}

17
.github/workflows/sync-labels.yaml vendored Normal file
View File

@@ -0,0 +1,17 @@
name: sync-labels
on:
workflow_dispatch:
push:
branches:
- main
paths:
- .github/labels.yaml
permissions: read-all
jobs:
sync-labels:
permissions:
contents: read # for reading the labels file.
issues: write # for creating and updating labels.
uses: fluxcd/gha-workflows/.github/workflows/labels-sync.yaml@v0.9.0
secrets:
github-token: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,32 +1,52 @@
name: Update Components
name: update
on:
workflow_dispatch:
schedule:
- cron: "0 * * * *"
push:
branches: [main]
permissions:
contents: read
jobs:
update-components:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Check out code
uses: actions/checkout@v2
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- name: Setup Go
uses: actions/setup-go@v2
uses: actions/setup-go@7a3fe6cf4cb3a834922a1244abfce67bcef6a0c5 # v6.2.0
with:
go-version: 1.17.x
go-version: 1.26.x
cache-dependency-path: |
**/go.sum
**/go.mod
- name: Update component versions
id: update
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
PR_BODY=""
PR_BODY=$(mktemp)
bump_version() {
local LATEST_VERSION=$(curl -s https://api.github.com/repos/fluxcd/$1/releases | jq -r 'sort_by(.published_at) | .[-1] | .tag_name')
local LATEST_VERSION=$(curl -s -H "Authorization: token ${GITHUB_TOKEN}" https://api.github.com/repos/fluxcd/$1/releases | jq -r 'sort_by(.published_at) | .[-1] | .tag_name')
if [[ "$LATEST_VERSION" == *"-rc"* ]]; then
echo "Skipping release candidate version for $1: $LATEST_VERSION"
return
fi
local CTRL_VERSION=$(sed -n "s/.*$1\/releases\/download\/\(.*\)\/.*/\1/p;n" manifests/bases/$1/kustomization.yaml)
local CRD_VERSION=$(sed -n "s/.*$1\/releases\/download\/\(.*\)\/.*/\1/p" manifests/crds/kustomization.yaml)
local MOD_VERSION=$(go list -m -f '{{ .Version }}' "github.com/fluxcd/$1/api")
local API_PKG="github.com/fluxcd/$1/api"
if [[ "$1" == "source-watcher" ]]; then
API_PKG="github.com/fluxcd/$1/api/v2"
fi
local MOD_VERSION=$(go list -m -f '{{ .Version }}' "$API_PKG")
local changed=false
@@ -41,14 +61,14 @@ jobs:
fi
if [[ "${MOD_VERSION}" != "${LATEST_VERSION}" ]]; then
go mod edit -require="github.com/fluxcd/$1/api@${LATEST_VERSION}"
rm go.sum
go mod tidy
go mod edit -require="$API_PKG@${LATEST_VERSION}"
make tidy
changed=true
fi
if [[ "$changed" == true ]]; then
PR_BODY="$PR_BODY- $1 to ${LATEST_VERSION}%0A https://github.com/fluxcd/$1/blob/${LATEST_VERSION}/CHANGELOG.md%0A"
echo "- $1 to ${LATEST_VERSION}" >> $PR_BODY
echo " https://github.com/fluxcd/$1/blob/${LATEST_VERSION}/CHANGELOG.md" >> $PR_BODY
fi
}
@@ -60,17 +80,23 @@ jobs:
bump_version notification-controller
bump_version image-reflector-controller
bump_version image-automation-controller
bump_version source-watcher
# diff change
git diff
# export PR_BODY for PR and commit
echo "::set-output name=pr_body::$PR_BODY"
# NB: this may look strange but it is the way it should be done to
# maintain our precious newlines
# Ref: https://github.com/github/docs/issues/21529
echo 'pr_body<<EOF' >> $GITHUB_OUTPUT
cat $PR_BODY >> $GITHUB_OUTPUT
echo 'EOF' >> $GITHUB_OUTPUT
}
- name: Create Pull Request
id: cpr
uses: peter-evans/create-pull-request@v3
uses: peter-evans/create-pull-request@c0f553fe549906ede9cf27b5156039d195d2ece0 # v8.1.0
with:
token: ${{ secrets.BOT_GITHUB_TOKEN }}
commit-message: |
@@ -85,7 +111,7 @@ jobs:
body: |
${{ steps.update.outputs.pr_body }}
labels: |
area/build
dependencies
reviewers: ${{ secrets.ASSIGNEES }}
- name: Check output

View File

@@ -0,0 +1,10 @@
name: upgrade-fluxcd-pkg
on:
workflow_dispatch:
jobs:
upgrade-fluxcd-pkg:
uses: fluxcd/gha-workflows/.github/workflows/upgrade-fluxcd-pkg.yaml@v0.9.0
secrets:
github-token: ${{ secrets.BOT_GITHUB_TOKEN }}

View File

@@ -1,4 +1,6 @@
project_name: flux
changelog:
use: github-native
builds:
- <<: &build_defaults
binary: flux
@@ -15,7 +17,7 @@ builds:
- arm64
- arm
goarm:
- 7
- "7"
- <<: *build_defaults
id: darwin
goos:
@@ -65,6 +67,7 @@ signs:
certificate: '${artifact}.pem'
args:
- sign-blob
- "--yes"
- '--output-certificate=${certificate}'
- '--output-signature=${signature}'
- '${artifact}'
@@ -72,42 +75,19 @@ signs:
output: true
brews:
- name: flux
tap:
repository:
owner: fluxcd
name: homebrew-tap
token: "{{ .Env.HOMEBREW_TAP_GITHUB_TOKEN }}"
folder: Formula
directory: Formula
homepage: "https://fluxcd.io/"
description: "Flux CLI"
install: |
bin.install "flux"
bash_output = Utils.safe_popen_read(bin/"flux", "completion", "bash")
(bash_completion/"flux").write bash_output
zsh_output = Utils.safe_popen_read(bin/"flux", "completion", "zsh")
(zsh_completion/"_flux").write zsh_output
fish_output = Utils.safe_popen_read(bin/"flux", "completion", "fish")
(fish_completion/"flux.fish").write fish_output
generate_completions_from_executable(bin/"flux", "completion")
test: |
system "#{bin}/flux --version"
publishers:
- name: aur-pkg-bin
env:
- AUR_BOT_SSH_PRIVATE_KEY={{ .Env.AUR_BOT_SSH_PRIVATE_KEY }}
cmd: |
.github/aur/flux-bin/publish.sh {{ .Version }}
- name: aur-pkg-scm
env:
- AUR_BOT_SSH_PRIVATE_KEY={{ .Env.AUR_BOT_SSH_PRIVATE_KEY }}
cmd: |
.github/aur/flux-scm/publish.sh {{ .Version }}
- name: aur-pkg-go
env:
- AUR_BOT_SSH_PRIVATE_KEY={{ .Env.AUR_BOT_SSH_PRIVATE_KEY }}
cmd: |
.github/aur/flux-go/publish.sh {{ .Version }}
dockers:
- image_templates:
- 'fluxcd/flux-cli:{{ .Tag }}-amd64'
@@ -175,6 +155,7 @@ docker_signs:
- COSIGN_EXPERIMENTAL=1
args:
- sign
- "--yes"
- '${artifact}'
artifacts: all
output: true

5
.scorecard.yml Normal file
View File

@@ -0,0 +1,5 @@
annotations:
- checks:
- dangerous-workflow
reasons:
- reason: not-applicable # This workflow does not run untrusted code, the bot will only backport a code if the a PR was approved and merged into main.

View File

@@ -49,7 +49,8 @@ you might want to take a look at the [introductory talk and demo](https://www.yo
This project is composed of:
- [flux2](https://github.com/fluxcd/flux2): The Flux CLI
- [source-manager](https://github.com/fluxcd/source-controller): Kubernetes operator for managing sources (Git and Helm repositories, S3-compatible Buckets)
- [source-controller](https://github.com/fluxcd/source-controller): Kubernetes operator for managing sources (Git, OCI and Helm repositories, S3-compatible Buckets)
- [source-watcher](https://github.com/fluxcd/source-watcher): Kubernetes operator for advanced source composition and decomposition patterns
- [kustomize-controller](https://github.com/fluxcd/kustomize-controller): Kubernetes operator for building GitOps pipelines with Kustomize
- [helm-controller](https://github.com/fluxcd/helm-controller): Kubernetes operator for building GitOps pipelines with Helm
- [notification-controller](https://github.com/fluxcd/notification-controller): Kubernetes operator for handling inbound and outbound events
@@ -59,7 +60,7 @@ This project is composed of:
### Understanding the code
To get started with developing controllers, you might want to review
[our guide](https://fluxcd.io/docs/gitops-toolkit/source-watcher/) which
[our guide](https://fluxcd.io/flux/gitops-toolkit/source-watcher/) which
walks you through writing a short and concise controller that watches out
for source changes.
@@ -67,9 +68,9 @@ for source changes.
Prerequisites:
* go >= 1.17
* kubectl >= 1.20
* kustomize >= 4.4
* go >= 1.26
* kubectl >= 1.33
* kustomize >= 5.0
Install the [controller-runtime/envtest](https://github.com/kubernetes-sigs/controller-runtime/tree/master/tools/setup-envtest) binaries with:
@@ -96,6 +97,25 @@ Then you can run the end-to-end tests with:
make e2e
```
When the output of the Flux CLI changes, to automatically update the golden
files used in the test, pass `-update` flag to the test as:
```bash
make e2e TEST_ARGS="-update"
```
Since not all packages use golden files for testing, `-update` argument must be
passed only for the packages that use golden files. Use the variables
`TEST_PKG_PATH` for unit tests and `E2E_TEST_PKG_PATH` for e2e tests, to set the
path of the target test package:
```bash
# Unit test
make test TEST_PKG_PATH="./cmd/flux" TEST_ARGS="-update"
# e2e test
make e2e E2E_TEST_PKG_PATH="./cmd/flux" TEST_ARGS="-update"
```
Teardown the e2e environment with:
```bash

View File

@@ -1,19 +1,16 @@
FROM alpine:3.15 as builder
FROM alpine:3.23 AS builder
RUN apk add --no-cache ca-certificates curl
ARG ARCH=linux/amd64
ARG KUBECTL_VER=1.23.1
ARG KUBECTL_VER=1.35.0
RUN curl -sL https://storage.googleapis.com/kubernetes-release/release/v${KUBECTL_VER}/bin/${ARCH}/kubectl \
-o /usr/local/bin/kubectl && chmod +x /usr/local/bin/kubectl && \
kubectl version --client=true
RUN curl -sL https://dl.k8s.io/release/v${KUBECTL_VER}/bin/${ARCH}/kubectl \
-o /usr/local/bin/kubectl && chmod +x /usr/local/bin/kubectl
FROM alpine:3.15 as flux-cli
RUN kubectl version --client=true
# Create minimal nsswitch.conf file to prioritize the usage of /etc/hosts over DNS queries.
# https://github.com/gliderlabs/docker-alpine/issues/367#issuecomment-354316460
RUN [ ! -e /etc/nsswitch.conf ] && echo 'hosts: files dns' > /etc/nsswitch.conf
FROM alpine:3.23 AS flux-cli
RUN apk add --no-cache ca-certificates

View File

@@ -2,19 +2,7 @@ The maintainers are generally available in Slack at
https://cloud-native.slack.com in #flux (https://cloud-native.slack.com/messages/CLAJ40HV3)
(obtain an invitation at https://slack.cncf.io/).
These maintainers are shared with other Flux v2-related git
repositories under https://github.com/fluxcd, as noted in their
respective MAINTAINERS files.
The Flux2 maintainers team is identical with the core maintainers of the project
as listed in
For convenience, they are reflected in the GitHub team
@fluxcd/flux2-maintainers -- if the list here changes, that team also
should.
In alphabetical order:
Aurel Canciu, NexHealth <aurel.canciu@nexhealth.com> (github: @relu, slack: relu)
Hidde Beydals, Weaveworks <hidde@weave.works> (github: @hiddeco, slack: hidde)
Max Jonas Werner, D2iQ <max@e13.dev> (github: @makkes, slack: max)
Philip Laine, Xenit <philip.laine@xenit.se> (github: @phillebaba, slack: phillebaba)
Stefan Prodan, Weaveworks <stefan@weave.works> (github: @stefanprodan, slack: stefanprodan)
Sunny, Weaveworks <sunny@weave.works> (github: @darkowlzz, slack: darkowlzz)
https://github.com/fluxcd/community/blob/main/CORE-MAINTAINERS

View File

@@ -1,4 +1,5 @@
VERSION?=$(shell grep 'VERSION' cmd/flux/main.go | awk '{ print $$4 }' | head -n 1 | tr -d '"')
DEV_VERSION?=0.0.0-$(shell git rev-parse --abbrev-ref HEAD)-$(shell git rev-parse --short HEAD)-$(shell date +%s)
EMBEDDED_MANIFESTS_TARGET=cmd/flux/.manifests.done
TEST_KUBECONFIG?=/tmp/flux-e2e-test-kubeconfig
# Architecture to use envtest with
@@ -16,8 +17,8 @@ rwildcard=$(foreach d,$(wildcard $(addsuffix *,$(1))),$(call rwildcard,$(d)/,$(2
all: test build
tidy:
go mod tidy
cd tests/azure && go mod tidy
go mod tidy -compat=1.26
cd tests/integration && go mod tidy -compat=1.26
fmt:
go fmt ./...
@@ -35,11 +36,13 @@ cleanup-kind:
rm $(TEST_KUBECONFIG)
KUBEBUILDER_ASSETS?="$(shell $(ENVTEST) --arch=$(ENVTEST_ARCH) use -i $(ENVTEST_KUBERNETES_VERSION) --bin-dir=$(ENVTEST_ASSETS_DIR) -p path)"
TEST_PKG_PATH="./..."
test: $(EMBEDDED_MANIFESTS_TARGET) tidy fmt vet install-envtest
KUBEBUILDER_ASSETS="$(KUBEBUILDER_ASSETS)" go test ./... -coverprofile cover.out --tags=unit
KUBEBUILDER_ASSETS="$(KUBEBUILDER_ASSETS)" go test $(TEST_PKG_PATH) -coverprofile cover.out --tags=unit $(TEST_ARGS)
E2E_TEST_PKG_PATH="./cmd/flux/..."
e2e: $(EMBEDDED_MANIFESTS_TARGET) tidy fmt vet
TEST_KUBECONFIG=$(TEST_KUBECONFIG) go test ./cmd/flux/... -coverprofile e2e.cover.out --tags=e2e -v -failfast
TEST_KUBECONFIG=$(TEST_KUBECONFIG) go test $(E2E_TEST_PKG_PATH) -coverprofile e2e.cover.out --tags=e2e -v -failfast $(TEST_ARGS)
test-with-kind: install-envtest
make setup-kind
@@ -53,6 +56,9 @@ $(EMBEDDED_MANIFESTS_TARGET): $(call rwildcard,manifests/,*.yaml *.json)
build: $(EMBEDDED_MANIFESTS_TARGET)
CGO_ENABLED=0 go build -ldflags="-s -w -X main.VERSION=$(VERSION)" -o ./bin/flux ./cmd/flux
build-dev: $(EMBEDDED_MANIFESTS_TARGET)
CGO_ENABLED=0 go build -ldflags="-s -w -X main.VERSION=$(DEV_VERSION)" -o ./bin/flux ./cmd/flux
.PHONY: install
install:
CGO_ENABLED=0 go install ./cmd/flux

View File

@@ -1,14 +1,15 @@
# Flux version 2
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/4782/badge)](https://bestpractices.coreinfrastructure.org/projects/4782)
[![e2e](https://github.com/fluxcd/flux2/workflows/e2e/badge.svg)](https://github.com/fluxcd/flux2/actions)
[![report](https://goreportcard.com/badge/github.com/fluxcd/flux2)](https://goreportcard.com/report/github.com/fluxcd/flux2)
[![license](https://img.shields.io/github/license/fluxcd/flux2.svg)](https://github.com/fluxcd/flux2/blob/main/LICENSE)
[![release](https://img.shields.io/github/release/fluxcd/flux2/all.svg)](https://github.com/fluxcd/flux2/releases)
[![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/4782/badge)](https://bestpractices.coreinfrastructure.org/projects/4782)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/fluxcd/flux2/badge)](https://scorecard.dev/viewer/?uri=github.com/fluxcd/flux2)
[![FOSSA Status](https://app.fossa.com/api/projects/custom%2B162%2Fgithub.com%2Ffluxcd%2Fflux2.svg?type=shield)](https://app.fossa.com/projects/custom%2B162%2Fgithub.com%2Ffluxcd%2Fflux2?ref=badge_shield)
[![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/flux2)](https://artifacthub.io/packages/helm/fluxcd-community/flux2)
[![SLSA 3](https://slsa.dev/images/gh-badge-level3.svg)](https://fluxcd.io/flux/security/slsa-assessment)
Flux is a tool for keeping Kubernetes clusters in sync with sources of
configuration (like Git repositories), and automating updates to
configuration when there is new code to deploy.
configuration (like Git repositories and OCI artifacts),
and automating updates to configuration when there is new code to deploy.
Flux version 2 ("v2") is built from the ground up to use Kubernetes'
API extension system, and to integrate with Prometheus and other core
@@ -20,18 +21,19 @@ Flux v2 is constructed with the [GitOps Toolkit](#gitops-toolkit), a
set of composable APIs and specialized tools for building Continuous
Delivery on top of Kubernetes.
Flux is a Cloud Native Computing Foundation ([CNCF](https://www.cncf.io/)) project.
Flux is a Cloud Native Computing Foundation ([CNCF](https://www.cncf.io/)) graduated project, used in
production by various [organisations](https://fluxcd.io/adopters) and [cloud providers](https://fluxcd.io/ecosystem).
## Quickstart and documentation
To get started check out this [guide](https://fluxcd.io/docs/get-started/)
To get started check out this [guide](https://fluxcd.io/flux/get-started/)
on how to bootstrap Flux on Kubernetes and deploy a sample application in a GitOps manner.
For more comprehensive documentation, see the following guides:
- [Ways of structuring your repositories](https://fluxcd.io/docs/guides/repository-structure/)
- [Manage Helm Releases](https://fluxcd.io/docs/guides/helmreleases/)
- [Automate image updates to Git](https://fluxcd.io/docs/guides/image-update/)
- [Manage Kubernetes secrets with Mozilla SOPS](https://fluxcd.io/docs/guides/mozilla-sops/)
- [Ways of structuring your repositories](https://fluxcd.io/flux/guides/repository-structure/)
- [Manage Helm Releases](https://fluxcd.io/flux/guides/helmreleases/)
- [Automate image updates to Git](https://fluxcd.io/flux/guides/image-update/)
- [Manage Kubernetes secrets with Flux and SOPS](https://fluxcd.io/flux/guides/mozilla-sops/)
If you need help, please refer to our **[Support page](https://fluxcd.io/support/)**.
@@ -42,50 +44,54 @@ runtime for Flux v2. The APIs comprise Kubernetes custom resources,
which can be created and updated by a cluster user, or by other
automation tooling.
![overview](docs/_files/gitops-toolkit.png)
![overview](https://raw.githubusercontent.com/fluxcd/flux2/main/docs/diagrams/fluxcd-controllers.png)
You can use the toolkit to extend Flux, or to build your own systems
for continuous delivery -- see [the developer
guides](https://fluxcd.io/docs/gitops-toolkit/source-watcher/).
guides](https://fluxcd.io/flux/gitops-toolkit/source-watcher/).
### Components
- [Source Controller](https://fluxcd.io/docs/components/source/)
- [GitRepository CRD](https://fluxcd.io/docs/components/source/gitrepositories/)
- [HelmRepository CRD](https://fluxcd.io/docs/components/source/helmrepositories/)
- [HelmChart CRD](https://fluxcd.io/docs/components/source/helmcharts/)
- [Bucket CRD](https://fluxcd.io/docs/components/source/buckets/)
- [Kustomize Controller](https://fluxcd.io/docs/components/kustomize/)
- [Kustomization CRD](https://fluxcd.io/docs/components/kustomize/kustomization/)
- [Helm Controller](https://fluxcd.io/docs/components/helm/)
- [HelmRelease CRD](https://fluxcd.io/docs/components/helm/helmreleases/)
- [Notification Controller](https://fluxcd.io/docs/components/notification/)
- [Provider CRD](https://fluxcd.io/docs/components/notification/provider/)
- [Alert CRD](https://fluxcd.io/docs/components/notification/alert/)
- [Receiver CRD](https://fluxcd.io/docs/components/notification/receiver/)
- [Image Automation Controllers](https://fluxcd.io/docs/components/image/)
- [ImageRepository CRD](https://fluxcd.io/docs/components/image/imagerepositories/)
- [ImagePolicy CRD](https://fluxcd.io/docs/components/image/imagepolicies/)
- [ImageUpdateAutomation CRD](https://fluxcd.io/docs/components/image/imageupdateautomations/)
- [Source Controllers](https://fluxcd.io/flux/components/source/)
- [GitRepository CRD](https://fluxcd.io/flux/components/source/gitrepositories/)
- [OCIRepository CRD](https://fluxcd.io/flux/components/source/ocirepositories/)
- [HelmRepository CRD](https://fluxcd.io/flux/components/source/helmrepositories/)
- [HelmChart CRD](https://fluxcd.io/flux/components/source/helmcharts/)
- [Bucket CRD](https://fluxcd.io/flux/components/source/buckets/)
- [ExternalArtifact CRD](https://fluxcd.io/flux/components/source/externalartifacts/)
- [ArtifactGenerator CRD](https://fluxcd.io/flux/components/source/artifactgenerators/)
- [Kustomize Controller](https://fluxcd.io/flux/components/kustomize/)
- [Kustomization CRD](https://fluxcd.io/flux/components/kustomize/kustomizations/)
- [Helm Controller](https://fluxcd.io/flux/components/helm/)
- [HelmRelease CRD](https://fluxcd.io/flux/components/helm/helmreleases/)
- [Notification Controller](https://fluxcd.io/flux/components/notification/)
- [Provider CRD](https://fluxcd.io/flux/components/notification/providers/)
- [Alert CRD](https://fluxcd.io/flux/components/notification/alerts/)
- [Receiver CRD](https://fluxcd.io/flux/components/notification/receivers/)
- [Image Automation Controllers](https://fluxcd.io/flux/components/image/)
- [ImageRepository CRD](https://fluxcd.io/flux/components/image/imagerepositories/)
- [ImagePolicy CRD](https://fluxcd.io/flux/components/image/imagepolicies/)
- [ImageUpdateAutomation CRD](https://fluxcd.io/flux/components/image/imageupdateautomations/)
## Community
Need help or want to contribute? Please see the links below. The Flux project is always looking for
new contributors and there are a multitude of ways to get involved.
- Getting Started?
- Look at our [Get Started guide](https://fluxcd.io/docs/get-started/) and give us feedback
- Look at our [Get Started guide](https://fluxcd.io/flux/get-started/) and give us feedback
- Need help?
- First: Ask questions on our [GH Discussions page](https://github.com/fluxcd/flux2/discussions)
- Second: Talk to us in the #flux channel on [CNCF Slack](https://slack.cncf.io/)
- First: Ask questions on our [GH Discussions page](https://github.com/fluxcd/flux2/discussions).
- Second: Talk to us in the #flux channel on [CNCF Slack](https://slack.cncf.io/).
- Please follow our [Support Guidelines](https://fluxcd.io/support/)
(in short: be nice, be respectful of volunteers' time, understand that maintainers and
contributors cannot respond to all DMs, and keep discussions in the public #flux channel as much as possible).
- Have feature proposals or want to contribute?
- Propose features on our [GH Discussions page](https://github.com/fluxcd/flux2/discussions)
- Join our upcoming dev meetings ([meeting access and agenda](https://docs.google.com/document/d/1l_M0om0qUEN_NNiGgpqJ2tvsF2iioHkaARDeh6b70B0/view))
- Propose features on our [GitHub Discussions page](https://github.com/fluxcd/flux2/discussions).
- Join our upcoming dev meetings ([meeting access and agenda](https://docs.google.com/document/d/1l_M0om0qUEN_NNiGgpqJ2tvsF2iioHkaARDeh6b70B0/view)).
- [Join the flux-dev mailing list](https://lists.cncf.io/g/cncf-flux-dev).
- Check out [how to contribute](CONTRIBUTING.md) to the project
- Check out [how to contribute](CONTRIBUTING.md) to the project.
- Check out the [project roadmap](https://fluxcd.io/roadmap/).
### Events

View File

@@ -1,104 +1,22 @@
# Flux GitHub Action
Usage:
To install the latest Flux CLI on Linux, macOS or Windows GitHub runners:
```yaml
steps:
- name: Setup Flux CLI
uses: fluxcd/flux2/action@main
- name: Run Flux commands
run: flux -v
steps:
- name: Setup Flux CLI
uses: fluxcd/flux2/action@main
with:
version: 'latest'
- name: Run Flux CLI
run: flux version --client
```
The latest stable version of the `flux` binary is downloaded from
GitHub [releases](https://github.com/fluxcd/flux2/releases)
and placed at `/usr/local/bin/flux`.
The Flux GitHub Action can be used to automate various tasks in CI, such as:
Note that this action can only be used on GitHub **Linux** runners.
You can change the arch (defaults to `amd64`) with:
- [Automate Flux upgrades on clusters via Pull Requests](https://fluxcd.io/flux/flux-gh-action/#automate-flux-updates)
- [Push Kubernetes manifests to container registries](https://fluxcd.io/flux/flux-gh-action/#push-kubernetes-manifests-to-container-registries)
- [Run end-to-end testing with Flux and Kubernetes Kind](https://fluxcd.io/flux/flux-gh-action/#end-to-end-testing)
```yaml
steps:
- name: Setup Flux CLI
uses: fluxcd/flux2/action@main
with:
arch: arm64 # can be amd64, arm64 or arm
```
For more information, please see the [Flux GitHub Action documentation](https://fluxcd.io/flux/flux-gh-action/).
You can download a specific version with:
```yaml
steps:
- name: Setup Flux CLI
uses: fluxcd/flux2/action@main
with:
version: 0.8.0
```
### Automate Flux updates
Example workflow for updating Flux's components generated with `flux bootstrap --path=clusters/production`:
```yaml
name: update-flux
on:
workflow_dispatch:
schedule:
- cron: "0 * * * *"
jobs:
components:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v2
- name: Setup Flux CLI
uses: fluxcd/flux2/action@main
- name: Check for updates
id: update
run: |
flux install \
--export > ./clusters/production/flux-system/gotk-components.yaml
VERSION="$(flux -v)"
echo "::set-output name=flux_version::$VERSION"
- name: Create Pull Request
uses: peter-evans/create-pull-request@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
branch: update-flux
commit-message: Update to ${{ steps.update.outputs.flux_version }}
title: Update to ${{ steps.update.outputs.flux_version }}
body: |
${{ steps.update.outputs.flux_version }}
```
### End-to-end testing
Example workflow for running Flux in Kubernetes Kind:
```yaml
name: e2e
on:
push:
branches:
- '*'
jobs:
kubernetes:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Flux CLI
uses: fluxcd/flux2/action@main
- name: Setup Kubernetes Kind
uses: engineerd/setup-kind@v0.5.0
- name: Install Flux in Kubernetes Kind
run: flux install
```
A complete e2e testing workflow is available here
[flux2-kustomize-helm-example](https://github.com/fluxcd/flux2-kustomize-helm-example/blob/main/.github/workflows/e2e.yaml)

View File

@@ -1,52 +1,148 @@
name: Setup Flux CLI
description: A GitHub Action for running Flux commands
author: Stefan Prodan
description: A GitHub Action for installing the Flux CLI
author: Flux project
branding:
color: blue
icon: command
inputs:
version:
description: "Flux version e.g. 0.8.0 (defaults to latest stable release)"
description: "Flux version e.g. 2.0.0 (defaults to latest stable release)"
required: false
arch:
description: "arch can be amd64, arm64 or arm"
required: true
default: "amd64"
required: false
deprecationMessage: "No longer required, action will now detect runner arch."
bindir:
description: "Optional location of the Flux binary. Will not use sudo if set. Updates System Path."
description: "Alternative location for the Flux binary, defaults to path relative to $RUNNER_TOOL_CACHE."
required: false
token:
description: "Token used to authenticate against the GitHub.com API."
required: false
runs:
using: composite
steps:
- name: "Download flux binary to tmp"
- name: "Download the binary to the runner's cache dir"
shell: bash
env:
VERSION: "${{ inputs.version }}"
FLUX_TOOL_DIR: "${{ inputs.bindir }}"
TOKEN: "${{ inputs.token }}"
run: |
ARCH=${{ inputs.arch }}
VERSION=${{ inputs.version }}
if [ -z $VERSION ]; then
VERSION=$(curl https://api.github.com/repos/fluxcd/flux2/releases/latest -sL | grep tag_name | sed -E 's/.*"([^"]+)".*/\1/' | cut -c 2-)
if [[ -z "$VERSION" ]] || [[ "$VERSION" = "latest" ]]; then
if [[ "${TOKEN}" != '' ]]; then
VERSION=$(curl -fsSL -H "Authorization: token ${TOKEN}" https://api.github.com/repos/fluxcd/flux2/releases/latest | grep tag_name | cut -d '"' -f 4)
else
VERSION=$(curl -w "%{url_effective}\n" -IsSL https://github.com/fluxcd/flux2/releases/latest -o /dev/null | sed 's$^.*/$$')
fi
fi
if [[ -z "$VERSION" ]]; then
echo "Unable to determine Flux CLI version"
exit 1
fi
if [[ $VERSION = v* ]]; then
VERSION="${VERSION:1}"
fi
BIN_URL="https://github.com/fluxcd/flux2/releases/download/v${VERSION}/flux_${VERSION}_linux_${ARCH}.tar.gz"
curl -sL ${BIN_URL} -o /tmp/flux.tar.gz
mkdir -p /tmp/flux
tar -C /tmp/flux/ -zxvf /tmp/flux.tar.gz
- name: "Copy Flux binary to execute location"
shell: bash
run: |
BINDIR=${{ inputs.bindir }}
if [ -z $BINDIR ]; then
sudo cp /tmp/flux/flux /usr/local/bin
else
cp /tmp/flux/flux "${BINDIR}"
echo "${BINDIR}" >> $GITHUB_PATH
OS=$(echo "${RUNNER_OS}" | tr '[:upper:]' '[:lower:]')
if [[ "$OS" == "macos" ]]; then
OS="darwin"
fi
- name: "Cleanup tmp"
shell: bash
run: |
rm -rf /tmp/flux/ /tmp/flux.tar.gz
- name: "Verify correct installation of binary"
ARCH=$(echo "${RUNNER_ARCH}" | tr '[:upper:]' '[:lower:]')
if [[ "$ARCH" == "x64" ]]; then
ARCH="amd64"
elif [[ "$ARCH" == "x86" ]]; then
ARCH="386"
fi
FLUX_EXEC_FILE="flux"
if [[ "$OS" == "windows" ]]; then
FLUX_EXEC_FILE="${FLUX_EXEC_FILE}.exe"
fi
if [[ -z "$FLUX_TOOL_DIR" ]]; then
FLUX_TOOL_DIR="${RUNNER_TOOL_CACHE}/flux2/${VERSION}/${OS}/${ARCH}"
fi
if [[ ! -x "$FLUX_TOOL_DIR/FLUX_EXEC_FILE" ]]; then
DL_DIR="$(mktemp -dt flux2-XXXXXX)"
trap 'rm -rf $DL_DIR' EXIT
echo "Downloading flux ${VERSION} for ${OS}/${ARCH}"
FLUX_TARGET_FILE="flux_${VERSION}_${OS}_${ARCH}.tar.gz"
if [[ "$OS" == "windows" ]]; then
FLUX_TARGET_FILE="flux_${VERSION}_${OS}_${ARCH}.zip"
fi
FLUX_CHECKSUMS_FILE="flux_${VERSION}_checksums.txt"
FLUX_DOWNLOAD_URL="https://github.com/fluxcd/flux2/releases/download/v${VERSION}/"
MAX_RETRIES=5
RETRY_DELAY=5
for i in $(seq 1 $MAX_RETRIES); do
echo "Downloading flux binary (attempt $i/$MAX_RETRIES)"
if curl -fsSL -o "$DL_DIR/$FLUX_TARGET_FILE" "$FLUX_DOWNLOAD_URL/$FLUX_TARGET_FILE"; then
break
fi
if [ $i -lt $MAX_RETRIES ]; then
echo "Download failed, retrying in ${RETRY_DELAY} seconds..."
sleep $RETRY_DELAY
else
echo "Failed to download flux binary after $MAX_RETRIES attempts"
exit 1
fi
done
for i in $(seq 1 $MAX_RETRIES); do
echo "Downloading checksums file (attempt $i/$MAX_RETRIES)"
if curl -fsSL -o "$DL_DIR/$FLUX_CHECKSUMS_FILE" "$FLUX_DOWNLOAD_URL/$FLUX_CHECKSUMS_FILE"; then
break
fi
if [ $i -lt $MAX_RETRIES ]; then
echo "Download failed, retrying in ${RETRY_DELAY} seconds..."
sleep $RETRY_DELAY
else
echo "Failed to download checksums file after $MAX_RETRIES attempts"
exit 1
fi
done
echo "Verifying checksum"
sum=""
if command -v openssl > /dev/null; then
sum=$(openssl sha256 "$DL_DIR/$FLUX_TARGET_FILE" | awk '{print $2}')
elif command -v sha256sum > /dev/null; then
sum=$(sha256sum "$DL_DIR/$FLUX_TARGET_FILE" | awk '{print $1}')
fi
if [[ -z "$sum" ]]; then
echo "Neither openssl nor sha256sum found. Cannot calculate checksum."
exit 1
fi
expected_sum=$(grep " $FLUX_TARGET_FILE\$" "$DL_DIR/$FLUX_CHECKSUMS_FILE" | awk '{print $1}')
if [ "$sum" != "$expected_sum" ]; then
echo "SHA sum of ${FLUX_TARGET_FILE} does not match. Aborting."
exit 1
fi
echo "Installing flux to ${FLUX_TOOL_DIR}"
mkdir -p "$FLUX_TOOL_DIR"
if [[ "$OS" == "windows" ]]; then
unzip "$DL_DIR/$FLUX_TARGET_FILE" "$FLUX_EXEC_FILE" -d "$FLUX_TOOL_DIR"
else
tar xzf "$DL_DIR/$FLUX_TARGET_FILE" -C "$FLUX_TOOL_DIR" $FLUX_EXEC_FILE
fi
chmod +x "$FLUX_TOOL_DIR/$FLUX_EXEC_FILE"
fi
echo "Adding flux to path"
echo "$FLUX_TOOL_DIR" >> "$GITHUB_PATH"
- name: "Print installed flux version"
shell: bash
run: |
flux -v

View File

@@ -19,7 +19,7 @@ package main
import (
"sigs.k8s.io/controller-runtime/pkg/client"
notificationv1 "github.com/fluxcd/notification-controller/api/v1beta1"
notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3"
)
// notificationv1.Alert

View File

@@ -19,7 +19,7 @@ package main
import (
"sigs.k8s.io/controller-runtime/pkg/client"
notificationv1 "github.com/fluxcd/notification-controller/api/v1beta1"
notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3"
)
// notificationv1.Provider

57
cmd/flux/artifact.go Normal file
View File

@@ -0,0 +1,57 @@
/*
Copyright 2025 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"sigs.k8s.io/controller-runtime/pkg/client"
swapi "github.com/fluxcd/source-watcher/api/v2/v1beta1"
)
// swapi.ArtifactGenerator
var artifactGeneratorType = apiType{
kind: swapi.ArtifactGeneratorKind,
humanKind: "artifactgenerator",
groupVersion: swapi.GroupVersion,
}
type artifactGeneratorAdapter struct {
*swapi.ArtifactGenerator
}
func (h artifactGeneratorAdapter) asClientObject() client.Object {
return h.ArtifactGenerator
}
func (h artifactGeneratorAdapter) deepCopyClientObject() client.Object {
return h.ArtifactGenerator.DeepCopy()
}
// swapi.ArtifactGeneratorList
type artifactGeneratorListAdapter struct {
*swapi.ArtifactGeneratorList
}
func (h artifactGeneratorListAdapter) asClientList() client.ObjectList {
return h.ArtifactGeneratorList
}
func (h artifactGeneratorListAdapter) len() int {
return len(h.ArtifactGeneratorList.Items)
}

View File

@@ -17,27 +17,32 @@ limitations under the License.
package main
import (
"context"
"crypto/elliptic"
"fmt"
"os"
"strings"
"github.com/fluxcd/pkg/git"
"github.com/manifoldco/promptui"
"github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/api/errors"
"sigs.k8s.io/controller-runtime/pkg/client"
"github.com/fluxcd/flux2/internal/flags"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/flux2/v2/internal/flags"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/manifestgen"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
)
var bootstrapCmd = &cobra.Command{
Use: "bootstrap",
Short: "Bootstrap toolkit components",
Long: "The bootstrap sub-commands bootstrap the toolkit components on the targeted Git provider.",
Short: "Deploy Flux on a cluster the GitOps way.",
Long: `The bootstrap sub-commands push the Flux manifests to a Git repository
and deploy Flux on the cluster.`,
}
type bootstrapFlags struct {
version string
arch flags.Arch
logLevel flags.LogLevel
branch string
@@ -48,17 +53,19 @@ type bootstrapFlags struct {
extraComponents []string
requiredComponents []string
registry string
imagePullSecret string
registry string
registryCredential string
imagePullSecret string
secretName string
tokenAuth bool
keyAlgorithm flags.PublicKeyAlgorithm
keyRSABits flags.RSAKeyBits
keyECDSACurve flags.ECDSACurve
sshHostname string
caFile string
privateKeyFile string
secretName string
tokenAuth bool
keyAlgorithm flags.PublicKeyAlgorithm
keyRSABits flags.RSAKeyBits
keyECDSACurve flags.ECDSACurve
sshHostname string
caFile string
privateKeyFile string
sshHostKeyAlgorithms []string
watchAllNamespaces bool
networkPolicy bool
@@ -72,6 +79,8 @@ type bootstrapFlags struct {
gpgPassphrase string
gpgKeyID string
force bool
commitMessageAppendix string
}
@@ -88,12 +97,14 @@ func init() {
bootstrapCmd.PersistentFlags().StringSliceVar(&bootstrapArgs.defaultComponents, "components", rootArgs.defaults.Components,
"list of components, accepts comma-separated values")
bootstrapCmd.PersistentFlags().StringSliceVar(&bootstrapArgs.extraComponents, "components-extra", nil,
"list of components in addition to those supplied or defaulted, accepts comma-separated values")
"list of components in addition to those supplied or defaulted, accepts values such as 'image-reflector-controller,image-automation-controller,source-watcher'")
bootstrapCmd.PersistentFlags().StringVar(&bootstrapArgs.registry, "registry", "ghcr.io/fluxcd",
"container registry where the toolkit images are published")
"container registry where the Flux controller images are published")
bootstrapCmd.PersistentFlags().StringVar(&bootstrapArgs.registryCredential, "registry-creds", "",
"container registry credentials in the format 'user:password', requires --image-pull-secret to be set")
bootstrapCmd.PersistentFlags().StringVar(&bootstrapArgs.imagePullSecret, "image-pull-secret", "",
"Kubernetes secret name used for pulling the toolkit images from a private registry")
"Kubernetes secret name used for pulling the controller images from a private registry")
bootstrapCmd.PersistentFlags().StringVar(&bootstrapArgs.branch, "branch", bootstrapDefaultBranch, "Git branch")
bootstrapCmd.PersistentFlags().BoolVar(&bootstrapArgs.recurseSubmodules, "recurse-submodules", false,
@@ -102,19 +113,20 @@ func init() {
bootstrapCmd.PersistentFlags().StringVar(&bootstrapArgs.manifestsPath, "manifests", "", "path to the manifest directory")
bootstrapCmd.PersistentFlags().BoolVar(&bootstrapArgs.watchAllNamespaces, "watch-all-namespaces", true,
"watch for custom resources in all namespaces, if set to false it will only watch the namespace where the toolkit is installed")
"watch for custom resources in all namespaces, if set to false it will only watch the namespace where the Flux controllers are installed")
bootstrapCmd.PersistentFlags().BoolVar(&bootstrapArgs.networkPolicy, "network-policy", true,
"deny ingress access to the toolkit controllers from other namespaces using network policies")
"setup Kubernetes network policies to deny ingress access to the Flux controllers from other namespaces")
bootstrapCmd.PersistentFlags().BoolVar(&bootstrapArgs.tokenAuth, "token-auth", false,
"when enabled, the personal access token will be used instead of SSH deploy key")
"when enabled, the personal access token will be used instead of the SSH deploy key")
bootstrapCmd.PersistentFlags().Var(&bootstrapArgs.logLevel, "log-level", bootstrapArgs.logLevel.Description())
bootstrapCmd.PersistentFlags().StringVar(&bootstrapArgs.clusterDomain, "cluster-domain", rootArgs.defaults.ClusterDomain, "internal cluster domain")
bootstrapCmd.PersistentFlags().StringSliceVar(&bootstrapArgs.tolerationKeys, "toleration-keys", nil,
"list of toleration keys used to schedule the components pods onto nodes with matching taints")
"list of toleration keys used to schedule the controller pods onto nodes with matching taints")
bootstrapCmd.PersistentFlags().StringVar(&bootstrapArgs.secretName, "secret-name", rootArgs.defaults.Namespace, "name of the secret the sync credentials can be found in or stored to")
bootstrapCmd.PersistentFlags().Var(&bootstrapArgs.keyAlgorithm, "ssh-key-algorithm", bootstrapArgs.keyAlgorithm.Description())
bootstrapCmd.PersistentFlags().Var(&bootstrapArgs.keyRSABits, "ssh-rsa-bits", bootstrapArgs.keyRSABits.Description())
bootstrapCmd.PersistentFlags().StringSliceVar(&bootstrapArgs.sshHostKeyAlgorithms, "ssh-hostkey-algos", nil, "list of host key algorithms to be used by the CLI for SSH connections")
bootstrapCmd.PersistentFlags().Var(&bootstrapArgs.keyECDSACurve, "ssh-ecdsa-curve", bootstrapArgs.keyECDSACurve.Description())
bootstrapCmd.PersistentFlags().StringVar(&bootstrapArgs.sshHostname, "ssh-hostname", "", "SSH hostname, to be used when the SSH host differs from the HTTPS one")
bootstrapCmd.PersistentFlags().StringVar(&bootstrapArgs.caFile, "ca-file", "", "path to TLS CA file used for validating self-signed certificates")
@@ -129,8 +141,7 @@ func init() {
bootstrapCmd.PersistentFlags().StringVar(&bootstrapArgs.commitMessageAppendix, "commit-message-appendix", "", "string to add to the commit messages, e.g. '[ci skip]'")
bootstrapCmd.PersistentFlags().Var(&bootstrapArgs.arch, "arch", bootstrapArgs.arch.Description())
bootstrapCmd.PersistentFlags().MarkDeprecated("arch", "multi-arch container image is now available for AMD64, ARMv7 and ARM64")
bootstrapCmd.PersistentFlags().BoolVar(&bootstrapArgs.force, "force", false, "override existing Flux installation if it's managed by a different tool such as Helm")
bootstrapCmd.PersistentFlags().MarkHidden("manifests")
rootCmd.AddCommand(bootstrapCmd)
@@ -154,7 +165,7 @@ func buildEmbeddedManifestBase() (string, error) {
if !isEmbeddedVersion(bootstrapArgs.version) {
return "", nil
}
tmpBaseDir, err := os.MkdirTemp("", "flux-manifests-")
tmpBaseDir, err := manifestgen.MkdirTempAbs("", "flux-manifests-")
if err != nil {
return "", err
}
@@ -176,6 +187,18 @@ func bootstrapValidate() error {
return err
}
if bootstrapArgs.registryCredential != "" && bootstrapArgs.imagePullSecret == "" {
return fmt.Errorf("--registry-creds requires --image-pull-secret to be set")
}
if bootstrapArgs.registryCredential != "" && len(strings.Split(bootstrapArgs.registryCredential, ":")) != 2 {
return fmt.Errorf("invalid --registry-creds format, expected 'user:password'")
}
if len(bootstrapArgs.sshHostKeyAlgorithms) > 0 {
git.HostKeyAlgos = bootstrapArgs.sshHostKeyAlgorithms
}
return nil
}
@@ -190,3 +213,27 @@ func mapTeamSlice(s []string, defaultPermission string) map[string]string {
return m
}
// confirmBootstrap gets a confirmation for running bootstrap over an existing Flux installation.
// It returns a nil error if Flux is not installed or the user confirms overriding an existing installation
func confirmBootstrap(ctx context.Context, kubeClient client.Client) error {
installed := true
info, err := getFluxClusterInfo(ctx, kubeClient)
if err != nil {
if !errors.IsNotFound(err) {
return fmt.Errorf("cluster info unavailable: %w", err)
}
installed = false
}
if installed {
err = confirmFluxInstallOverride(info)
if err != nil {
if err == promptui.ErrAbort {
return fmt.Errorf("bootstrap cancelled")
}
return err
}
}
return nil
}

View File

@@ -22,44 +22,42 @@ import (
"os"
"time"
"github.com/go-git/go-git/v5/plumbing/transport/http"
"github.com/fluxcd/pkg/git"
"github.com/fluxcd/pkg/git/gogit"
"github.com/spf13/cobra"
"github.com/fluxcd/flux2/internal/bootstrap"
"github.com/fluxcd/flux2/internal/bootstrap/git/gogit"
"github.com/fluxcd/flux2/internal/bootstrap/provider"
"github.com/fluxcd/flux2/internal/flags"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/pkg/manifestgen/install"
"github.com/fluxcd/flux2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/flux2/pkg/manifestgen/sync"
"github.com/fluxcd/flux2/v2/internal/flags"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/bootstrap"
"github.com/fluxcd/flux2/v2/pkg/bootstrap/provider"
"github.com/fluxcd/flux2/v2/pkg/manifestgen"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/install"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sync"
)
var bootstrapBServerCmd = &cobra.Command{
Use: "bitbucket-server",
Short: "Bootstrap toolkit components in a Bitbucket Server repository",
Short: "Deploy Flux on a cluster connected to a Bitbucket Server repository",
Long: `The bootstrap bitbucket-server command creates the Bitbucket Server repository if it doesn't exists and
commits the toolkit components manifests to the master branch.
commits the Flux manifests to the master branch.
Then it configures the target cluster to synchronize with the repository.
If the toolkit components are present on the cluster,
If the Flux components are present on the cluster,
the bootstrap command will perform an upgrade if needed.`,
Example: ` # Create a Bitbucket Server API token and export it as an env var
export BITBUCKET_TOKEN=<my-token>
# Run bootstrap for a private repository using HTTPS token authentication
flux bootstrap bitbucket-server --owner=<project> --username=<user> --repository=<repository name> --hostname=<domain> --token-auth
flux bootstrap bitbucket-server --owner=<project> --username=<user> --repository=<repository name> --hostname=<domain> --token-auth --path=clusters/my-cluster
# Run bootstrap for a private repository using SSH authentication
flux bootstrap bitbucket-server --owner=<project> --username=<user> --repository=<repository name> --hostname=<domain>
# Run bootstrap for a repository path
flux bootstrap bitbucket-server --owner=<project> --username=<user> --repository=<repository name> --path=dev-cluster --hostname=<domain>
flux bootstrap bitbucket-server --owner=<project> --username=<user> --repository=<repository name> --hostname=<domain> --path=clusters/my-cluster
# Run bootstrap for a public repository on a personal account
flux bootstrap bitbucket-server --owner=<user> --repository=<repository name> --private=false --personal --hostname=<domain> --token-auth
flux bootstrap bitbucket-server --owner=<user> --repository=<repository name> --private=false --personal --hostname=<domain> --token-auth --path=clusters/my-cluster
# Run bootstrap for a an existing repository with a branch named main
flux bootstrap bitbucket-server --owner=<project> --username=<user> --repository=<repository name> --branch=main --hostname=<domain> --token-auth`,
# Run bootstrap for an existing repository with a branch named main
flux bootstrap bitbucket-server --owner=<project> --username=<user> --repository=<repository name> --branch=main --hostname=<domain> --token-auth --path=clusters/my-cluster`,
RunE: bootstrapBServerCmdRun,
}
@@ -121,13 +119,22 @@ func bootstrapBServerCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
if !bootstrapArgs.force {
err = confirmBootstrap(ctx, kubeClient)
if err != nil {
return err
}
}
// Manifest base
if ver, err := getVersion(bootstrapArgs.version); err == nil {
if ver, err := getVersion(bootstrapArgs.version); err != nil {
return err
} else {
bootstrapArgs.version = ver
}
manifestsBase, err := buildEmbeddedManifestBase()
@@ -165,15 +172,22 @@ func bootstrapBServerCmdRun(cmd *cobra.Command, args []string) error {
}
// Lazy go-git repository
tmpDir, err := os.MkdirTemp("", "flux-bootstrap-")
tmpDir, err := manifestgen.MkdirTempAbs("", "flux-bootstrap-")
if err != nil {
return fmt.Errorf("failed to create temporary working dir: %w", err)
}
defer os.RemoveAll(tmpDir)
gitClient := gogit.New(tmpDir, &http.BasicAuth{
Username: user,
Password: bitbucketToken,
})
clientOpts := []gogit.ClientOption{gogit.WithDiskStorage(), gogit.WithFallbackToDefaultKnownHosts()}
gitClient, err := gogit.NewClient(tmpDir, &git.AuthOptions{
Transport: git.HTTPS,
Username: user,
Password: bitbucketToken,
CAFile: caBundle,
}, clientOpts...)
if err != nil {
return fmt.Errorf("failed to create a Git client: %w", err)
}
// Install manifest config
installOptions := install.Options{
@@ -182,6 +196,7 @@ func bootstrapBServerCmdRun(cmd *cobra.Command, args []string) error {
Namespace: *kubeconfigArgs.Namespace,
Components: bootstrapComponents(),
Registry: bootstrapArgs.registry,
RegistryCredential: bootstrapArgs.registryCredential,
ImagePullSecret: bootstrapArgs.imagePullSecret,
WatchAllNamespaces: bootstrapArgs.watchAllNamespaces,
NetworkPolicy: bootstrapArgs.networkPolicy,
@@ -211,19 +226,18 @@ func bootstrapBServerCmdRun(cmd *cobra.Command, args []string) error {
secretOpts.Username = bServerArgs.username
}
secretOpts.Password = bitbucketToken
if bootstrapArgs.caFile != "" {
secretOpts.CAFilePath = bootstrapArgs.caFile
}
secretOpts.CACrt = caBundle
} else {
keypair, err := sourcesecret.LoadKeyPairFromPath(bootstrapArgs.privateKeyFile, gitArgs.password)
if err != nil {
return err
}
secretOpts.Keypair = keypair
secretOpts.PrivateKeyAlgorithm = sourcesecret.PrivateKeyAlgorithm(bootstrapArgs.keyAlgorithm)
secretOpts.RSAKeyBits = int(bootstrapArgs.keyRSABits)
secretOpts.ECDSACurve = bootstrapArgs.keyECDSACurve.Curve
secretOpts.SSHHostname = bServerArgs.hostname
if bootstrapArgs.privateKeyFile != "" {
secretOpts.PrivateKeyPath = bootstrapArgs.privateKeyFile
}
secretOpts.SSHHostname = bServerArgs.hostname
if bootstrapArgs.sshHostname != "" {
secretOpts.SSHHostname = bootstrapArgs.sshHostname
}
@@ -238,23 +252,27 @@ func bootstrapBServerCmdRun(cmd *cobra.Command, args []string) error {
Secret: bootstrapArgs.secretName,
TargetPath: bServerArgs.path.ToSlash(),
ManifestFile: sync.MakeDefaultOptions().ManifestFile,
GitImplementation: sourceGitArgs.gitImplementation.String(),
RecurseSubmodules: bootstrapArgs.recurseSubmodules,
}
entityList, err := bootstrap.LoadEntityListFromPath(bootstrapArgs.gpgKeyRingPath)
if err != nil {
return err
}
// Bootstrap config
bootstrapOpts := []bootstrap.GitProviderOption{
bootstrap.WithProviderRepository(bServerArgs.owner, bServerArgs.repository, bServerArgs.personal),
bootstrap.WithBranch(bootstrapArgs.branch),
bootstrap.WithBootstrapTransportType("https"),
bootstrap.WithAuthor(bootstrapArgs.authorName, bootstrapArgs.authorEmail),
bootstrap.WithSignature(bootstrapArgs.authorName, bootstrapArgs.authorEmail),
bootstrap.WithCommitMessageAppendix(bootstrapArgs.commitMessageAppendix),
bootstrap.WithProviderTeamPermissions(mapTeamSlice(bServerArgs.teams, bServerDefaultPermission)),
bootstrap.WithReadWriteKeyPermissions(bServerArgs.readWriteKey),
bootstrap.WithKubeconfig(kubeconfigArgs),
bootstrap.WithKubeconfig(kubeconfigArgs, kubeclientOptions),
bootstrap.WithLogger(logger),
bootstrap.WithCABundle(caBundle),
bootstrap.WithGitCommitSigning(bootstrapArgs.gpgKeyRingPath, bootstrapArgs.gpgPassphrase, bootstrapArgs.gpgKeyID),
bootstrap.WithGitCommitSigning(entityList, bootstrapArgs.gpgPassphrase, bootstrapArgs.gpgKeyID),
}
if bootstrapArgs.sshHostname != "" {
bootstrapOpts = append(bootstrapOpts, bootstrap.WithSSHHostname(bootstrapArgs.sshHostname))

View File

@@ -24,53 +24,71 @@ import (
"strings"
"time"
"github.com/go-git/go-git/v5/plumbing/transport"
"github.com/go-git/go-git/v5/plumbing/transport/http"
"github.com/go-git/go-git/v5/plumbing/transport/ssh"
"github.com/manifoldco/promptui"
"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
"github.com/fluxcd/flux2/internal/bootstrap"
"github.com/fluxcd/flux2/internal/bootstrap/git/gogit"
"github.com/fluxcd/flux2/internal/flags"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/pkg/manifestgen/install"
"github.com/fluxcd/flux2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/flux2/pkg/manifestgen/sync"
"github.com/fluxcd/pkg/git"
"github.com/fluxcd/pkg/git/gogit"
"github.com/fluxcd/flux2/v2/internal/flags"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/bootstrap"
"github.com/fluxcd/flux2/v2/pkg/manifestgen"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/install"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sync"
)
var bootstrapGitCmd = &cobra.Command{
Use: "git",
Short: "Bootstrap toolkit components in a Git repository",
Long: `The bootstrap git command commits the toolkit components manifests to the
branch of a Git repository. It then configures the target cluster to synchronize with
the repository. If the toolkit components are present on the cluster, the bootstrap
Short: "Deploy Flux on a cluster connected to a Git repository",
Long: `The bootstrap git command commits the Flux manifests to the
branch of a Git repository. And then it configures the target cluster to synchronize with
that repository. If the Flux components are present on the cluster, the bootstrap
command will perform an upgrade if needed.`,
Example: ` # Run bootstrap for a Git repository and authenticate with your SSH agent
flux bootstrap git --url=ssh://git@example.com/repository.git
flux bootstrap git --url=ssh://git@example.com/repository.git --path=clusters/my-cluster
# Run bootstrap for a Git repository and authenticate using a password
flux bootstrap git --url=https://example.com/repository.git --password=<password>
flux bootstrap git --url=https://example.com/repository.git --password=<password> --path=clusters/my-cluster
# Run bootstrap for a Git repository and authenticate using a password from environment variable
GIT_PASSWORD=<password> && flux bootstrap git --url=https://example.com/repository.git --path=clusters/my-cluster
# Run bootstrap for a Git repository with a passwordless private key
flux bootstrap git --url=ssh://git@example.com/repository.git --private-key-file=<path/to/private.key>
flux bootstrap git --url=ssh://git@example.com/repository.git --private-key-file=<path/to/private.key> --path=clusters/my-cluster
# Run bootstrap for a Git repository with a private key and password
flux bootstrap git --url=ssh://git@example.com/repository.git --private-key-file=<path/to/private.key> --password=<password>
flux bootstrap git --url=ssh://git@example.com/repository.git --private-key-file=<path/to/private.key> --password=<password> --path=clusters/my-cluster
# Run bootstrap for a Git repository on AWS CodeCommit
flux bootstrap git --url=ssh://<SSH-Key-ID>@git-codecommit.<region>.amazonaws.com/v1/repos/<repository> --private-key-file=<path/to/private.key> --password=<SSH-passphrase> --path=clusters/my-cluster
# Run bootstrap for a Git repository on Azure Devops
flux bootstrap git --url=ssh://git@ssh.dev.azure.com/v3/<org>/<project>/<repository> --private-key-file=<path/to/rsa-sha2-private.key> --ssh-hostkey-algos=rsa-sha2-512,rsa-sha2-256 --path=clusters/my-cluster
# Run bootstrap for a Git repository on Oracle VBS
flux bootstrap git --url=https://repository_url.git --with-bearer-token=true --password=<PAT> --path=clusters/my-cluster
`,
RunE: bootstrapGitCmdRun,
}
type gitFlags struct {
url string
interval time.Duration
path flags.SafeRelativePath
username string
password string
silent bool
url string
interval time.Duration
path flags.SafeRelativePath
username string
password string
silent bool
insecureHttpAllowed bool
withBearerToken bool
}
const (
gitPasswordEnvVar = "GIT_PASSWORD"
)
var gitArgs gitFlags
func init() {
@@ -80,11 +98,30 @@ func init() {
bootstrapGitCmd.Flags().StringVarP(&gitArgs.username, "username", "u", "git", "basic authentication username")
bootstrapGitCmd.Flags().StringVarP(&gitArgs.password, "password", "p", "", "basic authentication password")
bootstrapGitCmd.Flags().BoolVarP(&gitArgs.silent, "silent", "s", false, "assumes the deploy key is already setup, skips confirmation")
bootstrapGitCmd.Flags().BoolVar(&gitArgs.insecureHttpAllowed, "allow-insecure-http", false, "allows insecure HTTP connections")
bootstrapGitCmd.Flags().BoolVar(&gitArgs.withBearerToken, "with-bearer-token", false, "use password as bearer token for Authorization header")
bootstrapCmd.AddCommand(bootstrapGitCmd)
}
func bootstrapGitCmdRun(cmd *cobra.Command, args []string) error {
if gitArgs.withBearerToken {
bootstrapArgs.tokenAuth = true
}
gitPassword := os.Getenv(gitPasswordEnvVar)
if gitPassword != "" && gitArgs.password == "" {
gitArgs.password = gitPassword
}
if bootstrapArgs.tokenAuth && gitArgs.password == "" {
var err error
gitPassword, err = readPasswordFromStdin("Please enter your Git repository password: ")
if err != nil {
return fmt.Errorf("could not read token: %w", err)
}
gitArgs.password = gitPassword
}
if err := bootstrapValidate(); err != nil {
return err
}
@@ -93,21 +130,43 @@ func bootstrapGitCmdRun(cmd *cobra.Command, args []string) error {
if err != nil {
return err
}
gitAuth, err := transportForURL(repositoryURL)
if err != nil {
return err
if strings.Contains(repositoryURL.Hostname(), "git-codecommit") && strings.Contains(repositoryURL.Hostname(), "amazonaws.com") {
if repositoryURL.Scheme == string(git.SSH) {
if repositoryURL.User == nil {
return fmt.Errorf("invalid AWS CodeCommit url: ssh username should be specified in the url")
}
if repositoryURL.User.Username() == git.DefaultPublicKeyAuthUser {
return fmt.Errorf("invalid AWS CodeCommit url: ssh username should be the SSH key ID for the provided private key")
}
if bootstrapArgs.privateKeyFile == "" {
return fmt.Errorf("private key file is required for bootstrapping against AWS CodeCommit using ssh")
}
}
if repositoryURL.Scheme == string(git.HTTPS) && !bootstrapArgs.tokenAuth {
return fmt.Errorf("--token-auth=true must be specified for using an HTTPS AWS CodeCommit url")
}
}
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
if !bootstrapArgs.force {
err = confirmBootstrap(ctx, kubeClient)
if err != nil {
return err
}
}
// Manifest base
if ver, err := getVersion(bootstrapArgs.version); err == nil {
if ver, err := getVersion(bootstrapArgs.version); err != nil {
return err
} else {
bootstrapArgs.version = ver
}
manifestsBase, err := buildEmbeddedManifestBase()
@@ -117,12 +176,33 @@ func bootstrapGitCmdRun(cmd *cobra.Command, args []string) error {
defer os.RemoveAll(manifestsBase)
// Lazy go-git repository
tmpDir, err := os.MkdirTemp("", "flux-bootstrap-")
tmpDir, err := manifestgen.MkdirTempAbs("", "flux-bootstrap-")
if err != nil {
return fmt.Errorf("failed to create temporary working dir: %w", err)
}
defer os.RemoveAll(tmpDir)
gitClient := gogit.New(tmpDir, gitAuth)
var caBundle []byte
if bootstrapArgs.caFile != "" {
var err error
caBundle, err = os.ReadFile(bootstrapArgs.caFile)
if err != nil {
return fmt.Errorf("unable to read TLS CA file: %w", err)
}
}
authOpts, err := getAuthOpts(repositoryURL, caBundle)
if err != nil {
return fmt.Errorf("failed to create authentication options for %s: %w", repositoryURL.String(), err)
}
clientOpts := []gogit.ClientOption{gogit.WithDiskStorage(), gogit.WithFallbackToDefaultKnownHosts()}
if gitArgs.insecureHttpAllowed {
clientOpts = append(clientOpts, gogit.WithInsecureCredentialsOverHTTP())
}
gitClient, err := gogit.NewClient(tmpDir, authOpts, clientOpts...)
if err != nil {
return fmt.Errorf("failed to create a Git client: %w", err)
}
// Install manifest config
installOptions := install.Options{
@@ -131,6 +211,7 @@ func bootstrapGitCmdRun(cmd *cobra.Command, args []string) error {
Namespace: *kubeconfigArgs.Namespace,
Components: bootstrapComponents(),
Registry: bootstrapArgs.registry,
RegistryCredential: bootstrapArgs.registryCredential,
ImagePullSecret: bootstrapArgs.imagePullSecret,
WatchAllNamespaces: bootstrapArgs.watchAllNamespaces,
NetworkPolicy: bootstrapArgs.networkPolicy,
@@ -153,14 +234,17 @@ func bootstrapGitCmdRun(cmd *cobra.Command, args []string) error {
TargetPath: gitArgs.path.String(),
ManifestFile: sourcesecret.MakeDefaultOptions().ManifestFile,
}
if bootstrapArgs.tokenAuth {
secretOpts.Username = gitArgs.username
secretOpts.Password = gitArgs.password
if bootstrapArgs.caFile != "" {
secretOpts.CAFilePath = bootstrapArgs.caFile
if bootstrapArgs.tokenAuth {
if gitArgs.withBearerToken {
secretOpts.BearerToken = gitArgs.password
} else {
secretOpts.Username = gitArgs.username
secretOpts.Password = gitArgs.password
}
secretOpts.CACrt = caBundle
// Remove port of the given host when not syncing over HTTP/S to not assume port for protocol
// This _might_ be overwritten later on by e.g. --ssh-hostname
if repositoryURL.Scheme != "https" && repositoryURL.Scheme != "http" {
@@ -169,7 +253,9 @@ func bootstrapGitCmdRun(cmd *cobra.Command, args []string) error {
// Configure repository URL to match auth config for sync.
repositoryURL.User = nil
repositoryURL.Scheme = "https"
if !gitArgs.insecureHttpAllowed {
repositoryURL.Scheme = "https"
}
} else {
secretOpts.PrivateKeyAlgorithm = sourcesecret.PrivateKeyAlgorithm(bootstrapArgs.keyAlgorithm)
secretOpts.Password = gitArgs.password
@@ -188,9 +274,12 @@ func bootstrapGitCmdRun(cmd *cobra.Command, args []string) error {
if bootstrapArgs.sshHostname != "" {
repositoryURL.Host = bootstrapArgs.sshHostname
}
if bootstrapArgs.privateKeyFile != "" {
secretOpts.PrivateKeyPath = bootstrapArgs.privateKeyFile
keypair, err := sourcesecret.LoadKeyPairFromPath(bootstrapArgs.privateKeyFile, gitArgs.password)
if err != nil {
return err
}
secretOpts.Keypair = keypair
// Configure last as it depends on the config above.
secretOpts.SSHHostname = repositoryURL.Host
@@ -206,30 +295,24 @@ func bootstrapGitCmdRun(cmd *cobra.Command, args []string) error {
Secret: bootstrapArgs.secretName,
TargetPath: gitArgs.path.ToSlash(),
ManifestFile: sync.MakeDefaultOptions().ManifestFile,
GitImplementation: sourceGitArgs.gitImplementation.String(),
RecurseSubmodules: bootstrapArgs.recurseSubmodules,
}
var caBundle []byte
if bootstrapArgs.caFile != "" {
var err error
caBundle, err = os.ReadFile(bootstrapArgs.caFile)
if err != nil {
return fmt.Errorf("unable to read TLS CA file: %w", err)
}
entityList, err := bootstrap.LoadEntityListFromPath(bootstrapArgs.gpgKeyRingPath)
if err != nil {
return err
}
// Bootstrap config
bootstrapOpts := []bootstrap.GitOption{
bootstrap.WithRepositoryURL(gitArgs.url),
bootstrap.WithBranch(bootstrapArgs.branch),
bootstrap.WithAuthor(bootstrapArgs.authorName, bootstrapArgs.authorEmail),
bootstrap.WithSignature(bootstrapArgs.authorName, bootstrapArgs.authorEmail),
bootstrap.WithCommitMessageAppendix(bootstrapArgs.commitMessageAppendix),
bootstrap.WithKubeconfig(kubeconfigArgs),
bootstrap.WithKubeconfig(kubeconfigArgs, kubeclientOptions),
bootstrap.WithPostGenerateSecretFunc(promptPublicKey),
bootstrap.WithLogger(logger),
bootstrap.WithCABundle(caBundle),
bootstrap.WithGitCommitSigning(bootstrapArgs.gpgKeyRingPath, bootstrapArgs.gpgPassphrase, bootstrapArgs.gpgKeyID),
bootstrap.WithGitCommitSigning(entityList, bootstrapArgs.gpgPassphrase, bootstrapArgs.gpgKeyID),
}
// Setup bootstrapper with constructed configs
@@ -242,22 +325,57 @@ func bootstrapGitCmdRun(cmd *cobra.Command, args []string) error {
return bootstrap.Run(ctx, b, manifestsBase, installOptions, secretOpts, syncOpts, rootArgs.pollInterval, rootArgs.timeout)
}
// transportForURL constructs a transport.AuthMethod based on the scheme
// getAuthOpts retruns a AuthOptions based on the scheme
// of the given URL and the configured flags. If the protocol equals
// "ssh" but no private key is configured, authentication using the local
// SSH-agent is attempted.
func transportForURL(u *url.URL) (transport.AuthMethod, error) {
func getAuthOpts(u *url.URL, caBundle []byte) (*git.AuthOptions, error) {
switch u.Scheme {
case "https":
return &http.BasicAuth{
Username: gitArgs.username,
Password: gitArgs.password,
}, nil
case "ssh":
if bootstrapArgs.privateKeyFile != "" {
return ssh.NewPublicKeysFromFile(u.User.Username(), bootstrapArgs.privateKeyFile, gitArgs.password)
case "http":
if !gitArgs.insecureHttpAllowed {
return nil, fmt.Errorf("scheme http is insecure, pass --allow-insecure-http=true to allow it")
}
return nil, nil
httpAuth := git.AuthOptions{
Transport: git.HTTP,
}
if gitArgs.withBearerToken {
httpAuth.BearerToken = gitArgs.password
} else {
httpAuth.Username = gitArgs.username
httpAuth.Password = gitArgs.password
}
return &httpAuth, nil
case "https":
httpsAuth := git.AuthOptions{
Transport: git.HTTPS,
CAFile: caBundle,
}
if gitArgs.withBearerToken {
httpsAuth.BearerToken = gitArgs.password
} else {
httpsAuth.Username = gitArgs.username
httpsAuth.Password = gitArgs.password
}
return &httpsAuth, nil
case "ssh":
authOpts := &git.AuthOptions{
Transport: git.SSH,
Username: u.User.Username(),
Password: gitArgs.password,
}
if bootstrapArgs.privateKeyFile != "" {
pk, err := os.ReadFile(bootstrapArgs.privateKeyFile)
if err != nil {
return nil, err
}
kh, err := sourcesecret.ScanHostKey(u.Host)
if err != nil {
return nil, err
}
authOpts.Identity = pk
authOpts.KnownHosts = kh
}
return authOpts, nil
default:
return nil, fmt.Errorf("scheme %q is not supported", u.Scheme)
}

276
cmd/flux/bootstrap_gitea.go Normal file
View File

@@ -0,0 +1,276 @@
/*
Copyright 2023 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"context"
"fmt"
"os"
"time"
"github.com/fluxcd/pkg/git"
"github.com/fluxcd/pkg/git/gogit"
"github.com/spf13/cobra"
"github.com/fluxcd/flux2/v2/internal/flags"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/bootstrap"
"github.com/fluxcd/flux2/v2/pkg/bootstrap/provider"
"github.com/fluxcd/flux2/v2/pkg/manifestgen"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/install"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sync"
)
var bootstrapGiteaCmd = &cobra.Command{
Use: "gitea",
Short: "Deploy Flux on a cluster connected to a Gitea repository",
Long: `The bootstrap gitea command creates the Gitea repository if it doesn't exists and
commits the Flux manifests to the specified branch.
Then it configures the target cluster to synchronize with that repository.
If the Flux components are present on the cluster,
the bootstrap command will perform an upgrade if needed.`,
Example: ` # Create a Gitea personal access token and export it as an env var
export GITEA_TOKEN=<my-token>
# Run bootstrap for a private repository owned by a Gitea organization
flux bootstrap gitea --owner=<organization> --repository=<repository name> --path=clusters/my-cluster
# Run bootstrap for a private repository and assign organization teams to it
flux bootstrap gitea --owner=<organization> --repository=<repository name> --team=<team1 slug> --team=<team2 slug> --path=clusters/my-cluster
# Run bootstrap for a private repository and assign organization teams with their access level(e.g maintain, admin) to it
flux bootstrap gitea --owner=<organization> --repository=<repository name> --team=<team1 slug>:<access-level> --path=clusters/my-cluster
# Run bootstrap for a public repository on a personal account
flux bootstrap gitea --owner=<user> --repository=<repository name> --private=false --personal=true --path=clusters/my-cluster
# Run bootstrap for a private repository hosted on Gitea Enterprise using SSH auth
flux bootstrap gitea --owner=<organization> --repository=<repository name> --hostname=<domain> --ssh-hostname=<domain> --path=clusters/my-cluster
# Run bootstrap for a private repository hosted on Gitea Enterprise using HTTPS auth
flux bootstrap gitea --owner=<organization> --repository=<repository name> --hostname=<domain> --token-auth --path=clusters/my-cluster
# Run bootstrap for an existing repository with a branch named main
flux bootstrap gitea --owner=<organization> --repository=<repository name> --branch=main --path=clusters/my-cluster`,
RunE: bootstrapGiteaCmdRun,
}
type giteaFlags struct {
owner string
repository string
interval time.Duration
personal bool
private bool
hostname string
path flags.SafeRelativePath
teams []string
readWriteKey bool
reconcile bool
}
const (
gtDefaultPermission = "maintain"
gtDefaultDomain = "gitea.com"
gtTokenEnvVar = "GITEA_TOKEN"
)
var giteaArgs giteaFlags
func init() {
bootstrapGiteaCmd.Flags().StringVar(&giteaArgs.owner, "owner", "", "Gitea user or organization name")
bootstrapGiteaCmd.Flags().StringVar(&giteaArgs.repository, "repository", "", "Gitea repository name")
bootstrapGiteaCmd.Flags().StringSliceVar(&giteaArgs.teams, "team", []string{}, "Gitea team and the access to be given to it(team:maintain). Defaults to maintainer access if no access level is specified (also accepts comma-separated values)")
bootstrapGiteaCmd.Flags().BoolVar(&giteaArgs.personal, "personal", false, "if true, the owner is assumed to be a Gitea user; otherwise an org")
bootstrapGiteaCmd.Flags().BoolVar(&giteaArgs.private, "private", true, "if true, the repository is setup or configured as private")
bootstrapGiteaCmd.Flags().DurationVar(&giteaArgs.interval, "interval", time.Minute, "sync interval")
bootstrapGiteaCmd.Flags().StringVar(&giteaArgs.hostname, "hostname", gtDefaultDomain, "Gitea hostname")
bootstrapGiteaCmd.Flags().Var(&giteaArgs.path, "path", "path relative to the repository root, when specified the cluster sync will be scoped to this path")
bootstrapGiteaCmd.Flags().BoolVar(&giteaArgs.readWriteKey, "read-write-key", false, "if true, the deploy key is configured with read/write permissions")
bootstrapGiteaCmd.Flags().BoolVar(&giteaArgs.reconcile, "reconcile", false, "if true, the configured options are also reconciled if the repository already exists")
bootstrapCmd.AddCommand(bootstrapGiteaCmd)
}
func bootstrapGiteaCmdRun(cmd *cobra.Command, args []string) error {
gtToken := os.Getenv(gtTokenEnvVar)
if gtToken == "" {
var err error
gtToken, err = readPasswordFromStdin("Please enter your Gitea personal access token (PAT): ")
if err != nil {
return fmt.Errorf("could not read token: %w", err)
}
}
if err := bootstrapValidate(); err != nil {
return err
}
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
// Manifest base
if ver, err := getVersion(bootstrapArgs.version); err != nil {
return err
} else {
bootstrapArgs.version = ver
}
manifestsBase, err := buildEmbeddedManifestBase()
if err != nil {
return err
}
defer os.RemoveAll(manifestsBase)
var caBundle []byte
if bootstrapArgs.caFile != "" {
var err error
caBundle, err = os.ReadFile(bootstrapArgs.caFile)
if err != nil {
return fmt.Errorf("unable to read TLS CA file: %w", err)
}
}
// Build Gitea provider
providerCfg := provider.Config{
Provider: provider.GitProviderGitea,
Hostname: giteaArgs.hostname,
Token: gtToken,
CaBundle: caBundle,
}
providerClient, err := provider.BuildGitProvider(providerCfg)
if err != nil {
return err
}
tmpDir, err := manifestgen.MkdirTempAbs("", "flux-bootstrap-")
if err != nil {
return fmt.Errorf("failed to create temporary working dir: %w", err)
}
defer os.RemoveAll(tmpDir)
clientOpts := []gogit.ClientOption{gogit.WithDiskStorage(), gogit.WithFallbackToDefaultKnownHosts()}
gitClient, err := gogit.NewClient(tmpDir, &git.AuthOptions{
Transport: git.HTTPS,
Username: giteaArgs.owner,
Password: gtToken,
CAFile: caBundle,
}, clientOpts...)
if err != nil {
return fmt.Errorf("failed to create a Git client: %w", err)
}
// Install manifest config
installOptions := install.Options{
BaseURL: rootArgs.defaults.BaseURL,
Version: bootstrapArgs.version,
Namespace: *kubeconfigArgs.Namespace,
Components: bootstrapComponents(),
Registry: bootstrapArgs.registry,
RegistryCredential: bootstrapArgs.registryCredential,
ImagePullSecret: bootstrapArgs.imagePullSecret,
WatchAllNamespaces: bootstrapArgs.watchAllNamespaces,
NetworkPolicy: bootstrapArgs.networkPolicy,
LogLevel: bootstrapArgs.logLevel.String(),
NotificationController: rootArgs.defaults.NotificationController,
ManifestFile: rootArgs.defaults.ManifestFile,
Timeout: rootArgs.timeout,
TargetPath: giteaArgs.path.ToSlash(),
ClusterDomain: bootstrapArgs.clusterDomain,
TolerationKeys: bootstrapArgs.tolerationKeys,
}
if customBaseURL := bootstrapArgs.manifestsPath; customBaseURL != "" {
installOptions.BaseURL = customBaseURL
}
// Source generation and secret config
secretOpts := sourcesecret.Options{
Name: bootstrapArgs.secretName,
Namespace: *kubeconfigArgs.Namespace,
TargetPath: giteaArgs.path.ToSlash(),
ManifestFile: sourcesecret.MakeDefaultOptions().ManifestFile,
}
if bootstrapArgs.tokenAuth {
secretOpts.Username = "git"
secretOpts.Password = gtToken
secretOpts.CACrt = caBundle
} else {
secretOpts.PrivateKeyAlgorithm = sourcesecret.PrivateKeyAlgorithm(bootstrapArgs.keyAlgorithm)
secretOpts.RSAKeyBits = int(bootstrapArgs.keyRSABits)
secretOpts.ECDSACurve = bootstrapArgs.keyECDSACurve.Curve
secretOpts.SSHHostname = giteaArgs.hostname
if bootstrapArgs.sshHostname != "" {
secretOpts.SSHHostname = bootstrapArgs.sshHostname
}
}
// Sync manifest config
syncOpts := sync.Options{
Interval: giteaArgs.interval,
Name: *kubeconfigArgs.Namespace,
Namespace: *kubeconfigArgs.Namespace,
Branch: bootstrapArgs.branch,
Secret: bootstrapArgs.secretName,
TargetPath: giteaArgs.path.ToSlash(),
ManifestFile: sync.MakeDefaultOptions().ManifestFile,
RecurseSubmodules: bootstrapArgs.recurseSubmodules,
}
entityList, err := bootstrap.LoadEntityListFromPath(bootstrapArgs.gpgKeyRingPath)
if err != nil {
return err
}
// Bootstrap config
bootstrapOpts := []bootstrap.GitProviderOption{
bootstrap.WithProviderRepository(giteaArgs.owner, giteaArgs.repository, giteaArgs.personal),
bootstrap.WithBranch(bootstrapArgs.branch),
bootstrap.WithBootstrapTransportType("https"),
bootstrap.WithSignature(bootstrapArgs.authorName, bootstrapArgs.authorEmail),
bootstrap.WithCommitMessageAppendix(bootstrapArgs.commitMessageAppendix),
bootstrap.WithProviderTeamPermissions(mapTeamSlice(giteaArgs.teams, gtDefaultPermission)),
bootstrap.WithReadWriteKeyPermissions(giteaArgs.readWriteKey),
bootstrap.WithKubeconfig(kubeconfigArgs, kubeclientOptions),
bootstrap.WithLogger(logger),
bootstrap.WithGitCommitSigning(entityList, bootstrapArgs.gpgPassphrase, bootstrapArgs.gpgKeyID),
}
if bootstrapArgs.sshHostname != "" {
bootstrapOpts = append(bootstrapOpts, bootstrap.WithSSHHostname(bootstrapArgs.sshHostname))
}
if bootstrapArgs.tokenAuth {
bootstrapOpts = append(bootstrapOpts, bootstrap.WithSyncTransportType("https"))
}
if !giteaArgs.private {
bootstrapOpts = append(bootstrapOpts, bootstrap.WithProviderRepositoryConfig("", "", "public"))
}
if giteaArgs.reconcile {
bootstrapOpts = append(bootstrapOpts, bootstrap.WithReconcile())
}
// Setup bootstrapper with constructed configs
b, err := bootstrap.NewGitProviderBootstrapper(gitClient, providerClient, kubeClient, bootstrapOpts...)
if err != nil {
return err
}
// Run
return bootstrap.Run(ctx, b, manifestsBase, installOptions, secretOpts, syncOpts, rootArgs.pollInterval, rootArgs.timeout)
}

View File

@@ -22,53 +22,51 @@ import (
"os"
"time"
"github.com/go-git/go-git/v5/plumbing/transport/http"
"github.com/fluxcd/pkg/git"
"github.com/fluxcd/pkg/git/gogit"
"github.com/spf13/cobra"
"github.com/fluxcd/flux2/internal/bootstrap"
"github.com/fluxcd/flux2/internal/bootstrap/git/gogit"
"github.com/fluxcd/flux2/internal/bootstrap/provider"
"github.com/fluxcd/flux2/internal/flags"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/pkg/manifestgen/install"
"github.com/fluxcd/flux2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/flux2/pkg/manifestgen/sync"
"github.com/fluxcd/flux2/v2/internal/flags"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/bootstrap"
"github.com/fluxcd/flux2/v2/pkg/bootstrap/provider"
"github.com/fluxcd/flux2/v2/pkg/manifestgen"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/install"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sync"
)
var bootstrapGitHubCmd = &cobra.Command{
Use: "github",
Short: "Bootstrap toolkit components in a GitHub repository",
Short: "Deploy Flux on a cluster connected to a GitHub repository",
Long: `The bootstrap github command creates the GitHub repository if it doesn't exists and
commits the toolkit components manifests to the main branch.
Then it configures the target cluster to synchronize with the repository.
If the toolkit components are present on the cluster,
commits the Flux manifests to the specified branch.
Then it configures the target cluster to synchronize with that repository.
If the Flux components are present on the cluster,
the bootstrap command will perform an upgrade if needed.`,
Example: ` # Create a GitHub personal access token and export it as an env var
export GITHUB_TOKEN=<my-token>
# Run bootstrap for a private repository owned by a GitHub organization
flux bootstrap github --owner=<organization> --repository=<repository name>
flux bootstrap github --owner=<organization> --repository=<repository name> --path=clusters/my-cluster
# Run bootstrap for a private repository and assign organization teams to it
flux bootstrap github --owner=<organization> --repository=<repository name> --team=<team1 slug> --team=<team2 slug>
flux bootstrap github --owner=<organization> --repository=<repository name> --team=<team1 slug> --team=<team2 slug> --path=clusters/my-cluster
# Run bootstrap for a private repository and assign organization teams with their access level(e.g maintain, admin) to it
flux bootstrap github --owner=<organization> --repository=<repository name> --team=<team1 slug>:<access-level>
# Run bootstrap for a repository path
flux bootstrap github --owner=<organization> --repository=<repository name> --path=dev-cluster
flux bootstrap github --owner=<organization> --repository=<repository name> --team=<team1 slug>:<access-level> --path=clusters/my-cluster
# Run bootstrap for a public repository on a personal account
flux bootstrap github --owner=<user> --repository=<repository name> --private=false --personal=true
flux bootstrap github --owner=<user> --repository=<repository name> --private=false --personal=true --path=clusters/my-cluster
# Run bootstrap for a private repository hosted on GitHub Enterprise using SSH auth
flux bootstrap github --owner=<organization> --repository=<repository name> --hostname=<domain> --ssh-hostname=<domain>
flux bootstrap github --owner=<organization> --repository=<repository name> --hostname=<domain> --ssh-hostname=<domain> --path=clusters/my-cluster
# Run bootstrap for a private repository hosted on GitHub Enterprise using HTTPS auth
flux bootstrap github --owner=<organization> --repository=<repository name> --hostname=<domain> --token-auth
flux bootstrap github --owner=<organization> --repository=<repository name> --hostname=<domain> --token-auth --path=clusters/my-cluster
# Run bootstrap for an existing repository with a branch named main
flux bootstrap github --owner=<organization> --repository=<repository name> --branch=main`,
flux bootstrap github --owner=<organization> --repository=<repository name> --branch=main --path=clusters/my-cluster`,
RunE: bootstrapGitHubCmdRun,
}
@@ -125,13 +123,22 @@ func bootstrapGitHubCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
if !bootstrapArgs.force {
err = confirmBootstrap(ctx, kubeClient)
if err != nil {
return err
}
}
// Manifest base
if ver, err := getVersion(bootstrapArgs.version); err == nil {
if ver, err := getVersion(bootstrapArgs.version); err != nil {
return err
} else {
bootstrapArgs.version = ver
}
manifestsBase, err := buildEmbeddedManifestBase()
@@ -160,16 +167,22 @@ func bootstrapGitHubCmdRun(cmd *cobra.Command, args []string) error {
return err
}
// Lazy go-git repository
tmpDir, err := os.MkdirTemp("", "flux-bootstrap-")
tmpDir, err := manifestgen.MkdirTempAbs("", "flux-bootstrap-")
if err != nil {
return fmt.Errorf("failed to create temporary working dir: %w", err)
}
defer os.RemoveAll(tmpDir)
gitClient := gogit.New(tmpDir, &http.BasicAuth{
Username: githubArgs.owner,
Password: ghToken,
})
clientOpts := []gogit.ClientOption{gogit.WithDiskStorage(), gogit.WithFallbackToDefaultKnownHosts()}
gitClient, err := gogit.NewClient(tmpDir, &git.AuthOptions{
Transport: git.HTTPS,
Username: githubArgs.owner,
Password: ghToken,
CAFile: caBundle,
}, clientOpts...)
if err != nil {
return fmt.Errorf("failed to create a Git client: %w", err)
}
// Install manifest config
installOptions := install.Options{
@@ -178,6 +191,7 @@ func bootstrapGitHubCmdRun(cmd *cobra.Command, args []string) error {
Namespace: *kubeconfigArgs.Namespace,
Components: bootstrapComponents(),
Registry: bootstrapArgs.registry,
RegistryCredential: bootstrapArgs.registryCredential,
ImagePullSecret: bootstrapArgs.imagePullSecret,
WatchAllNamespaces: bootstrapArgs.watchAllNamespaces,
NetworkPolicy: bootstrapArgs.networkPolicy,
@@ -203,16 +217,13 @@ func bootstrapGitHubCmdRun(cmd *cobra.Command, args []string) error {
if bootstrapArgs.tokenAuth {
secretOpts.Username = "git"
secretOpts.Password = ghToken
if bootstrapArgs.caFile != "" {
secretOpts.CAFilePath = bootstrapArgs.caFile
}
secretOpts.CACrt = caBundle
} else {
secretOpts.PrivateKeyAlgorithm = sourcesecret.PrivateKeyAlgorithm(bootstrapArgs.keyAlgorithm)
secretOpts.RSAKeyBits = int(bootstrapArgs.keyRSABits)
secretOpts.ECDSACurve = bootstrapArgs.keyECDSACurve.Curve
secretOpts.SSHHostname = githubArgs.hostname
secretOpts.SSHHostname = githubArgs.hostname
if bootstrapArgs.sshHostname != "" {
secretOpts.SSHHostname = bootstrapArgs.sshHostname
}
@@ -227,23 +238,26 @@ func bootstrapGitHubCmdRun(cmd *cobra.Command, args []string) error {
Secret: bootstrapArgs.secretName,
TargetPath: githubArgs.path.ToSlash(),
ManifestFile: sync.MakeDefaultOptions().ManifestFile,
GitImplementation: sourceGitArgs.gitImplementation.String(),
RecurseSubmodules: bootstrapArgs.recurseSubmodules,
}
entityList, err := bootstrap.LoadEntityListFromPath(bootstrapArgs.gpgKeyRingPath)
if err != nil {
return err
}
// Bootstrap config
bootstrapOpts := []bootstrap.GitProviderOption{
bootstrap.WithProviderRepository(githubArgs.owner, githubArgs.repository, githubArgs.personal),
bootstrap.WithBranch(bootstrapArgs.branch),
bootstrap.WithBootstrapTransportType("https"),
bootstrap.WithAuthor(bootstrapArgs.authorName, bootstrapArgs.authorEmail),
bootstrap.WithSignature(bootstrapArgs.authorName, bootstrapArgs.authorEmail),
bootstrap.WithCommitMessageAppendix(bootstrapArgs.commitMessageAppendix),
bootstrap.WithProviderTeamPermissions(mapTeamSlice(githubArgs.teams, ghDefaultPermission)),
bootstrap.WithReadWriteKeyPermissions(githubArgs.readWriteKey),
bootstrap.WithKubeconfig(kubeconfigArgs),
bootstrap.WithKubeconfig(kubeconfigArgs, kubeclientOptions),
bootstrap.WithLogger(logger),
bootstrap.WithCABundle(caBundle),
bootstrap.WithGitCommitSigning(bootstrapArgs.gpgKeyRingPath, bootstrapArgs.gpgPassphrase, bootstrapArgs.gpgKeyID),
bootstrap.WithGitCommitSigning(entityList, bootstrapArgs.gpgPassphrase, bootstrapArgs.gpgKeyID),
}
if bootstrapArgs.sshHostname != "" {
bootstrapOpts = append(bootstrapOpts, bootstrap.WithSSHHostname(bootstrapArgs.sshHostname))

View File

@@ -24,26 +24,28 @@ import (
"strings"
"time"
"github.com/go-git/go-git/v5/plumbing/transport/http"
"github.com/fluxcd/go-git-providers/gitprovider"
"github.com/fluxcd/pkg/git"
"github.com/fluxcd/pkg/git/gogit"
"github.com/spf13/cobra"
"github.com/fluxcd/flux2/internal/bootstrap"
"github.com/fluxcd/flux2/internal/bootstrap/git/gogit"
"github.com/fluxcd/flux2/internal/bootstrap/provider"
"github.com/fluxcd/flux2/internal/flags"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/pkg/manifestgen/install"
"github.com/fluxcd/flux2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/flux2/pkg/manifestgen/sync"
"github.com/fluxcd/flux2/v2/internal/flags"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/bootstrap"
"github.com/fluxcd/flux2/v2/pkg/bootstrap/provider"
"github.com/fluxcd/flux2/v2/pkg/manifestgen"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/install"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sync"
)
var bootstrapGitLabCmd = &cobra.Command{
Use: "gitlab",
Short: "Bootstrap toolkit components in a GitLab repository",
Long: `The bootstrap gitlab command creates the GitLab repository if it doesn't exists and
commits the toolkit components manifests to the master branch.
Then it configures the target cluster to synchronize with the repository.
If the toolkit components are present on the cluster,
Short: "Deploy Flux on a cluster connected to a GitLab repository",
Long: `The bootstrap gitlab command creates the GitLab repository if it doesn't exist and
commits the Flux manifests to the specified branch.
Then it configures the target cluster to synchronize with that repository.
If the Flux components are present on the cluster,
the bootstrap command will perform an upgrade if needed.`,
Example: ` # Create a GitLab API token and export it as an env var
export GITLAB_TOKEN=<my-token>
@@ -57,14 +59,18 @@ the bootstrap command will perform an upgrade if needed.`,
# Run bootstrap for a repository path
flux bootstrap gitlab --owner=<group> --repository=<repository name> --path=dev-cluster
# Run bootstrap for a public repository on a personal account
flux bootstrap gitlab --owner=<user> --repository=<repository name> --private=false --personal --token-auth
# Run bootstrap for a public repository
flux bootstrap gitlab --owner=<group> --repository=<repository name> --visibility=public --token-auth
# Run bootstrap for a private repository hosted on a GitLab server
flux bootstrap gitlab --owner=<group> --repository=<repository name> --hostname=<domain> --token-auth
flux bootstrap gitlab --owner=<group> --repository=<repository name> --hostname=<gitlab_url> --token-auth
# Run bootstrap for a an existing repository with a branch named main
flux bootstrap gitlab --owner=<organization> --repository=<repository name> --branch=main --token-auth`,
# Run bootstrap for an existing repository with a branch named main
flux bootstrap gitlab --owner=<group> --repository=<repository name> --branch=main --token-auth
# Run bootstrap for a private repository using Deploy Token authentication
flux bootstrap gitlab --owner=<group> --repository=<repository name> --deploy-token-auth
`,
RunE: bootstrapGitLabCmdRun,
}
@@ -76,19 +82,27 @@ const (
)
type gitlabFlags struct {
owner string
repository string
interval time.Duration
personal bool
private bool
hostname string
path flags.SafeRelativePath
teams []string
readWriteKey bool
reconcile bool
owner string
repository string
interval time.Duration
personal bool
visibility flags.GitLabVisibility
private bool
hostname string
path flags.SafeRelativePath
teams []string
readWriteKey bool
reconcile bool
deployTokenAuth bool
}
var gitlabArgs gitlabFlags
func NewGitlabFlags() gitlabFlags {
return gitlabFlags{
visibility: flags.GitLabVisibility(gitprovider.RepositoryVisibilityPrivate),
}
}
var gitlabArgs = NewGitlabFlags()
func init() {
bootstrapGitLabCmd.Flags().StringVar(&gitlabArgs.owner, "owner", "", "GitLab user or group name")
@@ -96,11 +110,14 @@ func init() {
bootstrapGitLabCmd.Flags().StringSliceVar(&gitlabArgs.teams, "team", []string{}, "GitLab teams to be given maintainer access (also accepts comma-separated values)")
bootstrapGitLabCmd.Flags().BoolVar(&gitlabArgs.personal, "personal", false, "if true, the owner is assumed to be a GitLab user; otherwise a group")
bootstrapGitLabCmd.Flags().BoolVar(&gitlabArgs.private, "private", true, "if true, the repository is setup or configured as private")
bootstrapGitLabCmd.Flags().MarkDeprecated("private", "use --visibility instead")
bootstrapGitLabCmd.Flags().Var(&gitlabArgs.visibility, "visibility", gitlabArgs.visibility.Description())
bootstrapGitLabCmd.Flags().DurationVar(&gitlabArgs.interval, "interval", time.Minute, "sync interval")
bootstrapGitLabCmd.Flags().StringVar(&gitlabArgs.hostname, "hostname", glDefaultDomain, "GitLab hostname")
bootstrapGitLabCmd.Flags().Var(&gitlabArgs.path, "path", "path relative to the repository root, when specified the cluster sync will be scoped to this path")
bootstrapGitLabCmd.Flags().BoolVar(&gitlabArgs.readWriteKey, "read-write-key", false, "if true, the deploy key is configured with read/write permissions")
bootstrapGitLabCmd.Flags().BoolVar(&gitlabArgs.reconcile, "reconcile", false, "if true, the configured options are also reconciled if the repository already exists")
bootstrapGitLabCmd.Flags().BoolVar(&gitlabArgs.deployTokenAuth, "deploy-token-auth", false, "when enabled, a Project Deploy Token is generated and will be used instead of the SSH deploy token")
bootstrapCmd.AddCommand(bootstrapGitLabCmd)
}
@@ -122,6 +139,15 @@ func bootstrapGitLabCmdRun(cmd *cobra.Command, args []string) error {
return err
}
if bootstrapArgs.tokenAuth && gitlabArgs.deployTokenAuth {
return fmt.Errorf("--token-auth and --deploy-token-auth cannot be set both.")
}
if !gitlabArgs.private {
gitlabArgs.visibility.Set(string(gitprovider.RepositoryVisibilityPublic))
cmd.Println("Using visibility public as --private=false")
}
if err := bootstrapValidate(); err != nil {
return err
}
@@ -129,13 +155,22 @@ func bootstrapGitLabCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
if !bootstrapArgs.force {
err = confirmBootstrap(ctx, kubeClient)
if err != nil {
return err
}
}
// Manifest base
if ver, err := getVersion(bootstrapArgs.version); err == nil {
if ver, err := getVersion(bootstrapArgs.version); err != nil {
return err
} else {
bootstrapArgs.version = ver
}
manifestsBase, err := buildEmbeddedManifestBase()
@@ -172,15 +207,22 @@ func bootstrapGitLabCmdRun(cmd *cobra.Command, args []string) error {
}
// Lazy go-git repository
tmpDir, err := os.MkdirTemp("", "flux-bootstrap-")
tmpDir, err := manifestgen.MkdirTempAbs("", "flux-bootstrap-")
if err != nil {
return fmt.Errorf("failed to create temporary working dir: %w", err)
}
defer os.RemoveAll(tmpDir)
gitClient := gogit.New(tmpDir, &http.BasicAuth{
Username: gitlabArgs.owner,
Password: glToken,
})
clientOpts := []gogit.ClientOption{gogit.WithDiskStorage(), gogit.WithFallbackToDefaultKnownHosts()}
gitClient, err := gogit.NewClient(tmpDir, &git.AuthOptions{
Transport: git.HTTPS,
Username: gitlabArgs.owner,
Password: glToken,
CAFile: caBundle,
}, clientOpts...)
if err != nil {
return fmt.Errorf("failed to create a Git client: %w", err)
}
// Install manifest config
installOptions := install.Options{
@@ -189,6 +231,7 @@ func bootstrapGitLabCmdRun(cmd *cobra.Command, args []string) error {
Namespace: *kubeconfigArgs.Namespace,
Components: bootstrapComponents(),
Registry: bootstrapArgs.registry,
RegistryCredential: bootstrapArgs.registryCredential,
ImagePullSecret: bootstrapArgs.imagePullSecret,
WatchAllNamespaces: bootstrapArgs.watchAllNamespaces,
NetworkPolicy: bootstrapArgs.networkPolicy,
@@ -214,19 +257,21 @@ func bootstrapGitLabCmdRun(cmd *cobra.Command, args []string) error {
if bootstrapArgs.tokenAuth {
secretOpts.Username = "git"
secretOpts.Password = glToken
if bootstrapArgs.caFile != "" {
secretOpts.CAFilePath = bootstrapArgs.caFile
}
secretOpts.CACrt = caBundle
} else if gitlabArgs.deployTokenAuth {
// the actual deploy token will be reconciled later
secretOpts.CACrt = caBundle
} else {
keypair, err := sourcesecret.LoadKeyPairFromPath(bootstrapArgs.privateKeyFile, gitArgs.password)
if err != nil {
return err
}
secretOpts.Keypair = keypair
secretOpts.PrivateKeyAlgorithm = sourcesecret.PrivateKeyAlgorithm(bootstrapArgs.keyAlgorithm)
secretOpts.RSAKeyBits = int(bootstrapArgs.keyRSABits)
secretOpts.ECDSACurve = bootstrapArgs.keyECDSACurve.Curve
secretOpts.SSHHostname = gitlabArgs.hostname
if bootstrapArgs.privateKeyFile != "" {
secretOpts.PrivateKeyPath = bootstrapArgs.privateKeyFile
}
secretOpts.SSHHostname = gitlabArgs.hostname
if bootstrapArgs.sshHostname != "" {
secretOpts.SSHHostname = bootstrapArgs.sshHostname
}
@@ -241,32 +286,36 @@ func bootstrapGitLabCmdRun(cmd *cobra.Command, args []string) error {
Secret: bootstrapArgs.secretName,
TargetPath: gitlabArgs.path.ToSlash(),
ManifestFile: sync.MakeDefaultOptions().ManifestFile,
GitImplementation: sourceGitArgs.gitImplementation.String(),
RecurseSubmodules: bootstrapArgs.recurseSubmodules,
}
entityList, err := bootstrap.LoadEntityListFromPath(bootstrapArgs.gpgKeyRingPath)
if err != nil {
return err
}
// Bootstrap config
bootstrapOpts := []bootstrap.GitProviderOption{
bootstrap.WithProviderRepository(gitlabArgs.owner, gitlabArgs.repository, gitlabArgs.personal),
bootstrap.WithProviderVisibility(gitlabArgs.visibility.String()),
bootstrap.WithBranch(bootstrapArgs.branch),
bootstrap.WithBootstrapTransportType("https"),
bootstrap.WithAuthor(bootstrapArgs.authorName, bootstrapArgs.authorEmail),
bootstrap.WithSignature(bootstrapArgs.authorName, bootstrapArgs.authorEmail),
bootstrap.WithCommitMessageAppendix(bootstrapArgs.commitMessageAppendix),
bootstrap.WithProviderTeamPermissions(mapTeamSlice(gitlabArgs.teams, glDefaultPermission)),
bootstrap.WithReadWriteKeyPermissions(gitlabArgs.readWriteKey),
bootstrap.WithKubeconfig(kubeconfigArgs),
bootstrap.WithKubeconfig(kubeconfigArgs, kubeclientOptions),
bootstrap.WithLogger(logger),
bootstrap.WithCABundle(caBundle),
bootstrap.WithGitCommitSigning(bootstrapArgs.gpgKeyRingPath, bootstrapArgs.gpgPassphrase, bootstrapArgs.gpgKeyID),
bootstrap.WithGitCommitSigning(entityList, bootstrapArgs.gpgPassphrase, bootstrapArgs.gpgKeyID),
}
if bootstrapArgs.sshHostname != "" {
bootstrapOpts = append(bootstrapOpts, bootstrap.WithSSHHostname(bootstrapArgs.sshHostname))
}
if bootstrapArgs.tokenAuth {
if bootstrapArgs.tokenAuth || gitlabArgs.deployTokenAuth {
bootstrapOpts = append(bootstrapOpts, bootstrap.WithSyncTransportType("https"))
}
if !gitlabArgs.private {
bootstrapOpts = append(bootstrapOpts, bootstrap.WithProviderRepositoryConfig("", "", "public"))
if gitlabArgs.deployTokenAuth {
bootstrapOpts = append(bootstrapOpts, bootstrap.WithDeployTokenAuth())
}
if gitlabArgs.reconcile {
bootstrapOpts = append(bootstrapOpts, bootstrap.WithReconcile())

View File

@@ -23,7 +23,7 @@ import (
var buildCmd = &cobra.Command{
Use: "build",
Short: "Build a flux resource",
Long: "The build command is used to build flux resources.",
Long: `The build command is used to build flux resources.`,
}
func init() {

117
cmd/flux/build_artifact.go Normal file
View File

@@ -0,0 +1,117 @@
/*
Copyright 2022 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"bufio"
"bytes"
"fmt"
"io"
"os"
"strings"
"github.com/spf13/cobra"
"github.com/fluxcd/pkg/oci"
"github.com/fluxcd/pkg/sourceignore"
)
var buildArtifactCmd = &cobra.Command{
Use: "artifact",
Short: "Build artifact",
Long: `The build artifact command creates a tgz file with the manifests
from the given directory or a single manifest file.`,
Example: ` # Build the given manifests directory into an artifact
flux build artifact --path ./path/to/local/manifests --output ./path/to/artifact.tgz
# Build the given single manifest file into an artifact
flux build artifact --path ./path/to/local/manifest.yaml --output ./path/to/artifact.tgz
# List the files bundled in the artifact
tar -ztvf ./path/to/artifact.tgz
`,
RunE: buildArtifactCmdRun,
}
type buildArtifactFlags struct {
output string
path string
ignorePaths []string
}
var excludeOCI = append(strings.Split(sourceignore.ExcludeVCS, ","), strings.Split(sourceignore.ExcludeExt, ",")...)
var buildArtifactArgs buildArtifactFlags
func init() {
buildArtifactCmd.Flags().StringVarP(&buildArtifactArgs.path, "path", "p", "", "Path to the directory where the Kubernetes manifests are located.")
buildArtifactCmd.Flags().StringVarP(&buildArtifactArgs.output, "output", "o", "artifact.tgz", "Path to where the artifact tgz file should be written.")
buildArtifactCmd.Flags().StringSliceVar(&buildArtifactArgs.ignorePaths, "ignore-paths", excludeOCI, "set paths to ignore in .gitignore format")
buildCmd.AddCommand(buildArtifactCmd)
}
func buildArtifactCmdRun(cmd *cobra.Command, args []string) error {
if buildArtifactArgs.path == "" {
return fmt.Errorf("invalid path %q", buildArtifactArgs.path)
}
path := buildArtifactArgs.path
var err error
if buildArtifactArgs.path == "-" {
path, err = saveReaderToFile(os.Stdin)
if err != nil {
return err
}
defer os.Remove(path)
}
if _, err := os.Stat(path); err != nil {
return fmt.Errorf("invalid path '%s', must point to an existing directory or file", path)
}
logger.Actionf("building artifact from %s", path)
ociClient := oci.NewClient(oci.DefaultOptions())
if err := ociClient.Build(buildArtifactArgs.output, path, buildArtifactArgs.ignorePaths); err != nil {
return fmt.Errorf("building artifact failed, error: %w", err)
}
logger.Successf("artifact created at %s", buildArtifactArgs.output)
return nil
}
func saveReaderToFile(reader io.Reader) (string, error) {
b, err := io.ReadAll(bufio.NewReader(reader))
if err != nil {
return "", err
}
b = bytes.TrimRight(b, "\r\n")
f, err := os.CreateTemp("", "*.yaml")
if err != nil {
return "", fmt.Errorf("unable to create temp dir for stdin")
}
defer f.Close()
if _, err := f.Write(b); err != nil {
return "", fmt.Errorf("error writing stdin to file: %w", err)
}
return f.Name(), nil
}

View File

@@ -0,0 +1,70 @@
/*
Copyright 2022 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"os"
"strings"
"testing"
. "github.com/onsi/gomega"
)
func Test_saveReaderToFile(t *testing.T) {
g := NewWithT(t)
testString := `apiVersion: v1
kind: ConfigMap
metadata:
name: myapp
data:
foo: bar`
tests := []struct {
name string
string string
expectErr bool
}{
{
name: "yaml",
string: testString,
},
{
name: "yaml with carriage return",
string: testString + "\r\n",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
tmpFile, err := saveReaderToFile(strings.NewReader(tt.string))
g.Expect(err).To(BeNil())
t.Cleanup(func() { _ = os.Remove(tmpFile) })
b, err := os.ReadFile(tmpFile)
if tt.expectErr {
g.Expect(err).To(Not(BeNil()))
return
}
g.Expect(err).To(BeNil())
g.Expect(string(b)).To(BeEquivalentTo(testString))
})
}
}

View File

@@ -20,11 +20,14 @@ import (
"fmt"
"os"
"os/signal"
"path/filepath"
"github.com/spf13/cobra"
"github.com/fluxcd/flux2/internal/build"
kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1beta2"
kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1"
ssautil "github.com/fluxcd/pkg/ssa/utils"
"github.com/fluxcd/flux2/v2/internal/build"
)
var buildKsCmd = &cobra.Command{
@@ -33,25 +36,59 @@ var buildKsCmd = &cobra.Command{
Short: "Build Kustomization",
Long: `The build command queries the Kubernetes API and fetches the specified Flux Kustomization.
It then uses the fetched in cluster flux kustomization to perform needed transformation on the local kustomization.yaml
pointed at by --path. The local kustomization.yaml is generated if it does not exist. Finally it builds the overlays using the local kustomization.yaml, and write the resulting multi-doc YAML to stdout.`,
pointed at by --path. The local kustomization.yaml is generated if it does not exist. Finally it builds the overlays using the local kustomization.yaml, and write the resulting multi-doc YAML to stdout.
It is possible to specify a Flux kustomization file using --kustomization-file.`,
Example: `# Build the local manifests as they were built on the cluster
flux build kustomization my-app --path ./path/to/local/manifests`,
flux build kustomization my-app --path ./path/to/local/manifests
# Build using a local flux kustomization file
flux build kustomization my-app --path ./path/to/local/manifests --kustomization-file ./path/to/local/my-app.yaml
# Build in dry-run mode without connecting to the cluster.
# Note that variable substitutions from Secrets and ConfigMaps are skipped in dry-run mode.
flux build kustomization my-app --path ./path/to/local/manifests \
--kustomization-file ./path/to/local/my-app.yaml \
--dry-run
# Exclude files by providing a comma separated list of entries that follow the .gitignore pattern fromat.
flux build kustomization my-app --path ./path/to/local/manifests \
--kustomization-file ./path/to/local/my-app.yaml \
--ignore-paths "/to_ignore/**/*.yaml,ignore.yaml"
# Run recursively on all encountered Kustomizations
flux build kustomization my-app --path ./path/to/local/manifests \
--recursive \
--local-sources GitRepository/flux-system/my-repo=./path/to/local/git`,
ValidArgsFunction: resourceNamesCompletionFunc(kustomizev1.GroupVersion.WithKind(kustomizev1.KustomizationKind)),
RunE: buildKsCmdRun,
}
type buildKsFlags struct {
path string
kustomizationFile string
path string
ignorePaths []string
dryRun bool
strictSubst bool
recursive bool
localSources map[string]string
}
var buildKsArgs buildKsFlags
func init() {
buildKsCmd.Flags().StringVar(&buildKsArgs.path, "path", "", "Path to the manifests location.)")
buildKsCmd.Flags().StringVar(&buildKsArgs.path, "path", "", "Path to the manifests location.")
buildKsCmd.Flags().StringVar(&buildKsArgs.kustomizationFile, "kustomization-file", "", "Path to the Flux Kustomization YAML file.")
buildKsCmd.Flags().StringSliceVar(&buildKsArgs.ignorePaths, "ignore-paths", nil, "set paths to ignore in .gitignore format")
buildKsCmd.Flags().BoolVar(&buildKsArgs.dryRun, "dry-run", false, "Dry run mode.")
buildKsCmd.Flags().BoolVar(&buildKsArgs.strictSubst, "strict-substitute", false,
"When enabled, the post build substitutions will fail if a var without a default value is declared in files but is missing from the input vars.")
buildKsCmd.Flags().BoolVarP(&buildKsArgs.recursive, "recursive", "r", false, "Recursively build Kustomizations")
buildKsCmd.Flags().StringToStringVar(&buildKsArgs.localSources, "local-sources", nil, "Comma-separated list of repositories in format: Kind/namespace/name=path")
buildCmd.AddCommand(buildKsCmd)
}
func buildKsCmdRun(cmd *cobra.Command, args []string) error {
func buildKsCmdRun(cmd *cobra.Command, args []string) (err error) {
if len(args) < 1 {
return fmt.Errorf("%s name is required", kustomizationType.humanKind)
}
@@ -61,11 +98,51 @@ func buildKsCmdRun(cmd *cobra.Command, args []string) error {
return fmt.Errorf("invalid resource path %q", buildKsArgs.path)
}
// Normalize the path to handle Windows absolute and relative paths correctly
buildKsArgs.path, err = filepath.Abs(buildKsArgs.path)
if err != nil {
return fmt.Errorf("failed to resolve absolute path: %w", err)
}
buildKsArgs.path = filepath.Clean(buildKsArgs.path)
if fs, err := os.Stat(buildKsArgs.path); err != nil || !fs.IsDir() {
return fmt.Errorf("invalid resource path %q", buildKsArgs.path)
}
builder, err := build.NewBuilder(kubeconfigArgs, name, buildKsArgs.path, build.WithTimeout(rootArgs.timeout))
if buildKsArgs.dryRun && buildKsArgs.kustomizationFile == "" {
return fmt.Errorf("dry-run mode requires a kustomization file")
}
if buildKsArgs.kustomizationFile != "" {
if fs, err := os.Stat(buildKsArgs.kustomizationFile); os.IsNotExist(err) || fs.IsDir() {
return fmt.Errorf("invalid kustomization file %q", buildKsArgs.kustomizationFile)
}
}
var builder *build.Builder
if buildKsArgs.dryRun {
builder, err = build.NewBuilder(name, buildKsArgs.path,
build.WithTimeout(rootArgs.timeout),
build.WithKustomizationFile(buildKsArgs.kustomizationFile),
build.WithDryRun(buildKsArgs.dryRun),
build.WithNamespace(*kubeconfigArgs.Namespace),
build.WithIgnore(buildKsArgs.ignorePaths),
build.WithStrictSubstitute(buildKsArgs.strictSubst),
build.WithRecursive(buildKsArgs.recursive),
build.WithLocalSources(buildKsArgs.localSources),
)
} else {
builder, err = build.NewBuilder(name, buildKsArgs.path,
build.WithClientConfig(kubeconfigArgs, kubeclientOptions),
build.WithTimeout(rootArgs.timeout),
build.WithKustomizationFile(buildKsArgs.kustomizationFile),
build.WithIgnore(buildKsArgs.ignorePaths),
build.WithStrictSubstitute(buildKsArgs.strictSubst),
build.WithRecursive(buildKsArgs.recursive),
build.WithLocalSources(buildKsArgs.localSources),
)
}
if err != nil {
return err
}
@@ -76,12 +153,17 @@ func buildKsCmdRun(cmd *cobra.Command, args []string) error {
errChan := make(chan error)
go func() {
manifests, err := builder.Build()
objects, err := builder.Build()
if err != nil {
errChan <- err
}
cmd.Print(string(manifests))
manifests, err := ssautil.ObjectsToYAML(objects)
if err != nil {
errChan <- err
}
cmd.Print(manifests)
errChan <- nil
}()

View File

@@ -20,7 +20,11 @@ limitations under the License.
package main
import (
"bytes"
"os"
"path/filepath"
"testing"
"text/template"
)
func setup(t *testing.T, tmpl map[string]string) {
@@ -54,6 +58,201 @@ func TestBuildKustomization(t *testing.T) {
resultFile: "./testdata/build-kustomization/podinfo-without-service-result.yaml",
assertFunc: "assertGoldenTemplateFile",
},
{
name: "build deployment and configmap with var substitution",
args: "build kustomization podinfo --path ./testdata/build-kustomization/var-substitution",
resultFile: "./testdata/build-kustomization/podinfo-with-var-substitution-result.yaml",
assertFunc: "assertGoldenTemplateFile",
},
{
name: "build ignore",
args: "build kustomization podinfo --path ./testdata/build-kustomization/ignore --ignore-paths \"!configmap.yaml,!secret.yaml\"",
resultFile: "./testdata/build-kustomization/podinfo-with-ignore-result.yaml",
assertFunc: "assertGoldenTemplateFile",
},
{
name: "build with recursive",
args: "build kustomization podinfo --path ./testdata/build-kustomization/podinfo-with-my-app --recursive --local-sources GitRepository/default/podinfo=./testdata/build-kustomization",
resultFile: "./testdata/build-kustomization/podinfo-with-my-app-result.yaml",
assertFunc: "assertGoldenTemplateFile",
},
}
tmpl := map[string]string{
"fluxns": allocateNamespace("flux-system"),
}
setup(t, tmpl)
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
var assert assertFunc
switch tt.assertFunc {
case "assertGoldenTemplateFile":
assert = assertGoldenTemplateFile(tt.resultFile, tmpl)
case "assertError":
assert = assertError(tt.resultFile)
}
cmd := cmdTestCase{
args: tt.args + " -n " + tmpl["fluxns"],
assert: assert,
}
cmd.runTestCmd(t)
})
}
}
func TestBuildLocalKustomization(t *testing.T) {
podinfo := `apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: podinfo
namespace: {{ .fluxns }}
spec:
interval: 5m0s
path: ./kustomize
force: true
prune: true
sourceRef:
kind: GitRepository
name: podinfo
targetNamespace: default
postBuild:
substitute:
cluster_env: "prod"
cluster_region: "eu-central-1"
`
tmpFile := filepath.Join(t.TempDir(), "podinfo.yaml")
tests := []struct {
name string
args string
resultFile string
assertFunc string
}{
{
name: "no args",
args: "build kustomization podinfo --kustomization-file ./wrongfile/ --path ./testdata/build-kustomization/podinfo",
resultFile: "invalid kustomization file \"./wrongfile/\"",
assertFunc: "assertError",
},
{
name: "build podinfo",
args: "build kustomization podinfo --kustomization-file " + tmpFile + " --path ./testdata/build-kustomization/podinfo",
resultFile: "./testdata/build-kustomization/podinfo-result.yaml",
assertFunc: "assertGoldenTemplateFile",
},
{
name: "build podinfo without service",
args: "build kustomization podinfo --kustomization-file " + tmpFile + " --path ./testdata/build-kustomization/delete-service",
resultFile: "./testdata/build-kustomization/podinfo-without-service-result.yaml",
assertFunc: "assertGoldenTemplateFile",
},
{
name: "build deployment and configmap with var substitution",
args: "build kustomization podinfo --kustomization-file " + tmpFile + " --path ./testdata/build-kustomization/var-substitution",
resultFile: "./testdata/build-kustomization/podinfo-with-var-substitution-result.yaml",
assertFunc: "assertGoldenTemplateFile",
},
{
name: "build deployment and configmap with var substitution in dry-run mode",
args: "build kustomization podinfo --kustomization-file " + tmpFile + " --path ./testdata/build-kustomization/var-substitution --dry-run",
resultFile: "./testdata/build-kustomization/podinfo-with-var-substitution-result.yaml",
assertFunc: "assertGoldenTemplateFile",
},
{
name: "build with recursive",
args: "build kustomization podinfo --kustomization-file " + tmpFile + " --path ./testdata/build-kustomization/podinfo-with-my-app --recursive --local-sources GitRepository/default/podinfo=./testdata/build-kustomization",
resultFile: "./testdata/build-kustomization/podinfo-with-my-app-result.yaml",
assertFunc: "assertGoldenTemplateFile",
},
{
name: "build with recursive in dry-run mode",
args: "build kustomization podinfo --kustomization-file " + tmpFile + " --path ./testdata/build-kustomization/podinfo-with-my-app --recursive --local-sources GitRepository/default/podinfo=./testdata/build-kustomization --dry-run",
resultFile: "./testdata/build-kustomization/podinfo-with-my-app-result.yaml",
assertFunc: "assertGoldenTemplateFile",
},
}
tmpl := map[string]string{
"fluxns": allocateNamespace("flux-system"),
}
setup(t, tmpl)
temp, err := template.New("podinfo").Parse(podinfo)
if err != nil {
t.Fatal(err)
}
var b bytes.Buffer
err = temp.Execute(&b, tmpl)
if err != nil {
t.Fatal(err)
}
err = os.WriteFile(tmpFile, b.Bytes(), 0666)
if err != nil {
t.Fatal(err)
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
var assert assertFunc
switch tt.assertFunc {
case "assertGoldenTemplateFile":
assert = assertGoldenTemplateFile(tt.resultFile, tmpl)
case "assertError":
assert = assertError(tt.resultFile)
}
cmd := cmdTestCase{
args: tt.args + " -n " + tmpl["fluxns"],
assert: assert,
}
cmd.runTestCmd(t)
})
}
}
// TestBuildKustomizationPathNormalization verifies that absolute and complex
// paths are normalized to prevent path concatenation bugs (issue #5673).
// Without normalization, paths could be duplicated like: /path/test/path/test/file
func TestBuildKustomizationPathNormalization(t *testing.T) {
// Get absolute path to testdata to test absolute path handling
absTestDataPath, err := filepath.Abs("testdata/build-kustomization/podinfo")
if err != nil {
t.Fatalf("failed to get absolute path: %v", err)
}
tests := []struct {
name string
args string
resultFile string
assertFunc string
}{
{
name: "build with absolute path",
args: "build kustomization podinfo --path " + absTestDataPath,
resultFile: "./testdata/build-kustomization/podinfo-result.yaml",
assertFunc: "assertGoldenTemplateFile",
},
{
name: "build with complex relative path (parent dir)",
args: "build kustomization podinfo --path ./testdata/build-kustomization/../build-kustomization/podinfo",
resultFile: "./testdata/build-kustomization/podinfo-result.yaml",
assertFunc: "assertGoldenTemplateFile",
},
{
name: "build with path containing redundant separators",
args: "build kustomization podinfo --path ./testdata//build-kustomization//podinfo",
resultFile: "./testdata/build-kustomization/podinfo-result.yaml",
assertFunc: "assertGoldenTemplateFile",
},
}
tmpl := map[string]string{

View File

@@ -18,28 +18,32 @@ package main
import (
"context"
"fmt"
"os"
"time"
"github.com/Masterminds/semver/v3"
"github.com/spf13/cobra"
v1 "k8s.io/api/apps/v1"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"sigs.k8s.io/controller-runtime/pkg/client"
"github.com/fluxcd/pkg/version"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/pkg/manifestgen"
"github.com/fluxcd/flux2/pkg/manifestgen/install"
"github.com/fluxcd/flux2/pkg/status"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/manifestgen"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/install"
"github.com/fluxcd/flux2/v2/pkg/status"
)
var checkCmd = &cobra.Command{
Use: "check",
Args: cobra.NoArgs,
Short: "Check requirements and installation",
Long: `The check command will perform a series of checks to validate that
the local environment is configured correctly and if the installed components are healthy.`,
Long: withPreviewNote(`The check command will perform a series of checks to validate that
the local environment is configured correctly and if the installed components are healthy.`),
Example: ` # Run pre-installation checks
flux check --pre
@@ -56,7 +60,7 @@ type checkFlags struct {
}
var kubernetesConstraints = []string{
">=1.20.6-0",
">=1.33.0-0",
}
var checkArgs checkFlags
@@ -79,7 +83,20 @@ func runCheckCmd(cmd *cobra.Command, args []string) error {
fluxCheck()
if !kubernetesCheck(kubernetesConstraints) {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
cfg, err := utils.KubeConfig(kubeconfigArgs, kubeclientOptions)
if err != nil {
return fmt.Errorf("Kubernetes client initialization failed: %s", err.Error())
}
kubeClient, err := client.New(cfg, client.Options{Scheme: utils.NewScheme()})
if err != nil {
return err
}
if !kubernetesCheck(cfg, kubernetesConstraints) {
checkFailed = true
}
@@ -91,13 +108,26 @@ func runCheckCmd(cmd *cobra.Command, args []string) error {
return nil
}
logger.Actionf("checking controllers")
if !componentsCheck() {
logger.Actionf("checking version in cluster")
if !fluxClusterVersionCheck(ctx, kubeClient) {
checkFailed = true
}
logger.Actionf("checking controllers")
if !componentsCheck(ctx, kubeClient) {
checkFailed = true
}
logger.Actionf("checking crds")
if !crdsCheck(ctx, kubeClient) {
checkFailed = true
}
if checkFailed {
logger.Failuref("check failed")
os.Exit(1)
}
logger.Successf("all checks passed")
return nil
}
@@ -120,17 +150,11 @@ func fluxCheck() {
return
}
if latestSv.GreaterThan(curSv) {
logger.Failuref("flux %s <%s (new version is available, please upgrade)", curSv, latestSv)
logger.Failuref("flux %s <%s (new CLI version is available, please upgrade)", curSv, latestSv)
}
}
func kubernetesCheck(constraints []string) bool {
cfg, err := utils.KubeConfig(kubeconfigArgs)
if err != nil {
logger.Failuref("Kubernetes client initialization failed: %s", err.Error())
return false
}
func kubernetesCheck(cfg *rest.Config, constraints []string) bool {
clientSet, err := kubernetes.NewForConfig(cfg)
if err != nil {
logger.Failuref("Kubernetes client initialization failed: %s", err.Error())
@@ -169,21 +193,8 @@ func kubernetesCheck(constraints []string) bool {
return true
}
func componentsCheck() bool {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeConfig, err := utils.KubeConfig(kubeconfigArgs)
if err != nil {
return false
}
statusChecker, err := status.NewStatusChecker(kubeConfig, checkArgs.pollInterval, rootArgs.timeout, logger)
if err != nil {
return false
}
kubeClient, err := utils.KubeClient(kubeconfigArgs)
func componentsCheck(ctx context.Context, kubeClient client.Client) bool {
statusChecker, err := status.NewStatusCheckerWithClient(kubeClient, checkArgs.pollInterval, rootArgs.timeout, logger)
if err != nil {
return false
}
@@ -191,7 +202,14 @@ func componentsCheck() bool {
ok := true
selector := client.MatchingLabels{manifestgen.PartOfLabelKey: manifestgen.PartOfLabelValue}
var list v1.DeploymentList
if err := kubeClient.List(ctx, &list, client.InNamespace(*kubeconfigArgs.Namespace), selector); err == nil {
ns := *kubeconfigArgs.Namespace
if err := kubeClient.List(ctx, &list, client.InNamespace(ns), selector); err == nil {
if len(list.Items) == 0 {
logger.Failuref("no controllers found in the '%s' namespace with the label selector '%s=%s'",
ns, manifestgen.PartOfLabelKey, manifestgen.PartOfLabelValue)
return false
}
for _, d := range list.Items {
if ref, err := buildComponentObjectRefs(d.Name); err == nil {
if err := statusChecker.Assess(ref...); err != nil {
@@ -199,9 +217,47 @@ func componentsCheck() bool {
}
}
for _, c := range d.Spec.Template.Spec.Containers {
logger.Actionf(c.Image)
logger.Actionf("%s", c.Image)
}
}
}
return ok
}
func crdsCheck(ctx context.Context, kubeClient client.Client) bool {
ok := true
selector := client.MatchingLabels{manifestgen.PartOfLabelKey: manifestgen.PartOfLabelValue}
var list apiextensionsv1.CustomResourceDefinitionList
if err := kubeClient.List(ctx, &list, client.InNamespace(*kubeconfigArgs.Namespace), selector); err == nil {
if len(list.Items) == 0 {
logger.Failuref("no crds found with the label selector '%s=%s'",
manifestgen.PartOfLabelKey, manifestgen.PartOfLabelValue)
return false
}
for _, crd := range list.Items {
versions := crd.Status.StoredVersions
if len(versions) > 0 {
logger.Successf("%s", crd.Name+"/"+versions[len(versions)-1])
} else {
ok = false
logger.Failuref("no stored versions for %s", crd.Name)
}
}
}
return ok
}
func fluxClusterVersionCheck(ctx context.Context, kubeClient client.Client) bool {
clusterInfo, err := getFluxClusterInfo(ctx, kubeClient)
if err != nil {
logger.Failuref("checking failed: %s", err.Error())
return false
}
if clusterInfo.distribution() != "" {
logger.Successf("distribution: %s", clusterInfo.distribution())
}
logger.Successf("bootstrapped: %t", clusterInfo.bootstrapped)
return true
}

View File

@@ -25,8 +25,7 @@ import (
"strings"
"testing"
"github.com/fluxcd/flux2/internal/utils"
"k8s.io/apimachinery/pkg/version"
"github.com/fluxcd/flux2/v2/internal/utils"
)
func TestCheckPre(t *testing.T) {
@@ -35,17 +34,19 @@ func TestCheckPre(t *testing.T) {
t.Fatalf("Error running utils.ExecKubectlCommand: %v", err.Error())
}
var versions map[string]version.Info
var versions map[string]interface{}
if err := json.Unmarshal([]byte(jsonOutput), &versions); err != nil {
t.Fatalf("Error unmarshalling: %v", err.Error())
t.Fatalf("Error unmarshalling '%s': %v", jsonOutput, err.Error())
}
serverVersion := strings.TrimPrefix(versions["serverVersion"].GitVersion, "v")
serverGitVersion := strings.TrimPrefix(
versions["serverVersion"].(map[string]interface{})["gitVersion"].(string),
"v")
cmd := cmdTestCase{
args: "check --pre",
assert: assertGoldenTemplateFile("testdata/check/check_pre.golden", map[string]string{
"serverVersion": serverVersion,
"serverVersion": serverGitVersion,
}),
}
cmd.runTestCmd(t)

126
cmd/flux/cluster_info.go Normal file
View File

@@ -0,0 +1,126 @@
/*
Copyright 2023 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"context"
"fmt"
"github.com/manifoldco/promptui"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/client"
kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1"
sourcev1 "github.com/fluxcd/source-controller/api/v1"
"github.com/fluxcd/flux2/v2/pkg/manifestgen"
)
// bootstrapLabels are labels put on a resource by kustomize-controller. These labels on the CRD indicates
// that flux has been bootstrapped.
var bootstrapLabels = []string{
fmt.Sprintf("%s/name", kustomizev1.GroupVersion.Group),
fmt.Sprintf("%s/namespace", kustomizev1.GroupVersion.Group),
}
// fluxClusterInfo contains information about an existing flux installation on a cluster.
type fluxClusterInfo struct {
// bootstrapped indicates that Flux was installed using the `flux bootstrap` command.
bootstrapped bool
// managedBy is the name of the tool being used to manage the installation of Flux.
managedBy string
// partOf indicates which distribution the instance is a part of.
partOf string
// version is the Flux version number in semver format.
version string
}
// getFluxClusterInfo returns information on the Flux installation running on the cluster.
// If an error occurred, the returned error will be non-nil.
//
// This function retrieves the GitRepository CRD from the cluster and checks it
// for a set of labels used to determine the Flux version and how Flux was installed.
// It returns the NotFound error from the underlying library if it was unable to find
// the GitRepository CRD and this can be used to check if Flux is installed.
func getFluxClusterInfo(ctx context.Context, c client.Client) (fluxClusterInfo, error) {
var info fluxClusterInfo
crdMetadata := &metav1.PartialObjectMetadata{
TypeMeta: metav1.TypeMeta{
APIVersion: apiextensionsv1.SchemeGroupVersion.String(),
Kind: "CustomResourceDefinition",
},
ObjectMeta: metav1.ObjectMeta{
Name: fmt.Sprintf("gitrepositories.%s", sourcev1.GroupVersion.Group),
},
}
if err := c.Get(ctx, client.ObjectKeyFromObject(crdMetadata), crdMetadata); err != nil {
return info, err
}
info.version = crdMetadata.Labels[manifestgen.VersionLabelKey]
var present bool
for _, l := range bootstrapLabels {
_, present = crdMetadata.Labels[l]
}
if present {
info.bootstrapped = true
}
// the `app.kubernetes.io/managed-by` label is not set by flux but might be set by other
// tools used to install Flux e.g Helm.
if manager, ok := crdMetadata.Labels["app.kubernetes.io/managed-by"]; ok {
info.managedBy = manager
}
if partOf, ok := crdMetadata.Labels[manifestgen.PartOfLabelKey]; ok {
info.partOf = partOf
}
return info, nil
}
// confirmFluxInstallOverride displays a prompt to the user so that they can confirm before overriding
// a Flux installation. It returns nil if the installation should continue,
// promptui.ErrAbort if the user doesn't confirm, or an error encountered.
func confirmFluxInstallOverride(info fluxClusterInfo) error {
// no need to display prompt if installation is managed by Flux
if installManagedByFlux(info.managedBy) {
return nil
}
display := fmt.Sprintf("Flux %s has been installed on this cluster with %s!", info.version, info.managedBy)
fmt.Fprintln(rootCmd.ErrOrStderr(), display)
prompt := promptui.Prompt{
Label: fmt.Sprintf("Are you sure you want to override the %s installation? Y/N", info.managedBy),
IsConfirm: true,
}
_, err := prompt.Run()
return err
}
func (info fluxClusterInfo) distribution() string {
distribution := info.version
if info.partOf != "" {
distribution = fmt.Sprintf("%s-%s", info.partOf, info.version)
}
return distribution
}
func installManagedByFlux(manager string) bool {
return manager == "" || manager == "flux"
}

View File

@@ -0,0 +1,141 @@
/*
Copyright 2023 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"context"
"fmt"
"os"
"testing"
. "github.com/onsi/gomega"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
"k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/runtime"
"sigs.k8s.io/controller-runtime/pkg/client/fake"
kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1"
ssautil "github.com/fluxcd/pkg/ssa/utils"
)
func Test_getFluxClusterInfo(t *testing.T) {
g := NewWithT(t)
f, err := os.Open("./testdata/cluster_info/gitrepositories.yaml")
g.Expect(err).To(BeNil())
objs, err := ssautil.ReadObjects(f)
g.Expect(err).To(Not(HaveOccurred()))
gitrepo := objs[0]
tests := []struct {
name string
labels map[string]string
wantErr bool
wantInfo fluxClusterInfo
}{
{
name: "no git repository CRD present",
wantErr: true,
},
{
name: "CRD with kustomize-controller labels",
labels: map[string]string{
fmt.Sprintf("%s/name", kustomizev1.GroupVersion.Group): "flux-system",
fmt.Sprintf("%s/namespace", kustomizev1.GroupVersion.Group): "flux-system",
"app.kubernetes.io/version": "v2.1.0",
},
wantInfo: fluxClusterInfo{
version: "v2.1.0",
bootstrapped: true,
},
},
{
name: "CRD with kustomize-controller labels and managed-by label",
labels: map[string]string{
fmt.Sprintf("%s/name", kustomizev1.GroupVersion.Group): "flux-system",
fmt.Sprintf("%s/namespace", kustomizev1.GroupVersion.Group): "flux-system",
"app.kubernetes.io/version": "v2.1.0",
"app.kubernetes.io/managed-by": "flux",
},
wantInfo: fluxClusterInfo{
version: "v2.1.0",
bootstrapped: true,
managedBy: "flux",
},
},
{
name: "CRD with only managed-by label",
labels: map[string]string{
"app.kubernetes.io/version": "v2.1.0",
"app.kubernetes.io/managed-by": "helm",
},
wantInfo: fluxClusterInfo{
version: "v2.1.0",
managedBy: "helm",
},
},
{
name: "CRD with no labels",
labels: map[string]string{},
wantInfo: fluxClusterInfo{},
},
{
name: "CRD with only version label",
labels: map[string]string{
"app.kubernetes.io/version": "v2.1.0",
},
wantInfo: fluxClusterInfo{
version: "v2.1.0",
},
},
{
name: "CRD with version and part-of labels",
labels: map[string]string{
"app.kubernetes.io/version": "v2.1.0",
"app.kubernetes.io/part-of": "flux",
},
wantInfo: fluxClusterInfo{
version: "v2.1.0",
partOf: "flux",
},
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
g := NewWithT(t)
newscheme := runtime.NewScheme()
apiextensionsv1.AddToScheme(newscheme)
builder := fake.NewClientBuilder().WithScheme(newscheme)
if tt.labels != nil {
gitrepo.SetLabels(tt.labels)
builder = builder.WithRuntimeObjects(gitrepo)
}
client := builder.Build()
info, err := getFluxClusterInfo(context.Background(), client)
if tt.wantErr {
g.Expect(err).To(HaveOccurred())
g.Expect(errors.IsNotFound(err)).To(BeTrue())
} else {
g.Expect(err).To(Not(HaveOccurred()))
}
g.Expect(info).To(BeEquivalentTo(tt.wantInfo))
})
}
}

View File

@@ -20,7 +20,7 @@ import (
"context"
"strings"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -31,7 +31,7 @@ import (
var completionCmd = &cobra.Command{
Use: "completion",
Short: "Generates completion scripts for various shells",
Long: "The completion sub-command generates completion scripts for various shells",
Long: `The completion sub-command generates completion scripts for various shells.`,
}
func init() {
@@ -60,7 +60,7 @@ func resourceNamesCompletionFunc(gvk schema.GroupVersionKind) func(cmd *cobra.Co
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
cfg, err := utils.KubeConfig(kubeconfigArgs)
cfg, err := utils.KubeConfig(kubeconfigArgs, kubeclientOptions)
if err != nil {
return completionError(err)
}

View File

@@ -25,6 +25,7 @@ import (
var completionBashCmd = &cobra.Command{
Use: "bash",
Short: "Generates bash completion scripts",
Long: `The completion sub-command generates completion scripts for bash.`,
Example: `To load completion run
. <(flux completion bash)

View File

@@ -25,6 +25,7 @@ import (
var completionFishCmd = &cobra.Command{
Use: "fish",
Short: "Generates fish completion scripts",
Long: `The completion sub-command generates completion scripts for fish.`,
Example: `To configure your fish shell to load completions for each session write this script to your completions dir:
flux completion fish > ~/.config/fish/completions/flux.fish

View File

@@ -25,6 +25,7 @@ import (
var completionPowerShellCmd = &cobra.Command{
Use: "powershell",
Short: "Generates powershell completion scripts",
Long: `The completion sub-command generates completion scripts for powershell.`,
Example: `To load completion run
. <(flux completion powershell)
@@ -34,12 +35,12 @@ To configure your powershell shell to load completions for each session add to y
Windows:
cd "$env:USERPROFILE\Documents\WindowsPowerShell\Modules"
flux completion >> flux-completion.ps1
flux completion powershell >> flux-completion.ps1
Linux:
cd "${XDG_CONFIG_HOME:-"$HOME/.config/"}/powershell/modules"
flux completion >> flux-completions.ps1`,
flux completion powershell >> flux-completions.ps1`,
Run: func(cmd *cobra.Command, args []string) {
rootCmd.GenPowerShellCompletion(os.Stdout)
},

View File

@@ -26,6 +26,7 @@ import (
var completionZshCmd = &cobra.Command{
Use: "zsh",
Short: "Generates zsh completion scripts",
Long: `The completion sub-command generates completion scripts for zsh.`,
Example: `To load completion run
. <(flux completion zsh)

View File

@@ -30,13 +30,13 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/v2/internal/utils"
)
var createCmd = &cobra.Command{
Use: "create",
Short: "Create or update sources and resources",
Long: "The create sub-commands generate sources and resources.",
Long: `The create sub-commands generate sources and resources.`,
}
type createFlags struct {
@@ -79,12 +79,12 @@ type upsertable interface {
// want to update. The mutate function is nullary -- you mutate a
// value in the closure, e.g., by doing this:
//
// var existing Value
// existing.Name = name
// existing.Namespace = ns
// upsert(ctx, client, valueAdapter{&value}, func() error {
// value.Spec = onePreparedEarlier
// })
// var existing Value
// existing.Name = name
// existing.Namespace = ns
// upsert(ctx, client, valueAdapter{&value}, func() error {
// value.Spec = onePreparedEarlier
// })
func (names apiType) upsert(ctx context.Context, kubeClient client.Client, object upsertable, mutate func() error) (types.NamespacedName, error) {
nsname := types.NamespacedName{
Namespace: object.GetNamespace(),
@@ -117,7 +117,7 @@ func (names apiType) upsertAndWait(object upsertWaitable, mutate func() error) e
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs) // NB globals
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions) // NB globals
if err != nil {
return err
}
@@ -125,14 +125,14 @@ func (names apiType) upsertAndWait(object upsertWaitable, mutate func() error) e
logger.Generatef("generating %s", names.kind)
logger.Actionf("applying %s", names.kind)
namespacedName, err := imageRepositoryType.upsert(ctx, kubeClient, object, mutate)
namespacedName, err := names.upsert(ctx, kubeClient, object, mutate)
if err != nil {
return err
}
logger.Waitingf("waiting for %s reconciliation", names.kind)
if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout,
isReady(ctx, kubeClient, namespacedName, object)); err != nil {
if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true,
isObjectReadyConditionFunc(kubeClient, namespacedName, object.asClientObject())); err != nil {
return err
}
logger.Successf("%s reconciliation completed", names.kind)
@@ -165,6 +165,6 @@ func parseLabels() (map[string]string, error) {
}
func validateObjectName(name string) bool {
r := regexp.MustCompile("^[a-z0-9]([a-z0-9\\-]){0,61}[a-z0-9]$")
r := regexp.MustCompile(`^[a-z0-9]([a-z0-9\-]){0,61}[a-z0-9]$`)
return r.MatchString(name)
}

View File

@@ -22,22 +22,22 @@ import (
"github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/api/errors"
apimeta "k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
"sigs.k8s.io/controller-runtime/pkg/client"
notificationv1 "github.com/fluxcd/notification-controller/api/v1beta1"
notificationv1 "github.com/fluxcd/notification-controller/api/v1"
notificationv1b3 "github.com/fluxcd/notification-controller/api/v1beta3"
"github.com/fluxcd/pkg/apis/meta"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/v2/internal/utils"
)
var createAlertCmd = &cobra.Command{
Use: "alert [name]",
Short: "Create or update a Alert resource",
Long: "The create alert command generates a Alert resource.",
Long: withPreviewNote(`The create alert command generates a Alert resource.`),
Example: ` # Create an Alert for kustomization events
flux create alert \
--event-severity info \
@@ -96,13 +96,13 @@ func createAlertCmdRun(cmd *cobra.Command, args []string) error {
logger.Generatef("generating Alert")
}
alert := notificationv1.Alert{
alert := notificationv1b3.Alert{
ObjectMeta: metav1.ObjectMeta{
Name: name,
Namespace: *kubeconfigArgs.Namespace,
Labels: sourceLabels,
},
Spec: notificationv1.AlertSpec{
Spec: notificationv1b3.AlertSpec{
ProviderRef: meta.LocalObjectReference{
Name: alertArgs.providerRef,
},
@@ -119,7 +119,7 @@ func createAlertCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
@@ -131,8 +131,8 @@ func createAlertCmdRun(cmd *cobra.Command, args []string) error {
}
logger.Waitingf("waiting for Alert reconciliation")
if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout,
isAlertReady(ctx, kubeClient, namespacedName, &alert)); err != nil {
if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true,
isStaticObjectReadyConditionFunc(kubeClient, namespacedName, &alert)); err != nil {
return err
}
logger.Successf("Alert %s is ready", name)
@@ -140,13 +140,13 @@ func createAlertCmdRun(cmd *cobra.Command, args []string) error {
}
func upsertAlert(ctx context.Context, kubeClient client.Client,
alert *notificationv1.Alert) (types.NamespacedName, error) {
alert *notificationv1b3.Alert) (types.NamespacedName, error) {
namespacedName := types.NamespacedName{
Namespace: alert.GetNamespace(),
Name: alert.GetName(),
}
var existing notificationv1.Alert
var existing notificationv1b3.Alert
err := kubeClient.Get(ctx, namespacedName, &existing)
if err != nil {
if errors.IsNotFound(err) {
@@ -169,23 +169,3 @@ func upsertAlert(ctx context.Context, kubeClient client.Client,
logger.Successf("Alert updated")
return namespacedName, nil
}
func isAlertReady(ctx context.Context, kubeClient client.Client,
namespacedName types.NamespacedName, alert *notificationv1.Alert) wait.ConditionFunc {
return func() (bool, error) {
err := kubeClient.Get(ctx, namespacedName, alert)
if err != nil {
return false, err
}
if c := apimeta.FindStatusCondition(alert.Status.Conditions, meta.ReadyCondition); c != nil {
switch c.Status {
case metav1.ConditionTrue:
return true, nil
case metav1.ConditionFalse:
return false, fmt.Errorf(c.Message)
}
}
return false, nil
}
}

View File

@@ -22,22 +22,21 @@ import (
"github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/api/errors"
apimeta "k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
"sigs.k8s.io/controller-runtime/pkg/client"
notificationv1 "github.com/fluxcd/notification-controller/api/v1beta1"
notificationv1 "github.com/fluxcd/notification-controller/api/v1beta3"
"github.com/fluxcd/pkg/apis/meta"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/v2/internal/utils"
)
var createAlertProviderCmd = &cobra.Command{
Use: "alert-provider [name]",
Short: "Create or update a Provider resource",
Long: "The create alert-provider command generates a Provider resource.",
Long: withPreviewNote(`The create alert-provider command generates a Provider resource.`),
Example: ` # Create a Provider for a Slack channel
flux create alert-provider slack \
--type slack \
@@ -115,7 +114,7 @@ func createAlertProviderCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
@@ -127,8 +126,8 @@ func createAlertProviderCmdRun(cmd *cobra.Command, args []string) error {
}
logger.Waitingf("waiting for Provider reconciliation")
if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout,
isAlertProviderReady(ctx, kubeClient, namespacedName, &provider)); err != nil {
if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true,
isStaticObjectReadyConditionFunc(kubeClient, namespacedName, &provider)); err != nil {
return err
}
@@ -167,23 +166,3 @@ func upsertAlertProvider(ctx context.Context, kubeClient client.Client,
logger.Successf("Provider updated")
return namespacedName, nil
}
func isAlertProviderReady(ctx context.Context, kubeClient client.Client,
namespacedName types.NamespacedName, provider *notificationv1.Provider) wait.ConditionFunc {
return func() (bool, error) {
err := kubeClient.Get(ctx, namespacedName, provider)
if err != nil {
return false, err
}
if c := apimeta.FindStatusCondition(provider.Status.Conditions, meta.ReadyCondition); c != nil {
switch c.Status {
case metav1.ConditionTrue:
return true, nil
case metav1.ConditionFalse:
return false, fmt.Errorf(c.Message)
}
}
return false, nil
}
}

View File

@@ -1,5 +1,5 @@
/*
Copyright 2020 The Flux authors
Copyright 2024 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -21,30 +21,32 @@ import (
"encoding/json"
"fmt"
"os"
"github.com/fluxcd/flux2/internal/flags"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/pkg/apis/meta"
"github.com/fluxcd/pkg/runtime/transform"
"strings"
"time"
"github.com/spf13/cobra"
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
"k8s.io/apimachinery/pkg/api/errors"
apimeta "k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/yaml"
helmv2 "github.com/fluxcd/helm-controller/api/v2beta1"
helmv2 "github.com/fluxcd/helm-controller/api/v2"
"github.com/fluxcd/pkg/apis/meta"
"github.com/fluxcd/pkg/runtime/transform"
sourcev1 "github.com/fluxcd/source-controller/api/v1"
"github.com/fluxcd/flux2/v2/internal/flags"
"github.com/fluxcd/flux2/v2/internal/utils"
)
var createHelmReleaseCmd = &cobra.Command{
Use: "helmrelease [name]",
Aliases: []string{"hr"},
Short: "Create or update a HelmRelease resource",
Long: "The helmrelease create command generates a HelmRelease resource for a given HelmRepository source.",
Long: `The helmrelease create command generates a HelmRelease resource for a given HelmRepository source.`,
Example: ` # Create a HelmRelease with a chart from a HelmRepository source
flux create hr podinfo \
--interval=10m \
@@ -81,9 +83,9 @@ var createHelmReleaseCmd = &cobra.Command{
# Create a HelmRelease with a custom release name
flux create hr podinfo \
--release-name=podinfo-dev
--release-name=podinfo-dev \
--source=HelmRepository/podinfo \
--chart=podinfo \
--chart=podinfo
# Create a HelmRelease targeting another namespace than the resource
flux create hr podinfo \
@@ -92,6 +94,13 @@ var createHelmReleaseCmd = &cobra.Command{
--source=HelmRepository/podinfo \
--chart=podinfo
# Create a HelmRelease with custom storage namespace for hub-and-spoke model
flux create hr podinfo \
--target-namespace=production \
--storage-namespace=fluxcd-system \
--source=HelmRepository/podinfo \
--chart=podinfo
# Create a HelmRelease using a source from a different namespace
flux create hr podinfo \
--namespace=default \
@@ -103,26 +112,45 @@ var createHelmReleaseCmd = &cobra.Command{
--source=HelmRepository/podinfo \
--chart=podinfo \
--values=./values.yaml \
--export > podinfo-release.yaml`,
--export > podinfo-release.yaml
# Create a HelmRelease using a chart from a HelmChart resource
flux create hr podinfo \
--namespace=default \
--chart-ref=HelmChart/podinfo.flux-system \
# Create a HelmRelease using a chart from an OCIRepository resource
flux create hr podinfo \
--namespace=default \
--chart-ref=OCIRepository/podinfo.flux-system`,
RunE: createHelmReleaseCmdRun,
}
type helmReleaseFlags struct {
name string
source flags.HelmChartSource
dependsOn []string
chart string
chartVersion string
targetNamespace string
createNamespace bool
valuesFiles []string
valuesFrom flags.HelmReleaseValuesFrom
saName string
crds flags.CRDsPolicy
name string
source flags.HelmChartSource
dependsOn []string
chart string
chartVersion string
chartRef string
targetNamespace string
storageNamespace string
createNamespace bool
valuesFiles []string
valuesFrom []string
saName string
crds flags.CRDsPolicy
reconcileStrategy string
chartInterval time.Duration
kubeConfigSecretRef string
}
var helmReleaseArgs helmReleaseFlags
var supportedHelmReleaseValuesFromKinds = []string{"Secret", "ConfigMap"}
var supportedHelmReleaseReferenceKinds = []string{sourcev1.OCIRepositoryKind, sourcev1.HelmChartKind}
func init() {
createHelmReleaseCmd.Flags().StringVar(&helmReleaseArgs.name, "release-name", "", "name used for the Helm release, defaults to a composition of '[<target-namespace>-]<HelmRelease-name>'")
createHelmReleaseCmd.Flags().Var(&helmReleaseArgs.source, "source", helmReleaseArgs.source.Description())
@@ -130,19 +158,32 @@ func init() {
createHelmReleaseCmd.Flags().StringVar(&helmReleaseArgs.chartVersion, "chart-version", "", "Helm chart version, accepts a semver range (ignored for charts from GitRepository sources)")
createHelmReleaseCmd.Flags().StringSliceVar(&helmReleaseArgs.dependsOn, "depends-on", nil, "HelmReleases that must be ready before this release can be installed, supported formats '<name>' and '<namespace>/<name>'")
createHelmReleaseCmd.Flags().StringVar(&helmReleaseArgs.targetNamespace, "target-namespace", "", "namespace to install this release, defaults to the HelmRelease namespace")
createHelmReleaseCmd.Flags().StringVar(&helmReleaseArgs.storageNamespace, "storage-namespace", "", "namespace to store the Helm release, defaults to the target namespace")
createHelmReleaseCmd.Flags().BoolVar(&helmReleaseArgs.createNamespace, "create-target-namespace", false, "create the target namespace if it does not exist")
createHelmReleaseCmd.Flags().StringVar(&helmReleaseArgs.saName, "service-account", "", "the name of the service account to impersonate when reconciling this HelmRelease")
createHelmReleaseCmd.Flags().StringVar(&helmReleaseArgs.reconcileStrategy, "reconcile-strategy", "ChartVersion", "the reconcile strategy for helm chart created by the helm release(accepted values: Revision and ChartRevision)")
createHelmReleaseCmd.Flags().DurationVarP(&helmReleaseArgs.chartInterval, "chart-interval", "", 0, "the interval of which to check for new chart versions")
createHelmReleaseCmd.Flags().StringSliceVar(&helmReleaseArgs.valuesFiles, "values", nil, "local path to values.yaml files, also accepts comma-separated values")
createHelmReleaseCmd.Flags().Var(&helmReleaseArgs.valuesFrom, "values-from", helmReleaseArgs.valuesFrom.Description())
createHelmReleaseCmd.Flags().StringSliceVar(&helmReleaseArgs.valuesFrom, "values-from", nil, "a Kubernetes object reference that contains the values.yaml data key in the format '<kind>/<name>', where kind must be one of: (Secret,ConfigMap)")
createHelmReleaseCmd.Flags().Var(&helmReleaseArgs.crds, "crds", helmReleaseArgs.crds.Description())
createHelmReleaseCmd.Flags().StringVar(&helmReleaseArgs.kubeConfigSecretRef, "kubeconfig-secret-ref", "", "the name of the Kubernetes Secret that contains a key with the kubeconfig file for connecting to a remote cluster")
createHelmReleaseCmd.Flags().StringVar(&helmReleaseArgs.chartRef, "chart-ref", "", "the name of the HelmChart resource to use as source for the HelmRelease, in the format '<kind>/<name>.<namespace>', where kind must be one of: (OCIRepository,HelmChart)")
createCmd.AddCommand(createHelmReleaseCmd)
}
func createHelmReleaseCmdRun(cmd *cobra.Command, args []string) error {
name := args[0]
if helmReleaseArgs.chart == "" {
return fmt.Errorf("chart name or path is required")
if helmReleaseArgs.storageNamespace == "" && helmReleaseArgs.targetNamespace != "" {
helmReleaseArgs.storageNamespace = helmReleaseArgs.targetNamespace
}
if helmReleaseArgs.chart == "" && helmReleaseArgs.chartRef == "" {
return fmt.Errorf("chart or chart-ref is required")
}
if helmReleaseArgs.chart != "" && helmReleaseArgs.chartRef != "" {
return fmt.Errorf("cannot use --chart in combination with --chart-ref")
}
sourceLabels, err := parseLabels()
@@ -154,6 +195,11 @@ func createHelmReleaseCmdRun(cmd *cobra.Command, args []string) error {
logger.Generatef("generating HelmRelease")
}
if !validateStrategy(helmReleaseArgs.reconcileStrategy) {
return fmt.Errorf("'%s' is an invalid reconcile strategy(valid: Revision, ChartVersion)",
helmReleaseArgs.reconcileStrategy)
}
helmRelease := helmv2.HelmRelease{
ObjectMeta: metav1.ObjectMeta{
Name: name,
@@ -162,27 +208,67 @@ func createHelmReleaseCmdRun(cmd *cobra.Command, args []string) error {
},
Spec: helmv2.HelmReleaseSpec{
ReleaseName: helmReleaseArgs.name,
DependsOn: utils.MakeDependsOn(helmReleaseArgs.dependsOn),
Interval: metav1.Duration{
Duration: createArgs.interval,
},
TargetNamespace: helmReleaseArgs.targetNamespace,
Chart: helmv2.HelmChartTemplate{
Spec: helmv2.HelmChartTemplateSpec{
Chart: helmReleaseArgs.chart,
Version: helmReleaseArgs.chartVersion,
SourceRef: helmv2.CrossNamespaceObjectReference{
Kind: helmReleaseArgs.source.Kind,
Name: helmReleaseArgs.source.Name,
Namespace: helmReleaseArgs.source.Namespace,
},
},
},
Suspend: false,
TargetNamespace: helmReleaseArgs.targetNamespace,
StorageNamespace: helmReleaseArgs.storageNamespace,
Suspend: false,
},
}
if len(helmReleaseArgs.dependsOn) > 0 {
ls := utils.MakeDependsOn(helmReleaseArgs.dependsOn)
hrDependsOn := make([]helmv2.DependencyReference, 0, len(ls))
for _, d := range ls {
hrDependsOn = append(hrDependsOn, helmv2.DependencyReference{
Name: d.Name,
Namespace: d.Namespace,
})
}
helmRelease.Spec.DependsOn = hrDependsOn
}
switch {
case helmReleaseArgs.chart != "":
helmRelease.Spec.Chart = &helmv2.HelmChartTemplate{
Spec: helmv2.HelmChartTemplateSpec{
Chart: helmReleaseArgs.chart,
Version: helmReleaseArgs.chartVersion,
SourceRef: helmv2.CrossNamespaceObjectReference{
Kind: helmReleaseArgs.source.Kind,
Name: helmReleaseArgs.source.Name,
Namespace: helmReleaseArgs.source.Namespace,
},
ReconcileStrategy: helmReleaseArgs.reconcileStrategy,
},
}
if helmReleaseArgs.chartInterval != 0 {
helmRelease.Spec.Chart.Spec.Interval = &metav1.Duration{
Duration: helmReleaseArgs.chartInterval,
}
}
case helmReleaseArgs.chartRef != "":
kind, name, ns := utils.ParseObjectKindNameNamespace(helmReleaseArgs.chartRef)
if kind != sourcev1.HelmChartKind && kind != sourcev1.OCIRepositoryKind {
return fmt.Errorf("chart reference kind '%s' is not supported, must be one of: %s",
kind, strings.Join(supportedHelmReleaseReferenceKinds, ", "))
}
helmRelease.Spec.ChartRef = &helmv2.CrossNamespaceSourceReference{
Kind: kind,
Name: name,
Namespace: ns,
}
}
if helmReleaseArgs.kubeConfigSecretRef != "" {
helmRelease.Spec.KubeConfig = &meta.KubeConfigReference{
SecretRef: &meta.SecretKeyReference{
Name: helmReleaseArgs.kubeConfigSecretRef,
},
}
}
if helmReleaseArgs.createNamespace {
if helmRelease.Spec.Install == nil {
helmRelease.Spec.Install = &helmv2.Install{}
@@ -233,11 +319,25 @@ func createHelmReleaseCmdRun(cmd *cobra.Command, args []string) error {
helmRelease.Spec.Values = &apiextensionsv1.JSON{Raw: jsonRaw}
}
if helmReleaseArgs.valuesFrom.String() != "" {
helmRelease.Spec.ValuesFrom = []helmv2.ValuesReference{{
Kind: helmReleaseArgs.valuesFrom.Kind,
Name: helmReleaseArgs.valuesFrom.Name,
}}
if len(helmReleaseArgs.valuesFrom) != 0 {
values := []helmv2.ValuesReference{}
for _, value := range helmReleaseArgs.valuesFrom {
sourceKind, sourceName := utils.ParseObjectKindName(value)
if sourceKind == "" {
return fmt.Errorf("invalid Kubernetes object reference '%s', must be in format <kind>/<name>", value)
}
cleanSourceKind, ok := utils.ContainsEqualFoldItemString(supportedHelmReleaseValuesFromKinds, sourceKind)
if !ok {
return fmt.Errorf("reference kind '%s' is not supported, must be one of: %s",
sourceKind, strings.Join(supportedHelmReleaseValuesFromKinds, ", "))
}
values = append(values, helmv2.ValuesReference{
Name: sourceName,
Kind: cleanSourceKind,
})
}
helmRelease.Spec.ValuesFrom = values
}
if createArgs.export {
@@ -247,7 +347,7 @@ func createHelmReleaseCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
@@ -259,13 +359,13 @@ func createHelmReleaseCmdRun(cmd *cobra.Command, args []string) error {
}
logger.Waitingf("waiting for HelmRelease reconciliation")
if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout,
isHelmReleaseReady(ctx, kubeClient, namespacedName, &helmRelease)); err != nil {
if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true,
isObjectReadyConditionFunc(kubeClient, namespacedName, &helmRelease)); err != nil {
return err
}
logger.Successf("HelmRelease %s is ready", name)
logger.Successf("applied revision %s", helmRelease.Status.LastAppliedRevision)
logger.Successf("applied revision %s", getHelmReleaseRevision(helmRelease))
return nil
}
@@ -300,19 +400,14 @@ func upsertHelmRelease(ctx context.Context, kubeClient client.Client,
return namespacedName, nil
}
func isHelmReleaseReady(ctx context.Context, kubeClient client.Client,
namespacedName types.NamespacedName, helmRelease *helmv2.HelmRelease) wait.ConditionFunc {
return func() (bool, error) {
err := kubeClient.Get(ctx, namespacedName, helmRelease)
if err != nil {
return false, err
}
func validateStrategy(input string) bool {
allowedStrategy := []string{"Revision", "ChartVersion"}
// Confirm the state we are observing is for the current generation
if helmRelease.Generation != helmRelease.Status.ObservedGeneration {
return false, nil
for _, strategy := range allowedStrategy {
if strategy == input {
return true
}
return apimeta.IsStatusConditionTrue(helmRelease.Status.Conditions, meta.ReadyCondition), nil
}
return false
}

View File

@@ -0,0 +1,91 @@
//go:build unit
// +build unit
/*
Copyright 2024 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import "testing"
func TestCreateHelmRelease(t *testing.T) {
tmpl := map[string]string{
"fluxns": allocateNamespace("flux-system"),
}
setupHRSource(t, tmpl)
tests := []struct {
name string
args string
assert assertFunc
}{
{
name: "missing name",
args: "create helmrelease --export",
assert: assertError("name is required"),
},
{
name: "missing chart template and chartRef",
args: "create helmrelease podinfo --export",
assert: assertError("chart or chart-ref is required"),
},
{
name: "chart and chartRef used in combination",
args: "create helmrelease podinfo --chart podinfo --chart-ref foobar/podinfo --export",
assert: assertError("cannot use --chart in combination with --chart-ref"),
},
{
name: "unknown source kind",
args: "create helmrelease podinfo --source foobar/podinfo --chart podinfo --export",
assert: assertError(`invalid argument "foobar/podinfo" for "--source" flag: source kind 'foobar' is not supported, must be one of: HelmRepository, GitRepository, Bucket`),
},
{
name: "unknown chart reference kind",
args: "create helmrelease podinfo --chart-ref foobar/podinfo --export",
assert: assertError(`chart reference kind 'foobar' is not supported, must be one of: OCIRepository, HelmChart`),
},
{
name: "basic helmrelease",
args: "create helmrelease podinfo --source Helmrepository/podinfo --chart podinfo --interval=1m0s --export",
assert: assertGoldenTemplateFile("testdata/create_hr/basic.yaml", tmpl),
},
{
name: "chart with OCIRepository source",
args: "create helmrelease podinfo --chart-ref OCIRepository/podinfo --interval=1m0s --export",
assert: assertGoldenTemplateFile("testdata/create_hr/or_basic.yaml", tmpl),
},
{
name: "chart with HelmChart source",
args: "create helmrelease podinfo --chart-ref HelmChart/podinfo --interval=1m0s --export",
assert: assertGoldenTemplateFile("testdata/create_hr/hc_basic.yaml", tmpl),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
cmd := cmdTestCase{
args: tt.args + " -n " + tmpl["fluxns"],
assert: tt.assert,
}
cmd.runTestCmd(t)
})
}
}
func setupHRSource(t *testing.T, tmpl map[string]string) {
t.Helper()
testEnv.CreateObjectFile("./testdata/create_hr/setup-source.yaml", tmpl, t)
}

View File

@@ -20,14 +20,12 @@ import (
"github.com/spf13/cobra"
)
const createImageLong = `The create image sub-commands work with image automation objects; that is,
object controlling updates to git based on e.g., new container images
being available.`
var createImageCmd = &cobra.Command{
Use: "image",
Short: "Create or update resources dealing with image automation",
Long: createImageLong,
Long: `The create image sub-commands work with image automation objects;
that is, object controlling updates to git based on e.g., new container images
being available.`,
}
func init() {

View File

@@ -20,6 +20,7 @@ import (
"fmt"
"regexp/syntax"
"strings"
"time"
"unicode"
"unicode/utf8"
@@ -28,7 +29,7 @@ import (
"github.com/fluxcd/pkg/apis/meta"
imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta1"
imagev1 "github.com/fluxcd/image-reflector-controller/api/v1"
)
var createImagePolicyCmd = &cobra.Command{
@@ -54,13 +55,14 @@ the status of the object.`,
RunE: createImagePolicyRun}
type imagePolicyFlags struct {
imageRef string
semver string
alpha string
numeric string
filterRegex string
filterExtract string
filterNumerical string
imageRef string
semver string
alpha string
numeric string
filterRegex string
filterExtract string
reflectDigest string
interval time.Duration
}
var imagePolicyArgs = imagePolicyFlags{}
@@ -73,16 +75,12 @@ func init() {
flags.StringVar(&imagePolicyArgs.numeric, "select-numeric", "", "use numeric sorting to select image; either \"asc\" meaning select the last, or \"desc\" meaning select the first")
flags.StringVar(&imagePolicyArgs.filterRegex, "filter-regex", "", "regular expression pattern used to filter the image tags")
flags.StringVar(&imagePolicyArgs.filterExtract, "filter-extract", "", "replacement pattern (using capture groups from --filter-regex) to use for sorting")
flags.StringVar(&imagePolicyArgs.reflectDigest, "reflect-digest", "", "the digest reflection policy to use when observing latest image tags (one of 'Never', 'IfNotPresent', 'Never')")
flags.DurationVar(&imagePolicyArgs.interval, "interval", 0, "the interval at which to check for new image digests when the policy is set to 'Always'")
createImageCmd.AddCommand(createImagePolicyCmd)
}
// getObservedGeneration is implemented here, since it's not
// (presently) needed elsewhere.
func (obj imagePolicyAdapter) getObservedGeneration() int64 {
return obj.ImagePolicy.Status.ObservedGeneration
}
func createImagePolicyRun(cmd *cobra.Command, args []string) error {
objectName := args[0]
@@ -154,6 +152,20 @@ func createImagePolicyRun(cmd *cobra.Command, args []string) error {
return fmt.Errorf("cannot specify --filter-extract without specifying --filter-regex")
}
if p := imagev1.ReflectionPolicy(imagePolicyArgs.reflectDigest); p != "" {
if p != imagev1.ReflectNever && p != imagev1.ReflectIfNotPresent && p != imagev1.ReflectAlways {
return fmt.Errorf("invalid value for --reflect-digest, must be one of 'Never', 'IfNotPresent', 'Always'")
}
policy.Spec.DigestReflectionPolicy = p
}
if imagePolicyArgs.interval != 0 {
if imagePolicyArgs.reflectDigest != string(imagev1.ReflectAlways) {
return fmt.Errorf("the --interval flag can only be used with the 'Always' digest reflection policy, use --reflect-digest=Always")
}
policy.Spec.Interval = &metav1.Duration{Duration: imagePolicyArgs.interval}
}
if createArgs.export {
return printExport(exportImagePolicy(&policy))
}
@@ -183,7 +195,6 @@ func validateExtractStr(template string, capNames []string) error {
name, num, rest, ok := extract(template)
if !ok {
// Malformed extract string, assume user didn't want this
template = template[1:]
return fmt.Errorf("--filter-extract is malformed")
}
template = rest

View File

@@ -26,7 +26,7 @@ import (
"github.com/fluxcd/pkg/apis/meta"
imagev1 "github.com/fluxcd/image-reflector-controller/api/v1beta1"
imagev1 "github.com/fluxcd/image-reflector-controller/api/v1"
)
var createImageRepositoryCmd = &cobra.Command{

View File

@@ -22,8 +22,8 @@ import (
"github.com/spf13/cobra"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
autov1 "github.com/fluxcd/image-automation-controller/api/v1beta1"
sourcev1 "github.com/fluxcd/source-controller/api/v1beta1"
autov1 "github.com/fluxcd/image-automation-controller/api/v1"
sourcev1 "github.com/fluxcd/source-controller/api/v1"
)
var createImageUpdateCmd = &cobra.Command{

View File

@@ -24,40 +24,38 @@ import (
"github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/api/errors"
apimeta "k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
"sigs.k8s.io/controller-runtime/pkg/client"
helmv2 "github.com/fluxcd/helm-controller/api/v2beta1"
kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1beta2"
helmv2 "github.com/fluxcd/helm-controller/api/v2"
kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1"
"github.com/fluxcd/pkg/apis/meta"
"github.com/fluxcd/flux2/internal/flags"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/v2/internal/flags"
"github.com/fluxcd/flux2/v2/internal/utils"
)
var createKsCmd = &cobra.Command{
Use: "kustomization [name]",
Aliases: []string{"ks"},
Short: "Create or update a Kustomization resource",
Long: "The kustomization source create command generates a Kustomize resource for a given source.",
Long: `The create command generates a Kustomization resource for a given source.`,
Example: ` # Create a Kustomization resource from a source at a given path
flux create kustomization contour \
--source=GitRepository/contour \
--path="./examples/contour/" \
flux create kustomization kyverno \
--source=GitRepository/kyverno \
--path="./config/release" \
--prune=true \
--interval=10m \
--health-check="Deployment/contour.projectcontour" \
--health-check="DaemonSet/envoy.projectcontour" \
--interval=60m \
--wait=true \
--health-check-timeout=3m
# Create a Kustomization resource that depends on the previous one
flux create kustomization webapp \
--depends-on=contour \
--source=GitRepository/webapp \
--path="./deploy/overlays/dev" \
flux create kustomization kyverno-policies \
--depends-on=kyverno \
--source=GitRepository/kyverno-policies \
--path="./policies/flux" \
--prune=true \
--interval=5m
@@ -65,7 +63,14 @@ var createKsCmd = &cobra.Command{
flux create kustomization podinfo \
--namespace=default \
--source=GitRepository/podinfo.flux-system \
--path="./deploy/overlays/dev" \
--path="./kustomize" \
--prune=true \
--interval=5m
# Create a Kustomization resource that references an OCIRepository
flux create kustomization podinfo \
--source=OCIRepository/podinfo \
--target-namespace=default \
--prune=true \
--interval=5m
@@ -78,18 +83,20 @@ var createKsCmd = &cobra.Command{
}
type kustomizationFlags struct {
source flags.KustomizationSource
path flags.SafeRelativePath
prune bool
dependsOn []string
validation string
healthCheck []string
healthTimeout time.Duration
saName string
decryptionProvider flags.DecryptionProvider
decryptionSecret string
targetNamespace string
wait bool
source flags.KustomizationSource
path flags.SafeRelativePath
prune bool
dependsOn []string
validation string
healthCheck []string
healthTimeout time.Duration
saName string
decryptionProvider flags.DecryptionProvider
decryptionSecret string
targetNamespace string
wait bool
kubeConfigSecretRef string
retryInterval time.Duration
}
var kustomizationArgs = NewKustomizationFlags()
@@ -107,7 +114,9 @@ func init() {
createKsCmd.Flags().Var(&kustomizationArgs.decryptionProvider, "decryption-provider", kustomizationArgs.decryptionProvider.Description())
createKsCmd.Flags().StringVar(&kustomizationArgs.decryptionSecret, "decryption-secret", "", "set the Kubernetes secret name that contains the OpenPGP private keys used for sops decryption")
createKsCmd.Flags().StringVar(&kustomizationArgs.targetNamespace, "target-namespace", "", "overrides the namespace of all Kustomization objects reconciled by this Kustomization")
createKsCmd.Flags().StringVar(&kustomizationArgs.kubeConfigSecretRef, "kubeconfig-secret-ref", "", "the name of the Kubernetes Secret that contains a key with the kubeconfig file for connecting to a remote cluster")
createKsCmd.Flags().MarkDeprecated("validation", "this arg is no longer used, all resources are validated using server-side apply dry-run")
createKsCmd.Flags().DurationVar(&kustomizationArgs.retryInterval, "retry-interval", 0, "the interval at which to retry a previously failed reconciliation")
createCmd.AddCommand(createKsCmd)
}
@@ -144,7 +153,6 @@ func createKsCmdRun(cmd *cobra.Command, args []string) error {
Labels: kslabels,
},
Spec: kustomizev1.KustomizationSpec{
DependsOn: utils.MakeDependsOn(kustomizationArgs.dependsOn),
Interval: metav1.Duration{
Duration: createArgs.interval,
},
@@ -160,6 +168,26 @@ func createKsCmdRun(cmd *cobra.Command, args []string) error {
},
}
if len(kustomizationArgs.dependsOn) > 0 {
ls := utils.MakeDependsOn(kustomizationArgs.dependsOn)
ksDependsOn := make([]kustomizev1.DependencyReference, 0, len(ls))
for _, d := range ls {
ksDependsOn = append(ksDependsOn, kustomizev1.DependencyReference{
Name: d.Name,
Namespace: d.Namespace,
})
}
kustomization.Spec.DependsOn = ksDependsOn
}
if kustomizationArgs.kubeConfigSecretRef != "" {
kustomization.Spec.KubeConfig = &meta.KubeConfigReference{
SecretRef: &meta.SecretKeyReference{
Name: kustomizationArgs.kubeConfigSecretRef,
},
}
}
if len(kustomizationArgs.healthCheck) > 0 && !kustomizationArgs.wait {
healthChecks := make([]meta.NamespacedObjectKindReference, 0)
for _, w := range kustomizationArgs.healthCheck {
@@ -222,6 +250,10 @@ func createKsCmdRun(cmd *cobra.Command, args []string) error {
}
}
if kustomizationArgs.retryInterval > 0 {
kustomization.Spec.RetryInterval = &metav1.Duration{Duration: kustomizationArgs.retryInterval}
}
if createArgs.export {
return printExport(exportKs(&kustomization))
}
@@ -229,7 +261,7 @@ func createKsCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
@@ -241,8 +273,8 @@ func createKsCmdRun(cmd *cobra.Command, args []string) error {
}
logger.Waitingf("waiting for Kustomization reconciliation")
if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout,
isKustomizationReady(ctx, kubeClient, namespacedName, &kustomization)); err != nil {
if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true,
isObjectReadyConditionFunc(kubeClient, namespacedName, &kustomization)); err != nil {
return err
}
logger.Successf("Kustomization %s is ready", name)
@@ -281,28 +313,3 @@ func upsertKustomization(ctx context.Context, kubeClient client.Client,
logger.Successf("Kustomization updated")
return namespacedName, nil
}
func isKustomizationReady(ctx context.Context, kubeClient client.Client,
namespacedName types.NamespacedName, kustomization *kustomizev1.Kustomization) wait.ConditionFunc {
return func() (bool, error) {
err := kubeClient.Get(ctx, namespacedName, kustomization)
if err != nil {
return false, err
}
// Confirm the state we are observing is for the current generation
if kustomization.Generation != kustomization.Status.ObservedGeneration {
return false, nil
}
if c := apimeta.FindStatusCondition(kustomization.Status.Conditions, meta.ReadyCondition); c != nil {
switch c.Status {
case metav1.ConditionTrue:
return true, nil
case metav1.ConditionFalse:
return false, fmt.Errorf(c.Message)
}
}
return false, nil
}
}

View File

@@ -22,22 +22,21 @@ import (
"github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/api/errors"
apimeta "k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
"sigs.k8s.io/controller-runtime/pkg/client"
notificationv1 "github.com/fluxcd/notification-controller/api/v1beta1"
notificationv1 "github.com/fluxcd/notification-controller/api/v1"
"github.com/fluxcd/pkg/apis/meta"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/v2/internal/utils"
)
var createReceiverCmd = &cobra.Command{
Use: "receiver [name]",
Short: "Create or update a Receiver resource",
Long: "The create receiver command generates a Receiver resource.",
Long: `The create receiver command generates a Receiver resource.`,
Example: ` # Create a Receiver
flux create receiver github-receiver \
--type github \
@@ -127,7 +126,7 @@ func createReceiverCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
@@ -139,13 +138,13 @@ func createReceiverCmdRun(cmd *cobra.Command, args []string) error {
}
logger.Waitingf("waiting for Receiver reconciliation")
if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout,
isReceiverReady(ctx, kubeClient, namespacedName, &receiver)); err != nil {
if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true,
isObjectReadyConditionFunc(kubeClient, namespacedName, &receiver)); err != nil {
return err
}
logger.Successf("Receiver %s is ready", name)
logger.Successf("generated webhook URL %s", receiver.Status.URL)
logger.Successf("generated webhook URL %s", receiver.Status.WebhookPath)
return nil
}
@@ -179,23 +178,3 @@ func upsertReceiver(ctx context.Context, kubeClient client.Client,
logger.Successf("Receiver updated")
return namespacedName, nil
}
func isReceiverReady(ctx context.Context, kubeClient client.Client,
namespacedName types.NamespacedName, receiver *notificationv1.Receiver) wait.ConditionFunc {
return func() (bool, error) {
err := kubeClient.Get(ctx, namespacedName, receiver)
if err != nil {
return false, err
}
if c := apimeta.FindStatusCondition(receiver.Status.Conditions, meta.ReadyCondition); c != nil {
switch c.Status {
case metav1.ConditionTrue:
return true, nil
case metav1.ConditionFalse:
return false, fmt.Errorf(c.Message)
}
}
return false, nil
}
}

View File

@@ -29,7 +29,7 @@ import (
var createSecretCmd = &cobra.Command{
Use: "secret",
Short: "Create or update Kubernetes secrets",
Long: "The create source sub-commands generate Kubernetes secrets specific to Flux.",
Long: `The create source sub-commands generate Kubernetes secrets specific to Flux.`,
}
func init() {

View File

@@ -21,22 +21,25 @@ import (
"crypto/elliptic"
"fmt"
"net/url"
"os"
"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
"sigs.k8s.io/yaml"
"github.com/fluxcd/flux2/internal/flags"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/flux2/v2/internal/flags"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
)
var createSecretGitCmd = &cobra.Command{
Use: "git [name]",
Short: "Create or update a Kubernetes secret for Git authentication",
Long: `The create secret git command generates a Kubernetes secret with Git credentials.
For Git over SSH, the host and SSH keys are automatically generated and stored in the secret.
For Git over HTTP/S, the provided basic authentication credentials are stored in the secret.`,
For Git over SSH, the host and SSH keys are automatically generated and stored
in the secret.
For Git over HTTP/S, the provided basic authentication credentials or bearer
authentication token are stored in the secret.`,
Example: ` # Create a Git SSH authentication secret using an ECDSA P-521 curve public key
flux create secret git podinfo-auth \
@@ -84,8 +87,9 @@ type secretGitFlags struct {
keyAlgorithm flags.PublicKeyAlgorithm
rsaBits flags.RSAKeyBits
ecdsaCurve flags.ECDSACurve
caFile string
caCrtFile string
privateKeyFile string
bearerToken string
}
var secretGitArgs = NewSecretGitFlags()
@@ -97,8 +101,9 @@ func init() {
createSecretGitCmd.Flags().Var(&secretGitArgs.keyAlgorithm, "ssh-key-algorithm", secretGitArgs.keyAlgorithm.Description())
createSecretGitCmd.Flags().Var(&secretGitArgs.rsaBits, "ssh-rsa-bits", secretGitArgs.rsaBits.Description())
createSecretGitCmd.Flags().Var(&secretGitArgs.ecdsaCurve, "ssh-ecdsa-curve", secretGitArgs.ecdsaCurve.Description())
createSecretGitCmd.Flags().StringVar(&secretGitArgs.caFile, "ca-file", "", "path to TLS CA file used for validating self-signed certificates")
createSecretGitCmd.Flags().StringVar(&secretGitArgs.caCrtFile, "ca-crt-file", "", "path to TLS CA certificate file used for validating self-signed certificates")
createSecretGitCmd.Flags().StringVar(&secretGitArgs.privateKeyFile, "private-key-file", "", "path to a passwordless private key file used for authenticating to the Git SSH server")
createSecretGitCmd.Flags().StringVar(&secretGitArgs.bearerToken, "bearer-token", "", "bearer authentication token")
createSecretCmd.AddCommand(createSecretGitCmd)
}
@@ -135,24 +140,39 @@ func createSecretGitCmdRun(cmd *cobra.Command, args []string) error {
}
switch u.Scheme {
case "ssh":
keypair, err := sourcesecret.LoadKeyPairFromPath(secretGitArgs.privateKeyFile, secretGitArgs.password)
if err != nil {
return err
}
opts.Keypair = keypair
opts.SSHHostname = u.Host
opts.PrivateKeyPath = secretGitArgs.privateKeyFile
opts.PrivateKeyAlgorithm = sourcesecret.PrivateKeyAlgorithm(secretGitArgs.keyAlgorithm)
opts.RSAKeyBits = int(secretGitArgs.rsaBits)
opts.ECDSACurve = secretGitArgs.ecdsaCurve.Curve
opts.Password = secretGitArgs.password
case "http", "https":
if secretGitArgs.username == "" || secretGitArgs.password == "" {
return fmt.Errorf("for Git over HTTP/S the username and password are required")
if (secretGitArgs.username == "" || secretGitArgs.password == "") && secretGitArgs.bearerToken == "" {
return fmt.Errorf("for Git over HTTP/S the username and password, or a bearer token is required")
}
opts.Username = secretGitArgs.username
opts.Password = secretGitArgs.password
opts.CAFilePath = secretGitArgs.caFile
opts.BearerToken = secretGitArgs.bearerToken
if secretGitArgs.username != "" && secretGitArgs.password != "" && secretGitArgs.bearerToken != "" {
return fmt.Errorf("user credentials and bearer token cannot be used together")
}
// --ca-crt-file takes precedence over --ca-file.
if secretGitArgs.caCrtFile != "" {
opts.CACrt, err = os.ReadFile(secretGitArgs.caCrtFile)
if err != nil {
return fmt.Errorf("unable to read TLS CA file: %w", err)
}
}
default:
return fmt.Errorf("git URL scheme '%s' not supported, can be: ssh, http and https", u.Scheme)
}
secret, err := sourcesecret.Generate(opts)
secret, err := sourcesecret.GenerateGit(opts)
if err != nil {
return err
}
@@ -173,7 +193,7 @@ func createSecretGitCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}

View File

@@ -1,10 +1,21 @@
package main
import (
"fmt"
"os"
"testing"
)
func TestCreateGitSecret(t *testing.T) {
file, err := os.CreateTemp(t.TempDir(), "ca-crt")
if err != nil {
t.Fatal("could not create CA certificate file")
}
_, err = file.Write([]byte("ca-data"))
if err != nil {
t.Fatal("could not write to CA certificate file")
}
tests := []struct {
name string
args string
@@ -30,6 +41,21 @@ func TestCreateGitSecret(t *testing.T) {
args: "create secret git podinfo-auth --url=ssh://git@github.com/stefanprodan/podinfo --private-key-file=./testdata/create_secret/git/ecdsa-password.private --password=password --namespace=my-namespace --export",
assert: assertGoldenFile("testdata/create_secret/git/git-ssh-secret-password.yaml"),
},
{
name: "git authentication with bearer token",
args: "create secret git bearer-token-auth --url=https://github.com/stefanprodan/podinfo --bearer-token=ghp_baR2qnFF0O41WlucePL3udt2N9vVZS4R0hAS --namespace=my-namespace --export",
assert: assertGoldenFile("testdata/create_secret/git/git-bearer-token.yaml"),
},
{
name: "git authentication with CA certificate",
args: fmt.Sprintf("create secret git ca-crt --url=https://github.com/stefanprodan/podinfo --password=my-password --username=my-username --ca-crt-file=%s --namespace=my-namespace --export", file.Name()),
assert: assertGoldenFile("testdata/create_secret/git/secret-ca-crt.yaml"),
},
{
name: "git authentication with basic auth and bearer token",
args: "create secret git podinfo-auth --url=https://github.com/stefanprodan/podinfo --username=aaa --password=zzzz --bearer-token=aaaa --namespace=my-namespace --export",
assert: assertError("user credentials and bearer token cannot be used together"),
},
}
for _, tt := range tests {

View File

@@ -0,0 +1,116 @@
/*
Copyright 2024 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"context"
"fmt"
"os"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
"sigs.k8s.io/yaml"
)
var createSecretGitHubAppCmd = &cobra.Command{
Use: "githubapp [name]",
Short: "Create or update a github app secret",
Long: withPreviewNote(`The create secret githubapp command generates a Kubernetes secret that can be used for GitRepository authentication with github app`),
Example: ` # Create a githubapp authentication secret on disk and encrypt it with Mozilla SOPS
flux create secret githubapp podinfo-auth \
--app-id="1" \
--app-installation-id="2" \
--app-private-key=./private-key-file.pem \
--export > githubapp-auth.yaml
sops --encrypt --encrypted-regex '^(data|stringData)$' \
--in-place githubapp-auth.yaml
`,
RunE: createSecretGitHubAppCmdRun,
}
type secretGitHubAppFlags struct {
appID string
appInstallationOwner string
appInstallationID string
privateKeyFile string
baseURL string
}
var secretGitHubAppArgs = secretGitHubAppFlags{}
func init() {
createSecretGitHubAppCmd.Flags().StringVar(&secretGitHubAppArgs.appID, "app-id", "", "github app ID")
createSecretGitHubAppCmd.Flags().StringVar(&secretGitHubAppArgs.appInstallationOwner, "app-installation-owner", "", "github app installation owner (user or organization)")
createSecretGitHubAppCmd.Flags().StringVar(&secretGitHubAppArgs.appInstallationID, "app-installation-id", "", "github app installation ID")
createSecretGitHubAppCmd.Flags().StringVar(&secretGitHubAppArgs.privateKeyFile, "app-private-key", "", "github app private key file path")
createSecretGitHubAppCmd.Flags().StringVar(&secretGitHubAppArgs.baseURL, "app-base-url", "", "github app base URL")
createSecretCmd.AddCommand(createSecretGitHubAppCmd)
}
func createSecretGitHubAppCmdRun(cmd *cobra.Command, args []string) error {
if len(args) < 1 {
return fmt.Errorf("name is required")
}
secretName := args[0]
privateKey, err := os.ReadFile(secretGitHubAppArgs.privateKeyFile)
if err != nil {
return fmt.Errorf("unable to read private key file: %w", err)
}
opts := sourcesecret.Options{
Name: secretName,
Namespace: *kubeconfigArgs.Namespace,
GitHubAppID: secretGitHubAppArgs.appID,
GitHubAppInstallationOwner: secretGitHubAppArgs.appInstallationOwner,
GitHubAppInstallationID: secretGitHubAppArgs.appInstallationID,
GitHubAppPrivateKey: string(privateKey),
GitHubAppBaseURL: secretGitHubAppArgs.baseURL,
}
secret, err := sourcesecret.GenerateGitHubApp(opts)
if err != nil {
return err
}
if createArgs.export {
rootCmd.Println(secret.Content)
return nil
}
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
var s corev1.Secret
if err := yaml.Unmarshal([]byte(secret.Content), &s); err != nil {
return err
}
if err := upsertSecret(ctx, kubeClient, s); err != nil {
return err
}
logger.Actionf("githubapp secret '%s' created in '%s' namespace", secretName, *kubeconfigArgs.Namespace)
return nil
}

View File

@@ -0,0 +1,59 @@
/*
Copyright 2022 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"testing"
)
func TestCreateSecretGitHubApp(t *testing.T) {
tests := []struct {
name string
args string
assert assertFunc
}{
{
name: "create githubapp secret with missing name",
args: "create secret githubapp",
assert: assertError("name is required"),
},
{
name: "create githubapp secret with private key file that does not exist",
args: "create secret githubapp appinfo --app-id 1 --app-installation-id 2 --app-private-key pk.pem",
assert: assertError("unable to read private key file: open pk.pem: no such file or directory"),
},
{
name: "create githubapp secret with app info",
args: "create secret githubapp appinfo --namespace my-namespace --app-id 1 --app-installation-owner my-org --app-private-key ./testdata/create_secret/githubapp/test-private-key.pem --export",
assert: assertGoldenFile("testdata/create_secret/githubapp/secret.yaml"),
},
{
name: "create githubapp secret with appinfo and base url",
args: "create secret githubapp appinfo --namespace my-namespace --app-id 1 --app-installation-id 2 --app-private-key ./testdata/create_secret/githubapp/test-private-key.pem --app-base-url www.example.com/api/v3 --export",
assert: assertGoldenFile("testdata/create_secret/githubapp/secret-with-baseurl.yaml"),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
cmd := cmdTestCase{
args: tt.args,
assert: tt.assert,
}
cmd.runTestCmd(t)
})
}
}

View File

@@ -18,13 +18,15 @@ package main
import (
"context"
"fmt"
"os"
"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
"sigs.k8s.io/yaml"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
)
var createSecretHelmCmd = &cobra.Command{
@@ -39,15 +41,8 @@ var createSecretHelmCmd = &cobra.Command{
--export > repo-auth.yaml
sops --encrypt --encrypted-regex '^(data|stringData)$' \
--in-place repo-auth.yaml
--in-place repo-auth.yaml`,
# Create a Helm authentication secret using a custom TLS cert
flux create secret helm repo-auth \
--username=username \
--password=password \
--cert-file=./cert.crt \
--key-file=./key.crt \
--ca-file=./ca.crt`,
RunE: createSecretHelmCmdRun,
}
@@ -60,9 +55,13 @@ type secretHelmFlags struct {
var secretHelmArgs secretHelmFlags
func init() {
createSecretHelmCmd.Flags().StringVarP(&secretHelmArgs.username, "username", "u", "", "basic authentication username")
createSecretHelmCmd.Flags().StringVarP(&secretHelmArgs.password, "password", "p", "", "basic authentication password")
initSecretTLSFlags(createSecretHelmCmd.Flags(), &secretHelmArgs.secretTLSFlags)
flags := createSecretHelmCmd.Flags()
flags.StringVarP(&secretHelmArgs.username, "username", "u", "", "basic authentication username")
flags.StringVarP(&secretHelmArgs.password, "password", "p", "", "basic authentication password")
flags.StringVar(&secretHelmArgs.tlsCrtFile, "tls-crt-file", "", "TLS authentication cert file path")
flags.StringVar(&secretHelmArgs.tlsKeyFile, "tls-key-file", "", "TLS authentication key file path")
flags.StringVar(&secretHelmArgs.caCrtFile, "ca-crt-file", "", "TLS authentication CA file path")
createSecretCmd.AddCommand(createSecretHelmCmd)
}
@@ -74,17 +73,38 @@ func createSecretHelmCmdRun(cmd *cobra.Command, args []string) error {
return err
}
opts := sourcesecret.Options{
Name: name,
Namespace: *kubeconfigArgs.Namespace,
Labels: labels,
Username: secretHelmArgs.username,
Password: secretHelmArgs.password,
CAFilePath: secretHelmArgs.caFile,
CertFilePath: secretHelmArgs.certFile,
KeyFilePath: secretHelmArgs.keyFile,
caBundle := []byte{}
if secretHelmArgs.caCrtFile != "" {
var err error
caBundle, err = os.ReadFile(secretHelmArgs.caCrtFile)
if err != nil {
return fmt.Errorf("unable to read TLS CA file: %w", err)
}
}
secret, err := sourcesecret.Generate(opts)
var certFile, keyFile []byte
if secretHelmArgs.tlsCrtFile != "" {
if certFile, err = os.ReadFile(secretHelmArgs.tlsCrtFile); err != nil {
return fmt.Errorf("failed to read cert file: %w", err)
}
}
if secretHelmArgs.tlsKeyFile != "" {
if keyFile, err = os.ReadFile(secretHelmArgs.tlsKeyFile); err != nil {
return fmt.Errorf("failed to read key file: %w", err)
}
}
opts := sourcesecret.Options{
Name: name,
Namespace: *kubeconfigArgs.Namespace,
Labels: labels,
Username: secretHelmArgs.username,
Password: secretHelmArgs.password,
CACrt: caBundle,
TLSCrt: certFile,
TLSKey: keyFile,
}
secret, err := sourcesecret.GenerateHelm(opts)
if err != nil {
return err
}
@@ -96,7 +116,7 @@ func createSecretHelmCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}

View File

@@ -1,3 +1,19 @@
/*
Copyright 2022 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (

View File

@@ -0,0 +1,161 @@
/*
Copyright 2024 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"context"
"encoding/json"
"errors"
"fmt"
"os"
"path/filepath"
"strings"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
"github.com/notaryproject/notation-go/verifier/trustpolicy"
"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
"sigs.k8s.io/yaml"
)
var createSecretNotationCmd = &cobra.Command{
Use: "notation [name]",
Short: "Create or update a Kubernetes secret for verifications of artifacts signed by Notation",
Long: withPreviewNote(`The create secret notation command generates a Kubernetes secret with root ca certificates and trust policy.`),
Example: ` # Create a Notation configuration secret on disk and encrypt it with Mozilla SOPS
flux create secret notation my-notation-cert \
--namespace=my-namespace \
--trust-policy-file=./my-trust-policy.json \
--ca-cert-file=./my-cert.crt \
--export > my-notation-cert.yaml
sops --encrypt --encrypted-regex '^(data|stringData)$' \
--in-place my-notation-cert.yaml`,
RunE: createSecretNotationCmdRun,
}
type secretNotationFlags struct {
trustPolicyFile string
caCrtFile []string
}
var secretNotationArgs secretNotationFlags
func init() {
createSecretNotationCmd.Flags().StringVar(&secretNotationArgs.trustPolicyFile, "trust-policy-file", "", "notation trust policy file path")
createSecretNotationCmd.Flags().StringSliceVar(&secretNotationArgs.caCrtFile, "ca-cert-file", []string{}, "root ca cert file path")
createSecretCmd.AddCommand(createSecretNotationCmd)
}
func createSecretNotationCmdRun(cmd *cobra.Command, args []string) error {
if len(args) < 1 {
return fmt.Errorf("name is required")
}
if secretNotationArgs.caCrtFile == nil || len(secretNotationArgs.caCrtFile) == 0 {
return fmt.Errorf("--ca-cert-file is required")
}
if secretNotationArgs.trustPolicyFile == "" {
return fmt.Errorf("--trust-policy-file is required")
}
name := args[0]
labels, err := parseLabels()
if err != nil {
return err
}
policy, err := os.ReadFile(secretNotationArgs.trustPolicyFile)
if err != nil {
return fmt.Errorf("unable to read trust policy file: %w", err)
}
var doc trustpolicy.Document
if err := json.Unmarshal(policy, &doc); err != nil {
return fmt.Errorf("failed to unmarshal trust policy %s: %w", secretNotationArgs.trustPolicyFile, err)
}
if err := doc.Validate(); err != nil {
return fmt.Errorf("invalid trust policy: %w", err)
}
var (
caCerts []sourcesecret.VerificationCrt
fileErr error
)
for _, caCrtFile := range secretNotationArgs.caCrtFile {
fileName := filepath.Base(caCrtFile)
if !strings.HasSuffix(fileName, ".crt") && !strings.HasSuffix(fileName, ".pem") {
fileErr = errors.Join(fileErr, fmt.Errorf("%s must end with either .crt or .pem", fileName))
continue
}
caBundle, err := os.ReadFile(caCrtFile)
if err != nil {
fileErr = errors.Join(fileErr, fmt.Errorf("unable to read TLS CA file: %w", err))
continue
}
caCerts = append(caCerts, sourcesecret.VerificationCrt{Name: fileName, CACrt: caBundle})
}
if fileErr != nil {
return fileErr
}
if len(caCerts) == 0 {
return fmt.Errorf("no CA certs found")
}
opts := sourcesecret.Options{
Name: name,
Namespace: *kubeconfigArgs.Namespace,
Labels: labels,
VerificationCrts: caCerts,
TrustPolicy: policy,
}
secret, err := sourcesecret.GenerateNotation(opts)
if err != nil {
return err
}
if createArgs.export {
rootCmd.Println(secret.Content)
return nil
}
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
var s corev1.Secret
if err := yaml.Unmarshal([]byte(secret.Content), &s); err != nil {
return err
}
if err := upsertSecret(ctx, kubeClient, s); err != nil {
return err
}
logger.Actionf("notation configuration secret '%s' created in '%s' namespace", name, *kubeconfigArgs.Namespace)
return nil
}

View File

@@ -0,0 +1,124 @@
/*
Copyright 2024 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"fmt"
"os"
"path/filepath"
"testing"
)
const (
trustPolicy = "./testdata/create_secret/notation/test-trust-policy.json"
invalidTrustPolicy = "./testdata/create_secret/notation/invalid-trust-policy.json"
invalidJson = "./testdata/create_secret/notation/invalid.json"
testCertFolder = "./testdata/create_secret/notation"
)
func TestCreateNotationSecret(t *testing.T) {
crt, err := os.Create(filepath.Join(t.TempDir(), "ca.crt"))
if err != nil {
t.Fatal("could not create ca.crt file")
}
pem, err := os.Create(filepath.Join(t.TempDir(), "ca.pem"))
if err != nil {
t.Fatal("could not create ca.pem file")
}
invalidCert, err := os.Create(filepath.Join(t.TempDir(), "ca.p12"))
if err != nil {
t.Fatal("could not create ca.p12 file")
}
_, err = crt.Write([]byte("ca-data-crt"))
if err != nil {
t.Fatal("could not write to crt certificate file")
}
_, err = pem.Write([]byte("ca-data-pem"))
if err != nil {
t.Fatal("could not write to pem certificate file")
}
tests := []struct {
name string
args string
assert assertFunc
}{
{
name: "no args",
args: "create secret notation",
assert: assertError("name is required"),
},
{
name: "no trust policy",
args: fmt.Sprintf("create secret notation notation-config --ca-cert-file=%s", testCertFolder),
assert: assertError("--trust-policy-file is required"),
},
{
name: "no cert",
args: fmt.Sprintf("create secret notation notation-config --trust-policy-file=%s", trustPolicy),
assert: assertError("--ca-cert-file is required"),
},
{
name: "non pem and crt cert",
args: fmt.Sprintf("create secret notation notation-config --ca-cert-file=%s --trust-policy-file=%s", invalidCert.Name(), trustPolicy),
assert: assertError("ca.p12 must end with either .crt or .pem"),
},
{
name: "invalid trust policy",
args: fmt.Sprintf("create secret notation notation-config --ca-cert-file=%s --trust-policy-file=%s", t.TempDir(), invalidTrustPolicy),
assert: assertError("invalid trust policy: trust policy: a trust policy statement is missing a name, every statement requires a name"),
},
{
name: "invalid trust policy json",
args: fmt.Sprintf("create secret notation notation-config --ca-cert-file=%s --trust-policy-file=%s", t.TempDir(), invalidJson),
assert: assertError(fmt.Sprintf("failed to unmarshal trust policy %s: json: cannot unmarshal string into Go value of type trustpolicy.Document", invalidJson)),
},
{
name: "crt secret",
args: fmt.Sprintf("create secret notation notation-config --ca-cert-file=%s --trust-policy-file=%s --namespace=my-namespace --export", crt.Name(), trustPolicy),
assert: assertGoldenFile("./testdata/create_secret/notation/secret-ca-crt.yaml"),
},
{
name: "pem secret",
args: fmt.Sprintf("create secret notation notation-config --ca-cert-file=%s --trust-policy-file=%s --namespace=my-namespace --export", pem.Name(), trustPolicy),
assert: assertGoldenFile("./testdata/create_secret/notation/secret-ca-pem.yaml"),
},
{
name: "multi secret",
args: fmt.Sprintf("create secret notation notation-config --ca-cert-file=%s --ca-cert-file=%s --trust-policy-file=%s --namespace=my-namespace --export", crt.Name(), pem.Name(), trustPolicy),
assert: assertGoldenFile("./testdata/create_secret/notation/secret-ca-multi.yaml"),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
defer func() {
secretNotationArgs = secretNotationFlags{}
}()
cmd := cmdTestCase{
args: tt.args,
assert: tt.assert,
}
cmd.runTestCmd(t)
})
}
}

View File

@@ -0,0 +1,121 @@
/*
Copyright 2022 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"context"
"fmt"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
"github.com/google/go-containerregistry/pkg/name"
"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
"sigs.k8s.io/yaml"
)
var createSecretOCICmd = &cobra.Command{
Use: "oci [name]",
Short: "Create or update a Kubernetes image pull secret",
Long: withPreviewNote(`The create secret oci command generates a Kubernetes secret that can be used for OCIRepository authentication`),
Example: ` # Create an OCI authentication secret on disk and encrypt it with Mozilla SOPS
flux create secret oci podinfo-auth \
--url=ghcr.io \
--username=username \
--password=password \
--export > repo-auth.yaml
sops --encrypt --encrypted-regex '^(data|stringData)$' \
--in-place repo-auth.yaml
`,
RunE: createSecretOCICmdRun,
}
type secretOCIFlags struct {
url string
password string
username string
}
var secretOCIArgs = secretOCIFlags{}
func init() {
createSecretOCICmd.Flags().StringVar(&secretOCIArgs.url, "url", "", "oci repository address e.g ghcr.io/stefanprodan/charts")
createSecretOCICmd.Flags().StringVarP(&secretOCIArgs.username, "username", "u", "", "basic authentication username")
createSecretOCICmd.Flags().StringVarP(&secretOCIArgs.password, "password", "p", "", "basic authentication password")
createSecretCmd.AddCommand(createSecretOCICmd)
}
func createSecretOCICmdRun(cmd *cobra.Command, args []string) error {
if len(args) < 1 {
return fmt.Errorf("name is required")
}
secretName := args[0]
if secretOCIArgs.url == "" {
return fmt.Errorf("--url is required")
}
if secretOCIArgs.username == "" {
return fmt.Errorf("--username is required")
}
if secretOCIArgs.password == "" {
return fmt.Errorf("--password is required")
}
if _, err := name.ParseReference(secretOCIArgs.url); err != nil {
return fmt.Errorf("error parsing url: '%s'", err)
}
opts := sourcesecret.Options{
Name: secretName,
Namespace: *kubeconfigArgs.Namespace,
Registry: secretOCIArgs.url,
Password: secretOCIArgs.password,
Username: secretOCIArgs.username,
}
secret, err := sourcesecret.GenerateOCI(opts)
if err != nil {
return err
}
if createArgs.export {
rootCmd.Println(secret.Content)
return nil
}
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
var s corev1.Secret
if err := yaml.Unmarshal([]byte(secret.Content), &s); err != nil {
return err
}
if err := upsertSecret(ctx, kubeClient, s); err != nil {
return err
}
logger.Actionf("oci secret '%s' created in '%s' namespace", secretName, *kubeconfigArgs.Namespace)
return nil
}

View File

@@ -0,0 +1,51 @@
/*
Copyright 2022 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"testing"
)
func TestCreateSecretOCI(t *testing.T) {
tests := []struct {
name string
args string
assert assertFunc
}{
{
args: "create secret oci",
assert: assertError("name is required"),
},
{
args: "create secret oci ghcr",
assert: assertError("--url is required"),
},
{
args: "create secret oci ghcr --namespace=my-namespace --url ghcr.io --username stefanprodan --password=password --export",
assert: assertGoldenFile("testdata/create_secret/oci/create-secret.yaml"),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
cmd := cmdTestCase{
args: tt.args,
assert: tt.assert,
}
cmd.runTestCmd(t)
})
}
}

View File

@@ -0,0 +1,112 @@
/*
Copyright 2024 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"context"
"errors"
"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
"sigs.k8s.io/yaml"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
)
var createSecretProxyCmd = &cobra.Command{
Use: "proxy [name]",
Short: "Create or update a Kubernetes secret for proxy authentication",
Long: `The create secret proxy command generates a Kubernetes secret with the
proxy address and the basic authentication credentials.`,
Example: ` # Create a proxy secret on disk and encrypt it with SOPS
flux create secret proxy my-proxy \
--namespace=my-namespace \
--address=https://my-proxy.com \
--username=my-username \
--password=my-password \
--export > proxy.yaml
sops --encrypt --encrypted-regex '^(data|stringData)$' \
--in-place proxy.yaml`,
RunE: createSecretProxyCmdRun,
}
type secretProxyFlags struct {
address string
username string
password string
}
var secretProxyArgs secretProxyFlags
func init() {
createSecretProxyCmd.Flags().StringVar(&secretProxyArgs.address, "address", "", "proxy address")
createSecretProxyCmd.Flags().StringVarP(&secretProxyArgs.username, "username", "u", "", "basic authentication username")
createSecretProxyCmd.Flags().StringVarP(&secretProxyArgs.password, "password", "p", "", "basic authentication password")
createSecretCmd.AddCommand(createSecretProxyCmd)
}
func createSecretProxyCmdRun(cmd *cobra.Command, args []string) error {
name := args[0]
labels, err := parseLabels()
if err != nil {
return err
}
if secretProxyArgs.address == "" {
return errors.New("address is required")
}
opts := sourcesecret.Options{
Name: name,
Namespace: *kubeconfigArgs.Namespace,
Labels: labels,
Address: secretProxyArgs.address,
Username: secretProxyArgs.username,
Password: secretProxyArgs.password,
}
secret, err := sourcesecret.GenerateProxy(opts)
if err != nil {
return err
}
if createArgs.export {
rootCmd.Println(secret.Content)
return nil
}
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
var s corev1.Secret
if err := yaml.Unmarshal([]byte(secret.Content), &s); err != nil {
return err
}
if err := upsertSecret(ctx, kubeClient, s); err != nil {
return err
}
logger.Actionf("proxy secret '%s' created in '%s' namespace", name, *kubeconfigArgs.Namespace)
return nil
}

View File

@@ -0,0 +1,47 @@
/*
Copyright 2024 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"testing"
)
func TestCreateProxySecret(t *testing.T) {
tests := []struct {
name string
args string
assert assertFunc
}{
{
args: "create secret proxy proxy-secret",
assert: assertError("address is required"),
},
{
args: "create secret proxy proxy-secret --address=https://my-proxy.com --username=my-username --password=my-password --namespace=my-namespace --export",
assert: assertGoldenFile("testdata/create_secret/proxy/secret-proxy.yaml"),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
cmd := cmdTestCase{
args: tt.args,
assert: tt.assert,
}
cmd.runTestCmd(t)
})
}
}

View File

@@ -18,26 +18,28 @@ package main
import (
"context"
"fmt"
"os"
"github.com/spf13/cobra"
"github.com/spf13/pflag"
corev1 "k8s.io/api/core/v1"
"sigs.k8s.io/yaml"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
)
var createSecretTLSCmd = &cobra.Command{
Use: "tls [name]",
Short: "Create or update a Kubernetes secret with TLS certificates",
Long: `The create secret tls command generates a Kubernetes secret with certificates for use with TLS.`,
Example: ` # Create a TLS secret on disk and encrypt it with Mozilla SOPS.
Example: ` # Create a TLS secret on disk and encrypt it with SOPS.
# Files are expected to be PEM-encoded.
flux create secret tls certs \
--namespace=my-namespace \
--cert-file=./client.crt \
--key-file=./client.key \
--tls-crt-file=./client.crt \
--tls-key-file=./client.key \
--ca-crt-file=./ca.crt \
--export > certs.yaml
sops --encrypt --encrypted-regex '^(data|stringData)$' \
@@ -46,22 +48,18 @@ var createSecretTLSCmd = &cobra.Command{
}
type secretTLSFlags struct {
certFile string
keyFile string
caFile string
caCrtFile string
tlsKeyFile string
tlsCrtFile string
}
var secretTLSArgs secretTLSFlags
func initSecretTLSFlags(flags *pflag.FlagSet, args *secretTLSFlags) {
flags.StringVar(&args.certFile, "cert-file", "", "TLS authentication cert file path")
flags.StringVar(&args.keyFile, "key-file", "", "TLS authentication key file path")
flags.StringVar(&args.caFile, "ca-file", "", "TLS authentication CA file path")
}
func init() {
flags := createSecretTLSCmd.Flags()
initSecretTLSFlags(flags, &secretTLSArgs)
createSecretTLSCmd.Flags().StringVar(&secretTLSArgs.tlsCrtFile, "tls-crt-file", "", "TLS authentication cert file path")
createSecretTLSCmd.Flags().StringVar(&secretTLSArgs.tlsKeyFile, "tls-key-file", "", "TLS authentication key file path")
createSecretTLSCmd.Flags().StringVar(&secretTLSArgs.caCrtFile, "ca-crt-file", "", "TLS authentication CA file path")
createSecretCmd.AddCommand(createSecretTLSCmd)
}
@@ -74,14 +72,30 @@ func createSecretTLSCmdRun(cmd *cobra.Command, args []string) error {
}
opts := sourcesecret.Options{
Name: name,
Namespace: *kubeconfigArgs.Namespace,
Labels: labels,
CAFilePath: secretTLSArgs.caFile,
CertFilePath: secretTLSArgs.certFile,
KeyFilePath: secretTLSArgs.keyFile,
Name: name,
Namespace: *kubeconfigArgs.Namespace,
Labels: labels,
}
secret, err := sourcesecret.Generate(opts)
if secretTLSArgs.caCrtFile != "" {
opts.CACrt, err = os.ReadFile(secretTLSArgs.caCrtFile)
if err != nil {
return fmt.Errorf("unable to read TLS CA file: %w", err)
}
}
if secretTLSArgs.tlsCrtFile != "" {
if opts.TLSCrt, err = os.ReadFile(secretTLSArgs.tlsCrtFile); err != nil {
return fmt.Errorf("failed to read cert file: %w", err)
}
}
if secretTLSArgs.tlsKeyFile != "" {
if opts.TLSKey, err = os.ReadFile(secretTLSArgs.tlsKeyFile); err != nil {
return fmt.Errorf("failed to read key file: %w", err)
}
}
secret, err := sourcesecret.GenerateTLS(opts)
if err != nil {
return err
}
@@ -93,7 +107,7 @@ func createSecretTLSCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}

View File

@@ -4,7 +4,7 @@ import (
"testing"
)
func TestCreateTlsSecretNoArgs(t *testing.T) {
func TestCreateTlsSecret(t *testing.T) {
tests := []struct {
name string
args string
@@ -15,7 +15,7 @@ func TestCreateTlsSecretNoArgs(t *testing.T) {
assert: assertError("name is required"),
},
{
args: "create secret tls certs --namespace=my-namespace --cert-file=./testdata/create_secret/tls/test-cert.pem --key-file=./testdata/create_secret/tls/test-key.pem --export",
args: "create secret tls certs --namespace=my-namespace --tls-crt-file=./testdata/create_secret/tls/test-cert.pem --tls-key-file=./testdata/create_secret/tls/test-key.pem --ca-crt-file=./testdata/create_secret/tls/test-ca.pem --export",
assert: assertGoldenFile("testdata/create_secret/tls/secret-tls.yaml"),
},
}

View File

@@ -25,7 +25,7 @@ import (
var createSourceCmd = &cobra.Command{
Use: "source",
Short: "Create or update sources",
Long: "The create source sub-commands generate sources.",
Long: `The create source sub-commands generate sources.`,
}
type createSourceFlags struct {

View File

@@ -19,7 +19,7 @@ package main
import (
"context"
"fmt"
"os"
"strings"
"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
@@ -30,10 +30,11 @@ import (
"sigs.k8s.io/controller-runtime/pkg/client"
"github.com/fluxcd/pkg/apis/meta"
sourcev1 "github.com/fluxcd/source-controller/api/v1beta1"
"github.com/fluxcd/flux2/internal/flags"
"github.com/fluxcd/flux2/internal/utils"
sourcev1 "github.com/fluxcd/source-controller/api/v1"
"github.com/fluxcd/flux2/v2/internal/flags"
"github.com/fluxcd/flux2/v2/internal/utils"
)
var createSourceBucketCmd = &cobra.Command{
@@ -61,17 +62,19 @@ For Buckets with static authentication, the credentials are stored in a Kubernet
}
type sourceBucketFlags struct {
name string
provider flags.SourceBucketProvider
endpoint string
accessKey string
secretKey string
region string
insecure bool
secretRef string
name string
provider flags.SourceBucketProvider
endpoint string
accessKey string
secretKey string
region string
insecure bool
secretRef string
proxySecretRef string
ignorePaths []string
}
var sourceBucketArgs = NewSourceBucketFlags()
var sourceBucketArgs = newSourceBucketFlags()
func init() {
createSourceBucketCmd.Flags().Var(&sourceBucketArgs.provider, "provider", sourceBucketArgs.provider.Description())
@@ -82,13 +85,15 @@ func init() {
createSourceBucketCmd.Flags().StringVar(&sourceBucketArgs.region, "region", "", "the bucket region")
createSourceBucketCmd.Flags().BoolVar(&sourceBucketArgs.insecure, "insecure", false, "for when connecting to a non-TLS S3 HTTP endpoint")
createSourceBucketCmd.Flags().StringVar(&sourceBucketArgs.secretRef, "secret-ref", "", "the name of an existing secret containing credentials")
createSourceBucketCmd.Flags().StringVar(&sourceBucketArgs.proxySecretRef, "proxy-secret-ref", "", "the name of an existing secret containing the proxy address and credentials")
createSourceBucketCmd.Flags().StringSliceVar(&sourceBucketArgs.ignorePaths, "ignore-paths", nil, "set paths to ignore in bucket resource (can specify multiple paths with commas: path1,path2)")
createSourceCmd.AddCommand(createSourceBucketCmd)
}
func NewSourceBucketFlags() sourceBucketFlags {
func newSourceBucketFlags() sourceBucketFlags {
return sourceBucketFlags{
provider: flags.SourceBucketProvider(sourcev1.GenericBucketProvider),
provider: flags.SourceBucketProvider(sourcev1.BucketProviderGeneric),
}
}
@@ -108,11 +113,11 @@ func createSourceBucketCmdRun(cmd *cobra.Command, args []string) error {
return err
}
tmpDir, err := os.MkdirTemp("", name)
if err != nil {
return err
var ignorePaths *string
if len(sourceBucketArgs.ignorePaths) > 0 {
ignorePathsStr := strings.Join(sourceBucketArgs.ignorePaths, "\n")
ignorePaths = &ignorePathsStr
}
defer os.RemoveAll(tmpDir)
bucket := &sourcev1.Bucket{
ObjectMeta: metav1.ObjectMeta{
@@ -129,6 +134,7 @@ func createSourceBucketCmdRun(cmd *cobra.Command, args []string) error {
Interval: metav1.Duration{
Duration: createArgs.interval,
},
Ignore: ignorePaths,
},
}
@@ -142,6 +148,12 @@ func createSourceBucketCmdRun(cmd *cobra.Command, args []string) error {
}
}
if sourceBucketArgs.proxySecretRef != "" {
bucket.Spec.ProxySecretRef = &meta.LocalObjectReference{
Name: sourceBucketArgs.proxySecretRef,
}
}
if createArgs.export {
return printExport(exportBucket(bucket))
}
@@ -149,7 +161,7 @@ func createSourceBucketCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
@@ -192,8 +204,8 @@ func createSourceBucketCmdRun(cmd *cobra.Command, args []string) error {
}
logger.Waitingf("waiting for Bucket source reconciliation")
if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout,
isBucketReady(ctx, kubeClient, namespacedName, bucket)); err != nil {
if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true,
isObjectReadyConditionFunc(kubeClient, namespacedName, bucket)); err != nil {
return err
}
logger.Successf("Bucket source reconciliation completed")

View File

@@ -0,0 +1,217 @@
/*
Copyright 2024 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"context"
"fmt"
"github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
"sigs.k8s.io/controller-runtime/pkg/client"
"github.com/fluxcd/pkg/apis/meta"
sourcev1 "github.com/fluxcd/source-controller/api/v1"
"github.com/fluxcd/flux2/v2/internal/flags"
"github.com/fluxcd/flux2/v2/internal/utils"
)
var createSourceChartCmd = &cobra.Command{
Use: "chart [name]",
Short: "Create or update a HelmChart source",
Long: `The create source chart command generates a HelmChart resource and waits for the chart to be available.`,
Example: ` # Create a source for a chart residing in a HelmRepository
flux create source chart podinfo \
--source=HelmRepository/podinfo \
--chart=podinfo \
--chart-version=6.x
# Create a source for a chart residing in a Git repository
flux create source chart podinfo \
--source=GitRepository/podinfo \
--chart=./charts/podinfo
# Create a source for a chart residing in a S3 Bucket
flux create source chart podinfo \
--source=Bucket/podinfo \
--chart=./charts/podinfo
# Create a source for a chart from OCI and verify its signature
flux create source chart podinfo \
--source HelmRepository/podinfo \
--chart podinfo \
--chart-version=6.6.2 \
--verify-provider=cosign \
--verify-issuer=https://token.actions.githubusercontent.com \
--verify-subject=https://github.com/stefanprodan/podinfo/.github/workflows/release.yml@refs/tags/6.6.2`,
RunE: createSourceChartCmdRun,
}
type sourceChartFlags struct {
chart string
chartVersion string
source flags.LocalHelmChartSource
reconcileStrategy string
verifyProvider flags.SourceOCIVerifyProvider
verifySecretRef string
verifyOIDCIssuer string
verifySubject string
}
var sourceChartArgs sourceChartFlags
func init() {
createSourceChartCmd.Flags().StringVar(&sourceChartArgs.chart, "chart", "", "Helm chart name or path")
createSourceChartCmd.Flags().StringVar(&sourceChartArgs.chartVersion, "chart-version", "", "Helm chart version, accepts a semver range (ignored for charts from GitRepository sources)")
createSourceChartCmd.Flags().Var(&sourceChartArgs.source, "source", sourceChartArgs.source.Description())
createSourceChartCmd.Flags().StringVar(&sourceChartArgs.reconcileStrategy, "reconcile-strategy", "ChartVersion", "the reconcile strategy for helm chart (accepted values: Revision and ChartRevision)")
createSourceChartCmd.Flags().Var(&sourceChartArgs.verifyProvider, "verify-provider", sourceOCIRepositoryArgs.verifyProvider.Description())
createSourceChartCmd.Flags().StringVar(&sourceChartArgs.verifySecretRef, "verify-secret-ref", "", "the name of a secret to use for signature verification")
createSourceChartCmd.Flags().StringVar(&sourceChartArgs.verifySubject, "verify-subject", "", "regular expression to use for the OIDC subject during signature verification")
createSourceChartCmd.Flags().StringVar(&sourceChartArgs.verifyOIDCIssuer, "verify-issuer", "", "regular expression to use for the OIDC issuer during signature verification")
createSourceCmd.AddCommand(createSourceChartCmd)
}
func createSourceChartCmdRun(cmd *cobra.Command, args []string) error {
name := args[0]
if sourceChartArgs.source.Kind == "" || sourceChartArgs.source.Name == "" {
return fmt.Errorf("chart source is required")
}
if sourceChartArgs.chart == "" {
return fmt.Errorf("chart name or path is required")
}
logger.Generatef("generating HelmChart source")
sourceLabels, err := parseLabels()
if err != nil {
return err
}
helmChart := &sourcev1.HelmChart{
ObjectMeta: metav1.ObjectMeta{
Name: name,
Namespace: *kubeconfigArgs.Namespace,
Labels: sourceLabels,
},
Spec: sourcev1.HelmChartSpec{
Chart: sourceChartArgs.chart,
Version: sourceChartArgs.chartVersion,
Interval: metav1.Duration{
Duration: createArgs.interval,
},
ReconcileStrategy: sourceChartArgs.reconcileStrategy,
SourceRef: sourcev1.LocalHelmChartSourceReference{
Kind: sourceChartArgs.source.Kind,
Name: sourceChartArgs.source.Name,
},
},
}
if provider := sourceChartArgs.verifyProvider.String(); provider != "" {
helmChart.Spec.Verify = &sourcev1.OCIRepositoryVerification{
Provider: provider,
}
if secretName := sourceChartArgs.verifySecretRef; secretName != "" {
helmChart.Spec.Verify.SecretRef = &meta.LocalObjectReference{
Name: secretName,
}
}
verifyIssuer := sourceChartArgs.verifyOIDCIssuer
verifySubject := sourceChartArgs.verifySubject
if verifyIssuer != "" || verifySubject != "" {
helmChart.Spec.Verify.MatchOIDCIdentity = []sourcev1.OIDCIdentityMatch{{
Issuer: verifyIssuer,
Subject: verifySubject,
}}
}
} else if sourceChartArgs.verifySecretRef != "" {
return fmt.Errorf("a verification provider must be specified when a secret is specified")
} else if sourceChartArgs.verifyOIDCIssuer != "" || sourceOCIRepositoryArgs.verifySubject != "" {
return fmt.Errorf("a verification provider must be specified when OIDC issuer/subject is specified")
}
if createArgs.export {
return printExport(exportHelmChart(helmChart))
}
logger.Actionf("applying HelmChart source")
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
namespacedName, err := upsertHelmChart(ctx, kubeClient, helmChart)
if err != nil {
return err
}
logger.Waitingf("waiting for HelmChart source reconciliation")
readyConditionFunc := isObjectReadyConditionFunc(kubeClient, namespacedName, helmChart)
if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, readyConditionFunc); err != nil {
return err
}
logger.Successf("HelmChart source reconciliation completed")
if helmChart.Status.Artifact == nil {
return fmt.Errorf("HelmChart source reconciliation completed but no artifact was found")
}
logger.Successf("fetched revision: %s", helmChart.Status.Artifact.Revision)
return nil
}
func upsertHelmChart(ctx context.Context, kubeClient client.Client,
helmChart *sourcev1.HelmChart) (types.NamespacedName, error) {
namespacedName := types.NamespacedName{
Namespace: helmChart.GetNamespace(),
Name: helmChart.GetName(),
}
var existing sourcev1.HelmChart
err := kubeClient.Get(ctx, namespacedName, &existing)
if err != nil {
if errors.IsNotFound(err) {
if err := kubeClient.Create(ctx, helmChart); err != nil {
return namespacedName, err
} else {
logger.Successf("source created")
return namespacedName, nil
}
}
return namespacedName, err
}
existing.Labels = helmChart.Labels
existing.Spec = helmChart.Spec
if err := kubeClient.Update(ctx, &existing); err != nil {
return namespacedName, err
}
helmChart = &existing
logger.Successf("source updated")
return namespacedName, nil
}

View File

@@ -0,0 +1,91 @@
//go:build unit
// +build unit
/*
Copyright 2024 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import "testing"
func TestCreateSourceChart(t *testing.T) {
tmpl := map[string]string{
"fluxns": allocateNamespace("flux-system"),
}
setupSourceChart(t, tmpl)
tests := []struct {
name string
args string
assert assertFunc
}{
{
name: "missing name",
args: "create source chart --export",
assert: assertError("name is required"),
},
{
name: "missing source reference",
args: "create source chart podinfo --export ",
assert: assertError("chart source is required"),
},
{
name: "missing chart name",
args: "create source chart podinfo --source helmrepository/podinfo --export",
assert: assertError("chart name or path is required"),
},
{
name: "unknown source kind",
args: "create source chart podinfo --source foobar/podinfo --export",
assert: assertError(`invalid argument "foobar/podinfo" for "--source" flag: source kind 'foobar' is not supported, must be one of: HelmRepository, GitRepository, Bucket`),
},
{
name: "basic chart",
args: "create source chart podinfo --source helmrepository/podinfo --chart podinfo --export",
assert: assertGoldenTemplateFile("testdata/create_source_chart/basic.yaml", tmpl),
},
{
name: "chart with basic signature verification",
args: "create source chart podinfo --source helmrepository/podinfo --chart podinfo --verify-provider cosign --export",
assert: assertGoldenTemplateFile("testdata/create_source_chart/verify_basic.yaml", tmpl),
},
{
name: "unknown signature verification provider",
args: "create source chart podinfo --source helmrepository/podinfo --chart podinfo --verify-provider foobar --export",
assert: assertError(`invalid argument "foobar" for "--verify-provider" flag: source OCI verify provider 'foobar' is not supported, must be one of: cosign`),
},
{
name: "chart with complete signature verification",
args: "create source chart podinfo --source helmrepository/podinfo --chart podinfo --verify-provider cosign --verify-issuer foo --verify-subject bar --export",
assert: assertGoldenTemplateFile("testdata/create_source_chart/verify_complete.yaml", tmpl),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
cmd := cmdTestCase{
args: tt.args + " -n " + tmpl["fluxns"],
assert: tt.assert,
}
cmd.runTestCmd(t)
})
}
}
func setupSourceChart(t *testing.T, tmpl map[string]string) {
t.Helper()
testEnv.CreateObjectFile("./testdata/create_source_chart/setup-source.yaml", tmpl, t)
}

View File

@@ -22,41 +22,48 @@ import (
"fmt"
"net/url"
"os"
"strings"
"github.com/fluxcd/pkg/apis/meta"
sourcev1 "github.com/fluxcd/source-controller/api/v1beta1"
"github.com/manifoldco/promptui"
"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/errors"
apimeta "k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/yaml"
"github.com/fluxcd/flux2/internal/flags"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/pkg/apis/meta"
sourcev1 "github.com/fluxcd/source-controller/api/v1"
"github.com/fluxcd/flux2/v2/internal/flags"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
)
type sourceGitFlags struct {
url string
branch string
tag string
semver string
username string
password string
keyAlgorithm flags.PublicKeyAlgorithm
keyRSABits flags.RSAKeyBits
keyECDSACurve flags.ECDSACurve
secretRef string
gitImplementation flags.GitImplementation
caFile string
privateKeyFile string
recurseSubmodules bool
silent bool
url string
branch string
tag string
semver string
refName string
commit string
username string
password string
keyAlgorithm flags.PublicKeyAlgorithm
keyRSABits flags.RSAKeyBits
keyECDSACurve flags.ECDSACurve
secretRef string
proxySecretRef string
provider flags.SourceGitProvider
caFile string
privateKeyFile string
recurseSubmodules bool
silent bool
ignorePaths []string
sparseCheckoutPaths []string
}
var createSourceGitCmd = &cobra.Command{
@@ -113,8 +120,15 @@ For private Git repositories, the basic authentication credentials are stored in
# Create a source for a Git repository using basic authentication
flux create source git podinfo \
--url=https://github.com/stefanprodan/podinfo \
--branch=master \
--username=username \
--password=password`,
--password=password
# Create a source for a Git repository using azure provider
flux create source git podinfo \
--url=https://dev.azure.com/foo/bar/_git/podinfo \
--branch=master \
--provider=azure`,
RunE: createSourceGitCmdRun,
}
@@ -125,18 +139,23 @@ func init() {
createSourceGitCmd.Flags().StringVar(&sourceGitArgs.branch, "branch", "", "git branch")
createSourceGitCmd.Flags().StringVar(&sourceGitArgs.tag, "tag", "", "git tag")
createSourceGitCmd.Flags().StringVar(&sourceGitArgs.semver, "tag-semver", "", "git tag semver range")
createSourceGitCmd.Flags().StringVar(&sourceGitArgs.refName, "ref-name", "", "git reference name")
createSourceGitCmd.Flags().StringVar(&sourceGitArgs.commit, "commit", "", "git commit")
createSourceGitCmd.Flags().StringVarP(&sourceGitArgs.username, "username", "u", "", "basic authentication username")
createSourceGitCmd.Flags().StringVarP(&sourceGitArgs.password, "password", "p", "", "basic authentication password")
createSourceGitCmd.Flags().Var(&sourceGitArgs.keyAlgorithm, "ssh-key-algorithm", sourceGitArgs.keyAlgorithm.Description())
createSourceGitCmd.Flags().Var(&sourceGitArgs.keyRSABits, "ssh-rsa-bits", sourceGitArgs.keyRSABits.Description())
createSourceGitCmd.Flags().Var(&sourceGitArgs.keyECDSACurve, "ssh-ecdsa-curve", sourceGitArgs.keyECDSACurve.Description())
createSourceGitCmd.Flags().StringVar(&sourceGitArgs.secretRef, "secret-ref", "", "the name of an existing secret containing SSH or basic credentials")
createSourceGitCmd.Flags().Var(&sourceGitArgs.gitImplementation, "git-implementation", sourceGitArgs.gitImplementation.Description())
createSourceGitCmd.Flags().StringVar(&sourceGitArgs.secretRef, "secret-ref", "", "the name of an existing secret containing SSH or basic credentials or github app authentication")
createSourceGitCmd.Flags().StringVar(&sourceGitArgs.proxySecretRef, "proxy-secret-ref", "", "the name of an existing secret containing the proxy address and credentials")
createSourceGitCmd.Flags().Var(&sourceGitArgs.provider, "provider", sourceGitArgs.provider.Description())
createSourceGitCmd.Flags().StringVar(&sourceGitArgs.caFile, "ca-file", "", "path to TLS CA file used for validating self-signed certificates")
createSourceGitCmd.Flags().StringVar(&sourceGitArgs.privateKeyFile, "private-key-file", "", "path to a passwordless private key file used for authenticating to the Git SSH server")
createSourceGitCmd.Flags().BoolVar(&sourceGitArgs.recurseSubmodules, "recurse-submodules", false,
"when enabled, configures the GitRepository source to initialize and include Git submodules in the artifact it produces")
createSourceGitCmd.Flags().BoolVarP(&sourceGitArgs.silent, "silent", "s", false, "assumes the deploy key is already setup, skips confirmation")
createSourceGitCmd.Flags().StringSliceVar(&sourceGitArgs.ignorePaths, "ignore-paths", nil, "set paths to ignore in git resource (can specify multiple paths with commas: path1,path2)")
createSourceGitCmd.Flags().StringSliceVar(&sourceGitArgs.sparseCheckoutPaths, "sparse-checkout-paths", nil, "set paths to sparse checkout in git resource (can specify multiple paths with commas: path1,path2)")
createSourceCmd.AddCommand(createSourceGitCmd)
}
@@ -164,29 +183,25 @@ func createSourceGitCmdRun(cmd *cobra.Command, args []string) error {
return fmt.Errorf("git URL scheme '%s' not supported, can be: ssh, http and https", u.Scheme)
}
if sourceGitArgs.branch == "" && sourceGitArgs.tag == "" && sourceGitArgs.semver == "" {
return fmt.Errorf("a Git ref is required, use one of the following: --branch, --tag or --tag-semver")
if sourceGitArgs.branch == "" && sourceGitArgs.tag == "" && sourceGitArgs.semver == "" && sourceGitArgs.commit == "" && sourceGitArgs.refName == "" {
return fmt.Errorf("a Git ref is required, use one of the following: --branch, --tag, --commit, --ref-name or --tag-semver")
}
if sourceGitArgs.caFile != "" && u.Scheme == "ssh" {
return fmt.Errorf("specifing a CA file is not supported for Git over SSH")
return fmt.Errorf("specifying a CA file is not supported for Git over SSH")
}
if sourceGitArgs.recurseSubmodules && sourceGitArgs.gitImplementation == sourcev1.LibGit2Implementation {
return fmt.Errorf("recurse submodules requires --git-implementation=%s", sourcev1.GoGitImplementation)
}
tmpDir, err := os.MkdirTemp("", name)
if err != nil {
return err
}
defer os.RemoveAll(tmpDir)
sourceLabels, err := parseLabels()
if err != nil {
return err
}
var ignorePaths *string
if len(sourceGitArgs.ignorePaths) > 0 {
ignorePathsStr := strings.Join(sourceGitArgs.ignorePaths, "\n")
ignorePaths = &ignorePathsStr
}
gitRepository := sourcev1.GitRepository{
ObjectMeta: metav1.ObjectMeta{
Name: name,
@@ -200,6 +215,8 @@ func createSourceGitCmdRun(cmd *cobra.Command, args []string) error {
},
RecurseSubmodules: sourceGitArgs.recurseSubmodules,
Reference: &sourcev1.GitRepositoryRef{},
Ignore: ignorePaths,
SparseCheckout: sourceGitArgs.sparseCheckoutPaths,
},
}
@@ -207,11 +224,12 @@ func createSourceGitCmdRun(cmd *cobra.Command, args []string) error {
gitRepository.Spec.Timeout = &metav1.Duration{Duration: createSourceArgs.fetchTimeout}
}
if sourceGitArgs.gitImplementation != "" {
gitRepository.Spec.GitImplementation = sourceGitArgs.gitImplementation.String()
}
if sourceGitArgs.semver != "" {
if sourceGitArgs.commit != "" {
gitRepository.Spec.Reference.Commit = sourceGitArgs.commit
gitRepository.Spec.Reference.Branch = sourceGitArgs.branch
} else if sourceGitArgs.refName != "" {
gitRepository.Spec.Reference.Name = sourceGitArgs.refName
} else if sourceGitArgs.semver != "" {
gitRepository.Spec.Reference.SemVer = sourceGitArgs.semver
} else if sourceGitArgs.tag != "" {
gitRepository.Spec.Reference.Tag = sourceGitArgs.tag
@@ -225,6 +243,16 @@ func createSourceGitCmdRun(cmd *cobra.Command, args []string) error {
}
}
if sourceGitArgs.proxySecretRef != "" {
gitRepository.Spec.ProxySecretRef = &meta.LocalObjectReference{
Name: sourceGitArgs.proxySecretRef,
}
}
if provider := sourceGitArgs.provider.String(); provider != "" {
gitRepository.Spec.Provider = provider
}
if createArgs.export {
return printExport(exportGit(&gitRepository))
}
@@ -232,7 +260,7 @@ func createSourceGitCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
@@ -246,22 +274,32 @@ func createSourceGitCmdRun(cmd *cobra.Command, args []string) error {
}
switch u.Scheme {
case "ssh":
keypair, err := sourcesecret.LoadKeyPairFromPath(sourceGitArgs.privateKeyFile, sourceGitArgs.password)
if err != nil {
return err
}
secretOpts.Keypair = keypair
secretOpts.SSHHostname = u.Host
secretOpts.PrivateKeyPath = sourceGitArgs.privateKeyFile
secretOpts.PrivateKeyAlgorithm = sourcesecret.PrivateKeyAlgorithm(sourceGitArgs.keyAlgorithm)
secretOpts.RSAKeyBits = int(sourceGitArgs.keyRSABits)
secretOpts.ECDSACurve = sourceGitArgs.keyECDSACurve.Curve
secretOpts.Password = sourceGitArgs.password
case "https":
if sourceGitArgs.caFile != "" {
caBundle, err := os.ReadFile(sourceGitArgs.caFile)
if err != nil {
return fmt.Errorf("unable to read TLS CA file: %w", err)
}
secretOpts.CACrt = caBundle
}
secretOpts.Username = sourceGitArgs.username
secretOpts.Password = sourceGitArgs.password
secretOpts.CAFilePath = sourceGitArgs.caFile
case "http":
logger.Warningf("insecure configuration: credentials configured for an HTTP URL")
secretOpts.Username = sourceGitArgs.username
secretOpts.Password = sourceGitArgs.password
}
secret, err := sourcesecret.Generate(secretOpts)
secret, err := sourcesecret.GenerateGit(secretOpts)
if err != nil {
return err
}
@@ -303,8 +341,8 @@ func createSourceGitCmdRun(cmd *cobra.Command, args []string) error {
}
logger.Waitingf("waiting for GitRepository source reconciliation")
if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout,
isGitRepositoryReady(ctx, kubeClient, namespacedName, &gitRepository)); err != nil {
if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true,
isObjectReadyConditionFunc(kubeClient, namespacedName, &gitRepository)); err != nil {
return err
}
logger.Successf("GitRepository source reconciliation completed")
@@ -346,23 +384,3 @@ func upsertGitRepository(ctx context.Context, kubeClient client.Client,
logger.Successf("GitRepository source updated")
return namespacedName, nil
}
func isGitRepositoryReady(ctx context.Context, kubeClient client.Client,
namespacedName types.NamespacedName, gitRepository *sourcev1.GitRepository) wait.ConditionFunc {
return func() (bool, error) {
err := kubeClient.Get(ctx, namespacedName, gitRepository)
if err != nil {
return false, err
}
if c := apimeta.FindStatusCondition(gitRepository.Status.Conditions, meta.ReadyCondition); c != nil {
switch c.Status {
case metav1.ConditionTrue:
return true, nil
case metav1.ConditionFalse:
return false, fmt.Errorf(c.Message)
}
}
return false, nil
}
}

View File

@@ -21,15 +21,18 @@ package main
import (
"context"
"github.com/fluxcd/pkg/apis/meta"
sourcev1 "github.com/fluxcd/source-controller/api/v1beta1"
"testing"
"time"
"k8s.io/apimachinery/pkg/api/errors"
apimeta "k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
"sigs.k8s.io/controller-runtime/pkg/client"
"testing"
"time"
"github.com/fluxcd/pkg/apis/meta"
sourcev1 "github.com/fluxcd/source-controller/api/v1"
)
var pollInterval = 50 * time.Millisecond
@@ -83,6 +86,96 @@ func (r *reconciler) conditionFunc() (bool, error) {
return true, err
}
func TestCreateSourceGitExport(t *testing.T) {
var command = "create source git podinfo --url=https://github.com/stefanprodan/podinfo --branch=master --sparse-checkout-paths .cosign,non-existent-dir/ --ignore-paths .cosign,non-existent-dir/ -n default --interval 1m --export --timeout=" + testTimeout.String()
cases := []struct {
name string
args string
assert assertFunc
}{
{
"ExportSucceeded",
command,
assertGoldenFile("testdata/create_source_git/export.golden"),
},
{
name: "no args",
args: "create source git --url=https://github.com/stefanprodan/podinfo",
assert: assertError("name is required"),
},
{
name: "source with commit",
args: "create source git podinfo --namespace=flux-system --url=https://github.com/stefanprodan/podinfo --commit=c88a2f41 --interval=1m0s --export",
assert: assertGoldenFile("./testdata/create_source_git/source-git-commit.yaml"),
},
{
name: "source with ref name",
args: "create source git podinfo --namespace=flux-system --url=https://github.com/stefanprodan/podinfo --ref-name=refs/heads/main --interval=1m0s --export",
assert: assertGoldenFile("testdata/create_source_git/source-git-refname.yaml"),
},
{
name: "source with branch name and commit",
args: "create source git podinfo --namespace=flux-system --url=https://github.com/stefanprodan/podinfo --branch=main --commit=c88a2f41 --interval=1m0s --export",
assert: assertGoldenFile("testdata/create_source_git/source-git-branch-commit.yaml"),
},
{
name: "source with semver",
args: "create source git podinfo --namespace=flux-system --url=https://github.com/stefanprodan/podinfo --tag-semver=v1.01 --interval=1m0s --export",
assert: assertGoldenFile("testdata/create_source_git/source-git-semver.yaml"),
},
{
name: "source with git tag",
args: "create source git podinfo --namespace=flux-system --url=https://github.com/stefanprodan/podinfo --tag=test --interval=1m0s --export",
assert: assertGoldenFile("testdata/create_source_git/source-git-tag.yaml"),
},
{
name: "source with git branch",
args: "create source git podinfo --namespace=flux-system --url=https://github.com/stefanprodan/podinfo --branch=test --interval=1m0s --export",
assert: assertGoldenFile("testdata/create_source_git/source-git-branch.yaml"),
},
{
name: "source with generic provider",
args: "create source git podinfo --namespace=flux-system --url=https://github.com/stefanprodan/podinfo --provider generic --branch=test --interval=1m0s --export",
assert: assertGoldenFile("testdata/create_source_git/source-git-provider-generic.yaml"),
},
{
name: "source with azure provider",
args: "create source git podinfo --namespace=flux-system --url=https://dev.azure.com/foo/bar/_git/podinfo --provider azure --branch=test --interval=1m0s --export",
assert: assertGoldenFile("testdata/create_source_git/source-git-provider-azure.yaml"),
},
{
name: "source with github provider",
args: "create source git podinfo --namespace=flux-system --url=https://github.com/stefanprodan/podinfo --provider github --branch=test --interval=1m0s --secret-ref appinfo --export",
assert: assertGoldenFile("testdata/create_source_git/source-git-provider-github.yaml"),
},
{
name: "source with invalid provider",
args: "create source git podinfo --namespace=flux-system --url=https://dev.azure.com/foo/bar/_git/podinfo --provider dummy --branch=test --interval=1m0s --export",
assert: assertError("invalid argument \"dummy\" for \"--provider\" flag: source Git provider 'dummy' is not supported, must be one of: generic|azure|github"),
},
{
name: "source with empty provider",
args: "create source git podinfo --namespace=flux-system --url=https://dev.azure.com/foo/bar/_git/podinfo --provider \"\" --branch=test --interval=1m0s --export",
assert: assertError("invalid argument \"\" for \"--provider\" flag: no source Git provider given, please specify the Git provider name"),
},
{
name: "source with no provider",
args: "create source git podinfo --namespace=flux-system --url=https://dev.azure.com/foo/bar/_git/podinfo --branch=test --interval=1m0s --export --provider",
assert: assertError("flag needs an argument: --provider"),
},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
cmd := cmdTestCase{
args: tc.args,
assert: tc.assert,
}
cmd.runTestCmd(t)
})
}
}
func TestCreateSourceGit(t *testing.T) {
// Default command used for multiple tests
var command = "create source git podinfo --url=https://github.com/stefanprodan/podinfo --branch=master --timeout=" + testTimeout.String()
@@ -103,18 +196,46 @@ func TestCreateSourceGit(t *testing.T) {
command,
assertGoldenFile("testdata/create_source_git/success.golden"),
func(repo *sourcev1.GitRepository) {
meta.SetResourceCondition(repo, meta.ReadyCondition, metav1.ConditionTrue, sourcev1.GitOperationSucceedReason, "succeeded message")
repo.Status.Artifact = &sourcev1.Artifact{
newCondition := metav1.Condition{
Type: meta.ReadyCondition,
Status: metav1.ConditionTrue,
Reason: sourcev1.GitOperationSucceedReason,
Message: "succeeded message",
ObservedGeneration: repo.GetGeneration(),
}
apimeta.SetStatusCondition(&repo.Status.Conditions, newCondition)
repo.Status.Artifact = &meta.Artifact{
Path: "some-path",
Revision: "v1",
LastUpdateTime: metav1.Time{
Time: time.Now(),
},
Digest: "sha256:1234567890abcdef",
}
repo.Status.ObservedGeneration = repo.GetGeneration()
},
}, {
"Failed",
command,
assertError("failed message"),
func(repo *sourcev1.GitRepository) {
meta.SetResourceCondition(repo, meta.ReadyCondition, metav1.ConditionFalse, sourcev1.URLInvalidReason, "failed message")
stalledCondition := metav1.Condition{
Type: meta.StalledCondition,
Status: metav1.ConditionTrue,
Reason: sourcev1.URLInvalidReason,
Message: "failed message",
ObservedGeneration: repo.GetGeneration(),
}
apimeta.SetStatusCondition(&repo.Status.Conditions, stalledCondition)
newCondition := metav1.Condition{
Type: meta.ReadyCondition,
Status: metav1.ConditionFalse,
Reason: sourcev1.URLInvalidReason,
Message: "failed message",
ObservedGeneration: repo.GetGeneration(),
}
apimeta.SetStatusCondition(&repo.Status.Conditions, newCondition)
repo.Status.ObservedGeneration = repo.GetGeneration()
},
}, {
"NoArtifact",
@@ -122,7 +243,15 @@ func TestCreateSourceGit(t *testing.T) {
assertError("GitRepository source reconciliation completed but no artifact was found"),
func(repo *sourcev1.GitRepository) {
// Updated with no artifact
meta.SetResourceCondition(repo, meta.ReadyCondition, metav1.ConditionTrue, sourcev1.GitOperationSucceedReason, "succeeded message")
newCondition := metav1.Condition{
Type: meta.ReadyCondition,
Status: metav1.ConditionTrue,
Reason: sourcev1.GitOperationSucceedReason,
Message: "succeeded message",
ObservedGeneration: repo.GetGeneration(),
}
apimeta.SetStatusCondition(&repo.Status.Conditions, newCondition)
repo.Status.ObservedGeneration = repo.GetGeneration()
},
},
}

View File

@@ -22,21 +22,20 @@ import (
"net/url"
"os"
"github.com/fluxcd/pkg/apis/meta"
"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/errors"
apimeta "k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/yaml"
sourcev1 "github.com/fluxcd/source-controller/api/v1beta1"
"github.com/fluxcd/pkg/apis/meta"
sourcev1 "github.com/fluxcd/source-controller/api/v1"
"github.com/fluxcd/flux2/internal/utils"
"github.com/fluxcd/flux2/pkg/manifestgen/sourcesecret"
"github.com/fluxcd/flux2/v2/internal/utils"
"github.com/fluxcd/flux2/v2/pkg/manifestgen/sourcesecret"
)
var createSourceHelmCmd = &cobra.Command{
@@ -44,23 +43,34 @@ var createSourceHelmCmd = &cobra.Command{
Short: "Create or update a HelmRepository source",
Long: `The create source helm command generates a HelmRepository resource and waits for it to fetch the index.
For private Helm repositories, the basic authentication credentials are stored in a Kubernetes secret.`,
Example: ` # Create a source for a public Helm repository
Example: ` # Create a source for an HTTPS public Helm repository
flux create source helm podinfo \
--url=https://stefanprodan.github.io/podinfo \
--interval=10m
# Create a source for a Helm repository using basic authentication
# Create a source for an HTTPS Helm repository using basic authentication
flux create source helm podinfo \
--url=https://stefanprodan.github.io/podinfo \
--username=username \
--password=password
# Create a source for a Helm repository using TLS authentication
# Create a source for an HTTPS Helm repository using TLS authentication
flux create source helm podinfo \
--url=https://stefanprodan.github.io/podinfo \
--cert-file=./cert.crt \
--key-file=./key.crt \
--ca-file=./ca.crt`,
--ca-file=./ca.crt
# Create a source for an OCI Helm repository
flux create source helm podinfo \
--url=oci://ghcr.io/stefanprodan/charts/podinfo \
--username=username \
--password=password
# Create a source for an OCI Helm repository using an existing secret with basic auth or dockerconfig credentials
flux create source helm podinfo \
--url=oci://ghcr.io/stefanprodan/charts/podinfo \
--secret-ref=docker-config`,
RunE: createSourceHelmCmdRun,
}
@@ -72,6 +82,7 @@ type sourceHelmFlags struct {
keyFile string
caFile string
secretRef string
ociProvider string
passCredentials bool
}
@@ -84,7 +95,8 @@ func init() {
createSourceHelmCmd.Flags().StringVar(&sourceHelmArgs.certFile, "cert-file", "", "TLS authentication cert file path")
createSourceHelmCmd.Flags().StringVar(&sourceHelmArgs.keyFile, "key-file", "", "TLS authentication key file path")
createSourceHelmCmd.Flags().StringVar(&sourceHelmArgs.caFile, "ca-file", "", "TLS authentication CA file path")
createSourceHelmCmd.Flags().StringVarP(&sourceHelmArgs.secretRef, "secret-ref", "", "", "the name of an existing secret containing TLS or basic auth credentials")
createSourceHelmCmd.Flags().StringVarP(&sourceHelmArgs.secretRef, "secret-ref", "", "", "the name of an existing secret containing TLS, basic auth or docker-config credentials")
createSourceHelmCmd.Flags().StringVar(&sourceHelmArgs.ociProvider, "oci-provider", "", "OCI provider for authentication")
createSourceHelmCmd.Flags().BoolVarP(&sourceHelmArgs.passCredentials, "pass-credentials", "", false, "pass credentials to all domains")
createSourceCmd.AddCommand(createSourceHelmCmd)
@@ -102,12 +114,6 @@ func createSourceHelmCmdRun(cmd *cobra.Command, args []string) error {
return err
}
tmpDir, err := os.MkdirTemp("", name)
if err != nil {
return err
}
defer os.RemoveAll(tmpDir)
if _, err := url.Parse(sourceHelmArgs.url); err != nil {
return fmt.Errorf("url parse failed: %w", err)
}
@@ -126,6 +132,15 @@ func createSourceHelmCmdRun(cmd *cobra.Command, args []string) error {
},
}
url, err := url.Parse(sourceHelmArgs.url)
if err != nil {
return fmt.Errorf("failed to parse URL: %w", err)
}
if url.Scheme == sourcev1.HelmRepositoryTypeOCI {
helmRepository.Spec.Type = sourcev1.HelmRepositoryTypeOCI
helmRepository.Spec.Provider = sourceHelmArgs.ociProvider
}
if createSourceArgs.fetchTimeout > 0 {
helmRepository.Spec.Timeout = &metav1.Duration{Duration: createSourceArgs.fetchTimeout}
}
@@ -144,11 +159,30 @@ func createSourceHelmCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
caBundle := []byte{}
if sourceHelmArgs.caFile != "" {
var err error
caBundle, err = os.ReadFile(sourceHelmArgs.caFile)
if err != nil {
return fmt.Errorf("unable to read TLS CA file: %w", err)
}
}
var certFile, keyFile []byte
if sourceHelmArgs.certFile != "" && sourceHelmArgs.keyFile != "" {
if certFile, err = os.ReadFile(sourceHelmArgs.certFile); err != nil {
return fmt.Errorf("failed to read cert file: %w", err)
}
if keyFile, err = os.ReadFile(sourceHelmArgs.keyFile); err != nil {
return fmt.Errorf("failed to read key file: %w", err)
}
}
logger.Generatef("generating HelmRepository source")
if sourceHelmArgs.secretRef == "" {
secretName := fmt.Sprintf("helm-%s", name)
@@ -157,12 +191,12 @@ func createSourceHelmCmdRun(cmd *cobra.Command, args []string) error {
Namespace: *kubeconfigArgs.Namespace,
Username: sourceHelmArgs.username,
Password: sourceHelmArgs.password,
CertFilePath: sourceHelmArgs.certFile,
KeyFilePath: sourceHelmArgs.keyFile,
CAFilePath: sourceHelmArgs.caFile,
CACrt: caBundle,
TLSCrt: certFile,
TLSKey: keyFile,
ManifestFile: sourcesecret.MakeDefaultOptions().ManifestFile,
}
secret, err := sourcesecret.Generate(secretOpts)
secret, err := sourcesecret.GenerateHelm(secretOpts)
if err != nil {
return err
}
@@ -190,12 +224,21 @@ func createSourceHelmCmdRun(cmd *cobra.Command, args []string) error {
}
logger.Waitingf("waiting for HelmRepository source reconciliation")
if err := wait.PollImmediate(rootArgs.pollInterval, rootArgs.timeout,
isHelmRepositoryReady(ctx, kubeClient, namespacedName, helmRepository)); err != nil {
readyConditionFunc := isObjectReadyConditionFunc(kubeClient, namespacedName, helmRepository)
if helmRepository.Spec.Type == sourcev1.HelmRepositoryTypeOCI {
// HelmRepository type OCI is a static object.
readyConditionFunc = isStaticObjectReadyConditionFunc(kubeClient, namespacedName, helmRepository)
}
if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true, readyConditionFunc); err != nil {
return err
}
logger.Successf("HelmRepository source reconciliation completed")
if helmRepository.Spec.Type == sourcev1.HelmRepositoryTypeOCI {
// OCI repos don't expose any artifact so we just return early here
return nil
}
if helmRepository.Status.Artifact == nil {
return fmt.Errorf("HelmRepository source reconciliation completed but no artifact was found")
}
@@ -233,28 +276,3 @@ func upsertHelmRepository(ctx context.Context, kubeClient client.Client,
logger.Successf("source updated")
return namespacedName, nil
}
func isHelmRepositoryReady(ctx context.Context, kubeClient client.Client,
namespacedName types.NamespacedName, helmRepository *sourcev1.HelmRepository) wait.ConditionFunc {
return func() (bool, error) {
err := kubeClient.Get(ctx, namespacedName, helmRepository)
if err != nil {
return false, err
}
// Confirm the state we are observing is for the current generation
if helmRepository.Generation != helmRepository.Status.ObservedGeneration {
return false, nil
}
if c := apimeta.FindStatusCondition(helmRepository.Status.Conditions, meta.ReadyCondition); c != nil {
switch c.Status {
case metav1.ConditionTrue:
return true, nil
case metav1.ConditionFalse:
return false, fmt.Errorf(c.Message)
}
}
return false, nil
}
}

View File

@@ -0,0 +1,81 @@
//go:build unit
// +build unit
/*
Copyright 2022 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"testing"
)
func TestCreateSourceHelm(t *testing.T) {
tests := []struct {
name string
args string
resultFile string
assertFunc string
}{
{
name: "no args",
args: "create source helm",
resultFile: "name is required",
assertFunc: "assertError",
},
{
name: "OCI repo",
args: "create source helm podinfo --url=oci://ghcr.io/stefanprodan/charts/podinfo --interval 5m --export",
resultFile: "./testdata/create_source_helm/oci.golden",
assertFunc: "assertGoldenTemplateFile",
},
{
name: "OCI repo with Secret ref",
args: "create source helm podinfo --url=oci://ghcr.io/stefanprodan/charts/podinfo --interval 5m --secret-ref=creds --export",
resultFile: "./testdata/create_source_helm/oci-with-secret.golden",
assertFunc: "assertGoldenTemplateFile",
},
{
name: "HTTPS repo",
args: "create source helm podinfo --url=https://stefanprodan.github.io/charts/podinfo --interval 5m --export",
resultFile: "./testdata/create_source_helm/https.golden",
assertFunc: "assertGoldenTemplateFile",
},
}
tmpl := map[string]string{
"fluxns": allocateNamespace("flux-system"),
}
setup(t, tmpl)
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
var assert assertFunc
switch tt.assertFunc {
case "assertGoldenTemplateFile":
assert = assertGoldenTemplateFile(tt.resultFile, tmpl)
case "assertError":
assert = assertError(tt.resultFile)
}
cmd := cmdTestCase{
args: tt.args + " -n " + tmpl["fluxns"],
assert: assert,
}
cmd.runTestCmd(t)
})
}
}

View File

@@ -0,0 +1,266 @@
/*
Copyright 2022 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"context"
"fmt"
"strings"
"github.com/spf13/cobra"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/wait"
"sigs.k8s.io/controller-runtime/pkg/client"
"github.com/fluxcd/pkg/apis/meta"
sourcev1 "github.com/fluxcd/source-controller/api/v1"
"github.com/fluxcd/flux2/v2/internal/flags"
"github.com/fluxcd/flux2/v2/internal/utils"
)
var createSourceOCIRepositoryCmd = &cobra.Command{
Use: "oci [name]",
Short: "Create or update an OCIRepository",
Long: withPreviewNote(`The create source oci command generates an OCIRepository resource and waits for it to be ready.`),
Example: ` # Create an OCIRepository for a public container image
flux create source oci podinfo \
--url=oci://ghcr.io/stefanprodan/manifests/podinfo \
--tag=6.6.2 \
--interval=10m
# Create an OCIRepository with OIDC signature verification
flux create source oci podinfo \
--url=oci://ghcr.io/stefanprodan/manifests/podinfo \
--tag=6.6.2 \
--interval=10m \
--verify-provider=cosign \
--verify-subject="^https://github.com/stefanprodan/podinfo/.github/workflows/release.yml@refs/tags/6.6.2$" \
--verify-issuer="^https://token.actions.githubusercontent.com$"
`,
RunE: createSourceOCIRepositoryCmdRun,
}
type sourceOCIRepositoryFlags struct {
url string
tag string
semver string
digest string
secretRef string
proxySecretRef string
serviceAccount string
certSecretRef string
verifyProvider flags.SourceOCIVerifyProvider
verifySecretRef string
verifyOIDCIssuer string
verifySubject string
ignorePaths []string
provider flags.SourceOCIProvider
insecure bool
}
var sourceOCIRepositoryArgs = newSourceOCIFlags()
func newSourceOCIFlags() sourceOCIRepositoryFlags {
return sourceOCIRepositoryFlags{
provider: flags.SourceOCIProvider(sourcev1.GenericOCIProvider),
}
}
func init() {
createSourceOCIRepositoryCmd.Flags().Var(&sourceOCIRepositoryArgs.provider, "provider", sourceOCIRepositoryArgs.provider.Description())
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.url, "url", "", "the OCI repository URL")
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.tag, "tag", "", "the OCI artifact tag")
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.semver, "tag-semver", "", "the OCI artifact tag semver range")
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.digest, "digest", "", "the OCI artifact digest")
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.secretRef, "secret-ref", "", "the name of the Kubernetes image pull secret (type 'kubernetes.io/dockerconfigjson')")
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.proxySecretRef, "proxy-secret-ref", "", "the name of an existing secret containing the proxy address and credentials")
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.serviceAccount, "service-account", "", "the name of the Kubernetes service account that refers to an image pull secret")
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.certSecretRef, "cert-ref", "", "the name of a secret to use for TLS certificates")
createSourceOCIRepositoryCmd.Flags().Var(&sourceOCIRepositoryArgs.verifyProvider, "verify-provider", sourceOCIRepositoryArgs.verifyProvider.Description())
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.verifySecretRef, "verify-secret-ref", "", "the name of a secret to use for signature verification")
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.verifySubject, "verify-subject", "", "regular expression to use for the OIDC subject during signature verification")
createSourceOCIRepositoryCmd.Flags().StringVar(&sourceOCIRepositoryArgs.verifyOIDCIssuer, "verify-issuer", "", "regular expression to use for the OIDC issuer during signature verification")
createSourceOCIRepositoryCmd.Flags().StringSliceVar(&sourceOCIRepositoryArgs.ignorePaths, "ignore-paths", nil, "set paths to ignore resources (can specify multiple paths with commas: path1,path2)")
createSourceOCIRepositoryCmd.Flags().BoolVar(&sourceOCIRepositoryArgs.insecure, "insecure", false, "for when connecting to a non-TLS registries over plain HTTP")
createSourceCmd.AddCommand(createSourceOCIRepositoryCmd)
}
func createSourceOCIRepositoryCmdRun(cmd *cobra.Command, args []string) error {
name := args[0]
if sourceOCIRepositoryArgs.url == "" {
return fmt.Errorf("url is required")
}
if sourceOCIRepositoryArgs.semver == "" && sourceOCIRepositoryArgs.tag == "" && sourceOCIRepositoryArgs.digest == "" {
return fmt.Errorf("--tag, --tag-semver or --digest is required")
}
sourceLabels, err := parseLabels()
if err != nil {
return err
}
var ignorePaths *string
if len(sourceOCIRepositoryArgs.ignorePaths) > 0 {
ignorePathsStr := strings.Join(sourceOCIRepositoryArgs.ignorePaths, "\n")
ignorePaths = &ignorePathsStr
}
repository := &sourcev1.OCIRepository{
ObjectMeta: metav1.ObjectMeta{
Name: name,
Namespace: *kubeconfigArgs.Namespace,
Labels: sourceLabels,
},
Spec: sourcev1.OCIRepositorySpec{
Provider: sourceOCIRepositoryArgs.provider.String(),
URL: sourceOCIRepositoryArgs.url,
Insecure: sourceOCIRepositoryArgs.insecure,
Interval: metav1.Duration{
Duration: createArgs.interval,
},
Reference: &sourcev1.OCIRepositoryRef{},
Ignore: ignorePaths,
},
}
if digest := sourceOCIRepositoryArgs.digest; digest != "" {
repository.Spec.Reference.Digest = digest
}
if semver := sourceOCIRepositoryArgs.semver; semver != "" {
repository.Spec.Reference.SemVer = semver
}
if tag := sourceOCIRepositoryArgs.tag; tag != "" {
repository.Spec.Reference.Tag = tag
}
if createSourceArgs.fetchTimeout > 0 {
repository.Spec.Timeout = &metav1.Duration{Duration: createSourceArgs.fetchTimeout}
}
if saName := sourceOCIRepositoryArgs.serviceAccount; saName != "" {
repository.Spec.ServiceAccountName = saName
}
if secretName := sourceOCIRepositoryArgs.secretRef; secretName != "" {
repository.Spec.SecretRef = &meta.LocalObjectReference{
Name: secretName,
}
}
if secretName := sourceOCIRepositoryArgs.proxySecretRef; secretName != "" {
repository.Spec.ProxySecretRef = &meta.LocalObjectReference{
Name: secretName,
}
}
if secretName := sourceOCIRepositoryArgs.certSecretRef; secretName != "" {
repository.Spec.CertSecretRef = &meta.LocalObjectReference{
Name: secretName,
}
}
if provider := sourceOCIRepositoryArgs.verifyProvider.String(); provider != "" {
repository.Spec.Verify = &sourcev1.OCIRepositoryVerification{
Provider: provider,
}
if secretName := sourceOCIRepositoryArgs.verifySecretRef; secretName != "" {
repository.Spec.Verify.SecretRef = &meta.LocalObjectReference{
Name: secretName,
}
}
verifyIssuer := sourceOCIRepositoryArgs.verifyOIDCIssuer
verifySubject := sourceOCIRepositoryArgs.verifySubject
if verifyIssuer != "" || verifySubject != "" {
repository.Spec.Verify.MatchOIDCIdentity = []sourcev1.OIDCIdentityMatch{{
Issuer: verifyIssuer,
Subject: verifySubject,
}}
}
} else if sourceOCIRepositoryArgs.verifySecretRef != "" {
return fmt.Errorf("a verification provider must be specified when a secret is specified")
} else if sourceOCIRepositoryArgs.verifyOIDCIssuer != "" || sourceOCIRepositoryArgs.verifySubject != "" {
return fmt.Errorf("a verification provider must be specified when OIDC issuer/subject is specified")
}
if createArgs.export {
return printExport(exportOCIRepository(repository))
}
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
logger.Actionf("applying OCIRepository")
namespacedName, err := upsertOCIRepository(ctx, kubeClient, repository)
if err != nil {
return err
}
logger.Waitingf("waiting for OCIRepository reconciliation")
if err := wait.PollUntilContextTimeout(ctx, rootArgs.pollInterval, rootArgs.timeout, true,
isObjectReadyConditionFunc(kubeClient, namespacedName, repository)); err != nil {
return err
}
logger.Successf("OCIRepository reconciliation completed")
if repository.Status.Artifact == nil {
return fmt.Errorf("no artifact was found")
}
logger.Successf("fetched revision: %s", repository.Status.Artifact.Revision)
return nil
}
func upsertOCIRepository(ctx context.Context, kubeClient client.Client,
ociRepository *sourcev1.OCIRepository) (types.NamespacedName, error) {
namespacedName := types.NamespacedName{
Namespace: ociRepository.GetNamespace(),
Name: ociRepository.GetName(),
}
var existing sourcev1.OCIRepository
err := kubeClient.Get(ctx, namespacedName, &existing)
if err != nil {
if errors.IsNotFound(err) {
if err := kubeClient.Create(ctx, ociRepository); err != nil {
return namespacedName, err
} else {
logger.Successf("OCIRepository created")
return namespacedName, nil
}
}
return namespacedName, err
}
existing.Labels = ociRepository.Labels
existing.Spec = ociRepository.Spec
if err := kubeClient.Update(ctx, &existing); err != nil {
return namespacedName, err
}
ociRepository = &existing
logger.Successf("OCIRepository updated")
return namespacedName, nil
}

View File

@@ -0,0 +1,96 @@
/*
Copyright 2022 The Flux authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package main
import (
"testing"
)
func TestCreateSourceOCI(t *testing.T) {
tests := []struct {
name string
args string
assertFunc assertFunc
}{
{
name: "NoArgs",
args: "create source oci",
assertFunc: assertError("name is required"),
},
{
name: "NoURL",
args: "create source oci podinfo",
assertFunc: assertError("url is required"),
},
{
name: "verify secret specified but provider missing",
args: "create source oci podinfo --url=oci://ghcr.io/stefanprodan/manifests/podinfo --tag=6.3.5 --verify-secret-ref=cosign-pub",
assertFunc: assertError("a verification provider must be specified when a secret is specified"),
},
{
name: "verify issuer specified but provider missing",
args: "create source oci podinfo --url=oci://ghcr.io/stefanprodan/manifests/podinfo --tag=6.3.5 --verify-issuer=github.com",
assertFunc: assertError("a verification provider must be specified when OIDC issuer/subject is specified"),
},
{
name: "verify identity specified but provider missing",
args: "create source oci podinfo --url=oci://ghcr.io/stefanprodan/manifests/podinfo --tag=6.3.5 --verify-subject=developer",
assertFunc: assertError("a verification provider must be specified when OIDC issuer/subject is specified"),
},
{
name: "verify issuer specified but subject missing",
args: "create source oci podinfo --url=oci://ghcr.io/stefanprodan/manifests/podinfo --tag=6.3.5 --verify-issuer=github --verify-provider=cosign --export",
assertFunc: assertGoldenFile("./testdata/oci/export_with_issuer.golden"),
},
{
name: "all verify fields set",
args: "create source oci podinfo --url=oci://ghcr.io/stefanprodan/manifests/podinfo --tag=6.3.5 --verify-issuer=github verify-subject=stefanprodan --verify-provider=cosign --export",
assertFunc: assertGoldenFile("./testdata/oci/export_with_issuer.golden"),
},
{
name: "verify subject specified but issuer missing",
args: "create source oci podinfo --url=oci://ghcr.io/stefanprodan/manifests/podinfo --tag=6.3.5 --verify-subject=stefanprodan --verify-provider=cosign --export",
assertFunc: assertGoldenFile("./testdata/oci/export_with_subject.golden"),
},
{
name: "export manifest",
args: "create source oci podinfo --url=oci://ghcr.io/stefanprodan/manifests/podinfo --tag=6.3.5 --interval 10m --export",
assertFunc: assertGoldenFile("./testdata/oci/export.golden"),
},
{
name: "export manifest with secret",
args: "create source oci podinfo --url=oci://ghcr.io/stefanprodan/manifests/podinfo --tag=6.3.5 --interval 10m --secret-ref=creds --export",
assertFunc: assertGoldenFile("./testdata/oci/export_with_secret.golden"),
},
{
name: "export manifest with verify secret",
args: "create source oci podinfo --url=oci://ghcr.io/stefanprodan/manifests/podinfo --tag=6.3.5 --interval 10m --verify-provider=cosign --verify-secret-ref=cosign-pub --export",
assertFunc: assertGoldenFile("./testdata/oci/export_with_verify_secret.golden"),
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
cmd := cmdTestCase{
args: tt.args,
assert: tt.assertFunc,
}
cmd.runTestCmd(t)
})
}
}

View File

@@ -21,7 +21,6 @@ import (
"context"
"fmt"
"github.com/fluxcd/flux2/internal/utils"
"github.com/spf13/cobra"
corev1 "k8s.io/api/core/v1"
rbacv1 "k8s.io/api/rbac/v1"
@@ -32,13 +31,15 @@ import (
"k8s.io/apimachinery/pkg/util/validation"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/yaml"
"github.com/fluxcd/flux2/v2/internal/utils"
)
var createTenantCmd = &cobra.Command{
Use: "tenant",
Short: "Create or update a tenant",
Long: `The create tenant command generates namespaces, service accounts and role bindings to limit the
reconcilers scope to the tenant namespaces.`,
Long: withPreviewNote(`The create tenant command generates namespaces, service accounts and role bindings to limit the
reconcilers scope to the tenant namespaces.`),
Example: ` # Create a tenant with access to a namespace
flux create tenant dev-team \
--with-namespace=frontend \
@@ -57,8 +58,10 @@ const (
)
type tenantFlags struct {
namespaces []string
clusterRole string
namespaces []string
clusterRole string
account string
skipNamespace bool
}
var tenantArgs tenantFlags
@@ -66,6 +69,8 @@ var tenantArgs tenantFlags
func init() {
createTenantCmd.Flags().StringSliceVar(&tenantArgs.namespaces, "with-namespace", nil, "namespace belonging to this tenant")
createTenantCmd.Flags().StringVar(&tenantArgs.clusterRole, "cluster-role", "cluster-admin", "cluster role of the tenant role binding")
createTenantCmd.Flags().StringVar(&tenantArgs.account, "with-service-account", "", "service account belonging to this tenant")
createTenantCmd.Flags().BoolVar(&tenantArgs.skipNamespace, "skip-namespace", false, "skip namespace creation (namespace must exist already)")
createCmd.AddCommand(createTenantCmd)
}
@@ -107,9 +112,17 @@ func createTenantCmdRun(cmd *cobra.Command, args []string) error {
}
namespaces = append(namespaces, namespace)
accountName := tenant
if tenantArgs.account != "" {
accountName = tenantArgs.account
}
if err := validation.IsQualifiedName(accountName); len(err) > 0 {
return fmt.Errorf("invalid service-account name '%s': %v", accountName, err)
}
account := corev1.ServiceAccount{
ObjectMeta: metav1.ObjectMeta{
Name: tenant,
Name: accountName,
Namespace: ns,
Labels: objLabels,
},
@@ -131,7 +144,7 @@ func createTenantCmdRun(cmd *cobra.Command, args []string) error {
},
{
Kind: "ServiceAccount",
Name: tenant,
Name: accountName,
Namespace: ns,
},
},
@@ -146,7 +159,7 @@ func createTenantCmdRun(cmd *cobra.Command, args []string) error {
if createArgs.export {
for i := range tenantArgs.namespaces {
if err := exportTenant(namespaces[i], accounts[i], roleBindings[i]); err != nil {
if err := exportTenant(namespaces[i], accounts[i], roleBindings[i], tenantArgs.skipNamespace); err != nil {
return err
}
}
@@ -156,15 +169,17 @@ func createTenantCmdRun(cmd *cobra.Command, args []string) error {
ctx, cancel := context.WithTimeout(context.Background(), rootArgs.timeout)
defer cancel()
kubeClient, err := utils.KubeClient(kubeconfigArgs)
kubeClient, err := utils.KubeClient(kubeconfigArgs, kubeclientOptions)
if err != nil {
return err
}
for i := range tenantArgs.namespaces {
logger.Actionf("applying namespace %s", namespaces[i].Name)
if err := upsertNamespace(ctx, kubeClient, namespaces[i]); err != nil {
return err
if !tenantArgs.skipNamespace {
logger.Actionf("applying namespace %s", namespaces[i].Name)
if err := upsertNamespace(ctx, kubeClient, namespaces[i]); err != nil {
return err
}
}
logger.Actionf("applying service account %s", accounts[i].Name)
@@ -273,19 +288,24 @@ func upsertRoleBinding(ctx context.Context, kubeClient client.Client, roleBindin
return nil
}
func exportTenant(namespace corev1.Namespace, account corev1.ServiceAccount, roleBinding rbacv1.RoleBinding) error {
namespace.TypeMeta = metav1.TypeMeta{
APIVersion: "v1",
Kind: "Namespace",
}
data, err := yaml.Marshal(namespace)
if err != nil {
return err
}
func exportTenant(namespace corev1.Namespace, account corev1.ServiceAccount, roleBinding rbacv1.RoleBinding, skipNamespace bool) error {
var data []byte
var err error
fmt.Println("---")
data = bytes.Replace(data, []byte("spec: {}\n"), []byte(""), 1)
fmt.Println(resourceToString(data))
if !skipNamespace {
namespace.TypeMeta = metav1.TypeMeta{
APIVersion: "v1",
Kind: "Namespace",
}
data, err = yaml.Marshal(namespace)
if err != nil {
return err
}
data = bytes.Replace(data, []byte("spec: {}\n"), []byte(""), 1)
printlnStdout("---")
printlnStdout(resourceToString(data))
}
account.TypeMeta = metav1.TypeMeta{
APIVersion: "v1",
@@ -295,10 +315,10 @@ func exportTenant(namespace corev1.Namespace, account corev1.ServiceAccount, rol
if err != nil {
return err
}
fmt.Println("---")
data = bytes.Replace(data, []byte("spec: {}\n"), []byte(""), 1)
fmt.Println(resourceToString(data))
printlnStdout("---")
printlnStdout(resourceToString(data))
roleBinding.TypeMeta = metav1.TypeMeta{
APIVersion: "rbac.authorization.k8s.io/v1",
@@ -309,8 +329,8 @@ func exportTenant(namespace corev1.Namespace, account corev1.ServiceAccount, rol
return err
}
fmt.Println("---")
fmt.Println(resourceToString(data))
printlnStdout("---")
printlnStdout(resourceToString(data))
return nil
}

Some files were not shown because too many files have changed in this diff Show More