SAT Microservice Specification
Spec
The specification for Microservice has the following fields.
The specification is not entirely finalised or fixed. Field names and types may change over the course of the project.
replicas-
integer
Desired number of workload instances to run concurrently. selector-
map of string
Label selector used to associate the workload with managed Pods. If omitted, the orchestrator may derive a selector from labels. strategy-
map of string
Rollout strategy configuration for the workload (e.g. rolling update parameters). revision_history_limit-
integer
Number of prior ReplicaSets to retain for rollback. min_ready_seconds-
integer
Minimum number of seconds a new Pod should be ready before it is considered available. progress_deadline_seconds-
integer
Maximum time in seconds for the workload to make progress before it is considered failed. image-
string * (required)*
OCI container image reference to run for the primary container. image_pull_policy-
string
Image pull behaviour for the container. Common values include 'Always', 'IfNotPresent', and 'Never'. image_pull_secrets-
list of string
List of Secret names used to authenticate to container registries. entrypoint-
list of string
Entrypoint override for the container. cmd-
list of string
Default arguments passed to the entrypoint. workdir-
string
Working directory inside the container. user-
string
User identity the container process should run as (name or numeric id). command-
list of string
Command to execute in the container. If provided, this is treated as the authoritative command for the container. args-
list of string
Arguments to pass to the container command. If provided, this is treated as the authoritative argument list for the container. working_dir-
string
Working directory inside the container. If set, this is treated as the authoritative working directory. env-
list of map
Environment variables for the container. Each item should include at least 'name' and either 'value' or a value source reference. env_from-
list of map
Bulk environment sources (e.g. ConfigMap or Secret references). ports-
list of PortMapping
Container ports to declare (and optionally expose via a Service). hostname-
string
Hostname to set for the container. dns_policy-
string
DNS policy for the Pod (e.g. 'ClusterFirst'). dns_config-
map of string
DNS configuration customisation for the Pod (nameservers, searches, options). service_account-
string
ServiceAccount name the Pod should run as. automount_service_account_token-
boolean
Whether to automatically mount the ServiceAccount token into the Pod. security_context-
map of string
Pod-level security context settings (e.g. fsGroup, runAsUser). container_security_context-
map of string
Container-level security context settings (e.g. runAsNonRoot, capabilities). volumes-
list of map
Volume declarations used by the Pod template. volume_mounts-
list of map
Volume mount definitions for the container filesystem. Each item should include at least 'mountPath' and either a volume reference or name. resources-
map of string
Resource requests and limits (e.g. cpu and memory) for the container. liveness_probe-
map of string
Liveness probe definition used to detect and restart unhealthy containers. readiness_probe-
map of string
Readiness probe definition used to determine when the workload can receive traffic. startup_probe-
map of string
Startup probe definition used to delay other probes until the container starts. lifecycle-
map of string
Lifecycle hooks for the container (e.g. postStart, preStop). termination_grace_period_seconds-
integer
Time in seconds to allow for graceful termination before force kill. node_selector-
map of string
Node selector constraints for scheduling Pods. affinity-
map of string
Affinity and anti-affinity rules for scheduling Pods. tolerations-
list of map
Tolerations that allow Pods to schedule onto tainted nodes. topology_spread_constraints-
list of map
Constraints to spread Pods across topology domains (e.g. zones, nodes). priority_class_name-
string
PriorityClass name to influence scheduling priority. pod_annotations-
map of string
Annotations to apply specifically to Pods created by this workload, distinct from the resource-level annotations. pod_labels-
map of string
Labels to apply specifically to Pods created by this workload, distinct from the resource-level labels.
Types
PortMapping-
For specifying ports in a container.
containerPort-
integer
Informational only - port inside the container. port-
integer (required)
The port number to expose targetPort to. targetPort-
integer
The port number inside the container to map to. nodePort-
integer
A port in range 30000-32767 available on all nodes.
string-
Primitive string type
map-
Primitive map type
list-
Primitive list type