Merge branch 'feature/QA-136_staggering_builds_for_1.16.0' into 'release/1.16.0'

QA-136 staggering builds for 1.16.0

See merge request kasm-technologies/internal/workspaces-images!311
This commit is contained in:
Richard Koliser
2025-08-04 18:20:07 +00:00
4 changed files with 341 additions and 127 deletions

View File

@ -21,28 +21,37 @@ before_script:
####################### #######################
template: template:
stage: template stage: template
rules:
- when: always
script: script:
- apk add py3-jinja2 py3-yaml - apk add py3-jinja2 py3-yaml
- cd ci-scripts - cd ci-scripts
- python3 template-gitlab.py - python3 template-gitlab.py
tags: tags:
- oci-fixed-amd - oci-amd-scheduled
artifacts: artifacts:
paths: paths:
- gitlab-ci.yml - gitlab-ci.yml
pipeline: pipeline:
stage: run stage: run
except: rules:
variables: - if: >
- $README_USERNAME_RUN $README_USERNAME ||
- $README_PASSWORD_RUN $README_PASSWORD ||
- $QUAY_API_KEY_RUN $QUAY_API_KEY ||
- $DOCKERHUB_REVERT_RUN $DOCKERHUB_REVERT ||
- $REVERT_IS_ROLLING_RUN $REVERT_IS_ROLLING
when: never
- when: on_success
variables:
PARENT_PIPELINE_SOURCE: "$CI_PIPELINE_SOURCE"
RUN_SET: "$RUN_SET"
trigger: trigger:
include: include:
- artifact: gitlab-ci.yml - artifact: gitlab-ci.yml
job: template job: template
pipeline_readme: pipeline_readme:
stage: run stage: run
only: only:
@ -56,6 +65,7 @@ pipeline_readme:
include: include:
- artifact: gitlab-ci.yml - artifact: gitlab-ci.yml
job: template job: template
pipeline_readme_quay: pipeline_readme_quay:
stage: run stage: run
only: only:
@ -67,6 +77,7 @@ pipeline_readme_quay:
include: include:
- artifact: gitlab-ci.yml - artifact: gitlab-ci.yml
job: template job: template
pipeline_revert: pipeline_revert:
stage: run stage: run
only: only:

View File

