406 lines
11 KiB
JSON
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"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|