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..ca08257f18 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..0d5822ec2b 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),)
@@ -64,10 +64,14 @@ else
FE_MODULES_RECURSE = ${FE_MODULES}/...
endif
BE_MODULES = $(shell find ./ee/be/modules -maxdepth 1 -regex ".*[0-9]-${FOCUS}")
- ifneq ($(FE_MODULES),)
- BE_MODULES_RECURSE = ${BE_MODULES}/...
- endif
- TESTS_PATH = ${CE_MODULES_RECURSE} ${EE_MODULES_RECURSE} ${FE_MODULES_RECURSE} ${BE_MODULES_RECURSE}
+ ifneq ($(FE_MODULES),)
+ BE_MODULES_RECURSE = ${BE_MODULES}/...
+ endif
+ 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/docs/documentation/pages/REVISION_COMPARISON.md b/docs/documentation/pages/REVISION_COMPARISON.md
index bdcea1e71e..8471b4eeac 100644
--- a/docs/documentation/pages/REVISION_COMPARISON.md
+++ b/docs/documentation/pages/REVISION_COMPARISON.md
@@ -4,8 +4,7 @@ permalink: en/revision-comparison.html
toc: false
---
-The Deckhouse Kubernetes Platform has the following editions: Basic Edition (BE), [Community Edition]({% if site.mode == 'module' %}{{ site.urls[page.lang] }}{% endif %}/community/community-edition/) (CE) and [Enterprise Edition]({% if site.mode == 'module' %}{{ site.urls[page.lang] }}{% endif %}/products/enterprise-edition/) (EE). They are with different functions and support options. You can find a brief comparison of editions listing its main features and functions [here](
-{% if site.mode == 'module' %}{{ site.urls[page.lang] }}{% endif %}/products/enterprise_edition.html#ce-vs-ee).
+The Deckhouse Kubernetes Platform has the following editions: _Community Edition (CE)_, _Basic Edition (BE)_, _Standard Edition (SE)_, _Enterprise Edition (EE)_ and _Certified Security Edition (CSE)_. They are with different functions and support options. You can find a brief comparison of editions listing its main features and functions [here]({% if site.mode == 'module' %}{{ site.urls[page.lang] }}{% endif %}/products/kubernetes-platform/).
The table below provides listing of the Deckhouse Kubernetes Platform modules available in each edition:
diff --git a/docs/documentation/pages/REVISION_COMPARISON_RU.md b/docs/documentation/pages/REVISION_COMPARISON_RU.md
index ce01447d81..2673f8bbb3 100644
--- a/docs/documentation/pages/REVISION_COMPARISON_RU.md
+++ b/docs/documentation/pages/REVISION_COMPARISON_RU.md
@@ -5,7 +5,7 @@ lang: ru
toc: false
---
-Deckhouse Kubernetes Platform поставляется в редакциях Basic Edition (BE), [Community Edition]({% if site.mode == 'module' %}{{ site.urls[page.lang] }}{% endif %}/community/community-edition/) (CE) и [Enterprise Edition]({% if site.mode == 'module' %}{{ site.urls[page.lang] }}{% endif %}/products/enterprise-edition/) (EE). Они отличаются набором функциональных возможностей и уровнем доступной поддержки. Краткое сравнение с перечислением ключевых возможностей и особенностей можно найти на [этой странице]({% if site.mode == 'module' %}{{ site.urls[page.lang] }}{% endif %}/products/enterprise_edition.html#ce-vs-ee).
+Deckhouse Kubernetes Platform поставляется в редакциях _Community Edition (CE)_, _Basic Edition (BE)_, _Standard Edition (SE)_, _Enterprise Edition (EE)_ и _Certified Security Edition (CSE)_. Они отличаются набором функциональных возможностей и уровнем доступной поддержки. Краткое сравнение с перечислением ключевых возможностей и особенностей можно найти на [этой странице]({% if site.mode == 'module' %}{{ site.urls[page.lang] }}{% endif %}/products/kubernetes-platform/).
В таблице ниже перечислены модули Deckhouse Kubernetes Platform, доступные для использования в разных редакциях платформы:
diff --git a/docs/documentation/werf-git-section.inc.yaml b/docs/documentation/werf-git-section.inc.yaml
index b119cd9103..b5402d930e 100644
--- a/docs/documentation/werf-git-section.inc.yaml
+++ b/docs/documentation/werf-git-section.inc.yaml
@@ -64,6 +64,23 @@
includePaths: ['*/docs/','*/openapi/','*/crds/', '*/oss.yaml']
excludePaths: ['*/openapi/values.yaml', '*/openapi/*-tests.yaml', '*/docs/internal/']
{{- end }}
+{{- if or (eq .Env "SE") (eq .Env "EE") (eq .Env "FE") (eq .Env "development") }}
+- add: /ee/se/modules
+ to: /srv/jekyll-data/documentation/_data/bundles/raw/se
+ owner: jekyll
+ group: jekyll
+ stageDependencies:
+ setup: ['**/*']
+ includePaths: ['values-*.yaml']
+- add: /ee/se/modules
+ to: /src/se/modules
+ owner: jekyll
+ group: jekyll
+ stageDependencies:
+ setup: ['**/*']
+ includePaths: ['*/docs/','*/openapi/','*/crds/', '*/oss.yaml']
+ excludePaths: ['*/openapi/values.yaml', '*/openapi/*-tests.yaml', '*/docs/internal/']
+{{- end }}
{{- if or (eq .Env "EE") (eq .Env "FE") (eq .Env "development") }}
- add: /ee/modules
to: /srv/jekyll-data/documentation/_data/bundles/raw/ee
diff --git a/editions.yaml b/editions.yaml
index e777a764e0..07489670d8 100644
--- a/editions.yaml
+++ b/editions.yaml
@@ -43,6 +43,12 @@ editions:
- ceph-csi
- openvpn
+- name: SE
+ modulesDir: "ee/se/modules"
+
+ excludeModules:
+ - dashboard
+
- 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..3930695af9
--- /dev/null
+++ b/ee/se/modules/values-default.yaml
@@ -0,0 +1 @@
+# SE Bundle "Default"
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/modules/002-deckhouse/hooks/adopt_module_source.go b/modules/002-deckhouse/hooks/adopt_module_source.go
index 75419d0240..4e7c810a21 100644
--- a/modules/002-deckhouse/hooks/adopt_module_source.go
+++ b/modules/002-deckhouse/hooks/adopt_module_source.go
@@ -11,7 +11,7 @@ Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
-limitations under the License.
+limitations under the License..
*/
package hooks
diff --git a/modules/810-documentation/images/web/werf.inc.yaml b/modules/810-documentation/images/web/werf.inc.yaml
index 19f3bc9d46..e2f3e642f2 100644
--- a/modules/810-documentation/images/web/werf.inc.yaml
+++ b/modules/810-documentation/images/web/werf.inc.yaml
@@ -231,5 +231,13 @@ git:
setup: ['**/*']
includePaths:
- modules/**/docs/README.md
+- add: /{{ .ModulePath }}ee/se
+ to: /comparison/se
+ owner: jekyll
+ group: jekyll
+ stageDependencies:
+ setup: ['**/*']
+ includePaths:
+ - modules/**/docs/README.md
{{ tpl (.Files.Get (printf "%sdocs/documentation/werf-git-section.inc.yaml" .ModulePath)) . }}
{{ tpl (.Files.Get (printf "%sdocs/site/werf-docs-builder.inc.yaml" .ModulePath)) (dict "ctx" . "mode" "module") }}
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..298a61675c
--- /dev/null
+++ b/tools/build_includes/modules-excluded-SE.yaml
@@ -0,0 +1,2 @@
+# Code generated by tools/build.go; DO NOT EDIT.
+- modules/500-dashboard/**
\ No newline at end of file
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