Skip to content
This repository was archived by the owner on Oct 19, 2026. It is now read-only.

Commit 6c2efa6

Browse files
authored
feat(orion): surface VM image, resources, and toolchain in Client UI (#2160)
* feat(orion): surface VM image, resources, and toolchain in Client UI Record image-info at build time and return it from scheduler status so the Orion Client runner panel can show image digest/build time, CPU/mem/disk, and rust/buck2/python versions without probing the guest. * chore(ci): temporarily disable AWS ECR image pushes Keep Harbor-only deploys while AWS pushes are paused; flip PUSH_AWS_ECR back to true to restore ECR Public tags and manifests. * feat(orion): keep runner VMs listed on /oc Expose GET /api/v1/orion/runners from scheduler /status and show a persistent Runner VMs table so image/phase/IP details stay visible after startup logs close.
1 parent de4cebc commit 6c2efa6

21 files changed

Lines changed: 1313 additions & 202 deletions

File tree

‎.github/workflows/mono-engine-deploy.yml‎

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ env:
2121
REPOSITORY: mega/mono-engine
2222
IMAGE_TAG_BASE: latest
2323
HARBOR_REGISTRY: registry.xuanwu.openatom.cn
24+
# TEMP: skip AWS ECR Public push; Harbor only. Re-enable ECR steps below to restore.
25+
PUSH_AWS_ECR: "false"
2426

2527
# Using AWS access key for authentication.
2628
# actions: write is required for docker buildx --cache-{from,to} type=gha.
@@ -50,16 +52,18 @@ jobs:
5052
uses: crazy-max/ghaction-github-runtime@v3
5153

5254
# -----------------------------
53-
# AWS / ECR Public
55+
# AWS / ECR Public (TEMP disabled)
5456
# -----------------------------
5557
- name: Configure AWS Credentials
58+
if: env.PUSH_AWS_ECR == 'true'
5659
uses: aws-actions/configure-aws-credentials@v4
5760
with:
5861
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
5962
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
6063
aws-region: us-east-1
6164

6265
- name: Login to Amazon ECR Public
66+
if: env.PUSH_AWS_ECR == 'true'
6367
id: login-ecr-public
6468
uses: aws-actions/amazon-ecr-login@v2
6569
with:
@@ -73,23 +77,31 @@ jobs:
7377
password: ${{ secrets.HARBOR_PASSWORD }}
7478

7579
# -----------------------------
76-
# Build & push to ECR + Harbor
80+
# Build & push (Harbor; ECR when PUSH_AWS_ECR=true)
7781
# -----------------------------
78-
- name: Build & push image to ECR and Harbor (amd64)
82+
- name: Build & push image (amd64)
7983
env:
8084
ECR_REGISTRY: ${{ steps.login-ecr-public.outputs.registry }}
8185
IMAGE_TAG_BASE: ${{ env.IMAGE_TAG_BASE }}
86+
PUSH_AWS_ECR: ${{ env.PUSH_AWS_ECR }}
8287
run: |
8388
set -euo pipefail
8489
8590
ARCH_SUFFIX=amd64
8691
IMAGE_TAG="${IMAGE_TAG_BASE}-${ARCH_SUFFIX}"
8792
88-
ECR_IMAGE="$ECR_REGISTRY/${{ env.REGISTRY_ALIAS }}/${{ env.REPOSITORY }}:$IMAGE_TAG"
8993
HARBOR_IMAGE="${{ env.HARBOR_REGISTRY }}/${{ env.REPOSITORY }}:$IMAGE_TAG"
9094
CACHE_SCOPE="mono-engine-${ARCH_SUFFIX}"
9195
92-
echo "ECR_IMAGE=$ECR_IMAGE"
96+
TAGS=(-t "$HARBOR_IMAGE")
97+
if [ "$PUSH_AWS_ECR" = "true" ]; then
98+
ECR_IMAGE="$ECR_REGISTRY/${{ env.REGISTRY_ALIAS }}/${{ env.REPOSITORY }}:$IMAGE_TAG"
99+
echo "ECR_IMAGE=$ECR_IMAGE"
100+
TAGS+=(-t "$ECR_IMAGE")
101+
else
102+
echo "TEMP: skipping AWS ECR push (Harbor only)"
103+
fi
104+
93105
echo "HARBOR_IMAGE=$HARBOR_IMAGE"
94106
echo "CACHE_SCOPE=$CACHE_SCOPE"
95107
@@ -99,8 +111,7 @@ jobs:
99111
--provenance=false \
100112
--sbom=false \
101113
-f ./mono/Dockerfile \
102-
-t "$ECR_IMAGE" \
103-
-t "$HARBOR_IMAGE" \
114+
"${TAGS[@]}" \
104115
--push .
105116
106117
manifest:
@@ -110,13 +121,15 @@ jobs:
110121
contents: read
111122
steps:
112123
- name: Configure AWS Credentials
124+
if: env.PUSH_AWS_ECR == 'true'
113125
uses: aws-actions/configure-aws-credentials@v4
114126
with:
115127
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
116128
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
117129
aws-region: us-east-1
118130

119131
- name: Login to Amazon ECR Public
132+
if: env.PUSH_AWS_ECR == 'true'
120133
id: login-ecr-public
121134
uses: aws-actions/amazon-ecr-login@v2
122135
with:
@@ -132,9 +145,9 @@ jobs:
132145
- name: Create & push manifest
133146
env:
134147
REGISTRY: ${{ steps.login-ecr-public.outputs.registry }}
148+
PUSH_AWS_ECR: ${{ env.PUSH_AWS_ECR }}
135149
run: |
136150
set -euo pipefail
137-
IMAGE_BASE="$REGISTRY/${{ env.REGISTRY_ALIAS }}/${{ env.REPOSITORY }}"
138151
HARBOR_BASE="${{ env.HARBOR_REGISTRY }}/${{ env.REPOSITORY }}"
139152
SHORT_SHA="${GITHUB_SHA:0:7}"
140153
TAG_BASE="${{ env.IMAGE_TAG_BASE }}"
@@ -155,7 +168,12 @@ jobs:
155168
docker manifest push "$base:$SHORT_SHA"
156169
}
157170
158-
push_manifests "$IMAGE_BASE"
171+
if [ "$PUSH_AWS_ECR" = "true" ]; then
172+
IMAGE_BASE="$REGISTRY/${{ env.REGISTRY_ALIAS }}/${{ env.REPOSITORY }}"
173+
push_manifests "$IMAGE_BASE"
174+
else
175+
echo "TEMP: skipping AWS ECR manifests (Harbor only)"
176+
fi
159177
push_manifests "$HARBOR_BASE"
160178
161179
deploy-aws:

