Commit Graph

157 Commits

Author SHA1 Message Date
Stefan Prodan 525be388ec Add ACL optional field to Source API
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-08-12 10:04:35 +02:00
Hidde Beydals e79b5734ad storage: change Artifact checksum to SHA256
This changes the format of the Artifact checksum from SHA1 to SHA256 to
mitigate chosen-prefix and length extension attacks, and ensures it can
be used to secure content against malicious modifications.

Source consumers (including our own {kustomize,helm}-controllers)
should ensure the SHA256 of a downloaded artifact matches the
advertised checksum before making use of it.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-08-10 10:30:06 +02:00
Hidde Beydals 82583f2247 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>
2021-07-30 12:33:18 +02:00
Hidde Beydals 48ebbcd64e Introduce more explicit Condition types
This commit introduces new Condition types to the v1beta1 API,
facilitating easier observation of (potentially) problematic state for
end-users.

- `ArtifactUnavailableCondition`: indicates there is no artifact
  available for the resource. This Condition should be set by the
  reconciler as soon as it observes the absence of an artifact for a
  source.
- `CheckoutFailedCondition`: indicates a transient or persistent
  checkout failure. This Condition should be set by the reconciler as
  soon as it observes a Git checkout failure, including any
  prerequisites like the unavailability of the referenced Secret used
  for authentication. It should be deleted as soon as a successful
  checkout has been observed again.
- `SourceVerifiedCondition`: indicates the integrity of the source has
  been verified. The Condition should be set to True or False by the
  reconciler based on the result of the integrity check.
  If there is no verification mode and/or secret configured, the
  Condition should be removed.
- `IncludeUnavailableCondition`: indicates one of the referenced
  includes is not available. This Condition should for example be set
  by the reconciler when the include does not exist, or does not have
  an artifact. If the includes become available, it should be deleted.
- `ArtifactOutdatedCondition`: indicates the current artifact of the
  source is outdated. This Condition should for example be set by the
  reconciler when it notices there is a newer revision for an artifact,
  or the previously included artifacts differ from the current available
  ones. The Condition should be removed after writing a new artifact
  to the storage.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-07-30 12:20: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 2c63246ede Change large-repo-* ref.branch to main
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-06-22 13:01: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 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
Stefan Prodan 2819924c78
Add e2e tests for large Git repositories
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-06-02 12:45:38 +03: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
Philip Laine fcf7048992 Add include property to GitRepositories
Signed-off-by: Philip Laine <philip.laine@gmail.com>
Signed-off-by: Philip Laine <philip.laine@xenit.se>
2021-05-11 09:46:50 +02: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
Dylan Arbour 4a834e1d2d Add `ValuesFiles` to HelmChart spec
Signed-off-by: Dylan Arbour <arbourd@users.noreply.github.com>
2021-04-19 09:16:53 -04:00
abhinav454 ae24285596 Add shortNames to api resources
Signed-off-by: abhinav454 <43758739+abhinav454@users.noreply.github.com>
2021-04-15 09:03:56 -04: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 664a568822
Add support for Git submodules with go-git
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-03-30 13:00:13 +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
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 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
Stefan Prodan e1ee5104e3
Add fsGroup to pod security context
Required for AWS IAM Role bindings

Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-02-07 18:34:11 +02: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 16c6a07504 Use Recreate strategy for controller deployment
- Prevents a deadlock in active-passive HA setups with multiple
  replicas and during upgrades that previously occurred. As the
  leader election would be held hostage by the previous replica
  set due to the rolling update strategy.
- Ensures backing persistent (RW) volumes can safely be used, as
  they can not be shared and will not become available to the next
  pod without recreating all.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-02-02 11:40:52 +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 c665907540 Use controller-runtime health probe for liveness
Signed-off-by: Hidde Beydals <hello@hidde.co>
2021-02-01 15:00:17 +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 207ed99d72
Use LocalObjectReference from fluxcd/pkg/meta v0.7
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2021-01-21 14:18:42 +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
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 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
Aurel Canciu a55c502bb4
Fix HelmChart valuesFile chart path restriction
As part of the feature implementation to support helm chart
dependencies, the functionality for allowing values files overwriting
from any location scoped to the same source was altered. This should fix
the problem by allowing users to load files from any arbitrary location
as long as it's in the context of the same source from where the helm
chart itself is loaded.

Signed-off-by: Aurel Canciu <aurelcanciu@gmail.com>
2020-12-17 12:57:41 +02:00
Hidde Beydals b46f32cd3f Release v0.5.5
Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-12-16 15:50:00 +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