From 64d927ea973ff7bdcae42f72bcb37cb763ff66e5 Mon Sep 17 00:00:00 2001 From: Davi Koscianski Vidal Date: Fri, 13 Dec 2024 15:28:51 +0100 Subject: [PATCH] SONAR-23559 Improves editions and versions setting for sonarqube chart --- .cirrus/Dockerfile | 17 +- .cirrus/schema_test.sh | 7 + .cirrus/tasks.yml | 11 + .tool-versions | 1 + charts/sonarqube-dce/templates/_helpers.tpl | 2 +- charts/sonarqube/CHANGELOG.md | 1 + charts/sonarqube/Chart.yaml | 2 + charts/sonarqube/README.md | 53 ++- charts/sonarqube/ci/cirrus-values.yaml | 3 + .../sonarqube/openshift-verifier/values.yaml | 3 + charts/sonarqube/templates/_helpers.tpl | 42 ++- charts/sonarqube/templates/validation.yaml | 28 +- charts/sonarqube/values.schema.json | 30 +- charts/sonarqube/values.yaml | 10 +- tests/dynamic-compatibility-test/README.md | 18 +- tests/dynamic-compatibility-test/go.mod | 83 +++-- tests/dynamic-compatibility-test/go.sum | 283 ++++++++++++++++ .../sonarqube/all-values.yaml | 2 + .../sonarqube_standard_dynamic_test.go | 4 +- tests/unit-compatibility-test/README.md | 3 +- .../sonarqube/ca-certificates-configmap.yaml | 14 +- .../sonarqube/ca-certificates-secret.yaml | 12 +- .../change-admin-password-hook-values.yaml | 10 +- .../fixtures/sonarqube/config-values.yaml | 12 +- .../fixtures/sonarqube/default-values.yaml | 10 +- .../fixtures/sonarqube/deployment-values.yaml | 10 +- .../sonarqube/duplicated-env-values.yaml | 12 +- .../sonarqube/http-routes-default-values.yaml | 10 +- .../sonarqube/http-routes-values.yaml | 10 +- .../fixtures/sonarqube/ingress-values.yaml | 10 +- .../sonarqube/ingress-with-controller.yaml | 10 +- .../sonarqube/install-plugins-values.yaml | 12 +- .../sonarqube/jdbc-config-values.yaml | 10 +- .../sonarqube/networkpolicy-new-values.yaml | 10 +- .../sonarqube/networkpolicy-values.yaml | 10 +- .../non-default-security-context-values.yaml | 14 +- .../fixtures/sonarqube/openshift-values.yaml | 8 +- .../prometheus-monitoring-values.yaml | 10 +- .../sonarqube/proxies-secret-values.yaml | 12 +- .../fixtures/sonarqube/proxies-values.yaml | 14 +- .../fixtures/sonarqube/pvc-values.yaml | 12 +- .../fixtures/sonarqube/secret-values.yaml | 8 +- .../fixtures/sonarqube/service-values.yaml | 10 +- .../sonarqube/serviceaccount-values.yaml | 10 +- ...-context-deployment-deprecated-values.yaml | 12 +- ...nar-web-context-sts-deprecated-values.yaml | 12 +- .../sonarqube/sonar-web-context-values.yaml | 12 +- .../template-refactoring-values.yaml | 12 +- .../sonarqube/ca-certificates-configmap.yaml | 2 + .../sonarqube/ca-certificates-secret.yaml | 2 + .../change-admin-password-hook-values.yaml | 2 + .../sonarqube/community-build-values.yaml | 4 +- .../sonarqube/config-values.yaml | 4 +- .../sonarqube/custom-image-values.yaml | 5 +- .../sonarqube/default-values.yaml | 3 +- .../sonarqube/deployment-values.yaml | 4 +- .../sonarqube/duplicated-env-values.yaml | 4 +- .../sonarqube/http-routes-default-values.yaml | 4 +- .../sonarqube/http-routes-values.yaml | 2 + .../sonarqube/ingress-values.yaml | 2 + .../sonarqube/ingress-with-controller.yaml | 2 + .../sonarqube/install-plugins-values.yaml | 2 + .../sonarqube/jdbc-config-values.yaml | 4 +- .../sonarqube/networkpolicy-new-values.yaml | 4 +- .../sonarqube/networkpolicy-values.yaml | 4 +- .../non-default-security-context-values.yaml | 4 +- .../sonarqube/openshift-values.yaml | 4 +- .../prometheus-monitoring-values.yaml | 4 +- .../sonarqube/proxies-secret-values.yaml | 4 +- .../sonarqube/proxies-values.yaml | 4 +- .../sonarqube/pvc-values.yaml | 4 +- .../sonarqube/secret-values.yaml | 4 +- .../sonarqube/service-values.yaml | 4 +- .../sonarqube/serviceaccount-values.yaml | 4 +- ...-context-deployment-deprecated-values.yaml | 2 + ...nar-web-context-sts-deprecated-values.yaml | 2 + .../sonarqube/sonar-web-context-values.yaml | 4 +- .../template-refactoring-values.yaml | 2 + tests/unit-test/README.md | 10 + tests/unit-test/go.mod | 101 ++++++ tests/unit-test/go.sum | 302 ++++++++++++++++++ tests/unit-test/schema_test.go | 223 +++++++++++++ ...invalid-community-disabled-no-edition.yaml | 2 + .../sonarqube/invalid-community-edition.yaml | 1 + .../sonarqube/invalid-edition.yaml | 1 + .../sonarqube/invalid-no-default-edition.yaml | 1 + .../sonarqube/test-build-number.yaml | 3 + .../test-community-build-empty-tag.yaml | 6 + .../test-community-empty-build-empty-tag.yaml | 3 + .../sonarqube/test-custom-image-values.yaml | 6 + .../sonarqube/test-developer-edition.yaml | 1 + .../sonarqube/test-image-tag-developer.yaml | 6 + .../test-notag-appVersion-developer.yaml | 4 + .../sonarqube/test-notag-latest-cb.yaml | 2 + 94 files changed, 1394 insertions(+), 289 deletions(-) create mode 100755 .cirrus/schema_test.sh create mode 100644 tests/dynamic-compatibility-test/go.sum create mode 100644 tests/unit-test/README.md create mode 100644 tests/unit-test/go.mod create mode 100644 tests/unit-test/go.sum create mode 100644 tests/unit-test/schema_test.go create mode 100644 tests/unit-test/test-cases-values/sonarqube/invalid-community-disabled-no-edition.yaml create mode 100644 tests/unit-test/test-cases-values/sonarqube/invalid-community-edition.yaml create mode 100644 tests/unit-test/test-cases-values/sonarqube/invalid-edition.yaml create mode 100644 tests/unit-test/test-cases-values/sonarqube/invalid-no-default-edition.yaml create mode 100644 tests/unit-test/test-cases-values/sonarqube/test-build-number.yaml create mode 100644 tests/unit-test/test-cases-values/sonarqube/test-community-build-empty-tag.yaml create mode 100644 tests/unit-test/test-cases-values/sonarqube/test-community-empty-build-empty-tag.yaml create mode 100644 tests/unit-test/test-cases-values/sonarqube/test-custom-image-values.yaml create mode 100644 tests/unit-test/test-cases-values/sonarqube/test-developer-edition.yaml create mode 100644 tests/unit-test/test-cases-values/sonarqube/test-image-tag-developer.yaml create mode 100644 tests/unit-test/test-cases-values/sonarqube/test-notag-appVersion-developer.yaml create mode 100644 tests/unit-test/test-cases-values/sonarqube/test-notag-latest-cb.yaml diff --git a/.cirrus/Dockerfile b/.cirrus/Dockerfile index b9cec1e70..ac721bd40 100644 --- a/.cirrus/Dockerfile +++ b/.cirrus/Dockerfile @@ -1,7 +1,7 @@ ARG CIRRUS_AWS_ACCOUNT -FROM ${CIRRUS_AWS_ACCOUNT:-275878209202}.dkr.ecr.eu-central-1.amazonaws.com/base:j11-latest as tools +FROM ${CIRRUS_AWS_ACCOUNT:-275878209202}.dkr.ecr.eu-central-1.amazonaws.com/base:j11-latest AS tools -FROM docker:20.10 +FROM docker:27.4 USER root @@ -27,24 +27,25 @@ ENV PATH=/usr/bin/google-cloud-sdk/bin:${PATH} RUN apk add --update --no-cache \ aws-cli \ - ca-certificates \ bash \ - jq \ - moreutils \ + ca-certificates \ curl \ gcompat \ git \ gnupg \ + go \ + jq \ libc6-compat \ libstdc++ \ + moreutils \ openssh-client \ py3-pip \ py3-wheel \ python3 && \ - pip install --upgrade pip==24.2 + pip install --break-system-packages --upgrade pip==24.2 -RUN pip install "yamllint==${YAMLLINT_VERSION}" && \ - pip install "yamale==${YAMALE_VERSION}" +RUN pip install --break-system-packages "yamllint==${YAMLLINT_VERSION}" && \ + pip install --break-system-packages "yamale==${YAMALE_VERSION}" RUN set -eux; \ curl -sL ${HELM_BASE_URL}/${HELM_TAR_FILE} -o ${HELM_TAR_FILE} ; \ diff --git a/.cirrus/schema_test.sh b/.cirrus/schema_test.sh new file mode 100755 index 000000000..7ee969fa8 --- /dev/null +++ b/.cirrus/schema_test.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +set -euo pipefail + +cd "$(dirname "$0")/../tests/unit-test" + +go test -timeout=0 -v schema_test.go diff --git a/.cirrus/tasks.yml b/.cirrus/tasks.yml index 8fd309ca1..a95d5d0f4 100644 --- a/.cirrus/tasks.yml +++ b/.cirrus/tasks.yml @@ -137,6 +137,17 @@ chart_static_compatibility_test_task: - ./.cirrus/build_chart_dependencies.sh charts/sonarqube-dce - ./.cirrus/unit_helm_compatibility_test.sh sonarqube-dce +chart_schema_test_task: + eks_container: + <<: *CONTAINER_TEMPLATE + cpu: 1 + memory: 2Gb + <<: *CLONE_SCRIPT_TEMPLATE + script: + - ./.cirrus/build_chart_dependencies.sh charts/sonarqube + - ./.cirrus/build_chart_dependencies.sh charts/sonarqube-dce + - ./.cirrus/schema_test.sh + chart_fixture_test_task: <<: *ONLY_ON_NON_RELEASE_DRAFT_TEMPLATE timeout_in: 30m diff --git a/.tool-versions b/.tool-versions index 731e4d504..aa6430f78 100644 --- a/.tool-versions +++ b/.tool-versions @@ -1,3 +1,4 @@ gcloud 470.0.0 helm-ct 3.10.1 kubeconform 0.6.3 +golang 1.22.0 diff --git a/charts/sonarqube-dce/templates/_helpers.tpl b/charts/sonarqube-dce/templates/_helpers.tpl index c5478a14e..d73772fdf 100644 --- a/charts/sonarqube-dce/templates/_helpers.tpl +++ b/charts/sonarqube-dce/templates/_helpers.tpl @@ -146,7 +146,7 @@ Determine JDBC username {{- end -}} {{/* -Determine the k8s secretKey contrining the JDBC password +Determine the k8s secretKey containing the JDBC password */}} {{- define "jdbc.secretPasswordKey" -}} {{- if .Values.postgresql.enabled -}} diff --git a/charts/sonarqube/CHANGELOG.md b/charts/sonarqube/CHANGELOG.md index cef1b89c2..3a6c50c49 100644 --- a/charts/sonarqube/CHANGELOG.md +++ b/charts/sonarqube/CHANGELOG.md @@ -7,6 +7,7 @@ All changes to this chart will be documented in this file. * Support Kubernetes v1.32 * Remove the default passcode provided with `monitoringPasscode` * Support Openshift v4.17 +* Improves editions and versions setting for sonarqube chart ## [10.8.1] * Update Chart's version to 10.8.1 diff --git a/charts/sonarqube/Chart.yaml b/charts/sonarqube/Chart.yaml index 85d3d223e..39d23cea7 100644 --- a/charts/sonarqube/Chart.yaml +++ b/charts/sonarqube/Chart.yaml @@ -40,6 +40,8 @@ annotations: description: "Remove the default passcode provided with 'monitoringPasscode'" - kind: changed description: "Support Openshift v4.17" + - kind: changed + description: "Improves editions and versions setting for sonarqube chart" artifacthub.io/containsSecurityUpdates: "false" artifacthub.io/images: | - name: sonarqube diff --git a/charts/sonarqube/README.md b/charts/sonarqube/README.md index 330280d7f..f6e653ce4 100644 --- a/charts/sonarqube/README.md +++ b/charts/sonarqube/README.md @@ -31,7 +31,7 @@ kubectl create namespace sonarqube helm upgrade --install -n sonarqube sonarqube sonarqube/sonarqube ``` -The above command deploys SonarQube on the Kubernetes cluster in the default configuration in the sonarqube namespace. +The above command deploys SonarQube on the Kubernetes cluster in the default configuration in the sonarqube namespace. If you are interested in deploying SonarQube on Openshift, please check the [dedicated section](#openshift). The [configuration](#configuration) section lists the parameters that can be configured during installation. @@ -43,7 +43,6 @@ The default login is admin/admin. The SonarQube Community Edition has been replaced by the SonarQube Community Build. If you want to install the SonarQube Community Build chart, please set `community.enabled` to `true`. The `community.buildNumber` parameter will be set to the latest Community Build. -The `community` value is deprecated and won't be supported for `edition` anymore. ## Installing the SonarQube 9.9 LTA chart @@ -146,9 +145,9 @@ For this reason, it is recommended to set Xmx to the ~80% of the total amount of Please find here the default SonarQube Xmx parameters to setup the memory requests and limits accordingly. -| Edition | Sum of Xmx | +| SonarQube Offering | Sum of Xmx | | ------------------ | ---------- | -| community edition | 1536M | +| community build | 1536M | | developer edition | 1536M | | enterprise edition | 5G | @@ -240,29 +239,29 @@ The following table lists the configurable parameters of the SonarQube chart and ### Global -| Parameter | Description | Default | -| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------ | -| `deploymentType` | (DEPRECATED) Deployment Type (supported values are `StatefulSet` or `Deployment`) | `StatefulSet` | -| `replicaCount` | Number of replicas deployed (supported values are 0 and 1) | `1` | -| `deploymentStrategy` | Deployment strategy. Setting the strategy type is deprecated and it will be hardcoded to `Recreate` | `{type: Recreate}` | -| `priorityClassName` | Schedule pods on priority (e.g. `high-priority`) | `None` | -| `schedulerName` | Kubernetes scheduler name | `None` | -| `affinity` | Node / Pod affinities | `{}` | -| `tolerations` | List of node taints to tolerate | `[]` | -| `nodeSelector` | Node labels for pod assignment | `{}` | -| `hostAliases` | Aliases for IPs in /etc/hosts | `[]` | -| `podLabels` | Map of labels to add to the pods | `{}` | -| `env` | Environment variables to attach to the pods | `{}` | -| `annotations` | SonarQube Pod annotations | `{}` | -| `edition` | SonarQube Edition to use (e.g. `community`, `developer` or `enterprise`). Please note that the default `community` value is deprecated. | `community` | -| `community.enabled` | Install SonarQube Community Build. When set to `true`, this parameter replaces `edition=community` | `true` | -| `community.buildNumber` | The SonarQube Community Build number to install | `24.12.0.100206` | -| `sonarWebContext` | SonarQube web context, also serve as default value for `ingress.path`, `account.sonarWebContext` and probes path. | `` | -| `httpProxySecret` | Should contain `http_proxy`, `https_proxy` and `no_proxy` keys, will superseed every other proxy variables | `` | -| `httpProxy` | HTTP proxy for downloading JMX agent and install plugins, will superseed initContainer specific http proxy variables | `` | -| `httpsProxy` | HTTPS proxy for downloading JMX agent and install plugins, will superseed initContainer specific https proxy variable | `` | -| `noProxy` | No proxy for downloading JMX agent and install plugins, will superseed initContainer specific no proxy variables | `` | -| `ingress-nginx.enabled` | Install Nginx Ingress Helm | `false` | +| Parameter | Description | Default | +| ----------------------- | --------------------------------------------------------------------------------------------------------------------- | ------------------ | +| `deploymentType` | (DEPRECATED) Deployment Type (supported values are `StatefulSet` or `Deployment`) | `StatefulSet` | +| `replicaCount` | Number of replicas deployed (supported values are 0 and 1) | `1` | +| `deploymentStrategy` | Deployment strategy. Setting the strategy type is deprecated and it will be hardcoded to `Recreate` | `{type: Recreate}` | +| `priorityClassName` | Schedule pods on priority (e.g. `high-priority`) | `None` | +| `schedulerName` | Kubernetes scheduler name | `None` | +| `affinity` | Node / Pod affinities | `{}` | +| `tolerations` | List of node taints to tolerate | `[]` | +| `nodeSelector` | Node labels for pod assignment | `{}` | +| `hostAliases` | Aliases for IPs in /etc/hosts | `[]` | +| `podLabels` | Map of labels to add to the pods | `{}` | +| `env` | Environment variables to attach to the pods | `{}` | +| `annotations` | SonarQube Pod annotations | `{}` | +| `edition` | SonarQube Edition to use (`developer` or `enterprise`). | `None` | +| `community.enabled` | Install SonarQube Community Build. When set to `true`, `edition` must not be set. | `false` | +| `community.buildNumber` | The SonarQube Community Build number to install | `24.12.0.100206` | +| `sonarWebContext` | SonarQube web context, also serve as default value for `ingress.path`, `account.sonarWebContext` and probes path. | `` | +| `httpProxySecret` | Should contain `http_proxy`, `https_proxy` and `no_proxy` keys, will supersede every other proxy variables | `` | +| `httpProxy` | HTTP proxy for downloading JMX agent and install plugins, will supersede initContainer specific http proxy variables | `` | +| `httpsProxy` | HTTPS proxy for downloading JMX agent and install plugins, will supersede initContainer specific https proxy variable | `` | +| `noProxy` | No proxy for downloading JMX agent and install plugins, will supersede initContainer specific no proxy variables | `` | +| `ingress-nginx.enabled` | Install Nginx Ingress Helm | `false` | ### NetworkPolicies diff --git a/charts/sonarqube/ci/cirrus-values.yaml b/charts/sonarqube/ci/cirrus-values.yaml index 20f1eb666..51ab637a8 100644 --- a/charts/sonarqube/ci/cirrus-values.yaml +++ b/charts/sonarqube/ci/cirrus-values.yaml @@ -1,3 +1,6 @@ +community: + enabled: true + image: pullSecrets: - name: pullsecret diff --git a/charts/sonarqube/openshift-verifier/values.yaml b/charts/sonarqube/openshift-verifier/values.yaml index a85420e17..7444181f8 100644 --- a/charts/sonarqube/openshift-verifier/values.yaml +++ b/charts/sonarqube/openshift-verifier/values.yaml @@ -1,3 +1,6 @@ +community: + enabled: true + OpenShift: enabled: true route: diff --git a/charts/sonarqube/templates/_helpers.tpl b/charts/sonarqube/templates/_helpers.tpl index 971011f20..42a25d8f1 100644 --- a/charts/sonarqube/templates/_helpers.tpl +++ b/charts/sonarqube/templates/_helpers.tpl @@ -58,17 +58,39 @@ Expand the Application Image name. {{/* Define the image.tag value that computes the right tag to be used as `sonarqube.image` + The tag is derived from the following parameters: + - .Values.image.tag + - .Values.community.enabled + - .Values.community.buildNumber + - .Values.edition + - .Chart.AppVersion + + The logic to generate the tag is as follows: + There should not be a default edition, with users that specify it. + The edition must be one of these values: developer/enterprise. + When “edition“ is used and “image.tag” is not, we use “appVersion” for paid editions and the latest release of SQ-CB for the community. + The CI supports the release of the Server edition. */}} {{- define "image.tag" -}} -{{- if empty .Values.image.tag -}} -{{- if and (not (empty .Values.edition)) (or (eq .Values.edition "developer") (eq .Values.edition "enterprise")) -}} -{{- printf "%s-%s" .Chart.AppVersion .Values.edition -}} -{{- else if or (.Values.community.enabled) (and (not (empty .Values.edition)) (eq .Values.edition "community")) -}} -{{- printf "%s-%s" .Values.community.buildNumber "community" -}} -{{- end -}} -{{- else -}} -{{- .Values.image.tag -}} -{{- end -}} + {{- $imageTag := "" -}} + {{- if not (empty .Values.edition) -}} + {{- if or (empty .Values.image) (empty .Values.image.tag) -}} + {{- $imageTag = printf "%s-%s" .Chart.AppVersion .Values.edition -}} + {{- else -}} + {{- $imageTag = printf "%s" .Values.image.tag -}} + {{- end -}} + {{- else if (and (.Values.community) .Values.community.enabled) -}} + {{- if or (empty .Values.image) (empty .Values.image.tag) -}} + {{- if not (empty .Values.community.buildNumber) -}} + {{- $imageTag = printf "%s-%s" .Values.community.buildNumber "community" -}} + {{- else -}} + {{- $imageTag = printf "community" -}} + {{- end -}} + {{- else -}} + {{- $imageTag = printf "%s" .Values.image.tag -}} + {{- end -}} + {{- end -}} + {{- printf "%s" $imageTag -}} {{- end -}} {{/* @@ -431,4 +453,4 @@ Remove incompatible user/group values that do not work in Openshift out of the b {{- $accountDeprecation := (include "deepMerge" (dict "map1" $map1 "map2" $map2)) -}} {{- $accountDeprecation }} -{{- end -}} \ No newline at end of file +{{- end -}} diff --git a/charts/sonarqube/templates/validation.yaml b/charts/sonarqube/templates/validation.yaml index 0c9042425..e625a4d2a 100644 --- a/charts/sonarqube/templates/validation.yaml +++ b/charts/sonarqube/templates/validation.yaml @@ -1,3 +1,29 @@ +{{/* +This file is for validating the values.yaml file. +It is used to validate the values.yaml file before the installation starts. +*/}} +{{- define "sonarqube.fail" -}} +{{- printf "\n ** The values.yaml file is not valid. ** \n %s\n" . | fail -}} +{{- end -}} + +{{/* +* Validates the monitoring passcode logic. +*/}} {{- if or (and (not .Values.monitoringPasscode) (not .Values.monitoringPasscodeSecretName) (not .Values.monitoringPasscodeSecretKey)) (and (not .Values.monitoringPasscodeSecretName) .Values.monitoringPasscodeSecretKey) (and .Values.monitoringPasscodeSecretName (not .Values.monitoringPasscodeSecretKey)) -}} -{{- fail "\n ** The values.yaml file is not valid. ** \n Please provide a passcode either setting \"monitoringPasscode\" or \"monitoringPasscodeSecretName\" and \"monitoringPasscodeSecretKey\"" -}} +{{- include "sonarqube.fail" "Please provide a passcode either setting \"monitoringPasscode\" or \"monitoringPasscodeSecretName\" and \"monitoringPasscodeSecretKey\"" -}} +{{- end -}} + +{{/* +* Validates the community.enabled, edition, and tag logic. +*/}} +{{- if eq .Values.edition "community" -}} + {{- include "sonarqube.fail" "'community' is not a valid edition. If you want to use SonarQube Community Build, unset 'edition' and set 'community.enabled=true' instead." -}} +{{- else if and (.Values.community.enabled) (not (empty .Values.edition)) -}} + {{- include "sonarqube.fail" "You can't set 'community.enabled=true' and an 'edition' at the same time." -}} +{{- else if not .Values.community.enabled -}} + {{- if empty .Values.edition -}} + {{- include "sonarqube.fail" "You must choose an 'edition' to install: 'developer' or 'enterprise'.\nIf you want to use SonarQube Community Build, unset 'edition' and set 'community.enabled=true' instead." -}} + {{- else if not (has .Values.edition (list "developer" "enterprise")) -}} + {{- include "sonarqube.fail" "The 'edition' must be either 'developer' or 'enterprise'." -}} + {{- end -}} {{- end -}} diff --git a/charts/sonarqube/values.schema.json b/charts/sonarqube/values.schema.json index 9af8e8afb..5da5b2afa 100644 --- a/charts/sonarqube/values.schema.json +++ b/charts/sonarqube/values.schema.json @@ -4,17 +4,6 @@ "replicaCount" ], "properties": { - "edition": { - "type": "string", - "enum": ["community", "developer", "enterprise"], - "properties": { - "community": { - "type": "string", - "deprecated": true, - "$comment": "(DEPRECATED) Please use `community.enabled` instead" - } - } - }, "persistence": { "type": "object", "properties": { @@ -40,8 +29,7 @@ } } }, - "OpenShift": - { + "OpenShift": { "type": "object", "properties": { "createSCC": { @@ -98,7 +86,10 @@ }, "replicaCount": { "type": "integer", - "enum": [0, 1] + "enum": [ + 0, + 1 + ] }, "jvmOpts": { "type": "string", @@ -172,20 +163,17 @@ "deprecated": true, "$comment": "(DEPRECATED) this option will be removed in the next major release" }, - "curlContainerImage": - { + "curlContainerImage": { "type": "string", "deprecated": true, "$comment": "(DEPRECATED) please use `setAdminPassword.image` at the value top level" }, - "adminJobAnnotations": - { + "adminJobAnnotations": { "type": "object", "deprecated": true, "$comment": "(DEPRECATED) please use `setAdminPassword.annotations` at the value top level" }, - "sonarqubeFolder": - { + "sonarqubeFolder": { "type": "string", "deprecated": true, "$comment": "(DEPRECATED) This value will is no longer required and will be dropped in future releases" @@ -206,4 +194,4 @@ } } } - } +} diff --git a/charts/sonarqube/values.yaml b/charts/sonarqube/values.yaml index 7a13b3d45..37461cfd0 100644 --- a/charts/sonarqube/values.yaml +++ b/charts/sonarqube/values.yaml @@ -48,19 +48,17 @@ OpenShift: # labels: # external: 'true' -# (DEPRECATED) The "community" value as the default of "edition" is deprecated and will be removed in the next release (in favor of an empty value). Please set "community" to "true", if you want to use SonarQube Community Build. -edition: "community" +# Configure the edition of SonarQube Server to deploy: developer or enterprise +# edition: "" # Set the chart to use the latest released SonarQube Community Build community: - enabled: true + enabled: false buildNumber: "24.12.0.100206" image: repository: sonarqube - # (DEPRECATED) The "image.tag" parameter is set to be empty as default. - # image.tag is set according to the edition and community fields, user-defined have precedance. - # tag: 10.8.1-{{ .Values.edition }} + # tag: "" pullPolicy: IfNotPresent # If using a private repository, the imagePullSecrets to use # pullSecrets: diff --git a/tests/dynamic-compatibility-test/README.md b/tests/dynamic-compatibility-test/README.md index 5a18ace01..9e0fc6e0f 100644 --- a/tests/dynamic-compatibility-test/README.md +++ b/tests/dynamic-compatibility-test/README.md @@ -1,9 +1,17 @@ -## Execute tests +# Execute tests -In order to execute the dynamic compability test locally, you need to have a k8s cluster running (configurations stored in the default folder), go (at least version 1.13). +## Dynamic compatibility tests -When the pre-requisites are fullfilled, just run: +In order to execute the dynamic compatibility test locally, you need to have a k8s cluster running (configurations stored in the default folder), go (at least version 1.22). -``` +When the pre-requisites are fulfilled, just run: + +```bash go test -timeout=0 -v sonarqube_standard_dynamic_test.go pod_utils.go -``` \ No newline at end of file +``` + +## Schema validation tests + +```bash +go test -v schema_test.go +``` diff --git a/tests/dynamic-compatibility-test/go.mod b/tests/dynamic-compatibility-test/go.mod index 30c9fb9eb..72b6b0bed 100644 --- a/tests/dynamic-compatibility-test/go.mod +++ b/tests/dynamic-compatibility-test/go.mod @@ -1,73 +1,92 @@ module github.com/gruntwork-io/terratest-helm-testing-example/test -go 1.21 - -toolchain go1.22.2 +go 1.22.0 require ( github.com/gruntwork-io/terratest v0.46.16 github.com/stretchr/testify v1.9.0 + k8s.io/api v0.31.3 + k8s.io/apimachinery v0.31.3 ) require ( + github.com/BurntSushi/toml v1.3.2 // indirect github.com/aws/aws-sdk-go v1.44.122 // indirect github.com/boombuler/barcode v1.0.1 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/emicklei/go-restful/v3 v3.9.0 // indirect - github.com/go-errors/errors v1.0.2-0.20180813162953-d98b870cc4e0 // indirect - github.com/go-logr/logr v1.2.4 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect + github.com/ghodss/yaml v1.0.0 // indirect + github.com/go-errors/errors v1.4.2 // indirect + github.com/go-logr/logr v1.4.2 // indirect github.com/go-openapi/jsonpointer v0.19.6 // indirect github.com/go-openapi/jsonreference v0.20.2 // indirect - github.com/go-openapi/swag v0.22.3 // indirect + github.com/go-openapi/swag v0.22.4 // indirect github.com/go-sql-driver/mysql v1.4.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/protobuf v1.5.3 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/gonvenience/bunt v1.3.5 // indirect + github.com/gonvenience/neat v1.3.12 // indirect + github.com/gonvenience/term v1.0.2 // indirect + github.com/gonvenience/text v1.0.7 // indirect + github.com/gonvenience/wrap v1.1.2 // indirect + github.com/gonvenience/ytbx v1.4.4 // indirect github.com/google/gnostic-models v0.6.8 // indirect - github.com/google/go-cmp v0.5.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect - github.com/google/pprof v0.0.0-20230602150820-91b7bce49751 // indirect - github.com/google/uuid v1.3.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/gorilla/websocket v1.5.0 // indirect github.com/gruntwork-io/go-commons v0.8.0 // indirect - github.com/hashicorp/errwrap v1.0.0 // indirect - github.com/hashicorp/go-multierror v1.1.0 // indirect - github.com/imdario/mergo v0.3.11 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/homeport/dyff v1.6.0 // indirect + github.com/imdario/mergo v0.3.16 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mailru/easyjson v0.7.7 // indirect + github.com/mattn/go-ciede2000 v0.0.0-20170301095244-782e8c62fec3 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-zglob v0.0.2-0.20190814121620-e3c945676326 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect - github.com/moby/spdystream v0.2.0 // indirect + github.com/mitchellh/go-ps v1.0.0 // indirect + github.com/mitchellh/hashstructure v1.1.0 // indirect + github.com/moby/spdystream v0.4.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/onsi/ginkgo/v2 v2.13.0 // indirect - github.com/onsi/gomega v1.28.0 // indirect - github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect + github.com/onsi/gomega v1.33.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect github.com/pquerna/otp v1.2.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/sergi/go-diff v1.3.1 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/urfave/cli v1.22.2 // indirect + github.com/texttheater/golang-levenshtein v1.0.1 // indirect + github.com/urfave/cli v1.22.12 // indirect + github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 // indirect + github.com/x448/float16 v0.8.4 // indirect golang.org/x/crypto v0.31.0 // indirect - golang.org/x/net v0.33.0 // indirect - golang.org/x/oauth2 v0.8.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect + golang.org/x/sync v0.10.0 // indirect golang.org/x/sys v0.28.0 // indirect golang.org/x/term v0.27.0 // indirect golang.org/x/text v0.21.0 // indirect golang.org/x/time v0.3.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.33.0 // indirect + google.golang.org/protobuf v1.34.2 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/api v0.28.4 // indirect - k8s.io/apimachinery v0.28.4 // indirect - k8s.io/client-go v0.28.4 // indirect - k8s.io/klog/v2 v2.100.1 // indirect - k8s.io/kube-openapi v0.0.0-20230717233707-2695361300d9 // indirect - k8s.io/utils v0.0.0-20230406110748-d93618cff8a2 // indirect + k8s.io/client-go v0.31.3 // indirect + k8s.io/klog/v2 v2.130.1 // indirect + k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect + k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect - sigs.k8s.io/yaml v1.3.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/tests/dynamic-compatibility-test/go.sum b/tests/dynamic-compatibility-test/go.sum new file mode 100644 index 000000000..400ff27bb --- /dev/null +++ b/tests/dynamic-compatibility-test/go.sum @@ -0,0 +1,283 @@ +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/aws/aws-sdk-go v1.44.122 h1:p6mw01WBaNpbdP2xrisz5tIkcNwzj/HysobNoaAHjgo= +github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs= +github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= +github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= +github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= +github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/gonvenience/bunt v1.3.5 h1:wSQquifvwEWtzn27k1ngLfeLaStyt0k1b/K6TrlCNAs= +github.com/gonvenience/bunt v1.3.5/go.mod h1:7ApqkVBEWvX04oJ28Q2WeI/BvJM6VtukaJAU/q/pTs8= +github.com/gonvenience/neat v1.3.12 h1:xwIyRbJcG9LgcDYys+HHLH9DqqHeQsUpS5CfBUeskbs= +github.com/gonvenience/neat v1.3.12/go.mod h1:8OljAIgPelN0uPPO94VBqxK+Kz98d6ZFwHDg5o/PfkE= +github.com/gonvenience/term v1.0.2 h1:qKa2RydbWIrabGjR/fegJwpW5m+JvUwFL8mLhHzDXn0= +github.com/gonvenience/term v1.0.2/go.mod h1:wThTR+3MzWtWn7XGVW6qQ65uaVf8GHED98KmwpuEQeo= +github.com/gonvenience/text v1.0.7 h1:YmIqmgTwxnACYCG59DykgMbomwteYyNhAmEUEJtPl14= +github.com/gonvenience/text v1.0.7/go.mod h1:OAjH+mohRszffLY6OjgQcUXiSkbrIavooFpfIt1ZwAs= +github.com/gonvenience/wrap v1.1.2 h1:xPKxNwL1HCguwyM+HlP/1CIuc9LRd7k8RodLwe9YTZA= +github.com/gonvenience/wrap v1.1.2/go.mod h1:GiryBSXoI3BAAhbWD1cZVj7RZmtiu0ERi/6R6eJfslI= +github.com/gonvenience/ytbx v1.4.4 h1:jQopwyaLsVGuwdxSiN4WkXjsEaFNPJ3V4lUj7eyEpzo= +github.com/gonvenience/ytbx v1.4.4/go.mod h1:w37+MKCPcCMY/jpPNmEklD4xKqrOAVBO6kIWW2+uI6M= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gruntwork-io/go-commons v0.8.0 h1:k/yypwrPqSeYHevLlEDmvmgQzcyTwrlZGRaxEM6G0ro= +github.com/gruntwork-io/go-commons v0.8.0/go.mod h1:gtp0yTtIBExIZp7vyIV9I0XQkVwiQZze678hvDXof78= +github.com/gruntwork-io/terratest v0.46.16 h1:l+HHuU7lNLwoAl2sP8zkYJy0uoE2Mwha2nw+rim+OhQ= +github.com/gruntwork-io/terratest v0.46.16/go.mod h1:oywHw1cFKXSYvKPm27U7quZVzDUlA22H2xUrKCe26xM= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/homeport/dyff v1.6.0 h1:AN+ikld0Fy+qx34YE7655b/bpWuxS6cL9k852pE2GUc= +github.com/homeport/dyff v1.6.0/go.mod h1:FlAOFYzeKvxmU5nTrnG+qrlJVWpsFew7pt8L99p5q8k= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mattn/go-ciede2000 v0.0.0-20170301095244-782e8c62fec3 h1:BXxTozrOU8zgC5dkpn3J6NTRdoP+hjok/e+ACr4Hibk= +github.com/mattn/go-ciede2000 v0.0.0-20170301095244-782e8c62fec3/go.mod h1:x1uk6vxTiVuNt6S5R2UYgdhpj3oKojXvOXauHZ7dEnI= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-zglob v0.0.1/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo= +github.com/mattn/go-zglob v0.0.2-0.20190814121620-e3c945676326 h1:ofNAzWCcyTALn2Zv40+8XitdzCgXY6e9qvXwN9W0YXg= +github.com/mattn/go-zglob v0.0.2-0.20190814121620-e3c945676326/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= +github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= +github.com/mitchellh/hashstructure v1.1.0 h1:P6P1hdjqAAknpY/M1CGipelZgp+4y9ja9kmUZPXP+H0= +github.com/mitchellh/hashstructure v1.1.0/go.mod h1:xUDAozZz0Wmdiufv0uyhnHkUTN6/6d8ulp4AwfLKrmA= +github.com/moby/spdystream v0.4.0 h1:Vy79D6mHeJJjiPdFEL2yku1kl0chZpJfZcPpb16BRl8= +github.com/moby/spdystream v0.4.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= +github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= +github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= +github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pquerna/otp v1.2.0 h1:/A3+Jn+cagqayeR3iHs/L62m5ue7710D35zl1zJ1kok= +github.com/pquerna/otp v1.2.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= +github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= +github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli v1.22.12 h1:igJgVw1JdKH+trcLWLeLwZjU9fEfPesQ+9/e4MQ44S8= +github.com/urfave/cli v1.22.12/go.mod h1:sSBEIC79qR6OvcmsD4U3KABeOTxDqQtdDnaFuUN30b8= +github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 h1:JwtAtbp7r/7QSyGz8mKUbYJBg2+6Cd7OjM8o/GNOcVo= +github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74/go.mod h1:RmMWU37GKR2s6pgrIEB4ixgpVCt/cf7dnJv3fuH1J1c= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.31.0 h1:ihbySMvVjLAeSH1IbfcRTkD/iNscyz8rGzjF/E5hV6U= +golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA= +golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q= +golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= +k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= +k8s.io/apimachinery v0.31.3 h1:6l0WhcYgasZ/wk9ktLq5vLaoXJJr5ts6lkaQzgeYPq4= +k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/client-go v0.31.3 h1:CAlZuM+PH2cm+86LOBemaJI/lQ5linJ6UFxKX/SoG+4= +k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/tests/dynamic-compatibility-test/sonarqube/all-values.yaml b/tests/dynamic-compatibility-test/sonarqube/all-values.yaml index 3bc55d05f..0e769e751 100644 --- a/tests/dynamic-compatibility-test/sonarqube/all-values.yaml +++ b/tests/dynamic-compatibility-test/sonarqube/all-values.yaml @@ -1,4 +1,6 @@ # tests/unit-compatibility-test/sonarqube/change-admin-password-hook-values.yaml +edition: enterprise + account: adminPassword: admin1 currentAdminPassword: admin diff --git a/tests/dynamic-compatibility-test/sonarqube_standard_dynamic_test.go b/tests/dynamic-compatibility-test/sonarqube_standard_dynamic_test.go index a9a203433..a0d87ce0a 100644 --- a/tests/dynamic-compatibility-test/sonarqube_standard_dynamic_test.go +++ b/tests/dynamic-compatibility-test/sonarqube_standard_dynamic_test.go @@ -62,9 +62,11 @@ func TestSonarQubeChartDynamicCompatibility(t *testing.T) { {"standard-chart-default-values-deployment", "sonarqube", 2, map[string]string{TESTS_ENABLING_ACTION: "false", "deploymentType": "Deployment", "prometheusExporter.enabled": "false", // only for deployment + "edition": "enterprise", }, []string{"../../charts/sonarqube/values.yaml"}}, - {"standard-chart-default-values-sts", "sonarqube", 2, map[string]string{TESTS_ENABLING_ACTION: "false"}, + {"standard-chart-default-values-sts", "sonarqube", 2, map[string]string{TESTS_ENABLING_ACTION: "false", + "edition": "enterprise"}, []string{"../../charts/sonarqube/values.yaml"}}, {"standard-chart-all-values-deployment", "sonarqube", 2, map[string]string{TESTS_ENABLING_ACTION: "false", diff --git a/tests/unit-compatibility-test/README.md b/tests/unit-compatibility-test/README.md index dfa07ac08..0bcc9da6c 100644 --- a/tests/unit-compatibility-test/README.md +++ b/tests/unit-compatibility-test/README.md @@ -20,6 +20,7 @@ KUBE_VERSION=1.19.6 ../../.cirrus/unit_helm_compatibility_test.sh ``` ## Fixtures + The fixtures test's goal is to make sure the behavior of our templating stays the same between changes, catching regressions, and making sure any changes are explicitly seen and reviewed. -They use a pre-commit hook to template our chart against the unit compatibility test values; then dev commits the resulting yamls. That will allow PR review to ensure we have not introduced unwanted changes. \ No newline at end of file +They use a pre-commit hook to template our chart against the unit compatibility test values; then dev commits the resulting yamls. That will allow PR review to ensure we have not introduced unwanted changes. diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/ca-certificates-configmap.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/ca-certificates-configmap.yaml index aec962182..07f6a4276 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/ca-certificates-configmap.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/ca-certificates-configmap.yaml @@ -404,7 +404,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: ca-certificates-configmap.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -429,7 +429,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -445,7 +445,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/ca-certificates-configmap.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: ca-certs - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent command: ["sh"] args: ["-c", "cp -f \"${JAVA_HOME}/lib/security/cacerts\" /tmp/certs/cacerts; if [ \"$(ls /tmp/secrets/ca-certs)\" ]; then for f in /tmp/secrets/ca-certs/*; do keytool -importcert -file \"${f}\" -alias \"$(basename \"${f}\")\" -keystore /tmp/certs/cacerts -storepass changeit -trustcacerts -noprompt; done; fi;"] @@ -474,7 +474,7 @@ spec: - name: SONAR_CE_JAVAOPTS value: -Djavax.net.ssl.trustStore=/opt/sonarqube/certs/cacerts - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -492,7 +492,7 @@ spec: - name: SONAR_CE_JAVAOPTS value: -Djavax.net.ssl.trustStore=/opt/sonarqube/certs/cacerts - name: install-oracle-jdbc-driver - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent command: ["sh", "-e", "/tmp/scripts/install_oracle_jdbc_driver.sh"] securityContext: @@ -525,7 +525,7 @@ spec: value: -Djavax.net.ssl.trustStore=/opt/sonarqube/certs/cacerts containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -676,7 +676,7 @@ spec: automountServiceAccountToken: false containers: - name: ca-certificates-configmap.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/ca-certificates-secret.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/ca-certificates-secret.yaml index d8ba94e25..e6ba661e3 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/ca-certificates-secret.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/ca-certificates-secret.yaml @@ -388,7 +388,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: ca-certificates-secret.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -413,7 +413,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -429,7 +429,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/ca-certificates-secret.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: ca-certs - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent command: ["sh"] args: ["-c", "cp -f \"${JAVA_HOME}/lib/security/cacerts\" /tmp/certs/cacerts; if [ \"$(ls /tmp/secrets/ca-certs)\" ]; then for f in /tmp/secrets/ca-certs/*; do keytool -importcert -file \"${f}\" -alias \"$(basename \"${f}\")\" -keystore /tmp/certs/cacerts -storepass changeit -trustcacerts -noprompt; done; fi;"] @@ -458,7 +458,7 @@ spec: - name: SONAR_CE_JAVAOPTS value: -Djavax.net.ssl.trustStore=/opt/sonarqube/certs/cacerts - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -477,7 +477,7 @@ spec: value: -Djavax.net.ssl.trustStore=/opt/sonarqube/certs/cacerts containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -611,7 +611,7 @@ spec: automountServiceAccountToken: false containers: - name: ca-certificates-secret.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/change-admin-password-hook-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/change-admin-password-hook-values.yaml index 2010749fa..7c420d989 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/change-admin-password-hook-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/change-admin-password-hook-values.yaml @@ -402,7 +402,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: change-admin-password-hook-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -427,7 +427,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -443,7 +443,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/change-admin-password-hook-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -462,7 +462,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -593,7 +593,7 @@ spec: automountServiceAccountToken: false containers: - name: change-admin-password-hook-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/config-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/config-values.yaml index 5f9937488..0c8e30336 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/config-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/config-values.yaml @@ -392,7 +392,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: config-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -417,7 +417,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -433,7 +433,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/config-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -451,7 +451,7 @@ spec: - name: SONAR_CE_JAVAOPTS value: "" - name: concat-properties - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent command: - sh @@ -496,7 +496,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -657,7 +657,7 @@ spec: automountServiceAccountToken: false containers: - name: config-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/default-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/default-values.yaml index d5e222537..f7e1b030a 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/default-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/default-values.yaml @@ -388,7 +388,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: default-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -413,7 +413,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -429,7 +429,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/default-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -448,7 +448,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -579,7 +579,7 @@ spec: automountServiceAccountToken: false containers: - name: default-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/deployment-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/deployment-values.yaml index b365cba1a..2b090ac62 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/deployment-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/deployment-values.yaml @@ -227,7 +227,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: deployment-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -253,7 +253,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -269,7 +269,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/deployment-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -288,7 +288,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -580,7 +580,7 @@ spec: automountServiceAccountToken: false containers: - name: deployment-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/duplicated-env-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/duplicated-env-values.yaml index 98d8a2acb..b5088a865 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/duplicated-env-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/duplicated-env-values.yaml @@ -418,7 +418,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: duplicated-env-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -445,7 +445,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -461,7 +461,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/duplicated-env-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -486,7 +486,7 @@ spec: value: -javaagent:/opt/sonarqube/data/jmx_prometheus_javaagent.jar=8001:/opt/sonarqube/conf/prometheus-ce-config.yaml -Xms2G -Xmx2G -DsomeOption=some/Value - name: inject-prometheus-exporter - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -536,7 +536,7 @@ spec: -Xms2G -Xmx2G -DsomeOption=some/Value containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -698,7 +698,7 @@ spec: automountServiceAccountToken: false containers: - name: duplicated-env-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/http-routes-default-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/http-routes-default-values.yaml index 956f7b5cc..edbb2f670 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/http-routes-default-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/http-routes-default-values.yaml @@ -388,7 +388,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: http-routes-default-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -413,7 +413,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -429,7 +429,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/http-routes-default-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -448,7 +448,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -604,7 +604,7 @@ spec: automountServiceAccountToken: false containers: - name: http-routes-default-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/http-routes-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/http-routes-values.yaml index 830465f7f..e5eecedae 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/http-routes-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/http-routes-values.yaml @@ -388,7 +388,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: http-routes-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -413,7 +413,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -429,7 +429,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/http-routes-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -448,7 +448,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -604,7 +604,7 @@ spec: automountServiceAccountToken: false containers: - name: http-routes-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/ingress-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/ingress-values.yaml index 86b7c4f79..5a13a631f 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/ingress-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/ingress-values.yaml @@ -388,7 +388,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: ingress-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -413,7 +413,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -429,7 +429,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/ingress-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -448,7 +448,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -612,7 +612,7 @@ spec: automountServiceAccountToken: false containers: - name: ingress-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/ingress-with-controller.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/ingress-with-controller.yaml index 3172f71ee..7c6f49a28 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/ingress-with-controller.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/ingress-with-controller.yaml @@ -830,7 +830,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: ingress-with-controller.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -855,7 +855,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -871,7 +871,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/ingress-with-controller.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -890,7 +890,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -1235,7 +1235,7 @@ spec: automountServiceAccountToken: false containers: - name: ingress-with-controller.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/install-plugins-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/install-plugins-values.yaml index ef3d09109..46f2f4f60 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/install-plugins-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/install-plugins-values.yaml @@ -391,7 +391,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: install-plugins-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -416,7 +416,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -432,7 +432,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/install-plugins-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -450,7 +450,7 @@ spec: - name: SONAR_CE_JAVAOPTS value: "" - name: install-plugins - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent command: ["sh", "-e", "/tmp/scripts/install_plugins.sh"] securityContext: @@ -494,7 +494,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -631,7 +631,7 @@ spec: automountServiceAccountToken: false containers: - name: install-plugins-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/jdbc-config-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/jdbc-config-values.yaml index 2ea3949bd..34e0fd52a 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/jdbc-config-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/jdbc-config-values.yaml @@ -388,7 +388,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: jdbc-config-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -413,7 +413,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -429,7 +429,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/jdbc-config-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -448,7 +448,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -579,7 +579,7 @@ spec: automountServiceAccountToken: false containers: - name: jdbc-config-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/networkpolicy-new-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/networkpolicy-new-values.yaml index 4fb1eaf13..e85836ff9 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/networkpolicy-new-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/networkpolicy-new-values.yaml @@ -510,7 +510,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: networkpolicy-new-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -535,7 +535,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -551,7 +551,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/networkpolicy-new-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -570,7 +570,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -701,7 +701,7 @@ spec: automountServiceAccountToken: false containers: - name: networkpolicy-new-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/networkpolicy-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/networkpolicy-values.yaml index 758a80a3f..4e0ed6763 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/networkpolicy-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/networkpolicy-values.yaml @@ -510,7 +510,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: networkpolicy-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -535,7 +535,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -551,7 +551,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/networkpolicy-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -570,7 +570,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -701,7 +701,7 @@ spec: automountServiceAccountToken: false containers: - name: networkpolicy-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/non-default-security-context-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/non-default-security-context-values.yaml index 14e0febcf..8a4ff2b4a 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/non-default-security-context-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/non-default-security-context-values.yaml @@ -435,7 +435,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: non-default-security-context-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -462,7 +462,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -478,7 +478,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/non-default-security-context-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -496,7 +496,7 @@ spec: - name: SONAR_CE_JAVAOPTS value: -javaagent:/opt/sonarqube/data/jmx_prometheus_javaagent.jar=8001:/opt/sonarqube/conf/prometheus-ce-config.yaml - name: inject-prometheus-exporter - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -538,7 +538,7 @@ spec: - name: SONAR_CE_JAVAOPTS value: -javaagent:/opt/sonarqube/data/jmx_prometheus_javaagent.jar=8001:/opt/sonarqube/conf/prometheus-ce-config.yaml - name: install-plugins - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent command: ["sh", "-e", "/tmp/scripts/install_plugins.sh"] securityContext: @@ -582,7 +582,7 @@ spec: value: -javaagent:/opt/sonarqube/data/jmx_prometheus_javaagent.jar=8001:/opt/sonarqube/conf/prometheus-ce-config.yaml containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -743,7 +743,7 @@ spec: automountServiceAccountToken: false containers: - name: non-default-security-context-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/openshift-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/openshift-values.yaml index 85e02f941..539f2c22d 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/openshift-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/openshift-values.yaml @@ -341,7 +341,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: openshift-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -365,7 +365,7 @@ spec: {} initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -380,7 +380,7 @@ spec: args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/openshift-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -527,7 +527,7 @@ spec: automountServiceAccountToken: false containers: - name: openshift-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/prometheus-monitoring-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/prometheus-monitoring-values.yaml index cb6f2243b..6aaab8f46 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/prometheus-monitoring-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/prometheus-monitoring-values.yaml @@ -388,7 +388,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: prometheus-monitoring-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -413,7 +413,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -429,7 +429,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/prometheus-monitoring-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -448,7 +448,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -606,7 +606,7 @@ spec: automountServiceAccountToken: false containers: - name: prometheus-monitoring-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/proxies-secret-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/proxies-secret-values.yaml index fc535c34a..e45cd68f9 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/proxies-secret-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/proxies-secret-values.yaml @@ -391,7 +391,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: proxies-secret-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -416,7 +416,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -432,7 +432,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/proxies-secret-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -450,7 +450,7 @@ spec: - name: SONAR_CE_JAVAOPTS value: "" - name: install-plugins - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent command: ["sh", "-e", "/tmp/scripts/install_plugins.sh"] securityContext: @@ -494,7 +494,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -631,7 +631,7 @@ spec: automountServiceAccountToken: false containers: - name: proxies-secret-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/proxies-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/proxies-values.yaml index e3897f507..b662f9c0c 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/proxies-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/proxies-values.yaml @@ -421,7 +421,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: proxies-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -448,7 +448,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -464,7 +464,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/proxies-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -482,7 +482,7 @@ spec: - name: SONAR_CE_JAVAOPTS value: -javaagent:/opt/sonarqube/data/jmx_prometheus_javaagent.jar=8001:/opt/sonarqube/conf/prometheus-ce-config.yaml - name: inject-prometheus-exporter - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -524,7 +524,7 @@ spec: - name: SONAR_CE_JAVAOPTS value: -javaagent:/opt/sonarqube/data/jmx_prometheus_javaagent.jar=8001:/opt/sonarqube/conf/prometheus-ce-config.yaml - name: install-plugins - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent command: ["sh", "-e", "/tmp/scripts/install_plugins.sh"] securityContext: @@ -568,7 +568,7 @@ spec: value: -javaagent:/opt/sonarqube/data/jmx_prometheus_javaagent.jar=8001:/opt/sonarqube/conf/prometheus-ce-config.yaml containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -729,7 +729,7 @@ spec: automountServiceAccountToken: false containers: - name: proxies-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/pvc-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/pvc-values.yaml index 2ae1ab3b7..23e1b3e47 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/pvc-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/pvc-values.yaml @@ -423,7 +423,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: pvc-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -449,7 +449,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -465,7 +465,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/pvc-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -483,7 +483,7 @@ spec: - name: SONAR_CE_JAVAOPTS value: "" - name: init-fs - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: capabilities: @@ -518,7 +518,7 @@ spec: subPath: extensions containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -655,7 +655,7 @@ spec: automountServiceAccountToken: false containers: - name: pvc-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/secret-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/secret-values.yaml index 9df3093ff..e2434c2c5 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/secret-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/secret-values.yaml @@ -184,7 +184,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: secret-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -209,7 +209,7 @@ spec: fsGroup: 0 initContainers: - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -228,7 +228,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -359,7 +359,7 @@ spec: automountServiceAccountToken: false containers: - name: secret-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/service-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/service-values.yaml index a67d94a49..7f1622c14 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/service-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/service-values.yaml @@ -395,7 +395,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: service-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -420,7 +420,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -436,7 +436,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/service-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -455,7 +455,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -586,7 +586,7 @@ spec: automountServiceAccountToken: false containers: - name: service-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/serviceaccount-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/serviceaccount-values.yaml index bf8321820..107e3063c 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/serviceaccount-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/serviceaccount-values.yaml @@ -402,7 +402,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: serviceaccount-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -427,7 +427,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -443,7 +443,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/serviceaccount-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -462,7 +462,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -593,7 +593,7 @@ spec: automountServiceAccountToken: false containers: - name: serviceaccount-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/sonar-web-context-deployment-deprecated-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/sonar-web-context-deployment-deprecated-values.yaml index aa33f9c93..862ec0771 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/sonar-web-context-deployment-deprecated-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/sonar-web-context-deployment-deprecated-values.yaml @@ -241,7 +241,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: sonar-web-context-deployment-deprecated-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -267,7 +267,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -283,7 +283,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/sonar-web-context-deployment-deprecated-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -302,7 +302,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -617,7 +617,7 @@ spec: automountServiceAccountToken: false containers: - name: sonar-web-context-deployment-deprecated-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ @@ -667,7 +667,7 @@ spec: serviceAccountName: default containers: - name: sonar-web-context-deployment-deprecated-values.yaml-sonarqube-change-default-admin-password - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/sonar-web-context-sts-deprecated-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/sonar-web-context-sts-deprecated-values.yaml index e0ccd8d36..bc82aa9a0 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/sonar-web-context-sts-deprecated-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/sonar-web-context-sts-deprecated-values.yaml @@ -402,7 +402,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: sonar-web-context-sts-deprecated-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -427,7 +427,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -443,7 +443,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/sonar-web-context-sts-deprecated-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -462,7 +462,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -616,7 +616,7 @@ spec: automountServiceAccountToken: false containers: - name: sonar-web-context-sts-deprecated-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ @@ -666,7 +666,7 @@ spec: serviceAccountName: default containers: - name: sonar-web-context-sts-deprecated-values.yaml-sonarqube-change-default-admin-password - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/sonar-web-context-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/sonar-web-context-values.yaml index 109567e21..a00ed1c90 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/sonar-web-context-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/sonar-web-context-values.yaml @@ -402,7 +402,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: sonar-web-context-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -427,7 +427,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -443,7 +443,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/sonar-web-context-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -462,7 +462,7 @@ spec: value: "" containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -616,7 +616,7 @@ spec: automountServiceAccountToken: false containers: - name: sonar-web-context-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ @@ -666,7 +666,7 @@ spec: serviceAccountName: default containers: - name: sonar-web-context-values.yaml-sonarqube-change-default-admin-password - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise securityContext: allowPrivilegeEscalation: false capabilities: diff --git a/tests/unit-compatibility-test/fixtures/sonarqube/template-refactoring-values.yaml b/tests/unit-compatibility-test/fixtures/sonarqube/template-refactoring-values.yaml index 8cb082ffd..909d2069a 100644 --- a/tests/unit-compatibility-test/fixtures/sonarqube/template-refactoring-values.yaml +++ b/tests/unit-compatibility-test/fixtures/sonarqube/template-refactoring-values.yaml @@ -421,7 +421,7 @@ metadata: app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: sonarqube app.kubernetes.io/component: template-refactoring-values.yaml-sonarqube - app.kubernetes.io/version: "24.12.0.100206-community" + app.kubernetes.io/version: "10.8.1-enterprise" spec: replicas: 1 revisionHistoryLimit: 10 @@ -448,7 +448,7 @@ spec: fsGroup: 0 initContainers: - name: "wait-for-db" - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: allowPrivilegeEscalation: false @@ -468,7 +468,7 @@ spec: command: ["/bin/bash", "-c"] args: ['set -o pipefail;for i in {1..200};do (echo > /dev/tcp/template-refactoring-values.yaml-postgresql/5432) && exit 0; sleep 2;done; exit 1'] - name: init-sysctl - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: privileged: true @@ -490,7 +490,7 @@ spec: - name: SONAR_CE_JAVAOPTS value: "" - name: init-fs - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent securityContext: capabilities: @@ -529,7 +529,7 @@ spec: subPath: extensions containers: - name: sonarqube - image: sonarqube:24.12.0.100206-community + image: sonarqube:10.8.1-enterprise imagePullPolicy: IfNotPresent ports: - name: http @@ -666,7 +666,7 @@ spec: automountServiceAccountToken: false containers: - name: template-refactoring-values.yaml-ui-test - image: "sonarqube:24.12.0.100206-community" + image: "sonarqube:10.8.1-enterprise" imagePullPolicy: IfNotPresent command: ['wget'] args: [ diff --git a/tests/unit-compatibility-test/sonarqube/ca-certificates-configmap.yaml b/tests/unit-compatibility-test/sonarqube/ca-certificates-configmap.yaml index c9ed70c23..c201fbb03 100644 --- a/tests/unit-compatibility-test/sonarqube/ca-certificates-configmap.yaml +++ b/tests/unit-compatibility-test/sonarqube/ca-certificates-configmap.yaml @@ -1,3 +1,5 @@ +edition: enterprise + caCerts: enabled: true configMap: diff --git a/tests/unit-compatibility-test/sonarqube/ca-certificates-secret.yaml b/tests/unit-compatibility-test/sonarqube/ca-certificates-secret.yaml index c1b4bb114..695fa39dd 100644 --- a/tests/unit-compatibility-test/sonarqube/ca-certificates-secret.yaml +++ b/tests/unit-compatibility-test/sonarqube/ca-certificates-secret.yaml @@ -1,3 +1,5 @@ +edition: enterprise + caCerts: enabled: true secretName: my-custom-ca-certificate diff --git a/tests/unit-compatibility-test/sonarqube/change-admin-password-hook-values.yaml b/tests/unit-compatibility-test/sonarqube/change-admin-password-hook-values.yaml index 07e504d11..e4c80dc8e 100644 --- a/tests/unit-compatibility-test/sonarqube/change-admin-password-hook-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/change-admin-password-hook-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + setAdminPassword: newPassword: "!new compl&x password%" currentPassword: admin diff --git a/tests/unit-compatibility-test/sonarqube/community-build-values.yaml b/tests/unit-compatibility-test/sonarqube/community-build-values.yaml index e489c800f..f2bfda351 100644 --- a/tests/unit-compatibility-test/sonarqube/community-build-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/community-build-values.yaml @@ -2,7 +2,5 @@ community: enabled: true buildNumber: "12345" -edition: "community" - image: - tag: "" \ No newline at end of file + tag: "" diff --git a/tests/unit-compatibility-test/sonarqube/config-values.yaml b/tests/unit-compatibility-test/sonarqube/config-values.yaml index 2fb3e7bf5..60f04c1d7 100644 --- a/tests/unit-compatibility-test/sonarqube/config-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/config-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + sonarProperties: prop: yes otherProp: false @@ -14,4 +16,4 @@ extraVolumeMounts: readOnly: true extraVolumes: - name: "extra-volume" - emptyDir: {} \ No newline at end of file + emptyDir: {} diff --git a/tests/unit-compatibility-test/sonarqube/custom-image-values.yaml b/tests/unit-compatibility-test/sonarqube/custom-image-values.yaml index 60c8883ee..ce8d24d38 100644 --- a/tests/unit-compatibility-test/sonarqube/custom-image-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/custom-image-values.yaml @@ -1,3 +1,6 @@ +community: + enabled: true + image: #Value comming from the user issue - tag: lts-community@sha256:3596d14feb065a31ce84cef60cc3ecfb7b47233ef860fd85c0d4e465f676c9f7 \ No newline at end of file + tag: lts-community@sha256:3596d14feb065a31ce84cef60cc3ecfb7b47233ef860fd85c0d4e465f676c9f7 diff --git a/tests/unit-compatibility-test/sonarqube/default-values.yaml b/tests/unit-compatibility-test/sonarqube/default-values.yaml index f6e93badb..dc66c7ca5 100644 --- a/tests/unit-compatibility-test/sonarqube/default-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/default-values.yaml @@ -1 +1,2 @@ -#default value file \ No newline at end of file +#default value file +edition: enterprise diff --git a/tests/unit-compatibility-test/sonarqube/deployment-values.yaml b/tests/unit-compatibility-test/sonarqube/deployment-values.yaml index e4fb859eb..de0d726e3 100644 --- a/tests/unit-compatibility-test/sonarqube/deployment-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/deployment-values.yaml @@ -1 +1,3 @@ -deploymentType: Deployment \ No newline at end of file +edition: enterprise + +deploymentType: Deployment diff --git a/tests/unit-compatibility-test/sonarqube/duplicated-env-values.yaml b/tests/unit-compatibility-test/sonarqube/duplicated-env-values.yaml index afdafae5c..fbec3ddec 100644 --- a/tests/unit-compatibility-test/sonarqube/duplicated-env-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/duplicated-env-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + env: - name: SONAR_WEB_CONTEXT value: some/context @@ -14,4 +16,4 @@ prometheusExporter: enabled: true httpProxy: "http://someProxy" httpsProxy: "https://someProxy" - noProxy: "https://someUrl" \ No newline at end of file + noProxy: "https://someUrl" diff --git a/tests/unit-compatibility-test/sonarqube/http-routes-default-values.yaml b/tests/unit-compatibility-test/sonarqube/http-routes-default-values.yaml index 1be02f6a1..fbd7d9797 100644 --- a/tests/unit-compatibility-test/sonarqube/http-routes-default-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/http-routes-default-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + sonarWebContext: "sonarqube" httproute: labels: @@ -5,4 +7,4 @@ httproute: enabled: true gateway: my-gateway hostnames: - - sonarqube.your-org.com \ No newline at end of file + - sonarqube.your-org.com diff --git a/tests/unit-compatibility-test/sonarqube/http-routes-values.yaml b/tests/unit-compatibility-test/sonarqube/http-routes-values.yaml index c014b1b8f..428af3cbd 100644 --- a/tests/unit-compatibility-test/sonarqube/http-routes-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/http-routes-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + httproute: enabled: true gateway: my-gateway diff --git a/tests/unit-compatibility-test/sonarqube/ingress-values.yaml b/tests/unit-compatibility-test/sonarqube/ingress-values.yaml index 5ab788722..517a4b434 100644 --- a/tests/unit-compatibility-test/sonarqube/ingress-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/ingress-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + ingress: enabled: true ingressClassName: "user-based" diff --git a/tests/unit-compatibility-test/sonarqube/ingress-with-controller.yaml b/tests/unit-compatibility-test/sonarqube/ingress-with-controller.yaml index 3abac17f7..71ca60711 100644 --- a/tests/unit-compatibility-test/sonarqube/ingress-with-controller.yaml +++ b/tests/unit-compatibility-test/sonarqube/ingress-with-controller.yaml @@ -1,3 +1,5 @@ +edition: enterprise + ingress-nginx: enabled: true ingress: diff --git a/tests/unit-compatibility-test/sonarqube/install-plugins-values.yaml b/tests/unit-compatibility-test/sonarqube/install-plugins-values.yaml index 6c9654ec0..9c0cf50ab 100644 --- a/tests/unit-compatibility-test/sonarqube/install-plugins-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/install-plugins-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + plugins: httpProxy: "http://someProxy" httpsProxy: "https://someProxy" diff --git a/tests/unit-compatibility-test/sonarqube/jdbc-config-values.yaml b/tests/unit-compatibility-test/sonarqube/jdbc-config-values.yaml index 427fd3b64..5aba0974e 100644 --- a/tests/unit-compatibility-test/sonarqube/jdbc-config-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/jdbc-config-values.yaml @@ -1,5 +1,7 @@ +edition: enterprise + jdbcOverwrite: enabled: true jdbcUrl: "jdbc:postgresql://myPostgress/myDatabase?socketTimeout=1500" jdbcUsername: "sonarUser" - jdbcPassword: "sonarPass" \ No newline at end of file + jdbcPassword: "sonarPass" diff --git a/tests/unit-compatibility-test/sonarqube/networkpolicy-new-values.yaml b/tests/unit-compatibility-test/sonarqube/networkpolicy-new-values.yaml index 39e67f758..17e7d3de5 100644 --- a/tests/unit-compatibility-test/sonarqube/networkpolicy-new-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/networkpolicy-new-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + networkPolicy: enabled: true @@ -31,4 +33,4 @@ networkPolicy: cidr: 10.0.0.0/24 ports: - protocol: TCP - port: 5978 \ No newline at end of file + port: 5978 diff --git a/tests/unit-compatibility-test/sonarqube/networkpolicy-values.yaml b/tests/unit-compatibility-test/sonarqube/networkpolicy-values.yaml index 33b4339a3..10b051165 100644 --- a/tests/unit-compatibility-test/sonarqube/networkpolicy-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/networkpolicy-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + networkPolicy: enabled: true @@ -31,4 +33,4 @@ networkPolicy: cidr: 10.0.0.0/24 ports: - protocol: TCP - port: 5978 \ No newline at end of file + port: 5978 diff --git a/tests/unit-compatibility-test/sonarqube/non-default-security-context-values.yaml b/tests/unit-compatibility-test/sonarqube/non-default-security-context-values.yaml index bf9408640..3dc20c1cd 100644 --- a/tests/unit-compatibility-test/sonarqube/non-default-security-context-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/non-default-security-context-values.yaml @@ -1,5 +1,7 @@ # This file holds securityContext tests # The values are there to test non-default or previous compatibility before moving to initContainers.securityContext +edition: enterprise + prometheusExporter: enabled: true version: "0.17.2" @@ -66,4 +68,4 @@ initSysctl: initFs: enabled: true - securityContext: {} \ No newline at end of file + securityContext: {} diff --git a/tests/unit-compatibility-test/sonarqube/openshift-values.yaml b/tests/unit-compatibility-test/sonarqube/openshift-values.yaml index 502410104..baade7521 100644 --- a/tests/unit-compatibility-test/sonarqube/openshift-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/openshift-values.yaml @@ -1,4 +1,6 @@ +edition: enterprise + OpenShift: enabled: true route: - enabled: true \ No newline at end of file + enabled: true diff --git a/tests/unit-compatibility-test/sonarqube/prometheus-monitoring-values.yaml b/tests/unit-compatibility-test/sonarqube/prometheus-monitoring-values.yaml index bccd3b0b1..e7f43ba41 100644 --- a/tests/unit-compatibility-test/sonarqube/prometheus-monitoring-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/prometheus-monitoring-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + prometheusMonitoring: # Generate a Prometheus Pod Monitor (https://github.com/coreos/prometheus-operator) # @@ -15,4 +17,4 @@ prometheusMonitoring: jobLabel: "something" # Additional labels to add to the PodMonitor labels: - toto: tutu \ No newline at end of file + toto: tutu diff --git a/tests/unit-compatibility-test/sonarqube/proxies-secret-values.yaml b/tests/unit-compatibility-test/sonarqube/proxies-secret-values.yaml index b5f6af9a8..e720d0107 100644 --- a/tests/unit-compatibility-test/sonarqube/proxies-secret-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/proxies-secret-values.yaml @@ -1,6 +1,8 @@ +edition: enterprise + httpProxySecret: "mySecret" plugins: install: - "https://github.com/sbaudoin/sonar-yaml/releases/download/v1.7.0/sonar-yaml-plugin-1.7.0.jar" prometheusExporter: - enabled: true \ No newline at end of file + enabled: true diff --git a/tests/unit-compatibility-test/sonarqube/proxies-values.yaml b/tests/unit-compatibility-test/sonarqube/proxies-values.yaml index 5d7cea4fd..f1755b8d2 100644 --- a/tests/unit-compatibility-test/sonarqube/proxies-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/proxies-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + httpProxy: "http://someProxy" httpsProxy: "https://someProxy" noProxy: "https://someUrl" @@ -5,4 +7,4 @@ plugins: install: - "https://github.com/sbaudoin/sonar-yaml/releases/download/v1.7.0/sonar-yaml-plugin-1.7.0.jar" prometheusExporter: - enabled: true \ No newline at end of file + enabled: true diff --git a/tests/unit-compatibility-test/sonarqube/pvc-values.yaml b/tests/unit-compatibility-test/sonarqube/pvc-values.yaml index 2dc848d4c..6789ca2da 100644 --- a/tests/unit-compatibility-test/sonarqube/pvc-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/pvc-values.yaml @@ -1,7 +1,9 @@ +edition: enterprise + persistence: enabled: true annotations: someAnnotations: toto postgresql: persistence: - enabled: true \ No newline at end of file + enabled: true diff --git a/tests/unit-compatibility-test/sonarqube/secret-values.yaml b/tests/unit-compatibility-test/sonarqube/secret-values.yaml index 71e29b753..a4e386e06 100644 --- a/tests/unit-compatibility-test/sonarqube/secret-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/secret-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + account: adminPassword: admin1 currentAdminPassword: admin @@ -18,4 +20,4 @@ adminJobAnnotations: sonarWebContext: / postgresql: - enabled: false \ No newline at end of file + enabled: false diff --git a/tests/unit-compatibility-test/sonarqube/service-values.yaml b/tests/unit-compatibility-test/sonarqube/service-values.yaml index 3f3ec357b..ee383d403 100644 --- a/tests/unit-compatibility-test/sonarqube/service-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/service-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + service: type: LoadBalancer externalPort: 9001 @@ -9,4 +11,4 @@ service: labels: mylabel: tutu annotations: - myAnnotation: toto \ No newline at end of file + myAnnotation: toto diff --git a/tests/unit-compatibility-test/sonarqube/serviceaccount-values.yaml b/tests/unit-compatibility-test/sonarqube/serviceaccount-values.yaml index 38efda24b..e6edfb699 100644 --- a/tests/unit-compatibility-test/sonarqube/serviceaccount-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/serviceaccount-values.yaml @@ -1,7 +1,9 @@ +edition: enterprise + serviceAccount: create: true annotations: myAnnotation: tutu accountToken: azndnqnzaeoeae= name: myserviceaccount - automountToken: true \ No newline at end of file + automountToken: true diff --git a/tests/unit-compatibility-test/sonarqube/sonar-web-context-deployment-deprecated-values.yaml b/tests/unit-compatibility-test/sonarqube/sonar-web-context-deployment-deprecated-values.yaml index d8a0b9c02..0136e581e 100644 --- a/tests/unit-compatibility-test/sonarqube/sonar-web-context-deployment-deprecated-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/sonar-web-context-deployment-deprecated-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + # In the context of SONAR-18991, we are simplifying the web context configuration. # Testing that deprecated values are still working deploymentType: Deployment diff --git a/tests/unit-compatibility-test/sonarqube/sonar-web-context-sts-deprecated-values.yaml b/tests/unit-compatibility-test/sonarqube/sonar-web-context-sts-deprecated-values.yaml index 41b97b44c..a28fe347b 100644 --- a/tests/unit-compatibility-test/sonarqube/sonar-web-context-sts-deprecated-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/sonar-web-context-sts-deprecated-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + # In the context of SONAR-18991, we are simplifying the web context configuration. # Testing that deprecated values are still working account: diff --git a/tests/unit-compatibility-test/sonarqube/sonar-web-context-values.yaml b/tests/unit-compatibility-test/sonarqube/sonar-web-context-values.yaml index 9c2e886d8..270a5c23b 100644 --- a/tests/unit-compatibility-test/sonarqube/sonar-web-context-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/sonar-web-context-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + # In the context of SONAR-18991, we are simplifying the web context configuration. # Testing that it is propaged correctly. sonarWebContext: /sonarqube-web-context @@ -10,4 +12,4 @@ ingress: enabled: true hosts: - name: sonarqube.your-org.com - # no path, verifying the sonarWebContext is injected here \ No newline at end of file + # no path, verifying the sonarWebContext is injected here diff --git a/tests/unit-compatibility-test/sonarqube/template-refactoring-values.yaml b/tests/unit-compatibility-test/sonarqube/template-refactoring-values.yaml index a8f4d84e5..f3b591333 100644 --- a/tests/unit-compatibility-test/sonarqube/template-refactoring-values.yaml +++ b/tests/unit-compatibility-test/sonarqube/template-refactoring-values.yaml @@ -1,3 +1,5 @@ +edition: enterprise + # SONAR-22466: Addresses the issues introduced by the refactoring of the templates podLabels: azure.workload.identity/use: "true" diff --git a/tests/unit-test/README.md b/tests/unit-test/README.md new file mode 100644 index 000000000..dd9156dac --- /dev/null +++ b/tests/unit-test/README.md @@ -0,0 +1,10 @@ +# Execute tests + +## Dynamic compatibility tests + +In order to execute the unit schema validation tests, you need to have golang installed according to [`../../.tool-versions`](../../.tool-versions). You can use [`mise`](https://github.com/jdx/mise) or [`asdf`](https://asdf-vm.com) to install the correct version of golang. +When the pre-requisites are fulfilled, just run: + +```bash +go test -v schema_test.go +``` diff --git a/tests/unit-test/go.mod b/tests/unit-test/go.mod new file mode 100644 index 000000000..24abb6f85 --- /dev/null +++ b/tests/unit-test/go.mod @@ -0,0 +1,101 @@ +module github.com/gruntwork-io/terratest-helm-testing-example/test + +go 1.22.0 + +require ( + github.com/gruntwork-io/terratest v0.46.16 + github.com/stretchr/testify v1.9.0 + helm.sh/helm/v3 v3.16.3 + k8s.io/api v0.31.1 +) + +require ( + github.com/BurntSushi/toml v1.3.2 // indirect + github.com/Masterminds/semver/v3 v3.3.0 // indirect + github.com/aws/aws-sdk-go v1.44.122 // indirect + github.com/boombuler/barcode v1.0.1 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect + github.com/cyphar/filepath-securejoin v0.3.4 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/emicklei/go-restful/v3 v3.11.0 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect + github.com/ghodss/yaml v1.0.0 // indirect + github.com/go-errors/errors v1.4.2 // indirect + github.com/go-logr/logr v1.4.2 // indirect + github.com/go-openapi/jsonpointer v0.19.6 // indirect + github.com/go-openapi/jsonreference v0.20.2 // indirect + github.com/go-openapi/swag v0.22.4 // indirect + github.com/go-sql-driver/mysql v1.4.1 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/gonvenience/bunt v1.3.5 // indirect + github.com/gonvenience/neat v1.3.12 // indirect + github.com/gonvenience/term v1.0.2 // indirect + github.com/gonvenience/text v1.0.7 // indirect + github.com/gonvenience/wrap v1.1.2 // indirect + github.com/gonvenience/ytbx v1.4.4 // indirect + github.com/google/gnostic-models v0.6.8 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/gorilla/websocket v1.5.0 // indirect + github.com/gruntwork-io/go-commons v0.8.0 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/homeport/dyff v1.6.0 // indirect + github.com/imdario/mergo v0.3.16 // indirect + github.com/jmespath/go-jmespath v0.4.0 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/mattn/go-ciede2000 v0.0.0-20170301095244-782e8c62fec3 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-zglob v0.0.2-0.20190814121620-e3c945676326 // indirect + github.com/mitchellh/copystructure v1.2.0 // indirect + github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/mitchellh/go-ps v1.0.0 // indirect + github.com/mitchellh/hashstructure v1.1.0 // indirect + github.com/mitchellh/reflectwalk v1.0.2 // indirect + github.com/moby/spdystream v0.4.0 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect + github.com/onsi/gomega v1.33.1 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/pquerna/otp v1.2.0 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/sergi/go-diff v1.3.1 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/texttheater/golang-levenshtein v1.0.1 // indirect + github.com/urfave/cli v1.22.12 // indirect + github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 // indirect + github.com/x448/float16 v0.8.4 // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect + github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect + github.com/xeipuuv/gojsonschema v1.2.0 // indirect + golang.org/x/crypto v0.27.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect + golang.org/x/sync v0.8.0 // indirect + golang.org/x/sys v0.25.0 // indirect + golang.org/x/term v0.24.0 // indirect + golang.org/x/text v0.18.0 // indirect + golang.org/x/time v0.3.0 // indirect + google.golang.org/appengine v1.6.7 // indirect + google.golang.org/protobuf v1.34.2 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/yaml.v2 v2.4.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + k8s.io/apiextensions-apiserver v0.31.1 // indirect + k8s.io/apimachinery v0.31.1 // indirect + k8s.io/client-go v0.31.1 // indirect + k8s.io/klog/v2 v2.130.1 // indirect + k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 // indirect + k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 // indirect + sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect +) diff --git a/tests/unit-test/go.sum b/tests/unit-test/go.sum new file mode 100644 index 000000000..50be814d6 --- /dev/null +++ b/tests/unit-test/go.sum @@ -0,0 +1,302 @@ +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0= +github.com/Masterminds/semver/v3 v3.3.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/aws/aws-sdk-go v1.44.122 h1:p6mw01WBaNpbdP2xrisz5tIkcNwzj/HysobNoaAHjgo= +github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= +github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs= +github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cyphar/filepath-securejoin v0.3.4 h1:VBWugsJh2ZxJmLFSM06/0qzQyiQX2Qs0ViKrUAcqdZ8= +github.com/cyphar/filepath-securejoin v0.3.4/go.mod h1:8s/MCNJREmFK0H02MF6Ihv1nakJe4L/w3WZLHNkvlYM= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= +github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-errors/errors v1.0.1/go.mod h1:f4zRHt4oKfwPJE5k8C9vpYG+aDHdBFUsgrm6/TyX73Q= +github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= +github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-openapi/jsonpointer v0.19.6 h1:eCs3fxoIi3Wh6vtgmLTOjdhSpiqphQ+DaPn38N2ZdrE= +github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE= +github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.22.4 h1:QLMzNJnMGPRNDCbySlcj1x01tzU8/9LTTL9hZZZogBU= +github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA= +github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/gonvenience/bunt v1.3.5 h1:wSQquifvwEWtzn27k1ngLfeLaStyt0k1b/K6TrlCNAs= +github.com/gonvenience/bunt v1.3.5/go.mod h1:7ApqkVBEWvX04oJ28Q2WeI/BvJM6VtukaJAU/q/pTs8= +github.com/gonvenience/neat v1.3.12 h1:xwIyRbJcG9LgcDYys+HHLH9DqqHeQsUpS5CfBUeskbs= +github.com/gonvenience/neat v1.3.12/go.mod h1:8OljAIgPelN0uPPO94VBqxK+Kz98d6ZFwHDg5o/PfkE= +github.com/gonvenience/term v1.0.2 h1:qKa2RydbWIrabGjR/fegJwpW5m+JvUwFL8mLhHzDXn0= +github.com/gonvenience/term v1.0.2/go.mod h1:wThTR+3MzWtWn7XGVW6qQ65uaVf8GHED98KmwpuEQeo= +github.com/gonvenience/text v1.0.7 h1:YmIqmgTwxnACYCG59DykgMbomwteYyNhAmEUEJtPl14= +github.com/gonvenience/text v1.0.7/go.mod h1:OAjH+mohRszffLY6OjgQcUXiSkbrIavooFpfIt1ZwAs= +github.com/gonvenience/wrap v1.1.2 h1:xPKxNwL1HCguwyM+HlP/1CIuc9LRd7k8RodLwe9YTZA= +github.com/gonvenience/wrap v1.1.2/go.mod h1:GiryBSXoI3BAAhbWD1cZVj7RZmtiu0ERi/6R6eJfslI= +github.com/gonvenience/ytbx v1.4.4 h1:jQopwyaLsVGuwdxSiN4WkXjsEaFNPJ3V4lUj7eyEpzo= +github.com/gonvenience/ytbx v1.4.4/go.mod h1:w37+MKCPcCMY/jpPNmEklD4xKqrOAVBO6kIWW2+uI6M= +github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I= +github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af h1:kmjWCqn2qkEml422C2Rrd27c3VGxi6a/6HNq8QmHRKM= +github.com/google/pprof v0.0.0-20240525223248-4bfdf5a9a2af/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= +github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gruntwork-io/go-commons v0.8.0 h1:k/yypwrPqSeYHevLlEDmvmgQzcyTwrlZGRaxEM6G0ro= +github.com/gruntwork-io/go-commons v0.8.0/go.mod h1:gtp0yTtIBExIZp7vyIV9I0XQkVwiQZze678hvDXof78= +github.com/gruntwork-io/terratest v0.46.16 h1:l+HHuU7lNLwoAl2sP8zkYJy0uoE2Mwha2nw+rim+OhQ= +github.com/gruntwork-io/terratest v0.46.16/go.mod h1:oywHw1cFKXSYvKPm27U7quZVzDUlA22H2xUrKCe26xM= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/homeport/dyff v1.6.0 h1:AN+ikld0Fy+qx34YE7655b/bpWuxS6cL9k852pE2GUc= +github.com/homeport/dyff v1.6.0/go.mod h1:FlAOFYzeKvxmU5nTrnG+qrlJVWpsFew7pt8L99p5q8k= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= +github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/lucasb-eyer/go-colorful v1.2.0 h1:1nnpGOrhyZZuNyfu1QjKiUICQ74+3FNCN69Aj6K7nkY= +github.com/lucasb-eyer/go-colorful v1.2.0/go.mod h1:R4dSotOR9KMtayYi1e77YzuveK+i7ruzyGqttikkLy0= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mattn/go-ciede2000 v0.0.0-20170301095244-782e8c62fec3 h1:BXxTozrOU8zgC5dkpn3J6NTRdoP+hjok/e+ACr4Hibk= +github.com/mattn/go-ciede2000 v0.0.0-20170301095244-782e8c62fec3/go.mod h1:x1uk6vxTiVuNt6S5R2UYgdhpj3oKojXvOXauHZ7dEnI= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= +github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-zglob v0.0.1/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo= +github.com/mattn/go-zglob v0.0.2-0.20190814121620-e3c945676326 h1:ofNAzWCcyTALn2Zv40+8XitdzCgXY6e9qvXwN9W0YXg= +github.com/mattn/go-zglob v0.0.2-0.20190814121620-e3c945676326/go.mod h1:9fxibJccNxU2cnpIKLRRFA7zX7qhkJIQWBb449FYHOo= +github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= +github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-ps v1.0.0 h1:i6ampVEEF4wQFF+bkYfwYgY+F/uYJDktmvLPf7qIgjc= +github.com/mitchellh/go-ps v1.0.0/go.mod h1:J4lOc8z8yJs6vUwklHw2XEIiT4z4C40KtWVN3nvg8Pg= +github.com/mitchellh/hashstructure v1.1.0 h1:P6P1hdjqAAknpY/M1CGipelZgp+4y9ja9kmUZPXP+H0= +github.com/mitchellh/hashstructure v1.1.0/go.mod h1:xUDAozZz0Wmdiufv0uyhnHkUTN6/6d8ulp4AwfLKrmA= +github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= +github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/moby/spdystream v0.4.0 h1:Vy79D6mHeJJjiPdFEL2yku1kl0chZpJfZcPpb16BRl8= +github.com/moby/spdystream v0.4.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= +github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= +github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= +github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pquerna/otp v1.2.0 h1:/A3+Jn+cagqayeR3iHs/L62m5ue7710D35zl1zJ1kok= +github.com/pquerna/otp v1.2.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg= +github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/texttheater/golang-levenshtein v1.0.1 h1:+cRNoVrfiwufQPhoMzB6N0Yf/Mqajr6t1lOv8GyGE2U= +github.com/texttheater/golang-levenshtein v1.0.1/go.mod h1:PYAKrbF5sAiq9wd+H82hs7gNaen0CplQ9uvm6+enD/8= +github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli v1.22.12 h1:igJgVw1JdKH+trcLWLeLwZjU9fEfPesQ+9/e4MQ44S8= +github.com/urfave/cli v1.22.12/go.mod h1:sSBEIC79qR6OvcmsD4U3KABeOTxDqQtdDnaFuUN30b8= +github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74 h1:JwtAtbp7r/7QSyGz8mKUbYJBg2+6Cd7OjM8o/GNOcVo= +github.com/virtuald/go-ordered-json v0.0.0-20170621173500-b18e6e673d74/go.mod h1:RmMWU37GKR2s6pgrIEB4ixgpVCt/cf7dnJv3fuH1J1c= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= +golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.26.0 h1:soB7SVo0PWrY4vPW/+ay0jKDNScG2X9wFeYlXIvJsOQ= +golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= +golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= +golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg= +golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +helm.sh/helm/v3 v3.16.3 h1:kb8bSxMeRJ+knsK/ovvlaVPfdis0X3/ZhYCSFRP+YmY= +helm.sh/helm/v3 v3.16.3/go.mod h1:zeVWGDR4JJgiRbT3AnNsjYaX8OTJlIE9zC+Q7F7iUSU= +k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= +k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= +k8s.io/apiextensions-apiserver v0.31.1 h1:L+hwULvXx+nvTYX/MKM3kKMZyei+UiSXQWciX/N6E40= +k8s.io/apiextensions-apiserver v0.31.1/go.mod h1:tWMPR3sgW+jsl2xm9v7lAyRF1rYEK71i9G5dRtkknoQ= +k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= +k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0= +k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340 h1:BZqlfIlq5YbRMFko6/PM7FjZpUb45WallggurYhKGag= +k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= +k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/tests/unit-test/schema_test.go b/tests/unit-test/schema_test.go new file mode 100644 index 000000000..2a9a21d4f --- /dev/null +++ b/tests/unit-test/schema_test.go @@ -0,0 +1,223 @@ +package tests + +import ( + "testing" + + "fmt" + "github.com/gruntwork-io/terratest/modules/helm" + "github.com/gruntwork-io/terratest/modules/logger" + "helm.sh/helm/v3/pkg/chart" + "helm.sh/helm/v3/pkg/chartutil" + + "github.com/stretchr/testify/assert" + appsv1 "k8s.io/api/apps/v1" +) + +// Global variables +// chart path +var chartPath string = "../../charts/sonarqube" + +// release name +var releaseName string = "sonarqube" + +// Ensure we are using the dry-run flag +var helmOptions *helm.Options = &helm.Options{ + ExtraArgs: map[string][]string{"install": {"--dry-run"}}, + SetValues: map[string]string{"monitoringPasscode": "monitoring-test-passcode"}, // See SONAR-24068 + Logger: logger.Discard, +} + +// Templates to be tested +var sqStsTemplate []string = []string{"templates/sonarqube-sts.yaml"} + +// TestValidSchema tests the schema of the values.yaml file using the validations +// inside values.schema.json +func TestInvalidSchema(t *testing.T) { + table := []struct { + testCaseName string + valuesFilesPaths []string + expectedError string + }{ + { + testCaseName: "invalid-edition", + valuesFilesPaths: []string{"test-cases-values/sonarqube/invalid-edition.yaml"}, + expectedError: "The 'edition' must be either 'developer' or 'enterprise'.", + }, + { + testCaseName: "no-default-edition", + valuesFilesPaths: []string{"test-cases-values/sonarqube/invalid-no-default-edition.yaml"}, + expectedError: "You must choose an 'edition' to install: 'developer' or 'enterprise'.\nIf you want to use SonarQube Community Build, unset 'edition' and set 'community.enabled=true' instead.", + }, + { + testCaseName: "community-disabled-no-edition", + valuesFilesPaths: []string{"test-cases-values/sonarqube/invalid-community-disabled-no-edition.yaml"}, + expectedError: "You must choose an 'edition' to install: 'developer' or 'enterprise'.\nIf you want to use SonarQube Community Build, unset 'edition' and set 'community.enabled=true' instead.", + }, + { + testCaseName: "invalid-community-edition", + valuesFilesPaths: []string{"test-cases-values/sonarqube/invalid-community-edition.yaml"}, + expectedError: "'community' is not a valid edition. If you want to use SonarQube Community Build, unset 'edition' and set 'community.enabled=true' instead.", + }, + } + + for _, test := range table { + t.Run(test.testCaseName, func(t *testing.T) { + helmOptions.ValuesFiles = test.valuesFilesPaths + _, err := helm.RenderTemplateE(t, helmOptions, chartPath, releaseName, []string{}) + assert.Error(t, err) + assert.Contains(t, err.Error(), test.expectedError) + }) + } +} + +func TestNoTagLatestCommunity(t *testing.T) { + helmOptions.ValuesFiles = []string{"test-cases-values/sonarqube/test-notag-latest-cb.yaml"} + output, err := helm.RenderTemplateE(t, helmOptions, chartPath, releaseName, sqStsTemplate) + assert.NoError(t, err) + + // Now we use kubernetes/client-go library to render the template output into the Deployment struct. This will + // ensure the Deployment resource is rendered correctly. + var renderedTemplate appsv1.StatefulSet + helm.UnmarshalK8SYaml(t, output, &renderedTemplate) + + expectedContainerImage := "sonarqube:24.12.0.100206-community" + actualContainers := renderedTemplate.Spec.Template.Spec.Containers + assert.Equal(t, 1, len(actualContainers)) + assert.Equal(t, expectedContainerImage, actualContainers[0].Image) +} + +func TestNoTagAppVersionDeveloper(t *testing.T) { + helmOptions.ValuesFiles = []string{"test-cases-values/sonarqube/test-notag-appVersion-developer.yaml"} + output, err := helm.RenderTemplateE(t, helmOptions, chartPath, releaseName, sqStsTemplate) + assert.NoError(t, err) + + var renderedTemplate appsv1.StatefulSet + helm.UnmarshalK8SYaml(t, output, &renderedTemplate) + + // Get the appVersion from the Chart.yaml file + var chartMetadata *chart.Metadata + chartMetadata, err = chartutil.LoadChartfile(fmt.Sprintf("%s/Chart.yaml", chartPath)) + if err != nil { + t.Fatalf("Error loading Chart.yaml file: %s", err) + } + var appVersion string = chartMetadata.AppVersion + + expectedContainerImage := fmt.Sprintf("sonarqube:%s-developer", appVersion) + actualContainers := renderedTemplate.Spec.Template.Spec.Containers + assert.Equal(t, 1, len(actualContainers)) + assert.Equal(t, expectedContainerImage, actualContainers[0].Image) +} + +func TestShouldUseBuildNumber(t *testing.T) { + helmOptions.ValuesFiles = []string{"test-cases-values/sonarqube/test-build-number.yaml"} + output, err := helm.RenderTemplateE(t, helmOptions, chartPath, releaseName, sqStsTemplate) + assert.NoError(t, err) + + var renderedTemplate appsv1.StatefulSet + helm.UnmarshalK8SYaml(t, output, &renderedTemplate) + + expectedContainerImage := "sonarqube:24.12.0.99999-community" + actualContainers := renderedTemplate.Spec.Template.Spec.Containers + assert.Equal(t, 1, len(actualContainers)) + assert.Equal(t, expectedContainerImage, actualContainers[0].Image) +} + +func TestShouldUseImageTag(t *testing.T) { + helmOptions.ValuesFiles = []string{"test-cases-values/sonarqube/test-image-tag-developer.yaml"} + output, err := helm.RenderTemplateE(t, helmOptions, chartPath, releaseName, sqStsTemplate) + assert.NoError(t, err) + + var renderedTemplate appsv1.StatefulSet + helm.UnmarshalK8SYaml(t, output, &renderedTemplate) + + expectedContainerImage := "sonarqube:2025.1.0-enterprise" + actualContainers := renderedTemplate.Spec.Template.Spec.Containers + assert.Equal(t, 1, len(actualContainers)) + assert.Equal(t, expectedContainerImage, actualContainers[0].Image) +} + +func TestCustomCommunityTag(t *testing.T) { + helmOptions.ValuesFiles = []string{"test-cases-values/sonarqube/test-custom-image-values.yaml"} + output, err := helm.RenderTemplateE(t, helmOptions, chartPath, releaseName, sqStsTemplate) + assert.NoError(t, err) + + var renderedTemplate appsv1.StatefulSet + helm.UnmarshalK8SYaml(t, output, &renderedTemplate) + + expectedContainerImage := "sonarqube:lts-community@sha256:3596d14feb065a31ce84cef60cc3ecfb7b47233ef860fd85c0d4e465f676c9f7" + actualContainers := renderedTemplate.Spec.Template.Spec.Containers + assert.Equal(t, 1, len(actualContainers)) + assert.Equal(t, expectedContainerImage, actualContainers[0].Image) +} + +func TestCommunityBuildNumberEmptyTag(t *testing.T) { + helmOptions.ValuesFiles = []string{"test-cases-values/sonarqube/test-community-build-empty-tag.yaml"} + output, err := helm.RenderTemplateE(t, helmOptions, chartPath, releaseName, sqStsTemplate) + assert.NoError(t, err) + + var renderedTemplate appsv1.StatefulSet + helm.UnmarshalK8SYaml(t, output, &renderedTemplate) + + expectedContainerImage := "sonarqube:12345-community" + actualContainers := renderedTemplate.Spec.Template.Spec.Containers + assert.Equal(t, 1, len(actualContainers)) + assert.Equal(t, expectedContainerImage, actualContainers[0].Image) +} + +func TestCommunityEmptyBuildNumberEmptyTag(t *testing.T) { + helmOptions.ValuesFiles = []string{"test-cases-values/sonarqube/test-community-empty-build-empty-tag.yaml"} + output, err := helm.RenderTemplateE(t, helmOptions, chartPath, releaseName, sqStsTemplate) + assert.NoError(t, err) + + var renderedTemplate appsv1.StatefulSet + helm.UnmarshalK8SYaml(t, output, &renderedTemplate) + + expectedContainerImage := "sonarqube:community" + actualContainers := renderedTemplate.Spec.Template.Spec.Containers + assert.Equal(t, 1, len(actualContainers)) + assert.Equal(t, expectedContainerImage, actualContainers[0].Image) +} + +// This test loads the values.yaml used by Cirrus at runtime. +func TestCiCirrusValues(t *testing.T) { + helmOptions.ValuesFiles = []string{chartPath + "/ci/cirrus-values.yaml"} + output, err := helm.RenderTemplateE(t, helmOptions, chartPath, releaseName, sqStsTemplate) + assert.NoError(t, err) + + var renderedTemplate appsv1.StatefulSet + helm.UnmarshalK8SYaml(t, output, &renderedTemplate) + + expectedContainerImage := "sonarsource/sonarqube:24.12.0.100206-community" + actualContainers := renderedTemplate.Spec.Template.Spec.Containers + assert.Equal(t, 1, len(actualContainers)) + assert.Equal(t, expectedContainerImage, actualContainers[0].Image) +} + +// This test loads the values.yaml used by the OpenShift Verifier at runtime. +func TestCiOpenshiftVerifierValues(t *testing.T) { + helmOptions.ValuesFiles = []string{chartPath + "/openshift-verifier/values.yaml"} + output, err := helm.RenderTemplateE(t, helmOptions, chartPath, releaseName, sqStsTemplate) + assert.NoError(t, err) + + var renderedTemplate appsv1.StatefulSet + helm.UnmarshalK8SYaml(t, output, &renderedTemplate) + + expectedContainerImage := "sonarsource/sonarqube:24.12.0.100206-community" + actualContainers := renderedTemplate.Spec.Template.Spec.Containers + assert.Equal(t, 1, len(actualContainers)) + assert.Equal(t, expectedContainerImage, actualContainers[0].Image) +} + +func TestDeveloperEdition(t *testing.T) { + helmOptions.ValuesFiles = []string{"test-cases-values/sonarqube/test-developer-edition.yaml"} + output, err := helm.RenderTemplateE(t, helmOptions, chartPath, releaseName, sqStsTemplate) + assert.NoError(t, err) + + var renderedTemplate appsv1.StatefulSet + helm.UnmarshalK8SYaml(t, output, &renderedTemplate) + + expectedContainerImage := "sonarqube:10.8.1-developer" + actualContainers := renderedTemplate.Spec.Template.Spec.Containers + assert.Equal(t, 1, len(actualContainers)) + assert.Equal(t, expectedContainerImage, actualContainers[0].Image) +} diff --git a/tests/unit-test/test-cases-values/sonarqube/invalid-community-disabled-no-edition.yaml b/tests/unit-test/test-cases-values/sonarqube/invalid-community-disabled-no-edition.yaml new file mode 100644 index 000000000..233d6fbae --- /dev/null +++ b/tests/unit-test/test-cases-values/sonarqube/invalid-community-disabled-no-edition.yaml @@ -0,0 +1,2 @@ +community: + enabled: false diff --git a/tests/unit-test/test-cases-values/sonarqube/invalid-community-edition.yaml b/tests/unit-test/test-cases-values/sonarqube/invalid-community-edition.yaml new file mode 100644 index 000000000..25fe303d1 --- /dev/null +++ b/tests/unit-test/test-cases-values/sonarqube/invalid-community-edition.yaml @@ -0,0 +1 @@ +edition: "community" diff --git a/tests/unit-test/test-cases-values/sonarqube/invalid-edition.yaml b/tests/unit-test/test-cases-values/sonarqube/invalid-edition.yaml new file mode 100644 index 000000000..dadc33fe9 --- /dev/null +++ b/tests/unit-test/test-cases-values/sonarqube/invalid-edition.yaml @@ -0,0 +1 @@ +edition: "MyAwesomeEdition" diff --git a/tests/unit-test/test-cases-values/sonarqube/invalid-no-default-edition.yaml b/tests/unit-test/test-cases-values/sonarqube/invalid-no-default-edition.yaml new file mode 100644 index 000000000..183809e32 --- /dev/null +++ b/tests/unit-test/test-cases-values/sonarqube/invalid-no-default-edition.yaml @@ -0,0 +1 @@ +# This file is empty on purpose diff --git a/tests/unit-test/test-cases-values/sonarqube/test-build-number.yaml b/tests/unit-test/test-cases-values/sonarqube/test-build-number.yaml new file mode 100644 index 000000000..c221d1578 --- /dev/null +++ b/tests/unit-test/test-cases-values/sonarqube/test-build-number.yaml @@ -0,0 +1,3 @@ +community: + enabled: true + buildNumber: "24.12.0.99999" diff --git a/tests/unit-test/test-cases-values/sonarqube/test-community-build-empty-tag.yaml b/tests/unit-test/test-cases-values/sonarqube/test-community-build-empty-tag.yaml new file mode 100644 index 000000000..f2bfda351 --- /dev/null +++ b/tests/unit-test/test-cases-values/sonarqube/test-community-build-empty-tag.yaml @@ -0,0 +1,6 @@ +community: + enabled: true + buildNumber: "12345" + +image: + tag: "" diff --git a/tests/unit-test/test-cases-values/sonarqube/test-community-empty-build-empty-tag.yaml b/tests/unit-test/test-cases-values/sonarqube/test-community-empty-build-empty-tag.yaml new file mode 100644 index 000000000..ccf0f11bd --- /dev/null +++ b/tests/unit-test/test-cases-values/sonarqube/test-community-empty-build-empty-tag.yaml @@ -0,0 +1,3 @@ +community: + enabled: true + buildNumber: ~ diff --git a/tests/unit-test/test-cases-values/sonarqube/test-custom-image-values.yaml b/tests/unit-test/test-cases-values/sonarqube/test-custom-image-values.yaml new file mode 100644 index 000000000..ce8d24d38 --- /dev/null +++ b/tests/unit-test/test-cases-values/sonarqube/test-custom-image-values.yaml @@ -0,0 +1,6 @@ +community: + enabled: true + +image: + #Value comming from the user issue + tag: lts-community@sha256:3596d14feb065a31ce84cef60cc3ecfb7b47233ef860fd85c0d4e465f676c9f7 diff --git a/tests/unit-test/test-cases-values/sonarqube/test-developer-edition.yaml b/tests/unit-test/test-cases-values/sonarqube/test-developer-edition.yaml new file mode 100644 index 000000000..a22a5b870 --- /dev/null +++ b/tests/unit-test/test-cases-values/sonarqube/test-developer-edition.yaml @@ -0,0 +1 @@ +edition: "developer" diff --git a/tests/unit-test/test-cases-values/sonarqube/test-image-tag-developer.yaml b/tests/unit-test/test-cases-values/sonarqube/test-image-tag-developer.yaml new file mode 100644 index 000000000..16073cfbd --- /dev/null +++ b/tests/unit-test/test-cases-values/sonarqube/test-image-tag-developer.yaml @@ -0,0 +1,6 @@ +community: + enabled: false + +edition: developer +image: + tag: 2025.1.0-enterprise diff --git a/tests/unit-test/test-cases-values/sonarqube/test-notag-appVersion-developer.yaml b/tests/unit-test/test-cases-values/sonarqube/test-notag-appVersion-developer.yaml new file mode 100644 index 000000000..a2e6cdb04 --- /dev/null +++ b/tests/unit-test/test-cases-values/sonarqube/test-notag-appVersion-developer.yaml @@ -0,0 +1,4 @@ +community: + enabled: false + +edition: developer diff --git a/tests/unit-test/test-cases-values/sonarqube/test-notag-latest-cb.yaml b/tests/unit-test/test-cases-values/sonarqube/test-notag-latest-cb.yaml new file mode 100644 index 000000000..b6c14313d --- /dev/null +++ b/tests/unit-test/test-cases-values/sonarqube/test-notag-latest-cb.yaml @@ -0,0 +1,2 @@ +community: + enabled: true