‎.github/workflows/orion-server-deploy.yml‎

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ env:
1212
REPOSITORY: mega/orion-server
1313
IMAGE_TAG_BASE: latest
1414
HARBOR_REGISTRY: registry.xuanwu.openatom.cn
15+
# TEMP: skip AWS ECR Public push; Harbor only. Re-enable ECR steps below to restore.
16+
PUSH_AWS_ECR: "false"
1517

1618
# actions: write is required for docker buildx --cache-{from,to} type=gha.
1719
permissions:
@@ -44,16 +46,18 @@ jobs:
4446
uses: crazy-max/ghaction-github-runtime@v3
4547

4648
# -----------------------------
47-
# AWS auth
49+
# AWS auth (TEMP disabled)
4850
# -----------------------------
4951
- name: Configure AWS Credentials
52+
if: env.PUSH_AWS_ECR == 'true'
5053
uses: aws-actions/configure-aws-credentials@v4
5154
with:
5255
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
5356
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
5457
aws-region: us-east-1
5558

5659
- name: Login to Amazon ECR Public
60+
if: env.PUSH_AWS_ECR == 'true'
5761
id: login-ecr-public
5862
uses: aws-actions/amazon-ecr-login@v2
5963
with:
@@ -67,32 +71,39 @@ jobs:
6771
password: ${{ secrets.HARBOR_PASSWORD }}
6872