@ -23,7 +23,6 @@ before_script:
- if [ "$CI_COMMIT_REF_PROTECTED" == "true" ]; then docker login --username $QUAY_USERNAME --password $QUAY_PASSWORD quay.io; fi - if [ "$CI_COMMIT_REF_PROTECTED" == "true" ]; then docker login --username $QUAY_USERNAME --password $QUAY_PASSWORD quay.io; fi
- if [ "$CI_COMMIT_REF_PROTECTED" == "true" ]; then docker login --username $GHCR_USERNAME --password $GHCR_PASSWORD ghcr.io; fi - if [ "$CI_COMMIT_REF_PROTECTED" == "true" ]; then docker login --username $GHCR_USERNAME --password $GHCR_PASSWORD ghcr.io; fi
- export SANITIZED_BRANCH="$(echo $CI_COMMIT_REF_NAME | sed -r 's#^release/##' | sed 's/\//_/g')" - export SANITIZED_BRANCH="$(echo $CI_COMMIT_REF_NAME | sed -r 's#^release/##' | sed 's/\//_/g')"
- export BASE_TAG="{{ BASE_TAG }}"
############################################### ###############################################
# Build Containers and push to cache endpoint # # Build Containers and push to cache endpoint #
@ -31,49 +30,55 @@ before_script:
{% for IMAGE in multiImages %} {% for IMAGE in multiImages %}
build_{{ IMAGE.name }}: build_{{ IMAGE.name }}:
stage: build stage: build
script: rules:
- apk add bash - if: >
- bash ci-scripts/build.sh "{{ IMAGE.name }}" "{{ IMAGE.base }}" "{{ IMAGE.dockerfile }}" $README_USERNAME ||
{% if FILE_LIMITS %}only: $README_PASSWORD ||
changes: $QUAY_API_KEY ||
$DOCKERHUB_REVERT ||
$REVERT_IS_ROLLING
when: never
{% if FILE_LIMITS %}- changes:
{% for FILE in files %}- {{ FILE }} {% for FILE in files %}- {{ FILE }}
{% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }} {% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }}
{% endfor %}{% endif %} {% endfor %}{% endif %}
except: - if: $PARENT_PIPELINE_SOURCE == "schedule" && $RUN_SET != "{{ IMAGE.runset }}"
variables: when: never
- $README_USERNAME - when: on_success
- $README_PASSWORD script:
- $QUAY_API_KEY - apk add bash
- $DOCKERHUB_REVERT - bash ci-scripts/build.sh "{{ IMAGE.name }}" "{{ IMAGE.base }}" "{{ IMAGE.dockerfile }}"
- $REVERT_IS_ROLLING
tags: tags:
- ${TAG} - ${TAG}
retry: 1 retry: 1
parallel: parallel:
matrix: matrix:
- TAG: [ oci-fixed-amd, oci-fixed-arm ] - TAG: [ oci-amd-scheduled, oci-arm-scheduled ]
{% endfor %} {% endfor %}
{% for IMAGE in singleImages %} {% for IMAGE in singleImages %}
build_{{ IMAGE.name }}: build_{{ IMAGE.name }}:
stage: build stage: build
script: rules:
- apk add bash - if: >
- bash ci-scripts/build.sh "{{ IMAGE.name }}" "{{ IMAGE.base }}" "{{ IMAGE.dockerfile }}" $README_USERNAME ||
{% if FILE_LIMITS %}only: $README_PASSWORD ||
changes: $QUAY_API_KEY ||
$DOCKERHUB_REVERT ||
$REVERT_IS_ROLLING
when: never
{% if FILE_LIMITS %}- changes:
{% for FILE in files %}- {{ FILE }} {% for FILE in files %}- {{ FILE }}
{% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }} {% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }}
{% endfor %}{% endif %} {% endfor %}{% endif %}
except: - if: $PARENT_PIPELINE_SOURCE == "schedule" && $RUN_SET != "{{ IMAGE.runset }}"
variables: when: never
- $README_USERNAME - when: on_success
- $README_PASSWORD script:
- $QUAY_API_KEY - apk add bash
- $DOCKERHUB_REVERT - bash ci-scripts/build.sh "{{ IMAGE.name }}" "{{ IMAGE.base }}" "{{ IMAGE.dockerfile }}"
- $REVERT_IS_ROLLING
tags: tags:
- oci-fixed-amd - oci-amd-scheduled
retry: 1 retry: 1
{% endfor %} {% endfor %}
@ -83,27 +88,28 @@ build_{{ IMAGE.name }}:
{% for IMAGE in multiImages %} {% for IMAGE in multiImages %}
test_{{ IMAGE.name }}: test_{{ IMAGE.name }}:
stage: test stage: test
when: always rules:
script: - if: >
- apk add bash $README_USERNAME ||
- bash ci-scripts/test.sh "{{ IMAGE.name }}" "{{ IMAGE.base }}" "{{ IMAGE.dockerfile }}" "${ARCH}" "${EC2_LAUNCHER_ID}" "${EC2_LAUNCHER_SECRET}" $README_PASSWORD ||
{% if FILE_LIMITS %}only: $QUAY_API_KEY ||
changes: $DOCKERHUB_REVERT ||
$REVERT_IS_ROLLING
when: never
- if: $PARENT_PIPELINE_SOURCE == "schedule" && $RUN_SET != "{{ IMAGE.runset }}"
when: never
{% if FILE_LIMITS %}- changes:
{% for FILE in files %}- {{ FILE }} {% for FILE in files %}- {{ FILE }}
{% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }} {% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }}
{% endfor %}{% endif %} {% endfor %}{% endif %}
except: - when: on_success
variables: script:
- $README_USERNAME - apk add bash
- $README_PASSWORD - bash ci-scripts/test.sh "{{ IMAGE.name }}" "{{ IMAGE.base }}" "{{ IMAGE.dockerfile }}" "${ARCH}" "${EC2_LAUNCHER_ID}" "${EC2_LAUNCHER_SECRET}"
- $QUAY_API_KEY
- $DOCKERHUB_REVERT
- $REVERT_IS_ROLLING
needs: needs:
- build_{{ IMAGE.name }} - build_{{ IMAGE.name }}
when: on_success
tags: tags:
- oci-fixed-amd - oci-amd-scheduled
retry: 1 retry: 1
parallel: parallel:
matrix: matrix:
@ -113,27 +119,28 @@ test_{{ IMAGE.name }}:
{% for IMAGE in singleImages %} {% for IMAGE in singleImages %}
test_{{ IMAGE.name }}: test_{{ IMAGE.name }}:
stage: test stage: test
when: always rules:
script: - if: >
- apk add bash $README_USERNAME ||
- bash ci-scripts/test.sh "{{ IMAGE.name }}" "{{ IMAGE.base }}" "{{ IMAGE.dockerfile }}" "x86_64" "${EC2_LAUNCHER_ID}" "${EC2_LAUNCHER_SECRET}" $README_PASSWORD ||
{% if FILE_LIMITS %}only: $QUAY_API_KEY ||
changes: $DOCKERHUB_REVERT ||
$REVERT_IS_ROLLING
when: never
- if: $PARENT_PIPELINE_SOURCE == "schedule" && $RUN_SET != "{{ IMAGE.runset }}"
when: never
{% if FILE_LIMITS %}- changes:
{% for FILE in files %}- {{ FILE }} {% for FILE in files %}- {{ FILE }}
{% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }} {% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }}
{% endfor %}{% endif %} {% endfor %}{% endif %}
except: - when: on_success
variables: script:
- $README_USERNAME - apk add bash
- $README_PASSWORD - bash ci-scripts/test.sh "{{ IMAGE.name }}" "{{ IMAGE.base }}" "{{ IMAGE.dockerfile }}" "x86_64" "${EC2_LAUNCHER_ID}" "${EC2_LAUNCHER_SECRET}"
- $QUAY_API_KEY
- $DOCKERHUB_REVERT
- $REVERT_IS_ROLLING
needs: needs:
- build_{{ IMAGE.name }} - build_{{ IMAGE.name }}
when: on_success
tags: tags:
- oci-fixed-amd - oci-amd-scheduled
retry: 1 retry: 1
{% endfor %} {% endfor %}
@ -143,63 +150,117 @@ test_{{ IMAGE.name }}:
{% for IMAGE in multiImages %} {% for IMAGE in multiImages %}
manifest_{{ IMAGE.name }}: manifest_{{ IMAGE.name }}:
stage: manifest stage: manifest
when: always rules:
- if: >
$README_USERNAME ||
$README_PASSWORD ||
$QUAY_API_KEY ||
$DOCKERHUB_REVERT ||
$REVERT_IS_ROLLING
when: never
- if: $PARENT_PIPELINE_SOURCE == "schedule" && $RUN_SET != "{{ IMAGE.runset }}"
when: never
{% if FILE_LIMITS %}- changes:
{% for FILE in files %}- {{ FILE }}
{% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }}
{% endfor %}{% endif %}
- when: on_success
variables: variables:
SCHEDULED: "{{ SCHEDULED }}" SCHEDULED: "{{ SCHEDULED }}"
SCHEDULE_NAME: "{{ SCHEDULE_NAME }}" SCHEDULE_NAME: "{{ SCHEDULE_NAME }}"
script: script:
- apk add bash tar - apk add bash tar
- bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "multi"{% if IMAGE.singleapp %} - bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "multi"
- bash ci-scripts/app-layer.sh "{{ IMAGE.name }}" "multi" "{{ IMAGE.base }}"{% endif %} # Disabling app layer build due to feature not being used
{% if FILE_LIMITS %}only: #{% if IMAGE.singleapp %}
changes: #- bash ci-scripts/app-layer.sh "{{ IMAGE.name }}" "multi" "{{ IMAGE.base }}"{% endif %}
{% for FILE in files %}- {{ FILE }}
{% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }}
{% endfor %}{% endif %}
except:
variables:
- $README_USERNAME
- $README_PASSWORD
- $QUAY_API_KEY
- $DOCKERHUB_REVERT
- $REVERT_IS_ROLLING
needs: needs:
- test_{{ IMAGE.name }} - test_{{ IMAGE.name }}
when: on_success
retry: 1 retry: 1
tags: tags:
- oci-fixed-amd - oci-amd-scheduled
{% endfor %} {% endfor %}
{% for IMAGE in singleImages %} {% for IMAGE in singleImages %}
manifest_{{ IMAGE.name }}: manifest_{{ IMAGE.name }}:
stage: manifest stage: manifest
when: always rules:
- if: >
$README_USERNAME ||
$README_PASSWORD ||
$QUAY_API_KEY ||
$DOCKERHUB_REVERT ||
$REVERT_IS_ROLLING
when: never
- if: $PARENT_PIPELINE_SOURCE == "schedule" && $RUN_SET != "{{ IMAGE.runset }}"
when: never
{% if FILE_LIMITS %}- changes:
{% for FILE in files %}- {{ FILE }}
{% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }}
{% endfor %}{% endif %}
- when: on_success
variables: variables:
SCHEDULED: "{{ SCHEDULED }}" SCHEDULED: "{{ SCHEDULED }}"
SCHEDULE_NAME: "{{ SCHEDULE_NAME }}" SCHEDULE_NAME: "{{ SCHEDULE_NAME }}"
script: script:
- apk add bash tar - apk add bash tar
- bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "single"{% if IMAGE.singleapp %} - bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "single"
- bash ci-scripts/app-layer.sh "{{ IMAGE.name }}" "single" "{{ IMAGE.base }}"{% endif %} # Disabling app layer build due to feature not being used
{% if FILE_LIMITS %}only: #{% if IMAGE.singleapp %}
changes: #- bash ci-scripts/app-layer.sh "{{ IMAGE.name }}" "single" "{{ IMAGE.base }}"{% endif %}
{% for FILE in files %}- {{ FILE }}
{% endfor %}{% for FILE in IMAGE.changeFiles %}- {{ FILE }}
{% endfor %}{% endif %}
except:
variables:
- $README_USERNAME
- $README_PASSWORD
- $QUAY_API_KEY
- $DOCKERHUB_REVERT
- $REVERT_IS_ROLLING
needs: needs:
- test_{{ IMAGE.name }} - test_{{ IMAGE.name }}
when: on_success
retry: 1 retry: 1
tags: tags:
- oci-fixed-amd - oci-amd-scheduled
{% endfor %}
#############################
# Manifest for Weekly Build #
#############################
{% for IMAGE in multiImages %}
weekly_manifest_{{ IMAGE.name }}:
stage: manifest
rules:
- if: >
$README_USERNAME ||
$README_PASSWORD ||
$QUAY_API_KEY ||
$DOCKERHUB_REVERT ||
$REVERT_IS_ROLLING
when: never
- if: $PARENT_PIPELINE_SOURCE == "schedule" && $RUN_SET == "schedule"
when: always
- when: never
script:
- apk add bash tar
- bash ci-scripts/weekly-manifest.sh "{{ IMAGE.name }}" "multi"
retry: 1
tags:
- oci-amd-scheduled
{% endfor %}
{% for IMAGE in singleImages %}
weekly_manifest_{{ IMAGE.name }}:
stage: manifest
rules:
- if: >
$README_USERNAME ||
$README_PASSWORD ||
$QUAY_API_KEY ||
$DOCKERHUB_REVERT ||
$REVERT_IS_ROLLING
when: never
- if: $PARENT_PIPELINE_SOURCE == "schedule" && $RUN_SET == "schedule"
when: always
- when: never
script:
- apk add bash tar
- bash ci-scripts/weekly-manifest.sh "{{ IMAGE.name }}" "single"
retry: 1
tags:
- oci-amd-scheduled
{% endfor %} {% endfor %}
#################### ####################
@ -210,81 +271,85 @@ manifest_{{ IMAGE.name }}:
{% for IMAGE in multiImages %} {% for IMAGE in multiImages %}
update_readmes_{{ IMAGE.name }}: update_readmes_{{ IMAGE.name }}:
stage: readme stage: readme
rules:
- if: >
$README_USERNAME &&
$README_PASSWORD
when: always
script: script:
- apk add bash - apk add bash
- bash ci-scripts/readme.sh "{{ IMAGE.name }}" - bash ci-scripts/readme.sh "{{ IMAGE.name }}"
only:
variables:
- $README_USERNAME
- $README_PASSWORD
tags: tags:
- oci-fixed-amd - oci-amd-scheduled
{% endfor %} {% endfor %}
{% for IMAGE in singleImages %} {% for IMAGE in singleImages %}
update_readmes_{{ IMAGE.name }}: update_readmes_{{ IMAGE.name }}:
stage: readme stage: readme
rules:
- if: >
$README_USERNAME &&
$README_PASSWORD
when: always
script: script:
- apk add bash - apk add bash
- bash ci-scripts/readme.sh "{{ IMAGE.name }}" - bash ci-scripts/readme.sh "{{ IMAGE.name }}"
only:
variables:
- $README_USERNAME
- $README_PASSWORD
tags: tags:
- oci-fixed-amd - oci-amd-scheduled
{% endfor %} {% endfor %}
## Update Quay Readmes ## ## Update Quay Readmes ##
{% for IMAGE in multiImages %} {% for IMAGE in multiImages %}
update_quay_readmes_{{ IMAGE.name }}: update_quay_readmes_{{ IMAGE.name }}:
stage: readme stage: readme
rules:
- if: $QUAY_API_KEY
when: always
script: script:
- apk add bash - apk add bash
- bash ci-scripts/quay_readme.sh "{{ IMAGE.name }}" - bash ci-scripts/quay_readme.sh "{{ IMAGE.name }}"
only:
variables:
- $QUAY_API_KEY
tags: tags:
- oci-fixed-amd - oci-amd-scheduled
{% endfor %} {% endfor %}
{% for IMAGE in singleImages %} {% for IMAGE in singleImages %}
update_quay_readmes_{{ IMAGE.name }}: update_quay_readmes_{{ IMAGE.name }}:
stage: readme stage: readme
rules:
- if: $QUAY_API_KEY
when: always
script: script:
- apk add bash - apk add bash
- bash ci-scripts/quay_readme.sh "{{ IMAGE.name }}" - bash ci-scripts/quay_readme.sh "{{ IMAGE.name }}"
only:
variables:
- $QUAY_API_KEY
tags: tags:
- oci-fixed-amd - oci-amd-scheduled
{% endfor %} {% endfor %}
## Revert Images to specific build id ## ## Revert Images to specific build id ##
{% for IMAGE in multiImages %} {% for IMAGE in multiImages %}
dockerhub_revert_{{ IMAGE.name }}: dockerhub_revert_{{ IMAGE.name }}:
stage: revert stage: revert
rules:
- if: >
$DOCKERHUB_REVERT &&
$REVERT_IS_ROLLING
when: always
script: script:
- /bin/bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "multi" "${DOCKERHUB_REVERT}" "${REVERT_IS_ROLLING}" - /bin/bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "multi" "${DOCKERHUB_REVERT}" "${REVERT_IS_ROLLING}"
only:
variables:
- $DOCKERHUB_REVERT
- $REVERT_IS_ROLLING
tags: tags:
- oci-fixed-amd - oci-amd-scheduled
{% endfor %} {% endfor %}
{% for IMAGE in singleImages %} {% for IMAGE in singleImages %}
dockerhub_revert_{{ IMAGE.name }}: dockerhub_revert_{{ IMAGE.name }}:
stage: revert stage: revert
rules:
- if: >
$DOCKERHUB_REVERT &&
$REVERT_IS_ROLLING
when: always
script: script:
- /bin/bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "single" "${DOCKERHUB_REVERT}" "${REVERT_IS_ROLLING}" - /bin/bash ci-scripts/manifest.sh "{{ IMAGE.name }}" "single" "${DOCKERHUB_REVERT}" "${REVERT_IS_ROLLING}"
only:
variables:
- $DOCKERHUB_REVERT
- $REVERT_IS_ROLLING
tags: tags:
- oci-fixed-amd - oci-amd-scheduled
{% endfor %} {% endfor %}

