Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New chart: Chainloop #27100

Merged
merged 37 commits into from
Aug 9, 2024
Merged

New chart: Chainloop #27100

merged 37 commits into from
Aug 9, 2024

Conversation

javirln
Copy link
Contributor

@javirln javirln commented Jun 11, 2024

Description of the change

This PR adds a new chart to the catalog: Chainloop, an open-source software supply chain control plane, the evidence store and a single source of truth for artifacts, metadata plus a declarative attestation crafting process.

This solution is compounded by 4 different components:

  • Chainloop controlplane (mandatory)
  • Chainloop artifact proxy (mandatory)
  • PostgreSQL (optional, enabled by default)
  • Vault (optional)

We included support for the following K8s objects for every component:

  • Ingress & Ingress TLS secrets.
  • HPA & PDB.
  • Persistence via PVCs.
  • TLS certs for mTLS communications.
  • Custom configuration provided via values or existing ConfigMap.
  • Network Policies.
  • ServiceMonitor for GKE monitoring Operator.

A more in depth explanation and guides to the Chainloop chart can be found here.

Additional information

The Helm Chart can be deployed in two different modes, standard and development.

If development is active, a Vault Chart will be installed along with the rest of services for secret management.

Screenshot 2024-06-11 at 17 02 33

While the default deployment mode, standard relies on external dependencies to be available in advance.

Screenshot 2024-06-11 at 17 02 42

Important notice

The current implementation of the Chainloop Chart requires a Dex instance configured as an OIDC provider. We found an external Dex chart not provided by Bitnami and considered using it but we were wondering if you would consider to package it as part of your catalog?. Additionally, we noticed that Bitnami's Argo-CD includes Dex templates within its chart. Could this be an option for us as well?

Additionally we keep working on adding more integration tests to the Chart.

How do we build the images?

The images are built using a GoReleaser action that takes as source of truth a Dockerfile. Here the links:

All those images are then pushed to GHCR: https://github.com/orgs/chainloop-dev/packages?repo_name=chainloop

All of them based on scratch

Checklist

Signed-off-by: Javier Rodriguez <[email protected]>
@github-actions github-actions bot added chainloop triage Triage is needed labels Jun 11, 2024
@github-actions github-actions bot requested a review from carrodher June 11, 2024 14:58
Signed-off-by: Bitnami Containers <[email protected]>
@javsalgar
Copy link
Contributor

Hi!

Thank you so much for the PR! Could you fix the action errors? Specially the license headers, as we cannot accept a contribution unless the copyright headers match the requirements.

Signed-off-by: Javier Rodriguez <[email protected]>
@javirln
Copy link
Contributor Author

javirln commented Jun 11, 2024

Hi!

Thank you so much for the PR! Could you fix the action errors? Specially the license headers, as we cannot accept a contribution unless the copyright headers match the requirements.

Thanks Salme for the quick reply :)

We have just question regarding the license header changes. We have indeed added them but probably with the wrong scope.

diff --git a/bitnami/chainloop/Chart.yaml b/bitnami/chainloop/Chart.yaml
index 291efc4f94..b88420c8f3 100644
--- a/bitnami/chainloop/Chart.yaml
+++ b/bitnami/chainloop/Chart.yaml
@@ -1,4 +1,4 @@
-# Copyright Chainloop, Inc. All Rights Reserved.
+# Copyright Broadcom, Inc. All Rights Reserved.
 # SPDX-License-Identifier: APACHE-2.0

What entitles the change on the header? That you folks take ownership and control on Chart from the moment is merged?

javirln and others added 6 commits June 12, 2024 08:07
Signed-off-by: Javier Rodriguez <[email protected]>
Signed-off-by: Bitnami Containers <[email protected]>
Signed-off-by: Javier Rodriguez <[email protected]>
Signed-off-by: Javier Rodriguez <[email protected]>
Signed-off-by: Javier Rodriguez <[email protected]>
@javsalgar javsalgar added the on-hold Issues or Pull Requests with this label will never be considered stale label Jun 12, 2024
@github-actions github-actions bot removed the triage Triage is needed label Jun 12, 2024
@javirln
Copy link
Contributor Author

javirln commented Jun 12, 2024

Hello Salme,

Regarding the license headers, no worries on the question, we have updated it to be compliant, so I think we are good on that side! :D

Additionally I wanted to highlight something I wrote on the description:

The current implementation of the Chainloop Chart requires a Dex instance configured as an OIDC provider. We found an external Dex chart not provided by Bitnami and considered using it but we were wondering if you would consider to package it as part of your catalog?. Additionally, we noticed that Bitnami's Argo-CD includes Dex templates within its chart. Could this be an option for us as well?

Our take is that for the moment we could embed the Dex manifests in the chart to the make it work if it's ok!

javirln and others added 3 commits June 12, 2024 16:30
Signed-off-by: Javier Rodriguez <[email protected]>
Signed-off-by: Javier Rodriguez <[email protected]>
Signed-off-by: Bitnami Containers <[email protected]>
@carrodher carrodher added the new-product Request new product to be added into the catalog label Jun 14, 2024
bitnami-bot and others added 4 commits June 14, 2024 07:24
Signed-off-by: Bitnami Containers <[email protected]>
Signed-off-by: Miguel <[email protected]>
Signed-off-by: Miguel <[email protected]>
Signed-off-by: Miguel <[email protected]>
@migmartri
Copy link
Contributor

Hi team, I've made some changes which include

  • Use of Bitnami's image structure to make it compatible with Helm dt
  • Global options support, for now registry and pull secrets

@migmartri
Copy link
Contributor

