From 892851401e524d8c2cd430365a6c8ec73db48f70 Mon Sep 17 00:00:00 2001 From: Simone Rodigari <32323373+SRodi@users.noreply.github.com> Date: Wed, 22 Jan 2025 09:04:59 +0000 Subject: [PATCH] chore(hubble-chart): add step to release retina Hubble chart (#1223) # Description * rename Helm chart for Hubble control plane * add a step in the Release Retina Charts workflow to Build, Push and Sign Hubble chart * add documentation on how to install Hubble control plane via Helm chart ## Related Issue * #1111 * fix #632 * #1055 * discussion https://github.com/microsoft/retina/discussions/546#discussioncomment-11834840 ## Checklist - [x] I have read the [contributing documentation](https://retina.sh/docs/contributing). - [x] I signed and signed-off the commits (`git commit -S -s ...`). See [this documentation](https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification) on signing commits. - [x] I have correctly attributed the author(s) of the code. - [x] I have tested the changes locally. - [x] I have followed the project's style guidelines. - [x] I have updated the documentation, if necessary. - [x] I have added tests, if applicable. ## Screenshots (if applicable) or Testing Completed Doc part1 ![image](https://github.com/user-attachments/assets/6bb5211f-c405-496c-b83d-a473288d3b29) Doc part2 ![image](https://github.com/user-attachments/assets/89c350c7-e6c1-4340-93b7-03c55337bac6) Tested chart publish on my fork ![image](https://github.com/user-attachments/assets/6742c090-d4e2-40a5-8c39-cb72048e213d) Test chart install from my fork ![image](https://github.com/user-attachments/assets/a386e352-56a0-4218-90ee-698fa21ee9a4) ## Additional Notes Add any additional notes or context about the pull request here. --- Please refer to the [CONTRIBUTING.md](../CONTRIBUTING.md) file for more information on how to contribute to this project. --------- Signed-off-by: Simone Rodigari <32323373+SRodi@users.noreply.github.com> --- .github/workflows/release-charts.yaml | 11 ++++++ .../controller/helm/retina/Chart.yaml | 2 +- docs/02-Installation/01-Setup.md | 39 +++++++++++++++++-- 3 files changed, 47 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release-charts.yaml b/.github/workflows/release-charts.yaml index 17670eb768..e16ede77f4 100644 --- a/.github/workflows/release-charts.yaml +++ b/.github/workflows/release-charts.yaml @@ -46,3 +46,14 @@ jobs: cat helm_push_result.txt cosign sign --yes ghcr.io/${{ github.repository }}/charts/retina@$(tail -n 1 helm_push_result.txt | awk '{ print $2 }') + - name: Build, Push and Sign Hubble chart + id: build_hubble_chart + shell: bash + run: | + set -euo pipefail + export TAG=$(make version) + helm package ./deploy/hubble/manifests/controller/helm/retina --version $TAG + # Get Helm chart's SHA digest from helm push cmd output + helm push retina-hubble-$TAG.tgz oci://ghcr.io/${{ github.repository }}/charts >> helm_push_hubble.txt 2>&1 + cat helm_push_hubble.txt + cosign sign --yes ghcr.io/${{ github.repository }}/charts/retina-hubble@$(tail -n 1 helm_push_hubble.txt | awk '{ print $2 }') diff --git a/deploy/hubble/manifests/controller/helm/retina/Chart.yaml b/deploy/hubble/manifests/controller/helm/retina/Chart.yaml index 994713661c..2196915119 100644 --- a/deploy/hubble/manifests/controller/helm/retina/Chart.yaml +++ b/deploy/hubble/manifests/controller/helm/retina/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -name: retina +name: retina-hubble description: A Helm chart for Retina Network Observability in Kubernetes with dependencies # A chart can be either an 'application' or a 'library' chart. diff --git a/docs/02-Installation/01-Setup.md b/docs/02-Installation/01-Setup.md index 5b436d21ad..6413dcea5a 100644 --- a/docs/02-Installation/01-Setup.md +++ b/docs/02-Installation/01-Setup.md @@ -10,6 +10,16 @@ Note: you can also run captures with just the [CLI](./02-CLI.md). - Helm version >= v3.8.0. +### Control Plane and Modes + +The installation of Retina can be configured using different control planes and modes. + +You can choose between the "legacy" control plane (the original implementation of Retina) and Hubble. + +If the "legacy" control plane is chosen, different modes are available. The available metric dimensions depend on the selected mode. For an explanation of the available modes, see [Legacy Metric Modes](../03-Metrics/modes/modes.md). + +Modes are not applicable to the Hubble control plane. For metrics related to the Hubble control plane, refer to the [Hubble metrics](../03-Metrics/02-hubble_metrics.md) documentation. + ### Basic Mode ```shell @@ -44,8 +54,6 @@ helm upgrade --install retina oci://ghcr.io/microsoft/retina/charts/retina \ ### Advanced Mode with Remote Context (with Capture support) -See [Metric Modes](../03-Metrics/modes/modes.md). - ```shell VERSION=$( curl -sL https://api.github.com/repos/microsoft/retina/releases/latest | jq -r .name) helm upgrade --install retina oci://ghcr.io/microsoft/retina/charts/retina \ @@ -66,8 +74,6 @@ helm upgrade --install retina oci://ghcr.io/microsoft/retina/charts/retina \ ### Advanced Mode with Local Context (with Capture support) -See [Metric Modes](../03-Metrics/modes/modes.md). - ```shell VERSION=$( curl -sL https://api.github.com/repos/microsoft/retina/releases/latest | jq -r .name) helm upgrade --install retina oci://ghcr.io/microsoft/retina/charts/retina \ @@ -86,6 +92,31 @@ helm upgrade --install retina oci://ghcr.io/microsoft/retina/charts/retina \ --set enableAnnotations=true ``` +### Hubble control plane + +```shell +VERSION=$( curl -sL https://api.github.com/repos/microsoft/retina/releases/latest | jq -r .name) +helm upgrade --install retina oci://ghcr.io/microsoft/retina/charts/retina-hubble \ + --namespace kube-system \ + --set os.windows=true \ + --set operator.enabled=true \ + --set operator.repository=ghcr.io/microsoft/retina/retina-operator \ + --set operator.tag=$VERSION \ + --set agent.enabled=true \ + --set agent.repository=ghcr.io/microsoft/retina/retina-agent \ + --set agent.tag=$VERSION \ + --set agent.init.enabled=true \ + --set agent.init.repository=ghcr.io/microsoft/retina/retina-init \ + --set agent.init.tag=$VERSION \ + --set logLevel=info \ + --set hubble.tls.enabled=false \ + --set hubble.relay.tls.server.enabled=false \ + --set hubble.tls.auto.enabled=false \ + --set hubble.tls.auto.method=cronJob \ + --set hubble.tls.auto.certValidityDuration=1 \ + --set hubble.tls.auto.schedule="*/10 * * * *" +``` + ## Next Steps: Configuring Prometheus and Grafana - [Prometheus](./04-prometheus.md)