diff --git a/.gitignore b/.gitignore index e0a3bc0618cf62d7905867a25404d4714640b47b..d890588e189903b1efc03a6e8f03a1d59d3735d1 100644 --- a/.gitignore +++ b/.gitignore @@ -22,3 +22,5 @@ charts/ska-tango-base/charts/tango-util-0.1.0.tgz charts/ska-tango-base/charts/* charts/ska-tango-base/Chart.lock charts/ska-tango-umbrella/charts +# we generate this values.yaml +charts/ska-tango-base/values.yaml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 703860ccef03a0c9d6c69b4791844b71c5606004..72beaafa03518223a92e71f7a730d1029b0aa0c1 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -58,8 +58,9 @@ build_dependencies: variables: OCI_IMAGE: ska-tango-images-tango-dependencies rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_1"' - - if: '$CI_PIPELINE_SOURCE == "push"' ## To eliminate duplicate detached MRs + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' ## To eliminate duplicate detached MRs changes: - images/ska-tango-images-tango-dependencies/* @@ -71,8 +72,9 @@ build_dependencies-alpine: variables: OCI_IMAGE: ska-tango-images-tango-dependencies-alpine rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_1"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies-alpine/* @@ -84,8 +86,9 @@ build_tango-db: variables: OCI_IMAGE: ska-tango-images-tango-db rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-db/* @@ -97,8 +100,9 @@ build_tango-db-alpine: variables: OCI_IMAGE: ska-tango-images-tango-db-alpine rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_1"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-db-alpine/* @@ -111,8 +115,9 @@ build_tango-cpp: OCI_IMAGE: ska-tango-images-tango-cpp BUILD_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-dependencies rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_2"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-cpp/* @@ -126,8 +131,9 @@ build_tango-cpp-alpine: OCI_IMAGE: ska-tango-images-tango-cpp-alpine BUILD_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-dependencies-alpine rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_2"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies-alpine/* - images/ska-tango-images-tango-cpp-alpine/* @@ -141,8 +147,9 @@ build_tango-java: OCI_IMAGE: ska-tango-images-tango-java BUILD_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-dependencies rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_2"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-java/* @@ -157,8 +164,9 @@ build_tango-rest: BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-java BUILD_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-dependencies rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_3"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-cpp/* @@ -173,8 +181,9 @@ build_pytango-builder: OCI_IMAGE: ska-tango-images-pytango-builder BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-cpp rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_3"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-cpp/* @@ -189,8 +198,9 @@ build_pytango-builder-alpine: OCI_IMAGE: ska-tango-images-pytango-builder-alpine BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-cpp-alpine rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_3"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-cpp-alpine/* - images/ska-tango-images-pytango-builder-alpine/* @@ -204,8 +214,9 @@ build_tango-pogo: OCI_IMAGE: ska-tango-images-tango-pogo BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-java rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_3"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-java/* @@ -220,8 +231,9 @@ build_tango-libtango: OCI_IMAGE: ska-tango-images-tango-libtango BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-cpp rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_3"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-cpp/* @@ -236,8 +248,9 @@ build_tango-jive: OCI_IMAGE: ska-tango-images-tango-jive BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-java rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_3"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-java/* @@ -253,8 +266,9 @@ build_pytango-runtime: BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-cpp BUILD_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-builder rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes"' - - if: '$CI_PIPELINE_SOURCE == "push" || $FORCE_REBUILD == "build_4"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event" || $FORCE_REBUILD == "build_4"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-cpp/* @@ -271,8 +285,9 @@ build_pytango-runtime-alpine: BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-cpp-alpine BUILD_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-builder-alpine rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_4"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-cpp-alpine/* - images/ska-tango-images-pytango-builder-alpine/* @@ -287,8 +302,9 @@ build_tango-admin: OCI_IMAGE: ska-tango-images-tango-admin BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-libtango rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_4"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-cpp/* @@ -304,8 +320,9 @@ build_tango-databaseds: OCI_IMAGE: ska-tango-images-tango-databaseds BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-libtango rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_4"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-cpp/* @@ -321,8 +338,9 @@ build_tango-test: OCI_IMAGE: ska-tango-images-tango-test BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-libtango rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_4"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-cpp/* @@ -339,8 +357,9 @@ build_tango-dsconfig: BUILD_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-builder BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-runtime rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_5"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-cpp/* @@ -358,8 +377,9 @@ build_tango-dsconfig-alpine: BUILD_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-builder-alpine BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-runtime-alpine rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_5"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-pytango-builder-alpine/* - images/ska-tango-images-pytango-runtime-alpine/* @@ -375,8 +395,9 @@ build_tango-itango: BUILD_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-builder BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-runtime rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_5"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-cpp/* @@ -394,8 +415,9 @@ build_tango-itango-alpine: BUILD_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-builder-alpine BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-runtime-alpine rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_5"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-pytango-builder-alpine/* - images/ska-tango-images-pytango-runtime-alpine/* @@ -410,8 +432,9 @@ build_tango-vnc: OCI_IMAGE: ska-tango-images-tango-vnc BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-tango-java rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_5"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-java/* @@ -427,8 +450,9 @@ build_tango-pytango: BUILD_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-builder BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-runtime rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_5"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-dependencies/* - images/ska-tango-images-tango-cpp/* @@ -446,8 +470,9 @@ build_tango-pytango-alpine: BUILD_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-builder-alpine BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-runtime-alpine rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_5"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-pytango-builder-alpine/* - images/ska-tango-images-tango-pytango-alpine/* @@ -461,8 +486,9 @@ build_tango-panic: OCI_IMAGE: ska-tango-images-tango-panic BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-builder rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_5"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-panic/* - images/ska-tango-images-tango-dependencies/* @@ -480,8 +506,9 @@ build_tango-panic-gui: OCI_IMAGE: ska-tango-images-tango-panic-gui BASE_IMAGE: ${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/ska-tango-images-pytango-builder rules: + - if: '$CI_COMMIT_TAG' - if: '$FORCE_REBUILD == "yes" || $FORCE_REBUILD == "build_5"' - - if: '$CI_PIPELINE_SOURCE == "push"' + - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' changes: - images/ska-tango-images-tango-panic-gui/* - images/ska-tango-images-tango-dependencies/* @@ -500,7 +527,7 @@ test-chart: script: - kubectl version - helm version - - make install-chart + - make install-chart CAR_OCI_REGISTRY_HOST=${CI_REGISTRY}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME} - make wait - make test - mkdir -p ./build/reports ./build/htmlcov @@ -519,15 +546,29 @@ test-chart: reports: junit: build/reports/unit-tests.xml +# Custom OCI Image publish stage +oci-image-publish: #Executed on a tag for CAR + stage: publish + image: $SKA_K8S_TOOLS_DOCKER_BUILDER_IMAGE + tags: + - k8srunner + before_script: + - '[ -f .make/oci.mk ] || (echo "File oci.mk not included in Makefile; exit 1")' + - 'make help | grep oci.mk:oci-publish' + - echo $CI_REGISTRY_PASSWORD | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY + - echo $CAR_OCI_REGISTRY_PASSWORD | docker login -u $CAR_OCI_REGISTRY_USERNAME --password-stdin $CAR_OCI_REGISTRY_HOST + script: + - make custom-oci-publish-all + rules: + - if: '$CI_COMMIT_TAG' + # Include CI templates include: # OCI Images - # do a custom set of build stages + # do a custom set of build and publish stages - project: 'ska-telescope/templates-repository' file: 'gitlab-ci/includes/oci-image-lint.gitlab-ci.yml' - - project: 'ska-telescope/templates-repository' - file: 'gitlab-ci/includes/oci-image-publish.gitlab-ci.yml' # Helm Charts - project: 'ska-telescope/templates-repository' diff --git a/.make b/.make index a8cb6bd09c57481e58e66c90cc87e23c2b49c5dc..ad14f13b66f38159dc7c8aec61c101daf027b6c2 160000 --- a/.make +++ b/.make @@ -1 +1 @@ -Subproject commit a8cb6bd09c57481e58e66c90cc87e23c2b49c5dc +Subproject commit ad14f13b66f38159dc7c8aec61c101daf027b6c2 diff --git a/Makefile b/Makefile index dc3ae8afa07a0f7e2ee1f5d2bf7e0da0134c9473..1300c3aaa74a946ddbd27ef91171bb123f7150a0 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,7 @@ BASE = $(shell pwd) HELM_CHARTS_TO_PUBLISH ?= ska-tango-util ska-tango-base OCI_IMAGES ?= ska-tango-images-tango-dependencies ska-tango-images-tango-dependencies-alpine ska-tango-images-tango-db ska-tango-images-tango-cpp ska-tango-images-tango-cpp-alpine ska-tango-images-tango-java ska-tango-images-tango-rest ska-tango-images-pytango-builder ska-tango-images-pytango-builder-alpine ska-tango-images-tango-pogo ska-tango-images-tango-libtango ska-tango-images-tango-jive ska-tango-images-pytango-runtime ska-tango-images-pytango-runtime-alpine ska-tango-images-tango-admin ska-tango-images-tango-databaseds ska-tango-images-tango-test ska-tango-images-tango-dsconfig ska-tango-images-tango-itango ska-tango-images-tango-vnc ska-tango-images-tango-pytango ska-tango-images-tango-panic ska-tango-images-tango-panic-gui +OCI_IMAGES_TO_PUBLISH ?= $(OCI_IMAGES) KUBE_NAMESPACE ?= ska-tango-images#namespace to be used RELEASE_NAME ?= test## release name of the chart @@ -68,7 +69,7 @@ delete_namespace: ## delete the kubernetes namespace kubectl describe namespace $(KUBE_NAMESPACE) && kubectl delete namespace $(KUBE_NAMESPACE); \ fi -package: ## package charts +package: helm-pre-publish ## package charts @echo "Packaging helm charts. Any existing file won't be overwritten."; \ mkdir -p ./tmp @for i in $(CHARTS); do \ @@ -78,15 +79,23 @@ package: ## package charts cd ./repository && helm repo index .; \ rm -rf ./tmp -dep-up: ## update dependencies for every charts in the env var CHARTS +helm-pre-publish: ## hook before helm chart publish + @echo "helm-pre-publish: generating charts/ska-tango-base/values.yaml" + @cd charts/ska-tango-base && bash ./values.yaml.sh + +helm-pre-lint: helm-pre-publish ## make sure auto-generate values.yaml happens + +custom-oci-publish-all: ## Custom Publish all OCI Images in OCI_IMAGES_TO_PUBLISH using image local .release + $(foreach ociimage,$(OCI_IMAGES_TO_PUBLISH), make oci-publish OCI_IMAGE=$(ociimage) RELEASE_CONTEXT_DIR=images/$(ociimage);) + +dep-up: helm-pre-publish ## update dependencies for every charts in the env var CHARTS @cd charts; \ for i in $(CHARTS); do \ helm dependency update $${i}; \ done; install-chart: clean dep-up namespace## install the helm chart with name RELEASE_NAME and path UMBRELLA_CHART_PATH on the namespace KUBE_NAMESPACE - RELEASE_SUPPORT=$(RELEASE_SUPPORT) bash ./scripts/generate-values.sh; \ - cd charts; \ + @cd charts; \ sed -e 's/CI_PROJECT_PATH_SLUG/$(CI_PROJECT_PATH_SLUG)/' ci-values.yaml > generated_values.yaml; \ sed -e 's/CI_ENVIRONMENT_SLUG/$(CI_ENVIRONMENT_SLUG)/' generated_values.yaml > values.yaml; \ helm install $(RELEASE_NAME) \ @@ -98,7 +107,7 @@ install-chart: clean dep-up namespace## install the helm chart with name RELEASE rm values.yaml template-chart: clean dep-up## install the helm chart with name RELEASE_NAME and path UMBRELLA_CHART_PATH on the namespace KUBE_NAMESPACE - @RELEASE_SUPPORT=$(RELEASE_SUPPORT) bash ./scripts/generate-values.sh; \ + @cd charts; \ sed -e 's/CI_PROJECT_PATH_SLUG/$(CI_PROJECT_PATH_SLUG)/' ci-values.yaml > generated_values.yaml; \ sed -e 's/CI_ENVIRONMENT_SLUG/$(CI_ENVIRONMENT_SLUG)/' generated_values.yaml > values.yaml; \ helm template $(RELEASE_NAME) \ @@ -130,7 +139,7 @@ reinstall-chart: uninstall-chart install-chart ## reinstall the ska-tango-images # echo "<testsuites><testsuite errors=\"$(LINTING_OUTPUT)\" failures=\"0\" name=\"helm-lint\" skipped=\"0\" tests=\"0\" time=\"0.000\" timestamp=\"$(shell date)\"> </testsuite> </testsuites>" > build/linting.xml # exit $(LINTING_OUTPUT) -wait:## wait for pods to be ready +wait: ## wait for pods to be ready @echo "Waiting for pods to be ready" @date @kubectl -n $(KUBE_NAMESPACE) get pods @@ -168,7 +177,7 @@ k8s_test = tar -c tests/post-deployment/ | \ # base64 payload is given a boundary "~~~~BOUNDARY~~~~" and extracted using perl # clean up the run to completion container # exit the saved status -test: ## test the application on K8s +test: helm-pre-publish ## test the application on K8s cp charts/ska-tango-base/values.yaml tests/post-deployment/tango_values.yaml; \ $(call k8s_test,test); \ status=$$?; \ diff --git a/charts/ci-values.yaml b/charts/ci-values.yaml new file mode 100644 index 0000000000000000000000000000000000000000..696b3422973890628a8bde70590bd2fa4a16bd34 --- /dev/null +++ b/charts/ci-values.yaml @@ -0,0 +1,17 @@ +global: + annotations: + app.gitlab.com/app: CI_PROJECT_PATH_SLUG + app.gitlab.com/env: CI_ENVIRONMENT_SLUG + # by setting this parameter we can disable the lower level sub-system tango-base, archiver and webjive + # sub-system: + # tango-base: + # enabled: false + # archiver: + # enabled: false + # webjive: + # enabled: false + +# tango-base: +# enabled: true + + diff --git a/charts/ska-tango-base/values.yaml b/charts/ska-tango-base/values.yaml.sh similarity index 67% rename from charts/ska-tango-base/values.yaml rename to charts/ska-tango-base/values.yaml.sh index 1b348218c0d5248a29b3e242241cecc5773a91d4..6a4874d2ba711bf3b782693ff0ae18cb5e59577b 100644 --- a/charts/ska-tango-base/values.yaml +++ b/charts/ska-tango-base/values.yaml.sh @@ -1,3 +1,39 @@ +#!/bin/bash + +RELEASE_SUPPORT="${RELEASE_SUPPORT:-../../.make/.make-release-support}" +VALUES_YAML=values.yaml +CAR_OCI_REGISTRY_HOST="${CAR_OCI_REGISTRY_HOST:-artefact.skao.int}" +CI_COMMIT_SHORT_SHA="${CI_COMMIT_SHORT_SHA:-blah}" +SUFFIX="" + +# Disabled this as it complicates the rules: changes: - pxh 30/09/2021 +# Check if this is a dev build +# if [[ "${CAR_OCI_REGISTRY_HOST}" == registry.gitlab.com* ]] || [[ -z "${CAR_OCI_REGISTRY_HOST}" ]]; then +# SUFFIX="-dev.${CI_COMMIT_SHORT_SHA}" #"-" is used as "+" causes the docker building process to fail +# fi + +cat <<EOF > ${VALUES_YAML} +# Default values for tango-base. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +global: + annotations: + app.gitlab.com/app: CI_PROJECT_PATH_SLUG + app.gitlab.com/env: CI_ENVIRONMENT_SLUG + # by setting this parameter we can disable the lower level sub-system tango-base, archiver and webjive + # sub-system: + # tango-base: + # enabled: false + # archiver: + # enabled: false + # webjive: + # enabled: false + +# tango-base: +# enabled: true + + # Default values for tango-base. # This is a YAML-formatted file. # Declare variables to be passed into your templates. @@ -25,9 +61,9 @@ annotations: dsconfig: image: - registry: artefact.skao.int + registry: ${CAR_OCI_REGISTRY_HOST} image: ska-tango-images-tango-dsconfig - tag: 1.5.2 + tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=../../images/ska-tango-images-tango-dsconfig setContextHelper; getVersion)${SUFFIX} pullPolicy: IfNotPresent itango: @@ -37,9 +73,9 @@ itango: domain: interactive-testing intent: enabling image: - registry: artefact.skao.int + registry: ${CAR_OCI_REGISTRY_HOST} image: ska-tango-images-tango-itango - tag: 9.3.6 + tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=../../images/ska-tango-images-tango-itango setContextHelper; getVersion)${SUFFIX} pullPolicy: IfNotPresent resources: requests: @@ -57,9 +93,9 @@ databaseds: domain: tango-configuration intent: production image: - registry: artefact.skao.int + registry: ${CAR_OCI_REGISTRY_HOST} image: ska-tango-images-tango-cpp - tag: 9.3.7 + tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=../../images/ska-tango-images-tango-cpp setContextHelper; getVersion)${SUFFIX} pullPolicy: IfNotPresent resources: requests: @@ -103,9 +139,9 @@ deviceServers: devices: - name: "sys/tg_test/1" image: - registry: artefact.skao.int + registry: ${CAR_OCI_REGISTRY_HOST} image: ska-tango-images-tango-java - tag: 9.3.5 + tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=../../images/ska-tango-images-tango-java setContextHelper; getVersion)${SUFFIX} pullPolicy: IfNotPresent resources: requests: @@ -125,9 +161,9 @@ tangodb: domain: tango-configuration intent: production image: - registry: artefact.skao.int + registry: ${CAR_OCI_REGISTRY_HOST} image: ska-tango-images-tango-db - tag: 10.4.13 + tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=../../images/ska-tango-images-tango-db setContextHelper; getVersion)${SUFFIX} pullPolicy: IfNotPresent db: rootpw: secret @@ -165,9 +201,9 @@ jive: domain: interactive-testing intent: enabling image: - registry: artefact.skao.int + registry: ${CAR_OCI_REGISTRY_HOST} image: ska-tango-images-tango-java - tag: 9.3.5 + tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=../../images/ska-tango-images-tango-java setContextHelper; getVersion)${SUFFIX} pullPolicy: IfNotPresent resources: requests: @@ -190,9 +226,9 @@ vnc: nodeport_novnc: 32082 replicas: 3 image: - registry: artefact.skao.int + registry: ${CAR_OCI_REGISTRY_HOST} image: ska-tango-images-tango-vnc - tag: 0.1.4 + tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=../../images/ska-tango-images-tango-vnc setContextHelper; getVersion)${SUFFIX} pullPolicy: IfNotPresent resources: requests: @@ -212,9 +248,9 @@ tangorest: domain: tango-configuration intent: enabling image: - registry: artefact.skao.int + registry: ${CAR_OCI_REGISTRY_HOST} image: ska-tango-images-tango-rest - tag: 1.14.5 + tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=../../images/ska-tango-images-tango-rest setContextHelper; getVersion)${SUFFIX} pullPolicy: IfNotPresent resources: requests: @@ -233,9 +269,9 @@ logviewer: domain: interactive-testing intent: enabling image: - registry: artefact.skao.int + registry: ${CAR_OCI_REGISTRY_HOST} image: ska-tango-images-tango-java - tag: 9.3.5 + tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=../../images/ska-tango-images-tango-java setContextHelper; getVersion)${SUFFIX} pullPolicy: IfNotPresent resources: requests: @@ -257,3 +293,5 @@ nodeSelector: {} affinity: {} tolerations: [] + +EOF diff --git a/scripts/generate-values.sh b/scripts/generate-values.sh deleted file mode 100755 index 58b9e126fc2f165bbe43119d2b491bf312ddf947..0000000000000000000000000000000000000000 --- a/scripts/generate-values.sh +++ /dev/null @@ -1,286 +0,0 @@ -#!/bin/bash - -RELEASE_SUPPORT=./.make/.make-release-support -VALUES_YAML=./charts/ci-values.yaml -OCI_REGISTRY=registry.gitlab.com/ska-telescope/ska-tango-images - -cat <<EOF > ${VALUES_YAML} -global: - annotations: - app.gitlab.com/app: CI_PROJECT_PATH_SLUG - app.gitlab.com/env: CI_ENVIRONMENT_SLUG - # by setting this parameter we can disable the lower level sub-system tango-base, archiver and webjive - # sub-system: - # tango-base: - # enabled: false - # archiver: - # enabled: false - # webjive: - # enabled: false - -# tango-base: -# enabled: true - - -# Default values for tango-base. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -ska-tango-base: - display: ":0" - xauthority: "~/.Xauthority" - - global: - minikube: false - tango_host: databaseds-tango-base-{{.Release.Name}}:10000 - retry: - - "--sleep=1" - - "--tries=100" - - homeDir: /home/ubuntu - system: SW-infrastructure - subsystem: ska-tango-base - telescope: SKA-mid - - labels: - app: ska-tango-images - annotations: - app.gitlab.com/app: CI_PROJECT_PATH_SLUG - app.gitlab.com/env: CI_ENVIRONMENT_SLUG - - dsconfig: - image: - registry: ${OCI_REGISTRY} - image: ska-tango-images-tango-dsconfig - tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=images/ska-tango-images-tango-dsconfig setContextHelper; getVersion) - pullPolicy: IfNotPresent - - itango: - enabled: false - component: itango-console - function: generic-tango-console - domain: interactive-testing - intent: enabling - image: - registry: ${OCI_REGISTRY} - image: ska-tango-images-tango-itango - tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=images/ska-tango-images-tango-itango setContextHelper; getVersion) - pullPolicy: IfNotPresent - resources: - requests: - cpu: 100m # 00m = 0.1 CPU - memory: 128Mi # 128Mi = 0.125 GB mem - ephemeral-storage: 512Mi - limits: - cpu: 100m # 00m = 0.1 CPU - memory: 128Mi # 128Mi = 0.125 GB mem - ephemeral-storage: 512Mi - - databaseds: - component: databaseds - function: tangodb-interface - domain: tango-configuration - intent: production - image: - registry: ${OCI_REGISTRY} - image: ska-tango-images-tango-cpp - tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=images/ska-tango-images-tango-cpp setContextHelper; getVersion) - pullPolicy: IfNotPresent - resources: - requests: - cpu: 100m # 100m = 0.1 CPU - memory: 128Mi # 128Mi = 0.125 GB mem - ephemeral-storage: 512Mi - limits: - cpu: 200m # 200m = 0.2 CPU - memory: 256Mi # 256Mi = 0.25 GB mem - ephemeral-storage: 1Gi - livenessProbe: - enabled: false - initialDelaySeconds: 0 - periodSeconds: 10 - timeoutSeconds: 1 - successThreshold: 1 - failureThreshold: 3 - readinessProbe: - enabled: false - initialDelaySeconds: 0 - periodSeconds: 10 - timeoutSeconds: 1 - successThreshold: 1 - failureThreshold: 3 - - deviceServers: - - name: tangotest - function: tango-test - domain: tango-base - command: "/usr/local/bin/TangoTest" - instances: ["test"] - depends_on: - - device: sys/database/2 - environment_variables: [] - server: - name: "TangoTest" - instances: - - name: "test" - classes: - - name: "TangoTest" - devices: - - name: "sys/tg_test/1" - image: - registry: ${OCI_REGISTRY} - image: ska-tango-images-tango-java - tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=images/ska-tango-images-tango-java setContextHelper; getVersion) - pullPolicy: IfNotPresent - resources: - requests: - cpu: 200m # 200m = 0.2 CPU - memory: 256Mi # 256Mi = 0.25 GB mem - ephemeral-storage: 1Gi - limits: - cpu: 500m # 500m = 0.5 CPU - memory: 512Mi # 512Mi = 0.5 GB mem - ephemeral-storage: 1Gi - - tangodb: - enabled: true - use_pv: false - component: tangodb - function: tango-device-configuration - domain: tango-configuration - intent: production - image: - registry: ${OCI_REGISTRY} - image: ska-tango-images-tango-db - tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=images/ska-tango-images-tango-db setContextHelper; getVersion) - pullPolicy: IfNotPresent - db: - rootpw: secret - db: tango - user: tango - password: tango - resources: - requests: - cpu: 100m # 100m = 0.1 CPU - memory: 256Mi # 256Mi = 0.25 GB mem - ephemeral-storage: 1Gi - limits: - cpu: 200m # 200m = 0.2 CPU - memory: 256Mi # 256Mi = 0.25 GB mem - ephemeral-storage: 2Gi - livenessProbe: - enabled: false - initialDelaySeconds: 0 - periodSeconds: 10 - timeoutSeconds: 1 - successThreshold: 1 - failureThreshold: 3 - readinessProbe: - enabled: false - initialDelaySeconds: 0 - periodSeconds: 10 - timeoutSeconds: 1 - successThreshold: 1 - failureThreshold: 3 - - jive: - enabled: false - component: jive-gui - function: generic-tango-jive-gui - domain: interactive-testing - intent: enabling - image: - registry: ${OCI_REGISTRY} - image: ska-tango-images-tango-java - tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=images/ska-tango-images-tango-java setContextHelper; getVersion) - pullPolicy: IfNotPresent - resources: - requests: - cpu: 200m # 200m = 0.2 CPU - memory: 256Mi # 256Mi = 0.25 GB mem - ephemeral-storage: 256Mi - limits: - cpu: 500m # 500m = 0.5 CPU - memory: 512Mi # 512Mi = 0.5 GB mem - ephemeral-storage: 256Mi - - vnc: - enabled: false - component: vnc-gui - function: generic-tango-vnc-gui - domain: interactive-testing - intent: enabling - nodeport_enabled: false - nodeport_vnc: 32081 - nodeport_novnc: 32082 - replicas: 3 - image: - registry: ${OCI_REGISTRY} - image: ska-tango-images-tango-vnc - tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=images/ska-tango-images-tango-vnc setContextHelper; getVersion) - pullPolicy: IfNotPresent - resources: - requests: - cpu: 100m # 100m = 0.1 CPU - memory: 256Mi # 256Mi = 0.25 GB mem - ephemeral-storage: 256Mi - limits: - cpu: 100m # 100m = 0.1 CPU - memory: 256Mi # 256Mi = 0.25 GB mem - ephemeral-storage: 256Mi - - tangorest: - enabled: false - replicas: 3 - component: tango-rest - function: tango-http-interface - domain: tango-configuration - intent: enabling - image: - registry: ${OCI_REGISTRY} - image: ska-tango-images-tango-rest - tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=images/ska-tango-images-tango-rest setContextHelper; getVersion) - pullPolicy: IfNotPresent - resources: - requests: - cpu: 100m # 100m = 0.1 CPU - memory: 256Mi # 256Mi = 0.25 GB mem - ephemeral-storage: 256Mi - limits: - cpu: 200m # 100m = 0.1 CPU - memory: 512Mi # 256Mi = 0.25 GB mem - ephemeral-storage: 512Mi - - logviewer: - enabled: false - component: logviewer - function: tango-log-inspection - domain: interactive-testing - intent: enabling - image: - registry: ${OCI_REGISTRY} - image: ska-tango-images-tango-java - tag: $(. ${RELEASE_SUPPORT}; RELEASE_CONTEXT_DIR=images/ska-tango-images-tango-java setContextHelper; getVersion) - pullPolicy: IfNotPresent - resources: - requests: - cpu: 100m # 100m = 0.1 CPU - memory: 128Mi # 128Mi = 0.125 GB mem - ephemeral-storage: 256Mi - limits: - cpu: 100m # 100m = 0.1 CPU - memory: 256Mi # 256Mi = 0.25 GB mem - ephemeral-storage: 256Mi - - # Configure Ingress resource that allow you to access the Tango REST API - ingress: - enabled: true - nginx: true - - nodeSelector: {} - - affinity: {} - - tolerations: [] - -EOF