Commit Graph

338 Commits

Author SHA1 Message Date
Hidde Beydals 3257d222f1 Release v0.22.2
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-23 19:46:31 +01:00
Hidde Beydals ec6d2f42c2 Release v0.22.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-23 10:47:46 +01:00
Hidde Beydals 1711fcaed1 Release v0.22.0
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-17 18:32:00 +01:00
Hidde Beydals 55b07f97f0 Update various dependencies
- cloud.google.com/go/storage to v1.21.0
- github.com/Azure/azure-sdk-for-go/sdk/azcore to v0.22.0
- github.com/Azure/azure-sdk-for-go/sdk/azidentity to v0.13.2
- github.com/elazarl/goproxy to v0.0.0-20220115173737-adb46da277ac
- github.com/fluxcd/pkg/apis/meta to v0.12.1
- github.com/fluxcd/pkg/gittestserver to v0.5.1
- github.com/fluxcd/pkg/helmtestserver to v0.7.1
- github.com/fluxcd/pkg/runtime to v0.13.2
- github.com/fluxcd/pkg/ssh to v0.3.2
- github.com/libgit2/git2go/v33 to v33.0.9
- github.com/minio/minio-go/v7 to v7.0.23
- github.com/onsi/gomega to v1.18.1
- google.golang.org/api to v0.73.0
- sigs.k8s.io/cli-utils to v0.29.3

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-16 11:15:59 +01:00
Hidde Beydals ec687b5c61 Add note about github.com/ProtonMail/go-crypto
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-15 22:32:12 +01:00
Hidde Beydals 44198da663 Update golang.org/x/crypto to latest
This pins it to the latest version which introduces support for
rsa-ssh2-256/512.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-15 22:17:01 +01:00
Hidde Beydals 458d67d0a2 Remove github.com/docker/cli replace
This was required by an older version of Helm, which has now updated
the dependency itself.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-15 22:11:52 +01:00
Hidde Beydals c5bfe4f227 Update github.com/docker/distribution to v2.8.0
This mitigates GMS-2022-20.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-15 22:10:53 +01:00
Hidde Beydals 91aba67781 Update Helm to patched v3.8.1
(Forked) version still includes patch to manage HTTP transport.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-11 12:53:30 +01:00
Hidde Beydals ec5bc1ac9a Implement Azure Blob BucketProvider
This commit introduces an Azure Blob BucketProvider implementation,
capable of fetching from objects from public and private "container"
buckets.

The supported credential types are:

- ManagedIdentity with a `resourceId` Secret data field.
- ManagedIdentity with a `clientId` Secret data field.
- ClientSecret with `tenantId`, `clientId` and `clientSecret` Secret
  data fields.
- SharedKey with `accountKey` Secret data field, the Account Name is
  extracted from the endpoint URL specified on the object.

If no Secret is provided, the Bucket is assumed to be public.

