diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index 3a2e2ea..7e64f05 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -24,10 +24,10 @@
## Readme
If you would like to change our readme, please __**do not**__ directly edit the readme, as it is auto-generated on each commit.
-Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-kasm/edit/master/readme-vars.yml).
+Instead edit the [readme-vars.yml](https://github.com/linuxserver/docker-kasm/edit/develop/readme-vars.yml).
These variables are used in a template for our [Jenkins Builder](https://github.com/linuxserver/docker-jenkins-builder) as part of an ansible play.
-Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io/images/docker-kasm)
+Most of these variables are also carried over to [docs.linuxserver.io](https://docs.linuxserver.io)
### Fixing typos or clarify the text in the readme
@@ -115,7 +115,7 @@ Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64
## Update the changelog
-If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-kasm/tree/master/root), add an entry to the changelog
+If you are modifying the Dockerfiles or any of the startup scripts in [root](https://github.com/linuxserver/docker-kasm/tree/develop/root), add an entry to the changelog
```yml
changelogs:
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
index 618c04b..dada550 100644
--- a/.github/ISSUE_TEMPLATE/config.yml
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -9,5 +9,5 @@ contact_links:
about: Post on our community forum.
- name: Documentation
- url: https://docs.linuxserver.io/images/docker-kasm
+ url: https://docs.linuxserver.io
about: Documentation - information about all of our containers.
diff --git a/.github/ISSUE_TEMPLATE/issue.bug.yml b/.github/ISSUE_TEMPLATE/issue.bug.yml
old mode 100644
new mode 100755
index 48781be..6400c70
--- a/.github/ISSUE_TEMPLATE/issue.bug.yml
+++ b/.github/ISSUE_TEMPLATE/issue.bug.yml
@@ -4,73 +4,10 @@ description: Create a report to help us improve
title: "[BUG]
"
labels: [Bug]
body:
- - type: checkboxes
+ - type: markdown
attributes:
- label: Is there an existing issue for this?
- description: Please search to see if an issue already exists for the bug you encountered.
- options:
- - label: I have searched the existing issues
- required: true
- - type: textarea
- attributes:
- label: Current Behavior
- description: Tell us what happens instead of the expected behavior.
- validations:
- required: true
- - type: textarea
- attributes:
- label: Expected Behavior
- description: Tell us what should happen.
- validations:
- required: false
- - type: textarea
- attributes:
- label: Steps To Reproduce
- description: Steps to reproduce the behavior.
- placeholder: |
- 1. In this environment...
- 2. With this config...
- 3. Run '...'
- 4. See error...
- validations:
- required: true
- - type: textarea
- attributes:
- label: Environment
- description: |
- examples:
- - **OS**: Ubuntu 20.04
- - **How docker service was installed**: distro's packagemanager
value: |
- - OS:
- - How docker service was installed:
- render: markdown
- validations:
- required: false
- - type: dropdown
- attributes:
- label: CPU architecture
- options:
- - x86-64
- - arm64
- validations:
- required: true
- - type: textarea
- attributes:
- label: Docker creation
- description: |
- Command used to create docker container
- Provide your docker create/run command or compose yaml snippet, or a screenshot of settings if using a gui to create the container
- render: bash
- validations:
- required: true
- - type: textarea
- attributes:
- description: |
- Provide a full docker log, output of "docker logs kasm"
- label: Container logs
- placeholder: |
- Output of `docker logs kasm`
- render: bash
- validations:
- required: true
+# DEPRECATION NOTICE
+This image is deprecated. We will not offer support for this image and it will not be updated.
+
+
diff --git a/.github/ISSUE_TEMPLATE/issue.feature.yml b/.github/ISSUE_TEMPLATE/issue.feature.yml
old mode 100644
new mode 100755
index 099dcdb..b21c3e1
--- a/.github/ISSUE_TEMPLATE/issue.feature.yml
+++ b/.github/ISSUE_TEMPLATE/issue.feature.yml
@@ -4,28 +4,10 @@ description: Suggest an idea for this project
title: "[FEAT] "
labels: [enhancement]
body:
- - type: checkboxes
+ - type: markdown
attributes:
- label: Is this a new feature request?
- description: Please search to see if a feature request already exists.
- options:
- - label: I have searched the existing issues
- required: true
- - type: textarea
- attributes:
- label: Wanted change
- description: Tell us what you want to happen.
- validations:
- required: true
- - type: textarea
- attributes:
- label: Reason for change
- description: Justify your request, why do you want it, what is the benefit.
- validations:
- required: true
- - type: textarea
- attributes:
- label: Proposed code change
- description: Do you have a potential code change in mind?
- validations:
- required: false
+ value: |
+# DEPRECATION NOTICE
+This image is deprecated. We will not offer support for this image and it will not be updated.
+
+
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index a3750dd..fb4c6f1 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -1,3 +1,7 @@
+# DEPRECATION NOTICE
+This image is deprecated. We will not offer support for this image and it will not be updated.
+
+
[linuxserverurl]: https://linuxserver.io
@@ -21,7 +25,7 @@
------------------------------
- - [ ] I have read the [contributing](https://github.com/linuxserver/docker-kasm/blob/master/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
+ - [ ] I have read the [contributing](https://github.com/linuxserver/docker-kasm/blob/develop/.github/CONTRIBUTING.md) guideline and understand that I have made the correct modifications
------------------------------
diff --git a/.github/workflows/call_issue_pr_tracker.yml b/.github/workflows/call_issue_pr_tracker.yml
deleted file mode 100644
index d07cf12..0000000
--- a/.github/workflows/call_issue_pr_tracker.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Issue & PR Tracker
-
-on:
- issues:
- types: [opened,reopened,labeled,unlabeled,closed]
- pull_request_target:
- types: [opened,reopened,review_requested,review_request_removed,labeled,unlabeled,closed]
- pull_request_review:
- types: [submitted,edited,dismissed]
-
-permissions:
- contents: read
-
-jobs:
- manage-project:
- permissions:
- issues: write
- uses: linuxserver/github-workflows/.github/workflows/issue-pr-tracker.yml@v1
- secrets: inherit
diff --git a/.github/workflows/call_issues_cron.yml b/.github/workflows/call_issues_cron.yml
deleted file mode 100644
index 3c0a5ac..0000000
--- a/.github/workflows/call_issues_cron.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-name: Mark stale issues and pull requests
-on:
- schedule:
- - cron: '16 9 * * *'
- workflow_dispatch:
-
-permissions:
- contents: read
-
-jobs:
- stale:
- permissions:
- issues: write
- pull-requests: write
- uses: linuxserver/github-workflows/.github/workflows/issues-cron.yml@v1
- secrets: inherit
diff --git a/.github/workflows/external_trigger.yml b/.github/workflows/external_trigger.yml
deleted file mode 100644
index db3c457..0000000
--- a/.github/workflows/external_trigger.yml
+++ /dev/null
@@ -1,147 +0,0 @@
-name: External Trigger Main
-
-on:
- workflow_dispatch:
-
-permissions:
- contents: read
-
-jobs:
- external-trigger-master:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4.1.1
-
- - name: External Trigger
- if: github.ref == 'refs/heads/master'
- env:
- SKIP_EXTERNAL_TRIGGER: ${{ vars.SKIP_EXTERNAL_TRIGGER }}
- run: |
- printf "# External trigger for docker-kasm\n\n" >> $GITHUB_STEP_SUMMARY
- if grep -q "^kasm_master_" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
- echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
- echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`kasm_master_\`; will skip trigger if version matches." >> $GITHUB_STEP_SUMMARY
- elif grep -q "^kasm_master" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
- echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
- echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` contains \`kasm_master\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
- exit 0
- fi
- echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
- echo "> External trigger running off of master branch. To disable this trigger, add \`kasm_master\` into the Github organizational variable \`SKIP_EXTERNAL_TRIGGER\`." >> $GITHUB_STEP_SUMMARY
- printf "\n## Retrieving external version\n\n" >> $GITHUB_STEP_SUMMARY
- EXT_RELEASE=$(curl -u "${{ secrets.CR_USER }}:${{ secrets.CR_PAT }}" -sX GET "https://api.github.com/repos/kasmtech/kasm-install-wizard/releases/latest" | jq -r '. | .tag_name')
- echo "Type is \`github_stable\`" >> $GITHUB_STEP_SUMMARY
- if grep -q "^kasm_master_${EXT_RELEASE}" <<< "${SKIP_EXTERNAL_TRIGGER}"; then
- echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
- echo "> Github organizational variable \`SKIP_EXTERNAL_TRIGGER\` matches current external release; skipping trigger." >> $GITHUB_STEP_SUMMARY
- exit 0
- fi
- if [ -z "${EXT_RELEASE}" ] || [ "${EXT_RELEASE}" == "null" ]; then
- echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
- echo "> Can't retrieve external version, exiting" >> $GITHUB_STEP_SUMMARY
- FAILURE_REASON="Can't retrieve external version for kasm branch master"
- GHA_TRIGGER_URL="https://github.com/linuxserver/docker-kasm/actions/runs/${{ github.run_id }}"
- curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
- "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n**Trigger URL:** '"${GHA_TRIGGER_URL}"' \n"}],
- "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
- exit 1
- fi
- EXT_RELEASE_SANITIZED=$(echo ${EXT_RELEASE} | sed 's/[~,%@+;:/]//g')
- echo "Sanitized external version: \`${EXT_RELEASE_SANITIZED}\`" >> $GITHUB_STEP_SUMMARY
- echo "Retrieving last pushed version" >> $GITHUB_STEP_SUMMARY
- image="linuxserver/kasm"
- tag="latest"
- token=$(curl -sX GET \
- "https://ghcr.io/token?scope=repository%3Alinuxserver%2Fkasm%3Apull" \
- | jq -r '.token')
- multidigest=$(curl -s \
- --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
- --header "Accept: application/vnd.oci.image.index.v1+json" \
- --header "Authorization: Bearer ${token}" \
- "https://ghcr.io/v2/${image}/manifests/${tag}")
- if jq -e '.layers // empty' <<< "${multidigest}" >/dev/null 2>&1; then
- # If there's a layer element it's a single-arch manifest so just get that digest
- digest=$(jq -r '.config.digest' <<< "${multidigest}")
- else
- # Otherwise it's multi-arch or has manifest annotations
- if jq -e '.manifests[]?.annotations // empty' <<< "${multidigest}" >/dev/null 2>&1; then
- # Check for manifest annotations and delete if found
- multidigest=$(jq 'del(.manifests[] | select(.annotations))' <<< "${multidigest}")
- fi
- if [[ $(jq '.manifests | length' <<< "${multidigest}") -gt 1 ]]; then
- # If there's still more than one digest, it's multi-arch
- multidigest=$(jq -r ".manifests[] | select(.platform.architecture == \"amd64\").digest?" <<< "${multidigest}")
- else
- # Otherwise it's single arch
- multidigest=$(jq -r ".manifests[].digest?" <<< "${multidigest}")
- fi
- if digest=$(curl -s \
- --header "Accept: application/vnd.docker.distribution.manifest.v2+json" \
- --header "Accept: application/vnd.oci.image.manifest.v1+json" \
- --header "Authorization: Bearer ${token}" \
- "https://ghcr.io/v2/${image}/manifests/${multidigest}"); then
- digest=$(jq -r '.config.digest' <<< "${digest}");
- fi
- fi
- image_info=$(curl -sL \
- --header "Authorization: Bearer ${token}" \
- "https://ghcr.io/v2/${image}/blobs/${digest}")
- if [[ $(echo $image_info | jq -r '.container_config') == "null" ]]; then
- image_info=$(echo $image_info | jq -r '.config')
- else
- image_info=$(echo $image_info | jq -r '.container_config')
- fi
- IMAGE_RELEASE=$(echo ${image_info} | jq -r '.Labels.build_version' | awk '{print $3}')
- IMAGE_VERSION=$(echo ${IMAGE_RELEASE} | awk -F'-ls' '{print $1}')
- if [ -z "${IMAGE_VERSION}" ]; then
- echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
- echo "Can't retrieve last pushed version, exiting" >> $GITHUB_STEP_SUMMARY
- FAILURE_REASON="Can't retrieve last pushed version for kasm tag latest"
- curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 16711680,
- "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
- "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
- exit 1
- fi
- echo "Last pushed version: \`${IMAGE_VERSION}\`" >> $GITHUB_STEP_SUMMARY
- if [ "${EXT_RELEASE_SANITIZED}" == "${IMAGE_VERSION}" ]; then
- echo "Sanitized version \`${EXT_RELEASE_SANITIZED}\` already pushed, exiting" >> $GITHUB_STEP_SUMMARY
- exit 0
- elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-kasm/job/master/lastBuild/api/json | jq -r '.building') == "true" ]; then
- echo "New version \`${EXT_RELEASE}\` found; but there already seems to be an active build on Jenkins; exiting" >> $GITHUB_STEP_SUMMARY
- exit 0
- else
- if [[ "${artifacts_found}" == "false" ]]; then
- echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
- echo "> New version detected, but not all artifacts are published yet; skipping trigger" >> $GITHUB_STEP_SUMMARY
- FAILURE_REASON="New version ${EXT_RELEASE} for kasm tag latest is detected, however not all artifacts are uploaded to upstream release yet. Will try again later."
- curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
- "description": "**Trigger Failed** \n**Reason:** '"${FAILURE_REASON}"' \n"}],
- "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
- else
- printf "\n## Trigger new build\n\n" >> $GITHUB_STEP_SUMMARY
- echo "New sanitized version \`${EXT_RELEASE_SANITIZED}\` found; old version was \`${IMAGE_VERSION}\`. Triggering new build" >> $GITHUB_STEP_SUMMARY
- if [[ "${artifacts_found}" == "true" ]]; then
- echo "All artifacts seem to be uploaded." >> $GITHUB_STEP_SUMMARY
- fi
- response=$(curl -iX POST \
- https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-kasm/job/master/buildWithParameters?PACKAGE_CHECK=false \
- --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
- echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
- echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
- sleep 10
- buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
- buildurl="${buildurl%$'\r'}"
- echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
- echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
- curl -iX POST \
- "${buildurl}submitDescription" \
- --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
- --data-urlencode "description=GHA external trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
- --data-urlencode "Submit=Submit"
- echo "**** Notifying Discord ****"
- TRIGGER_REASON="A version change was detected for kasm tag latest. Old version:${IMAGE_VERSION} New version:${EXT_RELEASE_SANITIZED}"
- curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
- "description": "**Build Triggered** \n**Reason:** '"${TRIGGER_REASON}"' \n**Build URL:** '"${buildurl}display/redirect"' \n"}],
- "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
- fi
- fi
diff --git a/.github/workflows/external_trigger_scheduler.yml b/.github/workflows/external_trigger_scheduler.yml
deleted file mode 100644
index 00529b1..0000000
--- a/.github/workflows/external_trigger_scheduler.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-name: External Trigger Scheduler
-
-on:
- schedule:
- - cron: '33 * * * *'
- workflow_dispatch:
-
-permissions:
- contents: read
-
-jobs:
- external-trigger-scheduler:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4.1.1
- with:
- fetch-depth: '0'
-
- - name: External Trigger Scheduler
- run: |
- printf "# External trigger scheduler for docker-kasm\n\n" >> $GITHUB_STEP_SUMMARY
- printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
- for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
- do
- if [[ "${br}" == "HEAD" ]]; then
- printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
- continue
- fi
- printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
- ls_jenkins_vars=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-kasm/${br}/jenkins-vars.yml)
- ls_branch=$(echo "${ls_jenkins_vars}" | yq -r '.ls_branch')
- ls_trigger=$(echo "${ls_jenkins_vars}" | yq -r '.external_type')
- if [[ "${br}" == "${ls_branch}" ]] && [[ "${ls_trigger}" != "os" ]]; then
- echo "Branch appears to be live and trigger is not os; checking workflow." >> $GITHUB_STEP_SUMMARY
- if curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-kasm/${br}/.github/workflows/external_trigger.yml > /dev/null 2>&1; then
- echo "Triggering external trigger workflow for branch." >> $GITHUB_STEP_SUMMARY
- curl -iX POST \
- -H "Authorization: token ${{ secrets.CR_PAT }}" \
- -H "Accept: application/vnd.github.v3+json" \
- -d "{\"ref\":\"refs/heads/${br}\"}" \
- https://api.github.com/repos/linuxserver/docker-kasm/actions/workflows/external_trigger.yml/dispatches
- else
- echo "Skipping branch due to no external trigger workflow present." >> $GITHUB_STEP_SUMMARY
- fi
- else
- echo "Skipping branch due to being detected as dev branch or having no external version." >> $GITHUB_STEP_SUMMARY
- fi
- done
diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml
index a64f2e2..81ea2a9 100644
--- a/.github/workflows/greetings.yml
+++ b/.github/workflows/greetings.yml
@@ -2,18 +2,12 @@ name: Greetings
on: [pull_request_target, issues]
-permissions:
- contents: read
-
jobs:
greeting:
- permissions:
- issues: write
- pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/first-interaction@v1
with:
issue-message: 'Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.'
- pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-kasm/blob/master/.github/PULL_REQUEST_TEMPLATE.md)!'
+ pr-message: 'Thanks for opening this pull request! Be sure to follow the [pull request template](https://github.com/linuxserver/docker-kasm/blob/develop/.github/PULL_REQUEST_TEMPLATE.md)!'
repo-token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/package_trigger_scheduler.yml b/.github/workflows/package_trigger_scheduler.yml
deleted file mode 100644
index 3c24c7e..0000000
--- a/.github/workflows/package_trigger_scheduler.yml
+++ /dev/null
@@ -1,103 +0,0 @@
-name: Package Trigger Scheduler
-
-on:
- schedule:
- - cron: '31 21 * * 2'
- workflow_dispatch:
-
-permissions:
- contents: read
-
-jobs:
- package-trigger-scheduler:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4.1.1
- with:
- fetch-depth: '0'
-
- - name: Package Trigger Scheduler
- env:
- SKIP_PACKAGE_TRIGGER: ${{ vars.SKIP_PACKAGE_TRIGGER }}
- run: |
- printf "# Package trigger scheduler for docker-kasm\n\n" >> $GITHUB_STEP_SUMMARY
- printf "Found the branches:\n\n%s\n" "$(git for-each-ref --format='- %(refname:lstrip=3)' refs/remotes)" >> $GITHUB_STEP_SUMMARY
- for br in $(git for-each-ref --format='%(refname:lstrip=3)' refs/remotes)
- do
- if [[ "${br}" == "HEAD" ]]; then
- printf "\nSkipping %s.\n" ${br} >> $GITHUB_STEP_SUMMARY
- continue
- fi
- printf "\n## Evaluating \`%s\`\n\n" ${br} >> $GITHUB_STEP_SUMMARY
- JENKINS_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-kasm/${br}/jenkins-vars.yml)
- if ! curl -sfX GET https://raw.githubusercontent.com/linuxserver/docker-kasm/${br}/Jenkinsfile >/dev/null 2>&1; then
- echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
- echo "> No Jenkinsfile found. Branch is either deprecated or is an early dev branch." >> $GITHUB_STEP_SUMMARY
- skipped_branches="${skipped_branches}${br} "
- elif [[ "${br}" == $(yq -r '.ls_branch' <<< "${JENKINS_VARS}") ]]; then
- echo "Branch appears to be live; checking workflow." >> $GITHUB_STEP_SUMMARY
- README_VARS=$(curl -sX GET https://raw.githubusercontent.com/linuxserver/docker-kasm/${br}/readme-vars.yml)
- if [[ $(yq -r '.project_deprecation_status' <<< "${README_VARS}") == "true" ]]; then
- echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
- echo "> Branch appears to be deprecated; skipping trigger." >> $GITHUB_STEP_SUMMARY
- skipped_branches="${skipped_branches}${br} "
- elif [[ $(yq -r '.skip_package_check' <<< "${JENKINS_VARS}") == "true" ]]; then
- echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
- echo "> Skipping branch ${br} due to \`skip_package_check\` being set in \`jenkins-vars.yml\`." >> $GITHUB_STEP_SUMMARY
- skipped_branches="${skipped_branches}${br} "
- elif grep -q "^kasm_${br}" <<< "${SKIP_PACKAGE_TRIGGER}"; then
- echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
- echo "> Github organizational variable \`SKIP_PACKAGE_TRIGGER\` contains \`kasm_${br}\`; skipping trigger." >> $GITHUB_STEP_SUMMARY
- skipped_branches="${skipped_branches}${br} "
- elif [ $(curl -s https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-kasm/job/${br}/lastBuild/api/json | jq -r '.building' 2>/dev/null) == "true" ]; then
- echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
- echo "> There already seems to be an active build on Jenkins; skipping package trigger for ${br}" >> $GITHUB_STEP_SUMMARY
- skipped_branches="${skipped_branches}${br} "
- else
- echo "> [!NOTE]" >> $GITHUB_STEP_SUMMARY
- echo "> Triggering package trigger for branch ${br}" >> $GITHUB_STEP_SUMMARY
- printf "> To disable, add \`kasm_%s\` into the Github organizational variable \`SKIP_PACKAGE_TRIGGER\`.\n\n" "${br}" >> $GITHUB_STEP_SUMMARY
- triggered_branches="${triggered_branches}${br} "
- response=$(curl -iX POST \
- https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-kasm/job/${br}/buildWithParameters?PACKAGE_CHECK=true \
- --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} | grep -i location | sed "s|^[L|l]ocation: \(.*\)|\1|")
- if [[ -z "${response}" ]]; then
- echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
- echo "> Jenkins build could not be triggered. Skipping branch."
- continue
- fi
- echo "Jenkins [job queue url](${response%$'\r'})" >> $GITHUB_STEP_SUMMARY
- echo "Sleeping 10 seconds until job starts" >> $GITHUB_STEP_SUMMARY
- sleep 10
- buildurl=$(curl -s "${response%$'\r'}api/json" | jq -r '.executable.url')
- buildurl="${buildurl%$'\r'}"
- echo "Jenkins job [build url](${buildurl})" >> $GITHUB_STEP_SUMMARY
- echo "Attempting to change the Jenkins job description" >> $GITHUB_STEP_SUMMARY
- if ! curl -ifX POST \
- "${buildurl}submitDescription" \
- --user ${{ secrets.JENKINS_USER }}:${{ secrets.JENKINS_TOKEN }} \
- --data-urlencode "description=GHA package trigger https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" \
- --data-urlencode "Submit=Submit"; then
- echo "> [!WARNING]" >> $GITHUB_STEP_SUMMARY
- echo "> Unable to change the Jenkins job description."
- fi
- sleep 20
- fi
- else
- echo "Skipping branch ${br} due to being detected as dev branch." >> $GITHUB_STEP_SUMMARY
- fi
- done
- if [[ -n "${triggered_branches}" ]] || [[ -n "${skipped_branches}" ]]; then
- if [[ -n "${triggered_branches}" ]]; then
- NOTIFY_BRANCHES="**Triggered:** ${triggered_branches} \n"
- NOTIFY_BUILD_URL="**Build URL:** https://ci.linuxserver.io/blue/organizations/jenkins/Docker-Pipeline-Builders%2Fdocker-kasm/activity/ \n"
- echo "**** Package check build(s) triggered for branch(es): ${triggered_branches} ****"
- fi
- if [[ -n "${skipped_branches}" ]]; then
- NOTIFY_BRANCHES="${NOTIFY_BRANCHES}**Skipped:** ${skipped_branches} \n"
- fi
- echo "**** Notifying Discord ****"
- curl -X POST -H "Content-Type: application/json" --data '{"avatar_url": "https://cdn.discordapp.com/avatars/354986384542662657/df91181b3f1cf0ef1592fbe18e0962d7.png","embeds": [{"color": 9802903,
- "description": "**Package Check Build(s) for kasm** \n'"${NOTIFY_BRANCHES}"''"${NOTIFY_BUILD_URL}"'"}],
- "username": "Github Actions"}' ${{ secrets.DISCORD_WEBHOOK }}
- fi
diff --git a/.github/workflows/permissions.yml b/.github/workflows/permissions.yml
old mode 100644
new mode 100755
diff --git a/Dockerfile b/Dockerfile
index 7ffec63..e626045 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,53 +1,63 @@
# syntax=docker/dockerfile:1
-FROM ghcr.io/linuxserver/baseimage-ubuntu:noble
+FROM ghcr.io/linuxserver/baseimage-ubuntu:jammy
# set version label
ARG BUILD_DATE
ARG KASM_VERSION
ARG VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
-LABEL maintainer="thespad"
+LABEL maintainer="thelamer"
# Env
ENV DOCKER_TLS_CERTDIR=""
ENV TINI_SUBREAPER=true
#Add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker
-ENV NVIDIA_DRIVER_CAPABILITIES="compute,graphics,video,utility"
+ENV NVIDIA_DRIVER_CAPABILITIES="compute,graphics,video,utility" \
+ VERSION="develop"
# Container setup
RUN \
echo "**** install packages ****" && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
- echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu noble stable" > \
+ echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu jammy stable" > \
/etc/apt/sources.list.d/docker.list && \
- curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
- && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
- sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
- tee /etc/apt/sources.list.d/nvidia-container-toolkit.list && \
- curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
- printf "Package: docker-ce docker-ce-cli docker-ce-rootless-extras\nPin: version 5:28.* \nPin-Priority: 1001" > /etc/apt/preferences.d/docker && \
+ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
+ gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && \
+ curl -s -L https://nvidia.github.io/libnvidia-container/ubuntu22.04/libnvidia-container.list | \
+ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
+ tee /etc/apt/sources.list.d/nvidia-container-toolkit.list && \
+ curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
apt-get install -y --no-install-recommends \
btrfs-progs \
- build-essential \
containerd.io \
docker-ce \
docker-ce-cli \
- docker-compose-plugin \
e2fsprogs \
fuse-overlayfs \
+ g++ \
+ gcc \
iproute2 \
iptables \
+ jq \
lsof \
+ make \
nodejs \
nvidia-container-toolkit \
+ nvidia-docker2 \
openssl \
pigz \
python3 \
sudo \
uidmap \
xfsprogs && \
+ echo "**** compose install ****" && \
+ mkdir -p /usr/local/lib/docker/cli-plugins && \
+ curl -L \
+ https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m) -o \
+ /usr/local/lib/docker/cli-plugins/docker-compose && \
+ chmod +x /usr/local/lib/docker/cli-plugins/docker-compose && \
echo "**** dind setup ****" && \
useradd -U dockremap && \
usermod -G dockremap dockremap && \
@@ -61,8 +71,7 @@ RUN \
echo "**** setup wizard ****" && \
mkdir -p /wizard && \
if [ -z ${KASM_VERSION+x} ]; then \
- KASM_VERSION=$(curl -sX GET 'https://api.github.com/repos/kasmtech/kasm-install-wizard/releases/latest' \
- | jq -r '.name'); \
+ KASM_VERSION=$(curl -sX GET https://kasm-ci.s3.amazonaws.com/dev-version.txt); \
fi && \
echo "${KASM_VERSION}" > /version.txt && \
curl -o \
@@ -83,7 +92,7 @@ RUN \
ALVERSION=$(cat /kasm_release/conf/database/seed_data/default_properties.yaml |awk '/alembic_version/ {print $2}') && \
curl -o \
/tmp/images.tar.gz -L \
- "https://kasm-ci.s3.amazonaws.com/${KASM_VERSION}-images-combined.tar.gz" && \
+ "https://kasm-ci.s3.amazonaws.com/1.16.0-images-combined.tar.gz" && \
tar xf \
/tmp/images.tar.gz -C \
/ && \
@@ -102,9 +111,6 @@ RUN \
cp \
/kasm_release/conf/database/seed_data/default_images_a* \
/wizard/ && \
- useradd -u 70 kasm_db && \
- useradd kasm && \
- printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
apt-get remove -y g++ gcc make && \
apt-get -y autoremove && \
diff --git a/Dockerfile.aarch64 b/Dockerfile.aarch64
index 2ffb5ee..85cc9a9 100644
--- a/Dockerfile.aarch64
+++ b/Dockerfile.aarch64
@@ -1,53 +1,63 @@
# syntax=docker/dockerfile:1
-FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-noble
+FROM ghcr.io/linuxserver/baseimage-ubuntu:arm64v8-jammy
# set version label
ARG BUILD_DATE
ARG KASM_VERSION
ARG VERSION
LABEL build_version="Linuxserver.io version:- ${VERSION} Build-date:- ${BUILD_DATE}"
-LABEL maintainer="thespad"
+LABEL maintainer="thelamer"
# Env
ENV DOCKER_TLS_CERTDIR=""
ENV TINI_SUBREAPER=true
#Add needed nvidia environment variables for https://github.com/NVIDIA/nvidia-docker
-ENV NVIDIA_DRIVER_CAPABILITIES="compute,graphics,video,utility"
+ENV NVIDIA_DRIVER_CAPABILITIES="compute,graphics,video,utility" \
+ VERSION="develop"
# Container setup
RUN \
echo "**** install packages ****" && \
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - && \
- echo "deb [arch=arm64] https://download.docker.com/linux/ubuntu noble stable" > \
+ echo "deb [arch=arm64] https://download.docker.com/linux/ubuntu jammy stable" > \
/etc/apt/sources.list.d/docker.list && \
- curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
- && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
- sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
- tee /etc/apt/sources.list.d/nvidia-container-toolkit.list && \
- curl -fsSL https://deb.nodesource.com/setup_20.x | bash - && \
- printf "Package: docker-ce docker-ce-cli docker-ce-rootless-extras\nPin: version 5:28.* \nPin-Priority: 1001" > /etc/apt/preferences.d/docker && \
+ curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
+ gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg && \
+ curl -s -L https://nvidia.github.io/libnvidia-container/ubuntu22.04/libnvidia-container.list | \
+ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
+ tee /etc/apt/sources.list.d/nvidia-container-toolkit.list && \
+ curl -fsSL https://deb.nodesource.com/setup_18.x | bash - && \
apt-get install -y --no-install-recommends \
btrfs-progs \
- build-essential \
containerd.io \
docker-ce \
docker-ce-cli \
- docker-compose-plugin \
e2fsprogs \
fuse-overlayfs \
+ g++ \
+ gcc \
iproute2 \
iptables \
+ jq \
lsof \
+ make \
nodejs \
nvidia-container-toolkit \
+ nvidia-docker2 \
openssl \
pigz \
python3 \
sudo \
uidmap \
xfsprogs && \
+ echo "**** compose install ****" && \
+ mkdir -p /usr/local/lib/docker/cli-plugins && \
+ curl -L \
+ https://github.com/docker/compose/releases/download/v2.5.0/docker-compose-$(uname -s)-$(uname -m) -o \
+ /usr/local/lib/docker/cli-plugins/docker-compose && \
+ chmod +x /usr/local/lib/docker/cli-plugins/docker-compose && \
echo "**** dind setup ****" && \
useradd -U dockremap && \
usermod -G dockremap dockremap && \
@@ -61,8 +71,7 @@ RUN \
echo "**** setup wizard ****" && \
mkdir -p /wizard && \
if [ -z ${KASM_VERSION+x} ]; then \
- KASM_VERSION=$(curl -sX GET 'https://api.github.com/repos/kasmtech/kasm-install-wizard/releases/latest' \
- | jq -r '.name'); \
+ KASM_VERSION=$(curl -sX GET https://kasm-ci.s3.amazonaws.com/dev-version.txt); \
fi && \
echo "${KASM_VERSION}" > /version.txt && \
curl -o \
@@ -83,7 +92,7 @@ RUN \
ALVERSION=$(cat /kasm_release/conf/database/seed_data/default_properties.yaml |awk '/alembic_version/ {print $2}') && \
curl -o \
/tmp/images.tar.gz -L \
- "https://kasm-ci.s3.amazonaws.com/${KASM_VERSION}-images-combined.tar.gz" && \
+ "https://kasm-ci.s3.amazonaws.com/1.16.0-images-combined.tar.gz" && \
tar xf \
/tmp/images.tar.gz -C \
/ && \
@@ -102,9 +111,6 @@ RUN \
cp \
/kasm_release/conf/database/seed_data/default_images_a* \
/wizard/ && \
- useradd -u 70 kasm_db && \
- useradd kasm && \
- printf "Linuxserver.io version: ${VERSION}\nBuild-date: ${BUILD_DATE}" > /build_version && \
echo "**** cleanup ****" && \
apt-get remove -y g++ gcc make && \
apt-get -y autoremove && \
diff --git a/Jenkinsfile b/Jenkinsfile
index 879ff02..f4203be 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -19,8 +19,6 @@ pipeline {
DOCKERHUB_TOKEN=credentials('docker-hub-ci-pat')
QUAYIO_API_TOKEN=credentials('quayio-repo-api-token')
GIT_SIGNING_KEY=credentials('484fbca6-9a4f-455e-b9e3-97ac98785f5f')
- EXT_USER = 'kasmtech'
- EXT_REPO = 'kasm-install-wizard'
BUILD_VERSION_ARG = 'KASM_VERSION'
LS_USER = 'linuxserver'
LS_REPO = 'docker-kasm'
@@ -35,8 +33,8 @@ pipeline {
CI_PORT='3000'
CI_SSL='true'
CI_DELAY='120'
- CI_DOCKERENV=''
- CI_AUTH=''
+ CI_DOCKERENV='TEST=true'
+ CI_AUTH='user:password'
CI_WEBPATH=''
}
stages {
@@ -78,7 +76,7 @@ pipeline {
script{
env.EXIT_STATUS = ''
env.LS_RELEASE = sh(
- script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:latest 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
+ script: '''docker run --rm quay.io/skopeo/stable:v1 inspect docker://ghcr.io/${LS_USER}/${CONTAINER_NAME}:develop 2>/dev/null | jq -r '.Labels.build_version' | awk '{print $3}' | grep '\\-ls' || : ''',
returnStdout: true).trim()
env.LS_RELEASE_NOTES = sh(
script: '''cat readme-vars.yml | awk -F \\" '/date: "[0-9][0-9].[0-9][0-9].[0-9][0-9]:/ {print $4;exit;}' | sed -E ':a;N;$!ba;s/\\r{0,1}\\n/\\\\n/g' ''',
@@ -95,12 +93,8 @@ pipeline {
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/commit/' + env.GIT_COMMIT
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DOCKERHUB_IMAGE + '/tags/'
env.PULL_REQUEST = env.CHANGE_ID
- env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./.github/workflows/external_trigger_scheduler.yml ./.github/workflows/greetings.yml ./.github/workflows/package_trigger_scheduler.yml ./.github/workflows/call_issue_pr_tracker.yml ./.github/workflows/call_issues_cron.yml ./.github/workflows/permissions.yml ./.github/workflows/external_trigger.yml'
- if ( env.SYFT_IMAGE_TAG == null ) {
- env.SYFT_IMAGE_TAG = 'latest'
- }
+ env.TEMPLATED_FILES = 'Jenkinsfile README.md LICENSE .editorconfig ./.github/CONTRIBUTING.md ./.github/FUNDING.yml ./.github/ISSUE_TEMPLATE/config.yml ./.github/ISSUE_TEMPLATE/issue.bug.yml ./.github/ISSUE_TEMPLATE/issue.feature.yml ./.github/PULL_REQUEST_TEMPLATE.md ./root/etc/s6-overlay/s6-rc.d/init-deprecate/run ./root/etc/s6-overlay/s6-rc.d/init-deprecate/up ./root/etc/s6-overlay/s6-rc.d/init-deprecate/type ./root/etc/s6-overlay/s6-rc.d/init-deprecate/dependencies.d/init-config-end ./root/etc/s6-overlay/s6-rc.d/init-services/dependencies.d/init-deprecate ./root/etc/s6-overlay/s6-rc.d/user/contents.d/init-deprecate'
}
- echo "Using syft image tag ${SYFT_IMAGE_TAG}"
sh '''#! /bin/bash
echo "The default github branch detected as ${GH_DEFAULT_BRANCH}" '''
script{
@@ -111,7 +105,7 @@ pipeline {
script{
env.LS_TAG_NUMBER = sh(
script: '''#! /bin/bash
- tagsha=$(git rev-list -n 1 ${LS_RELEASE} 2>/dev/null)
+ tagsha=$(git rev-list -n 1 develop-${LS_RELEASE} 2>/dev/null)
if [ "${tagsha}" == "${COMMIT_SHA}" ]; then
echo ${LS_RELEASE_NUMBER}
elif [ -z "${GIT_COMMIT}" ]; then
@@ -144,23 +138,16 @@ pipeline {
/* ########################
External Release Tagging
######################## */
- // If this is a stable github release use the latest endpoint from github to determine the ext tag
- stage("Set ENV github_stable"){
- steps{
- script{
- env.EXT_RELEASE = sh(
- script: '''curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. | .tag_name' ''',
- returnStdout: true).trim()
- }
- }
- }
- // If this is a stable or devel github release generate the link for the build message
- stage("Set ENV github_link"){
- steps{
- script{
- env.RELEASE_LINK = 'https://github.com/' + env.EXT_USER + '/' + env.EXT_REPO + '/releases/tag/' + env.EXT_RELEASE
- }
- }
+ // If this is a custom command to determine version use that command
+ stage("Set tag custom bash"){
+ steps{
+ script{
+ env.EXT_RELEASE = sh(
+ script: ''' curl -sX GET https://kasm-ci.s3.amazonaws.com/dev-version.txt ''',
+ returnStdout: true).trim()
+ env.RELEASE_LINK = 'custom_command'
+ }
+ }
}
// Sanitize the release tag and strip illegal docker or github characters
stage("Sanitize tag"){
@@ -196,10 +183,10 @@ pipeline {
}
}
}
- // If this is a master build use live docker endpoints
+ // If this is a develop build use live docker endpoints
stage("Set ENV live build"){
when {
- branch "master"
+ branch "develop"
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -209,22 +196,21 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
- env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
+ env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
} else {
- env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
+ env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
- env.META_TAG = env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
- env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
+ env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
+ env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
- env.CITEST_IMAGETAG = 'latest'
}
}
}
// If this is a dev build use dev docker endpoints
stage("Set ENV dev build"){
when {
- not {branch "master"}
+ not {branch "develop"}
environment name: 'CHANGE_ID', value: ''
}
steps {
@@ -234,16 +220,15 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lsiodev-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lsiodev-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
- env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
+ env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
} else {
- env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
+ env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
- env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
- env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
+ env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA
+ env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.DEV_DOCKERHUB_IMAGE + '/tags/'
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
- env.CITEST_IMAGETAG = 'develop'
}
}
}
@@ -259,17 +244,16 @@ pipeline {
env.GITLABIMAGE = 'registry.gitlab.com/linuxserver.io/' + env.LS_REPO + '/lspipepr-' + env.CONTAINER_NAME
env.QUAYIMAGE = 'quay.io/linuxserver.io/lspipepr-' + env.CONTAINER_NAME
if (env.MULTIARCH == 'true') {
- env.CI_TAGS = 'amd64-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
+ env.CI_TAGS = 'amd64-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST + '|arm64v8-develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
} else {
- env.CI_TAGS = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
+ env.CI_TAGS = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
}
env.VERSION_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
- env.META_TAG = env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
- env.EXT_RELEASE_TAG = 'version-' + env.EXT_RELEASE_CLEAN
+ env.META_TAG = 'develop-' + env.EXT_RELEASE_CLEAN + '-pkg-' + env.PACKAGE_TAG + '-dev-' + env.COMMIT_SHA + '-pr-' + env.PULL_REQUEST
+ env.EXT_RELEASE_TAG = 'develop-version-' + env.EXT_RELEASE_CLEAN
env.CODE_URL = 'https://github.com/' + env.LS_USER + '/' + env.LS_REPO + '/pull/' + env.PULL_REQUEST
env.DOCKERHUB_LINK = 'https://hub.docker.com/r/' + env.PR_DOCKERHUB_IMAGE + '/tags/'
env.BUILDCACHE = 'docker.io/lsiodev/buildcache,registry.gitlab.com/linuxserver.io/docker-jenkins-builder/lsiodev-buildcache,ghcr.io/linuxserver/lsiodev-buildcache,quay.io/linuxserver.io/lsiodev-buildcache'
- env.CITEST_IMAGETAG = 'develop'
}
}
}
@@ -292,7 +276,7 @@ pipeline {
-v ${WORKSPACE}:/mnt \
-e AWS_ACCESS_KEY_ID=\"${S3_KEY}\" \
-e AWS_SECRET_ACCESS_KEY=\"${S3_SECRET}\" \
- ghcr.io/linuxserver/baseimage-alpine:3 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
+ ghcr.io/linuxserver/baseimage-alpine:3.20 s6-envdir -fn -- /var/run/s6/container_environment /bin/bash -c "\
apk add --no-cache python3 && \
python3 -m venv /lsiopy && \
pip install --no-cache-dir -U pip && \
@@ -304,7 +288,7 @@ pipeline {
// Use helper containers to render templated files
stage('Update-Templates') {
when {
- branch "master"
+ branch "develop"
environment name: 'CHANGE_ID', value: ''
expression {
env.CONTAINER_NAME != null
@@ -316,24 +300,24 @@ pipeline {
TEMPDIR=$(mktemp -d)
docker pull ghcr.io/linuxserver/jenkins-builder:latest
# Cloned repo paths for templating:
- # ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch master of ${LS_USER}/${LS_REPO} for running the jenkins builder on
- # ${TEMPDIR}/repo/${LS_REPO}: Cloned branch master of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
+ # ${TEMPDIR}/docker-${CONTAINER_NAME}: Cloned branch develop of ${LS_USER}/${LS_REPO} for running the jenkins builder on
+ # ${TEMPDIR}/repo/${LS_REPO}: Cloned branch develop of ${LS_USER}/${LS_REPO} for commiting various templated file changes and pushing back to Github
# ${TEMPDIR}/docs/docker-documentation: Cloned docs repo for pushing docs updates to Github
# ${TEMPDIR}/unraid/docker-templates: Cloned docker-templates repo to check for logos
# ${TEMPDIR}/unraid/templates: Cloned templates repo for commiting unraid template changes and pushing back to Github
- git clone --branch master --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
+ git clone --branch develop --depth 1 https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/docker-${CONTAINER_NAME}
docker run --rm -v ${TEMPDIR}/docker-${CONTAINER_NAME}:/tmp -e LOCAL=true -e PUID=$(id -u) -e PGID=$(id -g) ghcr.io/linuxserver/jenkins-builder:latest
echo "Starting Stage 1 - Jenkinsfile update"
if [[ "$(md5sum Jenkinsfile | awk '{ print $1 }')" != "$(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile | awk '{ print $1 }')" ]]; then
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
- git checkout -f master
+ git checkout -f develop
cp ${TEMPDIR}/docker-${CONTAINER_NAME}/Jenkinsfile ${TEMPDIR}/repo/${LS_REPO}/
git add Jenkinsfile
git commit -m 'Bot Updating Templated Files'
- git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
- git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
+ git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
+ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating Jenkinsfile and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
@@ -343,6 +327,7 @@ pipeline {
fi
echo "Starting Stage 2 - Delete old templates"
OLD_TEMPLATES=".github/ISSUE_TEMPLATE.md .github/ISSUE_TEMPLATE/issue.bug.md .github/ISSUE_TEMPLATE/issue.feature.md .github/workflows/call_invalid_helper.yml .github/workflows/stale.yml .github/workflows/package_trigger.yml"
+ OLD_TEMPLATES="${OLD_TEMPLATES} $(echo .github/workflows/{external_trigger,external_trigger_scheduler,package_trigger_scheduler,call_issue_pr_tracker,call_issues_cron}.yml)"
for i in ${OLD_TEMPLATES}; do
if [[ -f "${i}" ]]; then
TEMPLATES_TO_DELETE="${i} ${TEMPLATES_TO_DELETE}"
@@ -352,13 +337,13 @@ pipeline {
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
- git checkout -f master
+ git checkout -f develop
for i in ${TEMPLATES_TO_DELETE}; do
git rm "${i}"
done
git commit -m 'Bot Updating Templated Files'
- git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
- git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
+ git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
+ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Deleting old/deprecated templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
@@ -366,35 +351,6 @@ pipeline {
else
echo "No templates to delete"
fi
- echo "Starting Stage 2.5 - Update init diagram"
- if ! grep -q 'init_diagram:' readme-vars.yml; then
- echo "Adding the key 'init_diagram' to readme-vars.yml"
- sed -i '\\|^#.*changelog.*$|d' readme-vars.yml
- sed -i 's|^changelogs:|# init diagram\\ninit_diagram:\\n\\n# changelog\\nchangelogs:|' readme-vars.yml
- fi
- mkdir -p ${TEMPDIR}/d2
- docker run --rm -v ${TEMPDIR}/d2:/output -e PUID=$(id -u) -e PGID=$(id -g) -e RAW="true" ghcr.io/linuxserver/d2-builder:latest ${CONTAINER_NAME}:latest
- ls -al ${TEMPDIR}/d2
- yq -ei ".init_diagram |= load_str(\\"${TEMPDIR}/d2/${CONTAINER_NAME}-latest.d2\\")" readme-vars.yml
- if [[ $(md5sum readme-vars.yml | cut -c1-8) != $(md5sum ${TEMPDIR}/docker-${CONTAINER_NAME}/readme-vars.yml | cut -c1-8) ]]; then
- echo "'init_diagram' has been updated. Updating repo and exiting build, new one will trigger based on commit."
- mkdir -p ${TEMPDIR}/repo
- git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
- cd ${TEMPDIR}/repo/${LS_REPO}
- git checkout -f master
- cp ${WORKSPACE}/readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/readme-vars.yml
- git add readme-vars.yml
- git commit -m 'Bot Updating Templated Files'
- git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
- git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
- echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
- echo "Updating templates and exiting build, new one will trigger based on commit"
- rm -Rf ${TEMPDIR}
- exit 0
- else
- echo "false" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
- echo "Init diagram is unchanged"
- fi
echo "Starting Stage 3 - Update templates"
CURRENTHASH=$(grep -hs ^ ${TEMPLATED_FILES} | md5sum | cut -c1-8)
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
@@ -403,10 +359,14 @@ pipeline {
mkdir -p ${TEMPDIR}/repo
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
cd ${TEMPDIR}/repo/${LS_REPO}
- git checkout -f master
+ git checkout -f develop
cd ${TEMPDIR}/docker-${CONTAINER_NAME}
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/workflows
mkdir -p ${TEMPDIR}/repo/${LS_REPO}/.github/ISSUE_TEMPLATE
+ mkdir -p \
+ ${TEMPDIR}/repo/${LS_REPO}/root/etc/s6-overlay/s6-rc.d/init-deprecate/dependencies.d \
+ ${TEMPDIR}/repo/${LS_REPO}/root/etc/s6-overlay/s6-rc.d/init-services/dependencies.d \
+ ${TEMPDIR}/repo/${LS_REPO}/root/etc/s6-overlay/s6-rc.d/user/contents.d
cp --parents ${TEMPLATED_FILES} ${TEMPDIR}/repo/${LS_REPO}/ || :
cp --parents readme-vars.yml ${TEMPDIR}/repo/${LS_REPO}/ || :
cd ${TEMPDIR}/repo/${LS_REPO}/
@@ -416,8 +376,8 @@ pipeline {
fi
git add readme-vars.yml ${TEMPLATED_FILES}
git commit -m 'Bot Updating Templated Files'
- git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
- git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
+ git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
+ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/${COMMIT_SHA}-${BUILD_NUMBER}
echo "Updating templates and exiting build, new one will trigger based on commit"
rm -Rf ${TEMPDIR}
@@ -436,6 +396,19 @@ pipeline {
git add docs/images/docker-${CONTAINER_NAME}.md
echo "Updating docs repo"
git commit -m 'Bot Updating Documentation'
+ git mv docs/images/docker-${CONTAINER_NAME}.md docs/deprecated_images/docker-${CONTAINER_NAME}.md || :
+ if ! command -v yq || ! yq --help | grep -q 'mikefarah'; then
+ YQ_DL_VERSION=$(curl -fsX GET "https://api.github.com/repos/mikefarah/yq/releases/latest" | jq -r '. | .tag_name')
+ echo "No yq found, retrieving from upstream release version ${YQ_DL_VERSION}"
+ curl -fo /usr/local/bin/yq -L "https://github.com/mikefarah/yq/releases/download/${YQ_DL_VERSION}/yq_linux_amd64"
+ chmod +x /usr/local/bin/yq
+ fi
+ if ! yq -e '.plugins.[].redirects.redirect_maps.[] | select(. == "deprecated_images/docker-" + env(CONTAINER_NAME) + ".md")' mkdocs.yml >/dev/null 2>&1; then
+ echo "Updating mkdocs.yml with deprecation info"
+ yq -i '(.plugins.[] | select(.redirects)).redirects.redirect_maps |= . + {"images/docker-" + env(CONTAINER_NAME) + ".md" : "deprecated_images/docker-" + env(CONTAINER_NAME) + ".md"}' mkdocs.yml
+ git add mkdocs.yml
+ fi
+ git commit -m 'Bot Moving Deprecated Documentation' || :
git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} --rebase
git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/linuxserver/docker-documentation.git ${GH_DOCS_DEFAULT_BRANCH} || \
(MAXWAIT="10" && echo "Push to docs failed, trying again in ${MAXWAIT} seconds" && \
@@ -484,7 +457,7 @@ pipeline {
// Exit the build if the Templated files were just updated
stage('Template-exit') {
when {
- branch "master"
+ branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'FILES_UPDATED', value: 'true'
expression {
@@ -497,10 +470,10 @@ pipeline {
}
}
}
- // If this is a master build check the S6 service file perms
+ // If this is a develop build check the S6 service file perms
stage("Check S6 Service file Permissions"){
when {
- branch "master"
+ branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
@@ -567,7 +540,7 @@ pipeline {
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Kasm\" \
- --label \"org.opencontainers.image.description=[Kasm](https://www.kasmweb.com/?utm_campaign=LinuxServer&utm_source=listing) Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services. Kasm uses devops-enabled Containerized Desktop Infrastructure (CDI) to create on-demand, disposable, docker containers that are accessible via web browser. Example use-cases include Remote Browser Isolation (RBI), Data Loss Prevention (DLP), Desktop as a Service (DaaS), Secure Remote Access Services (RAS), and Open Source Intelligence (OSINT) collections. The rendering of the graphical-based containers is powered by the open-source project [KasmVNC](https://www.kasmweb.com/kasmvnc.html?utm_campaign=LinuxServer&utm_source=kasmvnc). \" \
+ --label \"org.opencontainers.image.description=kasm image by linuxserver.io\" \
--no-cache --pull -t ${IMAGE}:${META_TAG} --platform=linux/amd64 \
--provenance=true --sbom=true --builder=container --load \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
@@ -593,16 +566,13 @@ pipeline {
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
-
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
- declare -A pids
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
- pids[$!]="$i"
done
- for p in "${!pids[@]}"; do
- wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
+ for p in $(jobs -p); do
+ wait "$p" || { echo "job $p failed" >&2; exit 1; }
done
fi
'''
@@ -636,7 +606,7 @@ pipeline {
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Kasm\" \
- --label \"org.opencontainers.image.description=[Kasm](https://www.kasmweb.com/?utm_campaign=LinuxServer&utm_source=listing) Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services. Kasm uses devops-enabled Containerized Desktop Infrastructure (CDI) to create on-demand, disposable, docker containers that are accessible via web browser. Example use-cases include Remote Browser Isolation (RBI), Data Loss Prevention (DLP), Desktop as a Service (DaaS), Secure Remote Access Services (RAS), and Open Source Intelligence (OSINT) collections. The rendering of the graphical-based containers is powered by the open-source project [KasmVNC](https://www.kasmweb.com/kasmvnc.html?utm_campaign=LinuxServer&utm_source=kasmvnc). \" \
+ --label \"org.opencontainers.image.description=kasm image by linuxserver.io\" \
--no-cache --pull -t ${IMAGE}:amd64-${META_TAG} --platform=linux/amd64 \
--provenance=true --sbom=true --builder=container --load \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
@@ -662,16 +632,13 @@ pipeline {
echo $GITHUB_TOKEN | docker login ghcr.io -u LinuxServer-CI --password-stdin
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
-
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
- declare -A pids
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker push ${i}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} &
- pids[$!]="$i"
done
- for p in "${!pids[@]}"; do
- wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
+ for p in $(jobs -p); do
+ wait "$p" || { echo "job $p failed" >&2; exit 1; }
done
fi
'''
@@ -698,7 +665,7 @@ pipeline {
--label \"org.opencontainers.image.licenses=GPL-3.0-only\" \
--label \"org.opencontainers.image.ref.name=${COMMIT_SHA}\" \
--label \"org.opencontainers.image.title=Kasm\" \
- --label \"org.opencontainers.image.description=[Kasm](https://www.kasmweb.com/?utm_campaign=LinuxServer&utm_source=listing) Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services. Kasm uses devops-enabled Containerized Desktop Infrastructure (CDI) to create on-demand, disposable, docker containers that are accessible via web browser. Example use-cases include Remote Browser Isolation (RBI), Data Loss Prevention (DLP), Desktop as a Service (DaaS), Secure Remote Access Services (RAS), and Open Source Intelligence (OSINT) collections. The rendering of the graphical-based containers is powered by the open-source project [KasmVNC](https://www.kasmweb.com/kasmvnc.html?utm_campaign=LinuxServer&utm_source=kasmvnc). \" \
+ --label \"org.opencontainers.image.description=kasm image by linuxserver.io\" \
--no-cache --pull -f Dockerfile.aarch64 -t ${IMAGE}:arm64v8-${META_TAG} --platform=linux/arm64 \
--provenance=true --sbom=true --builder=container --load \
--build-arg ${BUILD_VERSION_ARG}=${EXT_RELEASE} --build-arg VERSION=\"${VERSION_TAG}\" --build-arg BUILD_DATE=${GITHUB_DATE} ."
@@ -725,14 +692,12 @@ pipeline {
echo $GITLAB_TOKEN | docker login registry.gitlab.com -u LinuxServer.io --password-stdin
echo $QUAYPASS | docker login quay.io -u $QUAYUSER --password-stdin
if [[ "${PACKAGE_CHECK}" != "true" ]]; then
- declare -A pids
IFS=',' read -ra CACHE <<< "$BUILDCACHE"
for i in "${CACHE[@]}"; do
docker push ${i}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} &
- pids[$!]="$i"
done
- for p in "${!pids[@]}"; do
- wait "$p" || { [[ "${pids[$p]}" != *"quay.io"* ]] && exit 1; }
+ for p in $(jobs -p); do
+ wait "$p" || { echo "job $p failed" >&2; exit 1; }
done
fi
'''
@@ -753,7 +718,7 @@ pipeline {
// Take the image we just built and dump package versions for comparison
stage('Update-packages') {
when {
- branch "master"
+ branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
@@ -770,20 +735,20 @@ pipeline {
docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-v ${TEMPDIR}:/tmp \
- ghcr.io/anchore/syft:${SYFT_IMAGE_TAG} \
+ ghcr.io/anchore/syft:latest \
${LOCAL_CONTAINER} -o table=/tmp/package_versions.txt
NEW_PACKAGE_TAG=$(md5sum ${TEMPDIR}/package_versions.txt | cut -c1-8 )
echo "Package tag sha from current packages in buit container is ${NEW_PACKAGE_TAG} comparing to old ${PACKAGE_TAG} from github"
if [ "${NEW_PACKAGE_TAG}" != "${PACKAGE_TAG}" ]; then
git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/${LS_REPO}
- git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f master
+ git --git-dir ${TEMPDIR}/${LS_REPO}/.git checkout -f develop
cp ${TEMPDIR}/package_versions.txt ${TEMPDIR}/${LS_REPO}/
cd ${TEMPDIR}/${LS_REPO}/
wait
git add package_versions.txt
git commit -m 'Bot Updating Package Versions'
- git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
- git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git master
+ git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
+ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
echo "true" > /tmp/packages-${COMMIT_SHA}-${BUILD_NUMBER}
echo "Package tag updated, stopping build process"
else
@@ -801,7 +766,7 @@ pipeline {
// Exit the build if the package file was just updated
stage('PACKAGE-exit') {
when {
- branch "master"
+ branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'true'
environment name: 'EXIT_STATUS', value: ''
@@ -815,7 +780,7 @@ pipeline {
// Exit the build if this is just a package check and there are no changes to push
stage('PACKAGECHECK-exit') {
when {
- branch "master"
+ branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'PACKAGE_UPDATED', value: 'false'
environment name: 'EXIT_STATUS', value: ''
@@ -857,7 +822,7 @@ pipeline {
CI_DOCKERENV="LSIO_FIRST_PARTY=true"
fi
fi
- docker pull ghcr.io/linuxserver/ci:${CITEST_IMAGETAG}
+ docker pull ghcr.io/linuxserver/ci:latest
if [ "${MULTIARCH}" == "true" ]; then
docker pull ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} --platform=arm64
docker tag ghcr.io/linuxserver/lsiodev-buildcache:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} ${IMAGE}:arm64v8-${META_TAG}
@@ -869,7 +834,7 @@ pipeline {
-e DOCKER_LOGS_TIMEOUT=\"${CI_DELAY}\" \
-e TAGS=\"${CI_TAGS}\" \
-e META_TAG=\"${META_TAG}\" \
- -e RELEASE_TAG=\"latest\" \
+ -e RELEASE_TAG=\"develop\" \
-e PORT=\"${CI_PORT}\" \
-e SSL=\"${CI_SSL}\" \
-e BASE=\"${DIST_IMAGE}\" \
@@ -880,10 +845,7 @@ pipeline {
-e WEB_AUTH=\"${CI_AUTH}\" \
-e WEB_PATH=\"${CI_WEBPATH}\" \
-e NODE_NAME=\"${NODE_NAME}\" \
- -e SYFT_IMAGE_TAG=\"${CI_SYFT_IMAGE_TAG:-${SYFT_IMAGE_TAG}}\" \
- -e COMMIT_SHA=\"${COMMIT_SHA}\" \
- -e BUILD_NUMBER=\"${BUILD_NUMBER}\" \
- -t ghcr.io/linuxserver/ci:${CITEST_IMAGETAG} \
+ -t ghcr.io/linuxserver/ci:latest \
python3 test_build.py'''
}
}
@@ -909,12 +871,11 @@ pipeline {
CACHEIMAGE=${i}
fi
done
- docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:latest -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
- { if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
+ docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${META_TAG} -t ${PUSHIMAGE}:develop -t ${PUSHIMAGE}:${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
if [ -n "${SEMVER}" ]; then
- docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
- { if [[ "${PUSHIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
+ docker buildx imagetools create --prefer-index=false -t ${PUSHIMAGE}:${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
fi
+ docker buildx imagetools create -t ${PUSHIMAGE}:develop ghcr.io/linuxserver/jenkins-builder:empty || true
done
'''
}
@@ -938,27 +899,20 @@ pipeline {
CACHEIMAGE=${i}
fi
done
- docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-latest -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
- { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
- docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-latest -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \
- { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
+ docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${META_TAG} -t ${MANIFESTIMAGE}:amd64-develop -t ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
+ docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${META_TAG} -t ${MANIFESTIMAGE}:arm64v8-develop -t ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
if [ -n "${SEMVER}" ]; then
- docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER} || \
- { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
- docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER} || \
- { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
+ docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:amd64-${SEMVER} ${CACHEIMAGE}:amd64-${COMMIT_SHA}-${BUILD_NUMBER}
+ docker buildx imagetools create --prefer-index=false -t ${MANIFESTIMAGE}:arm64v8-${SEMVER} ${CACHEIMAGE}:arm64v8-${COMMIT_SHA}-${BUILD_NUMBER}
fi
done
for MANIFESTIMAGE in "${IMAGE}" "${GITLABIMAGE}" "${GITHUBIMAGE}" "${QUAYIMAGE}"; do
- docker buildx imagetools create -t ${MANIFESTIMAGE}:latest ${MANIFESTIMAGE}:amd64-latest ${MANIFESTIMAGE}:arm64v8-latest || \
- { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
- docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG} || \
- { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
- docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG} || \
- { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
+ docker buildx imagetools create -t ${MANIFESTIMAGE}:develop -t ${MANIFESTIMAGE}:amd64-develop -t ${MANIFESTIMAGE}:arm64v8-develop ghcr.io/linuxserver/jenkins-builder:empty || true
+ docker buildx imagetools create -t ${MANIFESTIMAGE}:${META_TAG} ${MANIFESTIMAGE}:amd64-${META_TAG} ${MANIFESTIMAGE}:arm64v8-${META_TAG}
+
+ docker buildx imagetools create -t ${MANIFESTIMAGE}:${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:amd64-${EXT_RELEASE_TAG} ${MANIFESTIMAGE}:arm64v8-${EXT_RELEASE_TAG}
if [ -n "${SEMVER}" ]; then
- docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER} || \
- { if [[ "${MANIFESTIMAGE}" != "${QUAYIMAGE}" ]]; then exit 1; fi; }
+ docker buildx imagetools create -t ${MANIFESTIMAGE}:${SEMVER} ${MANIFESTIMAGE}:amd64-${SEMVER} ${MANIFESTIMAGE}:arm64v8-${SEMVER}
fi
done
'''
@@ -968,7 +922,7 @@ pipeline {
// If this is a public release tag it in the LS Github
stage('Github-Tag-Push-Release') {
when {
- branch "master"
+ branch "develop"
expression {
env.LS_RELEASE != env.EXT_RELEASE_CLEAN + '-ls' + env.LS_TAG_NUMBER
}
@@ -976,54 +930,36 @@ pipeline {
environment name: 'EXIT_STATUS', value: ''
}
steps {
+ echo "Pushing New tag for current commit ${META_TAG}"
+ sh '''curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
+ -d '{"tag":"'${META_TAG}'",\
+ "object": "'${COMMIT_SHA}'",\
+ "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to develop",\
+ "type": "commit",\
+ "tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}' '''
+ echo "Pushing New release for Tag"
sh '''#! /bin/bash
- echo "Auto-generating release notes"
- if [ "$(git tag --points-at HEAD)" != "" ]; then
- echo "Existing tag points to current commit, suggesting no new LS changes"
- AUTO_RELEASE_NOTES="No changes"
- else
- AUTO_RELEASE_NOTES=$(curl -fsL -H "Authorization: token ${GITHUB_TOKEN}" -H "Accept: application/vnd.github+json" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases/generate-notes \
- -d '{"tag_name":"'${META_TAG}'",\
- "target_commitish": "master"}' \
- | jq -r '.body' | sed 's|## What.s Changed||')
- fi
- echo "Pushing New tag for current commit ${META_TAG}"
- curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/git/tags \
- -d '{"tag":"'${META_TAG}'",\
- "object": "'${COMMIT_SHA}'",\
- "message": "Tagging Release '${EXT_RELEASE_CLEAN}'-ls'${LS_TAG_NUMBER}' to master",\
- "type": "commit",\
- "tagger": {"name": "LinuxServer-CI","email": "ci@linuxserver.io","date": "'${GITHUB_DATE}'"}}'
- echo "Pushing New release for Tag"
- curl -H "Authorization: token ${GITHUB_TOKEN}" -s https://api.github.com/repos/${EXT_USER}/${EXT_REPO}/releases/latest | jq -r '. |.body' > releasebody.json
- jq -n \
- --arg tag_name "$META_TAG" \
- --arg target_commitish "master" \
- --arg ci_url "${CI_URL:-N/A}" \
- --arg ls_notes "$AUTO_RELEASE_NOTES" \
- --arg remote_notes "$(cat releasebody.json)" \
- '{
- "tag_name": $tag_name,
- "target_commitish": $target_commitish,
- "name": $tag_name,
- "body": ("**CI Report:**\\n\\n" + $ci_url + "\\n\\n**LinuxServer Changes:**\\n\\n" + $ls_notes + "\\n\\n**Remote Changes:**\\n\\n" + $remote_notes),
- "draft": false,
- "prerelease": false }' > releasebody.json.done
- curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done
- '''
+ echo "Updating to ${EXT_RELEASE_CLEAN}" > releasebody.json
+ echo '{"tag_name":"'${META_TAG}'",\
+ "target_commitish": "develop",\
+ "name": "'${META_TAG}'",\
+ "body": "**CI Report:**\\n\\n'${CI_URL:-N/A}'\\n\\n**LinuxServer Changes:**\\n\\n'${LS_RELEASE_NOTES}'\\n\\n**Remote Changes:**\\n\\n' > start
+ printf '","draft": false,"prerelease": true}' >> releasebody.json
+ paste -d'\\0' start releasebody.json > releasebody.json.done
+ curl -H "Authorization: token ${GITHUB_TOKEN}" -X POST https://api.github.com/repos/${LS_USER}/${LS_REPO}/releases -d @releasebody.json.done'''
}
}
// Add protection to the release branch
stage('Github-Release-Branch-Protection') {
when {
- branch "master"
+ branch "develop"
environment name: 'CHANGE_ID', value: ''
environment name: 'EXIT_STATUS', value: ''
}
steps {
- echo "Setting up protection for release branch master"
+ echo "Setting up protection for release branch develop"
sh '''#! /bin/bash
- curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/master/protection \
+ curl -H "Authorization: token ${GITHUB_TOKEN}" -X PUT https://api.github.com/repos/${LS_USER}/${LS_REPO}/branches/develop/protection \
-d $(jq -c . << EOF
{
"required_status_checks": null,
@@ -1126,6 +1062,26 @@ EOF
}
}
+ stage('Deprecate/Disable Future Builds') {
+ when {
+ branch "develop"
+ environment name: 'CHANGE_ID', value: ''
+ environment name: 'EXIT_STATUS', value: ''
+ }
+ steps {
+ sh '''#! /bin/bash
+ TEMPDIR=$(mktemp -d)
+ mkdir -p ${TEMPDIR}/repo
+ git clone https://github.com/${LS_USER}/${LS_REPO}.git ${TEMPDIR}/repo/${LS_REPO}
+ cd ${TEMPDIR}/repo/${LS_REPO}
+ git checkout -f develop
+ git rm Jenkinsfile
+ git commit -m 'Disabling future builds'
+ git pull https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
+ git push https://LinuxServer-CI:${GITHUB_TOKEN}@github.com/${LS_USER}/${LS_REPO}.git develop
+ rm -Rf ${TEMPDIR}'''
+ }
+ }
}
/* ######################
Send status to Discord
diff --git a/README.md b/README.md
index 5982b44..5da33ad 100644
--- a/README.md
+++ b/README.md
@@ -1,329 +1,7 @@
-
-[](https://linuxserver.io)
+
+# DEPRECATION NOTICE
+This image is deprecated. We will not offer support for this image and it will not be updated.
-[](https://blog.linuxserver.io "all the things you can do with our containers including How-To guides, opinions and much more!")
-[](https://linuxserver.io/discord "realtime support / chat with the community and the team.")
-[](https://discourse.linuxserver.io "post on our community forum.")
-[](https://github.com/linuxserver "view the source for all of our repositories.")
-[](https://opencollective.com/linuxserver "please consider helping us by either donating or contributing to our budget")
-The [LinuxServer.io](https://linuxserver.io) team brings you another container release featuring:
-
-* regular and timely application updates
-* easy user mappings (PGID, PUID)
-* custom base image with s6 overlay
-* weekly base OS updates with common layers across the entire LinuxServer.io ecosystem to minimise space usage, down time and bandwidth
-* regular security updates
-
-Find us at:
-
-* [Blog](https://blog.linuxserver.io) - all the things you can do with our containers including How-To guides, opinions and much more!
-* [Discord](https://linuxserver.io/discord) - realtime support / chat with the community and the team.
-* [Discourse](https://discourse.linuxserver.io) - post on our community forum.
-* [GitHub](https://github.com/linuxserver) - view the source for all of our repositories.
-* [Open Collective](https://opencollective.com/linuxserver) - please consider helping us by either donating or contributing to our budget
-
-# [linuxserver/kasm](https://github.com/linuxserver/docker-kasm)
-
-[](https://scarf.sh)
-[](https://github.com/linuxserver/docker-kasm)
-[](https://github.com/linuxserver/docker-kasm/releases)
-[](https://github.com/linuxserver/docker-kasm/packages)
-[](https://gitlab.com/linuxserver.io/docker-kasm/container_registry)
-[](https://quay.io/repository/linuxserver.io/kasm)
-[](https://hub.docker.com/r/linuxserver/kasm)
-[](https://hub.docker.com/r/linuxserver/kasm)
-[](https://ci.linuxserver.io/job/Docker-Pipeline-Builders/job/docker-kasm/job/master/)
-[](https://ci-tests.linuxserver.io/linuxserver/kasm/latest/index.html)
-
-[Kasm](https://www.kasmweb.com/?utm_campaign=LinuxServer&utm_source=listing) Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services. Kasm uses devops-enabled Containerized Desktop Infrastructure (CDI) to create on-demand, disposable, docker containers that are accessible via web browser. Example use-cases include Remote Browser Isolation (RBI), Data Loss Prevention (DLP), Desktop as a Service (DaaS), Secure Remote Access Services (RAS), and Open Source Intelligence (OSINT) collections.
-
-The rendering of the graphical-based containers is powered by the open-source project [KasmVNC](https://www.kasmweb.com/kasmvnc.html?utm_campaign=LinuxServer&utm_source=kasmvnc).
-
-[](https://www.kasmweb.com/?utm_campaign=LinuxServer&utm_source=listing)
-
-## Supported Architectures
-
-We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
-
-Simply pulling `lscr.io/linuxserver/kasm:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
-
-The architectures supported by this image are:
-
-| Architecture | Available | Tag |
-| :----: | :----: | ---- |
-| x86-64 | ✅ | amd64-\ |
-| arm64 | ✅ | arm64v8-\ |
-
-## Application Setup
-
-This container uses [Docker in Docker](https://www.docker.com/blog/docker-can-now-run-within-docker/) and requires being run in `privileged` mode. This container also requires an initial setup that runs on port 3000.
-
-**Unlike other containers the web interface port (default 443) needs to be set for the env variable `KASM_PORT` and both the inside and outside port IE for 4443 `KASM_PORT=4443` `-p 4443:4443`**
-
-**Unraid users due to the DinD storage layer `/opt/` should be mounted directly to a disk IE `/mnt/disk1/appdata/path` or optimally with a cache disk at `/mnt/cache/appdata/path`**
-
-Access the installation wizard at https://`your ip`:3000 and follow the instructions there. Once setup is complete access https://`your ip`:443 and login with the credentials you entered during setup. The default users are:
-
-* admin@kasm.local
-* user@kasm.local
-
-Currently Synology systems are not supported due to them blocking CPU scheduling in their Kernel.
-
-### Updating KASM
-
-In order to update kasm, first make sure you are using the latest docker image, and then perform the in app update in the admin panel. Docker image update and recreation of container alone won't update kasm.
-
-### GPU Support
-
-During installation an option will be presented to force all Workspace containers to mount in and use a specific GPU. If using an NVIDIA GPU you will need to pass `-e NVIDIA_VISIBLE_DEVICES=all` or `--gpus all` and have the [NVIDIA Container Runtime](https://github.com/NVIDIA/nvidia-container-runtime) installed on the host. Also if using NVIDIA, Kasm Workspaces has [native NVIDIA support](https://www.kasmweb.com/docs/latest/how_to/gpu.html) so you can optionally opt to simply use that instead of he manual override during installation.
-
-### Gamepad support
-
-In order to properly create virtual Gamepads you will need to mount from your host `/dev/input` and `/run/udev/data`. Please see [HERE](https://www.kasmweb.com/docs/develop/guide/gamepad_passthrough.html) for instructions on enabling gamepad support.
-
-### Persistant profiles
-
-In order to use persistant profiles in Workspaces you will need to mount in a folder to use from your host to `/profiles`. From there when configuring a workspace you can set the `Persistant Profile Path` to IE `/profiles/ubuntu-focal/{username}/`, more infomation can be found [HERE](https://www.kasmweb.com/docs/latest/how_to/persistent_profiles.html).
-
-### Reverse proxy
-
-A sample for [SWAG](https://github.com/linuxserver/docker-swag) can be found [here](https://raw.githubusercontent.com/linuxserver/reverse-proxy-confs/master/kasm.subdomain.conf.sample). Post installation you will need to modify the "Proxy Port" setting under the default zone to 0 as outlined [here](https://www.kasmweb.com/docs/latest/how_to/reverse_proxy.html#update-zones) to launch Workspaces sessions.
-
-### Strict reverse proxies
-
-This image uses a self-signed certificate by default. This naturally means the scheme is `https`.
-If you are using a reverse proxy which validates certificates, you need to [disable this check for the container](https://docs.linuxserver.io/faq#strict-proxy).
-
-## Usage
-
-To help you get started creating a container from this image you can either use docker-compose or the docker cli.
-
->[!NOTE]
->Unless a parameter is flaged as 'optional', it is *mandatory* and a value must be provided.
-
-### docker-compose (recommended, [click here for more info](https://docs.linuxserver.io/general/docker-compose))
-
-```yaml
----
-services:
- kasm:
- image: lscr.io/linuxserver/kasm:latest
- container_name: kasm
- privileged: true
- security_opt:
- - apparmor:rootlesskit #optional
- environment:
- - KASM_PORT=443
- - DOCKER_HUB_USERNAME=USER #optional
- - DOCKER_HUB_PASSWORD=PASS #optional
- - DOCKER_MTU=1500 #optional
- volumes:
- - /path/to/kasm/data:/opt
- - /path/to/kasm/profiles:/profiles #optional
- - /dev/input:/dev/input #optional
- - /run/udev/data:/run/udev/data #optional
- ports:
- - 3000:3000
- - 443:443
- restart: unless-stopped
-```
-
-### docker cli ([click here for more info](https://docs.docker.com/engine/reference/commandline/cli/))
-
-```bash
-docker run -d \
- --name=kasm \
- --privileged \
- --security-opt apparmor=rootlesskit `#optional` \
- -e KASM_PORT=443 \
- -e DOCKER_HUB_USERNAME=USER `#optional` \
- -e DOCKER_HUB_PASSWORD=PASS `#optional` \
- -e DOCKER_MTU=1500 `#optional` \
- -p 3000:3000 \
- -p 443:443 \
- -v /path/to/kasm/data:/opt \
- -v /path/to/kasm/profiles:/profiles `#optional` \
- -v /dev/input:/dev/input `#optional` \
- -v /run/udev/data:/run/udev/data `#optional` \
- --restart unless-stopped \
- lscr.io/linuxserver/kasm:latest
-```
-
-## Parameters
-
-Containers are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate `:` respectively. For example, `-p 8080:80` would expose port `80` from inside the container to be accessible from the host's IP on port `8080` outside the container.
-
-| Parameter | Function |
-| :----: | --- |
-| `-p 3000:3000` | Kasm Installation wizard. (https) |
-| `-p 443:443` | Kasm Workspaces interface. (https) |
-| `-e KASM_PORT=443` | Specify the port you bind to the outside for Kasm Workspaces. |
-| `-e DOCKER_HUB_USERNAME=USER` | Optionally specify a DockerHub Username to pull private images. |
-| `-e DOCKER_HUB_PASSWORD=PASS` | Optionally specify a DockerHub password to pull private images. |
-| `-e DOCKER_MTU=1500` | Optionally specify the mtu options passed to dockerd. |
-| `-v /opt` | Docker and installation storage. |
-| `-v /profiles` | Optionally specify a path for persistent profile storage. |
-| `-v /dev/input` | Optional for gamepad support. |
-| `-v /run/udev/data` | Optional for gamepad support. |
-| `--security-opt apparmor=rootlesskit` | Some hosts require this on top of privileged for namespacing to work properly inside the DinD layer. |
-
-## Environment variables from files (Docker secrets)
-
-You can set any environment variable from a file by using a special prepend `FILE__`.
-
-As an example:
-
-```bash
--e FILE__MYVAR=/run/secrets/mysecretvariable
-```
-
-Will set the environment variable `MYVAR` based on the contents of the `/run/secrets/mysecretvariable` file.
-
-## Umask for running applications
-
-For all of our images we provide the ability to override the default umask settings for services started within the containers using the optional `-e UMASK=022` setting.
-Keep in mind umask is not chmod it subtracts from permissions based on it's value it does not add. Please read up [here](https://en.wikipedia.org/wiki/Umask) before asking for support.
-
-## Docker Mods
-
-[](https://mods.linuxserver.io/?mod=kasm "view available mods for this container.") [](https://mods.linuxserver.io/?mod=universal "view available universal mods.")
-
-We publish various [Docker Mods](https://github.com/linuxserver/docker-mods) to enable additional functionality within the containers. The list of Mods available for this image (if any) as well as universal mods that can be applied to any one of our images can be accessed via the dynamic badges above.
-
-## Support Info
-
-* Shell access whilst the container is running:
-
- ```bash
- docker exec -it kasm /bin/bash
- ```
-
-* To monitor the logs of the container in realtime:
-
- ```bash
- docker logs -f kasm
- ```
-
-* Container version number:
-
- ```bash
- docker inspect -f '{{ index .Config.Labels "build_version" }}' kasm
- ```
-
-* Image version number:
-
- ```bash
- docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/kasm:latest
- ```
-
-## Updating Info
-
-Most of our images are static, versioned, and require an image update and container recreation to update the app inside. With some exceptions (noted in the relevant readme.md), we do not recommend or support updating apps inside the container. Please consult the [Application Setup](#application-setup) section above to see if it is recommended for the image.
-
-Below are the instructions for updating containers:
-
-### Via Docker Compose
-
-* Update images:
- * All images:
-
- ```bash
- docker-compose pull
- ```
-
- * Single image:
-
- ```bash
- docker-compose pull kasm
- ```
-
-* Update containers:
- * All containers:
-
- ```bash
- docker-compose up -d
- ```
-
- * Single container:
-
- ```bash
- docker-compose up -d kasm
- ```
-
-* You can also remove the old dangling images:
-
- ```bash
- docker image prune
- ```
-
-### Via Docker Run
-
-* Update the image:
-
- ```bash
- docker pull lscr.io/linuxserver/kasm:latest
- ```
-
-* Stop the running container:
-
- ```bash
- docker stop kasm
- ```
-
-* Delete the container:
-
- ```bash
- docker rm kasm
- ```
-
-* Recreate a new container with the same docker run parameters as instructed above (if mapped correctly to a host folder, your `/config` folder and settings will be preserved)
-* You can also remove the old dangling images:
-
- ```bash
- docker image prune
- ```
-
-### Image Update Notifications - Diun (Docker Image Update Notifier)
-
->[!TIP]
->We recommend [Diun](https://crazymax.dev/diun/) for update notifications. Other tools that automatically update containers unattended are not recommended or supported.
-
-## Building locally
-
-If you want to make local modifications to these images for development purposes or just to customize the logic:
-
-```bash
-git clone https://github.com/linuxserver/docker-kasm.git
-cd docker-kasm
-docker build \
- --no-cache \
- --pull \
- -t lscr.io/linuxserver/kasm:latest .
-```
-
-The ARM variants can be built on x86_64 hardware and vice versa using `lscr.io/linuxserver/qemu-static`
-
-```bash
-docker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
-```
-
-Once registered you can define the dockerfile to use with `-f Dockerfile.aarch64`.
-
-## Versions
-
-* **13.11.25:** - Pin docker to v28 to avoid API deprecation issues.
-* **22.10.25:** - Update for 1.18.0 release.
-* **08.06.25:** - Deprecate develop branch.
-* **03.06.25:** - Rebase to Ubuntu Noble. Update for 1.17.0 release.
-* **09.11.24:** - Update base image for 1.16.1 release.
-* **24.09.24:** - Add base users in docker build logic to survive container upgrades.
-* **17.09.24:** - Update base image for 1.16.0 release and fix Nvidia support.
-* **16.02.24:** - Update base image for 1.15.0 release.
-* **22.08.23:** - Update base image for 1.14.0 release.
-* **07.04.23:** - Add mod layer for ingesting LSIO images for 1.13.0 release.
-* **28.03.23:** - Pin compose to 2.5.0 to be in sync with upstream requirements.
-* **05.11.22:** - Rebase to Jammy, add support for GPUs, add support for Gamepads.
-* **23.09.22:** - Migrate to s6v3.
-* **02.07.22:** - Initial Release.
+Up to date documentation is available [here](https://github.com/linuxserver/docker-kasm/blob/master/README.md).
diff --git a/jenkins-vars.yml b/jenkins-vars.yml
index 49c7488..7c6b0bb 100644
--- a/jenkins-vars.yml
+++ b/jenkins-vars.yml
@@ -2,13 +2,13 @@
# jenkins variables
project_name: docker-kasm
-external_type: github_stable
-release_type: stable
-release_tag: latest
-ls_branch: master
+external_type: na
+custom_version_command: "curl -sX GET https://kasm-ci.s3.amazonaws.com/dev-version.txt"
+release_type: prerelease
+release_tag: develop
+ls_branch: develop
+build_armhf: false
repo_vars:
- - EXT_USER = 'kasmtech'
- - EXT_REPO = 'kasm-install-wizard'
- BUILD_VERSION_ARG = 'KASM_VERSION'
- LS_USER = 'linuxserver'
- LS_REPO = 'docker-kasm'
@@ -23,6 +23,6 @@ repo_vars:
- CI_PORT='3000'
- CI_SSL='true'
- CI_DELAY='120'
- - CI_DOCKERENV=''
- - CI_AUTH=''
+ - CI_DOCKERENV='TEST=true'
+ - CI_AUTH='user:password'
- CI_WEBPATH=''
diff --git a/package_versions.txt b/package_versions.txt
index ff3be76..3e64d71 100755
--- a/package_versions.txt
+++ b/package_versions.txt
@@ -1,922 +1,953 @@
-NAME VERSION TYPE
-1to2 1.0.0 npm
-@balena/dockerignore 1.0.2 npm
-@isaacs/cliui 8.0.2 npm
-@isaacs/string-locale-compare 1.1.0 npm
-@npmcli/agent 2.2.2 npm
-@npmcli/arborist 7.5.4 npm
-@npmcli/config 8.3.4 npm
-@npmcli/fs 3.1.1 npm
-@npmcli/git 5.0.8 npm
-@npmcli/installed-package-contents 2.1.0 npm
-@npmcli/map-workspaces 3.0.6 npm
-@npmcli/metavuln-calculator 7.1.1 npm
-@npmcli/name-from-folder 2.0.0 npm
-@npmcli/node-gyp 3.0.0 npm
-@npmcli/package-json 5.2.0 npm
-@npmcli/promise-spawn 7.0.2 npm
-@npmcli/query 3.1.0 npm
-@npmcli/redact 2.0.1 npm
-@npmcli/run-script 8.1.0 npm
-@pkgjs/parseargs 0.11.0 npm
-@sigstore/bundle 2.3.2 npm
-@sigstore/core 1.1.0 npm
-@sigstore/protobuf-specs 0.3.2 npm
-@sigstore/sign 2.3.2 npm
-@sigstore/tuf 2.3.4 npm
-@sigstore/verify 1.2.1 npm
-@socket.io/component-emitter 3.1.2 npm
-@socket.io/component-emitter UNKNOWN npm (+1 duplicate)
-@tufjs/canonical-json 2.0.0 npm
-@tufjs/models 2.0.1 npm
-@types/cors 2.8.19 npm
-@types/node 25.0.9 npm
-abbrev 2.0.0 npm
-accepts 1.3.8 npm
-adduser 3.137ubuntu1 deb
-agent-base 7.1.1 npm
-aggregate-error 3.1.0 npm
-ansi-regex 5.0.1 npm
-ansi-regex 6.0.1 npm (+1 duplicate)
-ansi-styles 4.3.0 npm
-ansi-styles 6.2.1 npm
-aproba 2.0.0 npm
-apt 2.8.3 deb
-apt-transport-https 2.8.3 deb
-apt-utils 2.8.3 deb
-archy 1.0.0 npm
-argparse 2.0.1 npm
-array-flatten 1.1.1 npm
-asn1 0.2.6 npm
-balanced-match 1.0.2 npm
-base-files 13ubuntu10.3 deb
-base-passwd 3.6.3build1 deb
-base64-js 1.5.1 npm
-base64id 2.0.0 npm
-bash 5.2.21-2ubuntu4 deb
-bcrypt-pbkdf 1.0.2 npm
-bin-links 4.0.4 npm
-binary-extensions 2.3.0 npm
-binutils-common 2.42-4ubuntu2.8 deb
-bl 4.1.0 npm
-body-parser 1.20.4 npm
-brace-expansion 2.0.1 npm
-bsdutils 1:2.39.3-9ubuntu6.4 deb
-btrfs-progs 6.6.3-1.1build2 deb
-buffer 5.7.1 npm
-buildcheck 0.0.7 npm
-bytes 3.1.2 npm
-ca-certificates 20240203 deb
-cacache 18.0.3 npm
-call-bind-apply-helpers 1.0.2 npm
-call-bound 1.0.4 npm
-catatonit 0.1.7-1 deb
-chalk 5.3.0 npm
-chownr 1.1.4 npm
-chownr 2.0.0 npm
-ci-info 4.0.0 npm
-cidr-regex 4.1.1 npm
-clean-stack 2.2.0 npm
-cli-columns 4.0.0 npm
-cloud.google.com/go/compute/metadata v0.6.0 go-module
-cloud.google.com/go/logging v1.9.0 go-module
-cloud.google.com/go/longrunning v0.5.5 go-module
-cmd-shim 6.0.3 npm
-code.cloudfoundry.org/clock v1.37.0 go-module
-color-convert 2.0.1 npm
-color-name 1.1.4 npm
-common-ancestor-path 1.0.1 npm
-containerd.io 2.2.1-1~ubuntu.24.04~noble deb
-content-disposition 0.5.4 npm
-content-type 1.0.5 npm
-cookie 0.7.2 npm
-cookie-signature 1.0.7 npm
-corepack 0.34.1 npm
-coreutils 9.4-3ubuntu6.1 deb
-cors 2.8.5 npm
-cpp 4:13.2.0-7ubuntu1 deb
-cpu-features 0.0.10 npm
-cron 3.0pl1-184ubuntu2 deb
-cron-daemon-common 3.0pl1-184ubuntu2 deb
-cross-spawn 7.0.3 npm
-cssesc 3.0.0 npm
-curl 8.5.0-2ubuntu10.6 deb
-dario.cat/mergo v1.0.2 go-module (+1 duplicate)
-dash 0.5.12-6ubuntu5 deb
-debconf 1.5.86ubuntu1 deb
-debianutils 5.17build1 deb
-debug 2.6.9 npm (+3 duplicates)
-debug 4.3.5 npm
-debug 4.4.3 npm
-depd 2.0.0 npm
-destroy 1.2.0 npm
-diff 5.2.0 npm
-diffutils 1:3.10-1build1 deb
-dirmngr 2.4.4-2ubuntu17.4 deb
-docker-ce 5:28.5.2-1~ubuntu.24.04~noble deb
-docker-ce-cli 5:28.5.2-1~ubuntu.24.04~noble deb
-docker-compose-plugin 5.0.1-1~ubuntu.24.04~noble deb
-docker-modem 3.0.8 npm
-dockerode 3.3.5 npm
-dpkg 1.22.6ubuntu6.5 deb
-dpkg-dev 1.22.6ubuntu6.5 deb
-dunder-proto 1.0.1 npm
-e2fsprogs 1.47.0-2.4~exp1ubuntu4.1 deb
-eastasianwidth 0.2.0 npm
-ee-first 1.1.1 npm
-emoji-regex 8.0.0 npm
-emoji-regex 9.2.2 npm (+1 duplicate)
-encodeurl 2.0.0 npm
-encoding 0.1.13 npm
-end-of-stream 1.4.5 npm
-engine.io 6.6.5 npm
-engine.io-parser 5.2.3 npm
-engine.io-parser UNKNOWN npm (+1 duplicate)
-env-paths 2.2.1 npm
-err-code 2.0.3 npm
-es-define-property 1.0.1 npm
-es-errors 1.3.0 npm
-es-object-atoms 1.1.1 npm
-escape-html 1.0.3 npm
-etag 1.8.1 npm
-exponential-backoff 3.1.1 npm
-express 4.22.1 npm
-fastest-levenshtein 1.0.16 npm
-finalhandler 1.3.2 npm
-findutils 4.9.0-5build1 deb
-foreground-child 3.2.1 npm
-forwarded 0.2.0 npm
-fresh 0.5.2 npm
-fs-constants 1.0.0 npm
-fs-minipass 2.1.0 npm
-fs-minipass 3.0.3 npm
-function-bind 1.1.2 npm
-fuse-overlayfs 1.13-1 deb
-fuse3 3.14.0-5build1 deb
-gcc-14-base 14.2.0-4ubuntu2~24.04 deb
-get-intrinsic 1.3.0 npm
-get-proto 1.0.1 npm
-github.com/AlecAivazis/survey/v2 v2.3.7 go-module
-github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 go-module
-github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 go-module
-github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.5.0 go-module
-github.com/DefangLabs/secret-detector v0.0.0-20250403165618-22662109213e go-module
-github.com/Graylog2/go-gelf v0.0.0-20191017102106-1550ee647df0 go-module
-github.com/Microsoft/hcsshim v0.13.0 go-module
-github.com/Microsoft/hcsshim v0.14.0-rc.1 go-module (+1 duplicate)
-github.com/NVIDIA/go-nvlib v0.8.1 go-module (+3 duplicates)
-github.com/NVIDIA/go-nvml v0.13.0-1 go-module (+3 duplicates)
-github.com/NVIDIA/nvidia-container-toolkit v1.18.1 go-module (+3 duplicates)
-github.com/RackSec/srslog v0.0.0-20180709174129-a4725f04ec91 go-module
-github.com/a8m/envsubst v1.4.2 go-module (+1 duplicate)
-github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d go-module
-github.com/agext/levenshtein v1.2.3 go-module
-github.com/alecthomas/participle/v2 v2.1.4 go-module (+1 duplicate)
-github.com/anchore/go-struct-converter v0.0.0-20221118182256-c68fdcfa2092 go-module
-github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2 go-module
-github.com/armon/go-metrics v0.4.1 go-module
-github.com/aws/aws-sdk-go-v2 v1.30.3 go-module
-github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 go-module
-github.com/aws/aws-sdk-go-v2/config v1.27.27 go-module
-github.com/aws/aws-sdk-go-v2/credentials v1.17.27 go-module
-github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 go-module
-github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 go-module
-github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 go-module
-github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 go-module
-github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.32.0 go-module
-github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 go-module
-github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 go-module
-github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 go-module
-github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 go-module
-github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 go-module
-github.com/aws/smithy-go v1.20.3 go-module
-github.com/beorn7/perks v1.0.1 go-module (+2 duplicates)
-github.com/bits-and-blooms/bitset v1.13.0 go-module
-github.com/buger/goterm v1.0.4 go-module
-github.com/cenkalti/backoff/v4 v4.3.0 go-module (+1 duplicate)
-github.com/cenkalti/backoff/v5 v5.0.3 go-module
-github.com/cespare/xxhash/v2 v2.3.0 go-module (+2 duplicates)
-github.com/checkpoint-restore/checkpointctl v1.4.0 go-module
-github.com/checkpoint-restore/go-criu/v6 v6.3.0 go-module
-github.com/checkpoint-restore/go-criu/v7 v7.2.0 go-module
-github.com/cilium/ebpf v0.16.0 go-module (+2 duplicates)
-github.com/cilium/ebpf v0.17.3 go-module (+1 duplicate)
-github.com/cloudflare/cfssl v1.6.4 go-module
-github.com/compose-spec/compose-go/v2 v2.10.0 go-module
-github.com/container-storage-interface/spec v1.5.0 go-module
-github.com/containerd/accelerated-container-image v1.3.0 go-module
-github.com/containerd/btrfs/v2 v2.0.0 go-module
-github.com/containerd/cgroups/v3 v3.0.5 go-module
-github.com/containerd/cgroups/v3 v3.1.2 go-module (+2 duplicates)
-github.com/containerd/console v1.0.5 go-module (+5 duplicates)
-github.com/containerd/containerd/api v1.10.0 go-module (+3 duplicates)
-github.com/containerd/containerd/api v1.9.0 go-module
-github.com/containerd/containerd/v2 v2.1.4 go-module
-github.com/containerd/containerd/v2 v2.2.1 go-module (+2 duplicates)
-github.com/containerd/containerd/v2 v2.2.1-0.20251115011841-efd86f2b0bc2 go-module
-github.com/containerd/continuity v0.4.5 go-module (+4 duplicates)
-github.com/containerd/errdefs v1.0.0 go-module (+4 duplicates)
-github.com/containerd/errdefs/pkg v0.3.0 go-module (+4 duplicates)
-github.com/containerd/fifo v1.1.0 go-module (+3 duplicates)
-github.com/containerd/go-cni v1.1.12 go-module
-github.com/containerd/go-cni v1.1.13 go-module (+1 duplicate)
-github.com/containerd/go-runc v1.1.0 go-module (+3 duplicates)
-github.com/containerd/imgcrypt/v2 v2.0.1 go-module
-github.com/containerd/log v0.1.0 go-module (+5 duplicates)
-github.com/containerd/nri v0.11.0 go-module
-github.com/containerd/otelttrpc v0.1.0 go-module
-github.com/containerd/platforms v1.0.0-rc.1 go-module
-github.com/containerd/platforms v1.0.0-rc.2 go-module (+2 duplicates)
-github.com/containerd/plugin v1.0.0 go-module (+3 duplicates)
-github.com/containerd/stargz-snapshotter/estargz v0.16.3 go-module
-github.com/containerd/ttrpc v1.2.7 go-module (+4 duplicates)
-github.com/containerd/typeurl/v2 v2.2.3 go-module (+4 duplicates)
-github.com/containerd/zfs/v2 v2.0.0 go-module
-github.com/containernetworking/cni v1.3.0 go-module (+2 duplicates)
-github.com/containernetworking/plugins v1.7.1 go-module
-github.com/containernetworking/plugins v1.9.0 go-module
-github.com/containers/ocicrypt v1.2.1 go-module
-github.com/coreos/go-systemd/v22 v22.5.0 go-module (+1 duplicate)
-github.com/coreos/go-systemd/v22 v22.6.0 go-module (+2 duplicates)
-github.com/cyphar/filepath-securejoin v0.4.1 go-module
-github.com/cyphar/filepath-securejoin v0.5.1 go-module (+3 duplicates)
-github.com/cyphar/filepath-securejoin v0.5.2 go-module
-github.com/davecgh/go-spew v1.1.1 go-module (+2 duplicates)
-github.com/deckarep/golang-set/v2 v2.3.0 go-module
-github.com/dimchansky/utfbom v1.1.1 go-module (+2 duplicates)
-github.com/distribution/reference v0.6.0 go-module (+3 duplicates)
-github.com/docker/buildx v0.30.1 go-module
-github.com/docker/cli v28.5.2+incompatible go-module
-github.com/docker/cli-docs-tool v0.11.0 go-module
-github.com/docker/cli/cmd/docker UNKNOWN go-module
-github.com/docker/compose/v5 v0.0.0-20251218103533-c89b8a2d6b44 go-module
-github.com/docker/distribution v2.8.3+incompatible go-module (+1 duplicate)
-github.com/docker/docker v28.5.2 go-module (+1 duplicate)
-github.com/docker/docker v28.5.2+incompatible go-module
-github.com/docker/docker-credential-helpers v0.9.3 go-module
-github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c go-module
-github.com/docker/go-connections v0.5.0 go-module
-github.com/docker/go-connections v0.6.0 go-module
-github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c go-module
-github.com/docker/go-events v0.0.0-20250114142523-c867878c5e32 go-module
-github.com/docker/go-metrics v0.0.1 go-module (+2 duplicates)
-github.com/docker/go-units v0.5.0 go-module (+5 duplicates)
-github.com/docker/libtrust v0.0.0-20150526203908-9cbd2a1374f4 go-module
-github.com/dustin/go-humanize v1.0.0 go-module
-github.com/eiannone/keyboard v0.0.0-20220611211555-0d226195f203 go-module
-github.com/elliotchance/orderedmap v1.8.0 go-module (+1 duplicate)
-github.com/emicklei/go-restful/v3 v3.13.0 go-module
-github.com/fatih/color v1.18.0 go-module (+1 duplicate)
-github.com/felixge/httpsnoop v1.0.4 go-module (+3 duplicates)
-github.com/fernet/fernet-go v0.0.0-20240119011108-303da6aec611 go-module
-github.com/fluent/fluent-logger-golang v1.9.0 go-module
-github.com/fsnotify/fsnotify v1.7.0 go-module (+3 duplicates)
-github.com/fsnotify/fsnotify v1.9.0 go-module (+2 duplicates)
-github.com/fvbommel/sortorder v1.1.0 go-module
-github.com/fxamacker/cbor/v2 v2.9.0 go-module (+1 duplicate)
-github.com/go-jose/go-jose/v4 v4.1.2 go-module
-github.com/go-logr/logr v1.4.2 go-module
-github.com/go-logr/logr v1.4.3 go-module (+2 duplicates)
-github.com/go-logr/stdr v1.2.2 go-module (+3 duplicates)
-github.com/go-viper/mapstructure/v2 v2.4.0 go-module
-github.com/goccy/go-json v0.10.5 go-module (+1 duplicate)
-github.com/goccy/go-yaml v1.13.3 go-module (+1 duplicate)
-github.com/godbus/dbus/v5 v5.1.0 go-module (+4 duplicates)
-github.com/gofrs/flock v0.12.1 go-module
-github.com/gofrs/flock v0.13.0 go-module
-github.com/gogo/protobuf v1.3.2 go-module (+4 duplicates)
-github.com/golang-jwt/jwt/v5 v5.2.2 go-module
-github.com/golang-jwt/jwt/v5 v5.3.0 go-module
-github.com/golang/gddo v0.0.0-20190904175337-72a348e765d2 go-module
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da go-module
-github.com/golang/protobuf v1.5.4 go-module (+2 duplicates)
-github.com/google/btree v1.1.2 go-module
-github.com/google/certificate-transparency-go v1.1.4 go-module
-github.com/google/go-cmp v0.7.0 go-module (+4 duplicates)
-github.com/google/s2a-go v0.1.7 go-module
-github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 go-module (+1 duplicate)
-github.com/google/uuid v1.6.0 go-module (+6 duplicates)
-github.com/googleapis/enterprise-certificate-proxy v0.3.2 go-module
-github.com/googleapis/gax-go/v2 v2.12.0 go-module
-github.com/gorilla/mux v1.8.1 go-module (+1 duplicate)
-github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 go-module
-github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus v1.1.0 go-module
-github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 go-module
-github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 go-module
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 go-module (+1 duplicate)
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 go-module
-github.com/hashicorp/errwrap v1.1.0 go-module (+1 duplicate)
-github.com/hashicorp/go-immutable-radix v1.3.1 go-module
-github.com/hashicorp/go-immutable-radix/v2 v2.1.0 go-module
-github.com/hashicorp/go-memdb v1.3.2 go-module
-github.com/hashicorp/go-msgpack v0.5.5 go-module
-github.com/hashicorp/go-multierror v1.1.1 go-module (+1 duplicate)
-github.com/hashicorp/go-sockaddr v1.0.2 go-module
-github.com/hashicorp/go-version v1.8.0 go-module
-github.com/hashicorp/golang-lru v0.5.4 go-module
-github.com/hashicorp/golang-lru/v2 v2.0.7 go-module
-github.com/hashicorp/memberlist v0.4.0 go-module
-github.com/hashicorp/serf v0.8.5 go-module
-github.com/in-toto/in-toto-golang v0.9.0 go-module (+1 duplicate)
-github.com/inhies/go-bytesize v0.0.0-20220417184213-4913239db9cf go-module
-github.com/intel/goresctrl v0.10.0 go-module (+1 duplicate)
-github.com/ishidawataru/sctp v0.0.0-20230406120618-7ff4192f6ff2 go-module (+1 duplicate)
-github.com/jinzhu/copier v0.4.0 go-module (+1 duplicate)
-github.com/jmoiron/sqlx v1.3.3 go-module
-github.com/jonboulle/clockwork v0.5.0 go-module
-github.com/json-iterator/go v1.1.12 go-module
-github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 go-module
-github.com/klauspost/compress v1.18.0 go-module
-github.com/klauspost/compress v1.18.1 go-module (+2 duplicates)
-github.com/knqyf263/go-plugin v0.9.0 go-module
-github.com/magiconair/properties v1.8.9 go-module (+1 duplicate)
-github.com/mattn/go-colorable v0.1.13 go-module (+1 duplicate)
-github.com/mattn/go-colorable v0.1.14 go-module
-github.com/mattn/go-isatty v0.0.20 go-module (+2 duplicates)
-github.com/mattn/go-runewidth v0.0.16 go-module
-github.com/mattn/go-shellwords v1.0.12 go-module
-github.com/mdlayher/socket v0.5.1 go-module (+2 duplicates)
-github.com/mdlayher/vsock v1.2.1 go-module (+2 duplicates)
-github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b go-module
-github.com/miekg/dns v1.1.66 go-module
-github.com/miekg/pkcs11 v1.1.1 go-module
-github.com/mikefarah/yq/v4 v0.0.0-20250410031946-f00e28295f0c go-module (+1 duplicate)
-github.com/mistifyio/go-zfs/v3 v3.0.1 go-module (+1 duplicate)
-github.com/mitchellh/copystructure v1.2.0 go-module
-github.com/mitchellh/hashstructure/v2 v2.0.2 go-module (+1 duplicate)
-github.com/mitchellh/reflectwalk v1.0.2 go-module
-github.com/moby/buildkit v0.25.2 go-module
-github.com/moby/buildkit v0.26.3 go-module
-github.com/moby/docker-image-spec v1.3.1 go-module (+1 duplicate)
-github.com/moby/go-archive v0.1.0 go-module (+1 duplicate)
-github.com/moby/ipvs v1.1.0 go-module
-github.com/moby/locker v1.0.1 go-module (+3 duplicates)
-github.com/moby/patternmatcher v0.6.0 go-module (+1 duplicate)
-github.com/moby/profiles/apparmor v0.1.0 go-module
-github.com/moby/profiles/seccomp v0.1.0 go-module
-github.com/moby/pubsub v1.0.0 go-module
-github.com/moby/spdystream v0.5.0 go-module
-github.com/moby/swarmkit/v2 v2.0.0 go-module
-github.com/moby/sys/atomicwriter v0.1.0 go-module (+1 duplicate)
-github.com/moby/sys/capability v0.4.0 go-module (+7 duplicates)
-github.com/moby/sys/mount v0.3.4 go-module
-github.com/moby/sys/mountinfo v0.7.2 go-module (+4 duplicates)
-github.com/moby/sys/reexec v0.1.0 go-module (+2 duplicates)
-github.com/moby/sys/sequential v0.6.0 go-module (+1 duplicate)
-github.com/moby/sys/signal v0.7.1 go-module (+3 duplicates)
-github.com/moby/sys/symlink v0.3.0 go-module (+4 duplicates)
-github.com/moby/sys/user v0.3.0 go-module
-github.com/moby/sys/user v0.4.0 go-module (+3 duplicates)
-github.com/moby/sys/userns v0.1.0 go-module (+5 duplicates)
-github.com/moby/term v0.5.2 go-module (+1 duplicate)
-github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd go-module
-github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee go-module
-github.com/morikuni/aec v1.0.0 go-module
-github.com/morikuni/aec v1.1.0 go-module
-github.com/mrunalp/fileutils v0.5.1 go-module
-github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 go-module (+2 duplicates)
-github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f go-module
-github.com/opencontainers/cgroups v0.0.3 go-module
-github.com/opencontainers/cgroups v0.0.4 go-module
-github.com/opencontainers/go-digest v1.0.0 go-module (+4 duplicates)
-github.com/opencontainers/image-spec v1.1.1 go-module (+4 duplicates)
-github.com/opencontainers/runc v1.3.3 go-module (+1 duplicate)
-github.com/opencontainers/runc v1.3.4 go-module
-github.com/opencontainers/runtime-spec v1.2.1 go-module (+1 duplicate)
-github.com/opencontainers/runtime-spec v1.3.0 go-module (+6 duplicates)
-github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626 go-module
-github.com/opencontainers/runtime-tools v0.9.1-0.20251114084447-edf4cb3d2116 go-module (+5 duplicates)
-github.com/opencontainers/selinux v1.12.0 go-module
-github.com/opencontainers/selinux v1.13.1 go-module (+2 duplicates)
-github.com/package-url/packageurl-go v0.1.1 go-module
-github.com/pelletier/go-toml v1.9.5 go-module (+5 duplicates)
-github.com/pelletier/go-toml/v2 v2.2.3 go-module (+1 duplicate)
-github.com/pelletier/go-toml/v2 v2.2.4 go-module (+2 duplicates)
-github.com/philhofer/fwd v1.1.2 go-module
-github.com/pkg/errors v0.9.1 go-module (+1 duplicate)
-github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 go-module (+1 duplicate)
-github.com/pmezard/go-difflib v1.0.0 go-module (+1 duplicate)
-github.com/prometheus/client_golang v1.22.0 go-module
-github.com/prometheus/client_golang v1.23.2 go-module (+1 duplicate)
-github.com/prometheus/client_model v0.6.1 go-module
-github.com/prometheus/client_model v0.6.2 go-module (+1 duplicate)
-github.com/prometheus/common v0.62.0 go-module
-github.com/prometheus/common v0.66.1 go-module (+1 duplicate)
-github.com/prometheus/procfs v0.15.1 go-module
-github.com/prometheus/procfs v0.16.1 go-module (+1 duplicate)
-github.com/rivo/uniseg v0.2.0 go-module
-github.com/rootless-containers/rootlesskit/v2 v2.3.4 go-module
-github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 go-module
-github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 go-module
-github.com/seccomp/libseccomp-golang v0.10.0 go-module
-github.com/secure-systems-lab/go-securesystemslib v0.6.0 go-module
-github.com/secure-systems-lab/go-securesystemslib v0.9.1 go-module
-github.com/shibumi/go-pathspec v1.3.0 go-module (+1 duplicate)
-github.com/sirupsen/logrus v1.9.3 go-module (+10 duplicates)
-github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966 go-module
-github.com/smallstep/pkcs7 v0.1.1 go-module
-github.com/spdx/tools-golang v0.5.5 go-module
-github.com/spf13/cobra v1.10.2 go-module
-github.com/spf13/cobra v1.8.1 go-module (+1 duplicate)
-github.com/spf13/cobra v1.9.1 go-module
-github.com/spf13/pflag v1.0.10 go-module
-github.com/spf13/pflag v1.0.6 go-module (+2 duplicates)
-github.com/stefanberger/go-pkcs11uri v0.0.0-20230803200340-78284954bff6 go-module
-github.com/stretchr/testify v1.10.0 go-module
-github.com/stretchr/testify v1.11.1 go-module
-github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 go-module
-github.com/tchap/go-patricia/v2 v2.3.3 go-module
-github.com/tetratelabs/wazero v1.10.1 go-module
-github.com/theupdateframework/notary v0.7.0 go-module
-github.com/tilt-dev/fsnotify v1.4.8-0.20220602155310-fff9c274a375 go-module
-github.com/tinylib/msgp v1.1.8 go-module
-github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323 go-module (+1 duplicate)
-github.com/tonistiigi/fsutil v0.0.0-20250605211040-586307ad452f go-module (+1 duplicate)
-github.com/tonistiigi/go-actions-cache v0.0.0-20250626083717-378c5ed1ddd9 go-module
-github.com/tonistiigi/go-archvariant v1.0.0 go-module
-github.com/tonistiigi/go-csvvalue v0.0.0-20240814133006-030d3b2625d0 go-module (+1 duplicate)
-github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea go-module (+1 duplicate)
-github.com/tonistiigi/vt100 v0.0.0-20240514184818-90bafcd6abab go-module
-github.com/urfave/cli v1.22.16 go-module
-github.com/urfave/cli-altsrc/v3 v3.1.0 go-module
-github.com/urfave/cli/v2 v2.27.7 go-module (+1 duplicate)
-github.com/urfave/cli/v3 v3.4.1 go-module (+1 duplicate)
-github.com/vbatts/tar-split v0.12.1 go-module
-github.com/vishvananda/netlink v1.3.0 go-module
-github.com/vishvananda/netlink v1.3.1 go-module (+1 duplicate)
-github.com/vishvananda/netns v0.0.4 go-module
-github.com/vishvananda/netns v0.0.5 go-module (+1 duplicate)
-github.com/weppos/publicsuffix-go v0.15.1-0.20210511084619-b1f36a2d6c0b go-module
-github.com/x448/float16 v0.8.4 go-module (+1 duplicate)
-github.com/xhit/go-str2duration/v2 v2.1.0 go-module
-github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 go-module (+1 duplicate)
-github.com/yuin/gopher-lua v1.1.1 go-module (+1 duplicate)
-github.com/zmap/zcrypto v0.0.0-20210511125630-18f1e0152cfc go-module
-github.com/zmap/zlint/v3 v3.1.0 go-module
-glob 10.4.2 npm
-gnupg 2.4.4-2ubuntu17.4 deb
-gnupg-l10n 2.4.4-2ubuntu17.4 deb
-gnupg-utils 2.4.4-2ubuntu17.4 deb
-go.etcd.io/bbolt v1.4.3 go-module (+1 duplicate)
-go.etcd.io/etcd/client/pkg/v3 v3.5.16 go-module
-go.etcd.io/etcd/pkg/v3 v3.5.16 go-module
-go.etcd.io/etcd/raft/v3 v3.5.16 go-module
-go.etcd.io/etcd/server/v3 v3.5.16 go-module
-go.opencensus.io v0.24.0 go-module
-go.opentelemetry.io/auto/sdk v1.1.0 go-module (+2 duplicates)
-go.opentelemetry.io/auto/sdk v1.2.1 go-module
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.60.0 go-module (+1 duplicate)
-go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.63.0 go-module
-go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.60.0 go-module
-go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.63.0 go-module
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 go-module (+2 duplicates)
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 go-module
-go.opentelemetry.io/contrib/processors/baggagecopy v0.4.0 go-module
-go.opentelemetry.io/otel v1.35.0 go-module
-go.opentelemetry.io/otel v1.37.0 go-module (+1 duplicate)
-go.opentelemetry.io/otel v1.38.0 go-module
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.35.0 go-module
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.38.0 go-module
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.35.0 go-module
-go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.38.0 go-module
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 go-module (+1 duplicate)
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 go-module
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 go-module (+1 duplicate)
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 go-module
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0 go-module (+1 duplicate)
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 go-module
-go.opentelemetry.io/otel/metric v1.35.0 go-module
-go.opentelemetry.io/otel/metric v1.37.0 go-module (+1 duplicate)
-go.opentelemetry.io/otel/metric v1.38.0 go-module
-go.opentelemetry.io/otel/sdk v1.35.0 go-module
-go.opentelemetry.io/otel/sdk v1.37.0 go-module
-go.opentelemetry.io/otel/sdk v1.38.0 go-module
-go.opentelemetry.io/otel/sdk/metric v1.35.0 go-module
-go.opentelemetry.io/otel/sdk/metric v1.38.0 go-module
-go.opentelemetry.io/otel/trace v1.35.0 go-module
-go.opentelemetry.io/otel/trace v1.37.0 go-module (+1 duplicate)
-go.opentelemetry.io/otel/trace v1.38.0 go-module
-go.opentelemetry.io/proto/otlp v1.5.0 go-module (+1 duplicate)
-go.opentelemetry.io/proto/otlp v1.7.1 go-module
-go.uber.org/atomic v1.9.0 go-module
-go.uber.org/mock v0.6.0 go-module
-go.uber.org/multierr v1.8.0 go-module
-go.uber.org/zap v1.21.0 go-module
-go.yaml.in/yaml/v2 v2.4.2 go-module (+2 duplicates)
-go.yaml.in/yaml/v4 v4.0.0-rc.3 go-module
-golang.org/x/crypto v0.37.0 go-module
-golang.org/x/crypto v0.45.0 go-module (+1 duplicate)
-golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f go-module (+2 duplicates)
-golang.org/x/mod v0.24.0 go-module
-golang.org/x/mod v0.29.0 go-module (+5 duplicates)
-golang.org/x/net v0.35.0 go-module
-golang.org/x/net v0.39.0 go-module (+3 duplicates)
-golang.org/x/net v0.47.0 go-module (+3 duplicates)
-golang.org/x/oauth2 v0.29.0 go-module
-golang.org/x/oauth2 v0.30.0 go-module
-golang.org/x/sync v0.16.0 go-module
-golang.org/x/sync v0.18.0 go-module (+2 duplicates)
-golang.org/x/sync v0.19.0 go-module
-golang.org/x/sys v0.30.0 go-module
-golang.org/x/sys v0.32.0 go-module (+1 duplicate)
-golang.org/x/sys v0.33.0 go-module (+1 duplicate)
-golang.org/x/sys v0.37.0 go-module (+3 duplicates)
-golang.org/x/sys v0.38.0 go-module (+2 duplicates)
-golang.org/x/sys v0.39.0 go-module
-golang.org/x/term v0.37.0 go-module (+1 duplicate)
-golang.org/x/text v0.24.0 go-module (+2 duplicates)
-golang.org/x/text v0.31.0 go-module (+2 duplicates)
-golang.org/x/time v0.11.0 go-module
-golang.org/x/time v0.14.0 go-module (+1 duplicate)
-google.golang.org/api v0.160.0 go-module
-google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de go-module
-google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a go-module
-google.golang.org/genproto/googleapis/api v0.0.0-20250804133106-a7a43d27e69b go-module
-google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 go-module
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a go-module
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250804133106-a7a43d27e69b go-module (+2 duplicates)
-google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 go-module
-google.golang.org/grpc v1.72.2 go-module
-google.golang.org/grpc v1.76.0 go-module (+2 duplicates)
-google.golang.org/grpc v1.77.0 go-module
-google.golang.org/protobuf v1.36.10 go-module (+3 duplicates)
-google.golang.org/protobuf v1.36.5 go-module
-google.golang.org/protobuf v1.36.9 go-module
-gopd 1.2.0 npm
-gopkg.in/inf.v0 v0.9.1 go-module (+1 duplicate)
-gopkg.in/ini.v1 v1.67.0 go-module
-gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473 go-module (+1 duplicate)
-gopkg.in/yaml.v3 v3.0.1 go-module (+9 duplicates)
-gpg 2.4.4-2ubuntu17.4 deb
-gpg-agent 2.4.4-2ubuntu17.4 deb
-gpg-wks-client 2.4.4-2ubuntu17.4 deb
-gpgconf 2.4.4-2ubuntu17.4 deb
-gpgsm 2.4.4-2ubuntu17.4 deb
-gpgv 2.4.4-2ubuntu17.4 deb
-graceful-fs 4.2.11 npm
-grep 3.11-4build1 deb
-gzip 1.12-1ubuntu3.1 deb
-has-symbols 1.1.0 npm
-hasown 2.0.2 npm
-hosted-git-info 7.0.2 npm
-hostname 3.23+nmu2ubuntu2 deb
-http-cache-semantics 4.1.1 npm
-http-errors 2.0.1 npm
-http-proxy-agent 7.0.2 npm
-https-proxy-agent 7.0.5 npm
-iconv-lite 0.4.24 npm
-iconv-lite 0.6.3 npm
-ieee754 1.2.1 npm
-ignore-walk 6.0.5 npm
-imurmurhash 0.1.4 npm
-indent-string 4.0.0 npm
-inherits 2.0.4 npm
-ini 4.1.3 npm
-init-package-json 6.0.3 npm
-init-system-helpers 1.66ubuntu1 deb
-ip-address 9.0.5 npm
-ip-regex 5.0.0 npm
-ipaddr.js 1.9.1 npm
-iproute2 6.1.0-1ubuntu6.2 deb
-iptables 1.8.10-3ubuntu2 deb
-is-cidr 5.1.0 npm
-is-fullwidth-code-point 3.0.0 npm
-is-lambda 1.0.1 npm
-isexe 2.0.0 npm
-isexe 3.1.1 npm
-jackspeak 3.4.0 npm
-jq 1.7.1-3ubuntu0.24.04.1 deb
-js-yaml 4.1.1 npm
-jsbn 1.1.0 npm
-json-parse-even-better-errors 3.0.2 npm
-json-stringify-nice 1.1.4 npm
-jsonparse 1.3.1 npm
-just-diff 6.0.2 npm
-just-diff-apply 5.5.0 npm
-k8s.io/api v0.34.1 go-module
-k8s.io/apimachinery v0.34.1 go-module (+1 duplicate)
-k8s.io/client-go v0.34.1 go-module
-k8s.io/cri-api v0.34.1 go-module
-k8s.io/klog/v2 v2.130.1 go-module (+1 duplicate)
-k8s.io/utils v0.0.0-20250604170112-4c0f3b243397 go-module
-kasm-wizard 0.0.1 npm
-keyboxd 2.4.4-2ubuntu17.4 deb
-krb5-locales 1.20.1-6ubuntu2.6 deb
-libacl1 2.3.2-1build1.1 deb
-libapparmor1 4.0.1really4.0.1-0ubuntu0.24.04.5 deb
-libapt-pkg6.0t64 2.8.3 deb
-libassuan0 2.5.6-1build1 deb
-libattr1 1:2.5.2-1build1.1 deb
-libaudit-common 1:3.1.2-2.1build1.1 deb
-libaudit1 1:3.1.2-2.1build1.1 deb
-libblkid1 2.39.3-9ubuntu6.4 deb
-libbpf1 1:1.3.0-2build2 deb
-libbrotli1 1.1.0-2build2 deb
-libbsd0 0.12.1-1build1.1 deb
-libbz2-1.0 1.0.8-5.1build0.1 deb
-libc-bin 2.39-0ubuntu8.6 deb
-libc6 2.39-0ubuntu8.6 deb
-libcap-ng0 0.8.4-2build2 deb
-libcap2 1:2.66-5ubuntu2.2 deb
-libcap2-bin 1:2.66-5ubuntu2.2 deb
-libcom-err2 1.47.0-2.4~exp1ubuntu4.1 deb
-libcrypt-dev 1:4.4.36-4build1 deb
-libcrypt1 1:4.4.36-4build1 deb
-libcurl4t64 8.5.0-2ubuntu10.6 deb
-libdb5.3t64 5.3.28+dfsg2-7 deb
-libdebconfclient0 0.271ubuntu3 deb
-libdevmapper1.02.1 2:1.02.185-3ubuntu3.2 deb
-libedit2 3.1-20230828-1build1 deb
-libelf1t64 0.190-1.1ubuntu0.1 deb
-libexpat1 2.6.1-2ubuntu0.3 deb
-libext2fs2t64 1.47.0-2.4~exp1ubuntu4.1 deb
-libffi8 3.4.6-1build1 deb
-libfuse3-3 3.14.0-5build1 deb
-libgcc-s1 14.2.0-4ubuntu2~24.04 deb
-libgcrypt20 1.10.3-2build1 deb
-libgmp10 2:6.3.0+dfsg-2ubuntu6.1 deb
-libgnutls30t64 3.8.3-1.1ubuntu3.4 deb
-libgpg-error0 1.47-3build2.1 deb
-libgssapi-krb5-2 1.20.1-6ubuntu2.6 deb
-libhogweed6t64 3.9.1-2.2build1.1 deb
-libicu74 74.2-1ubuntu3.1 deb
-libidn2-0 2.3.7-2build1.1 deb
-libinih1 55-1ubuntu2 deb
-libip4tc2 1.8.10-3ubuntu2 deb
-libip6tc2 1.8.10-3ubuntu2 deb
-libjansson4 2.14-2build2 deb
-libjq1 1.7.1-3ubuntu0.24.04.1 deb
-libk5crypto3 1.20.1-6ubuntu2.6 deb
-libkeyutils1 1.6.3-3build1 deb
-libkrb5-3 1.20.1-6ubuntu2.6 deb
-libkrb5support0 1.20.1-6ubuntu2.6 deb
-libksba8 1.6.6-1build1 deb
-libldap-common 2.6.7+dfsg-1~exp1ubuntu8.2 deb
-libldap2 2.6.7+dfsg-1~exp1ubuntu8.2 deb
-liblz4-1 1.9.4-1build1.1 deb
-liblzma5 5.6.1+really5.4.5-1ubuntu0.2 deb
-liblzo2-2 2.10-2build4 deb
-libmd0 1.1.0-2build1.1 deb
-libmnl0 1.0.5-2build1 deb
-libmount1 2.39.3-9ubuntu6.4 deb
-libncursesw6 6.4+20240113-1ubuntu2 deb
-libnetfilter-conntrack3 1.0.9-6build1 deb
-libnettle8t64 3.9.1-2.2build1.1 deb
-libnfnetlink0 1.0.2-2build1 deb
-libnftables1 1.0.9-1build1 deb
-libnftnl11 1.2.6-2build1 deb
-libnghttp2-14 1.59.0-1ubuntu0.2 deb
-libnpmaccess 8.0.6 npm
-libnpmdiff 6.1.4 npm
-libnpmexec 8.1.3 npm
-libnpmfund 5.0.12 npm
-libnpmhook 10.0.5 npm
-libnpmorg 6.0.6 npm
-libnpmpack 7.0.4 npm
-libnpmpublish 9.0.9 npm
-libnpmsearch 7.0.6 npm
-libnpmteam 6.0.5 npm
-libnpmversion 6.0.3 npm
-libnpth0t64 1.6-3.1build1 deb
-libnvidia-container-tools 1.18.1-1 deb
-libnvidia-container1 1.18.1-1 deb
-libonig5 6.9.9-1build1 deb
-libp11-kit0 0.25.3-4ubuntu2.1 deb
-libpam-modules 1.5.3-5ubuntu5.5 deb
-libpam-modules-bin 1.5.3-5ubuntu5.5 deb
-libpam-runtime 1.5.3-5ubuntu5.5 deb
-libpam0g 1.5.3-5ubuntu5.5 deb
-libpcre2-8-0 10.42-4ubuntu2.1 deb
-libproc2-0 2:4.0.4-4ubuntu3.2 deb
-libpsl5t64 0.21.2-1.1build1 deb
-libpython3-stdlib 3.12.3-0ubuntu2.1 deb
-libpython3.12-minimal 3.12.3-1ubuntu0.10 deb
-libpython3.12-stdlib 3.12.3-1ubuntu0.10 deb
-libreadline8t64 8.2-4build1 deb
-libreiserfscore0t64 1:3.6.27-7.1build1 deb
-librtmp1 2.4+20151223.gitfa8646d.1-2build7 deb
-libsasl2-2 2.1.28+dfsg1-5ubuntu3.1 deb
-libsasl2-modules 2.1.28+dfsg1-5ubuntu3.1 deb
-libsasl2-modules-db 2.1.28+dfsg1-5ubuntu3.1 deb
-libseccomp2 2.5.5-1ubuntu3.1 deb
-libselinux1 3.5-2ubuntu2.1 deb
-libsemanage-common 3.5-1build5 deb
-libsemanage2 3.5-1build5 deb
-libsepol2 3.5-2build1 deb
-libsmartcols1 2.39.3-9ubuntu6.4 deb
-libsqlite3-0 3.45.1-1ubuntu2.5 deb
-libss2 1.47.0-2.4~exp1ubuntu4.1 deb
-libssh-4 0.10.6-2ubuntu0.2 deb
-libssl3t64 3.0.13-0ubuntu3.6 deb
-libstdc++6 14.2.0-4ubuntu2~24.04 deb
-libsubid4 1:4.13+dfsg1-4ubuntu3.2 deb
-libsystemd0 255.4-1ubuntu8.12 deb
-libtasn1-6 4.19.0-3ubuntu0.24.04.2 deb
-libtinfo6 6.4+20240113-1ubuntu2 deb
-libtirpc-common 1.3.4+ds-1.1build1 deb
-libtirpc3t64 1.3.4+ds-1.1build1 deb
-libudev1 255.4-1ubuntu8.12 deb
-libunistring5 1.1-2build1.1 deb
-liburcu8t64 0.14.0-3.1build1 deb
-libuuid1 2.39.3-9ubuntu6.4 deb
-libxtables12 1.8.10-3ubuntu2 deb
-libxxhash0 0.8.2-2build1 deb
-libzstd1 1.5.5+dfsg2-2build1.1 deb
-locales 2.39-0ubuntu8.6 deb
-lodash 4.17.21 npm
-login 1:4.13+dfsg1-4ubuntu3.2 deb
-logsave 1.47.0-2.4~exp1ubuntu4.1 deb
-lru-cache 10.2.2 npm
-lsof 4.95.0-1build3 deb
-make-fetch-happen 13.0.1 npm
-math-intrinsics 1.1.0 npm
-mawk 1.3.4.20240123-1build1 deb
-media-typer 0.3.0 npm
-media-types 10.1.0 deb
-merge-descriptors 1.0.3 npm
-methods 1.1.2 npm
-mime 1.6.0 npm
-mime-db 1.52.0 npm
-mime-types 2.1.35 npm
-minimatch 9.0.5 npm
-minipass 3.3.6 npm (+4 duplicates)
-minipass 5.0.0 npm
-minipass 7.1.2 npm
-minipass-collect 2.0.1 npm
-minipass-fetch 3.0.5 npm
-minipass-flush 1.0.5 npm
-minipass-pipeline 1.2.4 npm
-minipass-sized 1.0.3 npm
-minizlib 2.1.2 npm
-mkdirp 1.0.4 npm
-mkdirp-classic 0.5.3 npm
-mount 2.39.3-9ubuntu6.4 deb
-ms 2.0.0 npm (+3 duplicates)
-ms 2.1.2 npm
-ms 2.1.3 npm (+1 duplicate)
-mute-stream 1.0.0 npm
-nan 2.24.0 npm
-ncurses-base 6.4+20240113-1ubuntu2 deb
-ncurses-bin 6.4+20240113-1ubuntu2 deb
-negotiator 0.6.3 npm (+1 duplicate)
-netbase 6.4 deb
-netcat-openbsd 1.226-1ubuntu2 deb
-nftables 1.0.9-1build1 deb
-node-gyp 10.1.0 npm
-node-pty 0.10.1 npm
-nodejs 20.20.0-1nodesource1 deb
-nopt 7.2.1 npm
-normalize-package-data 6.0.2 npm
-npm 10.8.2 npm
-npm-audit-report 5.0.0 npm
-npm-bundled 3.0.1 npm
-npm-install-checks 6.3.0 npm
-npm-normalize-package-bin 3.0.1 npm
-npm-package-arg 11.0.2 npm
-npm-packlist 8.0.2 npm
-npm-pick-manifest 9.1.0 npm
-npm-profile 10.0.0 npm
-npm-registry-fetch 17.1.0 npm
-npm-user-validate 2.0.1 npm
-nvidia-container-toolkit 1.18.1-1 deb
-nvidia-container-toolkit-base 1.18.1-1 deb
-object-assign 4.1.1 npm
-object-inspect 1.13.4 npm
-on-finished 2.4.1 npm
-once 1.4.0 npm
-openssl 3.0.13-0ubuntu3.6 deb
-p-map 4.0.0 npm
-package-json-from-dist 1.0.0 npm
-pacote 18.0.6 npm
-pagent UNKNOWN binary
-parse-conflict-json 3.0.1 npm
-parseurl 1.3.3 npm
-passwd 1:4.13+dfsg1-4ubuntu3.2 deb
-path-key 3.1.1 npm
-path-scurry 1.11.1 npm
-path-to-regexp 0.1.12 npm
-perl 5.38.2-3.2ubuntu0.2 deb
-perl-base 5.38.2-3.2ubuntu0.2 deb
-pigz 2.8-1 deb
-pinentry-curses 1.2.1-3ubuntu5 deb
-postcss-selector-parser 6.1.0 npm
-proc-log 3.0.0 npm
-proc-log 4.2.0 npm
-procps 2:4.0.4-4ubuntu3.2 deb
-proggy 2.0.0 npm
-promise-all-reject-late 1.0.1 npm
-promise-call-limit 3.0.1 npm
-promise-inflight 1.0.1 npm
-promise-retry 2.0.1 npm
-promzard 1.0.2 npm
-proxy-addr 2.0.7 npm
-publicsuffix 20231001.0357-0.1 deb
-pump 3.0.3 npm
-python3 3.12.3-0ubuntu2.1 deb
-python3-minimal 3.12.3-0ubuntu2.1 deb
-python3.12 3.12.3-1ubuntu0.10 deb
-python3.12-minimal 3.12.3-1ubuntu0.10 deb
-qrcode-terminal 0.12.0 npm
-qs 6.14.1 npm
-range-parser 1.2.1 npm
-raw-body 2.5.3 npm
-read 3.0.1 npm
-read-cmd-shim 4.0.0 npm
-read-package-json-fast 3.0.2 npm
-readable-stream 3.6.2 npm
-readline-common 8.2-4build1 deb
-resenje.org/singleflight v0.4.3 go-module
-retry 0.12.0 npm
-safe-buffer 5.2.1 npm
-safer-buffer 2.1.2 npm (+1 duplicate)
-sed 4.9-2build1 deb
-semver 7.6.2 npm
-send 0.19.2 npm
-sensible-utils 0.0.22 deb
-serve-static 1.16.3 npm
-setprototypeof 1.2.0 npm
-shebang-command 2.0.0 npm
-shebang-regex 3.0.0 npm
-side-channel 1.1.0 npm
-side-channel-list 1.0.0 npm
-side-channel-map 1.0.1 npm
-side-channel-weakmap 1.0.2 npm
-signal-exit 4.1.0 npm
-sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 go-module (+1 duplicate)
-sigs.k8s.io/randfill v1.0.0 go-module
-sigs.k8s.io/structured-merge-diff/v6 v6.3.0 go-module
-sigs.k8s.io/yaml v1.4.0 go-module (+4 duplicates)
-sigs.k8s.io/yaml v1.6.0 go-module (+1 duplicate)
-sigstore 2.3.1 npm
-smart-buffer 4.2.0 npm
-socket.io 4.8.3 npm
-socket.io-adapter 2.5.6 npm
-socket.io-parser 4.2.5 npm
-socks 2.8.3 npm
-socks-proxy-agent 8.0.4 npm
-spdx-correct 3.2.0 npm
-spdx-exceptions 2.5.0 npm
-spdx-expression-parse 3.0.1 npm (+1 duplicate)
-spdx-expression-parse 4.0.0 npm
-spdx-license-ids 3.0.18 npm
-split-ca 1.0.1 npm
-sprintf-js 1.1.3 npm
-ssh2 1.17.0 npm
-ssri 10.0.6 npm
-statuses 2.0.2 npm
-stdlib go1.24.11 go-module (+4 duplicates)
-stdlib go1.24.2 go-module (+1 duplicate)
-stdlib go1.25.3 go-module (+2 duplicates)
-stdlib go1.25.4 go-module (+3 duplicates)
-string-width 4.2.3 npm (+1 duplicate)
-string-width 5.1.2 npm (+1 duplicate)
-string_decoder 1.3.0 npm
-strip-ansi 6.0.1 npm (+1 duplicate)
-strip-ansi 7.1.0 npm (+1 duplicate)
-sudo 1.9.15p5-3ubuntu5.24.04.1 deb
-supports-color 9.4.0 npm
-systemd-standalone-sysusers 255.4-1ubuntu8.12 deb
-systeminformation 5.30.5 npm
-sysvinit-utils 3.08-6ubuntu3 deb
-tags.cncf.io/container-device-interface v1.0.1 go-module
-tags.cncf.io/container-device-interface v1.0.2-0.20251114135136-1b24d969689f go-module (+3 duplicates)
-tags.cncf.io/container-device-interface v1.1.0 go-module (+2 duplicates)
-tags.cncf.io/container-device-interface/specs-go v1.0.0 go-module (+4 duplicates)
-tags.cncf.io/container-device-interface/specs-go v1.1.0 go-module (+1 duplicate)
-tar 1.35+dfsg-3build1 deb
-tar 6.2.1 npm
-tar-fs 2.0.1 npm
-tar-stream 2.2.0 npm
-text-table 0.2.0 npm
-tiny-relative-date 1.3.0 npm
-toidentifier 1.0.1 npm
-treeverse 3.0.0 npm
-tuf-js 2.2.1 npm
-tweetnacl 0.14.5 npm
-type-is 1.6.18 npm
-tzdata 2025b-0ubuntu0.24.04.1 deb
-ubuntu-keyring 2023.11.28.1 deb
-uidmap 1:4.13+dfsg1-4ubuntu3.2 deb
-undici-types 7.16.0 npm
-unique-filename 3.0.0 npm
-unique-slug 4.0.0 npm
-unminimize 0.2.1 deb
-unpipe 1.0.0 npm
-util-deprecate 1.0.2 npm (+1 duplicate)
-util-linux 2.39.3-9ubuntu6.4 deb
-utils-merge 1.0.1 npm
-validate-npm-package-license 3.0.4 npm
-validate-npm-package-name 5.0.1 npm
-vary 1.1.2 npm
-walk-up-path 3.0.1 npm
-which 2.0.2 npm
-which 4.0.0 npm
-wrap-ansi 7.0.0 npm
-wrap-ansi 8.1.0 npm
-wrappy 1.0.2 npm
-write-file-atomic 5.0.1 npm
-ws 8.18.3 npm
-xfsprogs 6.6.0-1ubuntu2.1 deb
-xz-utils 5.6.1+really5.4.5-1ubuntu0.2 deb
-yallist 4.0.0 npm
-zlib1g 1:1.3.dfsg-3.1ubuntu2.1 deb
+NAME VERSION TYPE
+1to2 1.0.0 npm
+@balena/dockerignore 1.0.2 npm
+@isaacs/cliui 8.0.2 npm
+@isaacs/string-locale-compare 1.1.0 npm
+@npmcli/agent 2.2.2 npm
+@npmcli/arborist 7.5.4 npm
+@npmcli/config 8.3.4 npm
+@npmcli/fs 3.1.1 npm
+@npmcli/git 5.0.8 npm
+@npmcli/installed-package-contents 2.1.0 npm
+@npmcli/map-workspaces 3.0.6 npm
+@npmcli/metavuln-calculator 7.1.1 npm
+@npmcli/name-from-folder 2.0.0 npm
+@npmcli/node-gyp 3.0.0 npm
+@npmcli/package-json 5.2.0 npm
+@npmcli/promise-spawn 7.0.2 npm
+@npmcli/query 3.1.0 npm
+@npmcli/redact 2.0.1 npm
+@npmcli/run-script 8.1.0 npm
+@pkgjs/parseargs 0.11.0 npm
+@sigstore/bundle 2.3.2 npm
+@sigstore/core 1.1.0 npm
+@sigstore/protobuf-specs 0.3.2 npm
+@sigstore/sign 2.3.2 npm
+@sigstore/tuf 2.3.4 npm
+@sigstore/verify 1.2.1 npm
+@socket.io/component-emitter 3.1.2 npm
+@socket.io/component-emitter UNKNOWN npm (+1 duplicate)
+@tufjs/canonical-json 2.0.0 npm
+@tufjs/models 2.0.1 npm
+@types/cors 2.8.19 npm
+@types/node 22.15.30 npm
+abbrev 2.0.0 npm
+accepts 1.3.8 npm
+adduser 3.118ubuntu5 deb
+agent-base 7.1.1 npm
+aggregate-error 3.1.0 npm
+ansi-regex 5.0.1 npm
+ansi-regex 6.0.1 npm (+1 duplicate)
+ansi-styles 4.3.0 npm
+ansi-styles 6.2.1 npm
+aproba 2.0.0 npm
+apt 2.4.14 deb
+apt-transport-https 2.4.14 deb
+apt-utils 2.4.14 deb
+archy 1.0.0 npm
+argparse 2.0.1 npm
+array-flatten 1.1.1 npm
+asn1 0.2.6 npm
+balanced-match 1.0.2 npm
+base-files 12ubuntu4.7 deb
+base-passwd 3.5.52build1 deb
+base64-js 1.5.1 npm
+base64id 2.0.0 npm
+bash 5.1-6ubuntu1.1 deb
+bcrypt-pbkdf 1.0.2 npm
+bin-links 4.0.4 npm
+binary-extensions 2.3.0 npm
+bl 4.1.0 npm
+body-parser 1.20.3 npm
+brace-expansion 2.0.1 npm
+bsdutils 1:2.37.2-4ubuntu3.4 deb
+btrfs-progs 5.16.2-1 deb
+buffer 5.7.1 npm
+buildcheck 0.0.6 npm
+bytes 3.1.2 npm
+ca-certificates 20240203~22.04.1 deb
+cacache 18.0.3 npm
+call-bind-apply-helpers 1.0.2 npm
+call-bound 1.0.4 npm
+catatonit 0.1.7-1 deb
+chalk 5.3.0 npm
+chownr 1.1.4 npm
+chownr 2.0.0 npm
+ci-info 4.0.0 npm
+cidr-regex 4.1.1 npm
+clean-stack 2.2.0 npm
+cli-columns 4.0.0 npm
+cloud.google.com/go/compute/metadata v0.5.2 go-module
+cloud.google.com/go/logging v1.9.0 go-module
+cloud.google.com/go/longrunning v0.5.4 go-module
+cmd-shim 6.0.3 npm
+code.cloudfoundry.org/clock v1.1.0 go-module
+color-convert 2.0.1 npm
+color-name 1.1.4 npm
+common-ancestor-path 1.0.1 npm
+containerd.io 1.7.27-1 deb
+content-disposition 0.5.4 npm
+content-type 1.0.5 npm
+cookie 0.7.1 npm
+cookie 0.7.2 npm
+cookie-signature 1.0.6 npm
+corepack 0.32.0 npm
+coreutils 8.32-4.1ubuntu1.2 deb
+cors 2.8.5 npm
+cpu-features 0.0.10 npm
+cron 3.0pl1-137ubuntu3 deb
+cross-spawn 7.0.3 npm
+cssesc 3.0.0 npm
+curl 7.81.0-1ubuntu1.20 deb
+dario.cat/mergo v1.0.0 go-module
+dario.cat/mergo v1.0.1 go-module
+dash 0.5.11+git20210903+057cd650a4ed-3build1 deb
+debconf 1.5.79ubuntu1 deb
+debianutils 5.5-1ubuntu2 deb
+debug 2.6.9 npm (+3 duplicates)
+debug 4.3.5 npm
+debug 4.3.7 npm (+3 duplicates)
+debug 4.4.1 npm
+depd 2.0.0 npm
+destroy 1.2.0 npm
+diff 5.2.0 npm
+diffutils 1:3.8-0ubuntu2 deb
+dirmngr 2.2.27-3ubuntu2.3 deb
+docker-ce 5:28.2.2-1~ubuntu.22.04~jammy deb
+docker-ce-cli 5:28.2.2-1~ubuntu.22.04~jammy deb
+docker-modem 3.0.8 npm
+dockerode 3.3.5 npm
+dpkg 1.21.1ubuntu2.3 deb
+dunder-proto 1.0.1 npm
+e2fsprogs 1.46.5-2ubuntu1.2 deb
+eastasianwidth 0.2.0 npm
+ee-first 1.1.1 npm
+emoji-regex 8.0.0 npm
+emoji-regex 9.2.2 npm (+1 duplicate)
+encodeurl 1.0.2 npm
+encodeurl 2.0.0 npm
+encoding 0.1.13 npm
+end-of-stream 1.4.4 npm
+engine.io 6.6.4 npm
+engine.io-parser 5.2.3 npm
+engine.io-parser UNKNOWN npm (+1 duplicate)
+env-paths 2.2.1 npm
+err-code 2.0.3 npm
+es-define-property 1.0.1 npm
+es-errors 1.3.0 npm
+es-object-atoms 1.1.1 npm
+escape-html 1.0.3 npm
+etag 1.8.1 npm
+exponential-backoff 3.1.1 npm
+express 4.21.2 npm
+fastest-levenshtein 1.0.16 npm
+finalhandler 1.3.1 npm
+findutils 4.8.0-1ubuntu3 deb
+foreground-child 3.2.1 npm
+forwarded 0.2.0 npm
+fresh 0.5.2 npm
+fs-constants 1.0.0 npm
+fs-minipass 2.1.0 npm
+fs-minipass 3.0.3 npm
+function-bind 1.1.2 npm
+fuse-overlayfs 1.7.1-1 deb
+fuse3 3.10.5-1build1 deb
+gcc-12-base 12.3.0-1ubuntu1~22.04 deb
+get-intrinsic 1.3.0 npm
+get-proto 1.0.1 npm
+github.com/AlecAivazis/survey/v2 v2.3.2 go-module
+github.com/Azure/azure-sdk-for-go/sdk/azcore v1.16.0 go-module
+github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 go-module
+github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.5.0 go-module
+github.com/Graylog2/go-gelf v0.0.0-20191017102106-1550ee647df0 go-module
+github.com/Masterminds/semver v1.5.0 go-module
+github.com/Microsoft/hcsshim v0.11.7 go-module (+1 duplicate)
+github.com/Microsoft/hcsshim v0.12.9 go-module
+github.com/NVIDIA/go-nvlib v0.7.2 go-module (+3 duplicates)
+github.com/NVIDIA/go-nvml v0.12.4-1 go-module (+3 duplicates)
+github.com/NVIDIA/nvidia-container-toolkit v1.17.8 go-module (+3 duplicates)
+github.com/RackSec/srslog v0.0.0-20180709174129-a4725f04ec91 go-module
+github.com/a8m/envsubst v1.4.2 go-module (+1 duplicate)
+github.com/agext/levenshtein v1.2.3 go-module
+github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 go-module
+github.com/alecthomas/participle/v2 v2.1.4 go-module (+1 duplicate)
+github.com/anchore/go-struct-converter v0.0.0-20221118182256-c68fdcfa2092 go-module
+github.com/armon/circbuf v0.0.0-20190214190532-5111143e8da2 go-module
+github.com/armon/go-metrics v0.4.1 go-module
+github.com/aws/aws-sdk-go-v2 v1.30.3 go-module
+github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.3 go-module
+github.com/aws/aws-sdk-go-v2/config v1.27.27 go-module
+github.com/aws/aws-sdk-go-v2/credentials v1.17.27 go-module
+github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 go-module
+github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.15 go-module
+github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.15 go-module
+github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 go-module
+github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.32.0 go-module
+github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 go-module
+github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 go-module
+github.com/aws/aws-sdk-go-v2/service/sso v1.22.4 go-module
+github.com/aws/aws-sdk-go-v2/service/ssooidc v1.26.4 go-module
+github.com/aws/aws-sdk-go-v2/service/sts v1.30.3 go-module
+github.com/aws/smithy-go v1.20.3 go-module
+github.com/beorn7/perks v1.0.1 go-module (+2 duplicates)
+github.com/bits-and-blooms/bitset v1.13.0 go-module
+github.com/blang/semver/v4 v4.0.0 go-module
+github.com/buger/goterm v1.0.4 go-module
+github.com/cenkalti/backoff/v4 v4.2.1 go-module
+github.com/cenkalti/backoff/v4 v4.3.0 go-module
+github.com/cespare/xxhash/v2 v2.1.2 go-module
+github.com/cespare/xxhash/v2 v2.2.0 go-module
+github.com/cespare/xxhash/v2 v2.3.0 go-module
+github.com/checkpoint-restore/go-criu/v6 v6.3.0 go-module
+github.com/cilium/ebpf v0.16.0 go-module
+github.com/cilium/ebpf v0.17.3 go-module
+github.com/cilium/ebpf v0.9.1 go-module (+3 duplicates)
+github.com/cloudflare/cfssl v1.6.4 go-module
+github.com/cnabio/cnab-go v0.10.0-beta1 go-module
+github.com/cnabio/cnab-to-oci v0.3.1-beta1 go-module
+github.com/compose-spec/compose-go v1.2.4 go-module
+github.com/container-storage-interface/spec v1.5.0 go-module
+github.com/containerd/accelerated-container-image v1.3.0 go-module
+github.com/containerd/aufs v1.0.0 go-module
+github.com/containerd/btrfs/v2 v2.0.0 go-module
+github.com/containerd/cgroups v1.1.0 go-module (+1 duplicate)
+github.com/containerd/cgroups/v3 v3.0.2 go-module (+3 duplicates)
+github.com/containerd/cgroups/v3 v3.0.5 go-module
+github.com/containerd/console v1.0.3 go-module (+5 duplicates)
+github.com/containerd/console v1.0.4 go-module (+1 duplicate)
+github.com/containerd/containerd v1.6.2 go-module
+github.com/containerd/containerd v1.7.27 go-module (+4 duplicates)
+github.com/containerd/containerd/api v1.8.0 go-module (+4 duplicates)
+github.com/containerd/containerd/api v1.9.0 go-module
+github.com/containerd/containerd/v2 v2.0.5 go-module
+github.com/containerd/continuity v0.2.2 go-module
+github.com/containerd/continuity v0.4.4 go-module (+4 duplicates)
+github.com/containerd/continuity v0.4.5 go-module
+github.com/containerd/errdefs v0.3.0 go-module (+4 duplicates)
+github.com/containerd/errdefs v1.0.0 go-module
+github.com/containerd/errdefs/pkg v0.3.0 go-module
+github.com/containerd/fifo v1.1.0 go-module (+5 duplicates)
+github.com/containerd/go-cni v1.1.12 go-module
+github.com/containerd/go-cni v1.1.9 go-module (+1 duplicate)
+github.com/containerd/go-runc v1.0.0 go-module (+4 duplicates)
+github.com/containerd/go-runc v1.1.0 go-module
+github.com/containerd/imgcrypt v1.1.8 go-module
+github.com/containerd/log v0.1.0 go-module (+6 duplicates)
+github.com/containerd/nri v0.8.0 go-module
+github.com/containerd/platforms v0.2.1 go-module (+3 duplicates)
+github.com/containerd/platforms v1.0.0-rc.1 go-module
+github.com/containerd/plugin v1.0.0 go-module
+github.com/containerd/stargz-snapshotter/estargz v0.16.3 go-module
+github.com/containerd/ttrpc v1.1.0 go-module
+github.com/containerd/ttrpc v1.2.7 go-module (+5 duplicates)
+github.com/containerd/typeurl v1.0.2 go-module (+1 duplicate)
+github.com/containerd/typeurl/v2 v2.1.1 go-module (+4 duplicates)
+github.com/containerd/typeurl/v2 v2.2.3 go-module
+github.com/containerd/zfs v1.1.0 go-module
+github.com/containernetworking/cni v1.1.2 go-module (+1 duplicate)
+github.com/containernetworking/cni v1.2.3 go-module
+github.com/containernetworking/plugins v1.2.0 go-module
+github.com/containernetworking/plugins v1.6.2 go-module
+github.com/containers/ocicrypt v1.1.10 go-module
+github.com/coreos/go-systemd/v22 v22.5.0 go-module (+5 duplicates)
+github.com/cpuguy83/go-md2man/v2 v2.0.5 go-module (+1 duplicate)
+github.com/cyphar/filepath-securejoin v0.4.1 go-module (+3 duplicates)
+github.com/davecgh/go-spew v1.1.1 go-module (+2 duplicates)
+github.com/deckarep/golang-set/v2 v2.3.0 go-module
+github.com/dimchansky/utfbom v1.1.1 go-module (+2 duplicates)
+github.com/distribution/distribution/v3 v3.0.0-20210316161203-a01c71e2477e go-module
+github.com/distribution/reference v0.6.0 go-module (+2 duplicates)
+github.com/docker/buildx v0.8.1 go-module
+github.com/docker/cli v20.10.3-0.20220309205733-2b52f62e9627+incompatible go-module
+github.com/docker/cli/cmd/docker UNKNOWN go-module
+github.com/docker/compose/v2 UNKNOWN go-module
+github.com/docker/distribution v2.8.0+incompatible go-module
+github.com/docker/distribution v2.8.3+incompatible go-module
+github.com/docker/docker v20.10.3-0.20220309172631-83b51522df43+incompatible go-module
+github.com/docker/docker v28.2.2 go-module (+1 duplicate)
+github.com/docker/docker-credential-helpers v0.6.4 go-module
+github.com/docker/go v1.5.1-1.0.20160303222718-d30aec9fd63c go-module
+github.com/docker/go-connections v0.4.0 go-module
+github.com/docker/go-connections v0.5.0 go-module
+github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c go-module (+4 duplicates)
+github.com/docker/go-metrics v0.0.1 go-module (+2 duplicates)
+github.com/docker/go-units v0.4.0 go-module
+github.com/docker/go-units v0.5.0 go-module (+5 duplicates)
+github.com/docker/libtrust v0.0.0-20150526203908-9cbd2a1374f4 go-module
+github.com/dustin/go-humanize v1.0.0 go-module
+github.com/elliotchance/orderedmap v1.8.0 go-module (+1 duplicate)
+github.com/emicklei/go-restful/v3 v3.10.1 go-module
+github.com/fatih/color v1.18.0 go-module (+1 duplicate)
+github.com/felixge/httpsnoop v1.0.2 go-module
+github.com/felixge/httpsnoop v1.0.3 go-module (+1 duplicate)
+github.com/felixge/httpsnoop v1.0.4 go-module
+github.com/fernet/fernet-go v0.0.0-20211208181803-9f70042a33ee go-module
+github.com/fluent/fluent-logger-golang v1.9.0 go-module
+github.com/fsnotify/fsnotify v1.6.0 go-module
+github.com/fsnotify/fsnotify v1.7.0 go-module (+4 duplicates)
+github.com/fvbommel/sortorder v1.0.1 go-module
+github.com/go-jose/go-jose/v3 v3.0.3 go-module
+github.com/go-logr/logr v1.2.2 go-module
+github.com/go-logr/logr v1.4.2 go-module (+2 duplicates)
+github.com/go-logr/stdr v1.2.2 go-module (+3 duplicates)
+github.com/goccy/go-json v0.10.5 go-module (+1 duplicate)
+github.com/goccy/go-yaml v1.13.3 go-module (+1 duplicate)
+github.com/godbus/dbus/v5 v5.1.0 go-module (+5 duplicates)
+github.com/gofrs/flock v0.12.1 go-module
+github.com/gofrs/flock v0.8.0 go-module
+github.com/gogo/googleapis v1.4.1 go-module
+github.com/gogo/protobuf v1.3.2 go-module (+6 duplicates)
+github.com/golang-jwt/jwt/v5 v5.2.2 go-module
+github.com/golang/gddo v0.0.0-20190904175337-72a348e765d2 go-module
+github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da go-module
+github.com/golang/mock v1.6.0 go-module
+github.com/golang/protobuf v1.5.2 go-module
+github.com/golang/protobuf v1.5.4 go-module (+5 duplicates)
+github.com/google/btree v1.1.2 go-module
+github.com/google/certificate-transparency-go v1.1.4 go-module
+github.com/google/go-cmp v0.5.7 go-module
+github.com/google/go-cmp v0.6.0 go-module (+4 duplicates)
+github.com/google/go-cmp v0.7.0 go-module
+github.com/google/gofuzz v1.2.0 go-module (+1 duplicate)
+github.com/google/s2a-go v0.1.7 go-module
+github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 go-module (+1 duplicate)
+github.com/google/uuid v1.4.0 go-module (+1 duplicate)
+github.com/google/uuid v1.6.0 go-module (+4 duplicates)
+github.com/googleapis/enterprise-certificate-proxy v0.3.2 go-module
+github.com/googleapis/gax-go/v2 v2.12.0 go-module
+github.com/gorilla/mux v1.8.0 go-module
+github.com/gorilla/mux v1.8.1 go-module
+github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 go-module (+1 duplicate)
+github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 go-module (+1 duplicate)
+github.com/grpc-ecosystem/grpc-gateway v1.16.0 go-module
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 go-module
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 go-module
+github.com/hashicorp/errwrap v1.1.0 go-module (+1 duplicate)
+github.com/hashicorp/go-immutable-radix v1.3.1 go-module
+github.com/hashicorp/go-immutable-radix/v2 v2.1.0 go-module
+github.com/hashicorp/go-memdb v1.3.2 go-module
+github.com/hashicorp/go-msgpack v0.5.5 go-module
+github.com/hashicorp/go-multierror v1.1.1 go-module (+1 duplicate)
+github.com/hashicorp/go-sockaddr v1.0.2 go-module
+github.com/hashicorp/go-version v1.3.0 go-module
+github.com/hashicorp/golang-lru v0.5.4 go-module
+github.com/hashicorp/golang-lru/v2 v2.0.7 go-module
+github.com/hashicorp/memberlist v0.4.0 go-module
+github.com/hashicorp/serf v0.8.5 go-module
+github.com/imdario/mergo v0.3.12 go-module
+github.com/in-toto/in-toto-golang v0.5.0 go-module
+github.com/intel/goresctrl v0.5.0 go-module (+1 duplicate)
+github.com/ishidawataru/sctp v0.0.0-20230406120618-7ff4192f6ff2 go-module (+1 duplicate)
+github.com/jinzhu/copier v0.4.0 go-module (+1 duplicate)
+github.com/jmoiron/sqlx v1.3.3 go-module
+github.com/json-iterator/go v1.1.12 go-module (+1 duplicate)
+github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 go-module
+github.com/klauspost/compress v1.15.0 go-module
+github.com/klauspost/compress v1.16.7 go-module (+3 duplicates)
+github.com/klauspost/compress v1.18.0 go-module
+github.com/klauspost/cpuid/v2 v2.0.4 go-module (+1 duplicate)
+github.com/magiconair/properties v1.8.9 go-module (+1 duplicate)
+github.com/mattn/go-colorable v0.1.12 go-module
+github.com/mattn/go-colorable v0.1.13 go-module (+1 duplicate)
+github.com/mattn/go-isatty v0.0.14 go-module
+github.com/mattn/go-isatty v0.0.20 go-module (+1 duplicate)
+github.com/mattn/go-shellwords v1.0.12 go-module
+github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 go-module
+github.com/matttproud/golang_protobuf_extensions v1.0.4 go-module
+github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b go-module
+github.com/miekg/dns v1.1.61 go-module
+github.com/miekg/pkcs11 v1.1.1 go-module
+github.com/mikefarah/yq/v4 v0.0.0-20250410031946-f00e28295f0c go-module (+1 duplicate)
+github.com/minio/sha256-simd v1.0.0 go-module (+1 duplicate)
+github.com/mistifyio/go-zfs/v3 v3.0.1 go-module (+1 duplicate)
+github.com/mitchellh/copystructure v1.2.0 go-module
+github.com/mitchellh/hashstructure/v2 v2.0.2 go-module
+github.com/mitchellh/mapstructure v1.4.3 go-module
+github.com/mitchellh/reflectwalk v1.0.2 go-module
+github.com/moby/buildkit v0.10.0-rc2.0.20220308185020-fdecd0ae108b go-module
+github.com/moby/buildkit v0.22.0 go-module
+github.com/moby/docker-image-spec v1.3.1 go-module
+github.com/moby/go-archive v0.1.0 go-module
+github.com/moby/ipvs v1.1.0 go-module
+github.com/moby/locker v1.0.1 go-module (+3 duplicates)
+github.com/moby/patternmatcher v0.6.0 go-module
+github.com/moby/pubsub v1.0.0 go-module
+github.com/moby/spdystream v0.2.0 go-module
+github.com/moby/swarmkit/v2 v2.0.0-20250103191802-8c1959736554 go-module
+github.com/moby/sys/atomicwriter v0.1.0 go-module
+github.com/moby/sys/mount v0.3.4 go-module
+github.com/moby/sys/mountinfo v0.6.2 go-module (+4 duplicates)
+github.com/moby/sys/mountinfo v0.7.1 go-module
+github.com/moby/sys/mountinfo v0.7.2 go-module
+github.com/moby/sys/reexec v0.1.0 go-module (+2 duplicates)
+github.com/moby/sys/sequential v0.6.0 go-module
+github.com/moby/sys/signal v0.6.0 go-module
+github.com/moby/sys/signal v0.7.0 go-module (+1 duplicate)
+github.com/moby/sys/signal v0.7.1 go-module
+github.com/moby/sys/symlink v0.2.0 go-module (+1 duplicate)
+github.com/moby/sys/symlink v0.3.0 go-module (+2 duplicates)
+github.com/moby/sys/user v0.3.0 go-module (+4 duplicates)
+github.com/moby/sys/user v0.4.0 go-module
+github.com/moby/sys/userns v0.1.0 go-module (+6 duplicates)
+github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 go-module
+github.com/moby/term v0.5.2 go-module
+github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd go-module (+1 duplicate)
+github.com/modern-go/reflect2 v1.0.2 go-module (+1 duplicate)
+github.com/morikuni/aec v1.0.0 go-module (+1 duplicate)
+github.com/mrunalp/fileutils v0.5.1 go-module
+github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 go-module
+github.com/opencontainers/cgroups v0.0.2 go-module
+github.com/opencontainers/go-digest v1.0.0 go-module (+6 duplicates)
+github.com/opencontainers/image-spec v1.0.2 go-module
+github.com/opencontainers/image-spec v1.1.0 go-module (+4 duplicates)
+github.com/opencontainers/image-spec v1.1.1 go-module
+github.com/opencontainers/runc v0.0.0-20250213225849-59923ef18c98 go-module
+github.com/opencontainers/runc v1.1.0 go-module
+github.com/opencontainers/runc v1.2.6 go-module (+1 duplicate)
+github.com/opencontainers/runtime-spec v1.1.0 go-module (+4 duplicates)
+github.com/opencontainers/runtime-spec v1.2.0 go-module
+github.com/opencontainers/runtime-spec v1.2.1 go-module (+4 duplicates)
+github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626 go-module (+5 duplicates)
+github.com/opencontainers/selinux v1.11.0 go-module (+2 duplicates)
+github.com/opencontainers/selinux v1.12.0 go-module
+github.com/package-url/packageurl-go v0.1.1 go-module
+github.com/pelletier/go-toml v1.9.4 go-module
+github.com/pelletier/go-toml v1.9.5 go-module (+6 duplicates)
+github.com/pelletier/go-toml/v2 v2.2.3 go-module (+2 duplicates)
+github.com/philhofer/fwd v1.1.2 go-module
+github.com/pkg/errors v0.9.1 go-module (+6 duplicates)
+github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 go-module
+github.com/pmezard/go-difflib v1.0.0 go-module
+github.com/prometheus/client_golang v1.12.1 go-module
+github.com/prometheus/client_golang v1.16.0 go-module
+github.com/prometheus/client_golang v1.20.5 go-module
+github.com/prometheus/client_model v0.2.0 go-module
+github.com/prometheus/client_model v0.3.0 go-module
+github.com/prometheus/client_model v0.6.1 go-module
+github.com/prometheus/common v0.32.1 go-module
+github.com/prometheus/common v0.42.0 go-module
+github.com/prometheus/common v0.55.0 go-module
+github.com/prometheus/procfs v0.10.1 go-module
+github.com/prometheus/procfs v0.15.1 go-module
+github.com/prometheus/procfs v0.7.3 go-module
+github.com/qri-io/jsonpointer v0.1.0 go-module
+github.com/qri-io/jsonschema v0.1.1 go-module
+github.com/rootless-containers/rootlesskit/v2 v2.3.4 go-module
+github.com/russross/blackfriday/v2 v2.1.0 go-module (+1 duplicate)
+github.com/sanathkr/go-yaml v0.0.0-20170819195128-ed9d249f429b go-module
+github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 go-module
+github.com/seccomp/libseccomp-golang v0.10.0 go-module
+github.com/secure-systems-lab/go-securesystemslib v0.4.0 go-module
+github.com/shibumi/go-pathspec v1.3.0 go-module
+github.com/sirupsen/logrus v1.8.1 go-module
+github.com/sirupsen/logrus v1.9.3 go-module (+11 duplicates)
+github.com/spdx/tools-golang v0.5.3 go-module
+github.com/spf13/cobra v1.4.0 go-module
+github.com/spf13/cobra v1.8.1 go-module (+1 duplicate)
+github.com/spf13/cobra v1.9.1 go-module
+github.com/spf13/pflag v1.0.5 go-module (+1 duplicate)
+github.com/spf13/pflag v1.0.6 go-module (+2 duplicates)
+github.com/stefanberger/go-pkcs11uri v0.0.0-20230803200340-78284954bff6 go-module
+github.com/stretchr/testify v1.10.0 go-module
+github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 go-module (+6 duplicates)
+github.com/tchap/go-patricia/v2 v2.3.1 go-module
+github.com/theupdateframework/notary v0.6.1 go-module
+github.com/tinylib/msgp v1.1.8 go-module
+github.com/tonistiigi/dchapes-mode v0.0.0-20250318174251-73d941a28323 go-module
+github.com/tonistiigi/fsutil v0.0.0-20220315205639-9ed612626da3 go-module
+github.com/tonistiigi/fsutil v0.0.0-20250417144416-3f76f8130144 go-module
+github.com/tonistiigi/go-actions-cache v0.0.0-20250228231703-3e9a6642607f go-module
+github.com/tonistiigi/go-archvariant v1.0.0 go-module
+github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4 go-module
+github.com/tonistiigi/units v0.0.0-20180711220420-6950e57a87ea go-module (+1 duplicate)
+github.com/tonistiigi/vt100 v0.0.0-20210615222946-8066bb97264f go-module
+github.com/urfave/cli v1.22.12 go-module (+1 duplicate)
+github.com/urfave/cli v1.22.14 go-module
+github.com/urfave/cli/v2 v2.27.5 go-module (+1 duplicate)
+github.com/vbatts/tar-split v0.12.1 go-module
+github.com/vishvananda/netlink v1.1.0 go-module
+github.com/vishvananda/netlink v1.2.1-beta.2 go-module
+github.com/vishvananda/netlink v1.3.1 go-module
+github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df go-module
+github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f go-module
+github.com/vishvananda/netns v0.0.5 go-module
+github.com/weppos/publicsuffix-go v0.15.1-0.20210511084619-b1f36a2d6c0b go-module
+github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb go-module
+github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 go-module
+github.com/xeipuuv/gojsonschema v1.2.0 go-module
+github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 go-module (+1 duplicate)
+github.com/yuin/gopher-lua v1.1.1 go-module (+1 duplicate)
+github.com/zmap/zcrypto v0.0.0-20210511125630-18f1e0152cfc go-module
+github.com/zmap/zlint/v3 v3.1.0 go-module
+glob 10.4.2 npm
+gnupg 2.2.27-3ubuntu2.3 deb
+gnupg-l10n 2.2.27-3ubuntu2.3 deb
+gnupg-utils 2.2.27-3ubuntu2.3 deb
+go.etcd.io/bbolt v1.3.10 go-module
+go.etcd.io/bbolt v1.3.11 go-module
+go.etcd.io/etcd/client/pkg/v3 v3.5.16 go-module
+go.etcd.io/etcd/pkg/v3 v3.5.16 go-module
+go.etcd.io/etcd/raft/v3 v3.5.16 go-module
+go.etcd.io/etcd/server/v3 v3.5.16 go-module
+go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1 go-module
+go.opencensus.io v0.24.0 go-module
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.29.0 go-module
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 go-module
+go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.56.0 go-module
+go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.29.0 go-module
+go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace v0.56.0 go-module
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.29.0 go-module
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0 go-module (+1 duplicate)
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.56.0 go-module
+go.opentelemetry.io/contrib/processors/baggagecopy v0.4.0 go-module
+go.opentelemetry.io/otel v1.21.0 go-module (+1 duplicate)
+go.opentelemetry.io/otel v1.31.0 go-module
+go.opentelemetry.io/otel v1.4.1 go-module
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v1.31.0 go-module
+go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v1.31.0 go-module
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 go-module
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.31.0 go-module
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.4.1 go-module
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 go-module
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.31.0 go-module
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0 go-module
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.31.0 go-module
+go.opentelemetry.io/otel/internal/metric v0.27.0 go-module
+go.opentelemetry.io/otel/metric v0.27.0 go-module
+go.opentelemetry.io/otel/metric v1.21.0 go-module (+1 duplicate)
+go.opentelemetry.io/otel/metric v1.31.0 go-module
+go.opentelemetry.io/otel/sdk v1.21.0 go-module
+go.opentelemetry.io/otel/sdk v1.31.0 go-module
+go.opentelemetry.io/otel/sdk v1.4.1 go-module
+go.opentelemetry.io/otel/sdk/metric v1.31.0 go-module
+go.opentelemetry.io/otel/trace v1.21.0 go-module (+1 duplicate)
+go.opentelemetry.io/otel/trace v1.31.0 go-module
+go.opentelemetry.io/otel/trace v1.4.1 go-module
+go.opentelemetry.io/proto/otlp v0.12.0 go-module
+go.opentelemetry.io/proto/otlp v1.0.0 go-module
+go.opentelemetry.io/proto/otlp v1.3.1 go-module
+go.uber.org/atomic v1.9.0 go-module
+go.uber.org/multierr v1.8.0 go-module
+go.uber.org/zap v1.21.0 go-module
+golang.org/x/crypto v0.0.0-20211202192323-5770296d904e go-module
+golang.org/x/crypto v0.31.0 go-module
+golang.org/x/crypto v0.37.0 go-module
+golang.org/x/exp v0.0.0-20230224173230-c95f2b4c22f2 go-module
+golang.org/x/mod v0.17.0 go-module
+golang.org/x/mod v0.20.0 go-module (+3 duplicates)
+golang.org/x/mod v0.24.0 go-module
+golang.org/x/net v0.0.0-20211216030914-fe4d6282115f go-module
+golang.org/x/net v0.33.0 go-module (+3 duplicates)
+golang.org/x/net v0.39.0 go-module (+3 duplicates)
+golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8 go-module
+golang.org/x/oauth2 v0.11.0 go-module
+golang.org/x/oauth2 v0.29.0 go-module
+golang.org/x/sync v0.0.0-20210220032951-036812b2e83c go-module
+golang.org/x/sync v0.10.0 go-module (+4 duplicates)
+golang.org/x/sync v0.13.0 go-module
+golang.org/x/sys v0.0.0-20220114195835-da31bd327af9 go-module
+golang.org/x/sys v0.28.0 go-module (+9 duplicates)
+golang.org/x/sys v0.32.0 go-module (+3 duplicates)
+golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b go-module
+golang.org/x/term v0.27.0 go-module
+golang.org/x/text v0.21.0 go-module (+2 duplicates)
+golang.org/x/text v0.24.0 go-module (+2 duplicates)
+golang.org/x/text v0.3.7 go-module
+golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac go-module
+golang.org/x/time v0.0.0-20220210224613-90d013bbcef8 go-module
+golang.org/x/time v0.11.0 go-module
+google.golang.org/api v0.155.0 go-module
+google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa go-module
+google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3 go-module (+4 duplicates)
+google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80 go-module
+google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f go-module
+google.golang.org/genproto/googleapis/api v0.0.0-20241021214115-324edc3d5d38 go-module
+google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda go-module (+4 duplicates)
+google.golang.org/genproto/googleapis/rpc v0.0.0-20241021214115-324edc3d5d38 go-module
+google.golang.org/grpc v1.44.0 go-module
+google.golang.org/grpc v1.59.0 go-module (+4 duplicates)
+google.golang.org/grpc v1.69.4 go-module
+google.golang.org/protobuf v1.27.1 go-module
+google.golang.org/protobuf v1.33.0 go-module
+google.golang.org/protobuf v1.35.2 go-module (+5 duplicates)
+gopd 1.2.0 npm
+gopkg.in/inf.v0 v0.9.1 go-module (+2 duplicates)
+gopkg.in/op/go-logging.v1 v1.0.0-20160211212156-b2cb9fa56473 go-module (+1 duplicate)
+gopkg.in/yaml.v2 v2.4.0 go-module (+6 duplicates)
+gopkg.in/yaml.v3 v3.0.1 go-module (+3 duplicates)
+gpg 2.2.27-3ubuntu2.3 deb
+gpg-agent 2.2.27-3ubuntu2.3 deb
+gpg-wks-client 2.2.27-3ubuntu2.3 deb
+gpg-wks-server 2.2.27-3ubuntu2.3 deb
+gpgconf 2.2.27-3ubuntu2.3 deb
+gpgsm 2.2.27-3ubuntu2.3 deb
+gpgv 2.2.27-3ubuntu2.3 deb
+graceful-fs 4.2.11 npm
+grep 3.7-1build1 deb
+gzip 1.10-4ubuntu4.1 deb
+has-symbols 1.1.0 npm
+hasown 2.0.2 npm
+hosted-git-info 7.0.2 npm
+hostname 3.23ubuntu2 deb
+http-cache-semantics 4.1.1 npm
+http-errors 2.0.0 npm
+http-proxy-agent 7.0.2 npm
+https-proxy-agent 7.0.5 npm
+iconv-lite 0.4.24 npm
+iconv-lite 0.6.3 npm
+ieee754 1.2.1 npm
+ignore-walk 6.0.5 npm
+imurmurhash 0.1.4 npm
+indent-string 4.0.0 npm
+inherits 2.0.4 npm
+ini 4.1.3 npm
+init-package-json 6.0.3 npm
+init-system-helpers 1.62 deb
+ip-address 9.0.5 npm
+ip-regex 5.0.0 npm
+ipaddr.js 1.9.1 npm
+iproute2 5.15.0-1ubuntu2 deb
+iptables 1.8.7-1ubuntu5.2 deb
+is-cidr 5.1.0 npm
+is-fullwidth-code-point 3.0.0 npm
+is-lambda 1.0.1 npm
+isexe 2.0.0 npm
+isexe 3.1.1 npm
+jackspeak 3.4.0 npm
+jq 1.6-2.1ubuntu3 deb
+js-yaml 4.1.0 npm
+jsbn 1.1.0 npm
+json-parse-even-better-errors 3.0.2 npm
+json-stringify-nice 1.1.4 npm
+jsonparse 1.3.1 npm
+just-diff 6.0.2 npm
+just-diff-apply 5.5.0 npm
+k8s.io/api v0.26.2 go-module
+k8s.io/apimachinery v0.22.4 go-module
+k8s.io/apimachinery v0.27.4 go-module (+1 duplicate)
+k8s.io/apiserver v0.26.2 go-module
+k8s.io/client-go v0.22.4 go-module
+k8s.io/client-go v0.26.2 go-module
+k8s.io/component-base v0.26.2 go-module
+k8s.io/cri-api v0.27.1 go-module
+k8s.io/klog/v2 v2.130.1 go-module
+k8s.io/klog/v2 v2.30.0 go-module
+k8s.io/klog/v2 v2.90.1 go-module
+k8s.io/utils v0.0.0-20211116205334-6203023598ed go-module
+k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5 go-module
+kasm-wizard 0.0.1 npm
+libacl1 2.3.1-1 deb
+libapt-pkg6.0 2.4.14 deb
+libassuan0 2.5.5-1build1 deb
+libattr1 1:2.5.1-1build1 deb
+libaudit-common 1:3.0.7-1build1 deb
+libaudit1 1:3.0.7-1build1 deb
+libblkid1 2.37.2-4ubuntu3.4 deb
+libbpf0 1:0.5.0-1ubuntu22.04.1 deb
+libbrotli1 1.0.9-2build6 deb
+libbsd0 0.11.5-1 deb
+libbz2-1.0 1.0.8-5build1 deb
+libc-bin 2.35-0ubuntu3.10 deb
+libc6 2.35-0ubuntu3.10 deb
+libcap-ng0 0.7.9-2.2build3 deb
+libcap2 1:2.44-1ubuntu0.22.04.2 deb
+libcap2-bin 1:2.44-1ubuntu0.22.04.2 deb
+libcom-err2 1.46.5-2ubuntu1.2 deb
+libcrypt1 1:4.4.27-1 deb
+libcurl4 7.81.0-1ubuntu1.20 deb
+libdb5.3 5.3.28+dfsg1-0.8ubuntu3 deb
+libdebconfclient0 0.261ubuntu1 deb
+libdevmapper1.02.1 2:1.02.175-2.1ubuntu5 deb
+libedit2 3.1-20210910-1build1 deb
+libelf1 0.186-1ubuntu0.1 deb
+libexpat1 2.4.7-1ubuntu0.6 deb
+libext2fs2 1.46.5-2ubuntu1.2 deb
+libffi8 3.4.2-4 deb
+libfuse3-3 3.10.5-1build1 deb
+libgcc-s1 12.3.0-1ubuntu1~22.04 deb
+libgcrypt20 1.9.4-3ubuntu3 deb
+libgmp10 2:6.2.1+dfsg-3ubuntu1 deb
+libgnutls30 3.7.3-4ubuntu1.6 deb
+libgpg-error0 1.43-3 deb
+libgssapi-krb5-2 1.19.2-2ubuntu0.7 deb
+libhogweed6 3.7.3-1build2 deb
+libicu70 70.1-2 deb
+libidn2-0 2.3.2-2build1 deb
+libinih1 53-1ubuntu3 deb
+libip4tc2 1.8.7-1ubuntu5.2 deb
+libip6tc2 1.8.7-1ubuntu5.2 deb
+libjq1 1.6-2.1ubuntu3 deb
+libk5crypto3 1.19.2-2ubuntu0.7 deb
+libkeyutils1 1.6.1-2ubuntu3 deb
+libkrb5-3 1.19.2-2ubuntu0.7 deb
+libkrb5support0 1.19.2-2ubuntu0.7 deb
+libksba8 1.6.0-2ubuntu0.2 deb
+libldap-2.5-0 2.5.19+dfsg-0ubuntu0.22.04.1 deb
+libldap-common 2.5.19+dfsg-0ubuntu0.22.04.1 deb
+liblz4-1 1.9.3-2build2 deb
+liblzma5 5.2.5-2ubuntu1 deb
+liblzo2-2 2.10-2build3 deb
+libmd0 1.0.4-1build1 deb
+libmnl0 1.0.4-3build2 deb
+libmount1 2.37.2-4ubuntu3.4 deb
+libmpdec3 2.5.1-2build2 deb
+libncurses6 6.3-2ubuntu0.1 deb
+libncursesw6 6.3-2ubuntu0.1 deb
+libnetfilter-conntrack3 1.0.9-1 deb
+libnettle8 3.7.3-1build2 deb
+libnfnetlink0 1.0.1-3build3 deb
+libnftnl11 1.2.1-1build1 deb
+libnghttp2-14 1.43.0-1ubuntu0.2 deb
+libnpmaccess 8.0.6 npm
+libnpmdiff 6.1.4 npm
+libnpmexec 8.1.3 npm
+libnpmfund 5.0.12 npm
+libnpmhook 10.0.5 npm
+libnpmorg 6.0.6 npm
+libnpmpack 7.0.4 npm
+libnpmpublish 9.0.9 npm
+libnpmsearch 7.0.6 npm
+libnpmteam 6.0.5 npm
+libnpmversion 6.0.3 npm
+libnpth0 1.6-3build2 deb
+libnsl2 1.3.0-2build2 deb
+libnvidia-container-tools 1.17.8-1 deb
+libnvidia-container1 1.17.8-1 deb
+libonig5 6.9.7.1-2build1 deb
+libp11-kit0 0.24.0-6build1 deb
+libpam-modules 1.4.0-11ubuntu2.5 deb
+libpam-modules-bin 1.4.0-11ubuntu2.5 deb
+libpam-runtime 1.4.0-11ubuntu2.5 deb
+libpam0g 1.4.0-11ubuntu2.5 deb
+libpcre2-8-0 10.39-3ubuntu0.1 deb
+libpcre3 2:8.39-13ubuntu0.22.04.1 deb
+libprocps8 2:3.3.17-6ubuntu2.1 deb
+libpsl5 0.21.0-1.2build2 deb
+libpython3-stdlib 3.10.6-1~22.04.1 deb
+libpython3.10-minimal 3.10.12-1~22.04.9 deb
+libpython3.10-stdlib 3.10.12-1~22.04.9 deb
+libreadline8 8.1.2-1 deb
+librtmp1 2.4+20151223.gitfa8646d.1-2build4 deb
+libsasl2-2 2.1.27+dfsg2-3ubuntu1.2 deb
+libsasl2-modules 2.1.27+dfsg2-3ubuntu1.2 deb
+libsasl2-modules-db 2.1.27+dfsg2-3ubuntu1.2 deb
+libseccomp2 2.5.3-2ubuntu3~22.04.1 deb
+libselinux1 3.3-1build2 deb
+libsemanage-common 3.3-1build2 deb
+libsemanage2 3.3-1build2 deb
+libsepol2 3.3-1build1 deb
+libsmartcols1 2.37.2-4ubuntu3.4 deb
+libsqlite3-0 3.37.2-2ubuntu0.4 deb
+libss2 1.46.5-2ubuntu1.2 deb
+libssh-4 0.9.6-2ubuntu0.22.04.3 deb
+libssl3 3.0.2-0ubuntu1.19 deb
+libstdc++6 12.3.0-1ubuntu1~22.04 deb
+libsystemd0 249.11-0ubuntu3.15 deb
+libtasn1-6 4.18.0-4ubuntu0.1 deb
+libtinfo6 6.3-2ubuntu0.1 deb
+libtirpc-common 1.3.2-2ubuntu0.1 deb
+libtirpc3 1.3.2-2ubuntu0.1 deb
+libudev1 249.11-0ubuntu3.15 deb
+libunistring2 1.0-1 deb
+libuuid1 2.37.2-4ubuntu3.4 deb
+libxtables12 1.8.7-1ubuntu5.2 deb
+libxxhash0 0.8.1-1 deb
+libzstd1 1.4.8+dfsg-3build1 deb
+locales 2.35-0ubuntu3.10 deb
+lodash 4.17.21 npm
+login 1:4.8.1-2ubuntu2.2 deb
+logsave 1.46.5-2ubuntu1.2 deb
+lru-cache 10.2.2 npm
+lsb-base 11.1.0ubuntu4 deb
+lsof 4.93.2+dfsg-1.1build2 deb
+make-fetch-happen 13.0.1 npm
+math-intrinsics 1.1.0 npm
+mawk 1.3.4.20200120-3 deb
+media-typer 0.3.0 npm
+media-types 7.0.0 deb
+merge-descriptors 1.0.3 npm
+methods 1.1.2 npm
+mime 1.6.0 npm
+mime-db 1.52.0 npm
+mime-types 2.1.35 npm
+minimatch 9.0.5 npm
+minipass 3.3.6 npm (+4 duplicates)
+minipass 5.0.0 npm
+minipass 7.1.2 npm
+minipass-collect 2.0.1 npm
+minipass-fetch 3.0.5 npm
+minipass-flush 1.0.5 npm
+minipass-pipeline 1.2.4 npm
+minipass-sized 1.0.3 npm
+minizlib 2.1.2 npm
+mkdirp 1.0.4 npm
+mkdirp-classic 0.5.3 npm
+mount 2.37.2-4ubuntu3.4 deb
+ms 2.0.0 npm (+3 duplicates)
+ms 2.1.2 npm
+ms 2.1.3 npm (+1 duplicate)
+mute-stream 1.0.0 npm
+nan 2.22.2 npm
+ncurses-base 6.3-2ubuntu0.1 deb
+ncurses-bin 6.3-2ubuntu0.1 deb
+negotiator 0.6.3 npm (+1 duplicate)
+netbase 6.3 deb
+netcat 1.218-4ubuntu1 deb
+netcat-openbsd 1.218-4ubuntu1 deb
+node-gyp 10.1.0 npm
+node-pty 0.10.1 npm
+nodejs 18.20.8-1nodesource1 deb
+nopt 7.2.1 npm
+normalize-package-data 6.0.2 npm
+npm 10.8.2 npm
+npm-audit-report 5.0.0 npm
+npm-bundled 3.0.1 npm
+npm-install-checks 6.3.0 npm
+npm-normalize-package-bin 3.0.1 npm
+npm-package-arg 11.0.2 npm
+npm-packlist 8.0.2 npm
+npm-pick-manifest 9.1.0 npm
+npm-profile 10.0.0 npm
+npm-registry-fetch 17.1.0 npm
+npm-user-validate 2.0.1 npm
+nvidia-container-toolkit 1.17.8-1 deb
+nvidia-container-toolkit-base 1.17.8-1 deb
+nvidia-docker2 2.14.0-1 deb
+object-assign 4.1.1 npm
+object-inspect 1.13.4 npm
+on-finished 2.4.1 npm
+once 1.4.0 npm
+openssl 3.0.2-0ubuntu1.19 deb
+p-map 4.0.0 npm
+package-json-from-dist 1.0.0 npm
+pacote 18.0.6 npm
+pagent UNKNOWN binary
+parse-conflict-json 3.0.1 npm
+parseurl 1.3.3 npm
+passwd 1:4.8.1-2ubuntu2.2 deb
+path-key 3.1.1 npm
+path-scurry 1.11.1 npm
+path-to-regexp 0.1.12 npm
+perl-base 5.34.0-3ubuntu1.4 deb
+pigz 2.6-1 deb
+pinentry-curses 1.1.1-1build2 deb
+postcss-selector-parser 6.1.0 npm
+proc-log 3.0.0 npm
+proc-log 4.2.0 npm
+procps 2:3.3.17-6ubuntu2.1 deb
+proggy 2.0.0 npm
+promise-all-reject-late 1.0.1 npm
+promise-call-limit 3.0.1 npm
+promise-inflight 1.0.1 npm
+promise-retry 2.0.1 npm
+promzard 1.0.2 npm
+proxy-addr 2.0.7 npm
+publicsuffix 20211207.1025-1 deb
+pump 3.0.2 npm
+python3 3.10.6-1~22.04.1 deb
+python3-minimal 3.10.6-1~22.04.1 deb
+python3.10 3.10.12-1~22.04.9 deb
+python3.10-minimal 3.10.12-1~22.04.9 deb
+qrcode-terminal 0.12.0 npm
+qs 6.13.0 npm
+range-parser 1.2.1 npm
+raw-body 2.5.2 npm
+read 3.0.1 npm
+read-cmd-shim 4.0.0 npm
+read-package-json-fast 3.0.2 npm
+readable-stream 3.6.2 npm
+readline-common 8.1.2-1 deb
+resenje.org/singleflight v0.4.3 go-module
+retry 0.12.0 npm
+safe-buffer 5.2.1 npm
+safer-buffer 2.1.2 npm (+1 duplicate)
+sed 4.8-1ubuntu2 deb
+semver 7.6.2 npm
+send 0.19.0 npm
+sensible-utils 0.0.17 deb
+serve-static 1.16.2 npm
+setprototypeof 1.2.0 npm
+shebang-command 2.0.0 npm
+shebang-regex 3.0.0 npm
+side-channel 1.1.0 npm
+side-channel-list 1.0.0 npm
+side-channel-map 1.0.1 npm
+side-channel-weakmap 1.0.2 npm
+signal-exit 4.1.0 npm
+sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd go-module
+sigs.k8s.io/structured-merge-diff/v4 v4.2.1 go-module
+sigs.k8s.io/structured-merge-diff/v4 v4.2.3 go-module
+sigs.k8s.io/yaml v1.2.0 go-module
+sigs.k8s.io/yaml v1.3.0 go-module (+5 duplicates)
+sigs.k8s.io/yaml v1.4.0 go-module
+sigstore 2.3.1 npm
+smart-buffer 4.2.0 npm
+socket.io 4.8.1 npm
+socket.io-adapter 2.5.5 npm
+socket.io-parser 4.2.4 npm
+socks 2.8.3 npm
+socks-proxy-agent 8.0.4 npm
+spdx-correct 3.2.0 npm
+spdx-exceptions 2.5.0 npm
+spdx-expression-parse 3.0.1 npm (+1 duplicate)
+spdx-expression-parse 4.0.0 npm
+spdx-license-ids 3.0.18 npm
+split-ca 1.0.1 npm
+sprintf-js 1.1.3 npm
+ssh2 1.16.0 npm
+ssri 10.0.6 npm
+statuses 2.0.1 npm
+stdlib go1.17.9 go-module
+stdlib go1.23.7 go-module (+5 duplicates)
+stdlib go1.23.9 go-module (+3 duplicates)
+stdlib go1.24.2 go-module (+1 duplicate)
+stdlib go1.24.3 go-module (+2 duplicates)
+string-width 4.2.3 npm (+1 duplicate)
+string-width 5.1.2 npm (+1 duplicate)
+string_decoder 1.3.0 npm
+strip-ansi 6.0.1 npm (+1 duplicate)
+strip-ansi 7.1.0 npm (+1 duplicate)
+sudo 1.9.9-1ubuntu2.4 deb
+supports-color 9.4.0 npm
+systeminformation 5.27.1 npm
+sysvinit-utils 3.01-1ubuntu1 deb
+tags.cncf.io/container-device-interface v0.8.1 go-module (+4 duplicates)
+tags.cncf.io/container-device-interface v1.0.1 go-module
+tags.cncf.io/container-device-interface/specs-go v0.8.0 go-module (+4 duplicates)
+tags.cncf.io/container-device-interface/specs-go v1.0.0 go-module
+tar 1.34+dfsg-1ubuntu0.1.22.04.2 deb
+tar 6.2.1 npm
+tar-fs 2.0.1 npm
+tar-stream 2.2.0 npm
+text-table 0.2.0 npm
+tiny-relative-date 1.3.0 npm
+toidentifier 1.0.1 npm
+treeverse 3.0.0 npm
+tuf-js 2.2.1 npm
+tweetnacl 0.14.5 npm
+type-is 1.6.18 npm
+tzdata 2025b-0ubuntu0.22.04.1 deb
+ubuntu-keyring 2021.03.26 deb
+uidmap 1:4.8.1-2ubuntu2.2 deb
+undici-types 6.21.0 npm
+unique-filename 3.0.0 npm
+unique-slug 4.0.0 npm
+unpipe 1.0.0 npm
+usrmerge 25ubuntu2 deb
+util-deprecate 1.0.2 npm (+1 duplicate)
+util-linux 2.37.2-4ubuntu3.4 deb
+utils-merge 1.0.1 npm
+validate-npm-package-license 3.0.4 npm
+validate-npm-package-name 5.0.1 npm
+vary 1.1.2 npm
+walk-up-path 3.0.1 npm
+which 2.0.2 npm
+which 4.0.0 npm
+wrap-ansi 7.0.0 npm
+wrap-ansi 8.1.0 npm
+wrappy 1.0.2 npm
+write-file-atomic 5.0.1 npm
+ws 8.17.1 npm
+xfsprogs 5.13.0-1ubuntu2.1 deb
+yallist 4.0.0 npm
+zlib1g 1:1.2.11.dfsg-2ubuntu9.2 deb
diff --git a/readme-vars.yml b/readme-vars.yml
index cb9c974..d8356bf 100644
--- a/readme-vars.yml
+++ b/readme-vars.yml
@@ -1,142 +1,9 @@
+---
+
# project information
project_name: kasm
-project_url: "https://www.kasmweb.com/?utm_campaign=LinuxServer&utm_source=listing"
-project_logo: "https://kasm-ci.s3.amazonaws.com/kasm_wide.png"
-project_blurb: |
- [{{ project_name|capitalize }}]({{ project_url }}) Workspaces is a docker container streaming platform for delivering browser-based access to desktops, applications, and web services. Kasm uses devops-enabled Containerized Desktop Infrastructure (CDI) to create on-demand, disposable, docker containers that are accessible via web browser. Example use-cases include Remote Browser Isolation (RBI), Data Loss Prevention (DLP), Desktop as a Service (DaaS), Secure Remote Access Services (RAS), and Open Source Intelligence (OSINT) collections.
-
- The rendering of the graphical-based containers is powered by the open-source project [KasmVNC](https://www.kasmweb.com/kasmvnc.html?utm_campaign=LinuxServer&utm_source=kasmvnc).
-project_lsio_github_repo_url: "https://github.com/linuxserver/docker-{{ project_name }}"
-project_categories: "Remote Desktop,Business"
-# supported architectures
-available_architectures:
- - {arch: "{{ arch_x86_64 }}", tag: "amd64-latest"}
- - {arch: "{{ arch_arm64 }}", tag: "arm64v8-latest"}
-# development version
-development_versions: false
-# container parameters
-common_param_env_vars_enabled: false
-param_container_name: "{{ project_name }}"
-param_usage_include_net: false
-param_usage_include_env: true
-param_env_vars:
- - {env_var: "KASM_PORT", env_value: "443", desc: "Specify the port you bind to the outside for Kasm Workspaces."}
-param_usage_include_vols: true
-param_volumes:
- - {vol_path: "/opt", vol_host_path: "/path/to/{{ project_name }}/data", desc: "Docker and installation storage."}
-param_usage_include_ports: true
-param_ports:
- - {external_port: "3000", internal_port: "3000", port_desc: "Kasm Installation wizard. (https)"}
- - {external_port: "443", internal_port: "443", port_desc: "Kasm Workspaces interface. (https)"}
-# optional container parameters
-opt_param_usage_include_env: true
-opt_param_env_vars:
- - {env_var: "DOCKER_HUB_USERNAME", env_value: "USER", desc: "Optionally specify a DockerHub Username to pull private images."}
- - {env_var: "DOCKER_HUB_PASSWORD", env_value: "PASS", desc: "Optionally specify a DockerHub password to pull private images."}
- - {env_var: "DOCKER_MTU", env_value: "1500", desc: "Optionally specify the mtu options passed to dockerd."}
-opt_param_usage_include_vols: true
-opt_param_volumes:
- - {vol_path: "/profiles", vol_host_path: "/path/to/{{ project_name }}/profiles", desc: "Optionally specify a path for persistent profile storage."}
- - {vol_path: "/dev/input", vol_host_path: "/dev/input", desc: "Optional for gamepad support."}
- - {vol_path: "/run/udev/data", vol_host_path: "/run/udev/data", desc: "Optional for gamepad support."}
-opt_security_opt_param: true
-opt_security_opt_param_vars:
- - {run_var: "apparmor=rootlesskit", compose_var: "apparmor:rootlesskit", desc: "Some hosts require this on top of privileged for namespacing to work properly inside the DinD layer."}
-unraid_template: false
-privileged: true
-# application setup block
-app_setup_block_enabled: true
-app_setup_block: |
- This container uses [Docker in Docker](https://www.docker.com/blog/docker-can-now-run-within-docker/) and requires being run in `privileged` mode. This container also requires an initial setup that runs on port 3000.
-
- **Unlike other containers the web interface port (default 443) needs to be set for the env variable `KASM_PORT` and both the inside and outside port IE for 4443 `KASM_PORT=4443` `-p 4443:4443`**
-
- **Unraid users due to the DinD storage layer `/opt/` should be mounted directly to a disk IE `/mnt/disk1/appdata/path` or optimally with a cache disk at `/mnt/cache/appdata/path`**
-
- Access the installation wizard at https://`your ip`:3000 and follow the instructions there. Once setup is complete access https://`your ip`:443 and login with the credentials you entered during setup. The default users are:
-
- * admin@kasm.local
- * user@kasm.local
-
- Currently Synology systems are not supported due to them blocking CPU scheduling in their Kernel.
-
- ### Updating KASM
-
- In order to update kasm, first make sure you are using the latest docker image, and then perform the in app update in the admin panel. Docker image update and recreation of container alone won't update kasm.
-
- ### GPU Support
-
- During installation an option will be presented to force all Workspace containers to mount in and use a specific GPU. If using an NVIDIA GPU you will need to pass `-e NVIDIA_VISIBLE_DEVICES=all` or `--gpus all` and have the [NVIDIA Container Runtime](https://github.com/NVIDIA/nvidia-container-runtime) installed on the host. Also if using NVIDIA, Kasm Workspaces has [native NVIDIA support](https://www.kasmweb.com/docs/latest/how_to/gpu.html) so you can optionally opt to simply use that instead of he manual override during installation.
-
- ### Gamepad support
-
- In order to properly create virtual Gamepads you will need to mount from your host `/dev/input` and `/run/udev/data`. Please see [HERE](https://www.kasmweb.com/docs/develop/guide/gamepad_passthrough.html) for instructions on enabling gamepad support.
-
- ### Persistant profiles
-
- In order to use persistant profiles in Workspaces you will need to mount in a folder to use from your host to `/profiles`. From there when configuring a workspace you can set the `Persistant Profile Path` to IE `/profiles/ubuntu-focal/{username}/`, more infomation can be found [HERE](https://www.kasmweb.com/docs/latest/how_to/persistent_profiles.html).
-
- ### Reverse proxy
-
- A sample for [SWAG](https://github.com/linuxserver/docker-swag) can be found [here](https://raw.githubusercontent.com/linuxserver/reverse-proxy-confs/master/kasm.subdomain.conf.sample). Post installation you will need to modify the "Proxy Port" setting under the default zone to 0 as outlined [here](https://www.kasmweb.com/docs/latest/how_to/reverse_proxy.html#update-zones) to launch Workspaces sessions.
-# init diagram
-init_diagram: |
- "kasm:latest": {
- docker-mods
- base {
- fix-attr +\nlegacy cont-init
- }
- docker-mods -> base
- legacy-services
- custom services
- init-services -> legacy-services
- init-services -> custom services
- custom services -> legacy-services
- legacy-services -> ci-service-check
- init-migrations -> init-adduser
- init-os-end -> init-config
- init-config -> init-config-end
- init-config-kasm -> init-config-end
- init-crontab-config -> init-config-end
- init-config -> init-config-kasm
- init-config -> init-crontab-config
- init-mods-end -> init-custom-files
- init-adduser -> init-device-perms
- base -> init-envfile
- base -> init-migrations
- init-config-end -> init-mods
- init-mods-package-install -> init-mods-end
- init-mods -> init-mods-package-install
- init-adduser -> init-os-end
- init-device-perms -> init-os-end
- init-envfile -> init-os-end
- init-custom-files -> init-services
- init-services -> svc-cron
- svc-cron -> legacy-services
- init-config-kasm -> svc-docker
- init-services -> svc-docker
- svc-docker -> legacy-services
- init-config-kasm -> svc-kasm-wizard
- init-services -> svc-kasm-wizard
- svc-kasm-wizard -> legacy-services
- }
- Base Images: {
- "baseimage-ubuntu:noble"
- }
- "kasm:latest" <- Base Images
-# changelog
-changelogs:
- - {date: "13.11.25:", desc: "Pin docker to v28 to avoid API deprecation issues."}
- - {date: "22.10.25:", desc: "Update for 1.18.0 release."}
- - {date: "08.06.25:", desc: "Deprecate develop branch."}
- - {date: "03.06.25:", desc: "Rebase to Ubuntu Noble. Update for 1.17.0 release."}
- - {date: "09.11.24:", desc: "Update base image for 1.16.1 release."}
- - {date: "24.09.24:", desc: "Add base users in docker build logic to survive container upgrades."}
- - {date: "17.09.24:", desc: "Update base image for 1.16.0 release and fix Nvidia support."}
- - {date: "16.02.24:", desc: "Update base image for 1.15.0 release."}
- - {date: "22.08.23:", desc: "Update base image for 1.14.0 release."}
- - {date: "07.04.23:", desc: "Add mod layer for ingesting LSIO images for 1.13.0 release."}
- - {date: "28.03.23:", desc: "Pin compose to 2.5.0 to be in sync with upstream requirements."}
- - {date: "05.11.22:", desc: "Rebase to Jammy, add support for GPUs, add support for Gamepads."}
- - {date: "23.09.22:", desc: "Migrate to s6v3."}
- - {date: "02.07.22:", desc: "Initial Release."}
+project_deprecation_status: true
+full_custom_readme: |
+ {% raw -%}
+ Up to date documentation is available [here](https://github.com/linuxserver/docker-kasm/blob/master/README.md).
+ {%- endraw %}
diff --git a/root/etc/s6-overlay/s6-rc.d/init-config-kasm/run b/root/etc/s6-overlay/s6-rc.d/init-config-kasm/run
index f72dd96..f696272 100755
--- a/root/etc/s6-overlay/s6-rc.d/init-config-kasm/run
+++ b/root/etc/s6-overlay/s6-rc.d/init-config-kasm/run
@@ -1,20 +1,17 @@
#!/usr/bin/with-contenv bash
# Create directories
-if [[ ! -d "/opt/docker" ]]; then
+if [ ! -d "/opt/docker" ]; then
mkdir -p /opt/docker
fi
-# Workaround for running in a rootless docker environment
-sed -i '/set -e/d' /etc/init.d/docker
-
# Login to Dockerhub
-if [[ -n "${DOCKER_HUB_USERNAME}" ]]; then
- docker login --username "${DOCKER_HUB_USERNAME}" --password "${DOCKER_HUB_PASSWORD}"
+if [ -n "${DOCKER_HUB_USERNAME}" ]; then
+ docker login --username $DOCKER_HUB_USERNAME --password $DOCKER_HUB_PASSWORD
fi
# Generate self cert for wizard
-if [[ ! -f "/opt/kasm/certs/kasm_wizard.crt" ]]; then
+if [ ! -f "/opt/kasm/certs/kasm_wizard.crt" ]; then
mkdir -p /opt/kasm/certs
openssl req -x509 -nodes -days 1825 -newkey rsa:2048 \
-keyout /opt/kasm/certs/kasm_wizard.key \
@@ -23,9 +20,9 @@ if [[ ! -f "/opt/kasm/certs/kasm_wizard.crt" ]]; then
fi
# Create plugin directory
-if [[ ! -L "/var/lib/docker-plugins" ]]; then
- mkdir -p /opt/docker-plugins
- ln -s /opt/docker-plugins /var/lib/docker-plugins
- mkdir -p /var/lib/docker-plugins/rclone/config
- mkdir -p /var/lib/docker-plugins/rclone/cache
+if [ ! -L "/var/lib/docker-plugins" ]; then
+ mkdir -p /opt/docker-plugins
+ ln -s /opt/docker-plugins /var/lib/docker-plugins
+ mkdir -p /var/lib/docker-plugins/rclone/config
+ mkdir -p /var/lib/docker-plugins/rclone/cache
fi
diff --git a/root/etc/s6-overlay/s6-rc.d/init-deprecate/dependencies.d/init-config-end b/root/etc/s6-overlay/s6-rc.d/init-deprecate/dependencies.d/init-config-end
new file mode 100644
index 0000000..e69de29
diff --git a/root/etc/s6-overlay/s6-rc.d/init-deprecate/run b/root/etc/s6-overlay/s6-rc.d/init-deprecate/run
new file mode 100755
index 0000000..20fa47e
--- /dev/null
+++ b/root/etc/s6-overlay/s6-rc.d/init-deprecate/run
@@ -0,0 +1,14 @@
+#!/usr/bin/with-contenv bash
+# shellcheck shell=bash
+
+echo '
+╔════════════════════════════════════════════════════╗
+╠════════════════════════════════════════════════════╣
+║ ║
+║ This image is deprecated. ║
+║ We will not offer support for this image ║
+║ and it will not be updated. ║
+║ ║
+╠════════════════════════════════════════════════════╣
+╚════════════════════════════════════════════════════╝
+'
diff --git a/root/etc/s6-overlay/s6-rc.d/init-deprecate/type b/root/etc/s6-overlay/s6-rc.d/init-deprecate/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/root/etc/s6-overlay/s6-rc.d/init-deprecate/type
@@ -0,0 +1 @@
+oneshot
diff --git a/root/etc/s6-overlay/s6-rc.d/init-deprecate/up b/root/etc/s6-overlay/s6-rc.d/init-deprecate/up
new file mode 100644
index 0000000..e69de29
diff --git a/root/etc/s6-overlay/s6-rc.d/init-services/dependencies.d/init-deprecate b/root/etc/s6-overlay/s6-rc.d/init-services/dependencies.d/init-deprecate
new file mode 100644
index 0000000..e69de29
diff --git a/root/etc/s6-overlay/s6-rc.d/svc-kasm-wizard/run b/root/etc/s6-overlay/s6-rc.d/svc-kasm-wizard/run
index a3dd2ea..c50e440 100755
--- a/root/etc/s6-overlay/s6-rc.d/svc-kasm-wizard/run
+++ b/root/etc/s6-overlay/s6-rc.d/svc-kasm-wizard/run
@@ -2,16 +2,16 @@
# Wait for docker to be up
while true; do
- if [[ -S "/var/run/docker.sock" ]]; then
+ if [ -S "/var/run/docker.sock" ]; then
break
fi
sleep 1
done
# Don't do anything if wizard is disabled
-if [[ -f "/opt/NO_WIZARD" ]]; then
+if [ -f "/opt/NO_WIZARD" ]; then
sleep infinity
fi
-cd /wizard || exit 1
+cd /wizard
/usr/bin/node index.js
diff --git a/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-deprecate b/root/etc/s6-overlay/s6-rc.d/user/contents.d/init-deprecate
new file mode 100644
index 0000000..e69de29
diff --git a/root/usr/local/bin/dockerd-entrypoint.sh b/root/usr/local/bin/dockerd-entrypoint.sh
index 47cd35d..0f843e0 100755
--- a/root/usr/local/bin/dockerd-entrypoint.sh
+++ b/root/usr/local/bin/dockerd-entrypoint.sh
@@ -116,7 +116,6 @@ if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then
; then
# generate certs and use TLS if requested/possible (default in 19.03+)
set -- dockerd \
- --mtu="${DOCKER_MTU:-1500}" \
--host="$dockerSocket" \
--host=tcp://0.0.0.0:2376 \
--tlsverify \
@@ -128,7 +127,6 @@ if [ "$#" -eq 0 ] || [ "${1#-}" != "$1" ]; then
else
# TLS disabled (-e DOCKER_TLS_CERTDIR='') or missing certs
set -- dockerd \
- --mtu="${DOCKER_MTU:-1500}" \
--host="$dockerSocket" \
"$@"
DOCKERD_ROOTLESS_ROOTLESSKIT_FLAGS="${DOCKERD_ROOTLESS_ROOTLESSKIT_FLAGS:-} -p 0.0.0.0:2375:2375/tcp"