{ "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" } } ] } ] }