Files
Compose-Files/kubernetes/core-statefulset/template.json
T
2026-07-20 09:23:17 -04:00

399 lines
10 KiB
JSON

{
"slug": "core-statefulset",
"kind": "kubernetes",
"metadata": {
"name": "Kubernetes StatefulSet",
"description": "Creates a Kubernetes StatefulSet with configurable image, replicas, optional service account, one container port, simple environment variables, optional resource requests and limits, and an optional volumeClaimTemplate for persistent storage.",
"tags": [],
"icon": {
"provider": "simple-icons",
"id": "kubernetes"
},
"draft": false,
"version": {
"name": "1.31.0",
"source_dep_name": "manual/core-statefulset"
}
},
"variables": [
{
"title": "General",
"name": "general",
"items": [
{
"name": "resource_name",
"type": "str",
"title": "StatefulSet name",
"required": false,
"default": "app-statefulset",
"config": {
"placeholder": "app-statefulset"
}
},
{
"name": "namespace",
"type": "str",
"title": "Namespace",
"required": false,
"default": "default",
"config": {
"placeholder": "default"
}
},
{
"name": "app_label",
"type": "str",
"title": "App Label",
"required": false,
"default": "app",
"config": {
"placeholder": "app"
}
},
{
"name": "service_name",
"type": "str",
"title": "Service name",
"required": false,
"default": "app",
"description": "Service name referenced by the StatefulSet for stable network identity.",
"config": {
"placeholder": "app"
}
},
{
"name": "replicas",
"type": "int",
"title": "Replicas",
"required": false,
"default": 1,
"description": "Number of Pod replicas.",
"config": {
"slider": true,
"min": 1,
"max": 20,
"step": 1,
"placeholder": "1"
}
},
{
"name": "pod_management_policy",
"type": "enum",
"title": "Pod management policy",
"required": false,
"default": "OrderedReady",
"config": {
"options": [
"OrderedReady",
"Parallel"
]
}
},
{
"name": "update_strategy",
"type": "enum",
"title": "Update strategy",
"required": false,
"default": "RollingUpdate",
"config": {
"options": [
"RollingUpdate",
"OnDelete"
]
}
},
{
"name": "service_account_name",
"type": "str",
"title": "ServiceAccount Name",
"required": false,
"config": {
"placeholder": "app-serviceaccount"
}
}
]
},
{
"title": "Container",
"name": "container",
"items": [
{
"name": "container_name",
"type": "str",
"title": "Container name",
"required": false,
"default": "app",
"config": {
"placeholder": "app"
}
},
{
"name": "image",
"type": "str",
"title": "Container image reference",
"required": true,
"description": "Container image used by the StatefulSet.",
"config": {
"placeholder": "nginx:stable"
}
},
{
"name": "image_pull_policy",
"type": "enum",
"title": "Image pull policy",
"required": false,
"default": "IfNotPresent",
"config": {
"options": [
"Always",
"IfNotPresent",
"Never"
]
}
},
{
"name": "ports_enabled",
"type": "bool",
"title": "Container Port",
"required": false,
"default": true
},
{
"name": "container_port",
"type": "int",
"title": "Container port number",
"required": false,
"default": 8080,
"config": {
"placeholder": "8080"
}
},
{
"name": "container_port_name",
"type": "str",
"title": "Port name",
"required": false,
"default": "http",
"config": {
"placeholder": "http"
}
},
{
"name": "container_port_protocol",
"type": "enum",
"title": "Port protocol",
"required": false,
"default": "TCP",
"config": {
"options": [
"TCP",
"UDP",
"SCTP"
]
}
}
]
},
{
"title": "Environment",
"name": "environment",
"items": [
{
"name": "env_literal_enabled",
"type": "bool",
"title": "Literal Env Var",
"required": false,
"default": false,
"description": "Add one literal environment variable."
},
{
"name": "env_literal_name",
"type": "str",
"title": "Literal Env Name",
"required": false,
"default": "APP_ENV",
"description": "Literal environment variable name.",
"config": {
"placeholder": "APP_ENV"
}
},
{
"name": "env_literal_value",
"type": "str",
"title": "Literal Env Value",
"required": false,
"default": "production",
"description": "Literal environment variable value.",
"config": {
"placeholder": "production"
}
},
{
"name": "env_secret_enabled",
"type": "bool",
"title": "Secret Env Var",
"required": false,
"default": false,
"description": "Add one secret-backed environment variable."
},
{
"name": "env_secret_name",
"type": "str",
"title": "Secret Env Name",
"required": false,
"default": "APP_SECRET",
"config": {
"placeholder": "APP_SECRET"
}
},
{
"name": "env_secret_secret_name",
"type": "str",
"title": "Secret resource name",
"required": false,
"default": "app-secret",
"config": {
"placeholder": "app-secret"
}
},
{
"name": "env_secret_secret_key",
"type": "str",
"title": "Secret key",
"required": false,
"default": "password",
"config": {
"placeholder": "password"
}
}
]
},
{
"title": "Storage",
"name": "storage",
"items": [
{
"name": "persistence_enabled",
"type": "bool",
"title": "Persistent storage",
"required": false,
"default": true,
"description": "Create a volumeClaimTemplate and mount it into the container."
},
{
"name": "volume_claim_name",
"type": "str",
"title": "Volume claim template name",
"required": false,
"default": "data",
"description": "Name used for the generated volumeClaimTemplate.",
"config": {
"placeholder": "data"
}
},
{
"name": "mount_path",
"type": "str",
"title": "Mount path",
"required": false,
"default": "/data",
"config": {
"placeholder": "/data"
}
},
{
"name": "storage_class",
"type": "str",
"title": "Storage Class",
"required": false,
"default": "",
"description": "Storage class name. Leave empty to use the cluster default.",
"config": {
"placeholder": "longhorn"
}
},
{
"name": "storage_size",
"type": "str",
"title": "Storage Size",
"required": false,
"default": "10Gi",
"description": "Requested storage size.",
"config": {
"placeholder": "10Gi"
}
},
{
"name": "access_mode",
"type": "enum",
"title": "Access mode",
"required": false,
"default": "ReadWriteOnce",
"description": "Access mode used for the claim.",
"config": {
"options": [
"ReadWriteOnce",
"ReadOnlyMany",
"ReadWriteMany",
"ReadWriteOncePod"
]
}
}
]
},
{
"title": "Resources",
"name": "resources",
"items": [
{
"name": "resources_enabled",
"type": "bool",
"title": "Resources",
"required": false,
"default": false
},
{
"name": "resources_cpu_limit",
"type": "str",
"title": "CPU limit",
"required": false,
"default": "1000m",
"config": {
"placeholder": "1000m"
}
},
{
"name": "resources_cpu_request",
"type": "str",
"title": "CPU request",
"required": false,
"default": "250m",
"config": {
"placeholder": "250m"
}
},
{
"name": "resources_memory_limit",
"type": "str",
"title": "Memory limit",
"required": false,
"default": "1Gi",
"config": {
"placeholder": "1Gi"
}
},
{
"name": "resources_memory_request",
"type": "str",
"title": "Memory request",
"required": false,
"default": "256Mi",
"config": {
"placeholder": "256Mi"
}
}
]
}
]
}