From 80c54f861984348b6826714234b331b761bab3a5 Mon Sep 17 00:00:00 2001 From: MuneebAijaz Date: Thu, 1 Aug 2024 00:10:17 +0500 Subject: [PATCH 1/6] Switch PR workflow to pull_request --- .github/workflows/pull_request.yaml | 101 +++++++--------------------- 1 file changed, 25 insertions(+), 76 deletions(-) diff --git a/.github/workflows/pull_request.yaml b/.github/workflows/pull_request.yaml index 71e29e5f..4897339e 100644 --- a/.github/workflows/pull_request.yaml +++ b/.github/workflows/pull_request.yaml @@ -1,7 +1,7 @@ name: Pull Request on: - pull_request_target: + pull_request: branches: - master paths: @@ -107,70 +107,19 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Login to Docker Registry - uses: docker/login-action@v3 - with: - username: ${{ secrets.STAKATER_DOCKERHUB_USERNAME }} - password: ${{ secrets.STAKATER_DOCKERHUB_PASSWORD }} - - - name: Generate image repository path for Docker registry - run: | - echo DOCKER_IMAGE_REPOSITORY=$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV - - - name: Build and Push Docker Image to Docker registry - uses: docker/build-push-action@v5 - with: - context: . - file: ${{ env.DOCKER_FILE_PATH }} - pull: true - push: true - build-args: BUILD_PARAMETERS=${{ env.BUILD_PARAMETERS }} - cache-to: type=inline - platforms: linux/amd64,linux/arm,linux/arm64 - tags: | - ${{ env.DOCKER_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.GIT_TAG }} - labels: | - org.opencontainers.image.source=${{ github.event.repository.clone_url }} - org.opencontainers.image.created=${{ steps.prep.outputs.created }} - org.opencontainers.image.revision=${{ github.sha }} - - - name: Build and Push Docker UBI Image to Docker registry - uses: docker/build-push-action@v5 - with: - context: . - file: ${{ env.DOCKER_UBI_FILE_PATH }} - pull: true - push: true - build-args: | - BUILD_PARAMETERS=${{ env.BUILD_PARAMETERS }} - BUILDER_IMAGE=${{ env.DOCKER_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.GIT_TAG }} - cache-to: type=inline - platforms: linux/amd64,linux/arm64 - tags: | - ${{ env.DOCKER_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.GIT_UBI_TAG }} - labels: | - org.opencontainers.image.source=${{ github.event.repository.clone_url }} - org.opencontainers.image.created=${{ steps.prep.outputs.created }} - org.opencontainers.image.revision=${{ github.sha }} - - - name: Login to ghcr registry - uses: docker/login-action@v3 - with: - registry: ${{env.REGISTRY}} - username: ${{github.actor}} - password: ${{secrets.GITHUB_TOKEN}} - - name: Generate image repository path for ghcr registry run: | echo GHCR_IMAGE_REPOSITORY=${{env.REGISTRY}}/$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]') >> $GITHUB_ENV - - name: Build and Push Docker Image to ghcr registry + # To identify any broken changes in dockerfiles or dependencies + + - name: Build Docker Image uses: docker/build-push-action@v5 with: context: . file: ${{ env.DOCKER_FILE_PATH }} pull: true - push: true + push: false build-args: BUILD_PARAMETERS=${{ env.BUILD_PARAMETERS }} cache-to: type=inline platforms: linux/amd64,linux/arm,linux/arm64 @@ -181,13 +130,13 @@ jobs: org.opencontainers.image.created=${{ steps.prep.outputs.created }} org.opencontainers.image.revision=${{ github.sha }} - - name: Build and Push Docker UBI Image to ghcr registry + - name: Build Docker UBI Image uses: docker/build-push-action@v5 with: context: . file: ${{ env.DOCKER_UBI_FILE_PATH }} pull: true - push: true + push: false build-args: | BUILD_PARAMETERS=${{ env.BUILD_PARAMETERS }} BUILDER_IMAGE=${{ env.GHCR_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.GIT_TAG }} @@ -200,22 +149,22 @@ jobs: org.opencontainers.image.created=${{ steps.prep.outputs.created }} org.opencontainers.image.revision=${{ github.sha }} - - name: Comment on PR - uses: mshick/add-pr-comment@v2 - if: always() - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - message-success: '@${{ github.actor }} Images are available for testing. `docker pull ${{ env.GHCR_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.GIT_TAG }}`\n`docker pull ${{ env.GHCR_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.GIT_UBI_TAG }}`' - message-failure: '@${{ github.actor }} Yikes! You better fix it before anyone else finds out! [Build](https://github.com/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}/checks) has Failed!' - allow-repeats: true + # - name: Comment on PR + # uses: mshick/add-pr-comment@v2 + # if: always() + # env: + # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + # with: + # message-success: '@${{ github.actor }} Images are available for testing. `docker pull ${{ env.GHCR_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.GIT_TAG }}`\n`docker pull ${{ env.GHCR_IMAGE_REPOSITORY }}:${{ steps.generate_tag.outputs.GIT_UBI_TAG }}`' + # message-failure: '@${{ github.actor }} Yikes! You better fix it before anyone else finds out! [Build](https://github.com/${{ github.repository }}/commit/${{ github.event.pull_request.head.sha }}/checks) has Failed!' + # allow-repeats: true - - name: Notify Slack - uses: 8398a7/action-slack@v3 - if: always() # Pick up events even if the job fails or is canceled. - with: - status: ${{ job.status }} - fields: repo,author,action,eventName,ref,workflow - env: - GITHUB_TOKEN: ${{ secrets.STAKATER_GITHUB_TOKEN }} - SLACK_WEBHOOK_URL: ${{ secrets.STAKATER_DELIVERY_SLACK_WEBHOOK }} + # - name: Notify Slack + # uses: 8398a7/action-slack@v3 + # if: always() # Pick up events even if the job fails or is canceled. + # with: + # status: ${{ job.status }} + # fields: repo,author,action,eventName,ref,workflow + # env: + # GITHUB_TOKEN: ${{ secrets.STAKATER_GITHUB_TOKEN }} + # SLACK_WEBHOOK_URL: ${{ secrets.STAKATER_DELIVERY_SLACK_WEBHOOK }} From 12b9a197a4715f109aacc59f094189a1f1e66f0f Mon Sep 17 00:00:00 2001 From: Gabi Davar Date: Wed, 7 Aug 2024 11:23:42 +0300 Subject: [PATCH 2/6] Tell Go runtime about the CPU & memory limits. (#699) * Tell Go runtime about the CPU & memory limits. Signed-off-by: Gabi Davar * review comments --------- Signed-off-by: Gabi Davar --- .github/workflows/push.yaml | 4 ++-- .../chart/reloader/templates/deployment.yaml | 19 ++++++++++++++++--- .../kubernetes/chart/reloader/values.yaml | 5 +++++ 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/.github/workflows/push.yaml b/.github/workflows/push.yaml index 3e9524c3..a7a665aa 100644 --- a/.github/workflows/push.yaml +++ b/.github/workflows/push.yaml @@ -212,8 +212,8 @@ jobs: - name: Helm Template run: | helm template reloader deployments/kubernetes/chart/reloader/ \ - --set reloader.deployment.resources.limits.cpu=150m \ - --set reloader.deployment.resources.limits.memory=512Mi \ + --set-string reloader.deployment.resources.limits.cpu=1 \ + --set reloader.deployment.resources.limits.memory=128Mi \ --set reloader.deployment.resources.requests.cpu=10m \ --set reloader.deployment.resources.requests.memory=128Mi > deployments/kubernetes/reloader.yaml diff --git a/deployments/kubernetes/chart/reloader/templates/deployment.yaml b/deployments/kubernetes/chart/reloader/templates/deployment.yaml index e1105343..d43bd872 100644 --- a/deployments/kubernetes/chart/reloader/templates/deployment.yaml +++ b/deployments/kubernetes/chart/reloader/templates/deployment.yaml @@ -76,8 +76,23 @@ spec: - image: "{{ .Values.reloader.deployment.image.name }}:{{ .Values.reloader.deployment.image.tag }}" imagePullPolicy: {{ .Values.reloader.deployment.image.pullPolicy }} name: {{ template "reloader-fullname" . }} - {{- if or (.Values.reloader.deployment.env.open) (.Values.reloader.deployment.env.secret) (.Values.reloader.deployment.env.field) (.Values.reloader.deployment.env.existing) (eq .Values.reloader.watchGlobally false) (.Values.reloader.enableHA) (.Values.reloader.enableMetricsByNamespace)}} env: + - name: GOMAXPROCS + {{- if .Values.reloader.deployment.gomaxprocsOverride }} + value: {{ .Values.reloader.deployment.gomaxprocsOverride | quote }} + {{- else }} + valueFrom: + resourceFieldRef: + resource: limits.memory + {{- end }} + - name: GOMEMLIMIT + {{- if .Values.reloader.deployment.gomemlimitOverride }} + value: {{ .Values.reloader.deployment.gomemlimitOverride | quote }} + {{- else }} + valueFrom: + resourceFieldRef: + resource: limits.cpu + {{- end }} {{- range $name, $value := .Values.reloader.deployment.env.open }} {{- if not (empty $value) }} - name: {{ $name | quote }} @@ -112,7 +127,6 @@ spec: fieldRef: fieldPath: {{ $value | quote}} {{- end }} - {{- end }} {{- if eq .Values.reloader.watchGlobally false }} - name: KUBERNETES_NAMESPACE valueFrom: @@ -134,7 +148,6 @@ spec: value: enabled {{- end }} {{- end }} - ports: - name: http containerPort: 9090 diff --git a/deployments/kubernetes/chart/reloader/values.yaml b/deployments/kubernetes/chart/reloader/values.yaml index bb0f55e5..629dafb1 100644 --- a/deployments/kubernetes/chart/reloader/values.yaml +++ b/deployments/kubernetes/chart/reloader/values.yaml @@ -147,6 +147,11 @@ reloader: # imagePullSecrets: # - name: myregistrykey + # Put "0" in either to have go runtime ignore the set value. + # Otherwise, see https://pkg.go.dev/runtime#hdr-Environment_Variables for GOMAXPROCS and GOMEMLIMIT + gomaxprocsOverride: "" + gomemlimitOverride: "" + service: {} # labels: {} # annotations: {} From 32d5ce8990b1398bc71b07d904dca3ad244a66a9 Mon Sep 17 00:00:00 2001 From: Robert Gordon Date: Wed, 7 Aug 2024 10:46:24 +0100 Subject: [PATCH 3/6] chore: fix for POD_NAME and POD_NAMESPACE envs when enableHA is true --- .../chart/reloader/templates/deployment.yaml | 2 +- .../chart/reloader/tests/deployment_test.yaml | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/deployments/kubernetes/chart/reloader/templates/deployment.yaml b/deployments/kubernetes/chart/reloader/templates/deployment.yaml index d43bd872..493186b4 100644 --- a/deployments/kubernetes/chart/reloader/templates/deployment.yaml +++ b/deployments/kubernetes/chart/reloader/templates/deployment.yaml @@ -127,6 +127,7 @@ spec: fieldRef: fieldPath: {{ $value | quote}} {{- end }} + {{- end }} {{- if eq .Values.reloader.watchGlobally false }} - name: KUBERNETES_NAMESPACE valueFrom: @@ -146,7 +147,6 @@ spec: {{- if .Values.reloader.enableMetricsByNamespace }} - name: METRICS_COUNT_BY_NAMESPACE value: enabled - {{- end }} {{- end }} ports: - name: http diff --git a/deployments/kubernetes/chart/reloader/tests/deployment_test.yaml b/deployments/kubernetes/chart/reloader/tests/deployment_test.yaml index 7fabe5c4..aee0f9fb 100644 --- a/deployments/kubernetes/chart/reloader/tests/deployment_test.yaml +++ b/deployments/kubernetes/chart/reloader/tests/deployment_test.yaml @@ -48,3 +48,16 @@ tests: asserts: - isEmpty: path: spec.template.spec.containers[0].securityContext + + - it: template still sets POD_NAME and POD_NAMESPACE environment variables when enableHA is true + set: + reloader: + enableHA: true + asserts: + - contains: + path: spec.template.spec.containers[0].env + content: + name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name From e6d833bc209a0c3833bd6dd2d3ff24776677d3a1 Mon Sep 17 00:00:00 2001 From: stakater-user Date: Wed, 7 Aug 2024 13:48:42 +0000 Subject: [PATCH 4/6] [skip-ci] Update artifacts --- .../kubernetes/chart/reloader/Chart.yaml | 4 +-- .../kubernetes/chart/reloader/values.yaml | 4 +-- .../kubernetes/manifests/deployment.yaml | 11 ++++++- deployments/kubernetes/reloader.yaml | 30 ++++++++++++------- 4 files changed, 33 insertions(+), 16 deletions(-) diff --git a/deployments/kubernetes/chart/reloader/Chart.yaml b/deployments/kubernetes/chart/reloader/Chart.yaml index 6f411f2e..276ec5f0 100644 --- a/deployments/kubernetes/chart/reloader/Chart.yaml +++ b/deployments/kubernetes/chart/reloader/Chart.yaml @@ -3,8 +3,8 @@ apiVersion: v1 name: reloader description: Reloader chart that runs on kubernetes -version: 1.0.119 -appVersion: v1.0.119 +version: 1.0.120 +appVersion: v1.0.120 keywords: - Reloader - kubernetes diff --git a/deployments/kubernetes/chart/reloader/values.yaml b/deployments/kubernetes/chart/reloader/values.yaml index 629dafb1..49b863f5 100644 --- a/deployments/kubernetes/chart/reloader/values.yaml +++ b/deployments/kubernetes/chart/reloader/values.yaml @@ -92,10 +92,10 @@ reloader: labels: provider: stakater group: com.stakater.platform - version: v1.0.119 + version: v1.0.120 image: name: ghcr.io/stakater/reloader - tag: v1.0.119 + tag: v1.0.120 pullPolicy: IfNotPresent # Support for extra environment variables. env: diff --git a/deployments/kubernetes/manifests/deployment.yaml b/deployments/kubernetes/manifests/deployment.yaml index 422da504..2f17e721 100644 --- a/deployments/kubernetes/manifests/deployment.yaml +++ b/deployments/kubernetes/manifests/deployment.yaml @@ -17,9 +17,18 @@ spec: app: reloader-reloader spec: containers: - - image: "ghcr.io/stakater/reloader:v1.0.119" + - image: "ghcr.io/stakater/reloader:v1.0.120" imagePullPolicy: IfNotPresent name: reloader-reloader + env: + - name: GOMAXPROCS + valueFrom: + resourceFieldRef: + resource: limits.memory + - name: GOMEMLIMIT + valueFrom: + resourceFieldRef: + resource: limits.cpu ports: - name: http containerPort: 9090 diff --git a/deployments/kubernetes/reloader.yaml b/deployments/kubernetes/reloader.yaml index c2dc20a1..81e734d3 100644 --- a/deployments/kubernetes/reloader.yaml +++ b/deployments/kubernetes/reloader.yaml @@ -8,7 +8,7 @@ metadata: meta.helm.sh/release-name: "reloader" labels: app: reloader-reloader - chart: "reloader-1.0.119" + chart: "reloader-1.0.120" release: "reloader" heritage: "Helm" app.kubernetes.io/managed-by: "Helm" @@ -25,7 +25,7 @@ metadata: meta.helm.sh/release-name: "reloader" labels: app: reloader-reloader - chart: "reloader-1.0.119" + chart: "reloader-1.0.120" release: "reloader" heritage: "Helm" app.kubernetes.io/managed-by: "Helm" @@ -92,7 +92,7 @@ metadata: meta.helm.sh/release-name: "reloader" labels: app: reloader-reloader - chart: "reloader-1.0.119" + chart: "reloader-1.0.120" release: "reloader" heritage: "Helm" app.kubernetes.io/managed-by: "Helm" @@ -115,13 +115,13 @@ metadata: meta.helm.sh/release-name: "reloader" labels: app: reloader-reloader - chart: "reloader-1.0.119" + chart: "reloader-1.0.120" release: "reloader" heritage: "Helm" app.kubernetes.io/managed-by: "Helm" group: com.stakater.platform provider: stakater - version: v1.0.119 + version: v1.0.120 name: reloader-reloader namespace: default spec: @@ -135,19 +135,27 @@ spec: metadata: labels: app: reloader-reloader - chart: "reloader-1.0.119" + chart: "reloader-1.0.120" release: "reloader" heritage: "Helm" app.kubernetes.io/managed-by: "Helm" group: com.stakater.platform provider: stakater - version: v1.0.119 + version: v1.0.120 spec: containers: - - image: "ghcr.io/stakater/reloader:v1.0.119" + - image: "ghcr.io/stakater/reloader:v1.0.120" imagePullPolicy: IfNotPresent name: reloader-reloader - + env: + - name: GOMAXPROCS + valueFrom: + resourceFieldRef: + resource: limits.memory + - name: GOMEMLIMIT + valueFrom: + resourceFieldRef: + resource: limits.cpu ports: - name: http containerPort: 9090 @@ -174,8 +182,8 @@ spec: {} resources: limits: - cpu: 150m - memory: 512Mi + cpu: "1" + memory: 128Mi requests: cpu: 10m memory: 128Mi From ef0ea91ec5c91ccbab0aa9b398bec3318971fd5a Mon Sep 17 00:00:00 2001 From: bnallapeta Date: Wed, 7 Aug 2024 19:29:03 +0530 Subject: [PATCH 5/6] fix default values for memory and cpu --- .../kubernetes/chart/reloader/templates/deployment.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deployments/kubernetes/chart/reloader/templates/deployment.yaml b/deployments/kubernetes/chart/reloader/templates/deployment.yaml index 493186b4..e4295c5f 100644 --- a/deployments/kubernetes/chart/reloader/templates/deployment.yaml +++ b/deployments/kubernetes/chart/reloader/templates/deployment.yaml @@ -83,7 +83,7 @@ spec: {{- else }} valueFrom: resourceFieldRef: - resource: limits.memory + resource: limits.cpu {{- end }} - name: GOMEMLIMIT {{- if .Values.reloader.deployment.gomemlimitOverride }} @@ -91,7 +91,7 @@ spec: {{- else }} valueFrom: resourceFieldRef: - resource: limits.cpu + resource: limits.memory {{- end }} {{- range $name, $value := .Values.reloader.deployment.env.open }} {{- if not (empty $value) }} From 70ab56606df1f9fd4877b0f615b0b929f8269511 Mon Sep 17 00:00:00 2001 From: stakater-user Date: Wed, 7 Aug 2024 14:27:13 +0000 Subject: [PATCH 6/6] [skip-ci] Update artifacts --- .../kubernetes/chart/reloader/Chart.yaml | 4 ++-- .../kubernetes/chart/reloader/values.yaml | 4 ++-- .../kubernetes/manifests/deployment.yaml | 6 +++--- deployments/kubernetes/reloader.yaml | 20 +++++++++---------- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/deployments/kubernetes/chart/reloader/Chart.yaml b/deployments/kubernetes/chart/reloader/Chart.yaml index 276ec5f0..0b0d3736 100644 --- a/deployments/kubernetes/chart/reloader/Chart.yaml +++ b/deployments/kubernetes/chart/reloader/Chart.yaml @@ -3,8 +3,8 @@ apiVersion: v1 name: reloader description: Reloader chart that runs on kubernetes -version: 1.0.120 -appVersion: v1.0.120 +version: 1.0.121 +appVersion: v1.0.121 keywords: - Reloader - kubernetes diff --git a/deployments/kubernetes/chart/reloader/values.yaml b/deployments/kubernetes/chart/reloader/values.yaml index 49b863f5..a3eb5959 100644 --- a/deployments/kubernetes/chart/reloader/values.yaml +++ b/deployments/kubernetes/chart/reloader/values.yaml @@ -92,10 +92,10 @@ reloader: labels: provider: stakater group: com.stakater.platform - version: v1.0.120 + version: v1.0.121 image: name: ghcr.io/stakater/reloader - tag: v1.0.120 + tag: v1.0.121 pullPolicy: IfNotPresent # Support for extra environment variables. env: diff --git a/deployments/kubernetes/manifests/deployment.yaml b/deployments/kubernetes/manifests/deployment.yaml index 2f17e721..07bed294 100644 --- a/deployments/kubernetes/manifests/deployment.yaml +++ b/deployments/kubernetes/manifests/deployment.yaml @@ -17,18 +17,18 @@ spec: app: reloader-reloader spec: containers: - - image: "ghcr.io/stakater/reloader:v1.0.120" + - image: "ghcr.io/stakater/reloader:v1.0.121" imagePullPolicy: IfNotPresent name: reloader-reloader env: - name: GOMAXPROCS valueFrom: resourceFieldRef: - resource: limits.memory + resource: limits.cpu - name: GOMEMLIMIT valueFrom: resourceFieldRef: - resource: limits.cpu + resource: limits.memory ports: - name: http containerPort: 9090 diff --git a/deployments/kubernetes/reloader.yaml b/deployments/kubernetes/reloader.yaml index 81e734d3..cca54c04 100644 --- a/deployments/kubernetes/reloader.yaml +++ b/deployments/kubernetes/reloader.yaml @@ -8,7 +8,7 @@ metadata: meta.helm.sh/release-name: "reloader" labels: app: reloader-reloader - chart: "reloader-1.0.120" + chart: "reloader-1.0.121" release: "reloader" heritage: "Helm" app.kubernetes.io/managed-by: "Helm" @@ -25,7 +25,7 @@ metadata: meta.helm.sh/release-name: "reloader" labels: app: reloader-reloader - chart: "reloader-1.0.120" + chart: "reloader-1.0.121" release: "reloader" heritage: "Helm" app.kubernetes.io/managed-by: "Helm" @@ -92,7 +92,7 @@ metadata: meta.helm.sh/release-name: "reloader" labels: app: reloader-reloader - chart: "reloader-1.0.120" + chart: "reloader-1.0.121" release: "reloader" heritage: "Helm" app.kubernetes.io/managed-by: "Helm" @@ -115,13 +115,13 @@ metadata: meta.helm.sh/release-name: "reloader" labels: app: reloader-reloader - chart: "reloader-1.0.120" + chart: "reloader-1.0.121" release: "reloader" heritage: "Helm" app.kubernetes.io/managed-by: "Helm" group: com.stakater.platform provider: stakater - version: v1.0.120 + version: v1.0.121 name: reloader-reloader namespace: default spec: @@ -135,27 +135,27 @@ spec: metadata: labels: app: reloader-reloader - chart: "reloader-1.0.120" + chart: "reloader-1.0.121" release: "reloader" heritage: "Helm" app.kubernetes.io/managed-by: "Helm" group: com.stakater.platform provider: stakater - version: v1.0.120 + version: v1.0.121 spec: containers: - - image: "ghcr.io/stakater/reloader:v1.0.120" + - image: "ghcr.io/stakater/reloader:v1.0.121" imagePullPolicy: IfNotPresent name: reloader-reloader env: - name: GOMAXPROCS valueFrom: resourceFieldRef: - resource: limits.memory + resource: limits.cpu - name: GOMEMLIMIT valueFrom: resourceFieldRef: - resource: limits.cpu + resource: limits.memory ports: - name: http containerPort: 9090