6973
# -----------------------------
70-
# Build & push to AWS + Harbor
74+
# Build & push (Harbor; ECR when PUSH_AWS_ECR=true)
7175
# -----------------------------
72-
- name: Build & push amd64 image to AWS and Harbor
76+
- name: Build & push amd64 image
7377
env:
7478
AWS_REGISTRY: ${{ steps.login-ecr-public.outputs.registry }}
79+
PUSH_AWS_ECR: ${{ env.PUSH_AWS_ECR }}
7580
run: |
7681
set -euo pipefail
7782
7883
PLATFORM="linux/amd64"
7984
ARCH_SUFFIX="amd64"
8085
81-
AWS_IMAGE_BASE="$AWS_REGISTRY/${{ env.REGISTRY_ALIAS }}/${{ env.REPOSITORY }}"
8286
HARBOR_IMAGE_BASE="${{ env.HARBOR_REGISTRY }}/${{ env.REPOSITORY }}"
8387
8488
TAG="${{ env.IMAGE_TAG_BASE }}-$ARCH_SUFFIX"
8589
CACHE_SCOPE="orion-server-$ARCH_SUFFIX"
8690
91+
TAGS=(-t "$HARBOR_IMAGE_BASE:$TAG")
92+
if [ "$PUSH_AWS_ECR" = "true" ]; then
93+
AWS_IMAGE_BASE="$AWS_REGISTRY/${{ env.REGISTRY_ALIAS }}/${{ env.REPOSITORY }}"
94+
TAGS+=(-t "$AWS_IMAGE_BASE:$TAG")
95+
else
96+
echo "TEMP: skipping AWS ECR push (Harbor only)"
97+
fi
98+
8799
docker buildx build \
88100
--platform "$PLATFORM" \
89101
--cache-from type=gha,scope=$CACHE_SCOPE \
90102
--cache-to type=gha,mode=max,scope=$CACHE_SCOPE \
91103
--provenance=false \
92104
--sbom=false \
93105
-f orion-server/Dockerfile \
94-
-t "$AWS_IMAGE_BASE:$TAG" \
95-
-t "$HARBOR_IMAGE_BASE:$TAG" \
106+
"${TAGS[@]}" \
96107
--push .
97108
98109
manifest:
@@ -102,13 +113,15 @@ jobs:
102113
contents: read
103114
steps:
104115
- name: Configure AWS Credentials
116+
if: env.PUSH_AWS_ECR == 'true'
105117
uses: aws-actions/configure-aws-credentials@v4
106118
with:
107119
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
108120
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
109121
aws-region: us-east-1
110122

111123
- name: Login to Amazon ECR Public
124+
if: env.PUSH_AWS_ECR == 'true'
112125
id: login-ecr-public
113126
uses: aws-actions/amazon-ecr-login@v2
114127
with:
@@ -124,9 +137,9 @@ jobs:
124137
- name: Create & push manifest
125138
env:
126139
REGISTRY: ${{ steps.login-ecr-public.outputs.registry }}
140+
PUSH_AWS_ECR: ${{ env.PUSH_AWS_ECR }}
127141
run: |
128142
set -euo pipefail
129-
IMAGE_BASE="$REGISTRY/${{ env.REGISTRY_ALIAS }}/${{ env.REPOSITORY }}"
130143
HARBOR_BASE="${{ env.HARBOR_REGISTRY }}/${{ env.REPOSITORY }}"
131144
SHORT_SHA="${GITHUB_SHA:0:7}"
132145
TAG_BASE="${{ env.IMAGE_TAG_BASE }}"
@@ -147,7 +160,12 @@ jobs:
147160
docker manifest push "$base:$SHORT_SHA"
148161
}
149162
150-
push_manifests "$IMAGE_BASE"
163+
if [ "$PUSH_AWS_ECR" = "true" ]; then
164+
IMAGE_BASE="$REGISTRY/${{ env.REGISTRY_ALIAS }}/${{ env.REPOSITORY }}"
165+
push_manifests "$IMAGE_BASE"
166+
else
167+
echo "TEMP: skipping AWS ECR manifests (Harbor only)"
168+
fi
151169
push_manifests "$HARBOR_BASE"
152170
153171
deploy-aws:

‎.github/workflows/web-deploy.yml‎

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ env:
1414
REPOSITORY: mega/mega-ui
1515
IMAGE_VERSION: latest
1616
HARBOR_REGISTRY: registry.xuanwu.openatom.cn
17+
# TEMP: skip AWS ECR Public push; Harbor only. Re-enable ECR steps below to restore.
18+
PUSH_AWS_ECR: "false"
1719

1820
# actions: write is required for docker buildx --cache-{from,to} type=gha.
1921
permissions:
@@ -54,13 +56,15 @@ jobs:
5456
uses: crazy-max/ghaction-github-runtime@v3
5557

5658
- name: Configure AWS Credentials (ECR Public, us-east-1)
59+
if: env.PUSH_AWS_ECR == 'true'
5760
uses: aws-actions/configure-aws-credentials@v4
5861
with:
5962
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
6063
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
6164
aws-region: us-east-1
6265

