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