Update questions.yml format

This commit is contained in:
Waqar Ahmed 2020-10-13 04:31:55 +05:00
parent 10424343cb
commit 5c6aba4a4a
1 changed files with 319 additions and 298 deletions

View File

@ -1,307 +1,328 @@
# Workload type groups:
- variable: workloadType - name: "Container Images"
description: "Please specify type of workload to deploy" description: "Image to be used for container"
label: "Workload Type" - name: "Container Entrypoint"
schema: description: "Configuration of the executable that will be run when the container is started"
type: string - name: "Container Environment Variables"
default: "Deployment" description: "Set the environment that will be visible to the container"
required: true - name: "Networking"
enum: description: "Configure networking for container"
- "Deployment" - name: "Storage"
- "Job" description: "Persist and share data that is separate from the lifecycle of the container"
- "CronJob" - 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"
# Cronjob schedule questions:
- variable: cronSchedule # Workload type
label: "Cron Schedule" - variable: workloadType
schema: description: "Please specify type of workload to deploy"
type: cron label: "Workload Type"
show_if: [["workloadType", "=", "CronJob"]] group: "Workload Details"
default: schema:
minute: "5" type: string
default: "Deployment"
required: true
enum:
- "Deployment"
- "Job"
- "CronJob"
# Image related # Cronjob schedule
- variable: image - variable: cronSchedule
description: "Docker Image Details" label: "Cron Schedule"
group: "Container Images" group: "Workload Details"
schema: schema:
type: dict type: cron
required: true show_if: [["workloadType", "=", "CronJob"]]
attrs: default:
- variable: repository minute: "5"
description: "Docker image repository"
label: "Image repository"
group: "Container Images"
schema:
type: string
required: true
- variable: tag
description: "Tag to use for specified image"
label: "Image Tag"
group: "Container Images"
schema:
type: string
default: "latest"
- variable: pullPolicy
description: "Docker Image Pull Policy"
label: "Image Pull Policy"
group: "Container Images"
schema:
type: string
default: "IfNotPresent"
enum:
- "IfNotPresent"
- "Always"
- "Never"
# Update strategy # Image related
- variable: updateStrategy - variable: image
description: "Upgrade Policy" description: "Docker Image Details"
label: "Update Strategy" group: "Container Images"
schema: schema:
type: string type: dict
show_if: [["workloadType", "=", "Deployment"]] required: true
default: "RollingUpdate" attrs:
enum: - variable: repository
- "RollingUpdate" description: "Docker image repository"
- "Recreate" 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:
- "IfNotPresent"
- "Always"
- "Never"
# Restart Policy # Update strategy
- variable: restartPolicy - variable: updateStrategy
description: "Restart Policy for workload" description: "Upgrade Policy"
label: "Restart Policy" label: "Update Strategy"
schema: group: "Scaling/Upgrade Policy"
type: string schema:
show_if: [["workloadType", "=", "Deployment"]] type: string
default: "Always" show_if: [["workloadType", "=", "Deployment"]]
enum: default: "RollingUpdate"
- "Always" enum:
- "OnFailure" - "RollingUpdate"
- "Never" - "Recreate"
- variable: jobRestartPolicy
description: "Restart Policy for workload"
label: "Restart Policy"
schema:
type: string
default: "OnFailure"
show_if: [["workloadType", "!=", "Deployment"]]
enum:
- "OnFailure"
- "Never"
# Configurable CMD / Entrypoint / Environment Variables # Restart Policy
- variable: containerCommand - variable: restartPolicy
description: "Commands to execute inside container overriding image CMD default" description: "Restart Policy for workload"
label: "Container CMD" label: "Restart Policy"
group: "Container Entrypoint" schema:
schema: type: string
type: list show_if: [["workloadType", "=", "Deployment"]]
items: default: "Always"
- variable: command enum:
description: "Container Command" - "Always"
label: "Command" - "OnFailure"
schema: - "Never"
type: string - variable: jobRestartPolicy
- variable: containerArgs description: "Restart Policy for workload"
description: "Specify arguments for container command" label: "Restart Policy"
label: "Container Args" schema:
group: "Container Entrypoint" type: string
schema: default: "OnFailure"
type: list show_if: [["workloadType", "!=", "Deployment"]]
items: enum:
- variable: arg - "OnFailure"
description: "Container Arg" - "Never"
label: "Arg"
schema:
type: string
- variable: containerEnvironmentVariables
description: "Container Environment Variables"
label: "Container Environment Variables"
group: "Container Entrypoint"
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
# Networking options # Configurable CMD / Entrypoint / Environment Variables
- variable: externalInterfaces - variable: containerCommand
description: "Add External Interfaces" description: "Commands to execute inside container overriding image CMD default"
label: "Add external Interfaces" label: "Container CMD"
group: "Networking" group: "Container Entrypoint"
schema: schema:
type: list type: list
items: items:
- variable: interfaceConfiguration - variable: command
description: "Interface Configuration" description: "Container Command"
label: "Interface Configuration" label: "Command"
schema: schema:
type: dict type: string
$ref: - variable: containerArgs
- "normalise/interfaceConfiguration" description: "Specify arguments for container command"
attrs: label: "Container Args"
- variable: hostInterface group: "Container Entrypoint"
description: "Please specify host interface" schema:
label: "Host Interface" type: list
schema: items:
type: string - variable: arg
required: true description: "Container Arg"
$ref: label: "Arg"
- "definitions/interface" schema:
- variable: ipam type: string
description: "Define how IP Address will be managed" - variable: containerEnvironmentVariables
label: "IP Address Management" description: "Container Environment Variables"
schema: label: "Container Environment Variables"
type: dict group: "Container Environment Variables"
required: true schema:
attrs: type: list
- variable: type items:
description: "Specify type for IPAM" - variable: environmentVariable
label: "IPAM Type" description: "Container Environment Variable"
schema: label: "Container Environment Variable"
type: string schema:
required: true type: dict
enum: attrs:
- "dhcp" - variable: name
- "static" description: "Environment Variable Name"
show_subquestions_if: "static" label: "Environment Variable Name"
subquestions: schema:
- variable: staticIPConfigurations type: string
label: "Static IP Addresses" required: true
schema: - variable: value
type: list description: "Environment Variable Value"
items: label: "Environment Variable Value"
- variable: staticIP schema:
label: "Static IP" type: string
schema: required: true
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
# Storage Options # Networking options
# Host path based volumes - variable: externalInterfaces
- variable: hostPathVolumes description: "Add External Interfaces"
label: "Host Path Volumes" label: "Add external Interfaces"
group: "Storage" group: "Networking"
schema: schema:
type: list type: list
items: items:
- variable: hostPathConfiguration - variable: interfaceConfiguration
label: "Host Path Configuration" description: "Interface Configuration"
schema: label: "Interface Configuration"
type: dict schema:
attrs: type: dict
- variable: hostPath $ref:
label: "Host Path" - "normalise/interfaceConfiguration"
schema: attrs:
type: hostpath - variable: hostInterface
required: true description: "Please specify host interface"
- variable: mountPath label: "Host Interface"
label: "Mount Path" schema:
description: "Path where host path will be mounted inside the pod" type: string
schema: required: true
type: path $ref:
required: true - "definitions/interface"
- variable: readOnly - variable: ipam
label: "Read Only" description: "Define how IP Address will be managed"
schema: label: "IP Address Management"
type: boolean schema:
default: false type: dict
required: true
attrs:
- variable: type
description: "Specify type for IPAM"
label: "IPAM Type"
schema:
type: string
required: true
enum:
- "dhcp"
- "static"
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
# Volumes # Storage Options
- variable: volumes # Host path based volumes
label: "Volumes" - variable: hostPathVolumes
group: "Storage" label: "Host Path Volumes"
schema: group: "Storage"
type: list schema:
items: type: list
- variable: volume items:
label: "Volume" - variable: hostPathConfiguration
schema: label: "Host Path Configuration"
type: dict schema:
$ref: type: dict
- "normalise/ixVolume" attrs:
attrs: - variable: hostPath
- variable: mountPath label: "Host Path"
label: "Mount Path" schema:
description: "Path where the volume will be mounted inside the pod" type: hostpath
schema: required: true
type: path - variable: mountPath
required: true label: "Mount Path"
- variable: datasetName description: "Path where host path will be mounted inside the pod"
label: "Dataset Name" schema:
schema: type: path
type: string required: true
required: true - variable: readOnly
label: "Read Only"
schema:
type: boolean
default: false
# Pod Probes # Volumes
# Liveness Probe - variable: volumes
- variable: livenessProbe label: "Volumes"
label: "Liveness Probe" group: "Storage"
description: "Configure Liveness Probe" schema:
group: "Probes" type: list
schema: items:
type: dict - variable: volume
default: null label: "Volume"
"null": true schema:
attrs: type: dict
- variable: command $ref:
label: "Liveness command" - "normalise/ixVolume"
description: "Specify a command to determine liveness of pod" attrs:
schema: - variable: mountPath
type: list label: "Mount Path"
required: true description: "Path where the volume will be mounted inside the pod"
items: schema:
- variable: commandArg type: path
label: "Command Arg" required: true
schema: - variable: datasetName
type: string label: "Dataset Name"
- variable: initialDelaySeconds schema:
label: "Seconds Delay" type: string
description: "Seconds to delay the first liveness probe" required: true
schema:
type: int # Pod Probes
default: 5 # Liveness Probe
- variable: periodSeconds - variable: livenessProbe
label: "Period Seconds" label: "Liveness Probe"
description: "Specify number of seconds to run liveness probe" description: "Configure Liveness Probe"
schema: group: "Health Check"
type: int schema:
default: 10 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