2020-10-12 23:31:55 +00:00
groups :
- name : "Container Images"
description : "Image to be used for container"
- name : "Container Entrypoint"
description : "Configuration of the executable that will be run when the container is started"
- name : "Container Environment Variables"
description : "Set the environment that will be visible to the container"
- name : "Networking"
description : "Configure networking for container"
- name : "Storage"
description : "Persist and share data that is separate from the lifecycle of the container"
- name : "Health Check"
description : "Define mechanism to periodically probe the container to ensure it's functioning as desired"
- name : "Workload Details"
description : "Configure how workload should be deployed"
- name : "Scaling/Upgrade Policy"
description : "Configure how pods are replaced when configuration is upgraded"
- name : "Restart Policy"
description : "Configure when pod should be restarted in case of failure"
2020-10-16 16:42:36 +00:00
- name : "Resource Reservation"
description : "Specify resources to be allocated to workload"
2020-10-08 19:31:11 +00:00
2020-10-12 23:31:55 +00:00
questions :
# Workload type
- variable : workloadType
description : "Please specify type of workload to deploy"
label : "Workload Type"
group : "Workload Details"
schema :
type : string
default : "Deployment"
required : true
enum :
2020-10-21 13:36:19 +00:00
- value : "Deployment"
description : "Deploy a Deployment workload"
- value : "Job"
description : "Deploy job workload"
- value : "CronJob"
description : "Deploy cronjob workload"
2020-10-08 19:31:11 +00:00
2020-10-12 23:31:55 +00:00
# Cronjob schedule
- variable : cronSchedule
label : "Cron Schedule"
group : "Workload Details"
schema :
type : cron
show_if : [ [ "workloadType" , "=" , "CronJob" ] ]
default :
minute : "5"
2020-10-08 19:31:11 +00:00
2020-10-12 23:31:55 +00:00
# Image related
- variable : image
description : "Docker Image Details"
group : "Container Images"
schema :
type : dict
required : true
attrs :
- variable : repository
description : "Docker image repository"
label : "Image repository"
schema :
type : string
required : true
- variable : tag
description : "Tag to use for specified image"
label : "Image Tag"
schema :
type : string
default : "latest"
- variable : pullPolicy
description : "Docker Image Pull Policy"
label : "Image Pull Policy"
schema :
type : string
default : "IfNotPresent"
enum :
2020-10-21 13:36:19 +00:00
- value : "IfNotPresent"
description : "Only pull image if not present on host"
- value : "Always"
description : "Always pull image even if present on host"
- value : "Never"
description : "Never pull image even if it's not present on host"
2020-10-08 19:31:11 +00:00
2020-10-12 23:31:55 +00:00
# Update strategy
- variable : updateStrategy
description : "Upgrade Policy"
label : "Update Strategy"
group : "Scaling/Upgrade Policy"
schema :
type : string
show_if : [ [ "workloadType" , "=" , "Deployment" ] ]
default : "RollingUpdate"
enum :
2020-10-21 13:36:19 +00:00
- value : "RollingUpdate"
description : "Create new pods and then kill old ones"
- value : "Recreate"
description : "Kill existing pods before creating new ones"
2020-10-08 19:31:11 +00:00
2020-10-12 23:31:55 +00:00
# Restart Policy
- variable : restartPolicy
description : "Restart Policy for workload"
label : "Restart Policy"
schema :
type : string
show_if : [ [ "workloadType" , "=" , "Deployment" ] ]
default : "Always"
enum :
2020-10-21 13:36:19 +00:00
- value : "Always"
description : "Always restart containers in a pod if they exit"
- value : "OnFailure"
description : "Only restart containers if they exit with a failure"
- value : "Never"
description : "Never restart containers if they exit"
2020-10-12 23:31:55 +00:00
- variable : jobRestartPolicy
description : "Restart Policy for workload"
label : "Restart Policy"
schema :
type : string
default : "OnFailure"
show_if : [ [ "workloadType" , "!=" , "Deployment" ] ]
enum :
2020-10-21 13:36:19 +00:00
- value : "OnFailure"
description : "Only restart job if it fails"
- value : "Never"
description : "Never restart job even if it fails"
2020-10-08 19:31:11 +00:00
2020-10-12 23:31:55 +00:00
# Configurable CMD / Entrypoint / Environment Variables
- variable : containerCommand
description : "Commands to execute inside container overriding image CMD default"
label : "Container CMD"
group : "Container Entrypoint"
schema :
type : list
items :
- variable : command
description : "Container Command"
label : "Command"
schema :
type : string
- variable : containerArgs
description : "Specify arguments for container command"
label : "Container Args"
group : "Container Entrypoint"
schema :
type : list
items :
- variable : arg
description : "Container Arg"
label : "Arg"
schema :
type : string
- variable : containerEnvironmentVariables
description : "Container Environment Variables"
label : "Container Environment Variables"
group : "Container Environment Variables"
schema :
type : list
items :
- variable : environmentVariable
description : "Container Environment Variable"
label : "Container Environment Variable"
schema :
type : dict
attrs :
- variable : name
description : "Environment Variable Name"
label : "Environment Variable Name"
schema :
type : string
required : true
- variable : value
description : "Environment Variable Value"
label : "Environment Variable Value"
schema :
type : string
required : true
2020-10-08 19:31:11 +00:00
2020-10-12 23:31:55 +00:00
# Networking options
- variable : externalInterfaces
description : "Add External Interfaces"
label : "Add external Interfaces"
group : "Networking"
schema :
type : list
items :
- variable : interfaceConfiguration
description : "Interface Configuration"
label : "Interface Configuration"
schema :
type : dict
$ref :
2020-10-14 19:54:03 +00:00
- "normalize/interfaceConfiguration"
2020-10-12 23:31:55 +00:00
attrs :
- variable : hostInterface
description : "Please specify host interface"
label : "Host Interface"
schema :
type : string
required : true
$ref :
- "definitions/interface"
- variable : ipam
description : "Define how IP Address will be managed"
label : "IP Address Management"
schema :
type : dict
required : true
attrs :
- variable : type
description : "Specify type for IPAM"
label : "IPAM Type"
schema :
type : string
required : true
enum :
2020-10-21 13:36:19 +00:00
- value : "dhcp"
description : "Use DHCP"
- value : "static"
description : "Use static IP"
2020-10-12 23:31:55 +00:00
show_subquestions_if : "static"
subquestions :
- variable : staticIPConfigurations
label : "Static IP Addresses"
schema :
type : list
items :
- variable : staticIP
label : "Static IP"
schema :
type : ipaddr
cidr : true
- variable : staticRoutes
label : "Static Routes"
schema :
type : list
items :
- variable : staticRouteConfiguration
label : "Static Route Configuration"
schema :
type : dict
attrs :
- variable : destination
label : "Destination"
schema :
type : ipaddr
cidr : true
required : true
- variable : gateway
label : "Gateway"
schema :
type : ipaddr
cidr : false
required : true
2020-10-08 19:31:11 +00:00
2020-10-13 15:55:34 +00:00
- variable : dnsPolicy
label : "DNS Policy"
description : "Default behaviour is where Pod inherits the name resolution configuration from the node that the pods run on, if None is specified, It allows a Pod to ignore DNS settings from the Kubernetes environment."
group : "Networking"
schema :
type : string
default : "Default"
enum :
2020-10-21 13:36:19 +00:00
- value : "Default"
description : "Use Default DNS Policy"
- value : "None"
description : "Ignore DNS settings from the Kuberentes cluster"
2020-10-13 15:55:34 +00:00
- variable : dnsConfig
label : "DNS Configuration"
group : "Networking"
description : "Specify custom DNS configuration which will be applied to the pod"
schema :
type : dict
attrs :
- variable : nameservers
label : "Nameservers"
schema :
default : [ ]
type : list
items :
- variable : nameserver
label : "Nameserver"
schema :
type : string
- variable : searches
label : "Searches"
schema :
default : [ ]
type : list
items :
- variable : search
label : "Search Entry"
schema :
type : string
2020-10-16 10:16:54 +00:00
- variable : portForwardingList
label : "Specify Node ports to forward to workload"
group : "Networking"
description : "Specify ports of node and workload to forward traffic from node port to workload port"
schema :
type : list
items :
- variable : portForwarding
label : "Port Forwarding Configuration"
schema :
type : dict
attrs :
- variable : containerPort
label : "Container Port"
schema :
type : string
required : true
- variable : nodePort
label : "Node Port"
schema :
type : string
required : true
- variable : protocol
label : "Protocol"
schema :
type : string
default : "TCP"
enum :
2020-10-21 13:36:19 +00:00
- value : "TCP"
description : "TCP Protocol"
- value : "UDP"
description : "UDP Protocol"
2020-10-16 10:16:54 +00:00
2020-10-12 23:31:55 +00:00
# Storage Options
# Host path based volumes
- variable : hostPathVolumes
label : "Host Path Volumes"
group : "Storage"
schema :
type : list
items :
- variable : hostPathConfiguration
label : "Host Path Configuration"
schema :
type : dict
attrs :
- variable : hostPath
label : "Host Path"
schema :
type : hostpath
required : true
- variable : mountPath
label : "Mount Path"
description : "Path where host path will be mounted inside the pod"
schema :
type : path
required : true
- variable : readOnly
label : "Read Only"
schema :
type : boolean
default : false
2020-10-09 16:38:22 +00:00
2020-10-12 23:31:55 +00:00
# Volumes
- variable : volumes
label : "Volumes"
group : "Storage"
schema :
type : list
items :
- variable : volume
label : "Volume"
schema :
type : dict
$ref :
2020-10-14 19:54:03 +00:00
- "normalize/ixVolume"
2020-10-12 23:31:55 +00:00
attrs :
- variable : mountPath
label : "Mount Path"
description : "Path where the volume will be mounted inside the pod"
schema :
type : path
required : true
- variable : datasetName
label : "Dataset Name"
schema :
type : string
required : true
# Pod Probes
# Liveness Probe
- variable : livenessProbe
label : "Liveness Probe"
description : "Configure Liveness Probe"
group : "Health Check"
schema :
type : dict
default : null
"null": true
attrs :
- variable : command
label : "Liveness command"
description : "Specify a command to determine liveness of pod"
schema :
type : list
required : true
items :
- variable : commandArg
label : "Command Arg"
schema :
type : string
- variable : initialDelaySeconds
label : "Seconds Delay"
description : "Seconds to delay the first liveness probe"
schema :
type : int
default : 5
- variable : periodSeconds
label : "Period Seconds"
description : "Specify number of seconds to run liveness probe"
schema :
type : int
default : 10
2020-10-16 16:42:36 +00:00
# Specify GPU configuration
- variable : gpuConfiguration
label : "GPU Configuration"
group : "Resource Reservation"
schema :
type : dict
$ref :
- "definitions/gpuConfiguration"