Commit Graph

22 Commits

Author SHA1 Message Date
Stefan Prodan 21af88fbea
Document the Cosign verification procedure
Signed-off-by: Stefan Prodan <stefan.prodan@gmail.com>
2022-09-20 14:07:11 +03:00
Furkan 697f260dba
Introduce Initial OCIRepository Source Verification
Fixes #863

Signed-off-by: Furkan <furkan.turkal@trendyol.com>
Co-authored-by: Batuhan <batuhan.apaydin@trendyol.com>
Signed-off-by: Batuhan Apaydın <batuhan.apaydin@trendyol.com>
2022-09-20 14:07:10 +03:00
Maksym Voitko 44836641a8 Fix the missing protocol for the first port in manager config
Signed-off-by: Maksym Voitko <max.voitko@gmail.com>
2022-01-25 00:43:35 +02:00
Paulo Gomes 9ba76a1f94
Enforce runAsNonRoot
BREAKING CHANGE: the controller container is now executed under 65534:65534 (userid:groupid). This change may break deployments that hard-coded the user name 'controller' in their PodSecurityPolicy.

Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2022-01-19 14:57:26 +00:00
Paulo Gomes 7b04b44706
security: Drop capabilities and enable seccomp
Further restricts the SecurityContext that the controller runs under, by enabling the default seccomp profile and dropping all linux capabilities.
This was set at container-level to ensure backwards compatibility with
use cases in which sidecars are injected into the source-controller pod
without setting less restrictive settings.

BREAKING CHANGE: The use of new seccomp API requires Kubernetes 1.19.

Co-authored-by: Sanskar Jaiswal <sanskar.jaiswal@weave.works>
Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
2022-01-19 14:57:25 +00: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 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 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 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 fa71f3269b Allow overwrite of advertised storage addr
The added `--storage-adv-addr` flag allows overwriting the HTTP address
advertised in the status objects of the sources. This allows for finer
grain configuration in setups where a modified service is used, or where
the DNS resolution differs from the Kubernetes defaults.

When the flag is omitted, an attempt is made to determine the address
based on the configured `--storage-addr` and the `HOSTNAME`.

Signed-off-by: Hidde Beydals <hello@hidde.co>
2020-12-11 14:07:27 +01:00
stefanprodan 800efe6664 Add watch all namespaces flag 2020-09-11 15:57:36 +03:00
stefanprodan 86c8b0c9bd Configure manager logging and set level to info 2020-09-09 15:22:03 +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 c9681ae949 Change ports: 8080 for metrics and 9090 for storage 2020-07-03 08:48:07 +03:00
stefanprodan 7ef9218de9 deploy: reusable config 2020-04-24 12:17:33 +03:00
Stefan Prodan f469418dcd
Merge pull request #38 from fluxcd/nonroot
build: run controller as a non-root user
2020-04-24 12:10:50 +03:00
stefanprodan a6a41eeec5 deploy: add liveness and readiness probes 2020-04-24 11:56:51 +03:00
stefanprodan d0cdb6b029 deploy: add container security context
- deny privilege escalation
- set readonly root fs
- add tmp emptyDir volume
2020-04-24 11:45:23 +03:00
stefanprodan eeab85c0cb controllers: add JSON logging cmd flag 2020-04-24 10:05:32 +03:00
Hidde Beydals 4d30a82ef4 Rename project to source-controller 2020-04-08 16:12:17 +03:00
stefanprodan 86c2c9f745 Implement CI with GitHub Actions 2020-04-08 14:17:06 +03:00
stefanprodan 98901f2909 Expose git artifacts inside the cluster 2020-04-07 10:49:57 +03:00