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/CHANGELOG.md b/charts/sonarqube/CHANGELOG.md index 2079dfa7e..96a41de83 100644 --- a/charts/sonarqube/CHANGELOG.md +++ b/charts/sonarqube/CHANGELOG.md @@ -6,6 +6,7 @@ All changes to this chart will be documented in this file. * Update ingress-nginx subchart to 4.11.3 * Support Kubernetes v1.32 * Remove the default passcode provided with `monitoringPasscode` +* 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 b413333d7..03d7f4439 100644 --- a/charts/sonarqube/Chart.yaml +++ b/charts/sonarqube/Chart.yaml @@ -38,6 +38,8 @@ annotations: description: "Support Kubernetes v1.32" - kind: changed description: "Remove the default passcode provided with 'monitoringPasscode'" + - 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/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/values.schema.json b/charts/sonarqube/values.schema.json index 9af8e8afb..c5e3a31f6 100644 --- a/charts/sonarqube/values.schema.json +++ b/charts/sonarqube/values.schema.json @@ -6,14 +6,10 @@ "properties": { "edition": { "type": "string", - "enum": ["community", "developer", "enterprise"], - "properties": { - "community": { - "type": "string", - "deprecated": true, - "$comment": "(DEPRECATED) Please use `community.enabled` instead" - } - } + "enum": [ + "developer", + "enterprise" + ] }, "persistence": { "type": "object", @@ -40,8 +36,7 @@ } } }, - "OpenShift": - { + "OpenShift": { "type": "object", "properties": { "createSCC": { @@ -98,7 +93,10 @@ }, "replicaCount": { "type": "integer", - "enum": [0, 1] + "enum": [ + 0, + 1 + ] }, "jvmOpts": { "type": "string", @@ -172,20 +170,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" @@ -205,5 +200,65 @@ } } } - } - } + }, + "allOf": [ + { + "if": { + "properties": { + "community": { + "properties": { + "enabled": { + "const": true + } + } + } + } + }, + "then": { + "properties": { + "edition": { + "maxLength": 0 + } + } + } + }, + { + "if": { + "properties": { + "community": { + "properties": { + "enabled": { + "const": false + } + } + } + } + }, + "then": { + "required": [ + "edition" + ] + } + }, + { + "if": { + "not": { + "properties": { + "community": { + "properties": { + "enabled": { + "type": "boolean" + } + } + } + } + } + }, + "then": { + "required": [ + "edition" + ] + } + } + ] +} 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..e65c08e76 100644 --- a/tests/dynamic-compatibility-test/go.mod +++ b/tests/dynamic-compatibility-test/go.mod @@ -1,73 +1,101 @@ 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 + helm.sh/helm/v3 v3.16.4 + k8s.io/api v0.31.3 + k8s.io/apimachinery v0.31.3 ) 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.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/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.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/copystructure v1.2.0 // 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/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/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/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/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 + 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.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/apiextensions-apiserver v0.31.3 // 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..98ef472bf --- /dev/null +++ b/tests/dynamic-compatibility-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.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= +helm.sh/helm/v3 v3.16.4 h1:rBn/h9MACw+QlhxQTjpl8Ifx+VTWaYsw3rguGBYBzr0= +helm.sh/helm/v3 v3.16.4/go.mod h1:k8QPotUt57wWbi90w3LNmg3/MWcLPigVv+0/X4B8BzA= +k8s.io/api v0.31.3 h1:umzm5o8lFbdN/hIXbrK9oRpOproJO62CV1zqxXrLgk8= +k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= +k8s.io/apiextensions-apiserver v0.31.3 h1:+GFGj2qFiU7rGCsA5o+p/rul1OQIq6oYpQw4+u+nciE= +k8s.io/apiextensions-apiserver v0.31.3/go.mod h1:2DSpFhUZZJmn/cr/RweH1cEVVbzFw9YBu4T+U3mf1e4= +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/schema_test.go b/tests/dynamic-compatibility-test/schema_test.go new file mode 100644 index 000000000..ae33948dc --- /dev/null +++ b/tests/dynamic-compatibility-test/schema_test.go @@ -0,0 +1,203 @@ +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"}}, + 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{"sonarqube/invalid-edition.yaml"}, + expectedError: "edition: edition must be one of the following: \"developer\", \"enterprise\"", + }, + { + testCaseName: "no-default-edition", + valuesFilesPaths: []string{"sonarqube/invalid-no-default-edition.yaml"}, + expectedError: "edition is required", + }, + { + testCaseName: "community-disabled-no-edition", + valuesFilesPaths: []string{"sonarqube/invalid-community-disabled-no-edition.yaml"}, + expectedError: "edition is required", + }, + } + + 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{"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{"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{"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{"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{"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{"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{"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) +} 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/invalid-community-disabled-no-edition.yaml b/tests/dynamic-compatibility-test/sonarqube/invalid-community-disabled-no-edition.yaml new file mode 100644 index 000000000..233d6fbae --- /dev/null +++ b/tests/dynamic-compatibility-test/sonarqube/invalid-community-disabled-no-edition.yaml @@ -0,0 +1,2 @@ +community: + enabled: false diff --git a/tests/dynamic-compatibility-test/sonarqube/invalid-edition.yaml b/tests/dynamic-compatibility-test/sonarqube/invalid-edition.yaml new file mode 100644 index 000000000..dadc33fe9 --- /dev/null +++ b/tests/dynamic-compatibility-test/sonarqube/invalid-edition.yaml @@ -0,0 +1 @@ +edition: "MyAwesomeEdition" diff --git a/tests/dynamic-compatibility-test/sonarqube/invalid-no-default-edition.yaml b/tests/dynamic-compatibility-test/sonarqube/invalid-no-default-edition.yaml new file mode 100644 index 000000000..183809e32 --- /dev/null +++ b/tests/dynamic-compatibility-test/sonarqube/invalid-no-default-edition.yaml @@ -0,0 +1 @@ +# This file is empty on purpose diff --git a/tests/dynamic-compatibility-test/sonarqube/test-build-number.yaml b/tests/dynamic-compatibility-test/sonarqube/test-build-number.yaml new file mode 100644 index 000000000..c221d1578 --- /dev/null +++ b/tests/dynamic-compatibility-test/sonarqube/test-build-number.yaml @@ -0,0 +1,3 @@ +community: + enabled: true + buildNumber: "24.12.0.99999" diff --git a/tests/dynamic-compatibility-test/sonarqube/test-community-build-empty-tag.yaml b/tests/dynamic-compatibility-test/sonarqube/test-community-build-empty-tag.yaml new file mode 100644 index 000000000..f2bfda351 --- /dev/null +++ b/tests/dynamic-compatibility-test/sonarqube/test-community-build-empty-tag.yaml @@ -0,0 +1,6 @@ +community: + enabled: true + buildNumber: "12345" + +image: + tag: "" diff --git a/tests/dynamic-compatibility-test/sonarqube/test-community-empty-build-empty-tag.yaml b/tests/dynamic-compatibility-test/sonarqube/test-community-empty-build-empty-tag.yaml new file mode 100644 index 000000000..ccf0f11bd --- /dev/null +++ b/tests/dynamic-compatibility-test/sonarqube/test-community-empty-build-empty-tag.yaml @@ -0,0 +1,3 @@ +community: + enabled: true + buildNumber: ~ diff --git a/tests/dynamic-compatibility-test/sonarqube/test-custom-image-values.yaml b/tests/dynamic-compatibility-test/sonarqube/test-custom-image-values.yaml new file mode 100644 index 000000000..ce8d24d38 --- /dev/null +++ b/tests/dynamic-compatibility-test/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/dynamic-compatibility-test/sonarqube/test-image-tag-developer.yaml b/tests/dynamic-compatibility-test/sonarqube/test-image-tag-developer.yaml new file mode 100644 index 000000000..16073cfbd --- /dev/null +++ b/tests/dynamic-compatibility-test/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/dynamic-compatibility-test/sonarqube/test-notag-appVersion-developer.yaml b/tests/dynamic-compatibility-test/sonarqube/test-notag-appVersion-developer.yaml new file mode 100644 index 000000000..a2e6cdb04 --- /dev/null +++ b/tests/dynamic-compatibility-test/sonarqube/test-notag-appVersion-developer.yaml @@ -0,0 +1,4 @@ +community: + enabled: false + +edition: developer diff --git a/tests/dynamic-compatibility-test/sonarqube/test-notag-latest-cb.yaml b/tests/dynamic-compatibility-test/sonarqube/test-notag-latest-cb.yaml new file mode 100644 index 000000000..b6c14313d --- /dev/null +++ b/tests/dynamic-compatibility-test/sonarqube/test-notag-latest-cb.yaml @@ -0,0 +1,2 @@ +community: + enabled: true 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..719298d9b --- /dev/null +++ b/tests/unit-test/schema_test.go @@ -0,0 +1,204 @@ +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: "edition: edition must be one of the following: \"developer\", \"enterprise\"", + }, + { + testCaseName: "no-default-edition", + valuesFilesPaths: []string{"test-cases-values/sonarqube/invalid-no-default-edition.yaml"}, + expectedError: "edition is required", + }, + { + testCaseName: "community-disabled-no-edition", + valuesFilesPaths: []string{"test-cases-values/sonarqube/invalid-community-disabled-no-edition.yaml"}, + expectedError: "edition is required", + }, + } + + 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) +} 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-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-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