{ "slug": "core-cronjob", "kind": "kubernetes", "metadata": { "name": "Kubernetes CronJob", "description": "Creates a Kubernetes CronJob with configurable schedule, image, command and args lists, simple environment variables, optional PVC mounting, and optional resource requests and limits.", "tags": [], "icon": { "provider": "simple-icons", "id": "kubernetes" }, "draft": false, "version": { "name": "1.31.0", "source_dep_name": "manual/core-cronjob" } }, "variables": [ { "title": "General", "name": "general", "items": [ { "name": "resource_name", "type": "str", "title": "CronJob name", "required": false, "default": "app-cronjob", "config": { "placeholder": "app-cronjob" } }, { "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": "schedule", "type": "str", "title": "Schedule", "required": false, "default": "0 3 * * *", "description": "Cron expression used by the CronJob.", "config": { "placeholder": "0 3 * * *" } }, { "name": "suspend", "type": "bool", "title": "Suspend", "required": false, "default": false, "description": "Suspend future scheduled runs." }, { "name": "concurrency_policy", "type": "enum", "title": "Concurrency policy", "required": false, "default": "Forbid", "description": "Policy used when a scheduled run overlaps with a previous run.", "config": { "options": [ "Allow", "Forbid", "Replace" ] } }, { "name": "successful_jobs_history_limit", "type": "int", "title": "Successful jobs history limit", "required": false, "default": 3, "description": "Number of successful Job resources to retain.", "config": { "placeholder": "3" } }, { "name": "failed_jobs_history_limit", "type": "int", "title": "Failed jobs history limit", "required": false, "default": 1, "description": "Number of failed Job resources to retain.", "config": { "placeholder": "1" } }, { "name": "backoff_limit", "type": "int", "title": "Backoff limit", "required": false, "default": 1, "description": "Number of retries before the Job is marked failed.", "config": { "placeholder": "1" } }, { "name": "restart_policy", "type": "enum", "title": "Restart policy", "required": false, "default": "OnFailure", "description": "Restart policy used for Job Pods.", "config": { "options": [ "Never", "OnFailure" ] } }, { "name": "service_account_name", "type": "str", "title": "ServiceAccount Name", "required": false, "config": { "placeholder": "backup-serviceaccount" } }, { "name": "ttl_seconds_after_finished_enabled", "type": "bool", "title": "Job TTL", "required": false, "default": false, "description": "Set a TTL for finished Jobs." }, { "name": "ttl_seconds_after_finished", "type": "int", "title": "TTL seconds after finished", "required": false, "default": 86400, "description": "TTL in seconds for finished Jobs.", "config": { "placeholder": "86400" } } ] }, { "title": "Container", "name": "container", "items": [ { "name": "container_name", "type": "str", "title": "Container name", "required": false, "default": "job", "config": { "placeholder": "job" } }, { "name": "image", "type": "str", "title": "Container image reference", "required": true, "description": "Container image used by the CronJob.", "config": { "placeholder": "alpine:3.21" } }, { "name": "image_pull_policy", "type": "enum", "title": "Image pull policy", "required": false, "default": "IfNotPresent", "config": { "options": [ "Always", "IfNotPresent", "Never" ] } }, { "name": "command_enabled", "type": "bool", "title": "Command", "required": false, "default": false, "description": "Render a custom command list." }, { "name": "command_items", "type": "str", "title": "Command items", "required": false, "default": "sh,-c,echo hello from cronjob", "description": "Comma-separated command list rendered as the container command array.", "config": { "placeholder": "sh,-c,echo hello from cronjob" } }, { "name": "args_enabled", "type": "bool", "title": "Args", "required": false, "default": false, "description": "Render a custom args list." }, { "name": "args_items", "type": "str", "title": "Args items", "required": false, "default": "--verbose,--all", "description": "Comma-separated args list rendered as the container args array.", "config": { "placeholder": "--verbose,--all" } } ] }, { "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": "pvc_mount_enabled", "type": "bool", "title": "PersistentVolumeClaim mount", "required": false, "default": false, "description": "Mount an existing PersistentVolumeClaim into the Job Pod." }, { "name": "pvc_claim_name", "type": "str", "title": "PersistentVolumeClaim name", "required": false, "default": "app-pvc", "description": "Existing claim name to mount.", "config": { "placeholder": "app-pvc" } }, { "name": "pvc_mount_path", "type": "str", "title": "Mount path", "required": false, "default": "/data", "config": { "placeholder": "/data" } } ] }, { "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": "500m", "config": { "placeholder": "500m" } }, { "name": "resources_cpu_request", "type": "str", "title": "CPU request", "required": false, "default": "100m", "config": { "placeholder": "100m" } }, { "name": "resources_memory_limit", "type": "str", "title": "Memory limit", "required": false, "default": "512Mi", "config": { "placeholder": "512Mi" } }, { "name": "resources_memory_request", "type": "str", "title": "Memory request", "required": false, "default": "128Mi", "config": { "placeholder": "128Mi" } } ] } ] }