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

406 lines
11 KiB
JSON

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