Co-authored-by: Zhongcheng Lao <Zhongcheng.Lao@microsoft.com>
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-03 13:20:48 +01:00
Stefan Prodan fe773c510d
Update dependencies
- runc v1.1.0 (CVE fix https://github.com/advisories/GHSA-fgv8-vj5c-2ppq)
- containerd v1.6.1 (CVE fix https://github.com/containerd/containerd/security/advisories/GHSA-crp2-qrr5-8pq7)

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-03-03 12:49:01 +02:00
Paulo Gomes 7d61553463
Remove dependency to helm v2
Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2022-03-02 17:58:15 +00:00
Paulo Gomes d9d789fdb1
Reuse transport for helm chart download
Reuses the same transport across different helm chart downloads,
whilst resetting the tlsconfig to avoid cross-contamination.

Crypto material is now only processed in-memory and does not
touch the disk.

Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2022-03-02 13:02:11 +00:00
Hidde Beydals b28669e446
Update to patched version of Helm 3.8.0
This commit updates to a version of Helm 3.8.0, with patches applied to
deal with memory leak and HTTP transport issues. The latter being
described in https://github.com/fluxcd/source-controller/issues/578.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-03-02 13:02:07 +00:00
pa250194 ed6c6ebc3c Introduce BucketProvider interface
This commit introduces a BucketProvider interface for fetch operations
against object storage provider buckets. Allowing for easier
introduction of new provider implementations.

The algorithm for conditionally downloading object files is the same,
whether you are using GCP storage or an S3/Minio-compatible
bucket. The only thing that differs is how the respective clients
handle enumerating through the objects in the bucket; by implementing
just that in each provider, I can have the select-and-fetch code in
once place.

The client implementations do now include safe-guards to ensure the
fetched object is the same as metadata has been collected for. In
addition, minor changes have been made to the object fetch operation
to take into account that:

- Etags can change between composition of index and actual fetch, in
  which case the etag is now updated.
- Objects can disappear between composition of index and actual fetch,
  in which case the item is removed from the index.

Lastly, the requirement for authentication has been removed (and not
referring to a Secret at all is thus allowed), to provide support
for e.g. public buckets.

Co-authored-by: Hidde Beydals <hello@hidde.co>
Co-authored by: Michael Bridgen <michael@weave.works>
Signed-off-by: pa250194 <pa250194@ncr.com>
2022-03-01 10:15:10 +01:00
Paulo Gomes be02e15410
Update github.com/sosedoff/gitkit (indirect) to v0.3.0 (CVE fix)
Fixes https://snyk.io/vuln/SNYK-GOLANG-GITHUBCOMSATORIGOUUID-72488 in the indirect dependency github.com/satori/go.uuid.

Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2022-02-25 13:25:03 +00:00
Sunny 9c7661dcbd helmrepo: Make NewArtifact event human friendly
Inform index size and repo instead of a revision.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2022-02-23 12:37:48 +01:00
Sunny e9ae0c232e Add kstatus client conformance tests
Use kstatus to compute the status of the objects.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2022-02-23 12:37:45 +01:00
Hidde Beydals 07a539e3d6 build: update meta API and pkg/runtime to non RC
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-02-23 12:35:30 +01:00
Hidde Beydals ceb61a318c controllers: remove legacy test suite
As it no longer contains any test cases.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-02-23 12:35:30 +01:00
Sunny 5767291b58 gitrepo: Add more reconciler design improvements
- Remove ArtifactUnavailable condition and use Reconciling condition to
  convey the same.
- Make Reconciling condition affect the ready condition.
- Introduce summarizeAndPatch() to calculate the final status conditions
  and patch them.
- Introduce reconcile() to iterate through the sub-reconcilers and
  execute them.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2022-02-23 12:35:30 +01:00
Hidde Beydals 31d2e6d65c Rewrite `GitRepositoryReconciler` to new standards
This commit rewrites the `GitRepositoryReconciler` to new standards,
while implementing the newly introduced Condition types, and trying
to adhere better to Kubernetes API conventions.

More specifically it introduces:

- Implementation of more explicit Condition types to highlight
  abnormalities.
- Extensive usage of the `conditions` subpackage from `runtime`.
- Better and more conflict-resilient (status)patching of reconciled
  objects using the `patch` subpackage from runtime.
- Proper implementation of kstatus' `Reconciling` and `Stalled`
  conditions.
- First (integration) tests that solely rely on `testenv` and do not
  use Ginkgo.

There are a couple of TODOs marked in-code, these are suggestions for
the future and should be non-blocking.
In addition to the TODOs, more complex and/or edge-case test scenarios
may be added as well.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-02-23 12:35:30 +01:00
Hidde Beydals 349739b7e4 Implement new runtime interfaces, prepare testenv
This commit ensures all API objects implement the interfaces used by
the runtime package to work with conditions, etc., and prepares the
test suite to work with the `pkg/runtime/testenv` wrapper.

Changes are made in a backwards compatible way (that being: the
existing code can still be build and works as expected), but without
proper dependency boundaries. The result of this is that the API
package temporary depends on the runtime package, which is resolved
when all reconcilers have been refactored and the API package does
no longer contain condition modifying functions.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-02-23 12:35:30 +01:00
Paulo Gomes 6e46d7fe55
Upgrade docker/distribution to v2.8.0
Fixes https://github.com/advisories/GHSA-qq97-vm5h-rrhg

Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2022-02-17 20:51:48 +00:00
Paulo Gomes 00ff9fb2fa
Upgrade controller-runtime to v0.11.1
Fix for CVE-2022-21698 by upgrading the trasient dependency github.com/prometheus/client_golang.

Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2022-02-17 20:51:47 +00:00
Paulo Gomes f44302eed0
Bump libgit2 to 1.3.0 and git2go to V33.
Downstream breaking changes introduced since git2go@V31:
- git2go.ErrorCode was deprecated in favour of the native error type.
- FetchOptions no longer expects a pointer, but rather the actual value of git2go.FetchOptions.

Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2022-02-16 10:17:31 +00:00
Stefan Prodan e3e9deb3fd
Release v0.21.2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-02-07 11:50:32 +02:00
Hidde Beydals 01946f22a3 Release v0.21.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2022-01-27 11:16:21 +01:00
Stefan Prodan 2049246adf
Release v0.21.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-01-26 15:38:10 +02:00
Sunny c40e6829ec
Update git2go to v31.7.6
Keeping the git2go version the same as in image-automation-controller.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2022-01-21 16:39:16 +05:30
Robert Clarke 3d276b679b libgit2: Configured libgit2 clone ProxyOptions
This configures ProxyOptions for all libgit2 Checkout functions when
cloning and configures the options based on current environment
settings using the git2go.ProxyTypeAuto option.

Refs: #131
Signed-off-by: Robert Clarke <rob@robertandrewclarke.com>
Co-authored-by: Aurélien GARNIER <aurelien.garnier@atos.net>
2022-01-18 19:35:47 +00:00
Stefan Prodan 9b6726cc19
Release v0.20.1
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-01-07 11:00:29 +02:00
Stefan Prodan 641aac496c
Update containerd to v1.5.9 (fix CVE-2021-43816)
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-01-07 10:03:18 +02:00
Stefan Prodan c1ad3aade5
Release v0.20.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-01-05 16:30:03 +02:00
Stefan Prodan 509a0dd983
Update containerd to v1.5.8 (fix GHSA-5j5w-g665-5m35)
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-01-05 15:47:29 +02:00
Aurel Canciu 22d0880e4d
Update flux pkg components
Signed-off-by: Aurel Canciu <aurelcanciu@gmail.com>
2021-12-20 14:47:44 +01:00
Aurel Canciu 27ef5c10d8
Remove mod replaces
The mod replaces are no longer required since helm v3.7.1.

Signed-off-by: Aurel Canciu <aurelcanciu@gmail.com>
2021-12-20 13:11:21 +01:00
Aurel Canciu e3d04b31bc
Update Go to v1.17
Signed-off-by: Aurel Canciu <aurelcanciu@gmail.com>
2021-12-20 13:11:21 +01:00
Hidde Beydals 981d457d97 Release v0.19.2
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-12-09 15:11:12 +01:00
Paulo Gomes 058788b623
Bump dependencies to patch security advisories
Advisories fixed:
github.com/opencontainers/runc: CVE-2021-43784 GO-2021-0085 GO-2021-0087

Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2021-12-09 10:11:34 +00:00
Hidde Beydals 865523a077 Release v0.19.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-12-03 13:40:09 +01:00
Hidde Beydals 30ae5565cb Release v0.19.0
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-11-23 10:32:02 +01:00
Hidde Beydals 78f4bdc8f6 Update github.com/minio/minio-go to `v7.0.15`
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-11-22 16:27:10 +01:00
Stefan Prodan de09b6ee9b Update controller-runtime to v0.10.2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-11-22 14:36:43 +01:00
Sunny 7c910e37a2 internal/helm: local builder & dep manager test
Add more chart local builder and dependency manager tests.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2021-11-19 17:04:00 +01:00
Hidde Beydals 4ce894a62c Update opencontainers/image-spec to v1.0.2
Another patch for CVE-2021-41190.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-11-19 13:58:30 +01:00
Hidde Beydals f933cb5923 Update docker/cli to v20.10.9
To mitigate warnings for CVE-2021-41092. Because even if there is no
impact whatsoever, we are nice people.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-11-19 13:58:30 +01:00
Hidde Beydals 19eb3d5ce7 Update docker/distribution to v2.7.0-rc.0
This mitigates another warning for CVE-2017-11468, which is mostly
triggered because a part of Helm depends on it that our code paths
never reach.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-11-19 13:58:30 +01:00
Hidde Beydals d10c51547a Update containerd and runc dependencies
To mitigate warnings for CVE-2021-41190 which effects both.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-11-19 13:58:30 +01:00
Stefan Prodan f26ce87c0d
Release v0.18.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-11-12 14:51:44 +02:00
Sunny ede3295bd6 Release v0.17.2
Signed-off-by: Sunny <darkowlzz@protonmail.com>
2021-11-04 17:19:23 +05:30
Sunny 68a3ea2e4d Add tests for libgit2 remote callbacks
- Adds tests for the libgit2 remote callbacks
- Adds tests for CheckoutStrategyForImplementation with context timeout
  and verify timeout is respected by both the git implementations.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2021-11-04 16:17:23 +05:30
Hidde Beydals d98cfaa815 Release v0.17.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-10-30 11:36:28 +02:00
Hidde Beydals 4d7812ea64 Release v0.17.0
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-10-28 15:11:58 +02:00
Sunny f9a34045e1 Update gittestserver
New gittestserver fixes the issue with custom branch in an
initialized repo.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2021-10-27 00:43:31 +05:30
Sunny 8c581ddfbc Add git.CheckoutStrategy auth tests
Adds tests for git.CheckoutStrategy to check if both the git
implementations work with all the authentication methods.

Signed-off-by: Sunny <darkowlzz@protonmail.com>
2021-10-27 00:43:31 +05:30
Hidde Beydals 5a1fcc213b git: standardise commit and (PGP) verification
This commit refactors the previous `Commit` interface into a
standardised `Commit` struct. This object contains sufficient
information for referencing, observating and (PGP) verification.

- `libgit2` commit checkout does now return `HEAD/<SHA1>` as
  the branch is not taken into account.
- `git2go` objects are now properly `Free`d everywhere
- `Verify` logic is tested.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-10-27 00:43:31 +05:30
Hidde Beydals bef17ae851 Release v0.16.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-10-22 14:24:22 +02:00
pa250194 5077c1f9f6 Added more tests and cleaned up GCP provider logic
Signed-off-by: pa250194 <pa250194@ncr.com>
2021-10-14 14:26:33 -05:00
pa250194 be1ed50ac4 Service Account Key Authentication to GCP Provider
Signed-off-by: pa250194 <pa250194@ncr.com>
2021-10-14 14:16:53 -05:00
Hidde Beydals 96ab646cd4 Release v0.16.0
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-10-14 13:49:52 -05:00
Stefan Prodan 6fe6f07d5e Update containerd and runc to fix CVEs
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-10-14 13:49:52 -05:00
Hidde Beydals 869c7960e3 Update github.com/libgit2/git2go to v31.6.1
This commit updates `github.com/libgit2/git2go` to `v31.6.1` (with
`libgit2` `1.1.1`), and changes the container image build process so
that it makes use of `ghcr.io/hiddeco/golang-with-libgit2`.

This image provides a pre-build dynamic `libgit2` dependency linked
against OpenSSL and LibSSH2 (without gcrypt), and a set of cross-compile
build tools (see
[rationale](https://github.com/hiddeco/golang-with-libgit2#rationale) and
[usage](https://github.co/hiddeco/golang-with-libgit2#usage) for more
detailed information).

The linked set of dependency should solve most known issues around
unsupport private key types, but does not resolve the issues with ECDSA*
and ED25519 hostkeys yet. Solving this requires a newer version of
`libgit2` (`>=1.2.0`), which currently does not seem to work properly
with `git2go/v32`.

Some small changes have been made to the `libgit2` package to address
(future) deprecations.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-10-14 13:48:15 -05:00
pa250194 6ff5970fe1 Added more tests and cleaned up GCP provider logic
Signed-off-by: pa250194 <pa250194@ncr.com>
2021-09-16 09:49:56 -05:00
pa250194 0444c6e16d Service Account Key Authentication to GCP Provider
Signed-off-by: pa250194 <pa250194@ncr.com>
2021-09-16 09:49:56 -05:00
pa250194 7da9619b58 Feature: Add Support for Google Cloud Storage along with Workload Identity
Added Support for Google Cloud Storage with Workload Identity as Source Provider. This enables the use of GCP without enabling S3 compatible access.

Signed-off-by: pa250194 <pa250194@ncr.com>
2021-09-16 09:49:56 -05:00
Hidde Beydals fd1b3ce0bb Release v0.15.4
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-08-05 13:45:07 +02:00
Hidde Beydals d0560e5dbe Use same SemVer logic in both Git implementations
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-08-05 12:40:54 +02:00
Stefan Prodan 7001b34f10
Update dependencies
- k8s.io/* v0.21.3
- controller-runtime v0.9.5
- kubectl 1.21.3

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-08-05 12:43:08 +03:00
Hidde Beydals 5e8e0ab65c Update Helm to v3.6.3
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-07-14 23:24:26 +02:00
Stefan Prodan be9f05baf1
Release v0.15.3
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-06-29 12:27:52 +03:00
Hidde Beydals bec2d83c2b Release v0.15.2
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-06-22 14:05:36 +02:00
Hidde Beydals 7013af77c5 Release v0.15.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-06-18 12:54:34 +02:00
Hidde Beydals 1f27410b34 Update Helm to v3.6.1
v3.6.1 is a a security update from Helm, ensuring that credentials are
always only passed to the defined repository host.

Based on Helm user reports, disabling this behavior may be required for
some Helm repository solutions like Artifactory, and may be done by
setting `PassCredentials` in the `HelmRepositorySpec`.

For more information, see:
https://github.com/helm/helm/security/advisories/GHSA-56hp-xqp3-w2jf

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-06-18 12:31:23 +02:00
Stefan Prodan 50c15b81b3
Release v0.15.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-06-17 18:51:09 +03:00
Hidde Beydals 2d8a540f0c Unpin docker Go Module dependency
No longer required as we do now depend on Helm v3.6.0, which no longer
pins the version.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-06-10 16:48:00 +02:00
Hidde Beydals 3c1a27a7c3 Release v0.14.0
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-06-08 14:19:05 +02:00
Hidde Beydals a76b10cebb Update K8s, controller-runtime and fluxcd/pkg deps
Controller-runtime has been updated to `v0.9.0`, K8s dependencies to
`v0.21.1`, and all `fluxcd/pkg` and other dependencies to the versions
that have matching dependencies and/or build constraints.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-06-08 13:41:34 +02:00
Hidde Beydals bbbb3174cd Release v0.13.2
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-06-02 12:03:26 +02:00
Hidde Beydals e1682da795 Update go-git to v5.4.2
This should resolve `object not found` and
`empty git-upload-pack given` errors that were thrown for Git
repositories that used to work fine before the `v0.13.0` release.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-06-02 11:20:23 +02:00
Stefan Prodan b3aa9548ec
Release v0.13.1
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-05-28 11:17:27 +03:00
Stefan Prodan 145a82a429
Release v0.13.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-05-26 14:45:14 +03:00
Stefan Prodan 4f5b958806
Update libgit2/git2go to v31.4.14
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-05-26 14:08:01 +03:00
Stefan Prodan 79b180376d
Update go-git to v5.4.1
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-05-26 14:06:41 +03:00
Hidde Beydals ba5bd31572 Release v0.12.2
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-05-10 16:14:52 +02:00
Hidde Beydals fe995a74bf Release v0.12.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-04-23 11:35:34 +02:00
Stefan Prodan bd0f1fdd19
Release v0.12.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-04-21 17:57:50 +03:00
Stefan Prodan cb491c9f10
Update fluxcd/pkg/runtime to v0.11.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-04-21 15:04:16 +03:00
Stefan Prodan 51a62a6043
Update fluxcd/pkg/runtime to v0.10.2
Followup: https://github.com/fluxcd/pkg/pull/96

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-04-19 15:05:40 +03:00
Stefan Prodan d7c90a533d
Update Helm to v3.5.4
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-04-15 11:57:01 +03:00
Hidde Beydals d3bcc6a66b Update Go to 1.16
This commit updates Go to 1.16, a required change because of the use of
`os.WriteFile` in one of the tests introduced by commit
b5004a93bc.

Normally _just_ this would not justify the change, but given the
introduction of breaking changes (and thereby forcing a MINOR update
anyway), and the various file{system, path} improvements introduced in
Go 1.16 like
[`filepath#WalkDir`](https://golang.org/pkg/path/filepath/#WalkDir),
going ahead with this should be fine.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-04-13 16:35:41 +02:00
Hidde Beydals b5004a93bc Make Storage#Archive file filtering configurable
This commit makes the filtering applied during the archiving
configurable by introducing an optional `ArchiveFileFilter`
callback argument and a `SourceIgnoreFilter` implementation.

`SourceIgnoreFilter` filters out files matching
sourceignore.VCSPatterns and any of the provided patterns.
If an empty gitignore.Pattern slice is given, the matcher is set to
sourceignore.NewDefaultMatcher.

The `GitRepository` now loads the ignore patterns before archiving
the repository contents by calling `sourceignore.LoadIgnorePatterns`
and other helpers. The loading behavior is **breaking** as
`.sourceignore` files in the (subdirectories of the) repository are
now still taken into account if `spec.ignore` for a resource is
defined, overwriting is still possible by creating an overwriting
rule in the `spec.ignore` of the resource.

This change also makes it possible for the `BucketReconciler` to not
configure a callback at all and prevent looking for ignore
matches twice. To finalize the bucket refactor, a change to the
reconciler has been made to look for a `.sourceignore` file in
the root of the bucket to provide an additional way of configuring
(global) exclusions.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-04-13 15:34:20 +02:00
Stefan Prodan 89c37039fb
Release v0.11.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-03-31 17:42:40 +03:00
Stefan Prodan f0016cfad1
Enable self-signed certs for go-git
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-03-29 13:23:32 +03:00
Hidde Beydals 2c084ba825 Release v0.10.0
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-03-26 13:41:18 +01:00
Stefan Prodan a034c5d955
Set leader election deadline to 30s
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-03-25 13:43:22 +02:00
Somtochi Onyekwere 2624ba93a3 Record suspension metric
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>
2021-03-17 14:04:21 +01:00
Hidde Beydals 1a4b2662e6 Release v0.9.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-03-15 12:29:48 +01:00
Stefan Prodan 2f04bd3043
Update dependencies
- helm.sh/helm/v3 v3.5.3
- github.com/minio/minio-go/v7 v7.0.10
- sigs.k8s.io/controller-runtime v0.8.3

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-03-12 12:39:23 +02:00
Michael Bridgen f7e08c4738 Tidy git clone errors
In some circumstances (that are rather hard to reproduce), cloning
from a GitLab repo gets a multiline response as described in
https://github.com/fluxcd/image-automation-controller/pull/115.

This uses the same remedy as in that PR, by calling the funcs provided
by fluxcd/pkg/gitutil on any error returned by libgit2 or gogit clone
operations.

Signed-off-by: Michael Bridgen <mikeb@squaremobius.net>
2021-03-03 13:41:53 +00:00
Stefan Prodan f818317d39
Release v0.9.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-02-23 15:08:16 +02:00
Stefan Prodan 22f5a6f6fb
Update dependencies
- helm.sh/helm/v3 v3.5.2 (forces us into pinning docker)
- sigs.k8s.io/controller-tools/cmd/controller-gen v0.4.1
- sigs.k8s.io/controller-runtime v0.8.2
- fluxcd/pkg/apis/meta v0.8.0
- fluxcd/pkg/runtime v0.8.3

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-02-23 13:18:21 +02:00
Hidde Beydals f2dfa2d0cb Release v0.8.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-02-18 10:26:55 +01:00
Hidde Beydals cae8241e17 Release v0.8.0
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-02-12 12:07:28 +01:00
Philip Laine c063484761 Add custom certificate validation
Signed-off-by: Philip Laine <philip.laine@gmail.com>
2021-02-08 12:19:22 +01:00
Hidde Beydals 2764c00a7e Enable pprof endpoints on metrics server
Using the helper from `pkg/runtime/pprof`, which follows the suggestion
from controller-runtime to use `AddMetricsExtraHandler`.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-02-07 11:43:27 +01:00
Hidde Beydals 7ae5857e13 Release v0.7.4
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-02-03 12:53:00 +01:00
Hidde Beydals cfab200bf6 Release v0.7.3
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-02-02 12:16:53 +01:00
Hidde Beydals 77d28a0ed0 Release v0.7.2
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-02-01 15:55:39 +01:00
Hidde Beydals 144754112b Release v0.7.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-01-25 23:02:05 +01:00
Hidde Beydals 2effa7c0b6 Release v0.7.0
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-01-21 17:43:57 +01:00
Stefan Prodan 8e3700ebd8
Add QPS/Burst flags using fluxcd/pkg/runtime v0.8
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-01-21 14:13:07 +02:00
Hidde Beydals a050f6457c Release v0.6.3
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-01-19 11:21:38 +01:00
Stefan Prodan 057c134bfa
Release v0.6.2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-01-16 15:12:56 +02:00
Stefan Prodan ab16dd7c2e
Update Kubernetes and Helm packages
- k8s.io/api v0.20.2
- controller-runtime v0.8.0
- helm v3.5.0

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-01-16 14:38:28 +02:00
Hidde Beydals b979574454 Release v0.6.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-01-14 12:05:14 +01:00
Hidde Beydals 566ce8aa15 Upgrade runtime package to v0.6.2
To include a bug fix to the `ReconcilateAtChangedPredicate`
and renaming to `ReconcileRequestedPredicate`.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-01-14 11:39:47 +01:00
Hidde Beydals fa257b13f3 Release v0.6.0
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-01-12 12:41:45 +01:00
Hidde Beydals fda481efe9 Upgrade controller-runtime to v0.7.0
This commit upgrades the `controller-runtime` dependency to `v0.7.0`,
including all changes required to make all wiring work again.

- Upgrade `runtime` to v0.6.0 to include `controller-runtime` changes.
- Loggers have been removed from the reconcilers and are now retrieved
  from the `context.Context` passed to the `Reconcile` method and
  downwards functions.
- Logger configuration flags are now bound to the flag set using
  `BindFlags` from `runtime/logger`, ensuring the same contract across
  GitOps Toolkit controllers, and the `--log-json` flag has been
  deprecated in favour of the `--log-encoding=json` default.
- The `ChangePredicate` from `runtime` has changed to a
  `ReconcilateAtChangedPredicate`, and is now chained with the
  `GenerationChangedPredicate` from `controller-runtime` using
  `predicate.Or`.
- Signatures that made use of `runtime.Object` have changed to
  `client.Object`, removing the requirement to e.g. call
  `runtime.Object#Object`.
- The `client.MatchingField` function was deprecated, and has been
  replaced with `client.MatchingFields{}`.
- The `leader-election-role` was changed, as leader election now works
  via the `coordination/v1` API.

Other notable changes:

- `util.ObjectKey` was added to easily construct a `client.ObjectKey` /
  `types.NamespacedName` from a `metav1.Object`.
- The `SourceIndexKey` constant has been split out into
  `{GitRepository,HelmRepository,Bucket}IndexKey` constants.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-12-18 19:17:10 +01:00
Hidde Beydals 5286cb0f90 Release v0.5.6
Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-12-18 11:32:12 +01:00
Hidde Beydals b46f32cd3f Release v0.5.5
Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-12-16 15:50:00 +01:00
Hidde Beydals bc890874e1 Add safe guards for relative paths
Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-12-15 09:56:40 +01:00
Stefan Prodan fd08e9f678
Release v0.5.4
Fix for ARMv7

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-12-12 14:34:12 +02:00
Hidde Beydals 21a007e7eb Release v0.5.3
Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-12-11 16:29:43 +01:00
Hidde Beydals 6520490c62 Release v0.5.2
Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-12-11 14:33:22 +01:00
Hidde Beydals e8888e2896 Release v0.5.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-12-10 00:22:32 +01:00
Hidde Beydals 3fdd95713c Release v0.5.0
Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-12-09 19:15:20 +01:00
Hidde Beydals 830b350339 Upgrade dependencies
* `github.com/fluxcd/pkg/apis/meta` to `v0.5.0`
* `github.com/fluxcd/pkg/helmtestserver` to `v0.1.0`
* `github.com/fluxcd/pkg/runtime` to `v0.4.0`
* `helm.sh/helm/v3` to `v3.4.2`
* `k8s.io/{api,apimachinery,client-go}` to `v0.19.4`
* `sigs.k8s.io/controller-runtime` to `v0.6.4`

Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-12-09 18:22:27 +01:00
Philip Laine cb12736a84 Update pkg git server
Signed-off-by: Philip Laine <philip.laine@xenit.se>
2020-12-03 12:56:38 +01:00
Philip Laine 47e4e54550 Add test to show that libgit2 fails with self signed test
Signed-off-by: Philip Laine <philip.laine@gmail.com>
2020-12-02 23:28:32 +01:00
Philip Laine 2cb3754953 Add support for gitv2 servers
Signed-off-by: Philip Laine <philip.laine@xenit.se>
2020-12-02 20:18:29 +01:00
Hidde Beydals 0e44d13870 Release v0.4.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-11-26 18:30:04 +01:00
Hidde Beydals e19bb4e62d Release v0.4.0
Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-11-26 14:41:56 +01:00
Stefan Prodan 81d8830aa4
Release v0.3.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-11-19 19:07:56 +02:00
Aurel Canciu b80f450b68
Switch to new pkg/apis/meta SetResourceCondition
Use SetResourceCondition as a generic method to set conditions for CRs,
implmeneting the ObjectWithStatusConditions interface used as input
type.

Signed-off-by: Aurel Canciu <aurelcanciu@gmail.com>
2020-11-19 13:08:33 +02:00
Aurel Canciu 00bb853d0e
Refactor to adopt k8s standardized Condition type
Updates to use metav1.Condition type and removes references for
deprecated corev1.Condition* constants and uses the new k8s api/meta
helpers in place of the old pkg/apis/meta types.

Signed-off-by: Aurel Canciu <aurelcanciu@gmail.com>
2020-11-19 13:08:33 +02:00
Stefan Prodan 33a693060b
Release v0.2.2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-11-12 17:27:43 +02:00
Aurel Canciu 60d1dc8219
Update pkg components and k8s to 1.19
Signed-off-by: Aurel Canciu <aurelcanciu@gmail.com>
2020-11-01 18:11:27 +02:00
Aurel Canciu adb9f86fee
Helm dependency update to v3.4.0
Signed-off-by: Aurel Canciu <aurelcanciu@gmail.com>
2020-10-30 21:41:30 +02:00
Hidde Beydals 08c4254464 Release v0.2.1
Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-10-30 19:59:21 +01:00
Hidde Beydals a3f7b1d5b2 Release v0.2.0
Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-10-29 12:35:51 +01:00
Aurel Canciu f1362bd3a9
Implement DepdendencyManager for non-packaged
Non-packaged charts that don't have their dependencies present in
charts/ will now have these dependencies built using the
DependencyManager. The idea behind it is to replicate the logic
implemeneted in Helm's downloader.Manager with the support for already
existing HelmRepository resources and their chart retrieval capabilities.

Signed-off-by: Aurel Canciu <aurelcanciu@gmail.com>
2020-10-28 15:46:18 +02:00
Stefan Prodan 08c86bb2d0
Update fluxcd/pkg/runtime to v0.1.2
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-10-28 13:59:19 +02:00
Hidde Beydals c9eb8f03c0 Switch to Masterminds/semver and pkg/version libs
Co-authored-by: Illia Ovchynnikov <illia.ovchynnikov@gmail.com>
Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-10-28 12:21:08 +01:00
Stefan Prodan 987e562922
Release v0.1.1
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-10-13 17:52:59 +03:00
Stefan Prodan c8c2eec3a6
Update fluxcd/pkg/runtime to v0.1.0
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2020-10-13 13:34:47 +03:00
Hidde Beydals c176dcf3a9 Release v0.1.0 2020-09-30 17:37:23 +02:00
stefanprodan f16e5f041a Promote API to v1beta1 2020-09-30 16:11:00 +03:00
Hidde Beydals 431ea05427 Implement `fluxcd/pkg/meta/api` in APIs 2020-09-30 10:18:43 +02:00
stefanprodan 501b4ac6ab Release v0.0.18 2020-09-23 13:05:18 +03:00
stefanprodan 8d95c18342 Update Helm to v3.3.4 2020-09-23 12:59:14 +03:00
stefanprodan fd27e378b2 Update Helm to v3.3.3 2020-09-21 10:53:16 +03:00
stefanprodan 924e0124b4 Release v0.0.17 2020-09-18 16:44:59 +03:00
stefanprodan c2c61b10a1 Implement S3 Bucket controller 2020-09-18 16:11:24 +03:00
stefanprodan bdabea02ab Release v0.0.16 2020-09-12 10:36:17 +03:00
Hidde Beydals 3e04d16292 Release v0.0.15 2020-09-11 13:52:32 +02:00
Hidde Beydals 42706a342b Calculate checksums during file writes 2020-09-10 13:00:08 +02:00
Michael Bridgen 901463eaaa Use pkg/runtime for predicate and logger 2020-09-09 17:57:16 +01:00
stefanprodan 5126da855e Release v0.0.14 2020-09-04 15:41:12 +03:00
Hidde Beydals 8f08ce20a4 Upgrade Helm dependency
* helm.sh/helm/v3 to v3.3.1
2020-09-01 20:32:10 +02:00
Hidde Beydals 91fa9acdc3 Release v0.0.13 2020-09-01 16:53:29 +02:00
Hidde Beydals c229af95b0 Release v0.0.12 2020-08-31 17:16:32 +02:00
Hidde Beydals 24f47ac183 Support Helm charts from GitRepository sources 2020-08-31 16:21:53 +02:00
Hidde Beydals f35dcc3656 Upgrade blang/semver from v3.5.0 to v4.0.0
v4.0.0 is fully compatible with Go Modules.
2020-08-31 10:03:47 +02:00
stefanprodan 227c9c88f9 Use logger package from fluxcd/pkg
Update client-go to v0.18.8 and controller-runtime to v0.6.2
2020-08-21 12:10:01 +03:00
Hidde Beydals 8ee73572cf Upgrade fluxcd/pkg/gittestserver to v0.0.2
Which allows for the drop of the replace.
2020-08-19 10:40:16 +02:00
stefanprodan f47eb995fe Release v0.0.10 2020-08-18 14:40:12 +03:00
Hidde Beydals 3475d741a3 Switch to dedicated git and helm testserver pkgs 2020-08-18 12:11:29 +02:00
Hidde Beydals 9d947b8efa Use testserver package from fluxcd/pkg 2020-08-18 12:11:29 +02:00
Hidde Beydals b75d613f3a Make api package dedicated module
As other controllers depend on source-controller because of the API
package, but this pulls in obsolete dependencies for the controllers.
By publishing the API package as a dedicated module while
using a (local) replace for the project itself, this should be
prevented.
2020-08-17 17:20:11 +02:00
Hidde Beydals f7b55f3382 Make use of dedicated fluxcd/pkg modules 2020-08-17 15:01:27 +02:00
stefanprodan 8970f3f84d Update Helm package to v3.3.0 2020-08-12 11:28:30 +03:00
stefanprodan 7e2fe14efa Upgrade CRDs to apiextensions.k8s.io/v1 2020-07-20 12:21:34 +03:00
Hidde Beydals d98882462e Setup production logging
For production the log format is JSON, the timestamps format is ISO8601
and stack traces are logged when the level is set to debug.
2020-07-13 11:02:46 +02:00
stefanprodan 4cee48c385 Release v0.0.3 2020-07-09 15:30:01 +03:00
stefanprodan 504da62c88 Update controller-runtime to v0.6.0 2020-07-03 07:46:28 +03:00
stefanprodan e92cbbdd45 Migrate to fluxcd/pkg 2020-06-30 17:30:21 +03:00
Hidde Beydals 77822bd4d1 controllers: simple GitRepository test 2020-05-29 14:24:31 +02:00
Hidde Beydals 5582d99187 testserver: add Git server 2020-05-29 14:24:31 +02:00
Hidde Beydals d0487302f6 git/ssh: use in-memory known hosts database 2020-05-03 10:03:42 +02:00
Hidde Beydals a50ea436fa controllers: basic HelmRepository reconciler tests 2020-04-17 10:35:52 +02:00
Hidde Beydals d378bd1852 Introduce HelmChart API and controller
- Add the HelmChart types and controller
- Semver expressions are found by utilizing Helm repository index
  helpers. As Helm makes use of `masterminds/semver`, the support
  for i.e. ranges less mature than the `GitRepository` implementation.
- Recorded semver is as defined in the metadata of the chart. The
  used name for the artifact does however include the checksum of the
  chart archive, as chart maintainers may not always properly apply
  semver.
- Switches to `sigs.k8s.io/yaml` for YAML operations as this among
  other things is able to properly unmarshal embedded structures.
- Directly requeues on transient errors instead of using the defined
  interval as a back-off strategy is applied on repeated failures.
2020-04-12 18:44:37 +02:00
Hidde Beydals 81873e7553 Download Helm repository indexes w/ Helm's getter 2020-04-09 15:53:38 +02:00
Hidde Beydals 4d30a82ef4 Rename project to source-controller 2020-04-08 16:12:17 +03:00
stefanprodan 62350a944b Implement git tag semver filter 2020-04-07 13:22:55 +03:00
stefanprodan de55b987e8 Implement Git sync with go-git 2020-04-06 10:43:06 +03:00
stefanprodan 6b31c57ba7 Add repository status conditions 2020-04-05 15:18:43 +03:00
stefanprodan 92b7b1fe43 Scaffold repository controllers 2020-04-05 12:34:29 +03:00