View File

@ -5,6 +5,7 @@ files: &UNIVERSAL_CHANGE_FILES
multiImages: multiImages:
- name: audacity - name: audacity
runset: set-a
singleapp: true singleapp: true
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-audacity dockerfile: dockerfile-kasm-audacity
@ -12,6 +13,7 @@ multiImages:
- dockerfile-kasm-audacity - dockerfile-kasm-audacity
- src/ubuntu/install/audacity/** - src/ubuntu/install/audacity/**
- name: chromium - name: chromium
runset: set-b
singleapp: true singleapp: true
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-chromium dockerfile: dockerfile-kasm-chromium
@ -21,6 +23,7 @@ multiImages:
- src/ubuntu/install/chromium/** - src/ubuntu/install/chromium/**
- src/ubuntu/install/certificates/** - src/ubuntu/install/certificates/**
- name: deluge - name: deluge
runset: set-a
singleapp: true singleapp: true
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-deluge dockerfile: dockerfile-kasm-deluge
@ -28,6 +31,7 @@ multiImages:
- dockerfile-kasm-deluge - dockerfile-kasm-deluge
- src/ubuntu/install/deluge/** - src/ubuntu/install/deluge/**
- name: doom - name: doom
runset: set-b
singleapp: true singleapp: true
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-doom dockerfile: dockerfile-kasm-doom
@ -36,6 +40,7 @@ multiImages:
- src/ubuntu/install/doom/** - src/ubuntu/install/doom/**
- name: filezilla - name: filezilla
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-filezilla dockerfile: dockerfile-kasm-filezilla
changeFiles: changeFiles:
@ -43,6 +48,7 @@ multiImages:
- src/ubuntu/install/filezilla/** - src/ubuntu/install/filezilla/**
- name: firefox - name: firefox
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-firefox dockerfile: dockerfile-kasm-firefox
changeFiles: changeFiles:
@ -52,6 +58,7 @@ multiImages:
- src/ubuntu/install/certificates/** - src/ubuntu/install/certificates/**
- name: gimp - name: gimp
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-gimp dockerfile: dockerfile-kasm-gimp
changeFiles: changeFiles:
@ -59,6 +66,7 @@ multiImages:
- src/ubuntu/install/gimp/** - src/ubuntu/install/gimp/**
- name: inkscape - name: inkscape
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-inkscape dockerfile: dockerfile-kasm-inkscape
changeFiles: changeFiles:
@ -66,6 +74,7 @@ multiImages:
- src/ubuntu/install/inkscape/** - src/ubuntu/install/inkscape/**
- name: java-dev - name: java-dev
singleapp: false singleapp: false
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-java-dev dockerfile: dockerfile-kasm-java-dev
changeFiles: changeFiles:
@ -80,6 +89,7 @@ multiImages:
- src/ubuntu/install/eclipse/** - src/ubuntu/install/eclipse/**
- name: libre-office - name: libre-office
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-libre-office dockerfile: dockerfile-kasm-libre-office
changeFiles: changeFiles:
@ -87,6 +97,7 @@ multiImages:
- src/ubuntu/install/libre_office/** - src/ubuntu/install/libre_office/**
- name: nessus - name: nessus
singleapp: false singleapp: false
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-nessus dockerfile: dockerfile-kasm-nessus
changeFiles: changeFiles:
@ -96,6 +107,7 @@ multiImages:
- src/ubuntu/install/cleanup/** - src/ubuntu/install/cleanup/**
- name: opensuse-15-desktop - name: opensuse-15-desktop
singleapp: false singleapp: false
runset: set-b
base: core-opensuse-15 base: core-opensuse-15
dockerfile: dockerfile-kasm-opensuse-15-desktop dockerfile: dockerfile-kasm-opensuse-15-desktop
changeFiles: changeFiles:
@ -112,6 +124,7 @@ multiImages:
- src/opensuse/install/** - src/opensuse/install/**
- name: oracle-8-desktop - name: oracle-8-desktop
singleapp: false singleapp: false
runset: set-a
base: core-oracle-8 base: core-oracle-8
dockerfile: dockerfile-kasm-oracle-8-desktop dockerfile: dockerfile-kasm-oracle-8-desktop
changeFiles: changeFiles:
@ -126,6 +139,7 @@ multiImages:
- src/ubuntu/install/slack/** - src/ubuntu/install/slack/**
- name: pinta - name: pinta
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-pinta dockerfile: dockerfile-kasm-pinta
changeFiles: changeFiles:
@ -133,12 +147,14 @@ multiImages:
- src/ubuntu/install/pinta/** - src/ubuntu/install/pinta/**
- name: qbittorrent - name: qbittorrent
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-qbittorrent dockerfile: dockerfile-kasm-qbittorrent
changeFiles: changeFiles:
- dockerfile-kasm-qbittorrent - dockerfile-kasm-qbittorrent
- src/ubuntu/install/qbittorrent/** - src/ubuntu/install/qbittorrent/**
- name: redroid - name: redroid
runset: set-b
singleapp: false singleapp: false
base: core-ubuntu-jammy base: core-ubuntu-jammy
dockerfile: dockerfile-kasm-redroid dockerfile: dockerfile-kasm-redroid
@ -155,6 +171,7 @@ multiImages:
- src/ubuntu/install/cleanup/** - src/ubuntu/install/cleanup/**
- name: remmina - name: remmina
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-remmina dockerfile: dockerfile-kasm-remmina
changeFiles: changeFiles:
@ -162,6 +179,7 @@ multiImages:
- src/ubuntu/install/remmina/** - src/ubuntu/install/remmina/**
- name: spiderfoot - name: spiderfoot
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-spiderfoot dockerfile: dockerfile-kasm-spiderfoot
changeFiles: changeFiles:
@ -172,6 +190,7 @@ multiImages:
- src/ubuntu/install/cleanup/** - src/ubuntu/install/cleanup/**
- name: sublime-text - name: sublime-text
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-sublime-text dockerfile: dockerfile-kasm-sublime-text
changeFiles: changeFiles:
@ -179,6 +198,7 @@ multiImages:
- src/ubuntu/install/sublime_text/** - src/ubuntu/install/sublime_text/**
- name: telegram - name: telegram
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-telegram dockerfile: dockerfile-kasm-telegram
changeFiles: changeFiles:
@ -187,6 +207,7 @@ multiImages:
- src/ubuntu/install/chrome/** - src/ubuntu/install/chrome/**
- name: terminal - name: terminal
singleapp: false singleapp: false
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-terminal dockerfile: dockerfile-kasm-terminal
changeFiles: changeFiles:
@ -196,6 +217,7 @@ multiImages:
- src/ubuntu/install/terminal/** - src/ubuntu/install/terminal/**
- name: thunderbird - name: thunderbird
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-thunderbird dockerfile: dockerfile-kasm-thunderbird
changeFiles: changeFiles:
@ -203,6 +225,7 @@ multiImages:
- src/ubuntu/install/thunderbird/** - src/ubuntu/install/thunderbird/**
- name: tor-browser - name: tor-browser
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-tor-browser dockerfile: dockerfile-kasm-tor-browser
changeFiles: changeFiles:
@ -211,6 +234,7 @@ multiImages:
- src/ubuntu/install/torbrowser/** - src/ubuntu/install/torbrowser/**
- name: ubuntu-focal-desktop - name: ubuntu-focal-desktop
singleapp: false singleapp: false
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-ubuntu-focal-desktop dockerfile: dockerfile-kasm-ubuntu-focal-desktop
changeFiles: changeFiles:
@ -238,6 +262,7 @@ multiImages:
- src/ubuntu/install/slack/** - src/ubuntu/install/slack/**
- name: ubuntu-focal-desktop-vpn - name: ubuntu-focal-desktop-vpn
singleapp: false singleapp: false
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-ubuntu-focal-desktop-vpn dockerfile: dockerfile-kasm-ubuntu-focal-desktop-vpn
changeFiles: changeFiles:
@ -266,6 +291,7 @@ multiImages:
- src/ubuntu/install/vpn/** - src/ubuntu/install/vpn/**
- name: ubuntu-jammy-desktop - name: ubuntu-jammy-desktop
singleapp: false singleapp: false
runset: set-b
base: core-ubuntu-jammy base: core-ubuntu-jammy
dockerfile: dockerfile-kasm-ubuntu-jammy-desktop dockerfile: dockerfile-kasm-ubuntu-jammy-desktop
changeFiles: changeFiles:
@ -293,6 +319,7 @@ multiImages:
- src/ubuntu/install/slack/** - src/ubuntu/install/slack/**
- name: ubuntu-noble-desktop - name: ubuntu-noble-desktop
singleapp: false singleapp: false
runset: set-a
base: core-ubuntu-noble base: core-ubuntu-noble
dockerfile: dockerfile-kasm-ubuntu-noble-desktop dockerfile: dockerfile-kasm-ubuntu-noble-desktop
changeFiles: changeFiles:
@ -320,6 +347,7 @@ multiImages:
- src/ubuntu/install/slack/** - src/ubuntu/install/slack/**
- name: vlc - name: vlc
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-vlc dockerfile: dockerfile-kasm-vlc
changeFiles: changeFiles:
@ -327,6 +355,7 @@ multiImages:
- src/ubuntu/install/vlc/** - src/ubuntu/install/vlc/**
- name: vs-code - name: vs-code
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-vs-code dockerfile: dockerfile-kasm-vs-code
changeFiles: changeFiles:
@ -335,6 +364,7 @@ multiImages:
- src/ubuntu/install/chrome/** - src/ubuntu/install/chrome/**
- name: almalinux-8-desktop - name: almalinux-8-desktop
singleapp: false singleapp: false
runset: set-b
base: core-almalinux-8 base: core-almalinux-8
dockerfile: dockerfile-kasm-almalinux-8-desktop dockerfile: dockerfile-kasm-almalinux-8-desktop
changeFiles: changeFiles:
@ -349,6 +379,7 @@ multiImages:
- src/ubuntu/install/slack/** - src/ubuntu/install/slack/**
- name: almalinux-9-desktop - name: almalinux-9-desktop
singleapp: false singleapp: false
runset: set-a
base: core-almalinux-9 base: core-almalinux-9
dockerfile: dockerfile-kasm-almalinux-9-desktop dockerfile: dockerfile-kasm-almalinux-9-desktop
changeFiles: changeFiles:
@ -362,6 +393,7 @@ multiImages:
- src/ubuntu/install/slack/** - src/ubuntu/install/slack/**
- name: alpine-317-desktop - name: alpine-317-desktop
singleapp: false singleapp: false
runset: set-b
base: core-alpine-317 base: core-alpine-317
dockerfile: dockerfile-kasm-alpine-317-desktop dockerfile: dockerfile-kasm-alpine-317-desktop
changeFiles: changeFiles:
@ -371,6 +403,7 @@ multiImages:
- src/alpine/install/** - src/alpine/install/**
- name: alpine-318-desktop - name: alpine-318-desktop
singleapp: false singleapp: false
runset: set-a
base: core-alpine-318 base: core-alpine-318
dockerfile: dockerfile-kasm-alpine-318-desktop dockerfile: dockerfile-kasm-alpine-318-desktop
changeFiles: changeFiles:
@ -380,6 +413,7 @@ multiImages:
- src/alpine/install/** - src/alpine/install/**
- name: alpine-319-desktop - name: alpine-319-desktop
singleapp: false singleapp: false
runset: set-b
base: core-alpine-319 base: core-alpine-319
dockerfile: dockerfile-kasm-alpine-319-desktop dockerfile: dockerfile-kasm-alpine-319-desktop
changeFiles: changeFiles:
@ -389,6 +423,7 @@ multiImages:
- src/alpine/install/** - src/alpine/install/**
- name: alpine-320-desktop - name: alpine-320-desktop
singleapp: false singleapp: false
runset: set-a
base: core-alpine-320 base: core-alpine-320
dockerfile: dockerfile-kasm-alpine-320-desktop dockerfile: dockerfile-kasm-alpine-320-desktop
changeFiles: changeFiles:
@ -398,6 +433,7 @@ multiImages:
- src/alpine/install/** - src/alpine/install/**
- name: brave - name: brave
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-brave dockerfile: dockerfile-kasm-brave
changeFiles: changeFiles:
@ -406,6 +442,7 @@ multiImages:
- src/ubuntu/install/brave/** - src/ubuntu/install/brave/**
- name: debian-bullseye-desktop - name: debian-bullseye-desktop
singleapp: false singleapp: false
runset: set-a
base: core-debian-bullseye base: core-debian-bullseye
dockerfile: dockerfile-kasm-debian-bullseye-desktop dockerfile: dockerfile-kasm-debian-bullseye-desktop
changeFiles: changeFiles:
@ -431,6 +468,7 @@ multiImages:
- src/ubuntu/install/slack/** - src/ubuntu/install/slack/**
- name: debian-bookworm-desktop - name: debian-bookworm-desktop
singleapp: false singleapp: false
runset: set-b
base: core-debian-bookworm base: core-debian-bookworm
dockerfile: dockerfile-kasm-debian-bookworm-desktop dockerfile: dockerfile-kasm-debian-bookworm-desktop
changeFiles: changeFiles:
@ -456,6 +494,7 @@ multiImages:
- src/ubuntu/install/slack/** - src/ubuntu/install/slack/**
- name: fedora-39-desktop - name: fedora-39-desktop
singleapp: false singleapp: false
runset: set-a
base: core-fedora-39 base: core-fedora-39
dockerfile: dockerfile-kasm-fedora-39-desktop dockerfile: dockerfile-kasm-fedora-39-desktop
changeFiles: changeFiles:
@ -469,6 +508,7 @@ multiImages:
- src/ubuntu/install/slack/** - src/ubuntu/install/slack/**
- name: fedora-40-desktop - name: fedora-40-desktop
singleapp: false singleapp: false
runset: set-b
base: core-fedora-40 base: core-fedora-40
dockerfile: dockerfile-kasm-fedora-40-desktop dockerfile: dockerfile-kasm-fedora-40-desktop
changeFiles: changeFiles:
@ -482,6 +522,7 @@ multiImages:
- src/ubuntu/install/slack/** - src/ubuntu/install/slack/**
- name: kali-rolling-desktop - name: kali-rolling-desktop
singleapp: false singleapp: false
runset: set-a
base: core-kali-rolling base: core-kali-rolling
dockerfile: dockerfile-kasm-kali-rolling-desktop dockerfile: dockerfile-kasm-kali-rolling-desktop
changeFiles: changeFiles:
@ -491,6 +532,7 @@ multiImages:
- src/ubuntu/install/chromium/** - src/ubuntu/install/chromium/**
- name: maltego - name: maltego
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-maltego dockerfile: dockerfile-kasm-maltego
changeFiles: changeFiles:
@ -499,6 +541,7 @@ multiImages:
- src/ubuntu/install/firefox/** - src/ubuntu/install/firefox/**
- name: minetest - name: minetest
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-minetest dockerfile: dockerfile-kasm-minetest
changeFiles: changeFiles:
@ -506,6 +549,7 @@ multiImages:
- src/ubuntu/install/minetest/** - src/ubuntu/install/minetest/**
- name: oracle-9-desktop - name: oracle-9-desktop
singleapp: false singleapp: false
runset: set-b
base: core-oracle-9 base: core-oracle-9
dockerfile: dockerfile-kasm-oracle-9-desktop dockerfile: dockerfile-kasm-oracle-9-desktop
changeFiles: changeFiles:
@ -519,6 +563,7 @@ multiImages:
- src/ubuntu/install/slack/** - src/ubuntu/install/slack/**
- name: parrotos-6-desktop - name: parrotos-6-desktop
singleapp: false singleapp: false
runset: set-a
base: core-parrotos-6 base: core-parrotos-6
dockerfile: dockerfile-kasm-parrotos-6-desktop dockerfile: dockerfile-kasm-parrotos-6-desktop
changeFiles: changeFiles:
@ -529,6 +574,7 @@ multiImages:
- src/ubuntu/install/chromium/** - src/ubuntu/install/chromium/**
- name: retroarch - name: retroarch
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-jammy base: core-ubuntu-jammy
dockerfile: dockerfile-kasm-retroarch dockerfile: dockerfile-kasm-retroarch
changeFiles: changeFiles:
@ -536,6 +582,7 @@ multiImages:
- src/ubuntu/install/retroarch/** - src/ubuntu/install/retroarch/**
- name: rockylinux-8-desktop - name: rockylinux-8-desktop
singleapp: false singleapp: false
runset: set-a
base: core-rockylinux-8 base: core-rockylinux-8
dockerfile: dockerfile-kasm-rockylinux-8-desktop dockerfile: dockerfile-kasm-rockylinux-8-desktop
changeFiles: changeFiles:
@ -550,6 +597,7 @@ multiImages:
- src/ubuntu/install/slack/** - src/ubuntu/install/slack/**
- name: rockylinux-9-desktop - name: rockylinux-9-desktop
singleapp: false singleapp: false
runset: set-b
base: core-rockylinux-9 base: core-rockylinux-9
dockerfile: dockerfile-kasm-rockylinux-9-desktop dockerfile: dockerfile-kasm-rockylinux-9-desktop
changeFiles: changeFiles:
@ -563,6 +611,7 @@ multiImages:
- src/ubuntu/install/slack/** - src/ubuntu/install/slack/**
- name: super-tux-kart - name: super-tux-kart
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-super-tux-kart dockerfile: dockerfile-kasm-super-tux-kart
changeFiles: changeFiles:
@ -570,6 +619,7 @@ multiImages:
- src/ubuntu/install/super_tux_kart/** - src/ubuntu/install/super_tux_kart/**
- name: ubuntu-focal-dind - name: ubuntu-focal-dind
singleapp: false singleapp: false
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-ubuntu-focal-dind dockerfile: dockerfile-kasm-ubuntu-focal-dind
changeFiles: changeFiles:
@ -584,6 +634,7 @@ multiImages:
- src/ubuntu/install/chrome/** - src/ubuntu/install/chrome/**
- name: ubuntu-focal-dind-rootless - name: ubuntu-focal-dind-rootless
singleapp: false singleapp: false
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-ubuntu-focal-dind-rootless dockerfile: dockerfile-kasm-ubuntu-focal-dind-rootless
changeFiles: changeFiles:
@ -598,6 +649,7 @@ multiImages:
- src/ubuntu/install/chrome/** - src/ubuntu/install/chrome/**
- name: ubuntu-jammy-dind - name: ubuntu-jammy-dind
singleapp: false singleapp: false
runset: set-b
base: core-ubuntu-jammy base: core-ubuntu-jammy
dockerfile: dockerfile-kasm-ubuntu-jammy-dind dockerfile: dockerfile-kasm-ubuntu-jammy-dind
changeFiles: changeFiles:
@ -612,6 +664,7 @@ multiImages:
- src/ubuntu/install/chrome/** - src/ubuntu/install/chrome/**
- name: ubuntu-jammy-dind-rootless - name: ubuntu-jammy-dind-rootless
singleapp: false singleapp: false
runset: set-a
base: core-ubuntu-jammy base: core-ubuntu-jammy
dockerfile: dockerfile-kasm-ubuntu-jammy-dind-rootless dockerfile: dockerfile-kasm-ubuntu-jammy-dind-rootless
changeFiles: changeFiles:
@ -627,6 +680,7 @@ multiImages:
- src/ubuntu/install/chrome/** - src/ubuntu/install/chrome/**
- name: ubuntu-noble-dind - name: ubuntu-noble-dind
singleapp: false singleapp: false
runset: set-b
base: core-ubuntu-noble base: core-ubuntu-noble
dockerfile: dockerfile-kasm-ubuntu-noble-dind dockerfile: dockerfile-kasm-ubuntu-noble-dind
changeFiles: changeFiles:
@ -641,6 +695,7 @@ multiImages:
- src/ubuntu/install/chrome/** - src/ubuntu/install/chrome/**
- name: ubuntu-noble-dind-rootless - name: ubuntu-noble-dind-rootless
singleapp: false singleapp: false
runset: set-a
base: core-ubuntu-noble base: core-ubuntu-noble
dockerfile: dockerfile-kasm-ubuntu-noble-dind-rootless dockerfile: dockerfile-kasm-ubuntu-noble-dind-rootless
changeFiles: changeFiles:
@ -656,6 +711,7 @@ multiImages:
- src/ubuntu/install/chrome/** - src/ubuntu/install/chrome/**
- name: vivaldi - name: vivaldi
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-vivaldi dockerfile: dockerfile-kasm-vivaldi
changeFiles: changeFiles:
@ -666,6 +722,7 @@ multiImages:
singleImages: singleImages:
- name: blender - name: blender
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-blender dockerfile: dockerfile-kasm-blender
changeFiles: changeFiles:
@ -673,6 +730,7 @@ singleImages:
- src/ubuntu/install/blender/** - src/ubuntu/install/blender/**
- name: chrome - name: chrome
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-chrome dockerfile: dockerfile-kasm-chrome
changeFiles: changeFiles:
@ -682,6 +740,7 @@ singleImages:
- src/ubuntu/install/chrome/** - src/ubuntu/install/chrome/**
- name: desktop - name: desktop
singleapp: false singleapp: false
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-desktop dockerfile: dockerfile-kasm-desktop
changeFiles: changeFiles:
@ -691,6 +750,7 @@ singleImages:
- src/ubuntu/install/chrome/** - src/ubuntu/install/chrome/**
- name: desktop-deluxe - name: desktop-deluxe
singleapp: false singleapp: false
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-desktop-deluxe dockerfile: dockerfile-kasm-desktop-deluxe
changeFiles: changeFiles:
@ -714,6 +774,7 @@ singleImages:
- src/ubuntu/install/chrome/** - src/ubuntu/install/chrome/**
- name: discord - name: discord
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-discord dockerfile: dockerfile-kasm-discord
changeFiles: changeFiles:
@ -721,6 +782,7 @@ singleImages:
- src/ubuntu/install/discord/** - src/ubuntu/install/discord/**
- name: edge - name: edge
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-edge dockerfile: dockerfile-kasm-edge
changeFiles: changeFiles:
@ -729,6 +791,7 @@ singleImages:
- src/ubuntu/install/edge/** - src/ubuntu/install/edge/**
- name: hunchly - name: hunchly
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-jammy base: core-ubuntu-jammy
dockerfile: dockerfile-kasm-hunchly dockerfile: dockerfile-kasm-hunchly
changeFiles: changeFiles:
@ -737,6 +800,7 @@ singleImages:
- src/ubuntu/install/hunchly/** - src/ubuntu/install/hunchly/**
- name: insomnia - name: insomnia
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-jammy base: core-ubuntu-jammy
dockerfile: dockerfile-kasm-insomnia dockerfile: dockerfile-kasm-insomnia
changeFiles: changeFiles:
@ -744,12 +808,14 @@ singleImages:
- src/ubuntu/install/insomnia/** - src/ubuntu/install/insomnia/**
- name: only-office - name: only-office
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-only-office dockerfile: dockerfile-kasm-only-office
changeFiles: changeFiles:
- dockerfile-kasm-only-office - dockerfile-kasm-only-office
- name: kasmos-desktop - name: kasmos-desktop
singleapp: false singleapp: false
runset: set-b
base: core-kasmos base: core-kasmos
dockerfile: dockerfile-kasmos-desktop dockerfile: dockerfile-kasmos-desktop
changeFiles: changeFiles:
@ -770,6 +836,7 @@ singleImages:
- src/ubuntu/install/cleanup/** - src/ubuntu/install/cleanup/**
- name: postman - name: postman
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-postman dockerfile: dockerfile-kasm-postman
changeFiles: changeFiles:
@ -778,6 +845,7 @@ singleImages:
- src/ubuntu/install/postman/** - src/ubuntu/install/postman/**
- name: remnux-focal-desktop - name: remnux-focal-desktop
singleapp: false singleapp: false
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-remnux-focal-desktop dockerfile: dockerfile-kasm-remnux-focal-desktop
changeFiles: changeFiles:
@ -786,6 +854,7 @@ singleImages:
- src/ubuntu/install/remnux/** - src/ubuntu/install/remnux/**
- name: signal - name: signal
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-signal dockerfile: dockerfile-kasm-signal
changeFiles: changeFiles:
@ -793,6 +862,7 @@ singleImages:
- src/ubuntu/install/signal/** - src/ubuntu/install/signal/**
- name: slack - name: slack
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-slack dockerfile: dockerfile-kasm-slack
changeFiles: changeFiles:
@ -803,6 +873,7 @@ singleImages:
- src/ubuntu/install/cleanup/** - src/ubuntu/install/cleanup/**
- name: steam - name: steam
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-steam dockerfile: dockerfile-kasm-steam
changeFiles: changeFiles:
@ -810,6 +881,7 @@ singleImages:
- src/ubuntu/install/steam/** - src/ubuntu/install/steam/**
- name: tracelabs - name: tracelabs
singleapp: false singleapp: false
runset: set-b
base: core-kali-rolling base: core-kali-rolling
dockerfile: dockerfile-kasm-tracelabs dockerfile: dockerfile-kasm-tracelabs
changeFiles: changeFiles:
@ -819,6 +891,7 @@ singleImages:
- src/ubuntu/install/tracelabs/** - src/ubuntu/install/tracelabs/**
- name: unityhub - name: unityhub
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-unityhub dockerfile: dockerfile-kasm-unityhub
changeFiles: changeFiles:
@ -828,6 +901,7 @@ singleImages:
- src/ubuntu/install/unityhub/** - src/ubuntu/install/unityhub/**
- name: zoom - name: zoom
singleapp: true singleapp: true
runset: set-b
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-zoom dockerfile: dockerfile-kasm-zoom
changeFiles: changeFiles:
@ -836,6 +910,7 @@ singleImages:
- src/ubuntu/install/chrome/** - src/ubuntu/install/chrome/**
- name: zsnes - name: zsnes
singleapp: true singleapp: true
runset: set-a
base: core-ubuntu-focal base: core-ubuntu-focal
dockerfile: dockerfile-kasm-zsnes dockerfile: dockerfile-kasm-zsnes
changeFiles: changeFiles:
@ -843,6 +918,7 @@ singleImages:
- src/ubuntu/install/zsnes/** - src/ubuntu/install/zsnes/**
- name: forensic-osint - name: forensic-osint
singleapp: false singleapp: false
runset: set-b
base: core-ubuntu-jammy base: core-ubuntu-jammy
dockerfile: dockerfile-kasm-forensic-osint dockerfile: dockerfile-kasm-forensic-osint
changeFiles: changeFiles:

View File

@ -0,0 +1,62 @@
#!/bin/bash
REGISTRY_MIRRORS=("quay.io" "ghcr.io")
NAME=$1
TYPE=$2
BASE=$3
APPS="kasm-apps"
SANITIZED_BRANCH_DAILY=${SANITIZED_BRANCH}-rolling-daily
SANITIZED_BRANCH=${SANITIZED_BRANCH}-rolling-weekly
tagImage() {
docker pull "$1"
docker tag "$1" "$2"
docker push "$2"
}
manifest() {
docker manifest push --purge "$1" || :
docker manifest create "$1" "$2":x86_64-"$3" "$2":aarch64-"$3"
docker manifest annotate "$1" "$2":aarch64-"$3" --os linux --arch arm64 --variant v8
docker manifest push --purge "$1"
}
# Manifest for multi pull and push for single arch
# Will pull the daily rolling images and retag them to weekly
if [[ "${TYPE}" == "multi" ]]; then
# Pulling and retagging daily image
tagImage "${ORG_NAME}/${NAME}:x86_64-${SANITIZED_BRANCH_DAILY}" "${ORG_NAME}/${NAME}:x86_64-${SANITIZED_BRANCH}"
tagImage "${ORG_NAME}/${NAME}:aarch64-${SANITIZED_BRANCH_DAILY}" "${ORG_NAME}/${NAME}:aarch64-${SANITIZED_BRANCH}"
# Manifest tag
manifest "${ORG_NAME}/${NAME}:${SANITIZED_BRANCH}" "${ORG_NAME}/${NAME}" "${SANITIZED_BRANCH}"
for MIRROR in "${REGISTRY_MIRRORS[@]}"; do
tagImage "${ORG_NAME}/${NAME}:x86_64-${SANITIZED_BRANCH_DAILY}" "${MIRROR}/${MIRROR_ORG_NAME}/${NAME}:x86_64-${SANITIZED_BRANCH}"
tagImage "${ORG_NAME}/${NAME}:aarch64-${SANITIZED_BRANCH_DAILY}" "${MIRROR}/${MIRROR_ORG_NAME}/${NAME}:aarch64-${SANITIZED_BRANCH}"
manifest "${MIRROR}/${MIRROR_ORG_NAME}/${NAME}:${SANITIZED_BRANCH}" "${MIRROR}/${MIRROR_ORG_NAME}/${NAME}" "${SANITIZED_BRANCH}"
done
# Single App Layer Images
# Disabling Single App Layer due to functionality not being used currently
# if [ ! -z "${BASE}" ];then
# tagImage "${ORG_NAME}/${APPS}:x86_64-${BASE}-${NAME}-${SANITIZED_BRANCH_DAILY}" "${ORG_NAME}/${APPS}:x86_64-${BASE}-${NAME}-${SANITIZED_BRANCH}"
# tagImage "${ORG_NAME}/${APPS}:aarch64-${BASE}-${NAME}-${SANITIZED_BRANCH_DAILY}" "${ORG_NAME}/${APPS}:aarch64-${BASE}-${NAME}-${SANITIZED_BRANCH}"
# manifest "${ORG_NAME}/${APPS}:${BASE}-${NAME}-${SANITIZED_BRANCH}" "${ORG_NAME}/${APPS}" "${BASE}-${NAME}-${SANITIZED_BRANCH}"
# fi
# Single arch image just pull and push
else
tagImage "${ORG_NAME}/${NAME}:${SANITIZED_BRANCH_DAILY}" "${ORG_NAME}/${NAME}:${SANITIZED_BRANCH}"
for MIRROR in "${REGISTRY_MIRRORS[@]}"; do
tagImage "${ORG_NAME}/${NAME}:${SANITIZED_BRANCH_DAILY}" "${MIRROR}/${MIRROR_ORG_NAME}/${NAME}:${SANITIZED_BRANCH}"
done
# Single App Layer Images
# Disabling Single App Layer due to functionality not being used currently
# if [ ! -z "${BASE}" ];then
# tagImage "${ORG_NAME}/${APPS}:${BASE}-${NAME}-${SANITIZED_BRANCH_DAILY}" "${ORG_NAME}/${APPS}:x86_64-${BASE}-${NAME}-${SANITIZED_BRANCH}"
# fi
fi