From d79378e0c5dd33e0885775f62114455a8453fc86 Mon Sep 17 00:00:00 2001 From: Jackson Coelho Date: Tue, 21 Jan 2025 14:52:12 +0100 Subject: [PATCH 1/2] refactor helm ci --- .github/workflows/helm-diff-ci.yml | 105 +----------------------- .github/workflows/helm-diff-summary.yml | 101 +++++++++++++++++++++++ 2 files changed, 102 insertions(+), 104 deletions(-) create mode 100644 .github/workflows/helm-diff-summary.yml diff --git a/.github/workflows/helm-diff-ci.yml b/.github/workflows/helm-diff-ci.yml index 64e966140cbe1..62b492e6a87f0 100644 --- a/.github/workflows/helm-diff-ci.yml +++ b/.github/workflows/helm-diff-ci.yml @@ -3,7 +3,7 @@ name: Helm Loki Diff CI on: pull_request: paths: - - 'production/helm/loki/**' + - "production/helm/loki/**" permissions: contents: read @@ -269,106 +269,3 @@ jobs: name: simple-scalable-aws-kube-irsa-diff-output path: formatted_diff_output.md retention-days: 2 - - summary-diff-outputs: - name: Summary Diffs - runs-on: ubuntu-latest - needs: - - single-binary-diff - - default-values-diff - - ingress-values-diff - - legacy-monitoring-values-diff - - simple-scalable-aws-kube-irsa-values-diff - - steps: - - name: Checkout code - uses: actions/checkout@v4 - - - uses: actions/download-artifact@v4 - with: - name: single-binary-diff-output - path: single-binary-diff - - - uses: actions/download-artifact@v4 - with: - name: default-values-diff-output - path: default-values-diff - - - uses: actions/download-artifact@v4 - with: - name: ingress-diff-output - path: ingress-values-diff - - - uses: actions/download-artifact@v4 - with: - name: legacy-monitoring-diff-output - path: legacy-monitoring-values-diff - - - uses: actions/download-artifact@v4 - with: - name: simple-scalable-aws-kube-irsa-diff-output - path: simple-scalable-aws-kube-irsa-values-diff - - - name: Combine diff outputs - run: | - echo "## Helm Diff Output - Summary" > formatted_diff_output.md - - echo "
" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - echo "Single Binary Scenario" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - echo '```diff' >> formatted_diff_output.md - cat single-binary-diff/formatted_diff_output.md >> formatted_diff_output.md - echo '```' >> formatted_diff_output.md - echo "
" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - - echo "
" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - echo "Default Values Scenario" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - echo '```diff' >> formatted_diff_output.md - cat default-values-diff/formatted_diff_output.md >> formatted_diff_output.md - echo '```' >> formatted_diff_output.md - echo "
" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - - echo "
" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - echo "Ingress Values Scenario" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - echo '```diff' >> formatted_diff_output.md - cat ingress-values-diff/formatted_diff_output.md >> formatted_diff_output.md - echo '```' >> formatted_diff_output.md - echo "
" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - - echo "
" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - echo "Legacy Monitoring Scenario" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - echo '```diff' >> formatted_diff_output.md - cat legacy-monitoring-values-diff/formatted_diff_output.md >> formatted_diff_output.md - echo '```' >> formatted_diff_output.md - echo "
" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - - echo "
" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - echo "Simple Scalable AWS Kube IRSA Scenario" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - echo '```diff' >> formatted_diff_output.md - cat simple-scalable-aws-kube-irsa-values-diff/formatted_diff_output.md >> formatted_diff_output.md - echo '```' >> formatted_diff_output.md - echo "
" >> formatted_diff_output.md - echo "" >> formatted_diff_output.md - - - name: Post diff as PR comment - uses: marocchino/sticky-pull-request-comment@v2 - with: - header: "Helm Diff Output - Summary" - skip_unchanged: true - hide_and_recreate: true - append: true - hide_classify: "OUTDATED" - path: formatted_diff_output.md diff --git a/.github/workflows/helm-diff-summary.yml b/.github/workflows/helm-diff-summary.yml new file mode 100644 index 0000000000000..9962478871257 --- /dev/null +++ b/.github/workflows/helm-diff-summary.yml @@ -0,0 +1,101 @@ +name: Helm diff summary +on: + workflow_run: + workflows: ["Helm Loki Diff CI"] + types: + - completed + +jobs: + summary-diff-outputs: + name: Summary Diffs + runs-on: ubuntu-latest + + steps: + - uses: actions/download-artifact@v4 + with: + name: single-binary-diff-output + path: single-binary-diff + + - uses: actions/download-artifact@v4 + with: + name: default-values-diff-output + path: default-values-diff + + - uses: actions/download-artifact@v4 + with: + name: ingress-diff-output + path: ingress-values-diff + + - uses: actions/download-artifact@v4 + with: + name: legacy-monitoring-diff-output + path: legacy-monitoring-values-diff + + - uses: actions/download-artifact@v4 + with: + name: simple-scalable-aws-kube-irsa-diff-output + path: simple-scalable-aws-kube-irsa-values-diff + + - name: Combine diff outputs + run: | + echo "## Helm Diff Output - Summary" > formatted_diff_output.md + + echo "
" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + echo "Single Binary Scenario" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + echo '```diff' >> formatted_diff_output.md + cat single-binary-diff/formatted_diff_output.md >> formatted_diff_output.md + echo '```' >> formatted_diff_output.md + echo "
" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + + echo "
" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + echo "Default Values Scenario" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + echo '```diff' >> formatted_diff_output.md + cat default-values-diff/formatted_diff_output.md >> formatted_diff_output.md + echo '```' >> formatted_diff_output.md + echo "
" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + + echo "
" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + echo "Ingress Values Scenario" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + echo '```diff' >> formatted_diff_output.md + cat ingress-values-diff/formatted_diff_output.md >> formatted_diff_output.md + echo '```' >> formatted_diff_output.md + echo "
" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + + echo "
" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + echo "Legacy Monitoring Scenario" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + echo '```diff' >> formatted_diff_output.md + cat legacy-monitoring-values-diff/formatted_diff_output.md >> formatted_diff_output.md + echo '```' >> formatted_diff_output.md + echo "
" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + + echo "
" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + echo "Simple Scalable AWS Kube IRSA Scenario" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + echo '```diff' >> formatted_diff_output.md + cat simple-scalable-aws-kube-irsa-values-diff/formatted_diff_output.md >> formatted_diff_output.md + echo '```' >> formatted_diff_output.md + echo "
" >> formatted_diff_output.md + echo "" >> formatted_diff_output.md + + - name: Post diff as PR comment + uses: marocchino/sticky-pull-request-comment@v2 + with: + header: "Helm Diff Output - Summary" + skip_unchanged: true + hide_and_recreate: true + append: true + hide_classify: "OUTDATED" + path: formatted_diff_output.md From 1beb03ab33423a532883d20a82f9cb65557ea9fc Mon Sep 17 00:00:00 2001 From: Jackson Coelho Date: Tue, 21 Jan 2025 14:54:19 +0100 Subject: [PATCH 2/2] update README --- production/helm/loki/scenarios/README.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/production/helm/loki/scenarios/README.md b/production/helm/loki/scenarios/README.md index b84c186e23684..08d9c15d3a05e 100644 --- a/production/helm/loki/scenarios/README.md +++ b/production/helm/loki/scenarios/README.md @@ -6,7 +6,7 @@ Each scenario is used in a different job execution that will be used to deploy l We deploy the scenario with the latest release and then we execute a helm diff with the current version in the workspace, the diff between the release deployed will be posted in the pull request inside a comment like [this](https://github.com/grafana/loki/pull/15734#issuecomment-2592439539) making clear to review. ->*NOTE*: the helm diff output file will be available for each scenario inside github action to download for 2 days, after this you may need to re-run the job if you would like to download the output files. +> _NOTE_: the helm diff output file will be available for each scenario inside github action to download for 2 days, after this you may need to re-run the job if you would like to download the output files. ## Run scenarios locally @@ -16,9 +16,9 @@ All this process that we run in the CI can be done locally, the following steps To run locally you will need the following tools in your local environment -* k3d or any kubernetes cluster -* helm -* [helm-diff plugin](https://github.com/databus23/helm-diff) +- k3d or any kubernetes cluster +- helm +- [helm-diff plugin](https://github.com/databus23/helm-diff) ## Run @@ -32,7 +32,7 @@ Deploy in your kubernetes cluster the latest released version of the helm chart helm install --create-namespace loki-release grafana/loki -f ${scenario}-values.yaml ``` - Then run the helm diff plugin to compare the local helm chart to see the upgrade changes that will happen: +Then run the helm diff plugin to compare the local helm chart to see the upgrade changes that will happen: ```shell HELM_DIFF_USE_UPGRADE_DRY_RUN: true helm diff upgrade loki-release -f ${scenario}-values.yaml production/helm/loki @@ -61,3 +61,7 @@ As the last step you need to run a diff between both files: ```shell diff current-manifest.yaml release-manifest.yaml ``` + +## Known issues + +Running the comments in the PR