894 lines
47 KiB
JSON
894 lines
47 KiB
JSON
{
|
|
"description": "Backup is the Schema for the backups API",
|
|
"properties": {
|
|
"apiVersion": {
|
|
"description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
|
|
"type": "string"
|
|
},
|
|
"metadata": {
|
|
"type": "object"
|
|
},
|
|
"spec": {
|
|
"description": "BackupSpec defines a single backup. It must contain all information to connect to\nthe backup repository when applied. If used with defaults or schedules the operator will\nensure that the defaults are applied before creating the object on the API.",
|
|
"properties": {
|
|
"activeDeadlineSeconds": {
|
|
"description": "ActiveDeadlineSeconds specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it.\nValue must be positive integer if given.",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"backend": {
|
|
"description": "Backend contains the restic repo where the job should backup to.",
|
|
"properties": {
|
|
"azure": {
|
|
"properties": {
|
|
"accountKeySecretRef": {
|
|
"description": "SecretKeySelector selects a key of a Secret.",
|
|
"properties": {
|
|
"key": {
|
|
"description": "The key of the secret to select from. Must be a valid secret key.",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
},
|
|
"optional": {
|
|
"description": "Specify whether the Secret or its key must be defined",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
},
|
|
"accountNameSecretRef": {
|
|
"description": "SecretKeySelector selects a key of a Secret.",
|
|
"properties": {
|
|
"key": {
|
|
"description": "The key of the secret to select from. Must be a valid secret key.",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
},
|
|
"optional": {
|
|
"description": "Specify whether the Secret or its key must be defined",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
},
|
|
"container": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"b2": {
|
|
"properties": {
|
|
"accountIDSecretRef": {
|
|
"description": "SecretKeySelector selects a key of a Secret.",
|
|
"properties": {
|
|
"key": {
|
|
"description": "The key of the secret to select from. Must be a valid secret key.",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
},
|
|
"optional": {
|
|
"description": "Specify whether the Secret or its key must be defined",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
},
|
|
"accountKeySecretRef": {
|
|
"description": "SecretKeySelector selects a key of a Secret.",
|
|
"properties": {
|
|
"key": {
|
|
"description": "The key of the secret to select from. Must be a valid secret key.",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
},
|
|
"optional": {
|
|
"description": "Specify whether the Secret or its key must be defined",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
},
|
|
"bucket": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"envFrom": {
|
|
"description": "EnvFrom adds all environment variables from a an external source to the Restic job.",
|
|
"items": {
|
|
"description": "EnvFromSource represents the source of a set of ConfigMaps",
|
|
"properties": {
|
|
"configMapRef": {
|
|
"description": "The ConfigMap to select from",
|
|
"properties": {
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
},
|
|
"optional": {
|
|
"description": "Specify whether the ConfigMap must be defined",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
},
|
|
"prefix": {
|
|
"description": "An optional identifier to prepend to each key in the ConfigMap. Must be a C_IDENTIFIER.",
|
|
"type": "string"
|
|
},
|
|
"secretRef": {
|
|
"description": "The Secret to select from",
|
|
"properties": {
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
},
|
|
"optional": {
|
|
"description": "Specify whether the Secret must be defined",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"type": "array"
|
|
},
|
|
"gcs": {
|
|
"properties": {
|
|
"accessTokenSecretRef": {
|
|
"description": "SecretKeySelector selects a key of a Secret.",
|
|
"properties": {
|
|
"key": {
|
|
"description": "The key of the secret to select from. Must be a valid secret key.",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
},
|
|
"optional": {
|
|
"description": "Specify whether the Secret or its key must be defined",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
},
|
|
"bucket": {
|
|
"type": "string"
|
|
},
|
|
"projectIDSecretRef": {
|
|
"description": "SecretKeySelector selects a key of a Secret.",
|
|
"properties": {
|
|
"key": {
|
|
"description": "The key of the secret to select from. Must be a valid secret key.",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
},
|
|
"optional": {
|
|
"description": "Specify whether the Secret or its key must be defined",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"local": {
|
|
"properties": {
|
|
"mountPath": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"repoPasswordSecretRef": {
|
|
"description": "RepoPasswordSecretRef references a secret key to look up the restic repository password",
|
|
"properties": {
|
|
"key": {
|
|
"description": "The key of the secret to select from. Must be a valid secret key.",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
},
|
|
"optional": {
|
|
"description": "Specify whether the Secret or its key must be defined",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
},
|
|
"rest": {
|
|
"properties": {
|
|
"passwordSecretReg": {
|
|
"description": "SecretKeySelector selects a key of a Secret.",
|
|
"properties": {
|
|
"key": {
|
|
"description": "The key of the secret to select from. Must be a valid secret key.",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
},
|
|
"optional": {
|
|
"description": "Specify whether the Secret or its key must be defined",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
},
|
|
"url": {
|
|
"type": "string"
|
|
},
|
|
"userSecretRef": {
|
|
"description": "SecretKeySelector selects a key of a Secret.",
|
|
"properties": {
|
|
"key": {
|
|
"description": "The key of the secret to select from. Must be a valid secret key.",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
},
|
|
"optional": {
|
|
"description": "Specify whether the Secret or its key must be defined",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"s3": {
|
|
"properties": {
|
|
"accessKeyIDSecretRef": {
|
|
"description": "SecretKeySelector selects a key of a Secret.",
|
|
"properties": {
|
|
"key": {
|
|
"description": "The key of the secret to select from. Must be a valid secret key.",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
},
|
|
"optional": {
|
|
"description": "Specify whether the Secret or its key must be defined",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
},
|
|
"bucket": {
|
|
"type": "string"
|
|
},
|
|
"endpoint": {
|
|
"type": "string"
|
|
},
|
|
"secretAccessKeySecretRef": {
|
|
"description": "SecretKeySelector selects a key of a Secret.",
|
|
"properties": {
|
|
"key": {
|
|
"description": "The key of the secret to select from. Must be a valid secret key.",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
},
|
|
"optional": {
|
|
"description": "Specify whether the Secret or its key must be defined",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"swift": {
|
|
"properties": {
|
|
"container": {
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"tlsOptions": {
|
|
"properties": {
|
|
"caCert": {
|
|
"type": "string"
|
|
},
|
|
"clientCert": {
|
|
"type": "string"
|
|
},
|
|
"clientKey": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"volumeMounts": {
|
|
"items": {
|
|
"description": "VolumeMount describes a mounting of a Volume within a container.",
|
|
"properties": {
|
|
"mountPath": {
|
|
"description": "Path within the container at which the volume should be mounted. Must\nnot contain ':'.",
|
|
"type": "string"
|
|
},
|
|
"mountPropagation": {
|
|
"description": "mountPropagation determines how mounts are propagated from the host\nto container and the other way around.\nWhen not set, MountPropagationNone is used.\nThis field is beta in 1.10.",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "This must match the Name of a Volume.",
|
|
"type": "string"
|
|
},
|
|
"readOnly": {
|
|
"description": "Mounted read-only if true, read-write otherwise (false or unspecified).\nDefaults to false.",
|
|
"type": "boolean"
|
|
},
|
|
"subPath": {
|
|
"description": "Path within the volume from which the container's volume should be mounted.\nDefaults to \"\" (volume's root).",
|
|
"type": "string"
|
|
},
|
|
"subPathExpr": {
|
|
"description": "Expanded path within the volume from which the container's volume should be mounted.\nBehaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment.\nDefaults to \"\" (volume's root).\nSubPathExpr and SubPath are mutually exclusive.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"mountPath",
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"failedJobsHistoryLimit": {
|
|
"description": "FailedJobsHistoryLimit amount of failed jobs to keep for later analysis.\nKeepJobs is used property is not specified.",
|
|
"type": "integer"
|
|
},
|
|
"keepJobs": {
|
|
"description": "KeepJobs amount of jobs to keep for later analysis.\n\n\nDeprecated: Use FailedJobsHistoryLimit and SuccessfulJobsHistoryLimit respectively.",
|
|
"type": "integer"
|
|
},
|
|
"podConfigRef": {
|
|
"description": "PodConfigRef describes the pod spec with wich this action shall be executed.\nIt takes precedence over the Resources or PodSecurityContext field.\nIt does not allow changing the image or the command of the resulting pod.\nThis is for advanced use-cases only. Please only set this if you know what you're doing.",
|
|
"properties": {
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
},
|
|
"podSecurityContext": {
|
|
"description": "PodSecurityContext describes the security context with which this action shall be executed.",
|
|
"properties": {
|
|
"fsGroup": {
|
|
"description": "A special supplemental group that applies to all containers in a pod.\nSome volume types allow the Kubelet to change the ownership of that volume\nto be owned by the pod:\n\n\n1. The owning GID will be the FSGroup\n2. The setgid bit is set (new files created in the volume will be owned by FSGroup)\n3. The permission bits are OR'd with rw-rw----\n\n\nIf unset, the Kubelet will not modify the ownership and permissions of any volume.\nNote that this field cannot be set when spec.os.name is windows.",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"fsGroupChangePolicy": {
|
|
"description": "fsGroupChangePolicy defines behavior of changing ownership and permission of the volume\nbefore being exposed inside Pod. This field will only apply to\nvolume types which support fsGroup based ownership(and permissions).\nIt will have no effect on ephemeral volume types such as: secret, configmaps\nand emptydir.\nValid values are \"OnRootMismatch\" and \"Always\". If not specified, \"Always\" is used.\nNote that this field cannot be set when spec.os.name is windows.",
|
|
"type": "string"
|
|
},
|
|
"runAsGroup": {
|
|
"description": "The GID to run the entrypoint of the container process.\nUses runtime default if unset.\nMay also be set in SecurityContext. If set in both SecurityContext and\nPodSecurityContext, the value specified in SecurityContext takes precedence\nfor that container.\nNote that this field cannot be set when spec.os.name is windows.",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"runAsNonRoot": {
|
|
"description": "Indicates that the container must run as a non-root user.\nIf true, the Kubelet will validate the image at runtime to ensure that it\ndoes not run as UID 0 (root) and fail to start the container if it does.\nIf unset or false, no such validation will be performed.\nMay also be set in SecurityContext. If set in both SecurityContext and\nPodSecurityContext, the value specified in SecurityContext takes precedence.",
|
|
"type": "boolean"
|
|
},
|
|
"runAsUser": {
|
|
"description": "The UID to run the entrypoint of the container process.\nDefaults to user specified in image metadata if unspecified.\nMay also be set in SecurityContext. If set in both SecurityContext and\nPodSecurityContext, the value specified in SecurityContext takes precedence\nfor that container.\nNote that this field cannot be set when spec.os.name is windows.",
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"seLinuxOptions": {
|
|
"description": "The SELinux context to be applied to all containers.\nIf unspecified, the container runtime will allocate a random SELinux context for each\ncontainer. May also be set in SecurityContext. If set in\nboth SecurityContext and PodSecurityContext, the value specified in SecurityContext\ntakes precedence for that container.\nNote that this field cannot be set when spec.os.name is windows.",
|
|
"properties": {
|
|
"level": {
|
|
"description": "Level is SELinux level label that applies to the container.",
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"description": "Role is a SELinux role label that applies to the container.",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"description": "Type is a SELinux type label that applies to the container.",
|
|
"type": "string"
|
|
},
|
|
"user": {
|
|
"description": "User is a SELinux user label that applies to the container.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"seccompProfile": {
|
|
"description": "The seccomp options to use by the containers in this pod.\nNote that this field cannot be set when spec.os.name is windows.",
|
|
"properties": {
|
|
"localhostProfile": {
|
|
"description": "localhostProfile indicates a profile defined in a file on the node should be used.\nThe profile must be preconfigured on the node to work.\nMust be a descending path, relative to the kubelet's configured seccomp profile location.\nMust be set if type is \"Localhost\". Must NOT be set for any other type.",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"description": "type indicates which kind of seccomp profile will be applied.\nValid options are:\n\n\nLocalhost - a profile defined in a file on the node should be used.\nRuntimeDefault - the container runtime default profile should be used.\nUnconfined - no profile should be applied.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"supplementalGroups": {
|
|
"description": "A list of groups applied to the first process run in each container, in addition\nto the container's primary GID, the fsGroup (if specified), and group memberships\ndefined in the container image for the uid of the container process. If unspecified,\nno additional groups are added to any container. Note that group memberships\ndefined in the container image for the uid of the container process are still effective,\neven if they are not included in this list.\nNote that this field cannot be set when spec.os.name is windows.",
|
|
"items": {
|
|
"format": "int64",
|
|
"type": "integer"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"sysctls": {
|
|
"description": "Sysctls hold a list of namespaced sysctls used for the pod. Pods with unsupported\nsysctls (by the container runtime) might fail to launch.\nNote that this field cannot be set when spec.os.name is windows.",
|
|
"items": {
|
|
"description": "Sysctl defines a kernel parameter to be set",
|
|
"properties": {
|
|
"name": {
|
|
"description": "Name of a property to set",
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"description": "Value of a property to set",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"value"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"type": "array"
|
|
},
|
|
"windowsOptions": {
|
|
"description": "The Windows specific settings applied to all containers.\nIf unspecified, the options within a container's SecurityContext will be used.\nIf set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext takes precedence.\nNote that this field cannot be set when spec.os.name is linux.",
|
|
"properties": {
|
|
"gmsaCredentialSpec": {
|
|
"description": "GMSACredentialSpec is where the GMSA admission webhook\n(https://github.com/kubernetes-sigs/windows-gmsa) inlines the contents of the\nGMSA credential spec named by the GMSACredentialSpecName field.",
|
|
"type": "string"
|
|
},
|
|
"gmsaCredentialSpecName": {
|
|
"description": "GMSACredentialSpecName is the name of the GMSA credential spec to use.",
|
|
"type": "string"
|
|
},
|
|
"hostProcess": {
|
|
"description": "HostProcess determines if a container should be run as a 'Host Process' container.\nAll of a Pod's containers must have the same effective HostProcess value\n(it is not allowed to have a mix of HostProcess containers and non-HostProcess containers).\nIn addition, if HostProcess is true then HostNetwork must also be set to true.",
|
|
"type": "boolean"
|
|
},
|
|
"runAsUserName": {
|
|
"description": "The UserName in Windows to run the entrypoint of the container process.\nDefaults to the user specified in image metadata if unspecified.\nMay also be set in PodSecurityContext. If set in both SecurityContext and\nPodSecurityContext, the value specified in SecurityContext takes precedence.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"promURL": {
|
|
"description": "PromURL sets a prometheus push URL where the backup container send metrics to",
|
|
"type": "string"
|
|
},
|
|
"resources": {
|
|
"description": "Resources describes the compute resource requirements (cpu, memory, etc.)",
|
|
"properties": {
|
|
"claims": {
|
|
"description": "Claims lists the names of resources, defined in spec.resourceClaims,\nthat are used by this container.\n\n\nThis is an alpha field and requires enabling the\nDynamicResourceAllocation feature gate.\n\n\nThis field is immutable. It can only be set for containers.",
|
|
"items": {
|
|
"description": "ResourceClaim references one entry in PodSpec.ResourceClaims.",
|
|
"properties": {
|
|
"name": {
|
|
"description": "Name must match the name of one entry in pod.spec.resourceClaims of\nthe Pod where this field is used. It makes that resource available\ninside a container.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"type": "array",
|
|
"x-kubernetes-list-map-keys": [
|
|
"name"
|
|
],
|
|
"x-kubernetes-list-type": "map"
|
|
},
|
|
"limits": {
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
],
|
|
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
|
|
"x-kubernetes-int-or-string": true
|
|
},
|
|
"description": "Limits describes the maximum amount of compute resources allowed.\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
"type": "object"
|
|
},
|
|
"requests": {
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
],
|
|
"pattern": "^(\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\\+|-)?(([0-9]+(\\.[0-9]*)?)|(\\.[0-9]+))))?$",
|
|
"x-kubernetes-int-or-string": true
|
|
},
|
|
"description": "Requests describes the minimum amount of compute resources required.\nIf Requests is omitted for a container, it defaults to Limits if that is explicitly specified,\notherwise to an implementation-defined value. Requests cannot exceed Limits.\nMore info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"statsURL": {
|
|
"description": "StatsURL sets an arbitrary URL where the restic container posts metrics and\ninformation about the snapshots to. This is in addition to the prometheus\npushgateway.",
|
|
"type": "string"
|
|
},
|
|
"successfulJobsHistoryLimit": {
|
|
"description": "SuccessfulJobsHistoryLimit amount of successful jobs to keep for later analysis.\nKeepJobs is used property is not specified.",
|
|
"type": "integer"
|
|
},
|
|
"tags": {
|
|
"description": "Tags is a list of arbitrary tags that get added to the backup via Restic's tagging system",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"volumes": {
|
|
"description": "Volumes List of volumes that can be mounted by containers belonging to the pod.",
|
|
"items": {
|
|
"properties": {
|
|
"configMap": {
|
|
"description": "configMap represents a configMap that should populate this volume",
|
|
"properties": {
|
|
"defaultMode": {
|
|
"description": "defaultMode is optional: mode bits used to set permissions on created files by default.\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\nDefaults to 0644.\nDirectories within the path are not affected by this setting.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.",
|
|
"format": "int32",
|
|
"type": "integer"
|
|
},
|
|
"items": {
|
|
"description": "items if unspecified, each key-value pair in the Data field of the referenced\nConfigMap will be projected into the volume as a file whose name is the\nkey and content is the value. If specified, the listed keys will be\nprojected into the specified paths, and unlisted keys will not be\npresent. If a key is specified which is not present in the ConfigMap,\nthe volume setup will error unless it is marked optional. Paths must be\nrelative and may not contain the '..' path or start with '..'.",
|
|
"items": {
|
|
"description": "Maps a string key to a path within a volume.",
|
|
"properties": {
|
|
"key": {
|
|
"description": "key is the key to project.",
|
|
"type": "string"
|
|
},
|
|
"mode": {
|
|
"description": "mode is Optional: mode bits used to set permissions on this file.\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\nIf not specified, the volume defaultMode will be used.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.",
|
|
"format": "int32",
|
|
"type": "integer"
|
|
},
|
|
"path": {
|
|
"description": "path is the relative path of the file to map the key to.\nMay not be an absolute path.\nMay not contain the path element '..'.\nMay not start with the string '..'.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"path"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"type": "array"
|
|
},
|
|
"name": {
|
|
"description": "Name of the referent.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names\nTODO: Add other useful fields. apiVersion, kind, uid?",
|
|
"type": "string"
|
|
},
|
|
"optional": {
|
|
"description": "optional specify whether the ConfigMap or its keys must be defined",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"x-kubernetes-map-type": "atomic",
|
|
"additionalProperties": false
|
|
},
|
|
"name": {
|
|
"description": "name of the volume.\nMust be a DNS_LABEL and unique within the pod.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
|
|
"type": "string"
|
|
},
|
|
"persistentVolumeClaim": {
|
|
"description": "persistentVolumeClaimVolumeSource represents a reference to a\nPersistentVolumeClaim in the same namespace.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
|
|
"properties": {
|
|
"claimName": {
|
|
"description": "claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume.\nMore info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims",
|
|
"type": "string"
|
|
},
|
|
"readOnly": {
|
|
"description": "readOnly Will force the ReadOnly setting in VolumeMounts.\nDefault false.",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"claimName"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"secret": {
|
|
"description": "secret represents a secret that should populate this volume.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret",
|
|
"properties": {
|
|
"defaultMode": {
|
|
"description": "defaultMode is Optional: mode bits used to set permissions on created files by default.\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values\nfor mode bits. Defaults to 0644.\nDirectories within the path are not affected by this setting.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.",
|
|
"format": "int32",
|
|
"type": "integer"
|
|
},
|
|
"items": {
|
|
"description": "items If unspecified, each key-value pair in the Data field of the referenced\nSecret will be projected into the volume as a file whose name is the\nkey and content is the value. If specified, the listed keys will be\nprojected into the specified paths, and unlisted keys will not be\npresent. If a key is specified which is not present in the Secret,\nthe volume setup will error unless it is marked optional. Paths must be\nrelative and may not contain the '..' path or start with '..'.",
|
|
"items": {
|
|
"description": "Maps a string key to a path within a volume.",
|
|
"properties": {
|
|
"key": {
|
|
"description": "key is the key to project.",
|
|
"type": "string"
|
|
},
|
|
"mode": {
|
|
"description": "mode is Optional: mode bits used to set permissions on this file.\nMust be an octal value between 0000 and 0777 or a decimal value between 0 and 511.\nYAML accepts both octal and decimal values, JSON requires decimal values for mode bits.\nIf not specified, the volume defaultMode will be used.\nThis might be in conflict with other options that affect the file\nmode, like fsGroup, and the result can be other mode bits set.",
|
|
"format": "int32",
|
|
"type": "integer"
|
|
},
|
|
"path": {
|
|
"description": "path is the relative path of the file to map the key to.\nMay not be an absolute path.\nMay not contain the path element '..'.\nMay not start with the string '..'.",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"path"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"type": "array"
|
|
},
|
|
"optional": {
|
|
"description": "optional field specify whether the Secret or its keys must be defined",
|
|
"type": "boolean"
|
|
},
|
|
"secretName": {
|
|
"description": "secretName is the name of the secret in the pod's namespace to use.\nMore info: https://kubernetes.io/docs/concepts/storage/volumes#secret",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"status": {
|
|
"description": "Status defines the observed state of a generic K8up job. It is used for the\noperator to determine what to do.",
|
|
"properties": {
|
|
"conditions": {
|
|
"description": "Conditions provide a standard mechanism for higher-level status reporting from a controller.\nThey are an extension mechanism which allows tools and other controllers to collect summary information about\nresources without needing to understand resource-specific status details.",
|
|
"items": {
|
|
"description": "Condition contains details for one aspect of the current state of this API Resource.\n---\nThis struct is intended for direct use as an array at the field path .status.conditions. For example,\n\n\n\ttype FooStatus struct{\n\t // Represents the observations of a foo's current state.\n\t // Known .status.conditions.type are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t // other fields\n\t}",
|
|
"properties": {
|
|
"lastTransitionTime": {
|
|
"description": "lastTransitionTime is the last time the condition transitioned from one status to another.\nThis should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.",
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"description": "message is a human readable message indicating details about the transition.\nThis may be an empty string.",
|
|
"maxLength": 32768,
|
|
"type": "string"
|
|
},
|
|
"observedGeneration": {
|
|
"description": "observedGeneration represents the .metadata.generation that the condition was set based upon.\nFor instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date\nwith respect to the current state of the instance.",
|
|
"format": "int64",
|
|
"minimum": 0,
|
|
"type": "integer"
|
|
},
|
|
"reason": {
|
|
"description": "reason contains a programmatic identifier indicating the reason for the condition's last transition.\nProducers of specific condition types may define expected values and meanings for this field,\nand whether the values are considered a guaranteed API.\nThe value should be a CamelCase string.\nThis field may not be empty.",
|
|
"maxLength": 1024,
|
|
"minLength": 1,
|
|
"pattern": "^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"description": "status of the condition, one of True, False, Unknown.",
|
|
"enum": [
|
|
"True",
|
|
"False",
|
|
"Unknown"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"description": "type of condition in CamelCase or in foo.example.com/CamelCase.\n---\nMany .condition.type values are consistent across resources like Available, but because arbitrary conditions can be\nuseful (see .node.status.conditions), the ability to deconflict is important.\nThe regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)",
|
|
"maxLength": 316,
|
|
"pattern": "^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"lastTransitionTime",
|
|
"message",
|
|
"reason",
|
|
"status",
|
|
"type"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"type": "array"
|
|
},
|
|
"exclusive": {
|
|
"type": "boolean"
|
|
},
|
|
"finished": {
|
|
"type": "boolean"
|
|
},
|
|
"started": {
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|