6366
- name: Login to Amazon ECR Public
67+
if: env.PUSH_AWS_ECR == 'true'
6468
id: login-ecr-public
6569
uses: aws-actions/amazon-ecr-login@v2
6670
with:
@@ -78,18 +82,26 @@ jobs:
7882
env:
7983
ECR_PUBLIC_REGISTRY: ${{ steps.login-ecr-public.outputs.registry }}
8084
PLATFORM: linux/amd64
85+
PUSH_AWS_ECR: ${{ env.PUSH_AWS_ECR }}
8186
run: |
8287
set -euo pipefail
8388
ARCH_SUFFIX="amd64"
8489
IMAGE_TAG="${IMAGE_VERSION}-${ARCH_SUFFIX}"
8590
SHORT_SHA="${GITHUB_SHA:0:7}"
8691
SHA_TAG="${SHORT_SHA}-${ARCH_SUFFIX}"
8792
88-
PUBLIC_IMAGE="$ECR_PUBLIC_REGISTRY/${{ env.REGISTRY_ALIAS }}/${{ env.REPOSITORY }}:$IMAGE_TAG"
89-
PUBLIC_IMAGE_SHA="$ECR_PUBLIC_REGISTRY/${{ env.REGISTRY_ALIAS }}/${{ env.REPOSITORY }}:$SHA_TAG"
9093
HARBOR_IMAGE="${{ env.HARBOR_REGISTRY }}/${{ env.REPOSITORY }}:$IMAGE_TAG"
9194
HARBOR_IMAGE_SHA="${{ env.HARBOR_REGISTRY }}/${{ env.REPOSITORY }}:$SHA_TAG"
9295
96+
TAGS=(-t "$HARBOR_IMAGE" -t "$HARBOR_IMAGE_SHA")
97+
if [ "$PUSH_AWS_ECR" = "true" ]; then
98+
PUBLIC_IMAGE="$ECR_PUBLIC_REGISTRY/${{ env.REGISTRY_ALIAS }}/${{ env.REPOSITORY }}:$IMAGE_TAG"
99+
PUBLIC_IMAGE_SHA="$ECR_PUBLIC_REGISTRY/${{ env.REGISTRY_ALIAS }}/${{ env.REPOSITORY }}:$SHA_TAG"
100+
TAGS+=(-t "$PUBLIC_IMAGE" -t "$PUBLIC_IMAGE_SHA")
101+
else
102+
echo "TEMP: skipping AWS ECR push (Harbor only)"
103+
fi
104+
93105
docker buildx build \
94106
--platform "$PLATFORM" \
95107
--build-arg TIPTAP_PRIVATE_REGISTRY_KEY="$TIPTAP_PRIVATE_REGISTRY_KEY" \
@@ -98,10 +110,7 @@ jobs:
98110
--provenance=false \
99111
--sbom=false \
100112
-f apps/web/Dockerfile \
101-
-t "$PUBLIC_IMAGE" \
102-
-t "$PUBLIC_IMAGE_SHA" \
103-
-t "$HARBOR_IMAGE" \
104-
-t "$HARBOR_IMAGE_SHA" . \
113+
"${TAGS[@]}" . \
105114
--push
106115
107116
manifest:
@@ -111,13 +120,15 @@ jobs:
111120
contents: read
112121
steps:
113122
- name: Configure AWS Credentials
123+
if: env.PUSH_AWS_ECR == 'true'
114124
uses: aws-actions/configure-aws-credentials@v4
115125
with:
116126
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
117127
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
118128
aws-region: us-east-1
119129

120130
- name: Login to Amazon ECR Public
131+
if: env.PUSH_AWS_ECR == 'true'
121132
id: login-ecr-public
122133
uses: aws-actions/amazon-ecr-login@v2
123134
with:
@@ -133,10 +144,10 @@ jobs:
133144
- name: Create & push unified manifest
134145
env:
135146
REGISTRY: ${{ steps.login-ecr-public.outputs.registry }}
147+
PUSH_AWS_ECR: ${{ env.PUSH_AWS_ECR }}
136148
run: |
137149
set -euo pipefail
138150
139-
IMAGE_BASE="$REGISTRY/${{ env.REGISTRY_ALIAS }}/${{ env.REPOSITORY }}"
140151
HARBOR_BASE="${{ env.HARBOR_REGISTRY }}/${{ env.REPOSITORY }}"
141152
TAG="${IMAGE_VERSION}"
142153
SHORT_SHA="${GITHUB_SHA:0:7}"
@@ -152,7 +163,12 @@ jobs:
152163
docker manifest push "$base:$SHORT_SHA"
153164
}
154165
155-
push_manifests "$IMAGE_BASE"
166+
if [ "$PUSH_AWS_ECR" = "true" ]; then
167+
IMAGE_BASE="$REGISTRY/${{ env.REGISTRY_ALIAS }}/${{ env.REPOSITORY }}"
168+
push_manifests "$IMAGE_BASE"
169+
else
170+
echo "TEMP: skipping AWS ECR manifests (Harbor only)"
171+
fi
156172
push_manifests "$HARBOR_BASE"
157173
158174
deploy-aws:

0 commit comments

Comments
 (0)