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