Skip to content

Commit 9a46141

Browse files
committed
chore: sync release-v5.1
* fork/release-v5.1: (125 commits) fix(account): harden PAYG debt recovery (labring#7103) fix(account): replay final debt namespace cleanup (labring#7102) chore(frontend): remove invite provider from release v5.1 (labring#7092) chore(frontend): remove cronjob references from configuration files (… (labring#7088) chore(aiproxy): remove aiproxy provider references from configuration… (labring#7087) fix(frontend): remove cloudserver from release builds (labring#7085) fix(desktop): honor guide feature flag (labring#7084) fix(account-webhook): block Start OpsRequest in debt-limit0 namespaces (labring#7077) fix(objectstorage): tighten public read bucket policy (labring#7076) fix(account): use dns-safe workspace debt notice names (labring#7075) Revert "chore(cloud): remove migrated and unused projects (labring#7072)" (labring#7074) chore(cloud): remove migrated and unused projects (labring#7072) fix(frontend): harden release-v5.1 Helm deployments (labring#7062) fix(applaunchpad): restart workloads only when needed (labring#7064) fix(account): advance workspace debt cleanup status (labring#7061) fix(applaunchpad): clear stale image pull secrets (labring#7059) fix(costcenter): show complete quota resources (labring#7041) fix(desktop): disable workspace quota bridge (labring#7051) fix(license): parse Kubernetes resource quantities (labring#7050) feat(desktop): show workspace resources in header (labring#7046) ... # Conflicts: # .github/workflows/frontends.yml # .tagpr.json # CHANGELOG/CHANGELOG-5.1.2-rc4.md # CHANGELOG/CHANGELOG-latest.md # CHANGELOG/CHANGELOG.md # frontend/Dockerfile # frontend/README.md # frontend/desktop/prisma/providers/postgresql/global/migrations/migration_lock.toml # frontend/package.json # frontend/pnpm-lock.yaml
2 parents c932968 + 2c893f2 commit 9a46141

1,557 files changed

Lines changed: 55260 additions & 71450 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/copilot-instructions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ sudo apt-get update && sudo apt-get install -y pkg-config libdevmapper-dev libbt
2121
### Repository Structure
2222
- **`/lifecycle`**: Main sealos CLI and core binaries (sealos, sealctl, lvscare, image-cri-shim)
2323
- **`/controllers`**: Multiple Kubernetes controllers with individual Go modules and Makefiles
24-
- **`/frontend`**: Next.js workspace with pnpm, 23 sub-projects (desktop, providers)
24+
- **`/frontend`**: Next.js workspace with pnpm, 17 workspace projects (root, desktop, packages, providers)
2525
- **`/service`**: Backend Go services with individual modules
2626
- **`/webhooks`**: Kubernetes admission webhooks
2727
- **`/docs`**: Documentation and guides
@@ -211,4 +211,4 @@ Sealos uses Go 1.18+ workspace feature. When adding new modules:
211211
go work use -r . # Update workspace from root directory
212212
```
213213

214-
This maintains the multi-module workspace structure across lifecycle, controllers, services, and webhooks.
214+
This maintains the multi-module workspace structure across lifecycle, controllers, services, and webhooks.

.github/scripts/install.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ check_file_exits() {
3737
check_file_exits /usr/bin/sealos
3838

3939
pushd "$(mktemp -d)" >/dev/null || exit
40-
until curl -sLo "sealos.tar.gz" "https://github.com/labring/sealos/releases/download/v5.1.0-beta3/sealos_5.1.0-beta3_linux_amd64.tar.gz"; do sleep 3; done
40+
until curl -sLo "sealos.tar.gz" "https://github.com/labring/sealos/releases/download/v5.1.2-rc5/sealos_5.1.2-rc5_linux_amd64.tar.gz"; do sleep 3; done
4141
tar -zxf sealos.tar.gz sealos && chmod +x sealos && mv sealos /usr/bin
4242
rm -rf sealos.tar.gz
4343
sealos version

.github/workflows/ci.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ on:
1717
- "docs/**"
1818
- "**/*.md"
1919
- "**/*.yaml"
20+
- "**/*.yml"
2021
- "CHANGELOG/**"
2122
- "controllers/**"
2223
- "service/**"
@@ -29,6 +30,7 @@ on:
2930
- "CHANGELOG/**"
3031
- "**/*.md"
3132
- "**/*.yaml"
33+
- "**/*.yml"
3234
- "CHANGELOG/**"
3335
- "controllers/**"
3436
- "service/**"

.github/workflows/frontends.yml

Lines changed: 77 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ jobs:
6868
outputs:
6969
modules: ${{ steps.set-matrix.outputs.modules }}
7070
steps:
71-
- uses: actions/checkout@v4
72-
- uses: dorny/paths-filter@v3
71+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
72+
- uses: dorny/paths-filter@d1c1ffe0248fe513906c8e24db8ea791d46f8590 # v3
7373
id: filter
7474
with:
7575
filters: |
@@ -82,12 +82,8 @@ jobs:
8282
- 'frontend/tsconfig*.json'
8383
- '.github/workflows/frontend.yml'
8484
- '.github/workflows/frontends.yml'
85-
aiproxy:
86-
- 'frontend/providers/aiproxy/**'
8785
license:
8886
- 'frontend/providers/license/**'
89-
cronjob:
90-
- 'frontend/providers/cronjob/**'
9187
template:
9288
- 'frontend/providers/template/**'
9389
applaunchpad:
@@ -106,18 +102,30 @@ jobs:
106102
- 'frontend/desktop/**'
107103
- name: Generate build matrix
108104
id: set-matrix
105+
env:
106+
EVENT_NAME: ${{ github.event_name }}
107+
FILTER_APPLAUNCHPAD: ${{ steps.filter.outputs.applaunchpad }}
108+
FILTER_COSTCENTER: ${{ steps.filter.outputs.costcenter }}
109+
FILTER_DBPROVIDER: ${{ steps.filter.outputs.dbprovider }}
110+
FILTER_DESKTOP: ${{ steps.filter.outputs.desktop }}
111+
FILTER_KUBEPANEL: ${{ steps.filter.outputs.kubepanel }}
112+
FILTER_LICENSE: ${{ steps.filter.outputs.license }}
113+
FILTER_OBJECTSTORAGE: ${{ steps.filter.outputs.objectstorage }}
114+
FILTER_PACKAGES: ${{ steps.filter.outputs.packages }}
115+
FILTER_ROOT_CONFIG: ${{ steps.filter.outputs.root-config }}
116+
FILTER_TEMPLATE: ${{ steps.filter.outputs.template }}
117+
FILTER_TERMINAL: ${{ steps.filter.outputs.terminal }}
118+
FORCE_ALL: ${{ inputs.force_all }}
109119
run: |
110120
modules=()
111121
112122
# Check if we need to build all modules
113-
if [[ "${{ steps.filter.outputs.packages }}" == "true" || \
114-
"${{ steps.filter.outputs.root-config }}" == "true" || \
115-
"${{ inputs.force_all }}" == "true" || \
116-
"${{ github.event_name }}" == "workflow_dispatch" ]]; then
123+
if [[ "${FILTER_PACKAGES}" == "true" || \
124+
"${FILTER_ROOT_CONFIG}" == "true" || \
125+
"${FORCE_ALL}" == "true" || \
126+
"${EVENT_NAME}" == "workflow_dispatch" ]]; then
117127
modules=(
118-
"providers/aiproxy"
119128
"providers/license"
120-
"providers/cronjob"
121129
"providers/template"
122130
"providers/applaunchpad"
123131
"providers/terminal"
@@ -129,17 +137,15 @@ jobs:
129137
)
130138
else
131139
# Only build changed modules
132-
[[ "${{ steps.filter.outputs.aiproxy }}" == "true" ]] && modules+=("providers/aiproxy")
133-
[[ "${{ steps.filter.outputs.license }}" == "true" ]] && modules+=("providers/license")
134-
[[ "${{ steps.filter.outputs.cronjob }}" == "true" ]] && modules+=("providers/cronjob")
135-
[[ "${{ steps.filter.outputs.template }}" == "true" ]] && modules+=("providers/template")
136-
[[ "${{ steps.filter.outputs.applaunchpad }}" == "true" ]] && modules+=("providers/applaunchpad")
137-
[[ "${{ steps.filter.outputs.terminal }}" == "true" ]] && modules+=("providers/terminal")
138-
[[ "${{ steps.filter.outputs.dbprovider }}" == "true" ]] && modules+=("providers/dbprovider")
139-
[[ "${{ steps.filter.outputs.costcenter }}" == "true" ]] && modules+=("providers/costcenter")
140-
[[ "${{ steps.filter.outputs.objectstorage }}" == "true" ]] && modules+=("providers/objectstorage")
141-
[[ "${{ steps.filter.outputs.kubepanel }}" == "true" ]] && modules+=("providers/kubepanel")
142-
[[ "${{ steps.filter.outputs.desktop }}" == "true" ]] && modules+=("desktop")
140+
[[ "${FILTER_LICENSE}" == "true" ]] && modules+=("providers/license")
141+
[[ "${FILTER_TEMPLATE}" == "true" ]] && modules+=("providers/template")
142+
[[ "${FILTER_APPLAUNCHPAD}" == "true" ]] && modules+=("providers/applaunchpad")
143+
[[ "${FILTER_TERMINAL}" == "true" ]] && modules+=("providers/terminal")
144+
[[ "${FILTER_DBPROVIDER}" == "true" ]] && modules+=("providers/dbprovider")
145+
[[ "${FILTER_COSTCENTER}" == "true" ]] && modules+=("providers/costcenter")
146+
[[ "${FILTER_OBJECTSTORAGE}" == "true" ]] && modules+=("providers/objectstorage")
147+
[[ "${FILTER_KUBEPANEL}" == "true" ]] && modules+=("providers/kubepanel")
148+
[[ "${FILTER_DESKTOP}" == "true" ]] && modules+=("desktop")
143149
fi
144150
145151
# Convert to JSON array (compact format for GitHub Actions)
@@ -151,9 +157,56 @@ jobs:
151157
echo "modules=$json_modules" >> $GITHUB_OUTPUT
152158
echo "Building modules: $json_modules"
153159
154-
image-build:
160+
helm-validate:
155161
needs: detect-changes
156162
if: needs.detect-changes.outputs.modules != '[]'
163+
runs-on: ubuntu-latest
164+
strategy:
165+
fail-fast: false
166+
matrix:
167+
module: ${{ fromJSON(needs.detect-changes.outputs.modules) }}
168+
steps:
169+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
170+
- uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # v4
171+
- name: Validate Helm charts
172+
shell: bash
173+
env:
174+
MODULE: ${{ matrix.module }}
175+
run: |
176+
chart_root="frontend/${MODULE}/deploy/charts"
177+
if [[ ! -d "${chart_root}" ]]; then
178+
echo "No Helm chart found for ${MODULE}; skipping"
179+
exit 0
180+
fi
181+
182+
found=false
183+
while IFS= read -r -d '' chart_file; do
184+
found=true
185+
chart_dir=$(dirname "${chart_file}")
186+
chart_name=$(basename "${chart_dir}")
187+
user_values=$(find "${chart_dir}" -maxdepth 1 -type f -name '*-values.yaml' -print -quit)
188+
189+
helm lint "${chart_dir}"
190+
helm template "${chart_name}" "${chart_dir}" \
191+
--namespace "${chart_name}" >/dev/null
192+
193+
if [[ -n "${user_values}" ]]; then
194+
helm lint "${chart_dir}" --values "${user_values}"
195+
helm template "${chart_name}" "${chart_dir}" \
196+
--namespace "${chart_name}" \
197+
--values "${user_values}" >/dev/null
198+
fi
199+
done < <(find "${chart_root}" -mindepth 2 -maxdepth 2 -name Chart.yaml -print0)
200+
201+
if [[ "${found}" == "false" ]]; then
202+
echo "No Helm chart found for ${MODULE}; skipping"
203+
fi
204+
205+
image-build:
206+
needs:
207+
- detect-changes
208+
- helm-validate
209+
if: needs.detect-changes.outputs.modules != '[]'
157210
uses: ./.github/workflows/frontend.yml
158211
permissions:
159212
contents: read

.github/workflows/service-build.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,9 @@ jobs:
299299
if [[ -f charts/${MODULE_NAME}/values.yaml ]]; then
300300
sed -i -E "s;(${OLD_DOCKER_REPO}|${GHCR_DOCKER_REPO}):[^[:space:]\"']*;${NEW_DOCKER_IMAGE};" charts/${MODULE_NAME}/values.yaml
301301
fi
302+
if [[ -f charts/${MODULE_NAME}-service/values.yaml ]]; then
303+
sed -i -E "s;(${OLD_DOCKER_REPO}|${GHCR_DOCKER_REPO}):[^[:space:]\"']*;${NEW_DOCKER_IMAGE};" charts/${MODULE_NAME}-service/values.yaml
304+
fi
302305
sudo rm -rf registry
303306
echo "Building ${TAG}-amd64"
304307
sudo sealos build -t "${TAG}-amd64" --platform linux/amd64 -f Kubefile

.gitignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,9 @@ pkg/registry/save/testdata/registry
2323
deploy/cloud/tars
2424
.vscode/
2525
/lifecycle/tools/
26+
.workflow/
27+
**/.impeccable/
2628

2729
**.env*
2830
!scripts/cloud/sealos.env
29-
**/helloagents/**
31+
**/helloagents/**

.tagpr.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sealos",
3-
"version": "v5.1.2-rc4",
4-
"command": "bash scripts/changelog.sh v5.1.2-rc4 v5.1.1",
3+
"version": "v5.1.2-rc5",
4+
"command": "bash scripts/changelog.sh v5.1.2-rc5 v5.1.1",
55
"pre-version": "v5.1.1"
66
}

CHANGELOG/CHANGELOG-5.1.2-rc4.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
# Welcome to the v5.1.2-rc4 release of Sealos!🎉🎉!
33

44
<a name="v5.1.2-rc4"></a>
5-
## [v5.1.2-rc4](https://github.com/labring/sealos/compare/v5.1.2-rc3...v5.1.2-rc4) (2026-03-08)
5+
## [v5.1.2-rc4](https://github.com/labring/sealos/compare/v5.1.2-rc3...v5.1.2-rc4) (2026-03-09)
66

77
### Bug Fixes
88

9+
* **desktop:** close correct window by using component pid ([#6782](https://github.com/labring/sealos/issues/6782))
910
* **devbox:** nfs max value bug ([#6778](https://github.com/labring/sealos/issues/6778))
1011
* **devbox:** upload file bug ([#6776](https://github.com/labring/sealos/issues/6776))
1112
* **dependencies:** replace gcc-aarch64-linux-gnu with binutils-aarch6… ([#6772](https://github.com/labring/sealos/issues/6772))

CHANGELOG/CHANGELOG-5.1.2-rc5.md

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
2+
# Welcome to the v5.1.2-rc5 release of Sealos!🎉🎉!
3+
4+
<a name="v5.1.2-rc5"></a>
5+
## [v5.1.2-rc5](https://github.com/labring/sealos/compare/v5.1.2-rc4...v5.1.2-rc5) (2026-03-26)
6+
7+
### Bug Fixes
8+
9+
* **lifecycle:** fallback registry sync for oci media type ([#6842](https://github.com/labring/sealos/issues/6842))
10+
* **account:** helm install name ([#6844](https://github.com/labring/sealos/issues/6844))
11+
* **deploy:** change command to execute install script instead of kube… ([#6839](https://github.com/labring/sealos/issues/6839))
12+
* **account-service:** add ingress resource adoption and create instal… ([#6833](https://github.com/labring/sealos/issues/6833))
13+
* **user:** Fix the concurrent creation restriction exception for user controller ([#6829](https://github.com/labring/sealos/issues/6829))
14+
* **account-webhook:** remove cache ([#6828](https://github.com/labring/sealos/issues/6828))
15+
* **applaunchpad:** fix command text overflow in app detail advanced info ([#6825](https://github.com/labring/sealos/issues/6825))
16+
* **devbox:** some little bug ([#6823](https://github.com/labring/sealos/issues/6823))
17+
* **devbox:** some quota bug ([#6820](https://github.com/labring/sealos/issues/6820))
18+
* **template:** [backport] pvc not get deleted in the new deletion flow ([#6821](https://github.com/labring/sealos/issues/6821))
19+
* **applaunchpad:** floor storage maxValue ([#6813](https://github.com/labring/sealos/issues/6813))
20+
* **desktop:** i18n login form validation messages ([#6812](https://github.com/labring/sealos/issues/6812))
21+
* **lifecycle:** clear stale registry auth when saving public images ([#6810](https://github.com/labring/sealos/issues/6810))
22+
* **account:** skip the validate webhook for admin account ([#6806](https://github.com/labring/sealos/issues/6806))
23+
* **user-controller:** update namespace condition to exclude 'ns-admin' ([#6800](https://github.com/labring/sealos/issues/6800))
24+
* **devbox:** date picker cause bug ([#6798](https://github.com/labring/sealos/issues/6798))
25+
* **license:** license limit prompt translation ([#6797](https://github.com/labring/sealos/issues/6797))
26+
* **devbox:** refresh bug and nfs mount path bug ([#6793](https://github.com/labring/sealos/issues/6793))
27+
28+
### New Features
29+
30+
* **desktop:** support auto-register and auto-init in password auth API ([#6840](https://github.com/labring/sealos/issues/6840))
31+
* **template:** add NodePort two-phase deploy API ([#6824](https://github.com/labring/sealos/issues/6824))
32+
* **applaunchpad:** add network storage (networkStoreList) support ([#6811](https://github.com/labring/sealos/issues/6811))
33+
* **desktop:** [backport] support overriding icon size style in app cr ([#6817](https://github.com/labring/sealos/issues/6817))
34+
* **lifecycle:** sealos registry support image filter and --all flags to image save ([#6805](https://github.com/labring/sealos/issues/6805))
35+
* **desktop:** validate kubeconfig on desktop load ([#6791](https://github.com/labring/sealos/issues/6791))
36+
* **desktop:** add PKCE (S256) support for OAuth2 authentication ([#6790](https://github.com/labring/sealos/issues/6790))
37+
38+
See [the CHANGELOG](https://github.com/labring/sealos/blob/main/CHANGELOG/CHANGELOG.md) for more details.
39+
40+
Your patronage towards Sealos is greatly appreciated 🎉🎉.
41+
42+
If you encounter any problems during its usage, please create an issue in the [GitHub repository](https://github.com/labring/sealos), we're committed to resolving your problem as soon as possible.

0 commit comments

Comments
 (0)