Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions charts/substrate/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ See `values.yaml` for the full set; the important keys:
| `atelet.storageBackend` | `s3` | Default snapshot backend, wired to RustFS when `rustfs.enabled=true` |
| `atelet.imageCredentialProviderConfig` | `""` | Host path to the kubelet credential provider config; set together with the bin directory |
| `atelet.imageCredentialProviderConfigYAML` | `""` | Credential provider config as text, rendered into a ConfigMap, for nodes where that file cannot be authored or must differ from the kubelet's; mutually exclusive with the host path |
| `atelet.nodeSelector` | `{}` | Node labels atelet pods must match; must cover the nodes of every WorkerPool |
| `atelet.imageCredentialProviderBinDir` | `""` | Host path to the kubelet credential provider binaries; both paths are mounted read-only |
| `credentialProvider.namespacePolicies` | `[]` | Default-deny atespace-to-namespace grants; the chart includes get-only Secret RBAC for the provider |
| `ateApi.actorJWTIssuer` | `https://<idp-service>.<namespace>.svc` | Issuer placed in actor JWTs; set a stable URL reachable by relying parties |
Expand Down
4 changes: 4 additions & 0 deletions charts/substrate/templates/atelet.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,10 @@ spec:
spec:
serviceAccountName: {{ include "substrate.fullname" (list "atelet" .) }}
priorityClassName: {{ include "substrate.fullname" (list "ate-node-critical" .) }}
{{- with .Values.atelet.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
# Run on nodes reserved for any WorkerPool sandbox class.
tolerations:
- key: ate.dev/sandboxClass
Expand Down
22 changes: 22 additions & 0 deletions charts/substrate/tests/control_plane_test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,28 @@ tests:
key: cloud.google.com/compute-class
operator: Exists
effect: NoSchedule
- it: schedules atelet on every node by default
template: atelet.yaml
documentSelector:
path: kind
value: DaemonSet
asserts:
- notExists:
path: spec.template.spec.nodeSelector
- it: restricts atelet to nodes matching atelet.nodeSelector
template: atelet.yaml
documentSelector:
path: kind
value: DaemonSet
set:
atelet:
nodeSelector:
pool: agents
asserts:
- equal:
path: spec.template.spec.nodeSelector
value:
pool: agents
- it: probes the credential provider on its health listener
template: k8s-credential-provider.yaml
documentSelector:
Expand Down
3 changes: 3 additions & 0 deletions charts/substrate/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@ atelet:
imageCredentialProviderConfigYAML: ""
imageCredentialProviderBinDir: ""
storageBackend: s3
# Restricts atelet to matching nodes. Every node that runs WorkerPool pods
# needs an atelet, so cover each pool's nodeSelector here.
nodeSelector: {}
extraArgs: []
extraEnv: []
resources:
Expand Down