The current implementation of the Chainloop Chart requires a Dex instance configured as an OIDC provider. We found an external Dex chart not provided by Bitnami and considered using it but we were wondering if you would consider to package it as part of your catalog?. Additionally, we noticed that Bitnami's Argo-CD includes Dex templates within its chart. Could this be an option for us as well?

We will replace upstream dex for a variation of the templates found here. @javsalgar let me know if you'd prefer if we follow some other approach. To us, we just need an OIDC provider, it doesn't need to be dex, so happy for recommendations if you have any other in the catalog.

Thanks

@migruiz4
Copy link
Member

Hi @javirln @migmartri,

Thank you very much for your contribution!

I have noticed that most of the files in this PR haven't been created using the template chart as base, and therefore missing many features that are common between all the charts in our catalog.

Some examples:

  • The Deployment manifests are missing several features under .spec.template.spec, including features such as extraEnvVars, extraInitContainers, sidecars, etc.
  • The SQL proxy deployment is mostly hardcoded and does not allow any templating.
  • The NOTES.txt is missing bitnami checks and should be aligned with the style used in other charts.
  • The Service manifests are missing features under .spec.

I would appreciate it if you could adapt those manifests and include the missing values.

Additionally, I have noticed the gce-proxy image is hardcoded and does not allow users to set it in the values.yaml.

I'm currently working on releasing all the required images as part of the Bitnami catalog, including the gce-proxy image. I will let you know once they are available so we can update the chart to use them.

version: 1.4.x
description: Chainloop is an open source software supply chain control plane, a single source of truth for artifacts plus a declarative attestation crafting process.
home: https://bitnami.com
icon: https://bitnami.com/assets/stacks/chainloop-control-plane/img/chainloop-control-plane-stack-220x234.png
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
icon: https://bitnami.com/assets/stacks/chainloop-control-plane/img/chainloop-control-plane-stack-220x234.png
icon: https://bitnami.com/assets/stacks/chainloop/img/chainloop-stack-220x234.png

@javirln javirln marked this pull request as draft August 7, 2024 15:39
javirln and others added 9 commits August 7, 2024 18:04
Signed-off-by: Javier Rodriguez <[email protected]>
Signed-off-by: Javier Rodriguez <[email protected]>
Signed-off-by: Javier Rodriguez <[email protected]>
Signed-off-by: Javier Rodriguez <[email protected]>
Signed-off-by: Javier Rodriguez <[email protected]>
Signed-off-by: Javier Rodriguez <[email protected]>
Signed-off-by: Bitnami Containers <[email protected]>
@javirln javirln marked this pull request as ready for review August 8, 2024 08:55
Copy link
Member

@migruiz4 migruiz4 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you very much for implementing the feedback!
Some additional comments, in this case they are mostly minor details

bitnami/chainloop/values.yaml Outdated Show resolved Hide resolved
bitnami/chainloop/values.yaml Outdated Show resolved Hide resolved
bitnami/chainloop/values.yaml Outdated Show resolved Hide resolved
bitnami/chainloop/templates/controlplane/deployment.yaml Outdated Show resolved Hide resolved
bitnami/chainloop/templates/cas/deployment.yaml Outdated Show resolved Hide resolved
bitnami/chainloop/values.yaml Show resolved Hide resolved
bitnami/chainloop/values.yaml Outdated Show resolved Hide resolved
bitnami/chainloop/Chart.yaml Outdated Show resolved Hide resolved
Signed-off-by: Javier Rodriguez <[email protected]>
@javirln
Copy link
Contributor Author

javirln commented Aug 8, 2024

@migruiz4 everything addressed, thanks again for the review :D

@migmartri
Copy link
Contributor

migmartri commented Aug 8, 2024 via email

Copy link
Member

@migruiz4 migruiz4 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Amazing work @javirln @migmartri, thank you very much!

@migruiz4 migruiz4 merged commit f192ad3 into bitnami:main Aug 9, 2024
11 checks passed
@github-actions github-actions bot added the solved label Aug 9, 2024
@migmartri
Copy link
Contributor

Thanks a lot, @migruiz4, for the thorough review; you helped us a lot to improve our chart 🥇

Re: the image used in the chart and Bitnami listing, could you use this logo instead?

loop black on white gradient

or this one?

loop white on black gradient

Thanks a lot!

@javsalgar
Copy link
Contributor

Hi!

You mean without the bitnami hexagon?

@migmartri
Copy link
Contributor

Hi!

You mean without the bitnami hexagon?

No, the hexagon is fine; it's just that's the one you put; it's a slightly different infinite loop icon.

The icon you used

image

The icon I am proposing to put in the hexagon

image

Thanks

@migmartri migmartri deleted the feat/chainloop branch August 13, 2024 11:03
@javsalgar
Copy link
Contributor

Hi! I used the image and it shows like this. Does it work? Or maybe the logo is too small?

chainloop-stack-220x234

@migmartri
Copy link
Contributor

hi @javsalgar, this looks ok, but it would be great, if possible, to try this version, which removed most of the padding around the logo.

Thanks for checking on this @javsalgar, you guys rock :)

rect295

@javsalgar
Copy link
Contributor

Could you remove the black border? It's doing something strange with the logo

@migmartri
Copy link
Contributor

hi @javsalgar, sorry I didn't understand the request, what black border?

@javsalgar
Copy link
Contributor

javsalgar commented Aug 21, 2024

Never mind, I fixed it myself. This is how it looks now

chainloop-gcp-130x130

It will take a bit to be available

@migmartri
Copy link
Contributor

Never mind, I fixed it myself. This is how it looks now

chainloop-gcp-130x130

It will take a bit to be available

Awesome thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
chainloop new-product Request new product to be added into the catalog solved verify Execute verification workflow for these changes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants