From 8558a54989d771822112ce5aa501ce76c672cc15 Mon Sep 17 00:00:00 2001 From: Nikolay Gorbatov Date: Mon, 18 Mar 2024 16:52:59 +0300 Subject: [PATCH] prepare se Signed-off-by: Nikolay Gorbatov --- .github/ci_templates/helper_jobs.yml | 5 +- .github/scripts/js/constants.js | 6 +- .../workflow_templates/build-and-test_dev.yml | 10 + .../build-and-test_release.yml | 14 + .../deploy-channel.multi.yml | 13 +- .../suspend-channel.multi.yml | 4 +- .github/workflows/build-and-test_dev.yml | 15 +- .github/workflows/build-and-test_release.yml | 299 +++++++++++++++++- .github/workflows/deploy-alpha.yml | 168 +++++++++- .github/workflows/deploy-beta.yml | 168 +++++++++- .github/workflows/deploy-early-access.yml | 168 +++++++++- .github/workflows/deploy-rock-solid.yml | 168 +++++++++- .github/workflows/deploy-stable.yml | 168 +++++++++- .github/workflows/on-pull-request-labeled.yml | 5 +- .github/workflows/suspend-alpha.yml | 86 ++++- .github/workflows/suspend-beta.yml | 86 ++++- .github/workflows/suspend-early-access.yml | 86 ++++- .github/workflows/suspend-rock-solid.yml | 86 ++++- .github/workflows/suspend-stable.yml | 86 ++++- .github/workflows/validation.yml | 5 +- Makefile | 8 +- .../deckhouse-controller/register-go-hooks.go | 8 +- editions.yaml | 3 + ee/{ => se}/modules/380-metallb/.helmignore | 0 ee/{ => se}/modules/380-metallb/.namespace | 0 ee/{ => se}/modules/380-metallb/Chart.yaml | 0 .../modules/380-metallb/charts/helm_lib | 0 .../380-metallb/crds/addresspools.yaml | 0 .../modules/380-metallb/crds/bfdprofiles.yaml | 0 .../380-metallb/crds/bgpadvertisements.yaml | 0 .../modules/380-metallb/crds/bgppeers.yaml | 0 .../modules/380-metallb/crds/communities.yaml | 0 .../380-metallb/crds/ipaddresspools.yaml | 0 .../380-metallb/crds/l2advertisements.yaml | 0 .../modules/380-metallb/docs/CONFIGURATION.md | 0 .../380-metallb/docs/CONFIGURATION_RU.md | 0 .../modules/380-metallb/docs/EXAMPLES.md | 0 .../modules/380-metallb/docs/EXAMPLES_RU.md | 0 .../modules/380-metallb/docs/README.md | 0 .../modules/380-metallb/docs/README_RU.md | 0 ee/{ => se}/modules/380-metallb/enabled | 0 .../modules/380-metallb/hooks/common_test.go | 0 .../modules/380-metallb/hooks/ensure_crds.go | 0 .../380-metallb/images/artifact/werf.inc.yaml | 0 .../images/controller/werf.inc.yaml | 0 .../380-metallb/images/speaker/werf.inc.yaml | 0 .../kubernetes-cluster/metallb-pool.json | 0 .../kubernetes-cluster/metallb.json | 0 .../monitoring/prometheus-rules/metallb.yaml | 0 .../380-metallb/openapi/config-values.yaml | 0 .../openapi/doc-ru-config-values.yaml | 0 .../openapi/openapi-case-tests.yaml | 0 .../modules/380-metallb/openapi/values.yaml | 0 ee/{ => se}/modules/380-metallb/oss.yaml | 0 .../380-metallb/template_tests/module_test.go | 0 .../templates/controller/deployment.yaml | 0 .../templates/controller/ipaddresspools.yaml | 0 .../380-metallb/templates/controller/pdb.yaml | 0 .../templates/controller/podmonitor.yaml | 0 .../templates/controller/rbac-for-us.yaml | 0 .../380-metallb/templates/monitoring.yaml | 0 .../380-metallb/templates/namespace.yaml | 0 .../380-metallb/templates/rbac-for-us.yaml | 0 .../380-metallb/templates/rbac-to-us.yaml | 0 .../templates/registry-secret.yaml | 0 .../380-metallb/templates/speaker/_helper.tpl | 0 .../templates/speaker/bgp-advertisements.yaml | 0 .../templates/speaker/bgppeers.yaml | 0 .../templates/speaker/daemonset.yaml | 0 .../templates/speaker/l2-advertisements.yaml | 0 .../templates/speaker/podmonitor.yaml | 0 .../templates/speaker/rbac-for-us.yaml | 0 ee/{ => se}/modules/502-delivery/.gitignore | 0 ee/{ => se}/modules/502-delivery/.helmignore | 0 ee/{ => se}/modules/502-delivery/.namespace | 0 ee/{ => se}/modules/502-delivery/Chart.yaml | 0 .../modules/502-delivery/charts/helm_lib | 0 .../502-delivery/crds/argocd/application.yaml | 0 .../crds/argocd/applicationset.yaml | 0 .../502-delivery/crds/argocd/appproject.yaml | 0 .../502-delivery/crds/doc-ru-werfsource.yaml | 0 .../modules/502-delivery/crds/werfsource.yaml | 0 .../502-delivery/docs/CONFIGURATION.md | 0 .../502-delivery/docs/CONFIGURATION_RU.md | 0 ee/{ => se}/modules/502-delivery/docs/CR.md | 0 .../modules/502-delivery/docs/CR_RU.md | 0 ee/{ => se}/modules/502-delivery/docs/FAQ.md | 0 .../modules/502-delivery/docs/FAQ_RU.md | 0 .../modules/502-delivery/docs/README.md | 0 .../modules/502-delivery/docs/README_RU.md | 0 .../modules/502-delivery/docs/USAGE.md | 0 .../modules/502-delivery/docs/USAGE_RU.md | 0 ee/{ => se}/modules/502-delivery/enabled | 0 .../502-delivery/hack/get_manifests.sh | 0 .../modules/502-delivery/hack/retemplate.py | 0 .../modules/502-delivery/hooks/common_test.go | 0 .../502-delivery/hooks/ensure_argocd_crds.go | 0 .../modules/502-delivery/hooks/ensure_crds.go | 0 .../hooks/https/copy_custom_certificate.go | 0 .../hooks/patch_dex_secret_part_of_argocd.go | 0 .../hooks/werf_sources/common_test.go | 0 .../502-delivery/hooks/werf_sources/hook.go | 0 .../hooks/werf_sources/hook_test.go | 0 .../images/argocd-image-updater/Dockerfile | 0 .../502-delivery/images/argocd/Dockerfile | 0 .../images/werf-argocd-cmp-sidecar/Dockerfile | 0 .../502-delivery/openapi/config-values.yaml | 0 .../openapi/doc-ru-config-values.yaml | 0 .../openapi/openapi-case-tests.yaml | 0 .../modules/502-delivery/openapi/values.yaml | 0 ee/{ => se}/modules/502-delivery/oss.yaml | 0 .../copy_custom_certificate_test.go | 0 ...cd-application-controller-statefulset.yaml | 0 .../argocd-metrics-service.yaml | 0 .../application-controller/rbac-for-us.yaml | 0 ...-applicationset-controller-deployment.yaml | 0 ...ocd-applicationset-controller-service.yaml | 0 .../rbac-for-us.yaml | 0 .../templates/argocd/argocd-cm-configmap.yaml | 0 .../argocd-cmd-params-cm-configmap.yaml | 0 .../argocd/argocd-gpg-keys-cm-configmap.yaml | 0 .../argocd/argocd-rbac-cm-configmap.yaml | 0 .../argocd/argocd-secret-secret.yaml | 0 .../argocd-ssh-known-hosts-cm-configmap.yaml | 0 .../argocd/argocd-tls-certs-cm-configmap.yaml | 0 ...argocd-image-updater-config-configmap.yaml | 0 .../argocd-image-updater-deployment.yaml | 0 .../argocd-image-updater-secret-secret.yaml | 0 .../argocd/image-updater/rbac-for-us.yaml | 0 .../argocd-notifications-cm-configmap.yaml | 0 ...d-notifications-controller-deployment.yaml | 0 ...ifications-controller-metrics-service.yaml | 0 .../argocd-notifications-secret-secret.yaml | 0 .../notifications-controller/rbac-for-us.yaml | 0 .../argocd/redis/argocd-redis-deployment.yaml | 0 .../argocd/redis/argocd-redis-service.yaml | 0 .../templates/argocd/redis/rbac-for-us.yaml | 0 .../argocd-repo-server-deployment.yaml | 0 .../argocd-repo-server-service.yaml | 0 .../argocd/repo-server/rbac-for-us.yaml | 0 .../argocd/repo-server/repositories.yaml | 0 .../server/argocd-server-deployment.yaml | 0 .../server/argocd-server-metrics-service.yaml | 0 .../argocd/server/argocd-server-service.yaml | 0 .../argocd/server/d8-dex-client.yaml | 0 .../templates/argocd/server/d8-ingress.yaml | 0 .../templates/argocd/server/rbac-for-us.yaml | 0 .../templates/custom-certificate.yaml | 0 .../502-delivery/templates/namespace.yaml | 0 .../templates/registry-secret.yaml | 0 ee/se/modules/values-default.yaml | 1 + ee/se/modules/values-managed.yaml | 1 + ee/se/modules/values-minimal.yaml | 1 + tools/build_includes/candi-SE.yaml | 13 + tools/build_includes/modules-EE.yaml | 20 +- tools/build_includes/modules-FE.yaml | 20 +- tools/build_includes/modules-SE.yaml | 41 +++ tools/build_includes/modules-excluded-SE.yaml | 1 + .../modules-with-dependencies-EE.yaml | 92 +++--- .../modules-with-dependencies-FE.yaml | 92 +++--- .../modules-with-dependencies-SE.yaml | 185 +++++++++++ .../modules-with-exclude-EE.yaml | 52 +-- .../modules-with-exclude-FE.yaml | 52 +-- .../modules-with-exclude-SE.yaml | 105 ++++++ 164 files changed, 2121 insertions(+), 220 deletions(-) rename ee/{ => se}/modules/380-metallb/.helmignore (100%) rename ee/{ => se}/modules/380-metallb/.namespace (100%) rename ee/{ => se}/modules/380-metallb/Chart.yaml (100%) rename ee/{ => se}/modules/380-metallb/charts/helm_lib (100%) rename ee/{ => se}/modules/380-metallb/crds/addresspools.yaml (100%) rename ee/{ => se}/modules/380-metallb/crds/bfdprofiles.yaml (100%) rename ee/{ => se}/modules/380-metallb/crds/bgpadvertisements.yaml (100%) rename ee/{ => se}/modules/380-metallb/crds/bgppeers.yaml (100%) rename ee/{ => se}/modules/380-metallb/crds/communities.yaml (100%) rename ee/{ => se}/modules/380-metallb/crds/ipaddresspools.yaml (100%) rename ee/{ => se}/modules/380-metallb/crds/l2advertisements.yaml (100%) rename ee/{ => se}/modules/380-metallb/docs/CONFIGURATION.md (100%) rename ee/{ => se}/modules/380-metallb/docs/CONFIGURATION_RU.md (100%) rename ee/{ => se}/modules/380-metallb/docs/EXAMPLES.md (100%) rename ee/{ => se}/modules/380-metallb/docs/EXAMPLES_RU.md (100%) rename ee/{ => se}/modules/380-metallb/docs/README.md (100%) rename ee/{ => se}/modules/380-metallb/docs/README_RU.md (100%) rename ee/{ => se}/modules/380-metallb/enabled (100%) rename ee/{ => se}/modules/380-metallb/hooks/common_test.go (100%) rename ee/{ => se}/modules/380-metallb/hooks/ensure_crds.go (100%) rename ee/{ => se}/modules/380-metallb/images/artifact/werf.inc.yaml (100%) rename ee/{ => se}/modules/380-metallb/images/controller/werf.inc.yaml (100%) rename ee/{ => se}/modules/380-metallb/images/speaker/werf.inc.yaml (100%) rename ee/{ => se}/modules/380-metallb/monitoring/grafana-dashboards/kubernetes-cluster/metallb-pool.json (100%) rename ee/{ => se}/modules/380-metallb/monitoring/grafana-dashboards/kubernetes-cluster/metallb.json (100%) rename ee/{ => se}/modules/380-metallb/monitoring/prometheus-rules/metallb.yaml (100%) rename ee/{ => se}/modules/380-metallb/openapi/config-values.yaml (100%) rename ee/{ => se}/modules/380-metallb/openapi/doc-ru-config-values.yaml (100%) rename ee/{ => se}/modules/380-metallb/openapi/openapi-case-tests.yaml (100%) rename ee/{ => se}/modules/380-metallb/openapi/values.yaml (100%) rename ee/{ => se}/modules/380-metallb/oss.yaml (100%) rename ee/{ => se}/modules/380-metallb/template_tests/module_test.go (100%) rename ee/{ => se}/modules/380-metallb/templates/controller/deployment.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/controller/ipaddresspools.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/controller/pdb.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/controller/podmonitor.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/controller/rbac-for-us.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/monitoring.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/namespace.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/rbac-for-us.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/rbac-to-us.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/registry-secret.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/speaker/_helper.tpl (100%) rename ee/{ => se}/modules/380-metallb/templates/speaker/bgp-advertisements.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/speaker/bgppeers.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/speaker/daemonset.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/speaker/l2-advertisements.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/speaker/podmonitor.yaml (100%) rename ee/{ => se}/modules/380-metallb/templates/speaker/rbac-for-us.yaml (100%) rename ee/{ => se}/modules/502-delivery/.gitignore (100%) rename ee/{ => se}/modules/502-delivery/.helmignore (100%) rename ee/{ => se}/modules/502-delivery/.namespace (100%) rename ee/{ => se}/modules/502-delivery/Chart.yaml (100%) rename ee/{ => se}/modules/502-delivery/charts/helm_lib (100%) rename ee/{ => se}/modules/502-delivery/crds/argocd/application.yaml (100%) rename ee/{ => se}/modules/502-delivery/crds/argocd/applicationset.yaml (100%) rename ee/{ => se}/modules/502-delivery/crds/argocd/appproject.yaml (100%) rename ee/{ => se}/modules/502-delivery/crds/doc-ru-werfsource.yaml (100%) rename ee/{ => se}/modules/502-delivery/crds/werfsource.yaml (100%) rename ee/{ => se}/modules/502-delivery/docs/CONFIGURATION.md (100%) rename ee/{ => se}/modules/502-delivery/docs/CONFIGURATION_RU.md (100%) rename ee/{ => se}/modules/502-delivery/docs/CR.md (100%) rename ee/{ => se}/modules/502-delivery/docs/CR_RU.md (100%) rename ee/{ => se}/modules/502-delivery/docs/FAQ.md (100%) rename ee/{ => se}/modules/502-delivery/docs/FAQ_RU.md (100%) rename ee/{ => se}/modules/502-delivery/docs/README.md (100%) rename ee/{ => se}/modules/502-delivery/docs/README_RU.md (100%) rename ee/{ => se}/modules/502-delivery/docs/USAGE.md (100%) rename ee/{ => se}/modules/502-delivery/docs/USAGE_RU.md (100%) rename ee/{ => se}/modules/502-delivery/enabled (100%) rename ee/{ => se}/modules/502-delivery/hack/get_manifests.sh (100%) rename ee/{ => se}/modules/502-delivery/hack/retemplate.py (100%) rename ee/{ => se}/modules/502-delivery/hooks/common_test.go (100%) rename ee/{ => se}/modules/502-delivery/hooks/ensure_argocd_crds.go (100%) rename ee/{ => se}/modules/502-delivery/hooks/ensure_crds.go (100%) rename ee/{ => se}/modules/502-delivery/hooks/https/copy_custom_certificate.go (100%) rename ee/{ => se}/modules/502-delivery/hooks/patch_dex_secret_part_of_argocd.go (100%) rename ee/{ => se}/modules/502-delivery/hooks/werf_sources/common_test.go (100%) rename ee/{ => se}/modules/502-delivery/hooks/werf_sources/hook.go (100%) rename ee/{ => se}/modules/502-delivery/hooks/werf_sources/hook_test.go (100%) rename ee/{ => se}/modules/502-delivery/images/argocd-image-updater/Dockerfile (100%) rename ee/{ => se}/modules/502-delivery/images/argocd/Dockerfile (100%) rename ee/{ => se}/modules/502-delivery/images/werf-argocd-cmp-sidecar/Dockerfile (100%) rename ee/{ => se}/modules/502-delivery/openapi/config-values.yaml (100%) rename ee/{ => se}/modules/502-delivery/openapi/doc-ru-config-values.yaml (100%) rename ee/{ => se}/modules/502-delivery/openapi/openapi-case-tests.yaml (100%) rename ee/{ => se}/modules/502-delivery/openapi/values.yaml (100%) rename ee/{ => se}/modules/502-delivery/oss.yaml (100%) rename ee/{ => se}/modules/502-delivery/template_tests/copy_custom_certificate_test.go (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/application-controller/argocd-application-controller-statefulset.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/application-controller/argocd-metrics-service.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/application-controller/rbac-for-us.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/applicationset-controller/argocd-applicationset-controller-deployment.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/applicationset-controller/argocd-applicationset-controller-service.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/applicationset-controller/rbac-for-us.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/argocd-cm-configmap.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/argocd-cmd-params-cm-configmap.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/argocd-gpg-keys-cm-configmap.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/argocd-rbac-cm-configmap.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/argocd-secret-secret.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/argocd-ssh-known-hosts-cm-configmap.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/argocd-tls-certs-cm-configmap.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-config-configmap.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-deployment.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-secret-secret.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/image-updater/rbac-for-us.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-cm-configmap.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-controller-deployment.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-controller-metrics-service.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-secret-secret.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/notifications-controller/rbac-for-us.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/redis/argocd-redis-deployment.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/redis/argocd-redis-service.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/redis/rbac-for-us.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/repo-server/argocd-repo-server-deployment.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/repo-server/argocd-repo-server-service.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/repo-server/rbac-for-us.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/repo-server/repositories.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/server/argocd-server-deployment.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/server/argocd-server-metrics-service.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/server/argocd-server-service.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/server/d8-dex-client.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/server/d8-ingress.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/argocd/server/rbac-for-us.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/custom-certificate.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/namespace.yaml (100%) rename ee/{ => se}/modules/502-delivery/templates/registry-secret.yaml (100%) create mode 100644 ee/se/modules/values-default.yaml create mode 100644 ee/se/modules/values-managed.yaml create mode 100644 ee/se/modules/values-minimal.yaml create mode 100644 tools/build_includes/candi-SE.yaml create mode 100644 tools/build_includes/modules-SE.yaml create mode 100644 tools/build_includes/modules-excluded-SE.yaml create mode 100644 tools/build_includes/modules-with-dependencies-SE.yaml create mode 100644 tools/build_includes/modules-with-exclude-SE.yaml diff --git a/.github/ci_templates/helper_jobs.yml b/.github/ci_templates/helper_jobs.yml index 1c7d715a3f..c2be022018 100644 --- a/.github/ci_templates/helper_jobs.yml +++ b/.github/ci_templates/helper_jobs.yml @@ -255,6 +255,7 @@ pull_request_info: const hasEE = pr.labels.some((l) => l.name === 'edition/ee'); const hasCE = pr.labels.some((l) => l.name === 'edition/ce'); const hasBE = pr.labels.some((l) => l.name === 'edition/be'); + const hasSE = pr.labels.some((l) => l.name === 'edition/se'); let edition = defaultEdition; if (hasCE) { edition = 'CE'; @@ -262,8 +263,10 @@ pull_request_info: edition = 'EE'; } else if (hasBE) { edition = 'BE'; + } else if (hasSE) { + edition = 'SE'; } - core.info(`Edition labels: 'edition/ce':${hasCE}, 'edition/ee':${hasEE}, 'edition/be':${hasBE}`); + core.info(`Edition labels: 'edition/ce':${hasCE}, 'edition/ee':${hasEE}, 'edition/be':${hasBE}, 'edition/se':${hasSE}`); core.notice(`Enable '${edition}' edition for '${context.eventName}' trigger.`); // Construct head commit ref using pr number. diff --git a/.github/scripts/js/constants.js b/.github/scripts/js/constants.js index 5fcdffa87d..924d9a5943 100644 --- a/.github/scripts/js/constants.js +++ b/.github/scripts/js/constants.js @@ -57,7 +57,8 @@ const labels = { // Edition for build-and-test workflow 'edition/ce': { type: 'edition', edition: 'CE' }, 'edition/ee': { type: 'edition', edition: 'EE' }, - 'edition/be': { type: 'edition', edition: 'BE' } + 'edition/be': { type: 'edition', edition: 'BE' }, + 'edition/se': { type: 'edition', edition: 'SE' } }; module.exports.knownLabels = labels; @@ -151,6 +152,7 @@ const editions = [ 'CE', 'EE', 'FE', - 'BE' + 'BE', + 'SE' ]; module.exports.knownEditions = editions; diff --git a/.github/workflow_templates/build-and-test_dev.yml b/.github/workflow_templates/build-and-test_dev.yml index 66e1c1f36f..eb8cbb7eb6 100644 --- a/.github/workflow_templates/build-and-test_dev.yml +++ b/.github/workflow_templates/build-and-test_dev.yml @@ -76,6 +76,16 @@ jobs: - run: | echo Enable ${{ needs.pull_request_info.outputs.edition }} + enable_se: + if: ${{ needs.pull_request_info.outputs.edition == 'SE' }} + name: Enable SE + needs: + - pull_request_info + runs-on: ubuntu-latest + steps: + - run: | + echo Enable ${{ needs.pull_request_info.outputs.edition }} + go_generate: name: Go Generate needs: diff --git a/.github/workflow_templates/build-and-test_release.yml b/.github/workflow_templates/build-and-test_release.yml index d1ad032240..614fcf4489 100644 --- a/.github/workflow_templates/build-and-test_release.yml +++ b/.github/workflow_templates/build-and-test_release.yml @@ -101,6 +101,19 @@ jobs: {!{ tmpl.Exec "build_template" (slice $ctx "release") | strings.Indent 4 }!} {!{ tmpl.Exec "update_comment_on_finish" (slice "job,one-line" $jobNames.build_ee) | strings.Indent 6 }!} +{!{ $jobNames = coll.Merge $jobNames (dict "build_se" "Build SE") }!} + build_se: + name: {!{ $jobNames.build_se }!} + needs: + - git_info + - go_generate + - workflow_render + if: ${{ startsWith(github.ref, 'refs/tags/v') }} + env: + WERF_ENV: "SE" +{!{ tmpl.Exec "build_template" (slice $ctx "release") | strings.Indent 4 }!} +{!{ tmpl.Exec "update_comment_on_finish" (slice "job,one-line" $jobNames.build_se) | strings.Indent 6 }!} + {!{ $jobNames = coll.Merge $jobNames (dict "build_be" "Build BE") }!} build_be: name: {!{ $jobNames.build_be }!} @@ -255,6 +268,7 @@ jobs: - build_ee - build_ce - build_be + - build_se - doc_web_build - main_web_build - deploy_latest_web_site_prod_sel diff --git a/.github/workflow_templates/deploy-channel.multi.yml b/.github/workflow_templates/deploy-channel.multi.yml index 523a5adb58..4d8cf20e3d 100644 --- a/.github/workflow_templates/deploy-channel.multi.yml +++ b/.github/workflow_templates/deploy-channel.multi.yml @@ -62,7 +62,7 @@ on: description: 'Id of comment in issue where to put workflow run status' required: false editions: - description: 'Comma separated editions to deploy. Example: ee,fe,ce,be' + description: 'Comma separated editions to deploy. Example: ee,fe,ce,be,se' required: false cooldown: description: 'Postpone release until specified datetime (YYYY-MM-DD HH:MM) UTC only. Example: 2026-06-06 16:16' @@ -83,6 +83,7 @@ jobs: DEPLOY_EE: ${{steps.detect_editions.outputs.DEPLOY_EE}} DEPLOY_FE: ${{steps.detect_editions.outputs.DEPLOY_FE}} DEPLOY_BE: ${{steps.detect_editions.outputs.DEPLOY_BE}} + DEPLOY_SE: ${{steps.detect_editions.outputs.DEPLOY_SE}} steps: - name: Detect editions id: detect_editions @@ -93,7 +94,7 @@ jobs: RESTRICTED=no - for edition in CE EE FE BE ; do + for edition in CE EE FE BE SE ; do if grep -i ",${edition}," <<<",${EDITIONS}," 2>/dev/null 1>&2 ; then echo " - enable deploy of ${edition} edition." echo "DEPLOY_${edition}=true" >> $GITHUB_OUTPUT @@ -103,7 +104,7 @@ jobs: if [[ $RESTRICTED == "no" ]] ; then echo "No restrictions. Enable deploy to all editions." - for edition in CE EE FE BE ; do + for edition in CE EE FE BE SE ; do echo "DEPLOY_${edition}=true" >> $GITHUB_OUTPUT done fi @@ -111,7 +112,7 @@ jobs: {!{/* Jobs for visual control allowed editions when approving deploy to environments. */}!} -{!{ range $werfEnv := slice "CE" "EE" "FE" "BE" }!} +{!{ range $werfEnv := slice "CE" "EE" "FE" "BE" "SE" }!} enable_{!{$werfEnv}!}: if: ${{ needs.detect_editions.outputs.DEPLOY_{!{$werfEnv}!} == 'true' }} name: Enable {!{$werfEnv}!} @@ -151,7 +152,7 @@ Jobs for visual control allowed editions when approving deploy to environments. echo "enable=true" >> $GITHUB_OUTPUT fi - {!{ range $werfEnv := slice "CE" "EE" "FE" "BE" }!} + {!{ range $werfEnv := slice "CE" "EE" "FE" "BE" "SE" }!} - name: Set cooldown for release ({!{ $werfEnv }!}) if: ${{ github.event.inputs.cooldown }} env: @@ -192,7 +193,7 @@ Registries: Job supports running from forked or copied repo: 'ghcr.io/owner/repo' is used if DECKHOUSE_REGISTRY_HOST is not set. */}!} -{!{ range $werfEnv := slice "CE" "EE" "FE" "BE" }!} +{!{ range $werfEnv := slice "CE" "EE" "FE" "BE" "SE" }!} - name: Publish release images for {!{ $werfEnv }!} if: ${{ needs.detect_editions.outputs.DEPLOY_{!{ $werfEnv }!} == 'true' }} env: diff --git a/.github/workflow_templates/suspend-channel.multi.yml b/.github/workflow_templates/suspend-channel.multi.yml index 4156cae99f..59aa8ef47a 100644 --- a/.github/workflow_templates/suspend-channel.multi.yml +++ b/.github/workflow_templates/suspend-channel.multi.yml @@ -127,7 +127,7 @@ Destination registries: - DECKHOUSE_REGISTRY_HOST - DEV_REGISTRY_PATH */}!} -{!{ range $werfEnv := slice "CE" "EE" "FE" "BE" }!} +{!{ range $werfEnv := slice "CE" "EE" "FE" "BE" "SE" }!} - name: Publish release images for {!{ $werfEnv }!} env: DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} @@ -181,7 +181,7 @@ Destination registries: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL={!{ $channel }!} diff --git a/.github/workflows/build-and-test_dev.yml b/.github/workflows/build-and-test_dev.yml index 8af42b4da3..c018a5edd8 100644 --- a/.github/workflows/build-and-test_dev.yml +++ b/.github/workflows/build-and-test_dev.yml @@ -197,6 +197,7 @@ jobs: const hasEE = pr.labels.some((l) => l.name === 'edition/ee'); const hasCE = pr.labels.some((l) => l.name === 'edition/ce'); const hasBE = pr.labels.some((l) => l.name === 'edition/be'); + const hasSE = pr.labels.some((l) => l.name === 'edition/se'); let edition = defaultEdition; if (hasCE) { edition = 'CE'; @@ -204,8 +205,10 @@ jobs: edition = 'EE'; } else if (hasBE) { edition = 'BE'; + } else if (hasSE) { + edition = 'SE'; } - core.info(`Edition labels: 'edition/ce':${hasCE}, 'edition/ee':${hasEE}, 'edition/be':${hasBE}`); + core.info(`Edition labels: 'edition/ce':${hasCE}, 'edition/ee':${hasEE}, 'edition/be':${hasBE}, 'edition/se':${hasSE}`); core.notice(`Enable '${edition}' edition for '${context.eventName}' trigger.`); // Construct head commit ref using pr number. @@ -395,6 +398,16 @@ jobs: - run: | echo Enable ${{ needs.pull_request_info.outputs.edition }} + enable_se: + if: ${{ needs.pull_request_info.outputs.edition == 'SE' }} + name: Enable SE + needs: + - pull_request_info + runs-on: ubuntu-latest + steps: + - run: | + echo Enable ${{ needs.pull_request_info.outputs.edition }} + go_generate: name: Go Generate needs: diff --git a/.github/workflows/build-and-test_release.yml b/.github/workflows/build-and-test_release.yml index 4c1f826e27..de7b597afc 100644 --- a/.github/workflows/build-and-test_release.yml +++ b/.github/workflows/build-and-test_release.yml @@ -953,6 +953,302 @@ jobs: # + build_se: + name: Build SE + needs: + - git_info + - go_generate + - workflow_render + if: ${{ startsWith(github.ref, 'refs/tags/v') }} + env: + WERF_ENV: "SE" + # + runs-on: [self-hosted, regular] + outputs: + tests_image_name: ${{ steps.build.outputs.tests_image_name }} + steps: + + + # + - name: Job started timestamp + id: started_at + run: | + unixTimestamp=$(date +%s) + echo "started_at=${unixTimestamp}" >> $GITHUB_OUTPUT + # + + + # + - name: Checkout sources + uses: actions/checkout@v3.5.2 + with: + fetch-depth: 0 + # + + # + - name: Check dev registry credentials + id: check_dev_registry + env: + HOST: ${{secrets.DECKHOUSE_DEV_REGISTRY_HOST}} + run: | + if [[ -n $HOST ]]; then + echo "has_credentials=true" >> $GITHUB_OUTPUT + echo "web_registry_path=${{secrets.DECKHOUSE_DEV_REGISTRY_HOST }}/deckhouse/site" >> $GITHUB_OUTPUT + fi + - name: Login to dev registry + uses: docker/login-action@v2.1.0 + if: ${{ steps.check_dev_registry.outputs.has_credentials == 'true' }} + with: + registry: ${{ secrets.DECKHOUSE_DEV_REGISTRY_HOST }} + username: ${{ secrets.DECKHOUSE_DEV_REGISTRY_USER }} + password: ${{ secrets.DECKHOUSE_DEV_REGISTRY_PASSWORD }} + logout: false + # + + # + - name: Check readonly registry credentials + id: check_readonly_registry + env: + HOST: ${{secrets.DECKHOUSE_REGISTRY_READ_HOST}} + run: | + if [[ -n $HOST ]]; then + echo "has_credentials=true" >> $GITHUB_OUTPUT + echo "web_registry_path=${{secrets.DECKHOUSE_REGISTRY_READ_HOST }}/deckhouse/site" >> $GITHUB_OUTPUT + fi + - name: Login to readonly registry + uses: docker/login-action@v2.1.0 + if: ${{ steps.check_readonly_registry.outputs.has_credentials == 'true' }} + with: + registry: ${{ secrets.DECKHOUSE_REGISTRY_READ_HOST }} + username: ${{ secrets.DECKHOUSE_REGISTRY_READ_USER }} + password: ${{ secrets.DECKHOUSE_REGISTRY_READ_PASSWORD }} + logout: false + # + + # + - name: Check rw registry credentials + id: check_rw_registry + env: + HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + run: | + if [[ -n $HOST ]]; then + echo "has_credentials=true" >> $GITHUB_OUTPUT + echo "web_registry_path=${{secrets.DECKHOUSE_REGISTRY_HOST }}/deckhouse/site" >> $GITHUB_OUTPUT + fi + - name: Login to rw registry + uses: docker/login-action@v2.1.0 + if: ${{ steps.check_rw_registry.outputs.has_credentials == 'true' }} + with: + registry: ${{ secrets.DECKHOUSE_REGISTRY_HOST }} + username: ${{ secrets.DECKHOUSE_REGISTRY_USER }} + password: ${{ secrets.DECKHOUSE_REGISTRY_PASSWORD }} + logout: false + - name: Login to Github Container Registry + uses: docker/login-action@v2.1.0 + if: ${{ steps.check_rw_registry.outputs.has_credentials != 'true' }} + with: + registry: ghcr.io + username: ${{ secrets.GHCR_IO_REGISTRY_USER }} + password: ${{ secrets.GHCR_IO_REGISTRY_PASSWORD }} + logout: false + # + + # + - name: Install werf CLI + uses: werf/actions/install@43075e4ab81952b181d33e125ef15b9c060a782e + with: + channel: ${{env.WERF_CHANNEL}} + # + + - name: Build and push deckhouse images + id: build + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + CI_COMMIT_TAG: ${{needs.git_info.outputs.ci_commit_tag}} + CI_COMMIT_BRANCH: ${{needs.git_info.outputs.ci_commit_branch}} + CI_COMMIT_REF_NAME: ${{needs.git_info.outputs.ci_commit_ref_name}} + CI_COMMIT_REF_SLUG: ${{needs.git_info.outputs.ci_commit_ref_slug}} + run: | + # Extract REPO_SUFFIX from repository name: trim prefix 'deckhouse/deckhouse-'. + REPO_SUFFIX=${GITHUB_REPOSITORY#deckhouse/deckhouse-} + if [[ $REPO_SUFFIX == $GITHUB_REPOSITORY ]] ; then + # REPO_SUFFIX should be empty for main repo 'deckhouse/deckhouse'. + REPO_SUFFIX= + fi + + # Put tags on produced images and push to dev and release repositories. + # + # There are 2 modes: "dev" and "release". + # The "dev" mode builds branches only: + # - Build using dev-registry as primary and deckhouse registry as secondary. + # - Push dev and dev/install images with prNUM tags and push to dev-registry. + # The "release" mode builds branches and tags: + # - Build using dev-registry as primary and deckhouse registry as secondary. + # - Push dev and dev/install images to dev-registry with tag equal to a branch name (main or release-X.Y). + # - Build using deckhouse registry as primary and dev-registry as secondary. + # - Push dev, dev/install and release-channel-version images to deckhouse registry with tag equels to a Git tag. + + # SRC_NAME is a name of image from werf.yaml. + # SRC is a source image name (stage name from werf build report). + # DST is an image name for docker push. + function pull_push_rmi() { + SRC_NAME=$1 + SRC=$2 + DST=$3 + echo "โš“๏ธ ๐Ÿ“ฅ [$(date -u)] Pull '${SRC_NAME}' image as ${SRC}." + docker pull ${SRC} + echo "โš“๏ธ ๐Ÿท [$(date -u)] Tag '${SRC_NAME}' image as ${DST}." + docker image tag ${SRC} ${DST} + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SRC_NAME}' image as ${DST}." + docker image push ${DST} + echo "โš“๏ธ ๐Ÿงน [$(date -u)] Remove local tag for '${SRC_NAME}'." + docker image rmi ${DST} || true; + } + + if [[ -n "${DEV_REGISTRY_PATH}" ]]; then export WERF_REPO="${DEV_REGISTRY_PATH}"; fi + type werf && source $(werf ci-env github --verbose --as-file) + + # CE/EE/FE -> ce/ee/fe + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + + # Registry path to publish images for Git branches. + BRANCH_REGISTRY_PATH= + # Registry path to publish images for Git tags. + SEMVER_REGISTRY_PATH= + + if [[ -n ${DECKHOUSE_REGISTRY_HOST:-} ]] ; then + # Build using dev-registry as primary repo and prod registry as secondary (ro) repo. + # This build will put stages to "dev" registry. If "dev" registry is empty, existing stages are copied from prod registry. + + SECONDARY_REPO="--secondary-repo ${DECKHOUSE_REGISTRY_HOST}/deckhouse/${REGISTRY_SUFFIX}" + + if [[ -n "${CI_COMMIT_BRANCH}" && ! "${CI_COMMIT_BRANCH}" =~ ^(main|release-.+)$ ]]; then + SECONDARY_REPO= + fi + + werf build \ + ${SECONDARY_REPO} \ + --parallel=true --parallel-tasks-limit=5 \ + --report-path images_tags_werf.json + BRANCH_REGISTRY_PATH="${DEV_REGISTRY_PATH}" + SEMVER_REGISTRY_PATH="${DECKHOUSE_REGISTRY_HOST}/deckhouse" + else + # DECKHOUSE_REGISTRY_HOST is empty, so this repo is not the main repo. + # Build using dev-registry as a single primary repo and push: + # - branches to Dev registry to run e2e tests. + # - semver tags to Github Container Registry for testing release process. + werf build \ + --parallel=true --parallel-tasks-limit=5 \ + --report-path images_tags_werf.json + BRANCH_REGISTRY_PATH="${DEV_REGISTRY_PATH}" + SEMVER_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish to Github Container Registry '${PROD_REGISTRY_PATH}'" + fi + + # Publish images for Git branch. + if [[ -n "${CI_COMMIT_BRANCH}" ]]; then + # CI_COMMIT_REF_SLUG is a 'prNUM' for dev branches or 'main' for default branch. + # Use it as image tag. Add suffix to not overlap with PRs in main repo. + IMAGE_TAG=${CI_COMMIT_REF_SLUG}${REPO_SUFFIX:+-${REPO_SUFFIX}} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish images to dev-registry for branch '${CI_COMMIT_BRANCH}' and edition '${WERF_ENV}' using tag '${IMAGE_TAG}' ..." + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev' image to dev-registry using tag ${IMAGE_TAG}". + DECKHOUSE_IMAGE_SRC="$(jq -r '.Images."dev".DockerImageName' images_tags_werf.json)" + DECKHOUSE_IMAGE=${BRANCH_REGISTRY_PATH}:${IMAGE_TAG} + pull_push_rmi 'dev' ${DECKHOUSE_IMAGE_SRC} ${DECKHOUSE_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev/install' image to dev-registry using tag ${IMAGE_TAG}". + INSTALL_IMAGE_SRC="$(jq -r '.Images."dev/install".DockerImageName' images_tags_werf.json)" + INSTALL_IMAGE=${BRANCH_REGISTRY_PATH}/install:${IMAGE_TAG} + pull_push_rmi 'dev/install' ${INSTALL_IMAGE_SRC} ${INSTALL_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'e2e-terraform' image to dev-registry using tag ${IMAGE_TAG}". + INSTALL_IMAGE_SRC="$(jq -r '.Images."e2e-terraform".DockerImageName' images_tags_werf.json)" + INSTALL_IMAGE=${BRANCH_REGISTRY_PATH}/e2e-terraform:${IMAGE_TAG} + pull_push_rmi 'e2e-terraform' ${INSTALL_IMAGE_SRC} ${INSTALL_IMAGE} + fi + + + # Publish images for Git tag. + if [[ -n "${CI_COMMIT_TAG}" ]]; then + # The Git tag may contain a '+' sign, so use slugify for this situation. + # Slugify doesn't change a tag with safe-only characters. + IMAGE_TAG=$(werf slugify --format docker-tag "${CI_COMMIT_TAG}") + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish images for Git tag '${CI_COMMIT_TAG}' and registry suffix '${REGISTRY_SUFFIX}' using tag '${IMAGE_TAG}' ..." + if [[ -n ${DECKHOUSE_REGISTRY_HOST} ]] ; then + # Copy stages to prod registry from dev registry. + werf build \ + --repo ${SEMVER_REGISTRY_PATH}/${REGISTRY_SUFFIX} \ + --secondary-repo $WERF_REPO \ + --parallel=true --parallel-tasks-limit=5 \ + --report-path images_tags_werf.json + fi + # Note: do not run second werf build for test repo, as it has no secondary repo. + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev' image to deckhouse registry using tag ${IMAGE_TAG} ..." + DECKHOUSE_IMAGE_SRC="$(jq -r '.Images."dev".DockerImageName' images_tags_werf.json)" + DECKHOUSE_IMAGE=${SEMVER_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${IMAGE_TAG} + pull_push_rmi 'dev' ${DECKHOUSE_IMAGE_SRC} ${DECKHOUSE_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev/install' image to deckhouse registry using tag ${IMAGE_TAG} ..." + INSTALL_IMAGE_SRC="$(jq -r '.Images."dev/install".DockerImageName' images_tags_werf.json)" + INSTALL_IMAGE=${SEMVER_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${IMAGE_TAG} + pull_push_rmi 'dev/install' ${INSTALL_IMAGE_SRC} ${INSTALL_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'release-channel-version' image to deckhouse registry using tag ${IMAGE_TAG} ..." + RELEASE_CHANNEL_IMAGE_SRC="$(jq -r '.Images."release-channel-version".DockerImageName' images_tags_werf.json)" + RELEASE_CHANNEL_IMAGE=${SEMVER_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${IMAGE_TAG} + pull_push_rmi 'release-channel-version' ${RELEASE_CHANNEL_IMAGE_SRC} ${RELEASE_CHANNEL_IMAGE} + fi + + # Save 'tests' image name to pass it as output for 'tests' jobs. + TESTS_IMAGE_NAME="$(jq -r '.Images."tests".DockerImageName' images_tags_werf.json)" + # Print image name in uppercase to prevent hiding non-secret registry host stored in secret. + echo "Tests image name: '${TESTS_IMAGE_NAME}'" | tr '[:lower:]' '[:upper:]' + # Encode as gzip+base64 to evade github's SecretMasker error: "Skip output since it may contain secret". + echo "tests_image_name=$(echo ${TESTS_IMAGE_NAME} | gzip | base64 -w0)" >> $GITHUB_OUTPUT + + - name: Cleanup + if: ${{ always() }} + run: | + rm -f images_tags_werf.json + # + + # + - name: Update comment on finish + id: update_comment_on_finish + if: ${{ always() && github.event_name == 'workflow_dispatch' && !!github.event.inputs.issue_number }} + env: + NEEDS_CONTEXT: ${{ toJSON(needs) }} + JOB_CONTEXT: ${{ toJSON(job) }} + STEPS_CONTEXT: ${{ toJSON(steps) }} + uses: actions/github-script@v6.4.1 + with: + github-token: ${{secrets.BOATSWAIN_GITHUB_TOKEN}} + retries: 3 + script: | + const statusConfig = 'job,one-line'; + const name = 'Build SE'; + const needsContext = JSON.parse(process.env.NEEDS_CONTEXT); + const jobContext = JSON.parse(process.env.JOB_CONTEXT); + const stepsContext = JSON.parse(process.env.STEPS_CONTEXT); + let jobNames = null + if (process.env.JOB_NAMES) { + jobNames = JSON.parse(process.env.JOB_NAMES); + } + + core.info(`needsContext: ${JSON.stringify(needsContext)}`); + core.info(`jobContext: ${JSON.stringify(jobContext)}`); + core.info(`stepsContext: ${JSON.stringify(stepsContext)}`); + core.info(`jobNames: ${JSON.stringify(jobNames)}`); + + const ci = require('./.github/scripts/js/ci'); + return await ci.updateCommentOnFinish({github, context, core, statusConfig, name, needsContext, jobContext, stepsContext, jobNames}); + # + + build_be: name: Build BE needs: @@ -2926,6 +3222,7 @@ jobs: - build_ee - build_ce - build_be + - build_se - doc_web_build - main_web_build - deploy_latest_web_site_prod_sel @@ -2941,7 +3238,7 @@ jobs: runs-on: ubuntu-latest env: JOB_NAMES: | - {"build_be":"Build BE","build_ce":"Build CE","build_ee":"Build EE","build_fe":"Build FE","deploy_latest_web_doc_prod_sel":"(Prod) Deploy latest doc","deploy_latest_web_site_prod_sel":"(Prod) Deploy latest site","dhctl_tests":"Dhctl Tests","doc_web_build":"Doc web build","go_generate":"Go Generate","golangci_lint":"GolangCI Lint","main_web_build":"Main web build","matrix_tests":"Matrix tests","openapi_test_cases":"OpenAPI Test Cases","tests":"Tests","validators":"Validators","web_links_test":"Web links test","workflow_render":"Render workflow"} + {"build_be":"Build BE","build_ce":"Build CE","build_ee":"Build EE","build_fe":"Build FE","build_se":"Build SE","deploy_latest_web_doc_prod_sel":"(Prod) Deploy latest doc","deploy_latest_web_site_prod_sel":"(Prod) Deploy latest site","dhctl_tests":"Dhctl Tests","doc_web_build":"Doc web build","go_generate":"Go Generate","golangci_lint":"GolangCI Lint","main_web_build":"Main web build","matrix_tests":"Matrix tests","openapi_test_cases":"OpenAPI Test Cases","tests":"Tests","validators":"Validators","web_links_test":"Web links test","workflow_render":"Render workflow"} steps: # diff --git a/.github/workflows/deploy-alpha.yml b/.github/workflows/deploy-alpha.yml index 1ddcd9bf7f..53ca3b3eb1 100644 --- a/.github/workflows/deploy-alpha.yml +++ b/.github/workflows/deploy-alpha.yml @@ -32,7 +32,7 @@ on: description: 'Id of comment in issue where to put workflow run status' required: false editions: - description: 'Comma separated editions to deploy. Example: ee,fe,ce,be' + description: 'Comma separated editions to deploy. Example: ee,fe,ce,be,se' required: false cooldown: description: 'Postpone release until specified datetime (YYYY-MM-DD HH:MM) UTC only. Example: 2026-06-06 16:16' @@ -139,6 +139,7 @@ jobs: DEPLOY_EE: ${{steps.detect_editions.outputs.DEPLOY_EE}} DEPLOY_FE: ${{steps.detect_editions.outputs.DEPLOY_FE}} DEPLOY_BE: ${{steps.detect_editions.outputs.DEPLOY_BE}} + DEPLOY_SE: ${{steps.detect_editions.outputs.DEPLOY_SE}} steps: - name: Detect editions id: detect_editions @@ -149,7 +150,7 @@ jobs: RESTRICTED=no - for edition in CE EE FE BE ; do + for edition in CE EE FE BE SE ; do if grep -i ",${edition}," <<<",${EDITIONS}," 2>/dev/null 1>&2 ; then echo " - enable deploy of ${edition} edition." echo "DEPLOY_${edition}=true" >> $GITHUB_OUTPUT @@ -159,7 +160,7 @@ jobs: if [[ $RESTRICTED == "no" ]] ; then echo "No restrictions. Enable deploy to all editions." - for edition in CE EE FE BE ; do + for edition in CE EE FE BE SE ; do echo "DEPLOY_${edition}=true" >> $GITHUB_OUTPUT done fi @@ -202,6 +203,15 @@ jobs: steps: - run: ": Enable BE" + enable_SE: + if: ${{ needs.detect_editions.outputs.DEPLOY_SE == 'true' }} + name: Enable SE + needs: + - detect_editions + runs-on: ubuntu-latest + steps: + - run: ": Enable SE" + run_deploy: name: Deploy ${{needs.git_info.outputs.ci_commit_tag}} to alpha @@ -409,6 +419,27 @@ jobs: echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SOURCE_RELEASE_VERSION_IMAGE}' image with cooldown." docker image push ${SOURCE_RELEASE_VERSION_IMAGE} + - name: Set cooldown for release (SE) + if: ${{ github.event.inputs.cooldown }} + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + CI_COMMIT_TAG: ${{needs.git_info.outputs.ci_commit_tag}} + WERF_ENV: SE + COOLDOWN: ${{ github.event.inputs.cooldown }} + run: | + PROD_REGISTRY_PATH="${DECKHOUSE_REGISTRY_HOST}/deckhouse" + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + PROD_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish using Github Container Registry: '${PROD_REGISTRY_PATH}'" + fi + + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + + SOURCE_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${CI_COMMIT_TAG}; + echo "FROM ${SOURCE_RELEASE_VERSION_IMAGE}" | docker build --label cooldown="${COOLDOWN}" -t "${SOURCE_RELEASE_VERSION_IMAGE}" - + + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SOURCE_RELEASE_VERSION_IMAGE}' image with cooldown." + docker image push ${SOURCE_RELEASE_VERSION_IMAGE} @@ -920,6 +951,137 @@ jobs: echo " Delete local 'release-channel-version' source image ${SOURCE_RELEASE_VERSION_IMAGE}" docker image rmi ${SOURCE_RELEASE_VERSION_IMAGE} || true + # 6. Report. + echo "Deckhouse images published:" + echo " Source: ${SOURCE_IMAGE}" + echo " Prod: ${PROD_IMAGE}" + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo " Dev: ${DEV_IMAGE}" + fi + echo "Install images published:" + echo " Source: ${SOURCE_INSTALL_IMAGE}" + echo " Prod: ${PROD_INSTALL_IMAGE}" + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo " Dev: ${DEV_INSTALL_IMAGE}" + fi + echo "Release version image:" + echo " Source: ${SOURCE_RELEASE_VERSION_IMAGE}" + echo " Prod: ${PROD_RELEASE_VERSION_IMAGE}" + - name: Publish release images for SE + if: ${{ needs.detect_editions.outputs.DEPLOY_SE == 'true' }} + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + CI_COMMIT_TAG: ${{needs.git_info.outputs.ci_commit_tag}} + CI_COMMIT_BRANCH: ${{needs.git_info.outputs.ci_commit_branch}} + WERF_ENV: SE + SKIP_PUSH_FOR_DEPLOY: ${{secrets.SKIP_PUSH_FOR_DEPLOY}} + run: | + # SRC_NAME is a name of image from werf.yaml. + # SRC is a source image name. + # DST is an image name for docker push. + function pull_push_rmi() { + SRC_NAME=$1 + SRC=$2 + DST=$3 + echo "โš“๏ธ ๐Ÿ“ฅ [$(date -u)] Pull '${SRC_NAME}' image as ${SRC}." + docker pull ${SRC} + echo "โš“๏ธ ๐Ÿท [$(date -u)] Tag '${SRC_NAME}' image as ${DST}." + docker image tag ${SRC} ${DST} + + enable_push="true" + if [[ ${GITHUB_REPOSITORY} != "deckhouse/deckhouse" ]]; then + if [[ ${SKIP_PUSH_FOR_SUSPEND} == "true" ]]; then + enable_push="false" + echo "โš“๏ธ โŽ [$(date -u)] SKIP_PUSH_FOR_DEPLOY=true, skip running 'docker image push ${DST}'." + fi + fi + + if [[ ${enable_push} == "true" ]] ; then + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SRC_NAME}' image as ${DST}." + docker image push ${DST} + fi + + echo "โš“๏ธ ๐Ÿงน [$(date -u)] Remove local tag for '${SRC_NAME}'." + docker image rmi ${DST} || true; + } + + # Some precautions. + shouldExit1= + if [[ -z ${DEV_REGISTRY_PATH} ]] ; then + echo "::error title=Missed variable::DEV_REGISTRY_PATH is not set. Define destination registry in secrets." + shouldExit1=yes + fi + if [[ -z ${WERF_ENV} ]] ; then + echo "::error title=Missed variable::WERF_ENV is not set. Cannot deploy unknown edition, only ce, ee and fe are allowed in inputs." + shouldExit1=yes + fi + if [[ -z ${CI_COMMIT_TAG} ]] ; then + echo "::error title=Missed variable::CI_COMMIT_TAG is not set. Probably you try to manually deploy from branch '${CI_COMMIT_BRANCH}'? Deploy allowed for tags only." + shouldExit1=yes + fi + if [[ -n ${shouldExit1} ]] ; then + exit 1 + fi + + echo "Publish SE edition". + + # Variables + # 1. Edition and channel. + # CE/EE/FE -> ce/ee/fe + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + RELEASE_CHANNEL=alpha + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Start publishing Deckhouse images for '${REGISTRY_SUFFIX}' edition onto '${RELEASE_CHANNEL}' release channel." + + # 2. Prod registry: use github packages if DECKHOUSE_REGISTRY_HOST not set (run in the test repo). + PROD_REGISTRY_PATH="${DECKHOUSE_REGISTRY_HOST}/deckhouse" + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + PROD_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish using Github Container Registry: '${PROD_REGISTRY_PATH}'" + fi + + # 3. Prepare image names: republish CI_COMMIT_TAG tag images in dev-registry + # to RELEASE_CHANNEL tag image in prod registry. + SOURCE_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${CI_COMMIT_TAG}; + PROD_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${RELEASE_CHANNEL}; + DEV_IMAGE=${DEV_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${RELEASE_CHANNEL} + + SOURCE_INSTALL_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${CI_COMMIT_TAG}; + PROD_INSTALL_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${RELEASE_CHANNEL}; + DEV_INSTALL_IMAGE=${DEV_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${RELEASE_CHANNEL} + + SOURCE_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${CI_COMMIT_TAG}; + PROD_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${RELEASE_CHANNEL}; + + # 4. Publish to dev registry if DECKHOUSE_REGISTRY_HOST is set (run in the main repo). + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev' image to dev-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev' ${SOURCE_IMAGE} ${DEV_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev/install' image to dev-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev/install' ${SOURCE_INSTALL_IMAGE} ${DEV_INSTALL_IMAGE} + fi + + # 5. Publish prod images to rw registry. + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev' ${SOURCE_IMAGE} ${PROD_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev/install' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev/install' ${SOURCE_INSTALL_IMAGE} ${PROD_INSTALL_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'release-channel-version' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'release-channel-version' ${SOURCE_RELEASE_VERSION_IMAGE} ${PROD_RELEASE_VERSION_IMAGE} + + echo "โš“๏ธ [$(date -u)] Remove local source images." + echo " Delete local 'dev' source image ${SOURCE_IMAGE}" + docker image rmi ${SOURCE_IMAGE} || true + + echo " Delete local 'dev/install' source image ${SOURCE_INSTALL_IMAGE}" + docker image rmi ${SOURCE_INSTALL_IMAGE} || true + + echo " Delete local 'release-channel-version' source image ${SOURCE_RELEASE_VERSION_IMAGE}" + docker image rmi ${SOURCE_RELEASE_VERSION_IMAGE} || true + # 6. Report. echo "Deckhouse images published:" echo " Source: ${SOURCE_IMAGE}" diff --git a/.github/workflows/deploy-beta.yml b/.github/workflows/deploy-beta.yml index 1f076fd2f5..d5f83a8cb8 100644 --- a/.github/workflows/deploy-beta.yml +++ b/.github/workflows/deploy-beta.yml @@ -32,7 +32,7 @@ on: description: 'Id of comment in issue where to put workflow run status' required: false editions: - description: 'Comma separated editions to deploy. Example: ee,fe,ce,be' + description: 'Comma separated editions to deploy. Example: ee,fe,ce,be,se' required: false cooldown: description: 'Postpone release until specified datetime (YYYY-MM-DD HH:MM) UTC only. Example: 2026-06-06 16:16' @@ -139,6 +139,7 @@ jobs: DEPLOY_EE: ${{steps.detect_editions.outputs.DEPLOY_EE}} DEPLOY_FE: ${{steps.detect_editions.outputs.DEPLOY_FE}} DEPLOY_BE: ${{steps.detect_editions.outputs.DEPLOY_BE}} + DEPLOY_SE: ${{steps.detect_editions.outputs.DEPLOY_SE}} steps: - name: Detect editions id: detect_editions @@ -149,7 +150,7 @@ jobs: RESTRICTED=no - for edition in CE EE FE BE ; do + for edition in CE EE FE BE SE ; do if grep -i ",${edition}," <<<",${EDITIONS}," 2>/dev/null 1>&2 ; then echo " - enable deploy of ${edition} edition." echo "DEPLOY_${edition}=true" >> $GITHUB_OUTPUT @@ -159,7 +160,7 @@ jobs: if [[ $RESTRICTED == "no" ]] ; then echo "No restrictions. Enable deploy to all editions." - for edition in CE EE FE BE ; do + for edition in CE EE FE BE SE ; do echo "DEPLOY_${edition}=true" >> $GITHUB_OUTPUT done fi @@ -202,6 +203,15 @@ jobs: steps: - run: ": Enable BE" + enable_SE: + if: ${{ needs.detect_editions.outputs.DEPLOY_SE == 'true' }} + name: Enable SE + needs: + - detect_editions + runs-on: ubuntu-latest + steps: + - run: ": Enable SE" + run_deploy: name: Deploy ${{needs.git_info.outputs.ci_commit_tag}} to beta @@ -409,6 +419,27 @@ jobs: echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SOURCE_RELEASE_VERSION_IMAGE}' image with cooldown." docker image push ${SOURCE_RELEASE_VERSION_IMAGE} + - name: Set cooldown for release (SE) + if: ${{ github.event.inputs.cooldown }} + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + CI_COMMIT_TAG: ${{needs.git_info.outputs.ci_commit_tag}} + WERF_ENV: SE + COOLDOWN: ${{ github.event.inputs.cooldown }} + run: | + PROD_REGISTRY_PATH="${DECKHOUSE_REGISTRY_HOST}/deckhouse" + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + PROD_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish using Github Container Registry: '${PROD_REGISTRY_PATH}'" + fi + + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + + SOURCE_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${CI_COMMIT_TAG}; + echo "FROM ${SOURCE_RELEASE_VERSION_IMAGE}" | docker build --label cooldown="${COOLDOWN}" -t "${SOURCE_RELEASE_VERSION_IMAGE}" - + + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SOURCE_RELEASE_VERSION_IMAGE}' image with cooldown." + docker image push ${SOURCE_RELEASE_VERSION_IMAGE} @@ -920,6 +951,137 @@ jobs: echo " Delete local 'release-channel-version' source image ${SOURCE_RELEASE_VERSION_IMAGE}" docker image rmi ${SOURCE_RELEASE_VERSION_IMAGE} || true + # 6. Report. + echo "Deckhouse images published:" + echo " Source: ${SOURCE_IMAGE}" + echo " Prod: ${PROD_IMAGE}" + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo " Dev: ${DEV_IMAGE}" + fi + echo "Install images published:" + echo " Source: ${SOURCE_INSTALL_IMAGE}" + echo " Prod: ${PROD_INSTALL_IMAGE}" + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo " Dev: ${DEV_INSTALL_IMAGE}" + fi + echo "Release version image:" + echo " Source: ${SOURCE_RELEASE_VERSION_IMAGE}" + echo " Prod: ${PROD_RELEASE_VERSION_IMAGE}" + - name: Publish release images for SE + if: ${{ needs.detect_editions.outputs.DEPLOY_SE == 'true' }} + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + CI_COMMIT_TAG: ${{needs.git_info.outputs.ci_commit_tag}} + CI_COMMIT_BRANCH: ${{needs.git_info.outputs.ci_commit_branch}} + WERF_ENV: SE + SKIP_PUSH_FOR_DEPLOY: ${{secrets.SKIP_PUSH_FOR_DEPLOY}} + run: | + # SRC_NAME is a name of image from werf.yaml. + # SRC is a source image name. + # DST is an image name for docker push. + function pull_push_rmi() { + SRC_NAME=$1 + SRC=$2 + DST=$3 + echo "โš“๏ธ ๐Ÿ“ฅ [$(date -u)] Pull '${SRC_NAME}' image as ${SRC}." + docker pull ${SRC} + echo "โš“๏ธ ๐Ÿท [$(date -u)] Tag '${SRC_NAME}' image as ${DST}." + docker image tag ${SRC} ${DST} + + enable_push="true" + if [[ ${GITHUB_REPOSITORY} != "deckhouse/deckhouse" ]]; then + if [[ ${SKIP_PUSH_FOR_SUSPEND} == "true" ]]; then + enable_push="false" + echo "โš“๏ธ โŽ [$(date -u)] SKIP_PUSH_FOR_DEPLOY=true, skip running 'docker image push ${DST}'." + fi + fi + + if [[ ${enable_push} == "true" ]] ; then + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SRC_NAME}' image as ${DST}." + docker image push ${DST} + fi + + echo "โš“๏ธ ๐Ÿงน [$(date -u)] Remove local tag for '${SRC_NAME}'." + docker image rmi ${DST} || true; + } + + # Some precautions. + shouldExit1= + if [[ -z ${DEV_REGISTRY_PATH} ]] ; then + echo "::error title=Missed variable::DEV_REGISTRY_PATH is not set. Define destination registry in secrets." + shouldExit1=yes + fi + if [[ -z ${WERF_ENV} ]] ; then + echo "::error title=Missed variable::WERF_ENV is not set. Cannot deploy unknown edition, only ce, ee and fe are allowed in inputs." + shouldExit1=yes + fi + if [[ -z ${CI_COMMIT_TAG} ]] ; then + echo "::error title=Missed variable::CI_COMMIT_TAG is not set. Probably you try to manually deploy from branch '${CI_COMMIT_BRANCH}'? Deploy allowed for tags only." + shouldExit1=yes + fi + if [[ -n ${shouldExit1} ]] ; then + exit 1 + fi + + echo "Publish SE edition". + + # Variables + # 1. Edition and channel. + # CE/EE/FE -> ce/ee/fe + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + RELEASE_CHANNEL=beta + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Start publishing Deckhouse images for '${REGISTRY_SUFFIX}' edition onto '${RELEASE_CHANNEL}' release channel." + + # 2. Prod registry: use github packages if DECKHOUSE_REGISTRY_HOST not set (run in the test repo). + PROD_REGISTRY_PATH="${DECKHOUSE_REGISTRY_HOST}/deckhouse" + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + PROD_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish using Github Container Registry: '${PROD_REGISTRY_PATH}'" + fi + + # 3. Prepare image names: republish CI_COMMIT_TAG tag images in dev-registry + # to RELEASE_CHANNEL tag image in prod registry. + SOURCE_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${CI_COMMIT_TAG}; + PROD_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${RELEASE_CHANNEL}; + DEV_IMAGE=${DEV_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${RELEASE_CHANNEL} + + SOURCE_INSTALL_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${CI_COMMIT_TAG}; + PROD_INSTALL_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${RELEASE_CHANNEL}; + DEV_INSTALL_IMAGE=${DEV_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${RELEASE_CHANNEL} + + SOURCE_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${CI_COMMIT_TAG}; + PROD_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${RELEASE_CHANNEL}; + + # 4. Publish to dev registry if DECKHOUSE_REGISTRY_HOST is set (run in the main repo). + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev' image to dev-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev' ${SOURCE_IMAGE} ${DEV_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev/install' image to dev-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev/install' ${SOURCE_INSTALL_IMAGE} ${DEV_INSTALL_IMAGE} + fi + + # 5. Publish prod images to rw registry. + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev' ${SOURCE_IMAGE} ${PROD_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev/install' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev/install' ${SOURCE_INSTALL_IMAGE} ${PROD_INSTALL_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'release-channel-version' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'release-channel-version' ${SOURCE_RELEASE_VERSION_IMAGE} ${PROD_RELEASE_VERSION_IMAGE} + + echo "โš“๏ธ [$(date -u)] Remove local source images." + echo " Delete local 'dev' source image ${SOURCE_IMAGE}" + docker image rmi ${SOURCE_IMAGE} || true + + echo " Delete local 'dev/install' source image ${SOURCE_INSTALL_IMAGE}" + docker image rmi ${SOURCE_INSTALL_IMAGE} || true + + echo " Delete local 'release-channel-version' source image ${SOURCE_RELEASE_VERSION_IMAGE}" + docker image rmi ${SOURCE_RELEASE_VERSION_IMAGE} || true + # 6. Report. echo "Deckhouse images published:" echo " Source: ${SOURCE_IMAGE}" diff --git a/.github/workflows/deploy-early-access.yml b/.github/workflows/deploy-early-access.yml index 524803bea0..ad85906fec 100644 --- a/.github/workflows/deploy-early-access.yml +++ b/.github/workflows/deploy-early-access.yml @@ -32,7 +32,7 @@ on: description: 'Id of comment in issue where to put workflow run status' required: false editions: - description: 'Comma separated editions to deploy. Example: ee,fe,ce,be' + description: 'Comma separated editions to deploy. Example: ee,fe,ce,be,se' required: false cooldown: description: 'Postpone release until specified datetime (YYYY-MM-DD HH:MM) UTC only. Example: 2026-06-06 16:16' @@ -139,6 +139,7 @@ jobs: DEPLOY_EE: ${{steps.detect_editions.outputs.DEPLOY_EE}} DEPLOY_FE: ${{steps.detect_editions.outputs.DEPLOY_FE}} DEPLOY_BE: ${{steps.detect_editions.outputs.DEPLOY_BE}} + DEPLOY_SE: ${{steps.detect_editions.outputs.DEPLOY_SE}} steps: - name: Detect editions id: detect_editions @@ -149,7 +150,7 @@ jobs: RESTRICTED=no - for edition in CE EE FE BE ; do + for edition in CE EE FE BE SE ; do if grep -i ",${edition}," <<<",${EDITIONS}," 2>/dev/null 1>&2 ; then echo " - enable deploy of ${edition} edition." echo "DEPLOY_${edition}=true" >> $GITHUB_OUTPUT @@ -159,7 +160,7 @@ jobs: if [[ $RESTRICTED == "no" ]] ; then echo "No restrictions. Enable deploy to all editions." - for edition in CE EE FE BE ; do + for edition in CE EE FE BE SE ; do echo "DEPLOY_${edition}=true" >> $GITHUB_OUTPUT done fi @@ -202,6 +203,15 @@ jobs: steps: - run: ": Enable BE" + enable_SE: + if: ${{ needs.detect_editions.outputs.DEPLOY_SE == 'true' }} + name: Enable SE + needs: + - detect_editions + runs-on: ubuntu-latest + steps: + - run: ": Enable SE" + run_deploy: name: Deploy ${{needs.git_info.outputs.ci_commit_tag}} to early-access @@ -409,6 +419,27 @@ jobs: echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SOURCE_RELEASE_VERSION_IMAGE}' image with cooldown." docker image push ${SOURCE_RELEASE_VERSION_IMAGE} + - name: Set cooldown for release (SE) + if: ${{ github.event.inputs.cooldown }} + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + CI_COMMIT_TAG: ${{needs.git_info.outputs.ci_commit_tag}} + WERF_ENV: SE + COOLDOWN: ${{ github.event.inputs.cooldown }} + run: | + PROD_REGISTRY_PATH="${DECKHOUSE_REGISTRY_HOST}/deckhouse" + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + PROD_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish using Github Container Registry: '${PROD_REGISTRY_PATH}'" + fi + + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + + SOURCE_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${CI_COMMIT_TAG}; + echo "FROM ${SOURCE_RELEASE_VERSION_IMAGE}" | docker build --label cooldown="${COOLDOWN}" -t "${SOURCE_RELEASE_VERSION_IMAGE}" - + + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SOURCE_RELEASE_VERSION_IMAGE}' image with cooldown." + docker image push ${SOURCE_RELEASE_VERSION_IMAGE} @@ -920,6 +951,137 @@ jobs: echo " Delete local 'release-channel-version' source image ${SOURCE_RELEASE_VERSION_IMAGE}" docker image rmi ${SOURCE_RELEASE_VERSION_IMAGE} || true + # 6. Report. + echo "Deckhouse images published:" + echo " Source: ${SOURCE_IMAGE}" + echo " Prod: ${PROD_IMAGE}" + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo " Dev: ${DEV_IMAGE}" + fi + echo "Install images published:" + echo " Source: ${SOURCE_INSTALL_IMAGE}" + echo " Prod: ${PROD_INSTALL_IMAGE}" + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo " Dev: ${DEV_INSTALL_IMAGE}" + fi + echo "Release version image:" + echo " Source: ${SOURCE_RELEASE_VERSION_IMAGE}" + echo " Prod: ${PROD_RELEASE_VERSION_IMAGE}" + - name: Publish release images for SE + if: ${{ needs.detect_editions.outputs.DEPLOY_SE == 'true' }} + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + CI_COMMIT_TAG: ${{needs.git_info.outputs.ci_commit_tag}} + CI_COMMIT_BRANCH: ${{needs.git_info.outputs.ci_commit_branch}} + WERF_ENV: SE + SKIP_PUSH_FOR_DEPLOY: ${{secrets.SKIP_PUSH_FOR_DEPLOY}} + run: | + # SRC_NAME is a name of image from werf.yaml. + # SRC is a source image name. + # DST is an image name for docker push. + function pull_push_rmi() { + SRC_NAME=$1 + SRC=$2 + DST=$3 + echo "โš“๏ธ ๐Ÿ“ฅ [$(date -u)] Pull '${SRC_NAME}' image as ${SRC}." + docker pull ${SRC} + echo "โš“๏ธ ๐Ÿท [$(date -u)] Tag '${SRC_NAME}' image as ${DST}." + docker image tag ${SRC} ${DST} + + enable_push="true" + if [[ ${GITHUB_REPOSITORY} != "deckhouse/deckhouse" ]]; then + if [[ ${SKIP_PUSH_FOR_SUSPEND} == "true" ]]; then + enable_push="false" + echo "โš“๏ธ โŽ [$(date -u)] SKIP_PUSH_FOR_DEPLOY=true, skip running 'docker image push ${DST}'." + fi + fi + + if [[ ${enable_push} == "true" ]] ; then + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SRC_NAME}' image as ${DST}." + docker image push ${DST} + fi + + echo "โš“๏ธ ๐Ÿงน [$(date -u)] Remove local tag for '${SRC_NAME}'." + docker image rmi ${DST} || true; + } + + # Some precautions. + shouldExit1= + if [[ -z ${DEV_REGISTRY_PATH} ]] ; then + echo "::error title=Missed variable::DEV_REGISTRY_PATH is not set. Define destination registry in secrets." + shouldExit1=yes + fi + if [[ -z ${WERF_ENV} ]] ; then + echo "::error title=Missed variable::WERF_ENV is not set. Cannot deploy unknown edition, only ce, ee and fe are allowed in inputs." + shouldExit1=yes + fi + if [[ -z ${CI_COMMIT_TAG} ]] ; then + echo "::error title=Missed variable::CI_COMMIT_TAG is not set. Probably you try to manually deploy from branch '${CI_COMMIT_BRANCH}'? Deploy allowed for tags only." + shouldExit1=yes + fi + if [[ -n ${shouldExit1} ]] ; then + exit 1 + fi + + echo "Publish SE edition". + + # Variables + # 1. Edition and channel. + # CE/EE/FE -> ce/ee/fe + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + RELEASE_CHANNEL=early-access + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Start publishing Deckhouse images for '${REGISTRY_SUFFIX}' edition onto '${RELEASE_CHANNEL}' release channel." + + # 2. Prod registry: use github packages if DECKHOUSE_REGISTRY_HOST not set (run in the test repo). + PROD_REGISTRY_PATH="${DECKHOUSE_REGISTRY_HOST}/deckhouse" + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + PROD_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish using Github Container Registry: '${PROD_REGISTRY_PATH}'" + fi + + # 3. Prepare image names: republish CI_COMMIT_TAG tag images in dev-registry + # to RELEASE_CHANNEL tag image in prod registry. + SOURCE_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${CI_COMMIT_TAG}; + PROD_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${RELEASE_CHANNEL}; + DEV_IMAGE=${DEV_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${RELEASE_CHANNEL} + + SOURCE_INSTALL_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${CI_COMMIT_TAG}; + PROD_INSTALL_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${RELEASE_CHANNEL}; + DEV_INSTALL_IMAGE=${DEV_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${RELEASE_CHANNEL} + + SOURCE_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${CI_COMMIT_TAG}; + PROD_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${RELEASE_CHANNEL}; + + # 4. Publish to dev registry if DECKHOUSE_REGISTRY_HOST is set (run in the main repo). + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev' image to dev-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev' ${SOURCE_IMAGE} ${DEV_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev/install' image to dev-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev/install' ${SOURCE_INSTALL_IMAGE} ${DEV_INSTALL_IMAGE} + fi + + # 5. Publish prod images to rw registry. + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev' ${SOURCE_IMAGE} ${PROD_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev/install' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev/install' ${SOURCE_INSTALL_IMAGE} ${PROD_INSTALL_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'release-channel-version' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'release-channel-version' ${SOURCE_RELEASE_VERSION_IMAGE} ${PROD_RELEASE_VERSION_IMAGE} + + echo "โš“๏ธ [$(date -u)] Remove local source images." + echo " Delete local 'dev' source image ${SOURCE_IMAGE}" + docker image rmi ${SOURCE_IMAGE} || true + + echo " Delete local 'dev/install' source image ${SOURCE_INSTALL_IMAGE}" + docker image rmi ${SOURCE_INSTALL_IMAGE} || true + + echo " Delete local 'release-channel-version' source image ${SOURCE_RELEASE_VERSION_IMAGE}" + docker image rmi ${SOURCE_RELEASE_VERSION_IMAGE} || true + # 6. Report. echo "Deckhouse images published:" echo " Source: ${SOURCE_IMAGE}" diff --git a/.github/workflows/deploy-rock-solid.yml b/.github/workflows/deploy-rock-solid.yml index 173a1ca2d7..146af87c79 100644 --- a/.github/workflows/deploy-rock-solid.yml +++ b/.github/workflows/deploy-rock-solid.yml @@ -32,7 +32,7 @@ on: description: 'Id of comment in issue where to put workflow run status' required: false editions: - description: 'Comma separated editions to deploy. Example: ee,fe,ce,be' + description: 'Comma separated editions to deploy. Example: ee,fe,ce,be,se' required: false cooldown: description: 'Postpone release until specified datetime (YYYY-MM-DD HH:MM) UTC only. Example: 2026-06-06 16:16' @@ -139,6 +139,7 @@ jobs: DEPLOY_EE: ${{steps.detect_editions.outputs.DEPLOY_EE}} DEPLOY_FE: ${{steps.detect_editions.outputs.DEPLOY_FE}} DEPLOY_BE: ${{steps.detect_editions.outputs.DEPLOY_BE}} + DEPLOY_SE: ${{steps.detect_editions.outputs.DEPLOY_SE}} steps: - name: Detect editions id: detect_editions @@ -149,7 +150,7 @@ jobs: RESTRICTED=no - for edition in CE EE FE BE ; do + for edition in CE EE FE BE SE ; do if grep -i ",${edition}," <<<",${EDITIONS}," 2>/dev/null 1>&2 ; then echo " - enable deploy of ${edition} edition." echo "DEPLOY_${edition}=true" >> $GITHUB_OUTPUT @@ -159,7 +160,7 @@ jobs: if [[ $RESTRICTED == "no" ]] ; then echo "No restrictions. Enable deploy to all editions." - for edition in CE EE FE BE ; do + for edition in CE EE FE BE SE ; do echo "DEPLOY_${edition}=true" >> $GITHUB_OUTPUT done fi @@ -202,6 +203,15 @@ jobs: steps: - run: ": Enable BE" + enable_SE: + if: ${{ needs.detect_editions.outputs.DEPLOY_SE == 'true' }} + name: Enable SE + needs: + - detect_editions + runs-on: ubuntu-latest + steps: + - run: ": Enable SE" + run_deploy: name: Deploy ${{needs.git_info.outputs.ci_commit_tag}} to rock-solid @@ -409,6 +419,27 @@ jobs: echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SOURCE_RELEASE_VERSION_IMAGE}' image with cooldown." docker image push ${SOURCE_RELEASE_VERSION_IMAGE} + - name: Set cooldown for release (SE) + if: ${{ github.event.inputs.cooldown }} + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + CI_COMMIT_TAG: ${{needs.git_info.outputs.ci_commit_tag}} + WERF_ENV: SE + COOLDOWN: ${{ github.event.inputs.cooldown }} + run: | + PROD_REGISTRY_PATH="${DECKHOUSE_REGISTRY_HOST}/deckhouse" + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + PROD_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish using Github Container Registry: '${PROD_REGISTRY_PATH}'" + fi + + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + + SOURCE_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${CI_COMMIT_TAG}; + echo "FROM ${SOURCE_RELEASE_VERSION_IMAGE}" | docker build --label cooldown="${COOLDOWN}" -t "${SOURCE_RELEASE_VERSION_IMAGE}" - + + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SOURCE_RELEASE_VERSION_IMAGE}' image with cooldown." + docker image push ${SOURCE_RELEASE_VERSION_IMAGE} @@ -920,6 +951,137 @@ jobs: echo " Delete local 'release-channel-version' source image ${SOURCE_RELEASE_VERSION_IMAGE}" docker image rmi ${SOURCE_RELEASE_VERSION_IMAGE} || true + # 6. Report. + echo "Deckhouse images published:" + echo " Source: ${SOURCE_IMAGE}" + echo " Prod: ${PROD_IMAGE}" + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo " Dev: ${DEV_IMAGE}" + fi + echo "Install images published:" + echo " Source: ${SOURCE_INSTALL_IMAGE}" + echo " Prod: ${PROD_INSTALL_IMAGE}" + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo " Dev: ${DEV_INSTALL_IMAGE}" + fi + echo "Release version image:" + echo " Source: ${SOURCE_RELEASE_VERSION_IMAGE}" + echo " Prod: ${PROD_RELEASE_VERSION_IMAGE}" + - name: Publish release images for SE + if: ${{ needs.detect_editions.outputs.DEPLOY_SE == 'true' }} + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + CI_COMMIT_TAG: ${{needs.git_info.outputs.ci_commit_tag}} + CI_COMMIT_BRANCH: ${{needs.git_info.outputs.ci_commit_branch}} + WERF_ENV: SE + SKIP_PUSH_FOR_DEPLOY: ${{secrets.SKIP_PUSH_FOR_DEPLOY}} + run: | + # SRC_NAME is a name of image from werf.yaml. + # SRC is a source image name. + # DST is an image name for docker push. + function pull_push_rmi() { + SRC_NAME=$1 + SRC=$2 + DST=$3 + echo "โš“๏ธ ๐Ÿ“ฅ [$(date -u)] Pull '${SRC_NAME}' image as ${SRC}." + docker pull ${SRC} + echo "โš“๏ธ ๐Ÿท [$(date -u)] Tag '${SRC_NAME}' image as ${DST}." + docker image tag ${SRC} ${DST} + + enable_push="true" + if [[ ${GITHUB_REPOSITORY} != "deckhouse/deckhouse" ]]; then + if [[ ${SKIP_PUSH_FOR_SUSPEND} == "true" ]]; then + enable_push="false" + echo "โš“๏ธ โŽ [$(date -u)] SKIP_PUSH_FOR_DEPLOY=true, skip running 'docker image push ${DST}'." + fi + fi + + if [[ ${enable_push} == "true" ]] ; then + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SRC_NAME}' image as ${DST}." + docker image push ${DST} + fi + + echo "โš“๏ธ ๐Ÿงน [$(date -u)] Remove local tag for '${SRC_NAME}'." + docker image rmi ${DST} || true; + } + + # Some precautions. + shouldExit1= + if [[ -z ${DEV_REGISTRY_PATH} ]] ; then + echo "::error title=Missed variable::DEV_REGISTRY_PATH is not set. Define destination registry in secrets." + shouldExit1=yes + fi + if [[ -z ${WERF_ENV} ]] ; then + echo "::error title=Missed variable::WERF_ENV is not set. Cannot deploy unknown edition, only ce, ee and fe are allowed in inputs." + shouldExit1=yes + fi + if [[ -z ${CI_COMMIT_TAG} ]] ; then + echo "::error title=Missed variable::CI_COMMIT_TAG is not set. Probably you try to manually deploy from branch '${CI_COMMIT_BRANCH}'? Deploy allowed for tags only." + shouldExit1=yes + fi + if [[ -n ${shouldExit1} ]] ; then + exit 1 + fi + + echo "Publish SE edition". + + # Variables + # 1. Edition and channel. + # CE/EE/FE -> ce/ee/fe + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + RELEASE_CHANNEL=rock-solid + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Start publishing Deckhouse images for '${REGISTRY_SUFFIX}' edition onto '${RELEASE_CHANNEL}' release channel." + + # 2. Prod registry: use github packages if DECKHOUSE_REGISTRY_HOST not set (run in the test repo). + PROD_REGISTRY_PATH="${DECKHOUSE_REGISTRY_HOST}/deckhouse" + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + PROD_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish using Github Container Registry: '${PROD_REGISTRY_PATH}'" + fi + + # 3. Prepare image names: republish CI_COMMIT_TAG tag images in dev-registry + # to RELEASE_CHANNEL tag image in prod registry. + SOURCE_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${CI_COMMIT_TAG}; + PROD_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${RELEASE_CHANNEL}; + DEV_IMAGE=${DEV_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${RELEASE_CHANNEL} + + SOURCE_INSTALL_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${CI_COMMIT_TAG}; + PROD_INSTALL_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${RELEASE_CHANNEL}; + DEV_INSTALL_IMAGE=${DEV_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${RELEASE_CHANNEL} + + SOURCE_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${CI_COMMIT_TAG}; + PROD_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${RELEASE_CHANNEL}; + + # 4. Publish to dev registry if DECKHOUSE_REGISTRY_HOST is set (run in the main repo). + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev' image to dev-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev' ${SOURCE_IMAGE} ${DEV_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev/install' image to dev-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev/install' ${SOURCE_INSTALL_IMAGE} ${DEV_INSTALL_IMAGE} + fi + + # 5. Publish prod images to rw registry. + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev' ${SOURCE_IMAGE} ${PROD_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev/install' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev/install' ${SOURCE_INSTALL_IMAGE} ${PROD_INSTALL_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'release-channel-version' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'release-channel-version' ${SOURCE_RELEASE_VERSION_IMAGE} ${PROD_RELEASE_VERSION_IMAGE} + + echo "โš“๏ธ [$(date -u)] Remove local source images." + echo " Delete local 'dev' source image ${SOURCE_IMAGE}" + docker image rmi ${SOURCE_IMAGE} || true + + echo " Delete local 'dev/install' source image ${SOURCE_INSTALL_IMAGE}" + docker image rmi ${SOURCE_INSTALL_IMAGE} || true + + echo " Delete local 'release-channel-version' source image ${SOURCE_RELEASE_VERSION_IMAGE}" + docker image rmi ${SOURCE_RELEASE_VERSION_IMAGE} || true + # 6. Report. echo "Deckhouse images published:" echo " Source: ${SOURCE_IMAGE}" diff --git a/.github/workflows/deploy-stable.yml b/.github/workflows/deploy-stable.yml index 7ddeb1c772..4d58adac8f 100644 --- a/.github/workflows/deploy-stable.yml +++ b/.github/workflows/deploy-stable.yml @@ -32,7 +32,7 @@ on: description: 'Id of comment in issue where to put workflow run status' required: false editions: - description: 'Comma separated editions to deploy. Example: ee,fe,ce,be' + description: 'Comma separated editions to deploy. Example: ee,fe,ce,be,se' required: false cooldown: description: 'Postpone release until specified datetime (YYYY-MM-DD HH:MM) UTC only. Example: 2026-06-06 16:16' @@ -139,6 +139,7 @@ jobs: DEPLOY_EE: ${{steps.detect_editions.outputs.DEPLOY_EE}} DEPLOY_FE: ${{steps.detect_editions.outputs.DEPLOY_FE}} DEPLOY_BE: ${{steps.detect_editions.outputs.DEPLOY_BE}} + DEPLOY_SE: ${{steps.detect_editions.outputs.DEPLOY_SE}} steps: - name: Detect editions id: detect_editions @@ -149,7 +150,7 @@ jobs: RESTRICTED=no - for edition in CE EE FE BE ; do + for edition in CE EE FE BE SE ; do if grep -i ",${edition}," <<<",${EDITIONS}," 2>/dev/null 1>&2 ; then echo " - enable deploy of ${edition} edition." echo "DEPLOY_${edition}=true" >> $GITHUB_OUTPUT @@ -159,7 +160,7 @@ jobs: if [[ $RESTRICTED == "no" ]] ; then echo "No restrictions. Enable deploy to all editions." - for edition in CE EE FE BE ; do + for edition in CE EE FE BE SE ; do echo "DEPLOY_${edition}=true" >> $GITHUB_OUTPUT done fi @@ -202,6 +203,15 @@ jobs: steps: - run: ": Enable BE" + enable_SE: + if: ${{ needs.detect_editions.outputs.DEPLOY_SE == 'true' }} + name: Enable SE + needs: + - detect_editions + runs-on: ubuntu-latest + steps: + - run: ": Enable SE" + run_deploy: name: Deploy ${{needs.git_info.outputs.ci_commit_tag}} to stable @@ -409,6 +419,27 @@ jobs: echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SOURCE_RELEASE_VERSION_IMAGE}' image with cooldown." docker image push ${SOURCE_RELEASE_VERSION_IMAGE} + - name: Set cooldown for release (SE) + if: ${{ github.event.inputs.cooldown }} + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + CI_COMMIT_TAG: ${{needs.git_info.outputs.ci_commit_tag}} + WERF_ENV: SE + COOLDOWN: ${{ github.event.inputs.cooldown }} + run: | + PROD_REGISTRY_PATH="${DECKHOUSE_REGISTRY_HOST}/deckhouse" + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + PROD_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish using Github Container Registry: '${PROD_REGISTRY_PATH}'" + fi + + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + + SOURCE_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${CI_COMMIT_TAG}; + echo "FROM ${SOURCE_RELEASE_VERSION_IMAGE}" | docker build --label cooldown="${COOLDOWN}" -t "${SOURCE_RELEASE_VERSION_IMAGE}" - + + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SOURCE_RELEASE_VERSION_IMAGE}' image with cooldown." + docker image push ${SOURCE_RELEASE_VERSION_IMAGE} @@ -920,6 +951,137 @@ jobs: echo " Delete local 'release-channel-version' source image ${SOURCE_RELEASE_VERSION_IMAGE}" docker image rmi ${SOURCE_RELEASE_VERSION_IMAGE} || true + # 6. Report. + echo "Deckhouse images published:" + echo " Source: ${SOURCE_IMAGE}" + echo " Prod: ${PROD_IMAGE}" + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo " Dev: ${DEV_IMAGE}" + fi + echo "Install images published:" + echo " Source: ${SOURCE_INSTALL_IMAGE}" + echo " Prod: ${PROD_INSTALL_IMAGE}" + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo " Dev: ${DEV_INSTALL_IMAGE}" + fi + echo "Release version image:" + echo " Source: ${SOURCE_RELEASE_VERSION_IMAGE}" + echo " Prod: ${PROD_RELEASE_VERSION_IMAGE}" + - name: Publish release images for SE + if: ${{ needs.detect_editions.outputs.DEPLOY_SE == 'true' }} + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + CI_COMMIT_TAG: ${{needs.git_info.outputs.ci_commit_tag}} + CI_COMMIT_BRANCH: ${{needs.git_info.outputs.ci_commit_branch}} + WERF_ENV: SE + SKIP_PUSH_FOR_DEPLOY: ${{secrets.SKIP_PUSH_FOR_DEPLOY}} + run: | + # SRC_NAME is a name of image from werf.yaml. + # SRC is a source image name. + # DST is an image name for docker push. + function pull_push_rmi() { + SRC_NAME=$1 + SRC=$2 + DST=$3 + echo "โš“๏ธ ๐Ÿ“ฅ [$(date -u)] Pull '${SRC_NAME}' image as ${SRC}." + docker pull ${SRC} + echo "โš“๏ธ ๐Ÿท [$(date -u)] Tag '${SRC_NAME}' image as ${DST}." + docker image tag ${SRC} ${DST} + + enable_push="true" + if [[ ${GITHUB_REPOSITORY} != "deckhouse/deckhouse" ]]; then + if [[ ${SKIP_PUSH_FOR_SUSPEND} == "true" ]]; then + enable_push="false" + echo "โš“๏ธ โŽ [$(date -u)] SKIP_PUSH_FOR_DEPLOY=true, skip running 'docker image push ${DST}'." + fi + fi + + if [[ ${enable_push} == "true" ]] ; then + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SRC_NAME}' image as ${DST}." + docker image push ${DST} + fi + + echo "โš“๏ธ ๐Ÿงน [$(date -u)] Remove local tag for '${SRC_NAME}'." + docker image rmi ${DST} || true; + } + + # Some precautions. + shouldExit1= + if [[ -z ${DEV_REGISTRY_PATH} ]] ; then + echo "::error title=Missed variable::DEV_REGISTRY_PATH is not set. Define destination registry in secrets." + shouldExit1=yes + fi + if [[ -z ${WERF_ENV} ]] ; then + echo "::error title=Missed variable::WERF_ENV is not set. Cannot deploy unknown edition, only ce, ee and fe are allowed in inputs." + shouldExit1=yes + fi + if [[ -z ${CI_COMMIT_TAG} ]] ; then + echo "::error title=Missed variable::CI_COMMIT_TAG is not set. Probably you try to manually deploy from branch '${CI_COMMIT_BRANCH}'? Deploy allowed for tags only." + shouldExit1=yes + fi + if [[ -n ${shouldExit1} ]] ; then + exit 1 + fi + + echo "Publish SE edition". + + # Variables + # 1. Edition and channel. + # CE/EE/FE -> ce/ee/fe + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + RELEASE_CHANNEL=stable + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Start publishing Deckhouse images for '${REGISTRY_SUFFIX}' edition onto '${RELEASE_CHANNEL}' release channel." + + # 2. Prod registry: use github packages if DECKHOUSE_REGISTRY_HOST not set (run in the test repo). + PROD_REGISTRY_PATH="${DECKHOUSE_REGISTRY_HOST}/deckhouse" + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + PROD_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish using Github Container Registry: '${PROD_REGISTRY_PATH}'" + fi + + # 3. Prepare image names: republish CI_COMMIT_TAG tag images in dev-registry + # to RELEASE_CHANNEL tag image in prod registry. + SOURCE_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${CI_COMMIT_TAG}; + PROD_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${RELEASE_CHANNEL}; + DEV_IMAGE=${DEV_REGISTRY_PATH}/${REGISTRY_SUFFIX}:${RELEASE_CHANNEL} + + SOURCE_INSTALL_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${CI_COMMIT_TAG}; + PROD_INSTALL_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${RELEASE_CHANNEL}; + DEV_INSTALL_IMAGE=${DEV_REGISTRY_PATH}/${REGISTRY_SUFFIX}/install:${RELEASE_CHANNEL} + + SOURCE_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${CI_COMMIT_TAG}; + PROD_RELEASE_VERSION_IMAGE=${PROD_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${RELEASE_CHANNEL}; + + # 4. Publish to dev registry if DECKHOUSE_REGISTRY_HOST is set (run in the main repo). + if [[ -n "${DECKHOUSE_REGISTRY_HOST}" ]]; then + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev' image to dev-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev' ${SOURCE_IMAGE} ${DEV_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev/install' image to dev-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev/install' ${SOURCE_INSTALL_IMAGE} ${DEV_INSTALL_IMAGE} + fi + + # 5. Publish prod images to rw registry. + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev' ${SOURCE_IMAGE} ${PROD_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'dev/install' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'dev/install' ${SOURCE_INSTALL_IMAGE} ${PROD_INSTALL_IMAGE} + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Publish 'release-channel-version' image to rw-registry using tag ${RELEASE_CHANNEL}". + pull_push_rmi 'release-channel-version' ${SOURCE_RELEASE_VERSION_IMAGE} ${PROD_RELEASE_VERSION_IMAGE} + + echo "โš“๏ธ [$(date -u)] Remove local source images." + echo " Delete local 'dev' source image ${SOURCE_IMAGE}" + docker image rmi ${SOURCE_IMAGE} || true + + echo " Delete local 'dev/install' source image ${SOURCE_INSTALL_IMAGE}" + docker image rmi ${SOURCE_INSTALL_IMAGE} || true + + echo " Delete local 'release-channel-version' source image ${SOURCE_RELEASE_VERSION_IMAGE}" + docker image rmi ${SOURCE_RELEASE_VERSION_IMAGE} || true + # 6. Report. echo "Deckhouse images published:" echo " Source: ${SOURCE_IMAGE}" diff --git a/.github/workflows/on-pull-request-labeled.yml b/.github/workflows/on-pull-request-labeled.yml index 66de481fe9..bca1d0a422 100644 --- a/.github/workflows/on-pull-request-labeled.yml +++ b/.github/workflows/on-pull-request-labeled.yml @@ -176,6 +176,7 @@ jobs: const hasEE = pr.labels.some((l) => l.name === 'edition/ee'); const hasCE = pr.labels.some((l) => l.name === 'edition/ce'); const hasBE = pr.labels.some((l) => l.name === 'edition/be'); + const hasSE = pr.labels.some((l) => l.name === 'edition/se'); let edition = defaultEdition; if (hasCE) { edition = 'CE'; @@ -183,8 +184,10 @@ jobs: edition = 'EE'; } else if (hasBE) { edition = 'BE'; + } else if (hasSE) { + edition = 'SE'; } - core.info(`Edition labels: 'edition/ce':${hasCE}, 'edition/ee':${hasEE}, 'edition/be':${hasBE}`); + core.info(`Edition labels: 'edition/ce':${hasCE}, 'edition/ee':${hasEE}, 'edition/be':${hasBE}, 'edition/se':${hasSE}`); core.notice(`Enable '${edition}' edition for '${context.eventName}' trigger.`); // Construct head commit ref using pr number. diff --git a/.github/workflows/suspend-alpha.yml b/.github/workflows/suspend-alpha.yml index 56a05d40ea..fd54315ffd 100644 --- a/.github/workflows/suspend-alpha.yml +++ b/.github/workflows/suspend-alpha.yml @@ -303,7 +303,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=alpha @@ -381,7 +381,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=alpha @@ -459,7 +459,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=alpha @@ -537,7 +537,85 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + RELEASE_CHANNEL=alpha + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Start publishing 'release-channel suspend' image for '${REGISTRY_SUFFIX}' edition onto '${RELEASE_CHANNEL}' release channel." + + # 2. Prod registry: use github packages if DECKHOUSE_REGISTRY_HOST not set (run in the test repo). + DST_REGISTRY_PATH=${DECKHOUSE_REGISTRY_HOST}/deckhouse + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + DST_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish to Github Container Registry '${DST_REGISTRY_PATH}'" + fi + + # 3. Build and publish release-channel image to prod registry. + SUSPEND_VERSION_IMAGE=${DST_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${RELEASE_CHANNEL} + echo "โš“๏ธ ๐Ÿ›  [$(date -u)] Build 'release-channel suspend' image as '${SUSPEND_VERSION_IMAGE}'." + + echo "{\"version\": \"${SUSPEND_VERSION}\", \"suspend\": true}" > version.json + cat <Dockerfile + FROM scratch + COPY version.json version.json + EOF + docker build . -t "${SUSPEND_VERSION_IMAGE}" + + push_rmi 'release-channel suspend' "${SUSPEND_VERSION_IMAGE}" + - name: Publish release images for SE + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + SUSPEND_VERSION: ${{needs.detect_version.outputs.version}} + WERF_ENV: SE + SKIP_PUSH_FOR_SUSPEND: ${{secrets.SKIP_PUSH_FOR_SUSPEND}} + run: | + # SRC_NAME is a name of image from werf.yaml. + # SRC is a source image name. + # DST is an image name for docker push. + function push_rmi() { + SRC_NAME=$1 + DST=$2 + + enable_push="true" + if [[ ${GITHUB_REPOSITORY} != "deckhouse/deckhouse" ]]; then + if [[ ${SKIP_PUSH_FOR_SUSPEND} == "true" ]]; then + enable_push="false" + echo "โš“๏ธ โŽ [$(date -u)] SKIP_PUSH_FOR_SUSPEND=true, skip running 'docker image push ${DST}'." + fi + fi + + if [[ ${enable_push} == "true" ]] ; then + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SRC_NAME}' image as ${DST}." + docker image push ${DST} + fi + + echo "โš“๏ธ ๐Ÿงน [$(date -u)] Remove local tag for '${SRC_NAME}'." + docker image rmi ${DST} || true; + } + + # Some precautions. + shouldExit1= + if [[ -z ${DEV_REGISTRY_PATH} ]] ; then + echo "::error title=Missed variable::DEV_REGISTRY_PATH is not set. Define destination registry in secrets." + shouldExit1=yes + fi + if [[ -z ${WERF_ENV} ]] ; then + echo "::error title=Missed variable::WERF_ENV is not set. Cannot deploy unknown edition, only ce, ee and fe are allowed in inputs." + shouldExit1=yes + fi + if [[ -z ${SUSPEND_VERSION} ]] ; then + echo "::error title=Missed version::Suspend version not detected. Use suspend_tag input or run workflow from tag." + shouldExit1=yes + fi + if [[ -n ${shouldExit1} ]] ; then + exit 1 + fi + + echo "Suspend version '${SUSPEND_VERSION}' for SE edition". + + # Variables + # 1. Edition and channel. + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=alpha diff --git a/.github/workflows/suspend-beta.yml b/.github/workflows/suspend-beta.yml index fb5c86bebf..42faa06920 100644 --- a/.github/workflows/suspend-beta.yml +++ b/.github/workflows/suspend-beta.yml @@ -303,7 +303,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=beta @@ -381,7 +381,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=beta @@ -459,7 +459,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=beta @@ -537,7 +537,85 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + RELEASE_CHANNEL=beta + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Start publishing 'release-channel suspend' image for '${REGISTRY_SUFFIX}' edition onto '${RELEASE_CHANNEL}' release channel." + + # 2. Prod registry: use github packages if DECKHOUSE_REGISTRY_HOST not set (run in the test repo). + DST_REGISTRY_PATH=${DECKHOUSE_REGISTRY_HOST}/deckhouse + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + DST_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish to Github Container Registry '${DST_REGISTRY_PATH}'" + fi + + # 3. Build and publish release-channel image to prod registry. + SUSPEND_VERSION_IMAGE=${DST_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${RELEASE_CHANNEL} + echo "โš“๏ธ ๐Ÿ›  [$(date -u)] Build 'release-channel suspend' image as '${SUSPEND_VERSION_IMAGE}'." + + echo "{\"version\": \"${SUSPEND_VERSION}\", \"suspend\": true}" > version.json + cat <Dockerfile + FROM scratch + COPY version.json version.json + EOF + docker build . -t "${SUSPEND_VERSION_IMAGE}" + + push_rmi 'release-channel suspend' "${SUSPEND_VERSION_IMAGE}" + - name: Publish release images for SE + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + SUSPEND_VERSION: ${{needs.detect_version.outputs.version}} + WERF_ENV: SE + SKIP_PUSH_FOR_SUSPEND: ${{secrets.SKIP_PUSH_FOR_SUSPEND}} + run: | + # SRC_NAME is a name of image from werf.yaml. + # SRC is a source image name. + # DST is an image name for docker push. + function push_rmi() { + SRC_NAME=$1 + DST=$2 + + enable_push="true" + if [[ ${GITHUB_REPOSITORY} != "deckhouse/deckhouse" ]]; then + if [[ ${SKIP_PUSH_FOR_SUSPEND} == "true" ]]; then + enable_push="false" + echo "โš“๏ธ โŽ [$(date -u)] SKIP_PUSH_FOR_SUSPEND=true, skip running 'docker image push ${DST}'." + fi + fi + + if [[ ${enable_push} == "true" ]] ; then + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SRC_NAME}' image as ${DST}." + docker image push ${DST} + fi + + echo "โš“๏ธ ๐Ÿงน [$(date -u)] Remove local tag for '${SRC_NAME}'." + docker image rmi ${DST} || true; + } + + # Some precautions. + shouldExit1= + if [[ -z ${DEV_REGISTRY_PATH} ]] ; then + echo "::error title=Missed variable::DEV_REGISTRY_PATH is not set. Define destination registry in secrets." + shouldExit1=yes + fi + if [[ -z ${WERF_ENV} ]] ; then + echo "::error title=Missed variable::WERF_ENV is not set. Cannot deploy unknown edition, only ce, ee and fe are allowed in inputs." + shouldExit1=yes + fi + if [[ -z ${SUSPEND_VERSION} ]] ; then + echo "::error title=Missed version::Suspend version not detected. Use suspend_tag input or run workflow from tag." + shouldExit1=yes + fi + if [[ -n ${shouldExit1} ]] ; then + exit 1 + fi + + echo "Suspend version '${SUSPEND_VERSION}' for SE edition". + + # Variables + # 1. Edition and channel. + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=beta diff --git a/.github/workflows/suspend-early-access.yml b/.github/workflows/suspend-early-access.yml index 551c0cfdbf..3f2dfc9c3c 100644 --- a/.github/workflows/suspend-early-access.yml +++ b/.github/workflows/suspend-early-access.yml @@ -303,7 +303,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=early-access @@ -381,7 +381,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=early-access @@ -459,7 +459,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=early-access @@ -537,7 +537,85 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + RELEASE_CHANNEL=early-access + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Start publishing 'release-channel suspend' image for '${REGISTRY_SUFFIX}' edition onto '${RELEASE_CHANNEL}' release channel." + + # 2. Prod registry: use github packages if DECKHOUSE_REGISTRY_HOST not set (run in the test repo). + DST_REGISTRY_PATH=${DECKHOUSE_REGISTRY_HOST}/deckhouse + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + DST_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish to Github Container Registry '${DST_REGISTRY_PATH}'" + fi + + # 3. Build and publish release-channel image to prod registry. + SUSPEND_VERSION_IMAGE=${DST_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${RELEASE_CHANNEL} + echo "โš“๏ธ ๐Ÿ›  [$(date -u)] Build 'release-channel suspend' image as '${SUSPEND_VERSION_IMAGE}'." + + echo "{\"version\": \"${SUSPEND_VERSION}\", \"suspend\": true}" > version.json + cat <Dockerfile + FROM scratch + COPY version.json version.json + EOF + docker build . -t "${SUSPEND_VERSION_IMAGE}" + + push_rmi 'release-channel suspend' "${SUSPEND_VERSION_IMAGE}" + - name: Publish release images for SE + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + SUSPEND_VERSION: ${{needs.detect_version.outputs.version}} + WERF_ENV: SE + SKIP_PUSH_FOR_SUSPEND: ${{secrets.SKIP_PUSH_FOR_SUSPEND}} + run: | + # SRC_NAME is a name of image from werf.yaml. + # SRC is a source image name. + # DST is an image name for docker push. + function push_rmi() { + SRC_NAME=$1 + DST=$2 + + enable_push="true" + if [[ ${GITHUB_REPOSITORY} != "deckhouse/deckhouse" ]]; then + if [[ ${SKIP_PUSH_FOR_SUSPEND} == "true" ]]; then + enable_push="false" + echo "โš“๏ธ โŽ [$(date -u)] SKIP_PUSH_FOR_SUSPEND=true, skip running 'docker image push ${DST}'." + fi + fi + + if [[ ${enable_push} == "true" ]] ; then + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SRC_NAME}' image as ${DST}." + docker image push ${DST} + fi + + echo "โš“๏ธ ๐Ÿงน [$(date -u)] Remove local tag for '${SRC_NAME}'." + docker image rmi ${DST} || true; + } + + # Some precautions. + shouldExit1= + if [[ -z ${DEV_REGISTRY_PATH} ]] ; then + echo "::error title=Missed variable::DEV_REGISTRY_PATH is not set. Define destination registry in secrets." + shouldExit1=yes + fi + if [[ -z ${WERF_ENV} ]] ; then + echo "::error title=Missed variable::WERF_ENV is not set. Cannot deploy unknown edition, only ce, ee and fe are allowed in inputs." + shouldExit1=yes + fi + if [[ -z ${SUSPEND_VERSION} ]] ; then + echo "::error title=Missed version::Suspend version not detected. Use suspend_tag input or run workflow from tag." + shouldExit1=yes + fi + if [[ -n ${shouldExit1} ]] ; then + exit 1 + fi + + echo "Suspend version '${SUSPEND_VERSION}' for SE edition". + + # Variables + # 1. Edition and channel. + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=early-access diff --git a/.github/workflows/suspend-rock-solid.yml b/.github/workflows/suspend-rock-solid.yml index 1453a3a195..2bffe9f6a9 100644 --- a/.github/workflows/suspend-rock-solid.yml +++ b/.github/workflows/suspend-rock-solid.yml @@ -303,7 +303,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=rock-solid @@ -381,7 +381,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=rock-solid @@ -459,7 +459,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=rock-solid @@ -537,7 +537,85 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + RELEASE_CHANNEL=rock-solid + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Start publishing 'release-channel suspend' image for '${REGISTRY_SUFFIX}' edition onto '${RELEASE_CHANNEL}' release channel." + + # 2. Prod registry: use github packages if DECKHOUSE_REGISTRY_HOST not set (run in the test repo). + DST_REGISTRY_PATH=${DECKHOUSE_REGISTRY_HOST}/deckhouse + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + DST_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish to Github Container Registry '${DST_REGISTRY_PATH}'" + fi + + # 3. Build and publish release-channel image to prod registry. + SUSPEND_VERSION_IMAGE=${DST_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${RELEASE_CHANNEL} + echo "โš“๏ธ ๐Ÿ›  [$(date -u)] Build 'release-channel suspend' image as '${SUSPEND_VERSION_IMAGE}'." + + echo "{\"version\": \"${SUSPEND_VERSION}\", \"suspend\": true}" > version.json + cat <Dockerfile + FROM scratch + COPY version.json version.json + EOF + docker build . -t "${SUSPEND_VERSION_IMAGE}" + + push_rmi 'release-channel suspend' "${SUSPEND_VERSION_IMAGE}" + - name: Publish release images for SE + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + SUSPEND_VERSION: ${{needs.detect_version.outputs.version}} + WERF_ENV: SE + SKIP_PUSH_FOR_SUSPEND: ${{secrets.SKIP_PUSH_FOR_SUSPEND}} + run: | + # SRC_NAME is a name of image from werf.yaml. + # SRC is a source image name. + # DST is an image name for docker push. + function push_rmi() { + SRC_NAME=$1 + DST=$2 + + enable_push="true" + if [[ ${GITHUB_REPOSITORY} != "deckhouse/deckhouse" ]]; then + if [[ ${SKIP_PUSH_FOR_SUSPEND} == "true" ]]; then + enable_push="false" + echo "โš“๏ธ โŽ [$(date -u)] SKIP_PUSH_FOR_SUSPEND=true, skip running 'docker image push ${DST}'." + fi + fi + + if [[ ${enable_push} == "true" ]] ; then + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SRC_NAME}' image as ${DST}." + docker image push ${DST} + fi + + echo "โš“๏ธ ๐Ÿงน [$(date -u)] Remove local tag for '${SRC_NAME}'." + docker image rmi ${DST} || true; + } + + # Some precautions. + shouldExit1= + if [[ -z ${DEV_REGISTRY_PATH} ]] ; then + echo "::error title=Missed variable::DEV_REGISTRY_PATH is not set. Define destination registry in secrets." + shouldExit1=yes + fi + if [[ -z ${WERF_ENV} ]] ; then + echo "::error title=Missed variable::WERF_ENV is not set. Cannot deploy unknown edition, only ce, ee and fe are allowed in inputs." + shouldExit1=yes + fi + if [[ -z ${SUSPEND_VERSION} ]] ; then + echo "::error title=Missed version::Suspend version not detected. Use suspend_tag input or run workflow from tag." + shouldExit1=yes + fi + if [[ -n ${shouldExit1} ]] ; then + exit 1 + fi + + echo "Suspend version '${SUSPEND_VERSION}' for SE edition". + + # Variables + # 1. Edition and channel. + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=rock-solid diff --git a/.github/workflows/suspend-stable.yml b/.github/workflows/suspend-stable.yml index feeb7fb0b2..67e4131592 100644 --- a/.github/workflows/suspend-stable.yml +++ b/.github/workflows/suspend-stable.yml @@ -303,7 +303,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=stable @@ -381,7 +381,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=stable @@ -459,7 +459,7 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=stable @@ -537,7 +537,85 @@ jobs: # Variables # 1. Edition and channel. - # CE/EE/FE/BE -> ce/ee/fe/be + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se + REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') + RELEASE_CHANNEL=stable + + echo "โš“๏ธ ๐Ÿ’ซ [$(date -u)] Start publishing 'release-channel suspend' image for '${REGISTRY_SUFFIX}' edition onto '${RELEASE_CHANNEL}' release channel." + + # 2. Prod registry: use github packages if DECKHOUSE_REGISTRY_HOST not set (run in the test repo). + DST_REGISTRY_PATH=${DECKHOUSE_REGISTRY_HOST}/deckhouse + if [[ -z "${DECKHOUSE_REGISTRY_HOST}" ]]; then + DST_REGISTRY_PATH="${GHA_TEST_REGISTRY_PATH}" + echo "โš“๏ธ ๐Ÿงช [$(date -u)] DECKHOUSE_REGISTRY_HOST is empty. Publish to Github Container Registry '${DST_REGISTRY_PATH}'" + fi + + # 3. Build and publish release-channel image to prod registry. + SUSPEND_VERSION_IMAGE=${DST_REGISTRY_PATH}/${REGISTRY_SUFFIX}/release-channel:${RELEASE_CHANNEL} + echo "โš“๏ธ ๐Ÿ›  [$(date -u)] Build 'release-channel suspend' image as '${SUSPEND_VERSION_IMAGE}'." + + echo "{\"version\": \"${SUSPEND_VERSION}\", \"suspend\": true}" > version.json + cat <Dockerfile + FROM scratch + COPY version.json version.json + EOF + docker build . -t "${SUSPEND_VERSION_IMAGE}" + + push_rmi 'release-channel suspend' "${SUSPEND_VERSION_IMAGE}" + - name: Publish release images for SE + env: + DECKHOUSE_REGISTRY_HOST: ${{secrets.DECKHOUSE_REGISTRY_HOST}} + SUSPEND_VERSION: ${{needs.detect_version.outputs.version}} + WERF_ENV: SE + SKIP_PUSH_FOR_SUSPEND: ${{secrets.SKIP_PUSH_FOR_SUSPEND}} + run: | + # SRC_NAME is a name of image from werf.yaml. + # SRC is a source image name. + # DST is an image name for docker push. + function push_rmi() { + SRC_NAME=$1 + DST=$2 + + enable_push="true" + if [[ ${GITHUB_REPOSITORY} != "deckhouse/deckhouse" ]]; then + if [[ ${SKIP_PUSH_FOR_SUSPEND} == "true" ]]; then + enable_push="false" + echo "โš“๏ธ โŽ [$(date -u)] SKIP_PUSH_FOR_SUSPEND=true, skip running 'docker image push ${DST}'." + fi + fi + + if [[ ${enable_push} == "true" ]] ; then + echo "โš“๏ธ ๐Ÿ“ค [$(date -u)] Push '${SRC_NAME}' image as ${DST}." + docker image push ${DST} + fi + + echo "โš“๏ธ ๐Ÿงน [$(date -u)] Remove local tag for '${SRC_NAME}'." + docker image rmi ${DST} || true; + } + + # Some precautions. + shouldExit1= + if [[ -z ${DEV_REGISTRY_PATH} ]] ; then + echo "::error title=Missed variable::DEV_REGISTRY_PATH is not set. Define destination registry in secrets." + shouldExit1=yes + fi + if [[ -z ${WERF_ENV} ]] ; then + echo "::error title=Missed variable::WERF_ENV is not set. Cannot deploy unknown edition, only ce, ee and fe are allowed in inputs." + shouldExit1=yes + fi + if [[ -z ${SUSPEND_VERSION} ]] ; then + echo "::error title=Missed version::Suspend version not detected. Use suspend_tag input or run workflow from tag." + shouldExit1=yes + fi + if [[ -n ${shouldExit1} ]] ; then + exit 1 + fi + + echo "Suspend version '${SUSPEND_VERSION}' for SE edition". + + # Variables + # 1. Edition and channel. + # CE/EE/FE/BE/SE -> ce/ee/fe/be/se REGISTRY_SUFFIX=$(echo ${WERF_ENV} | tr '[:upper:]' '[:lower:]') RELEASE_CHANNEL=stable diff --git a/.github/workflows/validation.yml b/.github/workflows/validation.yml index fbb4a7bf68..a3675b93b8 100644 --- a/.github/workflows/validation.yml +++ b/.github/workflows/validation.yml @@ -216,6 +216,7 @@ jobs: const hasEE = pr.labels.some((l) => l.name === 'edition/ee'); const hasCE = pr.labels.some((l) => l.name === 'edition/ce'); const hasBE = pr.labels.some((l) => l.name === 'edition/be'); + const hasSE = pr.labels.some((l) => l.name === 'edition/se'); let edition = defaultEdition; if (hasCE) { edition = 'CE'; @@ -223,8 +224,10 @@ jobs: edition = 'EE'; } else if (hasBE) { edition = 'BE'; + } else if (hasSE) { + edition = 'SE'; } - core.info(`Edition labels: 'edition/ce':${hasCE}, 'edition/ee':${hasEE}, 'edition/be':${hasBE}`); + core.info(`Edition labels: 'edition/ce':${hasCE}, 'edition/ee':${hasEE}, 'edition/be':${hasBE}, 'edition/se':${hasSE}`); core.notice(`Enable '${edition}' edition for '${context.eventName}' trigger.`); // Construct head commit ref using pr number. diff --git a/Makefile b/Makefile index ccafd403d9..85210a6c2a 100644 --- a/Makefile +++ b/Makefile @@ -49,7 +49,7 @@ endif # Set testing path for tests-modules ifeq ($(FOCUS),"") - TESTS_PATH = ./modules/... ./global-hooks/... ./ee/modules/... ./ee/fe/modules/... ./ee/be/modules/... + TESTS_PATH = ./modules/... ./global-hooks/... ./ee/modules/... ./ee/fe/modules/... ./ee/be/modules/... ./ee/se/modules/... else CE_MODULES = $(shell find ./modules -maxdepth 1 -regex ".*[0-9]-${FOCUS}") ifneq ($(CE_MODULES),) @@ -67,7 +67,11 @@ else ifneq ($(FE_MODULES),) BE_MODULES_RECURSE = ${BE_MODULES}/... endif - TESTS_PATH = ${CE_MODULES_RECURSE} ${EE_MODULES_RECURSE} ${FE_MODULES_RECURSE} ${BE_MODULES_RECURSE} + SE_MODULES = $(shell find ./ee/se/modules -maxdepth 1 -regex ".*[0-9]-${FOCUS}") + ifneq ($(FE_MODULES),) + SE_MODULES_RECURSE = ${SE_MODULES}/... + endif + TESTS_PATH = ${CE_MODULES_RECURSE} ${EE_MODULES_RECURSE} ${FE_MODULES_RECURSE} ${BE_MODULES_RECURSE} ${SE_MODULES_RECURSE} endif # Set host arch & OS for golang-based programs, e.g. Prometheus diff --git a/deckhouse-controller/cmd/deckhouse-controller/register-go-hooks.go b/deckhouse-controller/cmd/deckhouse-controller/register-go-hooks.go index cff24ef239..2de892f86f 100644 --- a/deckhouse-controller/cmd/deckhouse-controller/register-go-hooks.go +++ b/deckhouse-controller/cmd/deckhouse-controller/register-go-hooks.go @@ -21,14 +21,14 @@ import ( _ "github.com/deckhouse/deckhouse/ee/modules/160-multitenancy-manager/hooks/apis/deckhouse.io/v1alpha1" _ "github.com/deckhouse/deckhouse/ee/modules/160-multitenancy-manager/hooks/apis/deckhouse.io/v1alpha2" _ "github.com/deckhouse/deckhouse/ee/modules/300-prometheus/hooks" - _ "github.com/deckhouse/deckhouse/ee/modules/380-metallb/hooks" _ "github.com/deckhouse/deckhouse/ee/modules/450-keepalived/hooks" _ "github.com/deckhouse/deckhouse/ee/modules/450-network-gateway/hooks" _ "github.com/deckhouse/deckhouse/ee/modules/500-operator-trivy/hooks" - _ "github.com/deckhouse/deckhouse/ee/modules/502-delivery/hooks" - _ "github.com/deckhouse/deckhouse/ee/modules/502-delivery/hooks/https" - _ "github.com/deckhouse/deckhouse/ee/modules/502-delivery/hooks/werf_sources" _ "github.com/deckhouse/deckhouse/ee/modules/650-runtime-audit-engine/hooks" + _ "github.com/deckhouse/deckhouse/ee/se/modules/380-metallb/hooks" + _ "github.com/deckhouse/deckhouse/ee/se/modules/502-delivery/hooks" + _ "github.com/deckhouse/deckhouse/ee/se/modules/502-delivery/hooks/https" + _ "github.com/deckhouse/deckhouse/ee/se/modules/502-delivery/hooks/werf_sources" _ "github.com/deckhouse/deckhouse/global-hooks" _ "github.com/deckhouse/deckhouse/global-hooks/deckhouse-config" _ "github.com/deckhouse/deckhouse/global-hooks/discovery" diff --git a/editions.yaml b/editions.yaml index e777a764e0..57f7814eb9 100644 --- a/editions.yaml +++ b/editions.yaml @@ -43,6 +43,9 @@ editions: - ceph-csi - openvpn +- name: SE + modulesDir: "ee/se/modules" + - name: EE modulesDir: "ee/modules" terraformProviders: diff --git a/ee/modules/380-metallb/.helmignore b/ee/se/modules/380-metallb/.helmignore similarity index 100% rename from ee/modules/380-metallb/.helmignore rename to ee/se/modules/380-metallb/.helmignore diff --git a/ee/modules/380-metallb/.namespace b/ee/se/modules/380-metallb/.namespace similarity index 100% rename from ee/modules/380-metallb/.namespace rename to ee/se/modules/380-metallb/.namespace diff --git a/ee/modules/380-metallb/Chart.yaml b/ee/se/modules/380-metallb/Chart.yaml similarity index 100% rename from ee/modules/380-metallb/Chart.yaml rename to ee/se/modules/380-metallb/Chart.yaml diff --git a/ee/modules/380-metallb/charts/helm_lib b/ee/se/modules/380-metallb/charts/helm_lib similarity index 100% rename from ee/modules/380-metallb/charts/helm_lib rename to ee/se/modules/380-metallb/charts/helm_lib diff --git a/ee/modules/380-metallb/crds/addresspools.yaml b/ee/se/modules/380-metallb/crds/addresspools.yaml similarity index 100% rename from ee/modules/380-metallb/crds/addresspools.yaml rename to ee/se/modules/380-metallb/crds/addresspools.yaml diff --git a/ee/modules/380-metallb/crds/bfdprofiles.yaml b/ee/se/modules/380-metallb/crds/bfdprofiles.yaml similarity index 100% rename from ee/modules/380-metallb/crds/bfdprofiles.yaml rename to ee/se/modules/380-metallb/crds/bfdprofiles.yaml diff --git a/ee/modules/380-metallb/crds/bgpadvertisements.yaml b/ee/se/modules/380-metallb/crds/bgpadvertisements.yaml similarity index 100% rename from ee/modules/380-metallb/crds/bgpadvertisements.yaml rename to ee/se/modules/380-metallb/crds/bgpadvertisements.yaml diff --git a/ee/modules/380-metallb/crds/bgppeers.yaml b/ee/se/modules/380-metallb/crds/bgppeers.yaml similarity index 100% rename from ee/modules/380-metallb/crds/bgppeers.yaml rename to ee/se/modules/380-metallb/crds/bgppeers.yaml diff --git a/ee/modules/380-metallb/crds/communities.yaml b/ee/se/modules/380-metallb/crds/communities.yaml similarity index 100% rename from ee/modules/380-metallb/crds/communities.yaml rename to ee/se/modules/380-metallb/crds/communities.yaml diff --git a/ee/modules/380-metallb/crds/ipaddresspools.yaml b/ee/se/modules/380-metallb/crds/ipaddresspools.yaml similarity index 100% rename from ee/modules/380-metallb/crds/ipaddresspools.yaml rename to ee/se/modules/380-metallb/crds/ipaddresspools.yaml diff --git a/ee/modules/380-metallb/crds/l2advertisements.yaml b/ee/se/modules/380-metallb/crds/l2advertisements.yaml similarity index 100% rename from ee/modules/380-metallb/crds/l2advertisements.yaml rename to ee/se/modules/380-metallb/crds/l2advertisements.yaml diff --git a/ee/modules/380-metallb/docs/CONFIGURATION.md b/ee/se/modules/380-metallb/docs/CONFIGURATION.md similarity index 100% rename from ee/modules/380-metallb/docs/CONFIGURATION.md rename to ee/se/modules/380-metallb/docs/CONFIGURATION.md diff --git a/ee/modules/380-metallb/docs/CONFIGURATION_RU.md b/ee/se/modules/380-metallb/docs/CONFIGURATION_RU.md similarity index 100% rename from ee/modules/380-metallb/docs/CONFIGURATION_RU.md rename to ee/se/modules/380-metallb/docs/CONFIGURATION_RU.md diff --git a/ee/modules/380-metallb/docs/EXAMPLES.md b/ee/se/modules/380-metallb/docs/EXAMPLES.md similarity index 100% rename from ee/modules/380-metallb/docs/EXAMPLES.md rename to ee/se/modules/380-metallb/docs/EXAMPLES.md diff --git a/ee/modules/380-metallb/docs/EXAMPLES_RU.md b/ee/se/modules/380-metallb/docs/EXAMPLES_RU.md similarity index 100% rename from ee/modules/380-metallb/docs/EXAMPLES_RU.md rename to ee/se/modules/380-metallb/docs/EXAMPLES_RU.md diff --git a/ee/modules/380-metallb/docs/README.md b/ee/se/modules/380-metallb/docs/README.md similarity index 100% rename from ee/modules/380-metallb/docs/README.md rename to ee/se/modules/380-metallb/docs/README.md diff --git a/ee/modules/380-metallb/docs/README_RU.md b/ee/se/modules/380-metallb/docs/README_RU.md similarity index 100% rename from ee/modules/380-metallb/docs/README_RU.md rename to ee/se/modules/380-metallb/docs/README_RU.md diff --git a/ee/modules/380-metallb/enabled b/ee/se/modules/380-metallb/enabled similarity index 100% rename from ee/modules/380-metallb/enabled rename to ee/se/modules/380-metallb/enabled diff --git a/ee/modules/380-metallb/hooks/common_test.go b/ee/se/modules/380-metallb/hooks/common_test.go similarity index 100% rename from ee/modules/380-metallb/hooks/common_test.go rename to ee/se/modules/380-metallb/hooks/common_test.go diff --git a/ee/modules/380-metallb/hooks/ensure_crds.go b/ee/se/modules/380-metallb/hooks/ensure_crds.go similarity index 100% rename from ee/modules/380-metallb/hooks/ensure_crds.go rename to ee/se/modules/380-metallb/hooks/ensure_crds.go diff --git a/ee/modules/380-metallb/images/artifact/werf.inc.yaml b/ee/se/modules/380-metallb/images/artifact/werf.inc.yaml similarity index 100% rename from ee/modules/380-metallb/images/artifact/werf.inc.yaml rename to ee/se/modules/380-metallb/images/artifact/werf.inc.yaml diff --git a/ee/modules/380-metallb/images/controller/werf.inc.yaml b/ee/se/modules/380-metallb/images/controller/werf.inc.yaml similarity index 100% rename from ee/modules/380-metallb/images/controller/werf.inc.yaml rename to ee/se/modules/380-metallb/images/controller/werf.inc.yaml diff --git a/ee/modules/380-metallb/images/speaker/werf.inc.yaml b/ee/se/modules/380-metallb/images/speaker/werf.inc.yaml similarity index 100% rename from ee/modules/380-metallb/images/speaker/werf.inc.yaml rename to ee/se/modules/380-metallb/images/speaker/werf.inc.yaml diff --git a/ee/modules/380-metallb/monitoring/grafana-dashboards/kubernetes-cluster/metallb-pool.json b/ee/se/modules/380-metallb/monitoring/grafana-dashboards/kubernetes-cluster/metallb-pool.json similarity index 100% rename from ee/modules/380-metallb/monitoring/grafana-dashboards/kubernetes-cluster/metallb-pool.json rename to ee/se/modules/380-metallb/monitoring/grafana-dashboards/kubernetes-cluster/metallb-pool.json diff --git a/ee/modules/380-metallb/monitoring/grafana-dashboards/kubernetes-cluster/metallb.json b/ee/se/modules/380-metallb/monitoring/grafana-dashboards/kubernetes-cluster/metallb.json similarity index 100% rename from ee/modules/380-metallb/monitoring/grafana-dashboards/kubernetes-cluster/metallb.json rename to ee/se/modules/380-metallb/monitoring/grafana-dashboards/kubernetes-cluster/metallb.json diff --git a/ee/modules/380-metallb/monitoring/prometheus-rules/metallb.yaml b/ee/se/modules/380-metallb/monitoring/prometheus-rules/metallb.yaml similarity index 100% rename from ee/modules/380-metallb/monitoring/prometheus-rules/metallb.yaml rename to ee/se/modules/380-metallb/monitoring/prometheus-rules/metallb.yaml diff --git a/ee/modules/380-metallb/openapi/config-values.yaml b/ee/se/modules/380-metallb/openapi/config-values.yaml similarity index 100% rename from ee/modules/380-metallb/openapi/config-values.yaml rename to ee/se/modules/380-metallb/openapi/config-values.yaml diff --git a/ee/modules/380-metallb/openapi/doc-ru-config-values.yaml b/ee/se/modules/380-metallb/openapi/doc-ru-config-values.yaml similarity index 100% rename from ee/modules/380-metallb/openapi/doc-ru-config-values.yaml rename to ee/se/modules/380-metallb/openapi/doc-ru-config-values.yaml diff --git a/ee/modules/380-metallb/openapi/openapi-case-tests.yaml b/ee/se/modules/380-metallb/openapi/openapi-case-tests.yaml similarity index 100% rename from ee/modules/380-metallb/openapi/openapi-case-tests.yaml rename to ee/se/modules/380-metallb/openapi/openapi-case-tests.yaml diff --git a/ee/modules/380-metallb/openapi/values.yaml b/ee/se/modules/380-metallb/openapi/values.yaml similarity index 100% rename from ee/modules/380-metallb/openapi/values.yaml rename to ee/se/modules/380-metallb/openapi/values.yaml diff --git a/ee/modules/380-metallb/oss.yaml b/ee/se/modules/380-metallb/oss.yaml similarity index 100% rename from ee/modules/380-metallb/oss.yaml rename to ee/se/modules/380-metallb/oss.yaml diff --git a/ee/modules/380-metallb/template_tests/module_test.go b/ee/se/modules/380-metallb/template_tests/module_test.go similarity index 100% rename from ee/modules/380-metallb/template_tests/module_test.go rename to ee/se/modules/380-metallb/template_tests/module_test.go diff --git a/ee/modules/380-metallb/templates/controller/deployment.yaml b/ee/se/modules/380-metallb/templates/controller/deployment.yaml similarity index 100% rename from ee/modules/380-metallb/templates/controller/deployment.yaml rename to ee/se/modules/380-metallb/templates/controller/deployment.yaml diff --git a/ee/modules/380-metallb/templates/controller/ipaddresspools.yaml b/ee/se/modules/380-metallb/templates/controller/ipaddresspools.yaml similarity index 100% rename from ee/modules/380-metallb/templates/controller/ipaddresspools.yaml rename to ee/se/modules/380-metallb/templates/controller/ipaddresspools.yaml diff --git a/ee/modules/380-metallb/templates/controller/pdb.yaml b/ee/se/modules/380-metallb/templates/controller/pdb.yaml similarity index 100% rename from ee/modules/380-metallb/templates/controller/pdb.yaml rename to ee/se/modules/380-metallb/templates/controller/pdb.yaml diff --git a/ee/modules/380-metallb/templates/controller/podmonitor.yaml b/ee/se/modules/380-metallb/templates/controller/podmonitor.yaml similarity index 100% rename from ee/modules/380-metallb/templates/controller/podmonitor.yaml rename to ee/se/modules/380-metallb/templates/controller/podmonitor.yaml diff --git a/ee/modules/380-metallb/templates/controller/rbac-for-us.yaml b/ee/se/modules/380-metallb/templates/controller/rbac-for-us.yaml similarity index 100% rename from ee/modules/380-metallb/templates/controller/rbac-for-us.yaml rename to ee/se/modules/380-metallb/templates/controller/rbac-for-us.yaml diff --git a/ee/modules/380-metallb/templates/monitoring.yaml b/ee/se/modules/380-metallb/templates/monitoring.yaml similarity index 100% rename from ee/modules/380-metallb/templates/monitoring.yaml rename to ee/se/modules/380-metallb/templates/monitoring.yaml diff --git a/ee/modules/380-metallb/templates/namespace.yaml b/ee/se/modules/380-metallb/templates/namespace.yaml similarity index 100% rename from ee/modules/380-metallb/templates/namespace.yaml rename to ee/se/modules/380-metallb/templates/namespace.yaml diff --git a/ee/modules/380-metallb/templates/rbac-for-us.yaml b/ee/se/modules/380-metallb/templates/rbac-for-us.yaml similarity index 100% rename from ee/modules/380-metallb/templates/rbac-for-us.yaml rename to ee/se/modules/380-metallb/templates/rbac-for-us.yaml diff --git a/ee/modules/380-metallb/templates/rbac-to-us.yaml b/ee/se/modules/380-metallb/templates/rbac-to-us.yaml similarity index 100% rename from ee/modules/380-metallb/templates/rbac-to-us.yaml rename to ee/se/modules/380-metallb/templates/rbac-to-us.yaml diff --git a/ee/modules/380-metallb/templates/registry-secret.yaml b/ee/se/modules/380-metallb/templates/registry-secret.yaml similarity index 100% rename from ee/modules/380-metallb/templates/registry-secret.yaml rename to ee/se/modules/380-metallb/templates/registry-secret.yaml diff --git a/ee/modules/380-metallb/templates/speaker/_helper.tpl b/ee/se/modules/380-metallb/templates/speaker/_helper.tpl similarity index 100% rename from ee/modules/380-metallb/templates/speaker/_helper.tpl rename to ee/se/modules/380-metallb/templates/speaker/_helper.tpl diff --git a/ee/modules/380-metallb/templates/speaker/bgp-advertisements.yaml b/ee/se/modules/380-metallb/templates/speaker/bgp-advertisements.yaml similarity index 100% rename from ee/modules/380-metallb/templates/speaker/bgp-advertisements.yaml rename to ee/se/modules/380-metallb/templates/speaker/bgp-advertisements.yaml diff --git a/ee/modules/380-metallb/templates/speaker/bgppeers.yaml b/ee/se/modules/380-metallb/templates/speaker/bgppeers.yaml similarity index 100% rename from ee/modules/380-metallb/templates/speaker/bgppeers.yaml rename to ee/se/modules/380-metallb/templates/speaker/bgppeers.yaml diff --git a/ee/modules/380-metallb/templates/speaker/daemonset.yaml b/ee/se/modules/380-metallb/templates/speaker/daemonset.yaml similarity index 100% rename from ee/modules/380-metallb/templates/speaker/daemonset.yaml rename to ee/se/modules/380-metallb/templates/speaker/daemonset.yaml diff --git a/ee/modules/380-metallb/templates/speaker/l2-advertisements.yaml b/ee/se/modules/380-metallb/templates/speaker/l2-advertisements.yaml similarity index 100% rename from ee/modules/380-metallb/templates/speaker/l2-advertisements.yaml rename to ee/se/modules/380-metallb/templates/speaker/l2-advertisements.yaml diff --git a/ee/modules/380-metallb/templates/speaker/podmonitor.yaml b/ee/se/modules/380-metallb/templates/speaker/podmonitor.yaml similarity index 100% rename from ee/modules/380-metallb/templates/speaker/podmonitor.yaml rename to ee/se/modules/380-metallb/templates/speaker/podmonitor.yaml diff --git a/ee/modules/380-metallb/templates/speaker/rbac-for-us.yaml b/ee/se/modules/380-metallb/templates/speaker/rbac-for-us.yaml similarity index 100% rename from ee/modules/380-metallb/templates/speaker/rbac-for-us.yaml rename to ee/se/modules/380-metallb/templates/speaker/rbac-for-us.yaml diff --git a/ee/modules/502-delivery/.gitignore b/ee/se/modules/502-delivery/.gitignore similarity index 100% rename from ee/modules/502-delivery/.gitignore rename to ee/se/modules/502-delivery/.gitignore diff --git a/ee/modules/502-delivery/.helmignore b/ee/se/modules/502-delivery/.helmignore similarity index 100% rename from ee/modules/502-delivery/.helmignore rename to ee/se/modules/502-delivery/.helmignore diff --git a/ee/modules/502-delivery/.namespace b/ee/se/modules/502-delivery/.namespace similarity index 100% rename from ee/modules/502-delivery/.namespace rename to ee/se/modules/502-delivery/.namespace diff --git a/ee/modules/502-delivery/Chart.yaml b/ee/se/modules/502-delivery/Chart.yaml similarity index 100% rename from ee/modules/502-delivery/Chart.yaml rename to ee/se/modules/502-delivery/Chart.yaml diff --git a/ee/modules/502-delivery/charts/helm_lib b/ee/se/modules/502-delivery/charts/helm_lib similarity index 100% rename from ee/modules/502-delivery/charts/helm_lib rename to ee/se/modules/502-delivery/charts/helm_lib diff --git a/ee/modules/502-delivery/crds/argocd/application.yaml b/ee/se/modules/502-delivery/crds/argocd/application.yaml similarity index 100% rename from ee/modules/502-delivery/crds/argocd/application.yaml rename to ee/se/modules/502-delivery/crds/argocd/application.yaml diff --git a/ee/modules/502-delivery/crds/argocd/applicationset.yaml b/ee/se/modules/502-delivery/crds/argocd/applicationset.yaml similarity index 100% rename from ee/modules/502-delivery/crds/argocd/applicationset.yaml rename to ee/se/modules/502-delivery/crds/argocd/applicationset.yaml diff --git a/ee/modules/502-delivery/crds/argocd/appproject.yaml b/ee/se/modules/502-delivery/crds/argocd/appproject.yaml similarity index 100% rename from ee/modules/502-delivery/crds/argocd/appproject.yaml rename to ee/se/modules/502-delivery/crds/argocd/appproject.yaml diff --git a/ee/modules/502-delivery/crds/doc-ru-werfsource.yaml b/ee/se/modules/502-delivery/crds/doc-ru-werfsource.yaml similarity index 100% rename from ee/modules/502-delivery/crds/doc-ru-werfsource.yaml rename to ee/se/modules/502-delivery/crds/doc-ru-werfsource.yaml diff --git a/ee/modules/502-delivery/crds/werfsource.yaml b/ee/se/modules/502-delivery/crds/werfsource.yaml similarity index 100% rename from ee/modules/502-delivery/crds/werfsource.yaml rename to ee/se/modules/502-delivery/crds/werfsource.yaml diff --git a/ee/modules/502-delivery/docs/CONFIGURATION.md b/ee/se/modules/502-delivery/docs/CONFIGURATION.md similarity index 100% rename from ee/modules/502-delivery/docs/CONFIGURATION.md rename to ee/se/modules/502-delivery/docs/CONFIGURATION.md diff --git a/ee/modules/502-delivery/docs/CONFIGURATION_RU.md b/ee/se/modules/502-delivery/docs/CONFIGURATION_RU.md similarity index 100% rename from ee/modules/502-delivery/docs/CONFIGURATION_RU.md rename to ee/se/modules/502-delivery/docs/CONFIGURATION_RU.md diff --git a/ee/modules/502-delivery/docs/CR.md b/ee/se/modules/502-delivery/docs/CR.md similarity index 100% rename from ee/modules/502-delivery/docs/CR.md rename to ee/se/modules/502-delivery/docs/CR.md diff --git a/ee/modules/502-delivery/docs/CR_RU.md b/ee/se/modules/502-delivery/docs/CR_RU.md similarity index 100% rename from ee/modules/502-delivery/docs/CR_RU.md rename to ee/se/modules/502-delivery/docs/CR_RU.md diff --git a/ee/modules/502-delivery/docs/FAQ.md b/ee/se/modules/502-delivery/docs/FAQ.md similarity index 100% rename from ee/modules/502-delivery/docs/FAQ.md rename to ee/se/modules/502-delivery/docs/FAQ.md diff --git a/ee/modules/502-delivery/docs/FAQ_RU.md b/ee/se/modules/502-delivery/docs/FAQ_RU.md similarity index 100% rename from ee/modules/502-delivery/docs/FAQ_RU.md rename to ee/se/modules/502-delivery/docs/FAQ_RU.md diff --git a/ee/modules/502-delivery/docs/README.md b/ee/se/modules/502-delivery/docs/README.md similarity index 100% rename from ee/modules/502-delivery/docs/README.md rename to ee/se/modules/502-delivery/docs/README.md diff --git a/ee/modules/502-delivery/docs/README_RU.md b/ee/se/modules/502-delivery/docs/README_RU.md similarity index 100% rename from ee/modules/502-delivery/docs/README_RU.md rename to ee/se/modules/502-delivery/docs/README_RU.md diff --git a/ee/modules/502-delivery/docs/USAGE.md b/ee/se/modules/502-delivery/docs/USAGE.md similarity index 100% rename from ee/modules/502-delivery/docs/USAGE.md rename to ee/se/modules/502-delivery/docs/USAGE.md diff --git a/ee/modules/502-delivery/docs/USAGE_RU.md b/ee/se/modules/502-delivery/docs/USAGE_RU.md similarity index 100% rename from ee/modules/502-delivery/docs/USAGE_RU.md rename to ee/se/modules/502-delivery/docs/USAGE_RU.md diff --git a/ee/modules/502-delivery/enabled b/ee/se/modules/502-delivery/enabled similarity index 100% rename from ee/modules/502-delivery/enabled rename to ee/se/modules/502-delivery/enabled diff --git a/ee/modules/502-delivery/hack/get_manifests.sh b/ee/se/modules/502-delivery/hack/get_manifests.sh similarity index 100% rename from ee/modules/502-delivery/hack/get_manifests.sh rename to ee/se/modules/502-delivery/hack/get_manifests.sh diff --git a/ee/modules/502-delivery/hack/retemplate.py b/ee/se/modules/502-delivery/hack/retemplate.py similarity index 100% rename from ee/modules/502-delivery/hack/retemplate.py rename to ee/se/modules/502-delivery/hack/retemplate.py diff --git a/ee/modules/502-delivery/hooks/common_test.go b/ee/se/modules/502-delivery/hooks/common_test.go similarity index 100% rename from ee/modules/502-delivery/hooks/common_test.go rename to ee/se/modules/502-delivery/hooks/common_test.go diff --git a/ee/modules/502-delivery/hooks/ensure_argocd_crds.go b/ee/se/modules/502-delivery/hooks/ensure_argocd_crds.go similarity index 100% rename from ee/modules/502-delivery/hooks/ensure_argocd_crds.go rename to ee/se/modules/502-delivery/hooks/ensure_argocd_crds.go diff --git a/ee/modules/502-delivery/hooks/ensure_crds.go b/ee/se/modules/502-delivery/hooks/ensure_crds.go similarity index 100% rename from ee/modules/502-delivery/hooks/ensure_crds.go rename to ee/se/modules/502-delivery/hooks/ensure_crds.go diff --git a/ee/modules/502-delivery/hooks/https/copy_custom_certificate.go b/ee/se/modules/502-delivery/hooks/https/copy_custom_certificate.go similarity index 100% rename from ee/modules/502-delivery/hooks/https/copy_custom_certificate.go rename to ee/se/modules/502-delivery/hooks/https/copy_custom_certificate.go diff --git a/ee/modules/502-delivery/hooks/patch_dex_secret_part_of_argocd.go b/ee/se/modules/502-delivery/hooks/patch_dex_secret_part_of_argocd.go similarity index 100% rename from ee/modules/502-delivery/hooks/patch_dex_secret_part_of_argocd.go rename to ee/se/modules/502-delivery/hooks/patch_dex_secret_part_of_argocd.go diff --git a/ee/modules/502-delivery/hooks/werf_sources/common_test.go b/ee/se/modules/502-delivery/hooks/werf_sources/common_test.go similarity index 100% rename from ee/modules/502-delivery/hooks/werf_sources/common_test.go rename to ee/se/modules/502-delivery/hooks/werf_sources/common_test.go diff --git a/ee/modules/502-delivery/hooks/werf_sources/hook.go b/ee/se/modules/502-delivery/hooks/werf_sources/hook.go similarity index 100% rename from ee/modules/502-delivery/hooks/werf_sources/hook.go rename to ee/se/modules/502-delivery/hooks/werf_sources/hook.go diff --git a/ee/modules/502-delivery/hooks/werf_sources/hook_test.go b/ee/se/modules/502-delivery/hooks/werf_sources/hook_test.go similarity index 100% rename from ee/modules/502-delivery/hooks/werf_sources/hook_test.go rename to ee/se/modules/502-delivery/hooks/werf_sources/hook_test.go diff --git a/ee/modules/502-delivery/images/argocd-image-updater/Dockerfile b/ee/se/modules/502-delivery/images/argocd-image-updater/Dockerfile similarity index 100% rename from ee/modules/502-delivery/images/argocd-image-updater/Dockerfile rename to ee/se/modules/502-delivery/images/argocd-image-updater/Dockerfile diff --git a/ee/modules/502-delivery/images/argocd/Dockerfile b/ee/se/modules/502-delivery/images/argocd/Dockerfile similarity index 100% rename from ee/modules/502-delivery/images/argocd/Dockerfile rename to ee/se/modules/502-delivery/images/argocd/Dockerfile diff --git a/ee/modules/502-delivery/images/werf-argocd-cmp-sidecar/Dockerfile b/ee/se/modules/502-delivery/images/werf-argocd-cmp-sidecar/Dockerfile similarity index 100% rename from ee/modules/502-delivery/images/werf-argocd-cmp-sidecar/Dockerfile rename to ee/se/modules/502-delivery/images/werf-argocd-cmp-sidecar/Dockerfile diff --git a/ee/modules/502-delivery/openapi/config-values.yaml b/ee/se/modules/502-delivery/openapi/config-values.yaml similarity index 100% rename from ee/modules/502-delivery/openapi/config-values.yaml rename to ee/se/modules/502-delivery/openapi/config-values.yaml diff --git a/ee/modules/502-delivery/openapi/doc-ru-config-values.yaml b/ee/se/modules/502-delivery/openapi/doc-ru-config-values.yaml similarity index 100% rename from ee/modules/502-delivery/openapi/doc-ru-config-values.yaml rename to ee/se/modules/502-delivery/openapi/doc-ru-config-values.yaml diff --git a/ee/modules/502-delivery/openapi/openapi-case-tests.yaml b/ee/se/modules/502-delivery/openapi/openapi-case-tests.yaml similarity index 100% rename from ee/modules/502-delivery/openapi/openapi-case-tests.yaml rename to ee/se/modules/502-delivery/openapi/openapi-case-tests.yaml diff --git a/ee/modules/502-delivery/openapi/values.yaml b/ee/se/modules/502-delivery/openapi/values.yaml similarity index 100% rename from ee/modules/502-delivery/openapi/values.yaml rename to ee/se/modules/502-delivery/openapi/values.yaml diff --git a/ee/modules/502-delivery/oss.yaml b/ee/se/modules/502-delivery/oss.yaml similarity index 100% rename from ee/modules/502-delivery/oss.yaml rename to ee/se/modules/502-delivery/oss.yaml diff --git a/ee/modules/502-delivery/template_tests/copy_custom_certificate_test.go b/ee/se/modules/502-delivery/template_tests/copy_custom_certificate_test.go similarity index 100% rename from ee/modules/502-delivery/template_tests/copy_custom_certificate_test.go rename to ee/se/modules/502-delivery/template_tests/copy_custom_certificate_test.go diff --git a/ee/modules/502-delivery/templates/argocd/application-controller/argocd-application-controller-statefulset.yaml b/ee/se/modules/502-delivery/templates/argocd/application-controller/argocd-application-controller-statefulset.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/application-controller/argocd-application-controller-statefulset.yaml rename to ee/se/modules/502-delivery/templates/argocd/application-controller/argocd-application-controller-statefulset.yaml diff --git a/ee/modules/502-delivery/templates/argocd/application-controller/argocd-metrics-service.yaml b/ee/se/modules/502-delivery/templates/argocd/application-controller/argocd-metrics-service.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/application-controller/argocd-metrics-service.yaml rename to ee/se/modules/502-delivery/templates/argocd/application-controller/argocd-metrics-service.yaml diff --git a/ee/modules/502-delivery/templates/argocd/application-controller/rbac-for-us.yaml b/ee/se/modules/502-delivery/templates/argocd/application-controller/rbac-for-us.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/application-controller/rbac-for-us.yaml rename to ee/se/modules/502-delivery/templates/argocd/application-controller/rbac-for-us.yaml diff --git a/ee/modules/502-delivery/templates/argocd/applicationset-controller/argocd-applicationset-controller-deployment.yaml b/ee/se/modules/502-delivery/templates/argocd/applicationset-controller/argocd-applicationset-controller-deployment.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/applicationset-controller/argocd-applicationset-controller-deployment.yaml rename to ee/se/modules/502-delivery/templates/argocd/applicationset-controller/argocd-applicationset-controller-deployment.yaml diff --git a/ee/modules/502-delivery/templates/argocd/applicationset-controller/argocd-applicationset-controller-service.yaml b/ee/se/modules/502-delivery/templates/argocd/applicationset-controller/argocd-applicationset-controller-service.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/applicationset-controller/argocd-applicationset-controller-service.yaml rename to ee/se/modules/502-delivery/templates/argocd/applicationset-controller/argocd-applicationset-controller-service.yaml diff --git a/ee/modules/502-delivery/templates/argocd/applicationset-controller/rbac-for-us.yaml b/ee/se/modules/502-delivery/templates/argocd/applicationset-controller/rbac-for-us.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/applicationset-controller/rbac-for-us.yaml rename to ee/se/modules/502-delivery/templates/argocd/applicationset-controller/rbac-for-us.yaml diff --git a/ee/modules/502-delivery/templates/argocd/argocd-cm-configmap.yaml b/ee/se/modules/502-delivery/templates/argocd/argocd-cm-configmap.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/argocd-cm-configmap.yaml rename to ee/se/modules/502-delivery/templates/argocd/argocd-cm-configmap.yaml diff --git a/ee/modules/502-delivery/templates/argocd/argocd-cmd-params-cm-configmap.yaml b/ee/se/modules/502-delivery/templates/argocd/argocd-cmd-params-cm-configmap.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/argocd-cmd-params-cm-configmap.yaml rename to ee/se/modules/502-delivery/templates/argocd/argocd-cmd-params-cm-configmap.yaml diff --git a/ee/modules/502-delivery/templates/argocd/argocd-gpg-keys-cm-configmap.yaml b/ee/se/modules/502-delivery/templates/argocd/argocd-gpg-keys-cm-configmap.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/argocd-gpg-keys-cm-configmap.yaml rename to ee/se/modules/502-delivery/templates/argocd/argocd-gpg-keys-cm-configmap.yaml diff --git a/ee/modules/502-delivery/templates/argocd/argocd-rbac-cm-configmap.yaml b/ee/se/modules/502-delivery/templates/argocd/argocd-rbac-cm-configmap.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/argocd-rbac-cm-configmap.yaml rename to ee/se/modules/502-delivery/templates/argocd/argocd-rbac-cm-configmap.yaml diff --git a/ee/modules/502-delivery/templates/argocd/argocd-secret-secret.yaml b/ee/se/modules/502-delivery/templates/argocd/argocd-secret-secret.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/argocd-secret-secret.yaml rename to ee/se/modules/502-delivery/templates/argocd/argocd-secret-secret.yaml diff --git a/ee/modules/502-delivery/templates/argocd/argocd-ssh-known-hosts-cm-configmap.yaml b/ee/se/modules/502-delivery/templates/argocd/argocd-ssh-known-hosts-cm-configmap.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/argocd-ssh-known-hosts-cm-configmap.yaml rename to ee/se/modules/502-delivery/templates/argocd/argocd-ssh-known-hosts-cm-configmap.yaml diff --git a/ee/modules/502-delivery/templates/argocd/argocd-tls-certs-cm-configmap.yaml b/ee/se/modules/502-delivery/templates/argocd/argocd-tls-certs-cm-configmap.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/argocd-tls-certs-cm-configmap.yaml rename to ee/se/modules/502-delivery/templates/argocd/argocd-tls-certs-cm-configmap.yaml diff --git a/ee/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-config-configmap.yaml b/ee/se/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-config-configmap.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-config-configmap.yaml rename to ee/se/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-config-configmap.yaml diff --git a/ee/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-deployment.yaml b/ee/se/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-deployment.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-deployment.yaml rename to ee/se/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-deployment.yaml diff --git a/ee/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-secret-secret.yaml b/ee/se/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-secret-secret.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-secret-secret.yaml rename to ee/se/modules/502-delivery/templates/argocd/image-updater/argocd-image-updater-secret-secret.yaml diff --git a/ee/modules/502-delivery/templates/argocd/image-updater/rbac-for-us.yaml b/ee/se/modules/502-delivery/templates/argocd/image-updater/rbac-for-us.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/image-updater/rbac-for-us.yaml rename to ee/se/modules/502-delivery/templates/argocd/image-updater/rbac-for-us.yaml diff --git a/ee/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-cm-configmap.yaml b/ee/se/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-cm-configmap.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-cm-configmap.yaml rename to ee/se/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-cm-configmap.yaml diff --git a/ee/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-controller-deployment.yaml b/ee/se/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-controller-deployment.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-controller-deployment.yaml rename to ee/se/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-controller-deployment.yaml diff --git a/ee/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-controller-metrics-service.yaml b/ee/se/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-controller-metrics-service.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-controller-metrics-service.yaml rename to ee/se/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-controller-metrics-service.yaml diff --git a/ee/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-secret-secret.yaml b/ee/se/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-secret-secret.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-secret-secret.yaml rename to ee/se/modules/502-delivery/templates/argocd/notifications-controller/argocd-notifications-secret-secret.yaml diff --git a/ee/modules/502-delivery/templates/argocd/notifications-controller/rbac-for-us.yaml b/ee/se/modules/502-delivery/templates/argocd/notifications-controller/rbac-for-us.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/notifications-controller/rbac-for-us.yaml rename to ee/se/modules/502-delivery/templates/argocd/notifications-controller/rbac-for-us.yaml diff --git a/ee/modules/502-delivery/templates/argocd/redis/argocd-redis-deployment.yaml b/ee/se/modules/502-delivery/templates/argocd/redis/argocd-redis-deployment.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/redis/argocd-redis-deployment.yaml rename to ee/se/modules/502-delivery/templates/argocd/redis/argocd-redis-deployment.yaml diff --git a/ee/modules/502-delivery/templates/argocd/redis/argocd-redis-service.yaml b/ee/se/modules/502-delivery/templates/argocd/redis/argocd-redis-service.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/redis/argocd-redis-service.yaml rename to ee/se/modules/502-delivery/templates/argocd/redis/argocd-redis-service.yaml diff --git a/ee/modules/502-delivery/templates/argocd/redis/rbac-for-us.yaml b/ee/se/modules/502-delivery/templates/argocd/redis/rbac-for-us.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/redis/rbac-for-us.yaml rename to ee/se/modules/502-delivery/templates/argocd/redis/rbac-for-us.yaml diff --git a/ee/modules/502-delivery/templates/argocd/repo-server/argocd-repo-server-deployment.yaml b/ee/se/modules/502-delivery/templates/argocd/repo-server/argocd-repo-server-deployment.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/repo-server/argocd-repo-server-deployment.yaml rename to ee/se/modules/502-delivery/templates/argocd/repo-server/argocd-repo-server-deployment.yaml diff --git a/ee/modules/502-delivery/templates/argocd/repo-server/argocd-repo-server-service.yaml b/ee/se/modules/502-delivery/templates/argocd/repo-server/argocd-repo-server-service.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/repo-server/argocd-repo-server-service.yaml rename to ee/se/modules/502-delivery/templates/argocd/repo-server/argocd-repo-server-service.yaml diff --git a/ee/modules/502-delivery/templates/argocd/repo-server/rbac-for-us.yaml b/ee/se/modules/502-delivery/templates/argocd/repo-server/rbac-for-us.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/repo-server/rbac-for-us.yaml rename to ee/se/modules/502-delivery/templates/argocd/repo-server/rbac-for-us.yaml diff --git a/ee/modules/502-delivery/templates/argocd/repo-server/repositories.yaml b/ee/se/modules/502-delivery/templates/argocd/repo-server/repositories.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/repo-server/repositories.yaml rename to ee/se/modules/502-delivery/templates/argocd/repo-server/repositories.yaml diff --git a/ee/modules/502-delivery/templates/argocd/server/argocd-server-deployment.yaml b/ee/se/modules/502-delivery/templates/argocd/server/argocd-server-deployment.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/server/argocd-server-deployment.yaml rename to ee/se/modules/502-delivery/templates/argocd/server/argocd-server-deployment.yaml diff --git a/ee/modules/502-delivery/templates/argocd/server/argocd-server-metrics-service.yaml b/ee/se/modules/502-delivery/templates/argocd/server/argocd-server-metrics-service.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/server/argocd-server-metrics-service.yaml rename to ee/se/modules/502-delivery/templates/argocd/server/argocd-server-metrics-service.yaml diff --git a/ee/modules/502-delivery/templates/argocd/server/argocd-server-service.yaml b/ee/se/modules/502-delivery/templates/argocd/server/argocd-server-service.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/server/argocd-server-service.yaml rename to ee/se/modules/502-delivery/templates/argocd/server/argocd-server-service.yaml diff --git a/ee/modules/502-delivery/templates/argocd/server/d8-dex-client.yaml b/ee/se/modules/502-delivery/templates/argocd/server/d8-dex-client.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/server/d8-dex-client.yaml rename to ee/se/modules/502-delivery/templates/argocd/server/d8-dex-client.yaml diff --git a/ee/modules/502-delivery/templates/argocd/server/d8-ingress.yaml b/ee/se/modules/502-delivery/templates/argocd/server/d8-ingress.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/server/d8-ingress.yaml rename to ee/se/modules/502-delivery/templates/argocd/server/d8-ingress.yaml diff --git a/ee/modules/502-delivery/templates/argocd/server/rbac-for-us.yaml b/ee/se/modules/502-delivery/templates/argocd/server/rbac-for-us.yaml similarity index 100% rename from ee/modules/502-delivery/templates/argocd/server/rbac-for-us.yaml rename to ee/se/modules/502-delivery/templates/argocd/server/rbac-for-us.yaml diff --git a/ee/modules/502-delivery/templates/custom-certificate.yaml b/ee/se/modules/502-delivery/templates/custom-certificate.yaml similarity index 100% rename from ee/modules/502-delivery/templates/custom-certificate.yaml rename to ee/se/modules/502-delivery/templates/custom-certificate.yaml diff --git a/ee/modules/502-delivery/templates/namespace.yaml b/ee/se/modules/502-delivery/templates/namespace.yaml similarity index 100% rename from ee/modules/502-delivery/templates/namespace.yaml rename to ee/se/modules/502-delivery/templates/namespace.yaml diff --git a/ee/modules/502-delivery/templates/registry-secret.yaml b/ee/se/modules/502-delivery/templates/registry-secret.yaml similarity index 100% rename from ee/modules/502-delivery/templates/registry-secret.yaml rename to ee/se/modules/502-delivery/templates/registry-secret.yaml diff --git a/ee/se/modules/values-default.yaml b/ee/se/modules/values-default.yaml new file mode 100644 index 0000000000..9f4a54898c --- /dev/null +++ b/ee/se/modules/values-default.yaml @@ -0,0 +1 @@ +# SE Bundle "Default" \ No newline at end of file diff --git a/ee/se/modules/values-managed.yaml b/ee/se/modules/values-managed.yaml new file mode 100644 index 0000000000..e7c696b8aa --- /dev/null +++ b/ee/se/modules/values-managed.yaml @@ -0,0 +1 @@ +# SE Bundle "Managed" diff --git a/ee/se/modules/values-minimal.yaml b/ee/se/modules/values-minimal.yaml new file mode 100644 index 0000000000..aec8f2c90d --- /dev/null +++ b/ee/se/modules/values-minimal.yaml @@ -0,0 +1 @@ +# SE Bundle "Minimal" diff --git a/tools/build_includes/candi-SE.yaml b/tools/build_includes/candi-SE.yaml new file mode 100644 index 0000000000..51188a7c5c --- /dev/null +++ b/tools/build_includes/candi-SE.yaml @@ -0,0 +1,13 @@ +# Code generated by tools/build.go; DO NOT EDIT. +- add: /ee/be/candi/bashible/bashbooster/50_apt_rpm.sh + to: /deckhouse/candi/bashible/bashbooster/50_apt_rpm.sh +- add: /ee/be/candi/bashible/bashbooster/55_ee_distro_version.sh + to: /deckhouse/candi/bashible/bashbooster/55_ee_distro_version.sh +- add: /ee/be/candi/bashible/bundles/altlinux + to: /deckhouse/candi/bashible/bundles/altlinux +- add: /ee/be/candi/bashible/bundles/astra + to: /deckhouse/candi/bashible/bundles/astra +- add: /ee/be/candi/bashible/bundles/redos + to: /deckhouse/candi/bashible/bundles/redos +- add: /ee/be/candi/bashible/detect_bundle.sh + to: /deckhouse/candi/bashible/detect_bundle.sh diff --git a/tools/build_includes/modules-EE.yaml b/tools/build_includes/modules-EE.yaml index 4b22bab7ab..4d838ec259 100644 --- a/tools/build_includes/modules-EE.yaml +++ b/tools/build_includes/modules-EE.yaml @@ -29,6 +29,16 @@ stageDependencies: setup: - '**/*.go' +- add: /ee/se/modules/380-metallb + to: /deckhouse/modules/380-metallb + stageDependencies: + setup: + - '**/*.go' +- add: /ee/se/modules/502-delivery + to: /deckhouse/modules/502-delivery + stageDependencies: + setup: + - '**/*.go' - add: /ee/modules/015-admission-policy-engine/templates/trivy-provider to: /deckhouse/modules/015-admission-policy-engine/templates/trivy-provider stageDependencies: @@ -159,11 +169,6 @@ stageDependencies: setup: - '**/*.go' -- add: /ee/modules/380-metallb - to: /deckhouse/modules/380-metallb - stageDependencies: - setup: - - '**/*.go' - add: /ee/modules/450-keepalived to: /deckhouse/modules/450-keepalived stageDependencies: @@ -179,11 +184,6 @@ stageDependencies: setup: - '**/*.go' -- add: /ee/modules/502-delivery - to: /deckhouse/modules/502-delivery - stageDependencies: - setup: - - '**/*.go' - add: /ee/modules/650-runtime-audit-engine to: /deckhouse/modules/650-runtime-audit-engine stageDependencies: diff --git a/tools/build_includes/modules-FE.yaml b/tools/build_includes/modules-FE.yaml index 28a1bfbef1..9a4339e755 100644 --- a/tools/build_includes/modules-FE.yaml +++ b/tools/build_includes/modules-FE.yaml @@ -29,6 +29,16 @@ stageDependencies: setup: - '**/*.go' +- add: /ee/se/modules/380-metallb + to: /deckhouse/modules/380-metallb + stageDependencies: + setup: + - '**/*.go' +- add: /ee/se/modules/502-delivery + to: /deckhouse/modules/502-delivery + stageDependencies: + setup: + - '**/*.go' - add: /ee/modules/015-admission-policy-engine/templates/trivy-provider to: /deckhouse/modules/015-admission-policy-engine/templates/trivy-provider stageDependencies: @@ -159,11 +169,6 @@ stageDependencies: setup: - '**/*.go' -- add: /ee/modules/380-metallb - to: /deckhouse/modules/380-metallb - stageDependencies: - setup: - - '**/*.go' - add: /ee/modules/450-keepalived to: /deckhouse/modules/450-keepalived stageDependencies: @@ -179,11 +184,6 @@ stageDependencies: setup: - '**/*.go' -- add: /ee/modules/502-delivery - to: /deckhouse/modules/502-delivery - stageDependencies: - setup: - - '**/*.go' - add: /ee/modules/650-runtime-audit-engine to: /deckhouse/modules/650-runtime-audit-engine stageDependencies: diff --git a/tools/build_includes/modules-SE.yaml b/tools/build_includes/modules-SE.yaml new file mode 100644 index 0000000000..e460891cdd --- /dev/null +++ b/tools/build_includes/modules-SE.yaml @@ -0,0 +1,41 @@ +# Code generated by tools/build.go; DO NOT EDIT. +- add: /ee/be/modules/040-node-manager/openapi/config-values.yaml + to: /deckhouse/modules/040-node-manager/openapi/config-values.yaml + stageDependencies: + setup: + - '**/*.go' +- add: /ee/be/modules/040-node-manager/openapi/doc-ru-config-values.yaml + to: /deckhouse/modules/040-node-manager/openapi/doc-ru-config-values.yaml + stageDependencies: + setup: + - '**/*.go' +- add: /ee/be/modules/040-node-manager/openapi/openapi-case-tests.yaml + to: /deckhouse/modules/040-node-manager/openapi/openapi-case-tests.yaml + stageDependencies: + setup: + - '**/*.go' +- add: /ee/be/modules/140-user-authz/templates/webhook + to: /deckhouse/modules/140-user-authz/templates/webhook + stageDependencies: + setup: + - '**/*.go' +- add: /ee/be/modules/350-node-local-dns + to: /deckhouse/modules/350-node-local-dns + stageDependencies: + setup: + - '**/*.go' +- add: /ee/be/modules/600-flant-integration + to: /deckhouse/modules/600-flant-integration + stageDependencies: + setup: + - '**/*.go' +- add: /ee/se/modules/380-metallb + to: /deckhouse/modules/380-metallb + stageDependencies: + setup: + - '**/*.go' +- add: /ee/se/modules/502-delivery + to: /deckhouse/modules/502-delivery + stageDependencies: + setup: + - '**/*.go' diff --git a/tools/build_includes/modules-excluded-SE.yaml b/tools/build_includes/modules-excluded-SE.yaml new file mode 100644 index 0000000000..53a3031820 --- /dev/null +++ b/tools/build_includes/modules-excluded-SE.yaml @@ -0,0 +1 @@ +# Code generated by tools/build.go; DO NOT EDIT. diff --git a/tools/build_includes/modules-with-dependencies-EE.yaml b/tools/build_includes/modules-with-dependencies-EE.yaml index e03c69c839..669723f284 100644 --- a/tools/build_includes/modules-with-dependencies-EE.yaml +++ b/tools/build_includes/modules-with-dependencies-EE.yaml @@ -137,6 +137,52 @@ stageDependencies: setup: - '**/*.go' +- add: /ee/se/modules/380-metallb + to: /deckhouse/modules/380-metallb + excludePaths: + - images + - templates + - charts + - crds + - docs + - monitoring + - openapi + - oss.yaml + - cloud-instance-manager + - values_matrix_test.yaml + - values.yaml + - .helmignore + - candi + - Chart.yaml + - .namespace + - '**/*_test.go' + - '**/*.sh' + stageDependencies: + setup: + - '**/*.go' +- add: /ee/se/modules/502-delivery + to: /deckhouse/modules/502-delivery + excludePaths: + - images + - templates + - charts + - crds + - docs + - monitoring + - openapi + - oss.yaml + - cloud-instance-manager + - values_matrix_test.yaml + - values.yaml + - .helmignore + - candi + - Chart.yaml + - .namespace + - '**/*_test.go' + - '**/*.sh' + stageDependencies: + setup: + - '**/*.go' - add: /ee/modules/015-admission-policy-engine/templates/trivy-provider to: /deckhouse/modules/015-admission-policy-engine/templates/trivy-provider excludePaths: @@ -735,29 +781,6 @@ stageDependencies: setup: - '**/*.go' -- add: /ee/modules/380-metallb - to: /deckhouse/modules/380-metallb - excludePaths: - - images - - templates - - charts - - crds - - docs - - monitoring - - openapi - - oss.yaml - - cloud-instance-manager - - values_matrix_test.yaml - - values.yaml - - .helmignore - - candi - - Chart.yaml - - .namespace - - '**/*_test.go' - - '**/*.sh' - stageDependencies: - setup: - - '**/*.go' - add: /ee/modules/450-keepalived to: /deckhouse/modules/450-keepalived excludePaths: @@ -827,29 +850,6 @@ stageDependencies: setup: - '**/*.go' -- add: /ee/modules/502-delivery - to: /deckhouse/modules/502-delivery - excludePaths: - - images - - templates - - charts - - crds - - docs - - monitoring - - openapi - - oss.yaml - - cloud-instance-manager - - values_matrix_test.yaml - - values.yaml - - .helmignore - - candi - - Chart.yaml - - .namespace - - '**/*_test.go' - - '**/*.sh' - stageDependencies: - setup: - - '**/*.go' - add: /ee/modules/650-runtime-audit-engine to: /deckhouse/modules/650-runtime-audit-engine excludePaths: diff --git a/tools/build_includes/modules-with-dependencies-FE.yaml b/tools/build_includes/modules-with-dependencies-FE.yaml index d31cc18e1f..e2d0594881 100644 --- a/tools/build_includes/modules-with-dependencies-FE.yaml +++ b/tools/build_includes/modules-with-dependencies-FE.yaml @@ -137,6 +137,52 @@ stageDependencies: setup: - '**/*.go' +- add: /ee/se/modules/380-metallb + to: /deckhouse/modules/380-metallb + excludePaths: + - images + - templates + - charts + - crds + - docs + - monitoring + - openapi + - oss.yaml + - cloud-instance-manager + - values_matrix_test.yaml + - values.yaml + - .helmignore + - candi + - Chart.yaml + - .namespace + - '**/*_test.go' + - '**/*.sh' + stageDependencies: + setup: + - '**/*.go' +- add: /ee/se/modules/502-delivery + to: /deckhouse/modules/502-delivery + excludePaths: + - images + - templates + - charts + - crds + - docs + - monitoring + - openapi + - oss.yaml + - cloud-instance-manager + - values_matrix_test.yaml + - values.yaml + - .helmignore + - candi + - Chart.yaml + - .namespace + - '**/*_test.go' + - '**/*.sh' + stageDependencies: + setup: + - '**/*.go' - add: /ee/modules/015-admission-policy-engine/templates/trivy-provider to: /deckhouse/modules/015-admission-policy-engine/templates/trivy-provider excludePaths: @@ -735,29 +781,6 @@ stageDependencies: setup: - '**/*.go' -- add: /ee/modules/380-metallb - to: /deckhouse/modules/380-metallb - excludePaths: - - images - - templates - - charts - - crds - - docs - - monitoring - - openapi - - oss.yaml - - cloud-instance-manager - - values_matrix_test.yaml - - values.yaml - - .helmignore - - candi - - Chart.yaml - - .namespace - - '**/*_test.go' - - '**/*.sh' - stageDependencies: - setup: - - '**/*.go' - add: /ee/modules/450-keepalived to: /deckhouse/modules/450-keepalived excludePaths: @@ -827,29 +850,6 @@ stageDependencies: setup: - '**/*.go' -- add: /ee/modules/502-delivery - to: /deckhouse/modules/502-delivery - excludePaths: - - images - - templates - - charts - - crds - - docs - - monitoring - - openapi - - oss.yaml - - cloud-instance-manager - - values_matrix_test.yaml - - values.yaml - - .helmignore - - candi - - Chart.yaml - - .namespace - - '**/*_test.go' - - '**/*.sh' - stageDependencies: - setup: - - '**/*.go' - add: /ee/modules/650-runtime-audit-engine to: /deckhouse/modules/650-runtime-audit-engine excludePaths: diff --git a/tools/build_includes/modules-with-dependencies-SE.yaml b/tools/build_includes/modules-with-dependencies-SE.yaml new file mode 100644 index 0000000000..69a1c22101 --- /dev/null +++ b/tools/build_includes/modules-with-dependencies-SE.yaml @@ -0,0 +1,185 @@ +# Code generated by tools/build.go; DO NOT EDIT. +- add: /ee/be/modules/040-node-manager/openapi/config-values.yaml + to: /deckhouse/modules/040-node-manager/openapi/config-values.yaml + excludePaths: + - images + - templates + - charts + - crds + - docs + - monitoring + - openapi + - oss.yaml + - cloud-instance-manager + - values_matrix_test.yaml + - values.yaml + - .helmignore + - candi + - Chart.yaml + - .namespace + - '**/*_test.go' + - '**/*.sh' + stageDependencies: + setup: + - '**/*.go' +- add: /ee/be/modules/040-node-manager/openapi/doc-ru-config-values.yaml + to: /deckhouse/modules/040-node-manager/openapi/doc-ru-config-values.yaml + excludePaths: + - images + - templates + - charts + - crds + - docs + - monitoring + - openapi + - oss.yaml + - cloud-instance-manager + - values_matrix_test.yaml + - values.yaml + - .helmignore + - candi + - Chart.yaml + - .namespace + - '**/*_test.go' + - '**/*.sh' + stageDependencies: + setup: + - '**/*.go' +- add: /ee/be/modules/040-node-manager/openapi/openapi-case-tests.yaml + to: /deckhouse/modules/040-node-manager/openapi/openapi-case-tests.yaml + excludePaths: + - images + - templates + - charts + - crds + - docs + - monitoring + - openapi + - oss.yaml + - cloud-instance-manager + - values_matrix_test.yaml + - values.yaml + - .helmignore + - candi + - Chart.yaml + - .namespace + - '**/*_test.go' + - '**/*.sh' + stageDependencies: + setup: + - '**/*.go' +- add: /ee/be/modules/140-user-authz/templates/webhook + to: /deckhouse/modules/140-user-authz/templates/webhook + excludePaths: + - images + - templates + - charts + - crds + - docs + - monitoring + - openapi + - oss.yaml + - cloud-instance-manager + - values_matrix_test.yaml + - values.yaml + - .helmignore + - candi + - Chart.yaml + - .namespace + - '**/*_test.go' + - '**/*.sh' + stageDependencies: + setup: + - '**/*.go' +- add: /ee/be/modules/350-node-local-dns + to: /deckhouse/modules/350-node-local-dns + excludePaths: + - images + - templates + - charts + - crds + - docs + - monitoring + - openapi + - oss.yaml + - cloud-instance-manager + - values_matrix_test.yaml + - values.yaml + - .helmignore + - candi + - Chart.yaml + - .namespace + - '**/*_test.go' + - '**/*.sh' + stageDependencies: + setup: + - '**/*.go' +- add: /ee/be/modules/600-flant-integration + to: /deckhouse/modules/600-flant-integration + excludePaths: + - images + - templates + - charts + - crds + - docs + - monitoring + - openapi + - oss.yaml + - cloud-instance-manager + - values_matrix_test.yaml + - values.yaml + - .helmignore + - candi + - Chart.yaml + - .namespace + - '**/*_test.go' + - '**/*.sh' + stageDependencies: + setup: + - '**/*.go' +- add: /ee/se/modules/380-metallb + to: /deckhouse/modules/380-metallb + excludePaths: + - images + - templates + - charts + - crds + - docs + - monitoring + - openapi + - oss.yaml + - cloud-instance-manager + - values_matrix_test.yaml + - values.yaml + - .helmignore + - candi + - Chart.yaml + - .namespace + - '**/*_test.go' + - '**/*.sh' + stageDependencies: + setup: + - '**/*.go' +- add: /ee/se/modules/502-delivery + to: /deckhouse/modules/502-delivery + excludePaths: + - images + - templates + - charts + - crds + - docs + - monitoring + - openapi + - oss.yaml + - cloud-instance-manager + - values_matrix_test.yaml + - values.yaml + - .helmignore + - candi + - Chart.yaml + - .namespace + - '**/*_test.go' + - '**/*.sh' + stageDependencies: + setup: + - '**/*.go' diff --git a/tools/build_includes/modules-with-exclude-EE.yaml b/tools/build_includes/modules-with-exclude-EE.yaml index a167bd0db9..5193567ff3 100644 --- a/tools/build_includes/modules-with-exclude-EE.yaml +++ b/tools/build_includes/modules-with-exclude-EE.yaml @@ -77,6 +77,32 @@ - .namespace - values_matrix_test.yaml - .build.yaml +- add: /ee/se/modules/380-metallb + to: /deckhouse/modules/380-metallb + excludePaths: + - docs + - README.md + - images + - hooks/**/*.go + - hooks/*.go + - hack + - template_tests + - .namespace + - values_matrix_test.yaml + - .build.yaml +- add: /ee/se/modules/502-delivery + to: /deckhouse/modules/502-delivery + excludePaths: + - docs + - README.md + - images + - hooks/**/*.go + - hooks/*.go + - hack + - template_tests + - .namespace + - values_matrix_test.yaml + - .build.yaml - add: /ee/modules/015-admission-policy-engine/templates/trivy-provider to: /deckhouse/modules/015-admission-policy-engine/templates/trivy-provider excludePaths: @@ -324,19 +350,6 @@ - .namespace - values_matrix_test.yaml - .build.yaml -- add: /ee/modules/380-metallb - to: /deckhouse/modules/380-metallb - excludePaths: - - docs - - README.md - - images - - hooks/**/*.go - - hooks/*.go - - hack - - template_tests - - .namespace - - values_matrix_test.yaml - - .build.yaml - add: /ee/modules/450-keepalived to: /deckhouse/modules/450-keepalived excludePaths: @@ -376,19 +389,6 @@ - .namespace - values_matrix_test.yaml - .build.yaml -- add: /ee/modules/502-delivery - to: /deckhouse/modules/502-delivery - excludePaths: - - docs - - README.md - - images - - hooks/**/*.go - - hooks/*.go - - hack - - template_tests - - .namespace - - values_matrix_test.yaml - - .build.yaml - add: /ee/modules/650-runtime-audit-engine to: /deckhouse/modules/650-runtime-audit-engine excludePaths: diff --git a/tools/build_includes/modules-with-exclude-FE.yaml b/tools/build_includes/modules-with-exclude-FE.yaml index f3bf487b42..37bb8f9463 100644 --- a/tools/build_includes/modules-with-exclude-FE.yaml +++ b/tools/build_includes/modules-with-exclude-FE.yaml @@ -77,6 +77,32 @@ - .namespace - values_matrix_test.yaml - .build.yaml +- add: /ee/se/modules/380-metallb + to: /deckhouse/modules/380-metallb + excludePaths: + - docs + - README.md + - images + - hooks/**/*.go + - hooks/*.go + - hack + - template_tests + - .namespace + - values_matrix_test.yaml + - .build.yaml +- add: /ee/se/modules/502-delivery + to: /deckhouse/modules/502-delivery + excludePaths: + - docs + - README.md + - images + - hooks/**/*.go + - hooks/*.go + - hack + - template_tests + - .namespace + - values_matrix_test.yaml + - .build.yaml - add: /ee/modules/015-admission-policy-engine/templates/trivy-provider to: /deckhouse/modules/015-admission-policy-engine/templates/trivy-provider excludePaths: @@ -324,19 +350,6 @@ - .namespace - values_matrix_test.yaml - .build.yaml -- add: /ee/modules/380-metallb - to: /deckhouse/modules/380-metallb - excludePaths: - - docs - - README.md - - images - - hooks/**/*.go - - hooks/*.go - - hack - - template_tests - - .namespace - - values_matrix_test.yaml - - .build.yaml - add: /ee/modules/450-keepalived to: /deckhouse/modules/450-keepalived excludePaths: @@ -376,19 +389,6 @@ - .namespace - values_matrix_test.yaml - .build.yaml -- add: /ee/modules/502-delivery - to: /deckhouse/modules/502-delivery - excludePaths: - - docs - - README.md - - images - - hooks/**/*.go - - hooks/*.go - - hack - - template_tests - - .namespace - - values_matrix_test.yaml - - .build.yaml - add: /ee/modules/650-runtime-audit-engine to: /deckhouse/modules/650-runtime-audit-engine excludePaths: diff --git a/tools/build_includes/modules-with-exclude-SE.yaml b/tools/build_includes/modules-with-exclude-SE.yaml new file mode 100644 index 0000000000..f7e9544968 --- /dev/null +++ b/tools/build_includes/modules-with-exclude-SE.yaml @@ -0,0 +1,105 @@ +# Code generated by tools/build.go; DO NOT EDIT. +- add: /ee/be/modules/040-node-manager/openapi/config-values.yaml + to: /deckhouse/modules/040-node-manager/openapi/config-values.yaml + excludePaths: + - docs + - README.md + - images + - hooks/**/*.go + - hooks/*.go + - hack + - template_tests + - .namespace + - values_matrix_test.yaml + - .build.yaml +- add: /ee/be/modules/040-node-manager/openapi/doc-ru-config-values.yaml + to: /deckhouse/modules/040-node-manager/openapi/doc-ru-config-values.yaml + excludePaths: + - docs + - README.md + - images + - hooks/**/*.go + - hooks/*.go + - hack + - template_tests + - .namespace + - values_matrix_test.yaml + - .build.yaml +- add: /ee/be/modules/040-node-manager/openapi/openapi-case-tests.yaml + to: /deckhouse/modules/040-node-manager/openapi/openapi-case-tests.yaml + excludePaths: + - docs + - README.md + - images + - hooks/**/*.go + - hooks/*.go + - hack + - template_tests + - .namespace + - values_matrix_test.yaml + - .build.yaml +- add: /ee/be/modules/140-user-authz/templates/webhook + to: /deckhouse/modules/140-user-authz/templates/webhook + excludePaths: + - docs + - README.md + - images + - hooks/**/*.go + - hooks/*.go + - hack + - template_tests + - .namespace + - values_matrix_test.yaml + - .build.yaml +- add: /ee/be/modules/350-node-local-dns + to: /deckhouse/modules/350-node-local-dns + excludePaths: + - docs + - README.md + - images + - hooks/**/*.go + - hooks/*.go + - hack + - template_tests + - .namespace + - values_matrix_test.yaml + - .build.yaml +- add: /ee/be/modules/600-flant-integration + to: /deckhouse/modules/600-flant-integration + excludePaths: + - docs + - README.md + - images + - hooks/**/*.go + - hooks/*.go + - hack + - template_tests + - .namespace + - values_matrix_test.yaml + - .build.yaml +- add: /ee/se/modules/380-metallb + to: /deckhouse/modules/380-metallb + excludePaths: + - docs + - README.md + - images + - hooks/**/*.go + - hooks/*.go + - hack + - template_tests + - .namespace + - values_matrix_test.yaml + - .build.yaml +- add: /ee/se/modules/502-delivery + to: /deckhouse/modules/502-delivery + excludePaths: + - docs + - README.md + - images + - hooks/**/*.go + - hooks/*.go + - hack + - template_tests + - .namespace + - values_matrix_test.yaml + - .build.yaml