Skip to content

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