diff --git a/.github/workflows/lint-test-matrix.yaml b/.github/workflows/lint-test-matrix.yaml index e5ed6588..7e63c08a 100644 --- a/.github/workflows/lint-test-matrix.yaml +++ b/.github/workflows/lint-test-matrix.yaml @@ -11,11 +11,12 @@ jobs: fail-fast: false matrix: kindest_node_version: - - v1.23.17@sha256:59c989ff8a517a93127d4a536e7014d28e235fb3529d9fba91b3951d461edfdb - - v1.24.15@sha256:7db4f8bea3e14b82d12e044e25e34bd53754b7f2b0e9d56df21774e6f66a70ab - - v1.25.11@sha256:227fa11ce74ea76a0474eeefb84cb75d8dad1b08638371ecf0e86259b35be0c8 - - v1.26.6@sha256:6e2d8b28a5b601defe327b98bd1c2d1930b49e5d8c512e1895099e4504007adb - - v1.28.0@sha256:b7a4cad12c197af3ba43202d3efe03246b3f0793f162afb40a33c923952d5b31 + - v1.23.17@sha256:14d0a9a892b943866d7e6be119a06871291c517d279aedb816a4b4bc0ec0a5b3 + - v1.24.17@sha256:bad10f9b98d54586cba05a7eaa1b61c6b90bfc4ee174fdc43a7b75ca75c95e51 + - v1.25.16@sha256:e8b50f8e06b44bb65a93678a65a26248fae585b3d3c2a669e5ca6c90c69dc519 + - v1.26.14@sha256:5d548739ddef37b9318c70cb977f57bf3e5015e4552be4e27e57280a8cbb8e4f + - v1.27.11@sha256:681253009e68069b8e01aad36a1e0fa8cf18bb0ab3e5c4069b2e65cafdd70843 + - v1.29.2@sha256:51a1434a5397193442f0be2a297b488b6c919ce8a3931be0ce822606ea5ca245 steps: - name: Checkout uses: actions/checkout@v4 @@ -26,7 +27,7 @@ jobs: run: sudo apt-get -y install python3-wheel - name: Set up chart-testing - uses: helm/chart-testing-action@v2.6.0 + uses: helm/chart-testing-action@v2.6.1 - name: Run chart-testing (list-changed) id: list-changed @@ -41,9 +42,9 @@ jobs: run: ct lint --config ./default.ct.yaml - name: Create kind cluster - uses: helm/kind-action@v1.8.0 + uses: helm/kind-action@v1.9.0 with: - version: v0.20.0 + version: v0.22.0 node_image: kindest/node:${{ matrix.kindest_node_version }} if: | (steps.list-changed.outputs.changed == 'true') || diff --git a/.github/workflows/lint-test.yaml b/.github/workflows/lint-test.yaml index a16a362c..76d6e383 100644 --- a/.github/workflows/lint-test.yaml +++ b/.github/workflows/lint-test.yaml @@ -69,7 +69,7 @@ jobs: run: sudo apt-get -y install python3-wheel - name: Set up chart-testing - uses: helm/chart-testing-action@v2.6.0 + uses: helm/chart-testing-action@v2.6.1 - name: Run chart-testing (list-changed) id: list-changed @@ -84,11 +84,11 @@ jobs: run: ct lint --config ./default.ct.yaml - name: Create kind cluster - uses: helm/kind-action@v1.8.0 + uses: helm/kind-action@v1.9.0 with: - version: v0.20.0 - node_image: kindest/node:v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72 - kubectl_version: v1.27.3 + version: v0.22.0 + node_image: kindest/node:v1.28.7@sha256:9bc6c451a289cf96ad0bbaf33d416901de6fd632415b076ab05f5fa7e4f65c58 + kubectl_version: v1.28.7 if: | (steps.list-changed.outputs.changed == 'true') || (contains(github.event.pull_request.labels.*.name, 'needs-testing')) @@ -96,6 +96,11 @@ jobs: - name: Run chart-testing (install) run: ct install --config ./default.ct.yaml --helm-extra-args "--timeout 30m" + - name: Run chart-testing (needs-testing) + run: ct install --config ./default.ct.yaml --helm-extra-args "--timeout 30m" --all + if: | + (contains(github.event.pull_request.labels.*.name, 'needs-testing')) + artifacthub-changelog: runs-on: ubuntu-latest steps: diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 522bb8ac..b03949dc 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -19,13 +19,6 @@ jobs: git config user.name "$GITHUB_ACTOR" git config user.email "$GITHUB_ACTOR@users.noreply.github.com" - # See https://github.com/helm/chart-releaser-action/issues/6 - - name: Install Helm - run: | - curl -fsSLo get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3 - chmod 700 get_helm.sh - ./get_helm.sh - - name: Add dependency chart repos run: | helm repo add banzaicloud-stable https://kubernetes-charts.banzaicloud.com @@ -35,6 +28,6 @@ jobs: helm repo add kube-logging https://kube-logging.github.io/helm-charts - name: Run chart-releaser - uses: helm/chart-releaser-action@v1.5.0 + uses: helm/chart-releaser-action@v1.6.0 env: CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/test-suite.yaml b/.github/workflows/test-suite.yaml index b2039684..69cbea3c 100644 --- a/.github/workflows/test-suite.yaml +++ b/.github/workflows/test-suite.yaml @@ -5,7 +5,7 @@ on: pull_request jobs: # runs for lagoon-core, lagoon-remote, lagoon-test test-suite: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest strategy: fail-fast: false matrix: @@ -48,7 +48,7 @@ jobs: run: sudo apt-get -y install python3-wheel - name: Set up chart-testing - uses: helm/chart-testing-action@v2.6.0 + uses: helm/chart-testing-action@v2.6.1 - name: Run chart-testing (list-changed) id: list-changed @@ -69,14 +69,14 @@ jobs: envsubst < test-suite.kind-config.yaml.tpl > test-suite.kind-config.yaml - name: Create kind cluster - uses: helm/kind-action@v1.8.0 + uses: helm/kind-action@v1.9.0 if: | (steps.list-changed.outputs.changed == 'true') || (contains(github.event.pull_request.labels.*.name, 'needs-testing')) with: - version: v0.20.0 - node_image: kindest/node:v1.27.3@sha256:3966ac761ae0136263ffdb6cfd4db23ef8a83cba8a463690e98317add2c9ba72 - kubectl_version: v1.27.3 + version: v0.22.0 + node_image: kindest/node:v1.28.7@sha256:9bc6c451a289cf96ad0bbaf33d416901de6fd632415b076ab05f5fa7e4f65c58 + kubectl_version: v1.28.7 config: test-suite.kind-config.yaml - name: Check node IP matches kind configuration @@ -123,8 +123,8 @@ jobs: if: | (steps.list-changed.outputs.changed == 'true') || (contains(github.event.pull_request.labels.*.name, 'needs-testing')) - # run: make -j8 -O fill-test-ci-values TESTS=[${{ matrix.test }}] IMAGE_REGISTRY=testlagoon IMAGE_TAG=main OVERRIDE_BUILD_DEPLOY_DIND_IMAGE=uselagoon/build-deploy-image:main OVERRIDE_ACTIVE_STANDBY_TASK_IMAGE=testlagoon/task-activestandby:main - run: make -j8 -O fill-test-ci-values TESTS=[${{ matrix.test }}] + run: make -j8 -O fill-test-ci-values TESTS=[${{ matrix.test }}] IMAGE_REGISTRY=testlagoon IMAGE_TAG=main OVERRIDE_BUILD_DEPLOY_DIND_IMAGE=uselagoon/build-deploy-image:main OVERRIDE_ACTIVE_STANDBY_TASK_IMAGE=testlagoon/task-activestandby:main + # run: make -j8 -O fill-test-ci-values TESTS=[${{ matrix.test }}] - name: Free up some disk space if: | diff --git a/Makefile b/Makefile index 64088fcf..45f64657 100644 --- a/Makefile +++ b/Makefile @@ -79,6 +79,7 @@ install-ingress: --namespace ingress-nginx \ --wait \ --timeout $(TIMEOUT) \ + --set controller.allowSnippetAnnotations=true \ --set controller.service.type=NodePort \ --set controller.service.nodePorts.http=32080 \ --set controller.service.nodePorts.https=32443 \ @@ -86,7 +87,7 @@ install-ingress: --set controller.config.hsts="false" \ --set controller.watchIngressWithoutClass=true \ --set controller.ingressClassResource.default=true \ - --version=4.7.2 \ + --version=4.9.1 \ ingress-nginx \ ingress-nginx/ingress-nginx @@ -106,7 +107,7 @@ install-registry: install-ingress --set clair.enabled=false \ --set notary.enabled=false \ --set trivy.enabled=false \ - --version=1.13.0 \ + --version=1.14.0 \ registry \ harbor/harbor @@ -162,7 +163,7 @@ install-minio: install-ingress --timeout $(TIMEOUT) \ --set auth.rootUser=lagoonFilesAccessKey,auth.rootPassword=lagoonFilesSecretKey \ --set defaultBuckets='lagoon-files\,restores' \ - --version=12.8.7 \ + --version=13.6.2 \ minio \ bitnami/minio @@ -261,7 +262,7 @@ install-lagoon-remote: install-lagoon-build-deploy install-lagoon-core install-m # Do not install without lagoon-core # .PHONY: install-lagoon-build-deploy -install-lagoon-build-deploy: install-lagoon-core install-registry +install-lagoon-build-deploy: install-lagoon-core $(HELM) dependency build ./charts/lagoon-build-deploy/ $(HELM) upgrade \ --install \ @@ -288,6 +289,11 @@ install-lagoon-build-deploy: install-lagoon-core install-registry lagoon-build-deploy \ ./charts/lagoon-build-deploy +# allow skipping registry install for install-lagoon-remote target +ifneq ($(SKIP_INSTALL_REGISTRY),true) +install-lagoon-build-deploy: install-registry +endif + # # The following targets facilitate local development only and aren't used in CI. # diff --git a/charts/lagoon-core/Chart.yaml b/charts/lagoon-core/Chart.yaml index 8c149371..84795f4d 100644 --- a/charts/lagoon-core/Chart.yaml +++ b/charts/lagoon-core/Chart.yaml @@ -21,7 +21,7 @@ type: application # time you make changes to the chart and its templates, including the app # version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 1.41.1 +version: 1.42.0 # This is the version number of the application being deployed. This version # number should be incremented each time you make changes to the application. @@ -42,3 +42,5 @@ annotations: artifacthub.io/changes: | - kind: changed description: remove unused legacy registry setting from core + - kind: changed + description: modify keycloak liveness and readiness endpoint diff --git a/charts/lagoon-core/templates/keycloak.deployment.yaml b/charts/lagoon-core/templates/keycloak.deployment.yaml index fc044c04..a6820658 100644 --- a/charts/lagoon-core/templates/keycloak.deployment.yaml +++ b/charts/lagoon-core/templates/keycloak.deployment.yaml @@ -65,11 +65,11 @@ spec: containerPort: 8080 livenessProbe: httpGet: - path: / + path: /auth port: http-8080 readinessProbe: httpGet: - path: / + path: /auth port: http-8080 startupProbe: exec: diff --git a/charts/lagoon-remote/Chart.lock b/charts/lagoon-remote/Chart.lock index cf4d6808..9f4c93aa 100644 --- a/charts/lagoon-remote/Chart.lock +++ b/charts/lagoon-remote/Chart.lock @@ -2,14 +2,11 @@ dependencies: - name: lagoon-build-deploy repository: https://uselagoon.github.io/lagoon-charts/ version: 0.26.3 -- name: dioscuri - repository: https://amazeeio.github.io/charts/ - version: 0.4.1 - name: dbaas-operator repository: https://amazeeio.github.io/charts/ version: 0.3.0 - name: nats repository: https://nats-io.github.io/k8s/helm/charts/ version: 0.19.17 -digest: sha256:1f873430b35bd44722954a1f02699e32c5e7468a9a77a135e5df3ca3766a8ed2 -generated: "2023-12-08T13:18:21.18121865+11:00" +digest: sha256:19d026667151fe980c86b856f5e061d89bd669afaef89e1e88a69b8730950bb5 +generated: "2024-02-15T10:02:47.025667985+11:00" diff --git a/charts/lagoon-remote/Chart.yaml b/charts/lagoon-remote/Chart.yaml index 26141057..47052664 100644 --- a/charts/lagoon-remote/Chart.yaml +++ b/charts/lagoon-remote/Chart.yaml @@ -19,17 +19,13 @@ type: application # This is the chart version. This version number should be incremented each # time you make changes to the chart and its templates, including the app # version. -version: 0.87.0 +version: 0.88.0 dependencies: - name: lagoon-build-deploy version: ~0.26.0 repository: https://uselagoon.github.io/lagoon-charts/ condition: lagoon-build-deploy.enabled -- name: dioscuri - version: ~0.4.0 - repository: https://amazeeio.github.io/charts/ - condition: dioscuri.enabled - name: dbaas-operator version: ~0.3.0 repository: https://amazeeio.github.io/charts/ @@ -45,10 +41,8 @@ dependencies: annotations: artifacthub.io/changes: | - kind: changed - description: remove insights-remote service if not enabled - - kind: removed - description: removed old kubernetes build deploy references - - kind: changed - description: updated to insights-remote:v0.0.8 + description: update storage-calculator to v0.5.1 - kind: changed - description: updated lagoon-build-deploy chart to v0.26.3 + description: added metrics to storage-calculator + - kind: removed + description: removed dioscuri subchart, activestandby is handled via a Lagoon task directly now diff --git a/charts/lagoon-remote/ci/linter-values.yaml b/charts/lagoon-remote/ci/linter-values.yaml index 9c7e7d9d..fcb91171 100644 --- a/charts/lagoon-remote/ci/linter-values.yaml +++ b/charts/lagoon-remote/ci/linter-values.yaml @@ -98,3 +98,5 @@ sshPortal: storageCalculator: enabled: true + serviceMonitor: + enabled: false diff --git a/charts/lagoon-remote/templates/storage-calculator.deployment.yaml b/charts/lagoon-remote/templates/storage-calculator.deployment.yaml index f4cc3ecf..49dcd6df 100644 --- a/charts/lagoon-remote/templates/storage-calculator.deployment.yaml +++ b/charts/lagoon-remote/templates/storage-calculator.deployment.yaml @@ -35,10 +35,14 @@ spec: command: - /manager args: - - "--metrics-bind-address=127.0.0.1:8080" + - "--metrics-bind-address=0.0.0.0:8080" + - "--prometheus-metrics=true" {{- with .Values.storageCalculator.extraArgs }} {{- toYaml . | nindent 8 }} {{- end }} + ports: + - name: metrics + containerPort: 8080 env: {{- range $name, $value := .Values.storageCalculator.extraEnvs }} - name: {{ .name }} diff --git a/charts/lagoon-remote/templates/storage-calculator.service.yaml b/charts/lagoon-remote/templates/storage-calculator.service.yaml new file mode 100644 index 00000000..8a73bfdf --- /dev/null +++ b/charts/lagoon-remote/templates/storage-calculator.service.yaml @@ -0,0 +1,17 @@ +{{- if .Values.storageCalculator.enabled -}} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "lagoon-remote.storageCalculator.fullname" . }}-metrics + labels: + metrics-only: "true" + {{- include "lagoon-remote.storageCalculator.labels" . | nindent 4 }} +spec: + type: {{ .Values.storageCalculator.metricsService.type }} + ports: + - port: {{ .Values.storageCalculator.metricsService.ports.metrics }} + targetPort: metrics + name: metrics + selector: + {{- include "lagoon-remote.storageCalculator.selectorLabels" . | nindent 4 }} +{{- end }} diff --git a/charts/lagoon-remote/templates/storage-calculator.servicemonitor.yaml b/charts/lagoon-remote/templates/storage-calculator.servicemonitor.yaml new file mode 100644 index 00000000..fc339b51 --- /dev/null +++ b/charts/lagoon-remote/templates/storage-calculator.servicemonitor.yaml @@ -0,0 +1,18 @@ +{{- if and .Values.storageCalculator.enabled .Values.storageCalculator.serviceMonitor.enabled -}} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "lagoon-remote.storageCalculator.fullname" . }} + labels: + {{- include "lagoon-remote.storageCalculator.labels" . | nindent 4 }} +spec: + endpoints: + - port: metrics + namespaceSelector: + matchNames: + - {{ .Release.Namespace }} + selector: + matchLabels: + metrics-only: "true" + {{- include "lagoon-remote.storageCalculator.selectorLabels" . | nindent 6 }} +{{- end }} diff --git a/charts/lagoon-remote/values.yaml b/charts/lagoon-remote/values.yaml index 866f1871..cd747e32 100644 --- a/charts/lagoon-remote/values.yaml +++ b/charts/lagoon-remote/values.yaml @@ -181,11 +181,6 @@ lagoon-build-deploy: # See the parent chart for the full range of values that can be passed here to control builds # https://github.com/uselagoon/lagoon-charts/blob/main/charts/lagoon-build-deploy/values.yaml -# dioscuri is the operator which implements Lagoon active-standby. -# This subchart is enabled by default as this is a core Lagoon feature. -dioscuri: - enabled: true - # dbaas-operator provisions database-as-a-service accounts for projects. # Example provider configuration can be found in the dbaas-operator values.yaml # https://github.com/amazeeio/charts/blob/main/charts/dbaas-operator/values.yaml @@ -362,8 +357,16 @@ storageCalculator: # template name: + metricsService: + type: ClusterIP + ports: + metrics: 9912 + + serviceMonitor: + enabled: true + image: repository: uselagoon/remote-calculator pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. - tag: v0.2.3 + tag: v0.5.2