Skip to content

Commit 9b6e784

Browse files
committed
Sync CRD Helm chart templates
1 parent 3251378 commit 9b6e784

3 files changed

Lines changed: 407 additions & 54 deletions

File tree

charts/substrate-crds/templates/ate.dev_actortemplates.yaml

Lines changed: 5 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,8 @@ spec:
5151
metadata:
5252
type: object
5353
spec:
54-
description: spec defines the desired state of ActorTemplate
54+
description: spec defines the desired state of ActorTemplate. This field
55+
is immutable.
5556
properties:
5657
containers:
5758
description: Containers is the workload definition.
@@ -165,58 +166,6 @@ spec:
165166
- message: All images must be pinned (changing the image invalidates
166167
snapshots)
167168
rule: self.contains('@')
168-
runsc:
169-
description: Parameters for fetching the runsc binary to use.
170-
properties:
171-
amd64:
172-
description: Configuration for the amd64 binary.
173-
properties:
174-
sha256Hash:
175-
description: |-
176-
The SHA256 hash of the binary to download. Used both to name the
177-
downloaded file (for preventing conflicts), and to check the integrity of
178-
the downloaded file.
179-
pattern: ^[a-z0-9]+$
180-
type: string
181-
url:
182-
description: |
183-
A gs:// URL pointing to a runsc binary that can be downloaded (possibly
184-
with atelet's credentials).
185-
minLength: 1
186-
type: string
187-
required:
188-
- sha256Hash
189-
- url
190-
type: object
191-
arm64:
192-
description: Configuration for the arm64 binary.
193-
properties:
194-
sha256Hash:
195-
description: |-
196-
The SHA256 hash of the binary to download. Used both to name the
197-
downloaded file (for preventing conflicts), and to check the integrity of
198-
the downloaded file.
199-
pattern: ^[a-z0-9]+$
200-
type: string
201-
url:
202-
description: |
203-
A gs:// URL pointing to a runsc binary that can be downloaded (possibly
204-
with atelet's credentials).
205-
minLength: 1
206-
type: string
207-
required:
208-
- sha256Hash
209-
- url
210-
type: object
211-
authentication:
212-
description: How should atelet authenticate to download the runsc
213-
binary?
214-
properties:
215-
gcp:
216-
description: Use GCP application-default credentials.
217-
type: object
218-
type: object
219-
type: object
220169
snapshotsConfig:
221170
description: Snapshots configuration for the actor.
222171
properties:
@@ -273,10 +222,12 @@ spec:
273222
x-kubernetes-map-type: atomic
274223
required:
275224
- pauseImage
276-
- runsc
277225
- snapshotsConfig
278226
- workerPoolRef
279227
type: object
228+
x-kubernetes-validations:
229+
- message: Spec is immutable
230+
rule: self == oldSelf
280231
status:
281232
description: status is the observed state of ActorTemplate
282233
properties:
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
# Copyright 2026 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
apiVersion: apiextensions.k8s.io/v1
16+
kind: CustomResourceDefinition
17+
metadata:
18+
annotations:
19+
controller-gen.kubebuilder.io/version: v0.20.1
20+
name: sandboxconfigs.ate.dev
21+
spec:
22+
group: ate.dev
23+
names:
24+
kind: SandboxConfig
25+
listKind: SandboxConfigList
26+
plural: sandboxconfigs
27+
shortNames:
28+
- sandboxconfig
29+
singular: sandboxconfig
30+
scope: Cluster
31+
versions:
32+
- additionalPrinterColumns:
33+
- jsonPath: .spec.sandboxClass
34+
name: Class
35+
type: string
36+
- jsonPath: .spec.default
37+
name: Default
38+
type: boolean
39+
- jsonPath: .metadata.creationTimestamp
40+
name: Age
41+
type: date
42+
name: v1alpha1
43+
schema:
44+
openAPIV3Schema:
45+
description: |-
46+
SandboxConfig is cluster-scoped configuration describing the sandbox binaries
47+
for a sandbox runtime family. It is referenced (or defaulted) by WorkerPools
48+
and decouples sandbox binary selection from ActorTemplate.
49+
properties:
50+
apiVersion:
51+
description: |-
52+
APIVersion defines the versioned schema of this representation of an object.
53+
Servers should convert recognized schemas to the latest internal value, and
54+
may reject unrecognized values.
55+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
56+
type: string
57+
kind:
58+
description: |-
59+
Kind is a string value representing the REST resource this object represents.
60+
Servers may infer this from the endpoint the client submits requests to.
61+
Cannot be updated.
62+
In CamelCase.
63+
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
64+
type: string
65+
metadata:
66+
type: object
67+
spec:
68+
description: spec defines the desired state of SandboxConfig
69+
properties:
70+
assets:
71+
additionalProperties:
72+
additionalProperties:
73+
description: |-
74+
AssetFile is one content-addressed file that atelet fetches for a sandbox
75+
runtime (e.g. the gVisor runsc binary, or a micro-VM kernel/firmware/config).
76+
properties:
77+
sha256:
78+
description: |-
79+
SHA256 is the lower-case hex SHA256 of the asset. It both names the cached
80+
file (preventing collisions) and verifies the download's integrity.
81+
pattern: ^[a-f0-9]{64}$
82+
type: string
83+
url:
84+
description: |-
85+
URL is where to download the asset from (e.g. a gs:// URL). It may be
86+
fetched anonymously or with credentials depending on atelet's
87+
configuration.
88+
minLength: 1
89+
type: string
90+
required:
91+
- sha256
92+
- url
93+
type: object
94+
type: object
95+
description: |-
96+
Assets is the set of files atelet fetches for this runtime, keyed first by
97+
architecture (GOARCH, e.g. "amd64", "arm64") and then by asset name. The
98+
asset names are interpreted by the sandbox backend: gVisor expects a
99+
"runsc" asset; a micro-VM backend expects several (e.g. "cloud-hypervisor",
100+
"kata-kernel", "kata-image"). The schema is intentionally generic;
101+
per-class requirements are enforced by a ValidatingAdmissionPolicy.
102+
type: object
103+
default:
104+
description: |-
105+
Default marks this SandboxConfig as the cluster-wide default for its
106+
SandboxClass. A WorkerPool with no explicit SandboxConfigName resolves to
107+
the default config for its SandboxClass. At most one default is expected
108+
per SandboxClass.
109+
type: boolean
110+
sandboxClass:
111+
default: gvisor
112+
description: |-
113+
SandboxClass is the sandbox runtime family this config applies to. A
114+
WorkerPool only uses SandboxConfigs whose SandboxClass matches its own.
115+
enum:
116+
- gvisor
117+
- microvm
118+
type: string
119+
required:
120+
- sandboxClass
121+
type: object
122+
required:
123+
- spec
124+
type: object
125+
served: true
126+
storage: true
127+
subresources: {}

0 commit comments

Comments
 (0)