
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.3.1-0.20200617211605-651903477185
  creationTimestamp: null
  name: nextclouds.apps.libre.sh
spec:
  group: apps.libre.sh
  names:
    kind: Nextcloud
    listKind: NextcloudList
    plural: nextclouds
    singular: nextcloud
  scope: Namespaced
  subresources:
    status: {}
  validation:
    openAPIV3Schema:
      description: Nextcloud is the Schema for the nextclouds API
      properties:
        apiVersion:
          description: 'APIVersion defines the versioned schema of this representation
            of an object. Servers should convert recognized schemas to the latest
            internal value, and may reject unrecognized values. More 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. Servers may infer this from the endpoint the client
            submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
          type: string
        metadata:
          type: object
        spec:
          description: NextcloudSpec defines the desired state of Nextcloud
          properties:
            app:
              properties:
                commonMeta:
                  description: "ObjectMeta meta is a stripped down version of the
                    ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                    with only user defined specs \n This type can be used in an application
                    CRD ObjectMeta implements the Meta interface and can be used to
                    mutates an object"
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: 'Annotations is an unstructured key value map stored
                        with a resource that may be set by external tools to store
                        and retrieve arbitrary metadata. They are not queryable and
                        should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: 'Map of string keys and values that can be used
                        to organize and categorize (scope and select) objects. May
                        match selectors of replication controllers and services. More
                        info: http://kubernetes.io/docs/user-guide/labels'
                      type: object
                    name:
                      description: 'Name must be unique within a namespace. Is required
                        when creating resources, although some resources may allow
                        a client to request the generation of an appropriate name
                        automatically. Name is primarily intended for creation idempotence
                        and configuration definition. Cannot be updated. More info:
                        http://kubernetes.io/docs/user-guide/identifiers#names'
                      type: string
                    namespace:
                      description: "Namespace defines the space within each name must
                        be unique. An empty namespace is equivalent to the \"default\"
                        namespace, but \"default\" is the canonical representation.
                        Not all objects are required to be scoped to a namespace -
                        the value of this field for those objects will be empty. \n
                        Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
                      type: string
                  type: object
                deployment:
                  description: Deployment is the specification of the desired behavior
                    of the Deployment. It is a stripped down version of https://godoc.org/k8s.io/api/apps/v1#Deployment
                    with only user definied specs
                  properties:
                    affinity:
                      description: If specified, the pod's scheduling constraints
                      properties:
                        nodeAffinity:
                          description: Describes node affinity scheduling rules for
                            the pod.
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: The scheduler will prefer to schedule pods
                                to nodes that satisfy the affinity expressions specified
                                by this field, but it may choose a node that violates
                                one or more of the expressions. The node that is most
                                preferred is the one with the greatest sum of weights,
                                i.e. for each node that meets all of the scheduling
                                requirements (resource request, requiredDuringScheduling
                                affinity expressions, etc.), compute a sum by iterating
                                through the elements of this field and adding "weight"
                                to the sum if the node matches the corresponding matchExpressions;
                                the node(s) with the highest sum are the most preferred.
                              items:
                                description: An empty preferred scheduling term matches
                                  all objects with implicit weight 0 (i.e. it's a
                                  no-op). A null preferred scheduling term matches
                                  no objects (i.e. is also a no-op).
                                properties:
                                  preference:
                                    description: A node selector term, associated
                                      with the corresponding weight.
                                    properties:
                                      matchExpressions:
                                        description: A list of node selector requirements
                                          by node's labels.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchFields:
                                        description: A list of node selector requirements
                                          by node's fields.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                    type: object
                                  weight:
                                    description: Weight associated with matching the
                                      corresponding nodeSelectorTerm, in the range
                                      1-100.
                                    format: int32
                                    type: integer
                                required:
                                - preference
                                - weight
                                type: object
                              type: array
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: If the affinity requirements specified
                                by this field are not met at scheduling time, the
                                pod will not be scheduled onto the node. If the affinity
                                requirements specified by this field cease to be met
                                at some point during pod execution (e.g. due to an
                                update), the system may or may not try to eventually
                                evict the pod from its node.
                              properties:
                                nodeSelectorTerms:
                                  description: Required. A list of node selector terms.
                                    The terms are ORed.
                                  items:
                                    description: A null or empty node selector term
                                      matches no objects. The requirements of them
                                      are ANDed. The TopologySelectorTerm type implements
                                      a subset of the NodeSelectorTerm.
                                    properties:
                                      matchExpressions:
                                        description: A list of node selector requirements
                                          by node's labels.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchFields:
                                        description: A list of node selector requirements
                                          by node's fields.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                    type: object
                                  type: array
                              required:
                              - nodeSelectorTerms
                              type: object
                          type: object
                        podAffinity:
                          description: Describes pod affinity scheduling rules (e.g.
                            co-locate this pod in the same node, zone, etc. as some
                            other pod(s)).
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: The scheduler will prefer to schedule pods
                                to nodes that satisfy the affinity expressions specified
                                by this field, but it may choose a node that violates
                                one or more of the expressions. The node that is most
                                preferred is the one with the greatest sum of weights,
                                i.e. for each node that meets all of the scheduling
                                requirements (resource request, requiredDuringScheduling
                                affinity expressions, etc.), compute a sum by iterating
                                through the elements of this field and adding "weight"
                                to the sum if the node has pods which matches the
                                corresponding podAffinityTerm; the node(s) with the
                                highest sum are the most preferred.
                              items:
                                description: The weights of all of the matched WeightedPodAffinityTerm
                                  fields are added per-node to find the most preferred
                                  node(s)
                                properties:
                                  podAffinityTerm:
                                    description: Required. A pod affinity term, associated
                                      with the corresponding weight.
                                    properties:
                                      labelSelector:
                                        description: A label query over a set of resources,
                                          in this case pods.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list
                                              of label selector requirements. The
                                              requirements are ANDed.
                                            items:
                                              description: A label selector requirement
                                                is a selector that contains values,
                                                a key, and an operator that relates
                                                the key and values.
                                              properties:
                                                key:
                                                  description: key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: operator represents
                                                    a key's relationship to a set
                                                    of values. Valid operators are
                                                    In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                values:
                                                  description: values is an array
                                                    of string values. If the operator
                                                    is In or NotIn, the values array
                                                    must be non-empty. If the operator
                                                    is Exists or DoesNotExist, the
                                                    values array must be empty. This
                                                    array is replaced during a strategic
                                                    merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: matchLabels is a map of {key,value}
                                              pairs. A single {key,value} in the matchLabels
                                              map is equivalent to an element of matchExpressions,
                                              whose key field is "key", the operator
                                              is "In", and the values array contains
                                              only "value". The requirements are ANDed.
                                            type: object
                                        type: object
                                      namespaces:
                                        description: namespaces specifies which namespaces
                                          the labelSelector applies to (matches against);
                                          null or empty list means "this pod's namespace"
                                        items:
                                          type: string
                                        type: array
                                      topologyKey:
                                        description: This pod should be co-located
                                          (affinity) or not co-located (anti-affinity)
                                          with the pods matching the labelSelector
                                          in the specified namespaces, where co-located
                                          is defined as running on a node whose value
                                          of the label with key topologyKey matches
                                          that of any node on which any of the selected
                                          pods is running. Empty topologyKey is not
                                          allowed.
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    description: weight associated with matching the
                                      corresponding podAffinityTerm, in the range
                                      1-100.
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: If the affinity requirements specified
                                by this field are not met at scheduling time, the
                                pod will not be scheduled onto the node. If the affinity
                                requirements specified by this field cease to be met
                                at some point during pod execution (e.g. due to a
                                pod label update), the system may or may not try to
                                eventually evict the pod from its node. When there
                                are multiple elements, the lists of nodes corresponding
                                to each podAffinityTerm are intersected, i.e. all
                                terms must be satisfied.
                              items:
                                description: Defines a set of pods (namely those matching
                                  the labelSelector relative to the given namespace(s))
                                  that this pod should be co-located (affinity) or
                                  not co-located (anti-affinity) with, where co-located
                                  is defined as running on a node whose value of the
                                  label with key <topologyKey> matches that of any
                                  node on which a pod of the set of pods is running
                                properties:
                                  labelSelector:
                                    description: A label query over a set of resources,
                                      in this case pods.
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of
                                          label selector requirements. The requirements
                                          are ANDed.
                                        items:
                                          description: A label selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: key is the label key that
                                                the selector applies to.
                                              type: string
                                            operator:
                                              description: operator represents a key's
                                                relationship to a set of values. Valid
                                                operators are In, NotIn, Exists and
                                                DoesNotExist.
                                              type: string
                                            values:
                                              description: values is an array of string
                                                values. If the operator is In or NotIn,
                                                the values array must be non-empty.
                                                If the operator is Exists or DoesNotExist,
                                                the values array must be empty. This
                                                array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: matchLabels is a map of {key,value}
                                          pairs. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                  namespaces:
                                    description: namespaces specifies which namespaces
                                      the labelSelector applies to (matches against);
                                      null or empty list means "this pod's namespace"
                                    items:
                                      type: string
                                    type: array
                                  topologyKey:
                                    description: This pod should be co-located (affinity)
                                      or not co-located (anti-affinity) with the pods
                                      matching the labelSelector in the specified
                                      namespaces, where co-located is defined as running
                                      on a node whose value of the label with key
                                      topologyKey matches that of any node on which
                                      any of the selected pods is running. Empty topologyKey
                                      is not allowed.
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                          type: object
                        podAntiAffinity:
                          description: Describes pod anti-affinity scheduling rules
                            (e.g. avoid putting this pod in the same node, zone, etc.
                            as some other pod(s)).
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: The scheduler will prefer to schedule pods
                                to nodes that satisfy the anti-affinity expressions
                                specified by this field, but it may choose a node
                                that violates one or more of the expressions. The
                                node that is most preferred is the one with the greatest
                                sum of weights, i.e. for each node that meets all
                                of the scheduling requirements (resource request,
                                requiredDuringScheduling anti-affinity expressions,
                                etc.), compute a sum by iterating through the elements
                                of this field and adding "weight" to the sum if the
                                node has pods which matches the corresponding podAffinityTerm;
                                the node(s) with the highest sum are the most preferred.
                              items:
                                description: The weights of all of the matched WeightedPodAffinityTerm
                                  fields are added per-node to find the most preferred
                                  node(s)
                                properties:
                                  podAffinityTerm:
                                    description: Required. A pod affinity term, associated
                                      with the corresponding weight.
                                    properties:
                                      labelSelector:
                                        description: A label query over a set of resources,
                                          in this case pods.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list
                                              of label selector requirements. The
                                              requirements are ANDed.
                                            items:
                                              description: A label selector requirement
                                                is a selector that contains values,
                                                a key, and an operator that relates
                                                the key and values.
                                              properties:
                                                key:
                                                  description: key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: operator represents
                                                    a key's relationship to a set
                                                    of values. Valid operators are
                                                    In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                values:
                                                  description: values is an array
                                                    of string values. If the operator
                                                    is In or NotIn, the values array
                                                    must be non-empty. If the operator
                                                    is Exists or DoesNotExist, the
                                                    values array must be empty. This
                                                    array is replaced during a strategic
                                                    merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: matchLabels is a map of {key,value}
                                              pairs. A single {key,value} in the matchLabels
                                              map is equivalent to an element of matchExpressions,
                                              whose key field is "key", the operator
                                              is "In", and the values array contains
                                              only "value". The requirements are ANDed.
                                            type: object
                                        type: object
                                      namespaces:
                                        description: namespaces specifies which namespaces
                                          the labelSelector applies to (matches against);
                                          null or empty list means "this pod's namespace"
                                        items:
                                          type: string
                                        type: array
                                      topologyKey:
                                        description: This pod should be co-located
                                          (affinity) or not co-located (anti-affinity)
                                          with the pods matching the labelSelector
                                          in the specified namespaces, where co-located
                                          is defined as running on a node whose value
                                          of the label with key topologyKey matches
                                          that of any node on which any of the selected
                                          pods is running. Empty topologyKey is not
                                          allowed.
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    description: weight associated with matching the
                                      corresponding podAffinityTerm, in the range
                                      1-100.
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: If the anti-affinity requirements specified
                                by this field are not met at scheduling time, the
                                pod will not be scheduled onto the node. If the anti-affinity
                                requirements specified by this field cease to be met
                                at some point during pod execution (e.g. due to a
                                pod label update), the system may or may not try to
                                eventually evict the pod from its node. When there
                                are multiple elements, the lists of nodes corresponding
                                to each podAffinityTerm are intersected, i.e. all
                                terms must be satisfied.
                              items:
                                description: Defines a set of pods (namely those matching
                                  the labelSelector relative to the given namespace(s))
                                  that this pod should be co-located (affinity) or
                                  not co-located (anti-affinity) with, where co-located
                                  is defined as running on a node whose value of the
                                  label with key <topologyKey> matches that of any
                                  node on which a pod of the set of pods is running
                                properties:
                                  labelSelector:
                                    description: A label query over a set of resources,
                                      in this case pods.
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of
                                          label selector requirements. The requirements
                                          are ANDed.
                                        items:
                                          description: A label selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: key is the label key that
                                                the selector applies to.
                                              type: string
                                            operator:
                                              description: operator represents a key's
                                                relationship to a set of values. Valid
                                                operators are In, NotIn, Exists and
                                                DoesNotExist.
                                              type: string
                                            values:
                                              description: values is an array of string
                                                values. If the operator is In or NotIn,
                                                the values array must be non-empty.
                                                If the operator is Exists or DoesNotExist,
                                                the values array must be empty. This
                                                array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: matchLabels is a map of {key,value}
                                          pairs. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                  namespaces:
                                    description: namespaces specifies which namespaces
                                      the labelSelector applies to (matches against);
                                      null or empty list means "this pod's namespace"
                                    items:
                                      type: string
                                    type: array
                                  topologyKey:
                                    description: This pod should be co-located (affinity)
                                      or not co-located (anti-affinity) with the pods
                                      matching the labelSelector in the specified
                                      namespaces, where co-located is defined as running
                                      on a node whose value of the label with key
                                      topologyKey matches that of any node on which
                                      any of the selected pods is running. Empty topologyKey
                                      is not allowed.
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                          type: object
                      type: object
                    args:
                      description: 'Arguments to the entrypoint. The docker image''s
                        CMD is used if this is not provided. Variable references $(VAR_NAME)
                        are expanded using the container''s environment. If a variable
                        cannot be resolved, the reference in the input string will
                        be unchanged. The $(VAR_NAME) syntax can be escaped with a
                        double $$, ie: $$(VAR_NAME). Escaped references will never
                        be expanded, regardless of whether the variable exists or
                        not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                      items:
                        type: string
                      type: array
                    command:
                      description: 'Entrypoint array. Not executed within a shell.
                        The docker image''s ENTRYPOINT is used if this is not provided.
                        Variable references $(VAR_NAME) are expanded using the container''s
                        environment. If a variable cannot be resolved, the reference
                        in the input string will be unchanged. The $(VAR_NAME) syntax
                        can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
                        references will never be expanded, regardless of whether the
                        variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                      items:
                        type: string
                      type: array
                    extraContainers:
                      description: List of containers belonging to the pod. Containers
                        cannot currently be added or removed. There must be at least
                        one container in a Pod. Cannot be updated.
                      items:
                        description: "Container is the specification of the desired
                          behavior of the Container. It is a stripped down version
                          of https://godoc.org/k8s.io/api/core/v1#Container with only
                          user definied specs \n Parameters are used to define how
                          settings are passed on to the container."
                        properties:
                          args:
                            description: 'Arguments to the entrypoint. The docker
                              image''s CMD is used if this is not provided. Variable
                              references $(VAR_NAME) are expanded using the container''s
                              environment. If a variable cannot be resolved, the reference
                              in the input string will be unchanged. The $(VAR_NAME)
                              syntax can be escaped with a double $$, ie: $$(VAR_NAME).
                              Escaped references will never be expanded, regardless
                              of whether the variable exists or not. Cannot be updated.
                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          command:
                            description: 'Entrypoint array. Not executed within a
                              shell. The docker image''s ENTRYPOINT is used if this
                              is not provided. Variable references $(VAR_NAME) are
                              expanded using the container''s environment. If a variable
                              cannot be resolved, the reference in the input string
                              will be unchanged. The $(VAR_NAME) syntax can be escaped
                              with a double $$, ie: $$(VAR_NAME). Escaped references
                              will never be expanded, regardless of whether the variable
                              exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          image:
                            description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                              This field is optional to allow higher level config
                              management to default or override container images in
                              workload controllers like Deployments and StatefulSets.'
                            type: string
                          imagePullPolicy:
                            description: 'Image pull policy. One of Always, Never,
                              IfNotPresent. Defaults to Always if :latest tag is specified,
                              or IfNotPresent otherwise. Cannot be updated. More info:
                              https://kubernetes.io/docs/concepts/containers/images#updating-images'
                            type: string
                          inline:
                            description: Periodic probe for container health
                            properties:
                              livenessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              readinessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                            type: object
                          name:
                            description: Name of the container specified as a DNS_LABEL.
                              Each container in a pod must have a unique name (DNS_LABEL).
                              Cannot be updated.
                            type: string
                          parameters:
                            description: SettingsSpec defines a list of parameters
                              and references to resources from which those parameters
                              can be fetched Only secrets and configmaps in the same
                              namespace are supported as references
                            properties:
                              parameters:
                                description: Parameters is a list of parameters
                                items:
                                  properties:
                                    fromKey:
                                      description: Key to select from the source
                                      type: string
                                    generate:
                                      description: Generate if specified defines how
                                        the parameter value will be generated
                                      type: string
                                    key:
                                      description: "Key of the parameter, can be mounted
                                        as as an environment variable, used in template
                                        or as the key in the key:value data fied in
                                        the configmap or secret \n Key must be unique"
                                      type: string
                                    mountFrom:
                                      description: MountPath specifies where the parameter
                                        will be mounted as a file
                                      properties:
                                        path:
                                          type: string
                                        subPath:
                                          type: string
                                      type: object
                                    mountType:
                                      description: MountType defined how the parameter
                                        will be mounted in the pod Defaults to EnvFile
                                      type: string
                                    ref:
                                      description: Name of the referent.
                                      type: string
                                    refType:
                                      description: Type of the parameter's source
                                        Defaults to the parameter type if not specified
                                      type: string
                                    type:
                                      description: Type specifies specifies the parameter
                                        type
                                      type: string
                                    value:
                                      description: Value of the paramater, should
                                        not contain secret values If it is a template,
                                        ParameterType should be template
                                      type: string
                                  type: object
                                type: array
                              sources:
                                description: Sources is a list of sources for the
                                  parameters from kubernetes resources in the same
                                  namespace Sources []Source `json:"sources,omitempty"`
                                items:
                                  properties:
                                    ref:
                                      description: Ref is the name of a resource in
                                        the same namespace
                                      type: string
                                    type:
                                      description: Type is the type of the resource
                                        Only Secrets and ConfigMaps are supported
                                      type: string
                                  type: object
                                type: array
                            type: object
                          ports:
                            description: List of ports to expose from the container.
                              Exposing a port here gives the system additional information
                              about the network connections a container uses, but
                              is primarily informational. Not specifying a port here
                              DOES NOT prevent that port from being exposed. Any port
                              which is listening on the default "0.0.0.0" address
                              inside a container will be accessible from the network.
                              Cannot be updated.
                            items:
                              description: ContainerPort represents a network port
                                in a single container.
                              properties:
                                containerPort:
                                  description: Number of port to expose on the pod's
                                    IP address. This must be a valid port number,
                                    0 < x < 65536.
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port
                                    to.
                                  type: string
                                hostPort:
                                  description: Number of port to expose on the host.
                                    If specified, this must be a valid port number,
                                    0 < x < 65536. If HostNetwork is specified, this
                                    must match ContainerPort. Most containers do not
                                    need this.
                                  format: int32
                                  type: integer
                                name:
                                  description: If specified, this must be an IANA_SVC_NAME
                                    and unique within the pod. Each named port in
                                    a pod must have a unique name. Name for the port
                                    that can be referred to by services.
                                  type: string
                                protocol:
                                  description: Protocol for port. Must be UDP, TCP,
                                    or SCTP. Defaults to "TCP".
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                        type: object
                      type: array
                    image:
                      description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                        This field is optional to allow higher level config management
                        to default or override container images in workload controllers
                        like Deployments and StatefulSets.'
                      type: string
                    imagePullPolicy:
                      description: 'Image pull policy. One of Always, Never, IfNotPresent.
                        Defaults to Always if :latest tag is specified, or IfNotPresent
                        otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                      type: string
                    imagePullSecrets:
                      description: 'ImagePullSecrets is an optional list of references
                        to secrets in the same namespace to use for pulling any of
                        the images used by this PodSpec. If specified, these secrets
                        will be passed to individual puller implementations for them
                        to use. For example, in the case of docker, only DockerConfig
                        type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
                      items:
                        description: LocalObjectReference contains enough information
                          to let you locate the referenced object inside the same
                          namespace.
                        properties:
                          name:
                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                              TODO: Add other useful fields. apiVersion, kind, uid?'
                            type: string
                        type: object
                      type: array
                    initContainers:
                      description: 'List of initialization containers belonging to
                        the pod. Init containers are executed in order prior to containers
                        being started. If any init container fails, the pod is considered
                        to have failed and is handled according to its restartPolicy.
                        The name for an init container or normal container must be
                        unique among all containers. Init containers may not have
                        Lifecycle actions, Readiness probes, Liveness probes, or Startup
                        probes. The resourceRequirements of an init container are
                        taken into account during scheduling by finding the highest
                        request/limit for each resource type, and then using the max
                        of of that value or the sum of the normal containers. Limits
                        are applied to init containers in a similar fashion. Init
                        containers cannot currently be added or removed. Cannot be
                        updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/'
                      items:
                        description: "Container is the specification of the desired
                          behavior of the Container. It is a stripped down version
                          of https://godoc.org/k8s.io/api/core/v1#Container with only
                          user definied specs \n Parameters are used to define how
                          settings are passed on to the container."
                        properties:
                          args:
                            description: 'Arguments to the entrypoint. The docker
                              image''s CMD is used if this is not provided. Variable
                              references $(VAR_NAME) are expanded using the container''s
                              environment. If a variable cannot be resolved, the reference
                              in the input string will be unchanged. The $(VAR_NAME)
                              syntax can be escaped with a double $$, ie: $$(VAR_NAME).
                              Escaped references will never be expanded, regardless
                              of whether the variable exists or not. Cannot be updated.
                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          command:
                            description: 'Entrypoint array. Not executed within a
                              shell. The docker image''s ENTRYPOINT is used if this
                              is not provided. Variable references $(VAR_NAME) are
                              expanded using the container''s environment. If a variable
                              cannot be resolved, the reference in the input string
                              will be unchanged. The $(VAR_NAME) syntax can be escaped
                              with a double $$, ie: $$(VAR_NAME). Escaped references
                              will never be expanded, regardless of whether the variable
                              exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          image:
                            description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                              This field is optional to allow higher level config
                              management to default or override container images in
                              workload controllers like Deployments and StatefulSets.'
                            type: string
                          imagePullPolicy:
                            description: 'Image pull policy. One of Always, Never,
                              IfNotPresent. Defaults to Always if :latest tag is specified,
                              or IfNotPresent otherwise. Cannot be updated. More info:
                              https://kubernetes.io/docs/concepts/containers/images#updating-images'
                            type: string
                          inline:
                            description: Periodic probe for container health
                            properties:
                              livenessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              readinessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                            type: object
                          name:
                            description: Name of the container specified as a DNS_LABEL.
                              Each container in a pod must have a unique name (DNS_LABEL).
                              Cannot be updated.
                            type: string
                          parameters:
                            description: SettingsSpec defines a list of parameters
                              and references to resources from which those parameters
                              can be fetched Only secrets and configmaps in the same
                              namespace are supported as references
                            properties:
                              parameters:
                                description: Parameters is a list of parameters
                                items:
                                  properties:
                                    fromKey:
                                      description: Key to select from the source
                                      type: string
                                    generate:
                                      description: Generate if specified defines how
                                        the parameter value will be generated
                                      type: string
                                    key:
                                      description: "Key of the parameter, can be mounted
                                        as as an environment variable, used in template
                                        or as the key in the key:value data fied in
                                        the configmap or secret \n Key must be unique"
                                      type: string
                                    mountFrom:
                                      description: MountPath specifies where the parameter
                                        will be mounted as a file
                                      properties:
                                        path:
                                          type: string
                                        subPath:
                                          type: string
                                      type: object
                                    mountType:
                                      description: MountType defined how the parameter
                                        will be mounted in the pod Defaults to EnvFile
                                      type: string
                                    ref:
                                      description: Name of the referent.
                                      type: string
                                    refType:
                                      description: Type of the parameter's source
                                        Defaults to the parameter type if not specified
                                      type: string
                                    type:
                                      description: Type specifies specifies the parameter
                                        type
                                      type: string
                                    value:
                                      description: Value of the paramater, should
                                        not contain secret values If it is a template,
                                        ParameterType should be template
                                      type: string
                                  type: object
                                type: array
                              sources:
                                description: Sources is a list of sources for the
                                  parameters from kubernetes resources in the same
                                  namespace Sources []Source `json:"sources,omitempty"`
                                items:
                                  properties:
                                    ref:
                                      description: Ref is the name of a resource in
                                        the same namespace
                                      type: string
                                    type:
                                      description: Type is the type of the resource
                                        Only Secrets and ConfigMaps are supported
                                      type: string
                                  type: object
                                type: array
                            type: object
                          ports:
                            description: List of ports to expose from the container.
                              Exposing a port here gives the system additional information
                              about the network connections a container uses, but
                              is primarily informational. Not specifying a port here
                              DOES NOT prevent that port from being exposed. Any port
                              which is listening on the default "0.0.0.0" address
                              inside a container will be accessible from the network.
                              Cannot be updated.
                            items:
                              description: ContainerPort represents a network port
                                in a single container.
                              properties:
                                containerPort:
                                  description: Number of port to expose on the pod's
                                    IP address. This must be a valid port number,
                                    0 < x < 65536.
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port
                                    to.
                                  type: string
                                hostPort:
                                  description: Number of port to expose on the host.
                                    If specified, this must be a valid port number,
                                    0 < x < 65536. If HostNetwork is specified, this
                                    must match ContainerPort. Most containers do not
                                    need this.
                                  format: int32
                                  type: integer
                                name:
                                  description: If specified, this must be an IANA_SVC_NAME
                                    and unique within the pod. Each named port in
                                    a pod must have a unique name. Name for the port
                                    that can be referred to by services.
                                  type: string
                                protocol:
                                  description: Protocol for port. Must be UDP, TCP,
                                    or SCTP. Defaults to "TCP".
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                        type: object
                      type: array
                    inline:
                      description: Periodic probe for container health
                      properties:
                        livenessProbe:
                          description: 'Periodic probe of container liveness. Container
                            will be restarted if the probe fails. Cannot be updated.
                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: One and only one of the following should
                                be specified. Exec specifies the action to take.
                              properties:
                                command:
                                  description: Command is the command line to execute
                                    inside the container, the working directory for
                                    the command  is root ('/') in the container's
                                    filesystem. The command is simply exec'd, it is
                                    not run inside a shell, so traditional shell instructions
                                    ('|', etc) won't work. To use a shell, you need
                                    to explicitly call out to that shell. Exit status
                                    of 0 is treated as live/healthy and non-zero is
                                    unhealthy.
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              description: Minimum consecutive failures for the probe
                                to be considered failed after having succeeded. Defaults
                                to 3. Minimum value is 1.
                              format: int32
                              type: integer
                            httpGet:
                              description: HTTPGet specifies the http request to perform.
                              properties:
                                host:
                                  description: Host name to connect to, defaults to
                                    the pod IP. You probably want to set "Host" in
                                    httpHeaders instead.
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request.
                                    HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header
                                      to be used in HTTP probes
                                    properties:
                                      name:
                                        description: The header field name
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Name or number of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: Scheme to use for connecting to the
                                    host. Defaults to HTTP.
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container
                                has started before liveness probes are initiated.
                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: How often (in seconds) to perform the probe.
                                Default to 10 seconds. Minimum value is 1.
                              format: int32
                              type: integer
                            successThreshold:
                              description: Minimum consecutive successes for the probe
                                to be considered successful after having failed. Defaults
                                to 1. Must be 1 for liveness and startup. Minimum
                                value is 1.
                              format: int32
                              type: integer
                            tcpSocket:
                              description: 'TCPSocket specifies an action involving
                                a TCP port. TCP hooks not yet supported TODO: implement
                                a realistic TCP lifecycle hook'
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to,
                                    defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Number or name of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe
                                times out. Defaults to 1 second. Minimum value is
                                1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        readinessProbe:
                          description: 'Periodic probe of container liveness. Container
                            will be restarted if the probe fails. Cannot be updated.
                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: One and only one of the following should
                                be specified. Exec specifies the action to take.
                              properties:
                                command:
                                  description: Command is the command line to execute
                                    inside the container, the working directory for
                                    the command  is root ('/') in the container's
                                    filesystem. The command is simply exec'd, it is
                                    not run inside a shell, so traditional shell instructions
                                    ('|', etc) won't work. To use a shell, you need
                                    to explicitly call out to that shell. Exit status
                                    of 0 is treated as live/healthy and non-zero is
                                    unhealthy.
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              description: Minimum consecutive failures for the probe
                                to be considered failed after having succeeded. Defaults
                                to 3. Minimum value is 1.
                              format: int32
                              type: integer
                            httpGet:
                              description: HTTPGet specifies the http request to perform.
                              properties:
                                host:
                                  description: Host name to connect to, defaults to
                                    the pod IP. You probably want to set "Host" in
                                    httpHeaders instead.
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request.
                                    HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header
                                      to be used in HTTP probes
                                    properties:
                                      name:
                                        description: The header field name
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Name or number of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: Scheme to use for connecting to the
                                    host. Defaults to HTTP.
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container
                                has started before liveness probes are initiated.
                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: How often (in seconds) to perform the probe.
                                Default to 10 seconds. Minimum value is 1.
                              format: int32
                              type: integer
                            successThreshold:
                              description: Minimum consecutive successes for the probe
                                to be considered successful after having failed. Defaults
                                to 1. Must be 1 for liveness and startup. Minimum
                                value is 1.
                              format: int32
                              type: integer
                            tcpSocket:
                              description: 'TCPSocket specifies an action involving
                                a TCP port. TCP hooks not yet supported TODO: implement
                                a realistic TCP lifecycle hook'
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to,
                                    defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Number or name of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe
                                times out. Defaults to 1 second. Minimum value is
                                1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                      type: object
                    meta:
                      description: "ObjectMeta meta is a stripped down version of
                        the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                        with only user defined specs \n This type can be used in an
                        application CRD ObjectMeta implements the Meta interface and
                        can be used to mutates an object"
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: 'Annotations is an unstructured key value map
                            stored with a resource that may be set by external tools
                            to store and retrieve arbitrary metadata. They are not
                            queryable and should be preserved when modifying objects.
                            More info: http://kubernetes.io/docs/user-guide/annotations'
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: 'Map of string keys and values that can be
                            used to organize and categorize (scope and select) objects.
                            May match selectors of replication controllers and services.
                            More info: http://kubernetes.io/docs/user-guide/labels'
                          type: object
                        name:
                          description: 'Name must be unique within a namespace. Is
                            required when creating resources, although some resources
                            may allow a client to request the generation of an appropriate
                            name automatically. Name is primarily intended for creation
                            idempotence and configuration definition. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                          type: string
                        namespace:
                          description: "Namespace defines the space within each name
                            must be unique. An empty namespace is equivalent to the
                            \"default\" namespace, but \"default\" is the canonical
                            representation. Not all objects are required to be scoped
                            to a namespace - the value of this field for those objects
                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/namespaces"
                          type: string
                      type: object
                    name:
                      description: Name of the container specified as a DNS_LABEL.
                        Each container in a pod must have a unique name (DNS_LABEL).
                        Cannot be updated.
                      type: string
                    nodeSelector:
                      additionalProperties:
                        type: string
                      description: 'NodeSelector is a selector which must be true
                        for the pod to fit on a node. Selector which must match a
                        node''s labels for the pod to be scheduled on that node. More
                        info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
                      type: object
                    parameters:
                      description: SettingsSpec defines a list of parameters and references
                        to resources from which those parameters can be fetched Only
                        secrets and configmaps in the same namespace are supported
                        as references
                      properties:
                        parameters:
                          description: Parameters is a list of parameters
                          items:
                            properties:
                              fromKey:
                                description: Key to select from the source
                                type: string
                              generate:
                                description: Generate if specified defines how the
                                  parameter value will be generated
                                type: string
                              key:
                                description: "Key of the parameter, can be mounted
                                  as as an environment variable, used in template
                                  or as the key in the key:value data fied in the
                                  configmap or secret \n Key must be unique"
                                type: string
                              mountFrom:
                                description: MountPath specifies where the parameter
                                  will be mounted as a file
                                properties:
                                  path:
                                    type: string
                                  subPath:
                                    type: string
                                type: object
                              mountType:
                                description: MountType defined how the parameter will
                                  be mounted in the pod Defaults to EnvFile
                                type: string
                              ref:
                                description: Name of the referent.
                                type: string
                              refType:
                                description: Type of the parameter's source Defaults
                                  to the parameter type if not specified
                                type: string
                              type:
                                description: Type specifies specifies the parameter
                                  type
                                type: string
                              value:
                                description: Value of the paramater, should not contain
                                  secret values If it is a template, ParameterType
                                  should be template
                                type: string
                            type: object
                          type: array
                        sources:
                          description: Sources is a list of sources for the parameters
                            from kubernetes resources in the same namespace Sources
                            []Source `json:"sources,omitempty"`
                          items:
                            properties:
                              ref:
                                description: Ref is the name of a resource in the
                                  same namespace
                                type: string
                              type:
                                description: Type is the type of the resource Only
                                  Secrets and ConfigMaps are supported
                                type: string
                            type: object
                          type: array
                      type: object
                    ports:
                      description: List of ports to expose from the container. Exposing
                        a port here gives the system additional information about
                        the network connections a container uses, but is primarily
                        informational. Not specifying a port here DOES NOT prevent
                        that port from being exposed. Any port which is listening
                        on the default "0.0.0.0" address inside a container will be
                        accessible from the network. Cannot be updated.
                      items:
                        description: ContainerPort represents a network port in a
                          single container.
                        properties:
                          containerPort:
                            description: Number of port to expose on the pod's IP
                              address. This must be a valid port number, 0 < x < 65536.
                            format: int32
                            type: integer
                          hostIP:
                            description: What host IP to bind the external port to.
                            type: string
                          hostPort:
                            description: Number of port to expose on the host. If
                              specified, this must be a valid port number, 0 < x <
                              65536. If HostNetwork is specified, this must match
                              ContainerPort. Most containers do not need this.
                            format: int32
                            type: integer
                          name:
                            description: If specified, this must be an IANA_SVC_NAME
                              and unique within the pod. Each named port in a pod
                              must have a unique name. Name for the port that can
                              be referred to by services.
                            type: string
                          protocol:
                            description: Protocol for port. Must be UDP, TCP, or SCTP.
                              Defaults to "TCP".
                            type: string
                        required:
                        - containerPort
                        type: object
                      type: array
                    replicas:
                      description: Number of desired pods. This is a pointer to distinguish
                        between explicit zero and not specified. Defaults to 1.
                      format: int32
                      type: integer
                    resources:
                      description: ResourceRequirements describes the compute resource
                        requirements.
                      properties:
                        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. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                          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. If Requests is omitted for a container,
                            it defaults to Limits if that is explicitly specified,
                            otherwise to an implementation-defined value. More info:
                            https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                          type: object
                      type: object
                    restartPolicy:
                      description: 'Restart policy for all containers within the pod.
                        One of Always, OnFailure, Never. Default to Always. More info:
                        https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy'
                      type: string
                    securityContext:
                      description: 'SecurityContext holds pod-level security attributes
                        and common container settings. Optional: Defaults to empty.  See
                        type description for default values of each field.'
                      properties:
                        fsGroup:
                          description: "A special supplemental group that applies
                            to all containers in a pod. Some volume types allow the
                            Kubelet to change the ownership of that volume to be owned
                            by the pod: \n 1. The owning GID will be the FSGroup 2.
                            The setgid bit is set (new files created in the volume
                            will be owned by FSGroup) 3. The permission bits are OR'd
                            with rw-rw---- \n If unset, the Kubelet will not modify
                            the ownership and permissions of any volume."
                          format: int64
                          type: integer
                        fsGroupChangePolicy:
                          description: 'fsGroupChangePolicy defines behavior of changing
                            ownership and permission of the volume before being exposed
                            inside Pod. This field will only apply to volume types
                            which support fsGroup based ownership(and permissions).
                            It will have no effect on ephemeral volume types such
                            as: secret, configmaps and emptydir. Valid values are
                            "OnRootMismatch" and "Always". If not specified defaults
                            to "Always".'
                          type: string
                        runAsGroup:
                          description: The GID to run the entrypoint of the container
                            process. Uses runtime default if unset. May also be set
                            in SecurityContext.  If set in both SecurityContext and
                            PodSecurityContext, the value specified in SecurityContext
                            takes precedence for that container.
                          format: int64
                          type: integer
                        runAsNonRoot:
                          description: Indicates that the container must run as a
                            non-root user. If true, the Kubelet will validate the
                            image at runtime to ensure that it does not run as UID
                            0 (root) and fail to start the container if it does. If
                            unset or false, no such validation will be performed.
                            May also be set in SecurityContext.  If set in both SecurityContext
                            and PodSecurityContext, the value specified in SecurityContext
                            takes precedence.
                          type: boolean
                        runAsUser:
                          description: The UID to run the entrypoint of the container
                            process. Defaults to user specified in image metadata
                            if unspecified. May also be set in SecurityContext.  If
                            set in both SecurityContext and PodSecurityContext, the
                            value specified in SecurityContext takes precedence for
                            that container.
                          format: int64
                          type: integer
                        seLinuxOptions:
                          description: The SELinux context to be applied to all containers.
                            If unspecified, the container runtime will allocate a
                            random SELinux context for each container.  May also be
                            set in SecurityContext.  If set in both SecurityContext
                            and PodSecurityContext, the value specified in SecurityContext
                            takes precedence for that container.
                          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
                        supplementalGroups:
                          description: A list of groups applied to the first process
                            run in each container, in addition to the container's
                            primary GID.  If unspecified, no groups will be added
                            to any container.
                          items:
                            format: int64
                            type: integer
                          type: array
                        sysctls:
                          description: Sysctls hold a list of namespaced sysctls used
                            for the pod. Pods with unsupported sysctls (by the container
                            runtime) might fail to launch.
                          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
                          type: array
                        windowsOptions:
                          description: The Windows specific settings applied to all
                            containers. If unspecified, the options within a container's
                            SecurityContext will be used. If set in both SecurityContext
                            and PodSecurityContext, the value specified in SecurityContext
                            takes precedence.
                          properties:
                            gmsaCredentialSpec:
                              description: GMSACredentialSpec is where the GMSA admission
                                webhook (https://github.com/kubernetes-sigs/windows-gmsa)
                                inlines the contents of the GMSA credential spec named
                                by the GMSACredentialSpecName field.
                              type: string
                            gmsaCredentialSpecName:
                              description: GMSACredentialSpecName is the name of the
                                GMSA credential spec to use.
                              type: string
                            runAsUserName:
                              description: The UserName in Windows to run the entrypoint
                                of the container process. Defaults to the user specified
                                in image metadata if unspecified. May also be set
                                in PodSecurityContext. If set in both SecurityContext
                                and PodSecurityContext, the value specified in SecurityContext
                                takes precedence.
                              type: string
                          type: object
                      type: object
                    strategy:
                      description: The deployment strategy to use to replace existing
                        pods with new ones.
                      properties:
                        rollingUpdate:
                          description: 'Rolling update config params. Present only
                            if DeploymentStrategyType = RollingUpdate. --- TODO: Update
                            this to follow our convention for oneOf, whatever we decide
                            it to be.'
                          properties:
                            maxSurge:
                              anyOf:
                              - type: integer
                              - type: string
                              description: 'The maximum number of pods that can be
                                scheduled above the desired number of pods. Value
                                can be an absolute number (ex: 5) or a percentage
                                of desired pods (ex: 10%). This can not be 0 if MaxUnavailable
                                is 0. Absolute number is calculated from percentage
                                by rounding up. Defaults to 25%. Example: when this
                                is set to 30%, the new ReplicaSet can be scaled up
                                immediately when the rolling update starts, such that
                                the total number of old and new pods do not exceed
                                130% of desired pods. Once old pods have been killed,
                                new ReplicaSet can be scaled up further, ensuring
                                that total number of pods running at any time during
                                the update is at most 130% of desired pods.'
                              x-kubernetes-int-or-string: true
                            maxUnavailable:
                              anyOf:
                              - type: integer
                              - type: string
                              description: 'The maximum number of pods that can be
                                unavailable during the update. Value can be an absolute
                                number (ex: 5) or a percentage of desired pods (ex:
                                10%). Absolute number is calculated from percentage
                                by rounding down. This can not be 0 if MaxSurge is
                                0. Defaults to 25%. Example: when this is set to 30%,
                                the old ReplicaSet can be scaled down to 70% of desired
                                pods immediately when the rolling update starts. Once
                                new pods are ready, old ReplicaSet can be scaled down
                                further, followed by scaling up the new ReplicaSet,
                                ensuring that the total number of pods available at
                                all times during the update is at least 70% of desired
                                pods.'
                              x-kubernetes-int-or-string: true
                          type: object
                        type:
                          description: Type of deployment. Can be "Recreate" or "RollingUpdate".
                            Default is RollingUpdate.
                          type: string
                      type: object
                    tolerations:
                      description: If specified, the pod's tolerations.
                      items:
                        description: The pod this Toleration is attached to tolerates
                          any taint that matches the triple <key,value,effect> using
                          the matching operator <operator>.
                        properties:
                          effect:
                            description: Effect indicates the taint effect to match.
                              Empty means match all taint effects. When specified,
                              allowed values are NoSchedule, PreferNoSchedule and
                              NoExecute.
                            type: string
                          key:
                            description: Key is the taint key that the toleration
                              applies to. Empty means match all taint keys. If the
                              key is empty, operator must be Exists; this combination
                              means to match all values and all keys.
                            type: string
                          operator:
                            description: Operator represents a key's relationship
                              to the value. Valid operators are Exists and Equal.
                              Defaults to Equal. Exists is equivalent to wildcard
                              for value, so that a pod can tolerate all taints of
                              a particular category.
                            type: string
                          tolerationSeconds:
                            description: TolerationSeconds represents the period of
                              time the toleration (which must be of effect NoExecute,
                              otherwise this field is ignored) tolerates the taint.
                              By default, it is not set, which means tolerate the
                              taint forever (do not evict). Zero and negative values
                              will be treated as 0 (evict immediately) by the system.
                            format: int64
                            type: integer
                          value:
                            description: Value is the taint value the toleration matches
                              to. If the operator is Exists, the value should be empty,
                              otherwise just a regular string.
                            type: string
                        type: object
                      type: array
                  type: object
                service:
                  properties:
                    extraPorts:
                      description: The list of ports that are exposed by this service.
                      items:
                        properties:
                          name:
                            type: string
                          port:
                            format: int32
                            type: integer
                          protocol:
                            description: Protocol defines network protocols supported
                              for things like container ports.
                            type: string
                        type: object
                      type: array
                    meta:
                      description: "ObjectMeta meta is a stripped down version of
                        the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                        with only user defined specs \n This type can be used in an
                        application CRD ObjectMeta implements the Meta interface and
                        can be used to mutates an object"
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: 'Annotations is an unstructured key value map
                            stored with a resource that may be set by external tools
                            to store and retrieve arbitrary metadata. They are not
                            queryable and should be preserved when modifying objects.
                            More info: http://kubernetes.io/docs/user-guide/annotations'
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: 'Map of string keys and values that can be
                            used to organize and categorize (scope and select) objects.
                            May match selectors of replication controllers and services.
                            More info: http://kubernetes.io/docs/user-guide/labels'
                          type: object
                        name:
                          description: 'Name must be unique within a namespace. Is
                            required when creating resources, although some resources
                            may allow a client to request the generation of an appropriate
                            name automatically. Name is primarily intended for creation
                            idempotence and configuration definition. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                          type: string
                        namespace:
                          description: "Namespace defines the space within each name
                            must be unique. An empty namespace is equivalent to the
                            \"default\" namespace, but \"default\" is the canonical
                            representation. Not all objects are required to be scoped
                            to a namespace - the value of this field for those objects
                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/namespaces"
                          type: string
                      type: object
                    port:
                      properties:
                        name:
                          type: string
                        port:
                          format: int32
                          type: integer
                        protocol:
                          description: Protocol defines network protocols supported
                            for things like container ports.
                          type: string
                      type: object
                    type:
                      description: 'type determines how the Service is exposed. Defaults
                        to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort,
                        and LoadBalancer. "ExternalName" maps to the specified externalName.
                        "ClusterIP" allocates a cluster-internal IP address for load-balancing
                        to endpoints. Endpoints are determined by the selector or
                        if that is not specified, by manual construction of an Endpoints
                        object. If clusterIP is "None", no virtual IP is allocated
                        and the endpoints are published as a set of endpoints rather
                        than a stable IP. "NodePort" builds on ClusterIP and allocates
                        a port on every node which routes to the clusterIP. "LoadBalancer"
                        builds on NodePort and creates an external load-balancer (if
                        supported in the current cloud) which routes to the clusterIP.
                        More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types'
                      type: string
                  type: object
                settings:
                  items:
                    type: string
                  type: array
              type: object
            cron:
              properties:
                activeDeadlineSeconds:
                  description: Optional duration in seconds relative to the startTime
                    that the job may be active before the system tries to terminate
                    it; value must be positive integer
                  format: int64
                  type: integer
                affinity:
                  description: If specified, the pod's scheduling constraints
                  properties:
                    nodeAffinity:
                      description: Describes node affinity scheduling rules for the
                        pod.
                      properties:
                        preferredDuringSchedulingIgnoredDuringExecution:
                          description: The scheduler will prefer to schedule pods
                            to nodes that satisfy the affinity expressions specified
                            by this field, but it may choose a node that violates
                            one or more of the expressions. The node that is most
                            preferred is the one with the greatest sum of weights,
                            i.e. for each node that meets all of the scheduling requirements
                            (resource request, requiredDuringScheduling affinity expressions,
                            etc.), compute a sum by iterating through the elements
                            of this field and adding "weight" to the sum if the node
                            matches the corresponding matchExpressions; the node(s)
                            with the highest sum are the most preferred.
                          items:
                            description: An empty preferred scheduling term matches
                              all objects with implicit weight 0 (i.e. it's a no-op).
                              A null preferred scheduling term matches no objects
                              (i.e. is also a no-op).
                            properties:
                              preference:
                                description: A node selector term, associated with
                                  the corresponding weight.
                                properties:
                                  matchExpressions:
                                    description: A list of node selector requirements
                                      by node's labels.
                                    items:
                                      description: A node selector requirement is
                                        a selector that contains values, a key, and
                                        an operator that relates the key and values.
                                      properties:
                                        key:
                                          description: The label key that the selector
                                            applies to.
                                          type: string
                                        operator:
                                          description: Represents a key's relationship
                                            to a set of values. Valid operators are
                                            In, NotIn, Exists, DoesNotExist. Gt, and
                                            Lt.
                                          type: string
                                        values:
                                          description: An array of string values.
                                            If the operator is In or NotIn, the values
                                            array must be non-empty. If the operator
                                            is Exists or DoesNotExist, the values
                                            array must be empty. If the operator is
                                            Gt or Lt, the values array must have a
                                            single element, which will be interpreted
                                            as an integer. This array is replaced
                                            during a strategic merge patch.
                                          items:
                                            type: string
                                          type: array
                                      required:
                                      - key
                                      - operator
                                      type: object
                                    type: array
                                  matchFields:
                                    description: A list of node selector requirements
                                      by node's fields.
                                    items:
                                      description: A node selector requirement is
                                        a selector that contains values, a key, and
                                        an operator that relates the key and values.
                                      properties:
                                        key:
                                          description: The label key that the selector
                                            applies to.
                                          type: string
                                        operator:
                                          description: Represents a key's relationship
                                            to a set of values. Valid operators are
                                            In, NotIn, Exists, DoesNotExist. Gt, and
                                            Lt.
                                          type: string
                                        values:
                                          description: An array of string values.
                                            If the operator is In or NotIn, the values
                                            array must be non-empty. If the operator
                                            is Exists or DoesNotExist, the values
                                            array must be empty. If the operator is
                                            Gt or Lt, the values array must have a
                                            single element, which will be interpreted
                                            as an integer. This array is replaced
                                            during a strategic merge patch.
                                          items:
                                            type: string
                                          type: array
                                      required:
                                      - key
                                      - operator
                                      type: object
                                    type: array
                                type: object
                              weight:
                                description: Weight associated with matching the corresponding
                                  nodeSelectorTerm, in the range 1-100.
                                format: int32
                                type: integer
                            required:
                            - preference
                            - weight
                            type: object
                          type: array
                        requiredDuringSchedulingIgnoredDuringExecution:
                          description: If the affinity requirements specified by this
                            field are not met at scheduling time, the pod will not
                            be scheduled onto the node. If the affinity requirements
                            specified by this field cease to be met at some point
                            during pod execution (e.g. due to an update), the system
                            may or may not try to eventually evict the pod from its
                            node.
                          properties:
                            nodeSelectorTerms:
                              description: Required. A list of node selector terms.
                                The terms are ORed.
                              items:
                                description: A null or empty node selector term matches
                                  no objects. The requirements of them are ANDed.
                                  The TopologySelectorTerm type implements a subset
                                  of the NodeSelectorTerm.
                                properties:
                                  matchExpressions:
                                    description: A list of node selector requirements
                                      by node's labels.
                                    items:
                                      description: A node selector requirement is
                                        a selector that contains values, a key, and
                                        an operator that relates the key and values.
                                      properties:
                                        key:
                                          description: The label key that the selector
                                            applies to.
                                          type: string
                                        operator:
                                          description: Represents a key's relationship
                                            to a set of values. Valid operators are
                                            In, NotIn, Exists, DoesNotExist. Gt, and
                                            Lt.
                                          type: string
                                        values:
                                          description: An array of string values.
                                            If the operator is In or NotIn, the values
                                            array must be non-empty. If the operator
                                            is Exists or DoesNotExist, the values
                                            array must be empty. If the operator is
                                            Gt or Lt, the values array must have a
                                            single element, which will be interpreted
                                            as an integer. This array is replaced
                                            during a strategic merge patch.
                                          items:
                                            type: string
                                          type: array
                                      required:
                                      - key
                                      - operator
                                      type: object
                                    type: array
                                  matchFields:
                                    description: A list of node selector requirements
                                      by node's fields.
                                    items:
                                      description: A node selector requirement is
                                        a selector that contains values, a key, and
                                        an operator that relates the key and values.
                                      properties:
                                        key:
                                          description: The label key that the selector
                                            applies to.
                                          type: string
                                        operator:
                                          description: Represents a key's relationship
                                            to a set of values. Valid operators are
                                            In, NotIn, Exists, DoesNotExist. Gt, and
                                            Lt.
                                          type: string
                                        values:
                                          description: An array of string values.
                                            If the operator is In or NotIn, the values
                                            array must be non-empty. If the operator
                                            is Exists or DoesNotExist, the values
                                            array must be empty. If the operator is
                                            Gt or Lt, the values array must have a
                                            single element, which will be interpreted
                                            as an integer. This array is replaced
                                            during a strategic merge patch.
                                          items:
                                            type: string
                                          type: array
                                      required:
                                      - key
                                      - operator
                                      type: object
                                    type: array
                                type: object
                              type: array
                          required:
                          - nodeSelectorTerms
                          type: object
                      type: object
                    podAffinity:
                      description: Describes pod affinity scheduling rules (e.g. co-locate
                        this pod in the same node, zone, etc. as some other pod(s)).
                      properties:
                        preferredDuringSchedulingIgnoredDuringExecution:
                          description: The scheduler will prefer to schedule pods
                            to nodes that satisfy the affinity expressions specified
                            by this field, but it may choose a node that violates
                            one or more of the expressions. The node that is most
                            preferred is the one with the greatest sum of weights,
                            i.e. for each node that meets all of the scheduling requirements
                            (resource request, requiredDuringScheduling affinity expressions,
                            etc.), compute a sum by iterating through the elements
                            of this field and adding "weight" to the sum if the node
                            has pods which matches the corresponding podAffinityTerm;
                            the node(s) with the highest sum are the most preferred.
                          items:
                            description: The weights of all of the matched WeightedPodAffinityTerm
                              fields are added per-node to find the most preferred
                              node(s)
                            properties:
                              podAffinityTerm:
                                description: Required. A pod affinity term, associated
                                  with the corresponding weight.
                                properties:
                                  labelSelector:
                                    description: A label query over a set of resources,
                                      in this case pods.
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of
                                          label selector requirements. The requirements
                                          are ANDed.
                                        items:
                                          description: A label selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: key is the label key that
                                                the selector applies to.
                                              type: string
                                            operator:
                                              description: operator represents a key's
                                                relationship to a set of values. Valid
                                                operators are In, NotIn, Exists and
                                                DoesNotExist.
                                              type: string
                                            values:
                                              description: values is an array of string
                                                values. If the operator is In or NotIn,
                                                the values array must be non-empty.
                                                If the operator is Exists or DoesNotExist,
                                                the values array must be empty. This
                                                array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: matchLabels is a map of {key,value}
                                          pairs. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                  namespaces:
                                    description: namespaces specifies which namespaces
                                      the labelSelector applies to (matches against);
                                      null or empty list means "this pod's namespace"
                                    items:
                                      type: string
                                    type: array
                                  topologyKey:
                                    description: This pod should be co-located (affinity)
                                      or not co-located (anti-affinity) with the pods
                                      matching the labelSelector in the specified
                                      namespaces, where co-located is defined as running
                                      on a node whose value of the label with key
                                      topologyKey matches that of any node on which
                                      any of the selected pods is running. Empty topologyKey
                                      is not allowed.
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              weight:
                                description: weight associated with matching the corresponding
                                  podAffinityTerm, in the range 1-100.
                                format: int32
                                type: integer
                            required:
                            - podAffinityTerm
                            - weight
                            type: object
                          type: array
                        requiredDuringSchedulingIgnoredDuringExecution:
                          description: If the affinity requirements specified by this
                            field are not met at scheduling time, the pod will not
                            be scheduled onto the node. If the affinity requirements
                            specified by this field cease to be met at some point
                            during pod execution (e.g. due to a pod label update),
                            the system may or may not try to eventually evict the
                            pod from its node. When there are multiple elements, the
                            lists of nodes corresponding to each podAffinityTerm are
                            intersected, i.e. all terms must be satisfied.
                          items:
                            description: Defines a set of pods (namely those matching
                              the labelSelector relative to the given namespace(s))
                              that this pod should be co-located (affinity) or not
                              co-located (anti-affinity) with, where co-located is
                              defined as running on a node whose value of the label
                              with key <topologyKey> matches that of any node on which
                              a pod of the set of pods is running
                            properties:
                              labelSelector:
                                description: A label query over a set of resources,
                                  in this case pods.
                                properties:
                                  matchExpressions:
                                    description: matchExpressions is a list of label
                                      selector requirements. The requirements are
                                      ANDed.
                                    items:
                                      description: A label selector requirement is
                                        a selector that contains values, a key, and
                                        an operator that relates the key and values.
                                      properties:
                                        key:
                                          description: key is the label key that the
                                            selector applies to.
                                          type: string
                                        operator:
                                          description: operator represents a key's
                                            relationship to a set of values. Valid
                                            operators are In, NotIn, Exists and DoesNotExist.
                                          type: string
                                        values:
                                          description: values is an array of string
                                            values. If the operator is In or NotIn,
                                            the values array must be non-empty. If
                                            the operator is Exists or DoesNotExist,
                                            the values array must be empty. This array
                                            is replaced during a strategic merge patch.
                                          items:
                                            type: string
                                          type: array
                                      required:
                                      - key
                                      - operator
                                      type: object
                                    type: array
                                  matchLabels:
                                    additionalProperties:
                                      type: string
                                    description: matchLabels is a map of {key,value}
                                      pairs. A single {key,value} in the matchLabels
                                      map is equivalent to an element of matchExpressions,
                                      whose key field is "key", the operator is "In",
                                      and the values array contains only "value".
                                      The requirements are ANDed.
                                    type: object
                                type: object
                              namespaces:
                                description: namespaces specifies which namespaces
                                  the labelSelector applies to (matches against);
                                  null or empty list means "this pod's namespace"
                                items:
                                  type: string
                                type: array
                              topologyKey:
                                description: This pod should be co-located (affinity)
                                  or not co-located (anti-affinity) with the pods
                                  matching the labelSelector in the specified namespaces,
                                  where co-located is defined as running on a node
                                  whose value of the label with key topologyKey matches
                                  that of any node on which any of the selected pods
                                  is running. Empty topologyKey is not allowed.
                                type: string
                            required:
                            - topologyKey
                            type: object
                          type: array
                      type: object
                    podAntiAffinity:
                      description: Describes pod anti-affinity scheduling rules (e.g.
                        avoid putting this pod in the same node, zone, etc. as some
                        other pod(s)).
                      properties:
                        preferredDuringSchedulingIgnoredDuringExecution:
                          description: The scheduler will prefer to schedule pods
                            to nodes that satisfy the anti-affinity expressions specified
                            by this field, but it may choose a node that violates
                            one or more of the expressions. The node that is most
                            preferred is the one with the greatest sum of weights,
                            i.e. for each node that meets all of the scheduling requirements
                            (resource request, requiredDuringScheduling anti-affinity
                            expressions, etc.), compute a sum by iterating through
                            the elements of this field and adding "weight" to the
                            sum if the node has pods which matches the corresponding
                            podAffinityTerm; the node(s) with the highest sum are
                            the most preferred.
                          items:
                            description: The weights of all of the matched WeightedPodAffinityTerm
                              fields are added per-node to find the most preferred
                              node(s)
                            properties:
                              podAffinityTerm:
                                description: Required. A pod affinity term, associated
                                  with the corresponding weight.
                                properties:
                                  labelSelector:
                                    description: A label query over a set of resources,
                                      in this case pods.
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of
                                          label selector requirements. The requirements
                                          are ANDed.
                                        items:
                                          description: A label selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: key is the label key that
                                                the selector applies to.
                                              type: string
                                            operator:
                                              description: operator represents a key's
                                                relationship to a set of values. Valid
                                                operators are In, NotIn, Exists and
                                                DoesNotExist.
                                              type: string
                                            values:
                                              description: values is an array of string
                                                values. If the operator is In or NotIn,
                                                the values array must be non-empty.
                                                If the operator is Exists or DoesNotExist,
                                                the values array must be empty. This
                                                array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: matchLabels is a map of {key,value}
                                          pairs. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                  namespaces:
                                    description: namespaces specifies which namespaces
                                      the labelSelector applies to (matches against);
                                      null or empty list means "this pod's namespace"
                                    items:
                                      type: string
                                    type: array
                                  topologyKey:
                                    description: This pod should be co-located (affinity)
                                      or not co-located (anti-affinity) with the pods
                                      matching the labelSelector in the specified
                                      namespaces, where co-located is defined as running
                                      on a node whose value of the label with key
                                      topologyKey matches that of any node on which
                                      any of the selected pods is running. Empty topologyKey
                                      is not allowed.
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              weight:
                                description: weight associated with matching the corresponding
                                  podAffinityTerm, in the range 1-100.
                                format: int32
                                type: integer
                            required:
                            - podAffinityTerm
                            - weight
                            type: object
                          type: array
                        requiredDuringSchedulingIgnoredDuringExecution:
                          description: If the anti-affinity requirements specified
                            by this field are not met at scheduling time, the pod
                            will not be scheduled onto the node. If the anti-affinity
                            requirements specified by this field cease to be met at
                            some point during pod execution (e.g. due to a pod label
                            update), the system may or may not try to eventually evict
                            the pod from its node. When there are multiple elements,
                            the lists of nodes corresponding to each podAffinityTerm
                            are intersected, i.e. all terms must be satisfied.
                          items:
                            description: Defines a set of pods (namely those matching
                              the labelSelector relative to the given namespace(s))
                              that this pod should be co-located (affinity) or not
                              co-located (anti-affinity) with, where co-located is
                              defined as running on a node whose value of the label
                              with key <topologyKey> matches that of any node on which
                              a pod of the set of pods is running
                            properties:
                              labelSelector:
                                description: A label query over a set of resources,
                                  in this case pods.
                                properties:
                                  matchExpressions:
                                    description: matchExpressions is a list of label
                                      selector requirements. The requirements are
                                      ANDed.
                                    items:
                                      description: A label selector requirement is
                                        a selector that contains values, a key, and
                                        an operator that relates the key and values.
                                      properties:
                                        key:
                                          description: key is the label key that the
                                            selector applies to.
                                          type: string
                                        operator:
                                          description: operator represents a key's
                                            relationship to a set of values. Valid
                                            operators are In, NotIn, Exists and DoesNotExist.
                                          type: string
                                        values:
                                          description: values is an array of string
                                            values. If the operator is In or NotIn,
                                            the values array must be non-empty. If
                                            the operator is Exists or DoesNotExist,
                                            the values array must be empty. This array
                                            is replaced during a strategic merge patch.
                                          items:
                                            type: string
                                          type: array
                                      required:
                                      - key
                                      - operator
                                      type: object
                                    type: array
                                  matchLabels:
                                    additionalProperties:
                                      type: string
                                    description: matchLabels is a map of {key,value}
                                      pairs. A single {key,value} in the matchLabels
                                      map is equivalent to an element of matchExpressions,
                                      whose key field is "key", the operator is "In",
                                      and the values array contains only "value".
                                      The requirements are ANDed.
                                    type: object
                                type: object
                              namespaces:
                                description: namespaces specifies which namespaces
                                  the labelSelector applies to (matches against);
                                  null or empty list means "this pod's namespace"
                                items:
                                  type: string
                                type: array
                              topologyKey:
                                description: This pod should be co-located (affinity)
                                  or not co-located (anti-affinity) with the pods
                                  matching the labelSelector in the specified namespaces,
                                  where co-located is defined as running on a node
                                  whose value of the label with key topologyKey matches
                                  that of any node on which any of the selected pods
                                  is running. Empty topologyKey is not allowed.
                                type: string
                            required:
                            - topologyKey
                            type: object
                          type: array
                      type: object
                  type: object
                args:
                  description: 'Arguments to the entrypoint. The docker image''s CMD
                    is used if this is not provided. Variable references $(VAR_NAME)
                    are expanded using the container''s environment. If a variable
                    cannot be resolved, the reference in the input string will be
                    unchanged. The $(VAR_NAME) syntax can be escaped with a double
                    $$, ie: $$(VAR_NAME). Escaped references will never be expanded,
                    regardless of whether the variable exists or not. Cannot be updated.
                    More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                  items:
                    type: string
                  type: array
                backoffLimit:
                  description: Optional number of retries before marking this job
                    failed. Defaults to 6
                  format: int32
                  type: integer
                command:
                  description: 'Entrypoint array. Not executed within a shell. The
                    docker image''s ENTRYPOINT is used if this is not provided. Variable
                    references $(VAR_NAME) are expanded using the container''s environment.
                    If a variable cannot be resolved, the reference in the input string
                    will be unchanged. The $(VAR_NAME) syntax can be escaped with
                    a double $$, ie: $$(VAR_NAME). Escaped references will never be
                    expanded, regardless of whether the variable exists or not. Cannot
                    be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                  items:
                    type: string
                  type: array
                completions:
                  description: Specifies the desired number of successfully finished
                    pods the job should be run with.  Setting to nil means that the
                    success of any pod signals the success of all pods, and allows
                    parallelism to have any positive value.  Setting to 1 means that
                    parallelism is limited to 1 and the success of that pod signals
                    the success of the job.
                  format: int32
                  type: integer
                concurrencyPolicy:
                  description: 'Specifies how to treat concurrent executions of a
                    Job. Valid values are: - "Allow" (default): allows CronJobs to
                    run concurrently; - "Forbid": forbids concurrent runs, skipping
                    next run if previous run hasn''t finished yet; - "Replace": cancels
                    currently running job and replaces it with a new one'
                  type: string
                extraContainers:
                  description: List of containers belonging to the pod. Containers
                    cannot currently be added or removed. There must be at least one
                    container in a Pod. Cannot be updated.
                  items:
                    description: "Container is the specification of the desired behavior
                      of the Container. It is a stripped down version of https://godoc.org/k8s.io/api/core/v1#Container
                      with only user definied specs \n Parameters are used to define
                      how settings are passed on to the container."
                    properties:
                      args:
                        description: 'Arguments to the entrypoint. The docker image''s
                          CMD is used if this is not provided. Variable references
                          $(VAR_NAME) are expanded using the container''s environment.
                          If a variable cannot be resolved, the reference in the input
                          string will be unchanged. The $(VAR_NAME) syntax can be
                          escaped with a double $$, ie: $$(VAR_NAME). Escaped references
                          will never be expanded, regardless of whether the variable
                          exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                        items:
                          type: string
                        type: array
                      command:
                        description: 'Entrypoint array. Not executed within a shell.
                          The docker image''s ENTRYPOINT is used if this is not provided.
                          Variable references $(VAR_NAME) are expanded using the container''s
                          environment. If a variable cannot be resolved, the reference
                          in the input string will be unchanged. The $(VAR_NAME) syntax
                          can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
                          references will never be expanded, regardless of whether
                          the variable exists or not. Cannot be updated. More info:
                          https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                        items:
                          type: string
                        type: array
                      image:
                        description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                          This field is optional to allow higher level config management
                          to default or override container images in workload controllers
                          like Deployments and StatefulSets.'
                        type: string
                      imagePullPolicy:
                        description: 'Image pull policy. One of Always, Never, IfNotPresent.
                          Defaults to Always if :latest tag is specified, or IfNotPresent
                          otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                        type: string
                      inline:
                        description: Periodic probe for container health
                        properties:
                          livenessProbe:
                            description: 'Periodic probe of container liveness. Container
                              will be restarted if the probe fails. Cannot be updated.
                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: One and only one of the following should
                                  be specified. Exec specifies the action to take.
                                properties:
                                  command:
                                    description: Command is the command line to execute
                                      inside the container, the working directory
                                      for the command  is root ('/') in the container's
                                      filesystem. The command is simply exec'd, it
                                      is not run inside a shell, so traditional shell
                                      instructions ('|', etc) won't work. To use a
                                      shell, you need to explicitly call out to that
                                      shell. Exit status of 0 is treated as live/healthy
                                      and non-zero is unhealthy.
                                    items:
                                      type: string
                                    type: array
                                type: object
                              failureThreshold:
                                description: Minimum consecutive failures for the
                                  probe to be considered failed after having succeeded.
                                  Defaults to 3. Minimum value is 1.
                                format: int32
                                type: integer
                              httpGet:
                                description: HTTPGet specifies the http request to
                                  perform.
                                properties:
                                  host:
                                    description: Host name to connect to, defaults
                                      to the pod IP. You probably want to set "Host"
                                      in httpHeaders instead.
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request.
                                      HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header
                                        to be used in HTTP probes
                                      properties:
                                        name:
                                          description: The header field name
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: Name or number of the port to access
                                      on the container. Number must be in the range
                                      1 to 65535. Name must be an IANA_SVC_NAME.
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: Scheme to use for connecting to the
                                      host. Defaults to HTTP.
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container
                                  has started before liveness probes are initiated.
                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: How often (in seconds) to perform the
                                  probe. Default to 10 seconds. Minimum value is 1.
                                format: int32
                                type: integer
                              successThreshold:
                                description: Minimum consecutive successes for the
                                  probe to be considered successful after having failed.
                                  Defaults to 1. Must be 1 for liveness and startup.
                                  Minimum value is 1.
                                format: int32
                                type: integer
                              tcpSocket:
                                description: 'TCPSocket specifies an action involving
                                  a TCP port. TCP hooks not yet supported TODO: implement
                                  a realistic TCP lifecycle hook'
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to,
                                      defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: Number or name of the port to access
                                      on the container. Number must be in the range
                                      1 to 65535. Name must be an IANA_SVC_NAME.
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe
                                  times out. Defaults to 1 second. Minimum value is
                                  1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          readinessProbe:
                            description: 'Periodic probe of container liveness. Container
                              will be restarted if the probe fails. Cannot be updated.
                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: One and only one of the following should
                                  be specified. Exec specifies the action to take.
                                properties:
                                  command:
                                    description: Command is the command line to execute
                                      inside the container, the working directory
                                      for the command  is root ('/') in the container's
                                      filesystem. The command is simply exec'd, it
                                      is not run inside a shell, so traditional shell
                                      instructions ('|', etc) won't work. To use a
                                      shell, you need to explicitly call out to that
                                      shell. Exit status of 0 is treated as live/healthy
                                      and non-zero is unhealthy.
                                    items:
                                      type: string
                                    type: array
                                type: object
                              failureThreshold:
                                description: Minimum consecutive failures for the
                                  probe to be considered failed after having succeeded.
                                  Defaults to 3. Minimum value is 1.
                                format: int32
                                type: integer
                              httpGet:
                                description: HTTPGet specifies the http request to
                                  perform.
                                properties:
                                  host:
                                    description: Host name to connect to, defaults
                                      to the pod IP. You probably want to set "Host"
                                      in httpHeaders instead.
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request.
                                      HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header
                                        to be used in HTTP probes
                                      properties:
                                        name:
                                          description: The header field name
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: Name or number of the port to access
                                      on the container. Number must be in the range
                                      1 to 65535. Name must be an IANA_SVC_NAME.
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: Scheme to use for connecting to the
                                      host. Defaults to HTTP.
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container
                                  has started before liveness probes are initiated.
                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: How often (in seconds) to perform the
                                  probe. Default to 10 seconds. Minimum value is 1.
                                format: int32
                                type: integer
                              successThreshold:
                                description: Minimum consecutive successes for the
                                  probe to be considered successful after having failed.
                                  Defaults to 1. Must be 1 for liveness and startup.
                                  Minimum value is 1.
                                format: int32
                                type: integer
                              tcpSocket:
                                description: 'TCPSocket specifies an action involving
                                  a TCP port. TCP hooks not yet supported TODO: implement
                                  a realistic TCP lifecycle hook'
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to,
                                      defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: Number or name of the port to access
                                      on the container. Number must be in the range
                                      1 to 65535. Name must be an IANA_SVC_NAME.
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe
                                  times out. Defaults to 1 second. Minimum value is
                                  1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                        type: object
                      name:
                        description: Name of the container specified as a DNS_LABEL.
                          Each container in a pod must have a unique name (DNS_LABEL).
                          Cannot be updated.
                        type: string
                      parameters:
                        description: SettingsSpec defines a list of parameters and
                          references to resources from which those parameters can
                          be fetched Only secrets and configmaps in the same namespace
                          are supported as references
                        properties:
                          parameters:
                            description: Parameters is a list of parameters
                            items:
                              properties:
                                fromKey:
                                  description: Key to select from the source
                                  type: string
                                generate:
                                  description: Generate if specified defines how the
                                    parameter value will be generated
                                  type: string
                                key:
                                  description: "Key of the parameter, can be mounted
                                    as as an environment variable, used in template
                                    or as the key in the key:value data fied in the
                                    configmap or secret \n Key must be unique"
                                  type: string
                                mountFrom:
                                  description: MountPath specifies where the parameter
                                    will be mounted as a file
                                  properties:
                                    path:
                                      type: string
                                    subPath:
                                      type: string
                                  type: object
                                mountType:
                                  description: MountType defined how the parameter
                                    will be mounted in the pod Defaults to EnvFile
                                  type: string
                                ref:
                                  description: Name of the referent.
                                  type: string
                                refType:
                                  description: Type of the parameter's source Defaults
                                    to the parameter type if not specified
                                  type: string
                                type:
                                  description: Type specifies specifies the parameter
                                    type
                                  type: string
                                value:
                                  description: Value of the paramater, should not
                                    contain secret values If it is a template, ParameterType
                                    should be template
                                  type: string
                              type: object
                            type: array
                          sources:
                            description: Sources is a list of sources for the parameters
                              from kubernetes resources in the same namespace Sources
                              []Source `json:"sources,omitempty"`
                            items:
                              properties:
                                ref:
                                  description: Ref is the name of a resource in the
                                    same namespace
                                  type: string
                                type:
                                  description: Type is the type of the resource Only
                                    Secrets and ConfigMaps are supported
                                  type: string
                              type: object
                            type: array
                        type: object
                      ports:
                        description: List of ports to expose from the container. Exposing
                          a port here gives the system additional information about
                          the network connections a container uses, but is primarily
                          informational. Not specifying a port here DOES NOT prevent
                          that port from being exposed. Any port which is listening
                          on the default "0.0.0.0" address inside a container will
                          be accessible from the network. Cannot be updated.
                        items:
                          description: ContainerPort represents a network port in
                            a single container.
                          properties:
                            containerPort:
                              description: Number of port to expose on the pod's IP
                                address. This must be a valid port number, 0 < x <
                                65536.
                              format: int32
                              type: integer
                            hostIP:
                              description: What host IP to bind the external port
                                to.
                              type: string
                            hostPort:
                              description: Number of port to expose on the host. If
                                specified, this must be a valid port number, 0 < x
                                < 65536. If HostNetwork is specified, this must match
                                ContainerPort. Most containers do not need this.
                              format: int32
                              type: integer
                            name:
                              description: If specified, this must be an IANA_SVC_NAME
                                and unique within the pod. Each named port in a pod
                                must have a unique name. Name for the port that can
                                be referred to by services.
                              type: string
                            protocol:
                              description: Protocol for port. Must be UDP, TCP, or
                                SCTP. Defaults to "TCP".
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                    type: object
                  type: array
                failedJobsHistoryLimit:
                  description: The number of failed finished jobs to retain. This
                    is a pointer to distinguish between explicit zero and not specified.
                    Defaults to 1.
                  format: int32
                  type: integer
                image:
                  description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                    This field is optional to allow higher level config management
                    to default or override container images in workload controllers
                    like Deployments and StatefulSets.'
                  type: string
                imagePullPolicy:
                  description: 'Image pull policy. One of Always, Never, IfNotPresent.
                    Defaults to Always if :latest tag is specified, or IfNotPresent
                    otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                  type: string
                imagePullSecrets:
                  description: 'ImagePullSecrets is an optional list of references
                    to secrets in the same namespace to use for pulling any of the
                    images used by this PodSpec. If specified, these secrets will
                    be passed to individual puller implementations for them to use.
                    For example, in the case of docker, only DockerConfig type secrets
                    are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
                  items:
                    description: LocalObjectReference contains enough information
                      to let you locate the referenced object inside the same namespace.
                    properties:
                      name:
                        description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                          TODO: Add other useful fields. apiVersion, kind, uid?'
                        type: string
                    type: object
                  type: array
                initContainers:
                  description: 'List of initialization containers belonging to the
                    pod. Init containers are executed in order prior to containers
                    being started. If any init container fails, the pod is considered
                    to have failed and is handled according to its restartPolicy.
                    The name for an init container or normal container must be unique
                    among all containers. Init containers may not have Lifecycle actions,
                    Readiness probes, Liveness probes, or Startup probes. The resourceRequirements
                    of an init container are taken into account during scheduling
                    by finding the highest request/limit for each resource type, and
                    then using the max of of that value or the sum of the normal containers.
                    Limits are applied to init containers in a similar fashion. Init
                    containers cannot currently be added or removed. Cannot be updated.
                    More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/'
                  items:
                    description: "Container is the specification of the desired behavior
                      of the Container. It is a stripped down version of https://godoc.org/k8s.io/api/core/v1#Container
                      with only user definied specs \n Parameters are used to define
                      how settings are passed on to the container."
                    properties:
                      args:
                        description: 'Arguments to the entrypoint. The docker image''s
                          CMD is used if this is not provided. Variable references
                          $(VAR_NAME) are expanded using the container''s environment.
                          If a variable cannot be resolved, the reference in the input
                          string will be unchanged. The $(VAR_NAME) syntax can be
                          escaped with a double $$, ie: $$(VAR_NAME). Escaped references
                          will never be expanded, regardless of whether the variable
                          exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                        items:
                          type: string
                        type: array
                      command:
                        description: 'Entrypoint array. Not executed within a shell.
                          The docker image''s ENTRYPOINT is used if this is not provided.
                          Variable references $(VAR_NAME) are expanded using the container''s
                          environment. If a variable cannot be resolved, the reference
                          in the input string will be unchanged. The $(VAR_NAME) syntax
                          can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
                          references will never be expanded, regardless of whether
                          the variable exists or not. Cannot be updated. More info:
                          https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                        items:
                          type: string
                        type: array
                      image:
                        description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                          This field is optional to allow higher level config management
                          to default or override container images in workload controllers
                          like Deployments and StatefulSets.'
                        type: string
                      imagePullPolicy:
                        description: 'Image pull policy. One of Always, Never, IfNotPresent.
                          Defaults to Always if :latest tag is specified, or IfNotPresent
                          otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                        type: string
                      inline:
                        description: Periodic probe for container health
                        properties:
                          livenessProbe:
                            description: 'Periodic probe of container liveness. Container
                              will be restarted if the probe fails. Cannot be updated.
                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: One and only one of the following should
                                  be specified. Exec specifies the action to take.
                                properties:
                                  command:
                                    description: Command is the command line to execute
                                      inside the container, the working directory
                                      for the command  is root ('/') in the container's
                                      filesystem. The command is simply exec'd, it
                                      is not run inside a shell, so traditional shell
                                      instructions ('|', etc) won't work. To use a
                                      shell, you need to explicitly call out to that
                                      shell. Exit status of 0 is treated as live/healthy
                                      and non-zero is unhealthy.
                                    items:
                                      type: string
                                    type: array
                                type: object
                              failureThreshold:
                                description: Minimum consecutive failures for the
                                  probe to be considered failed after having succeeded.
                                  Defaults to 3. Minimum value is 1.
                                format: int32
                                type: integer
                              httpGet:
                                description: HTTPGet specifies the http request to
                                  perform.
                                properties:
                                  host:
                                    description: Host name to connect to, defaults
                                      to the pod IP. You probably want to set "Host"
                                      in httpHeaders instead.
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request.
                                      HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header
                                        to be used in HTTP probes
                                      properties:
                                        name:
                                          description: The header field name
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: Name or number of the port to access
                                      on the container. Number must be in the range
                                      1 to 65535. Name must be an IANA_SVC_NAME.
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: Scheme to use for connecting to the
                                      host. Defaults to HTTP.
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container
                                  has started before liveness probes are initiated.
                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: How often (in seconds) to perform the
                                  probe. Default to 10 seconds. Minimum value is 1.
                                format: int32
                                type: integer
                              successThreshold:
                                description: Minimum consecutive successes for the
                                  probe to be considered successful after having failed.
                                  Defaults to 1. Must be 1 for liveness and startup.
                                  Minimum value is 1.
                                format: int32
                                type: integer
                              tcpSocket:
                                description: 'TCPSocket specifies an action involving
                                  a TCP port. TCP hooks not yet supported TODO: implement
                                  a realistic TCP lifecycle hook'
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to,
                                      defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: Number or name of the port to access
                                      on the container. Number must be in the range
                                      1 to 65535. Name must be an IANA_SVC_NAME.
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe
                                  times out. Defaults to 1 second. Minimum value is
                                  1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                          readinessProbe:
                            description: 'Periodic probe of container liveness. Container
                              will be restarted if the probe fails. Cannot be updated.
                              More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                            properties:
                              exec:
                                description: One and only one of the following should
                                  be specified. Exec specifies the action to take.
                                properties:
                                  command:
                                    description: Command is the command line to execute
                                      inside the container, the working directory
                                      for the command  is root ('/') in the container's
                                      filesystem. The command is simply exec'd, it
                                      is not run inside a shell, so traditional shell
                                      instructions ('|', etc) won't work. To use a
                                      shell, you need to explicitly call out to that
                                      shell. Exit status of 0 is treated as live/healthy
                                      and non-zero is unhealthy.
                                    items:
                                      type: string
                                    type: array
                                type: object
                              failureThreshold:
                                description: Minimum consecutive failures for the
                                  probe to be considered failed after having succeeded.
                                  Defaults to 3. Minimum value is 1.
                                format: int32
                                type: integer
                              httpGet:
                                description: HTTPGet specifies the http request to
                                  perform.
                                properties:
                                  host:
                                    description: Host name to connect to, defaults
                                      to the pod IP. You probably want to set "Host"
                                      in httpHeaders instead.
                                    type: string
                                  httpHeaders:
                                    description: Custom headers to set in the request.
                                      HTTP allows repeated headers.
                                    items:
                                      description: HTTPHeader describes a custom header
                                        to be used in HTTP probes
                                      properties:
                                        name:
                                          description: The header field name
                                          type: string
                                        value:
                                          description: The header field value
                                          type: string
                                      required:
                                      - name
                                      - value
                                      type: object
                                    type: array
                                  path:
                                    description: Path to access on the HTTP server.
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: Name or number of the port to access
                                      on the container. Number must be in the range
                                      1 to 65535. Name must be an IANA_SVC_NAME.
                                    x-kubernetes-int-or-string: true
                                  scheme:
                                    description: Scheme to use for connecting to the
                                      host. Defaults to HTTP.
                                    type: string
                                required:
                                - port
                                type: object
                              initialDelaySeconds:
                                description: 'Number of seconds after the container
                                  has started before liveness probes are initiated.
                                  More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                              periodSeconds:
                                description: How often (in seconds) to perform the
                                  probe. Default to 10 seconds. Minimum value is 1.
                                format: int32
                                type: integer
                              successThreshold:
                                description: Minimum consecutive successes for the
                                  probe to be considered successful after having failed.
                                  Defaults to 1. Must be 1 for liveness and startup.
                                  Minimum value is 1.
                                format: int32
                                type: integer
                              tcpSocket:
                                description: 'TCPSocket specifies an action involving
                                  a TCP port. TCP hooks not yet supported TODO: implement
                                  a realistic TCP lifecycle hook'
                                properties:
                                  host:
                                    description: 'Optional: Host name to connect to,
                                      defaults to the pod IP.'
                                    type: string
                                  port:
                                    anyOf:
                                    - type: integer
                                    - type: string
                                    description: Number or name of the port to access
                                      on the container. Number must be in the range
                                      1 to 65535. Name must be an IANA_SVC_NAME.
                                    x-kubernetes-int-or-string: true
                                required:
                                - port
                                type: object
                              timeoutSeconds:
                                description: 'Number of seconds after which the probe
                                  times out. Defaults to 1 second. Minimum value is
                                  1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                format: int32
                                type: integer
                            type: object
                        type: object
                      name:
                        description: Name of the container specified as a DNS_LABEL.
                          Each container in a pod must have a unique name (DNS_LABEL).
                          Cannot be updated.
                        type: string
                      parameters:
                        description: SettingsSpec defines a list of parameters and
                          references to resources from which those parameters can
                          be fetched Only secrets and configmaps in the same namespace
                          are supported as references
                        properties:
                          parameters:
                            description: Parameters is a list of parameters
                            items:
                              properties:
                                fromKey:
                                  description: Key to select from the source
                                  type: string
                                generate:
                                  description: Generate if specified defines how the
                                    parameter value will be generated
                                  type: string
                                key:
                                  description: "Key of the parameter, can be mounted
                                    as as an environment variable, used in template
                                    or as the key in the key:value data fied in the
                                    configmap or secret \n Key must be unique"
                                  type: string
                                mountFrom:
                                  description: MountPath specifies where the parameter
                                    will be mounted as a file
                                  properties:
                                    path:
                                      type: string
                                    subPath:
                                      type: string
                                  type: object
                                mountType:
                                  description: MountType defined how the parameter
                                    will be mounted in the pod Defaults to EnvFile
                                  type: string
                                ref:
                                  description: Name of the referent.
                                  type: string
                                refType:
                                  description: Type of the parameter's source Defaults
                                    to the parameter type if not specified
                                  type: string
                                type:
                                  description: Type specifies specifies the parameter
                                    type
                                  type: string
                                value:
                                  description: Value of the paramater, should not
                                    contain secret values If it is a template, ParameterType
                                    should be template
                                  type: string
                              type: object
                            type: array
                          sources:
                            description: Sources is a list of sources for the parameters
                              from kubernetes resources in the same namespace Sources
                              []Source `json:"sources,omitempty"`
                            items:
                              properties:
                                ref:
                                  description: Ref is the name of a resource in the
                                    same namespace
                                  type: string
                                type:
                                  description: Type is the type of the resource Only
                                    Secrets and ConfigMaps are supported
                                  type: string
                              type: object
                            type: array
                        type: object
                      ports:
                        description: List of ports to expose from the container. Exposing
                          a port here gives the system additional information about
                          the network connections a container uses, but is primarily
                          informational. Not specifying a port here DOES NOT prevent
                          that port from being exposed. Any port which is listening
                          on the default "0.0.0.0" address inside a container will
                          be accessible from the network. Cannot be updated.
                        items:
                          description: ContainerPort represents a network port in
                            a single container.
                          properties:
                            containerPort:
                              description: Number of port to expose on the pod's IP
                                address. This must be a valid port number, 0 < x <
                                65536.
                              format: int32
                              type: integer
                            hostIP:
                              description: What host IP to bind the external port
                                to.
                              type: string
                            hostPort:
                              description: Number of port to expose on the host. If
                                specified, this must be a valid port number, 0 < x
                                < 65536. If HostNetwork is specified, this must match
                                ContainerPort. Most containers do not need this.
                              format: int32
                              type: integer
                            name:
                              description: If specified, this must be an IANA_SVC_NAME
                                and unique within the pod. Each named port in a pod
                                must have a unique name. Name for the port that can
                                be referred to by services.
                              type: string
                            protocol:
                              description: Protocol for port. Must be UDP, TCP, or
                                SCTP. Defaults to "TCP".
                              type: string
                          required:
                          - containerPort
                          type: object
                        type: array
                    type: object
                  type: array
                inline:
                  description: Periodic probe for container health
                  properties:
                    livenessProbe:
                      description: 'Periodic probe of container liveness. Container
                        will be restarted if the probe fails. Cannot be updated. More
                        info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                      properties:
                        exec:
                          description: One and only one of the following should be
                            specified. Exec specifies the action to take.
                          properties:
                            command:
                              description: Command is the command line to execute
                                inside the container, the working directory for the
                                command  is root ('/') in the container's filesystem.
                                The command is simply exec'd, it is not run inside
                                a shell, so traditional shell instructions ('|', etc)
                                won't work. To use a shell, you need to explicitly
                                call out to that shell. Exit status of 0 is treated
                                as live/healthy and non-zero is unhealthy.
                              items:
                                type: string
                              type: array
                          type: object
                        failureThreshold:
                          description: Minimum consecutive failures for the probe
                            to be considered failed after having succeeded. Defaults
                            to 3. Minimum value is 1.
                          format: int32
                          type: integer
                        httpGet:
                          description: HTTPGet specifies the http request to perform.
                          properties:
                            host:
                              description: Host name to connect to, defaults to the
                                pod IP. You probably want to set "Host" in httpHeaders
                                instead.
                              type: string
                            httpHeaders:
                              description: Custom headers to set in the request. HTTP
                                allows repeated headers.
                              items:
                                description: HTTPHeader describes a custom header
                                  to be used in HTTP probes
                                properties:
                                  name:
                                    description: The header field name
                                    type: string
                                  value:
                                    description: The header field value
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              description: Path to access on the HTTP server.
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              description: Name or number of the port to access on
                                the container. Number must be in the range 1 to 65535.
                                Name must be an IANA_SVC_NAME.
                              x-kubernetes-int-or-string: true
                            scheme:
                              description: Scheme to use for connecting to the host.
                                Defaults to HTTP.
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          description: 'Number of seconds after the container has
                            started before liveness probes are initiated. More info:
                            https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          format: int32
                          type: integer
                        periodSeconds:
                          description: How often (in seconds) to perform the probe.
                            Default to 10 seconds. Minimum value is 1.
                          format: int32
                          type: integer
                        successThreshold:
                          description: Minimum consecutive successes for the probe
                            to be considered successful after having failed. Defaults
                            to 1. Must be 1 for liveness and startup. Minimum value
                            is 1.
                          format: int32
                          type: integer
                        tcpSocket:
                          description: 'TCPSocket specifies an action involving a
                            TCP port. TCP hooks not yet supported TODO: implement
                            a realistic TCP lifecycle hook'
                          properties:
                            host:
                              description: 'Optional: Host name to connect to, defaults
                                to the pod IP.'
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              description: Number or name of the port to access on
                                the container. Number must be in the range 1 to 65535.
                                Name must be an IANA_SVC_NAME.
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        timeoutSeconds:
                          description: 'Number of seconds after which the probe times
                            out. Defaults to 1 second. Minimum value is 1. More info:
                            https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          format: int32
                          type: integer
                      type: object
                    readinessProbe:
                      description: 'Periodic probe of container liveness. Container
                        will be restarted if the probe fails. Cannot be updated. More
                        info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                      properties:
                        exec:
                          description: One and only one of the following should be
                            specified. Exec specifies the action to take.
                          properties:
                            command:
                              description: Command is the command line to execute
                                inside the container, the working directory for the
                                command  is root ('/') in the container's filesystem.
                                The command is simply exec'd, it is not run inside
                                a shell, so traditional shell instructions ('|', etc)
                                won't work. To use a shell, you need to explicitly
                                call out to that shell. Exit status of 0 is treated
                                as live/healthy and non-zero is unhealthy.
                              items:
                                type: string
                              type: array
                          type: object
                        failureThreshold:
                          description: Minimum consecutive failures for the probe
                            to be considered failed after having succeeded. Defaults
                            to 3. Minimum value is 1.
                          format: int32
                          type: integer
                        httpGet:
                          description: HTTPGet specifies the http request to perform.
                          properties:
                            host:
                              description: Host name to connect to, defaults to the
                                pod IP. You probably want to set "Host" in httpHeaders
                                instead.
                              type: string
                            httpHeaders:
                              description: Custom headers to set in the request. HTTP
                                allows repeated headers.
                              items:
                                description: HTTPHeader describes a custom header
                                  to be used in HTTP probes
                                properties:
                                  name:
                                    description: The header field name
                                    type: string
                                  value:
                                    description: The header field value
                                    type: string
                                required:
                                - name
                                - value
                                type: object
                              type: array
                            path:
                              description: Path to access on the HTTP server.
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              description: Name or number of the port to access on
                                the container. Number must be in the range 1 to 65535.
                                Name must be an IANA_SVC_NAME.
                              x-kubernetes-int-or-string: true
                            scheme:
                              description: Scheme to use for connecting to the host.
                                Defaults to HTTP.
                              type: string
                          required:
                          - port
                          type: object
                        initialDelaySeconds:
                          description: 'Number of seconds after the container has
                            started before liveness probes are initiated. More info:
                            https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          format: int32
                          type: integer
                        periodSeconds:
                          description: How often (in seconds) to perform the probe.
                            Default to 10 seconds. Minimum value is 1.
                          format: int32
                          type: integer
                        successThreshold:
                          description: Minimum consecutive successes for the probe
                            to be considered successful after having failed. Defaults
                            to 1. Must be 1 for liveness and startup. Minimum value
                            is 1.
                          format: int32
                          type: integer
                        tcpSocket:
                          description: 'TCPSocket specifies an action involving a
                            TCP port. TCP hooks not yet supported TODO: implement
                            a realistic TCP lifecycle hook'
                          properties:
                            host:
                              description: 'Optional: Host name to connect to, defaults
                                to the pod IP.'
                              type: string
                            port:
                              anyOf:
                              - type: integer
                              - type: string
                              description: Number or name of the port to access on
                                the container. Number must be in the range 1 to 65535.
                                Name must be an IANA_SVC_NAME.
                              x-kubernetes-int-or-string: true
                          required:
                          - port
                          type: object
                        timeoutSeconds:
                          description: 'Number of seconds after which the probe times
                            out. Defaults to 1 second. Minimum value is 1. More info:
                            https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          format: int32
                          type: integer
                      type: object
                  type: object
                meta:
                  description: "ObjectMeta meta is a stripped down version of the
                    ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                    with only user defined specs \n This type can be used in an application
                    CRD ObjectMeta implements the Meta interface and can be used to
                    mutates an object"
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: 'Annotations is an unstructured key value map stored
                        with a resource that may be set by external tools to store
                        and retrieve arbitrary metadata. They are not queryable and
                        should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: 'Map of string keys and values that can be used
                        to organize and categorize (scope and select) objects. May
                        match selectors of replication controllers and services. More
                        info: http://kubernetes.io/docs/user-guide/labels'
                      type: object
                    name:
                      description: 'Name must be unique within a namespace. Is required
                        when creating resources, although some resources may allow
                        a client to request the generation of an appropriate name
                        automatically. Name is primarily intended for creation idempotence
                        and configuration definition. Cannot be updated. More info:
                        http://kubernetes.io/docs/user-guide/identifiers#names'
                      type: string
                    namespace:
                      description: "Namespace defines the space within each name must
                        be unique. An empty namespace is equivalent to the \"default\"
                        namespace, but \"default\" is the canonical representation.
                        Not all objects are required to be scoped to a namespace -
                        the value of this field for those objects will be empty. \n
                        Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
                      type: string
                  type: object
                name:
                  description: Name of the container specified as a DNS_LABEL. Each
                    container in a pod must have a unique name (DNS_LABEL). Cannot
                    be updated.
                  type: string
                nodeSelector:
                  additionalProperties:
                    type: string
                  description: 'NodeSelector is a selector which must be true for
                    the pod to fit on a node. Selector which must match a node''s
                    labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
                  type: object
                parallelism:
                  description: Specifies the maximum desired number of pods the job
                    should run at any given time. The actual number of pods running
                    in steady state will be less than this number when ((.spec.completions
                    - .status.successful) < .spec.parallelism), i.e. when the work
                    left to do is less than max parallelism.
                  format: int32
                  type: integer
                parameters:
                  description: SettingsSpec defines a list of parameters and references
                    to resources from which those parameters can be fetched Only secrets
                    and configmaps in the same namespace are supported as references
                  properties:
                    parameters:
                      description: Parameters is a list of parameters
                      items:
                        properties:
                          fromKey:
                            description: Key to select from the source
                            type: string
                          generate:
                            description: Generate if specified defines how the parameter
                              value will be generated
                            type: string
                          key:
                            description: "Key of the parameter, can be mounted as
                              as an environment variable, used in template or as the
                              key in the key:value data fied in the configmap or secret
                              \n Key must be unique"
                            type: string
                          mountFrom:
                            description: MountPath specifies where the parameter will
                              be mounted as a file
                            properties:
                              path:
                                type: string
                              subPath:
                                type: string
                            type: object
                          mountType:
                            description: MountType defined how the parameter will
                              be mounted in the pod Defaults to EnvFile
                            type: string
                          ref:
                            description: Name of the referent.
                            type: string
                          refType:
                            description: Type of the parameter's source Defaults to
                              the parameter type if not specified
                            type: string
                          type:
                            description: Type specifies specifies the parameter type
                            type: string
                          value:
                            description: Value of the paramater, should not contain
                              secret values If it is a template, ParameterType should
                              be template
                            type: string
                        type: object
                      type: array
                    sources:
                      description: Sources is a list of sources for the parameters
                        from kubernetes resources in the same namespace Sources []Source
                        `json:"sources,omitempty"`
                      items:
                        properties:
                          ref:
                            description: Ref is the name of a resource in the same
                              namespace
                            type: string
                          type:
                            description: Type is the type of the resource Only Secrets
                              and ConfigMaps are supported
                            type: string
                        type: object
                      type: array
                  type: object
                ports:
                  description: List of ports to expose from the container. Exposing
                    a port here gives the system additional information about the
                    network connections a container uses, but is primarily informational.
                    Not specifying a port here DOES NOT prevent that port from being
                    exposed. Any port which is listening on the default "0.0.0.0"
                    address inside a container will be accessible from the network.
                    Cannot be updated.
                  items:
                    description: ContainerPort represents a network port in a single
                      container.
                    properties:
                      containerPort:
                        description: Number of port to expose on the pod's IP address.
                          This must be a valid port number, 0 < x < 65536.
                        format: int32
                        type: integer
                      hostIP:
                        description: What host IP to bind the external port to.
                        type: string
                      hostPort:
                        description: Number of port to expose on the host. If specified,
                          this must be a valid port number, 0 < x < 65536. If HostNetwork
                          is specified, this must match ContainerPort. Most containers
                          do not need this.
                        format: int32
                        type: integer
                      name:
                        description: If specified, this must be an IANA_SVC_NAME and
                          unique within the pod. Each named port in a pod must have
                          a unique name. Name for the port that can be referred to
                          by services.
                        type: string
                      protocol:
                        description: Protocol for port. Must be UDP, TCP, or SCTP.
                          Defaults to "TCP".
                        type: string
                    required:
                    - containerPort
                    type: object
                  type: array
                resources:
                  description: ResourceRequirements describes the compute resource
                    requirements.
                  properties:
                    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. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                      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. If Requests is omitted for a container,
                        it defaults to Limits if that is explicitly specified, otherwise
                        to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                      type: object
                  type: object
                restartPolicy:
                  description: 'Restart policy for all containers within the pod.
                    One of Always, OnFailure, Never. Default to Always. More info:
                    https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy'
                  type: string
                schedule:
                  description: The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
                  type: string
                securityContext:
                  description: 'SecurityContext holds pod-level security attributes
                    and common container settings. Optional: Defaults to empty.  See
                    type description for default values of each field.'
                  properties:
                    fsGroup:
                      description: "A special supplemental group that applies to all
                        containers in a pod. Some volume types allow the Kubelet to
                        change the ownership of that volume to be owned by the pod:
                        \n 1. The owning GID will be the FSGroup 2. The setgid bit
                        is set (new files created in the volume will be owned by FSGroup)
                        3. The permission bits are OR'd with rw-rw---- \n If unset,
                        the Kubelet will not modify the ownership and permissions
                        of any volume."
                      format: int64
                      type: integer
                    fsGroupChangePolicy:
                      description: 'fsGroupChangePolicy defines behavior of changing
                        ownership and permission of the volume before being exposed
                        inside Pod. This field will only apply to volume types which
                        support fsGroup based ownership(and permissions). It will
                        have no effect on ephemeral volume types such as: secret,
                        configmaps and emptydir. Valid values are "OnRootMismatch"
                        and "Always". If not specified defaults to "Always".'
                      type: string
                    runAsGroup:
                      description: The GID to run the entrypoint of the container
                        process. Uses runtime default if unset. May also be set in
                        SecurityContext.  If set in both SecurityContext and PodSecurityContext,
                        the value specified in SecurityContext takes precedence for
                        that container.
                      format: int64
                      type: integer
                    runAsNonRoot:
                      description: Indicates that the container must run as a non-root
                        user. If true, the Kubelet will validate the image at runtime
                        to ensure that it does not run as UID 0 (root) and fail to
                        start the container if it does. If unset or false, no such
                        validation will be performed. May also be set in SecurityContext.  If
                        set in both SecurityContext and PodSecurityContext, the value
                        specified in SecurityContext takes precedence.
                      type: boolean
                    runAsUser:
                      description: The UID to run the entrypoint of the container
                        process. Defaults to user specified in image metadata if unspecified.
                        May also be set in SecurityContext.  If set in both SecurityContext
                        and PodSecurityContext, the value specified in SecurityContext
                        takes precedence for that container.
                      format: int64
                      type: integer
                    seLinuxOptions:
                      description: The SELinux context to be applied to all containers.
                        If unspecified, the container runtime will allocate a random
                        SELinux context for each container.  May also be set in SecurityContext.  If
                        set in both SecurityContext and PodSecurityContext, the value
                        specified in SecurityContext takes precedence for that container.
                      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
                    supplementalGroups:
                      description: A list of groups applied to the first process run
                        in each container, in addition to the container's primary
                        GID.  If unspecified, no groups will be added to any container.
                      items:
                        format: int64
                        type: integer
                      type: array
                    sysctls:
                      description: Sysctls hold a list of namespaced sysctls used
                        for the pod. Pods with unsupported sysctls (by the container
                        runtime) might fail to launch.
                      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
                      type: array
                    windowsOptions:
                      description: The Windows specific settings applied to all containers.
                        If unspecified, the options within a container's SecurityContext
                        will be used. If set in both SecurityContext and PodSecurityContext,
                        the value specified in SecurityContext takes precedence.
                      properties:
                        gmsaCredentialSpec:
                          description: GMSACredentialSpec is where the GMSA admission
                            webhook (https://github.com/kubernetes-sigs/windows-gmsa)
                            inlines the contents of the GMSA credential spec named
                            by the GMSACredentialSpecName field.
                          type: string
                        gmsaCredentialSpecName:
                          description: GMSACredentialSpecName is the name of the GMSA
                            credential spec to use.
                          type: string
                        runAsUserName:
                          description: The UserName in Windows to run the entrypoint
                            of the container process. Defaults to the user specified
                            in image metadata if unspecified. May also be set in PodSecurityContext.
                            If set in both SecurityContext and PodSecurityContext,
                            the value specified in SecurityContext takes precedence.
                          type: string
                      type: object
                  type: object
                settings:
                  items:
                    type: string
                  type: array
                startingDeadlineSeconds:
                  description: Optional deadline in seconds for starting the job if
                    it misses scheduled time for any reason.  Missed jobs executions
                    will be counted as failed ones.
                  format: int64
                  type: integer
                successfulJobsHistoryLimit:
                  description: The number of successful finished jobs to retain. This
                    is a pointer to distinguish between explicit zero and not specified.
                    Defaults to 3.
                  format: int32
                  type: integer
                suspend:
                  description: This flag tells the controller to suspend subsequent
                    executions, it does not apply to already started executions.  Defaults
                    to false.
                  type: boolean
                tolerations:
                  description: If specified, the pod's tolerations.
                  items:
                    description: The pod this Toleration is attached to tolerates
                      any taint that matches the triple <key,value,effect> using the
                      matching operator <operator>.
                    properties:
                      effect:
                        description: Effect indicates the taint effect to match. Empty
                          means match all taint effects. When specified, allowed values
                          are NoSchedule, PreferNoSchedule and NoExecute.
                        type: string
                      key:
                        description: Key is the taint key that the toleration applies
                          to. Empty means match all taint keys. If the key is empty,
                          operator must be Exists; this combination means to match
                          all values and all keys.
                        type: string
                      operator:
                        description: Operator represents a key's relationship to the
                          value. Valid operators are Exists and Equal. Defaults to
                          Equal. Exists is equivalent to wildcard for value, so that
                          a pod can tolerate all taints of a particular category.
                        type: string
                      tolerationSeconds:
                        description: TolerationSeconds represents the period of time
                          the toleration (which must be of effect NoExecute, otherwise
                          this field is ignored) tolerates the taint. By default,
                          it is not set, which means tolerate the taint forever (do
                          not evict). Zero and negative values will be treated as
                          0 (evict immediately) by the system.
                        format: int64
                        type: integer
                      value:
                        description: Value is the taint value the toleration matches
                          to. If the operator is Exists, the value should be empty,
                          otherwise just a regular string.
                        type: string
                    type: object
                  type: array
                ttlSecondsAfterFinished:
                  description: ttlSecondsAfterFinished limits the lifetime of a Job
                    that has finished execution (either Complete or Failed). If this
                    field is set, ttlSecondsAfterFinished after the Job finishes,
                    it is eligible to be automatically deleted. When the Job is being
                    deleted, its lifecycle guarantees (e.g. finalizers) will be honored.
                    If this field is unset, the Job won't be automatically deleted.
                    If this field is set to zero, the Job becomes eligible to be deleted
                    immediately after it finishes. This field is alpha-level and is
                    only honored by servers that enable the TTLAfterFinished feature.
                  format: int32
                  type: integer
              required:
              - schedule
              type: object
            jobs:
              properties:
                commonMeta:
                  description: "ObjectMeta meta is a stripped down version of the
                    ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                    with only user defined specs \n This type can be used in an application
                    CRD ObjectMeta implements the Meta interface and can be used to
                    mutates an object"
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: 'Annotations is an unstructured key value map stored
                        with a resource that may be set by external tools to store
                        and retrieve arbitrary metadata. They are not queryable and
                        should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: 'Map of string keys and values that can be used
                        to organize and categorize (scope and select) objects. May
                        match selectors of replication controllers and services. More
                        info: http://kubernetes.io/docs/user-guide/labels'
                      type: object
                    name:
                      description: 'Name must be unique within a namespace. Is required
                        when creating resources, although some resources may allow
                        a client to request the generation of an appropriate name
                        automatically. Name is primarily intended for creation idempotence
                        and configuration definition. Cannot be updated. More info:
                        http://kubernetes.io/docs/user-guide/identifiers#names'
                      type: string
                    namespace:
                      description: "Namespace defines the space within each name must
                        be unique. An empty namespace is equivalent to the \"default\"
                        namespace, but \"default\" is the canonical representation.
                        Not all objects are required to be scoped to a namespace -
                        the value of this field for those objects will be empty. \n
                        Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
                      type: string
                  type: object
                install:
                  properties:
                    activeDeadlineSeconds:
                      description: Optional duration in seconds relative to the startTime
                        that the job may be active before the system tries to terminate
                        it; value must be positive integer
                      format: int64
                      type: integer
                    affinity:
                      description: If specified, the pod's scheduling constraints
                      properties:
                        nodeAffinity:
                          description: Describes node affinity scheduling rules for
                            the pod.
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: The scheduler will prefer to schedule pods
                                to nodes that satisfy the affinity expressions specified
                                by this field, but it may choose a node that violates
                                one or more of the expressions. The node that is most
                                preferred is the one with the greatest sum of weights,
                                i.e. for each node that meets all of the scheduling
                                requirements (resource request, requiredDuringScheduling
                                affinity expressions, etc.), compute a sum by iterating
                                through the elements of this field and adding "weight"
                                to the sum if the node matches the corresponding matchExpressions;
                                the node(s) with the highest sum are the most preferred.
                              items:
                                description: An empty preferred scheduling term matches
                                  all objects with implicit weight 0 (i.e. it's a
                                  no-op). A null preferred scheduling term matches
                                  no objects (i.e. is also a no-op).
                                properties:
                                  preference:
                                    description: A node selector term, associated
                                      with the corresponding weight.
                                    properties:
                                      matchExpressions:
                                        description: A list of node selector requirements
                                          by node's labels.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchFields:
                                        description: A list of node selector requirements
                                          by node's fields.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                    type: object
                                  weight:
                                    description: Weight associated with matching the
                                      corresponding nodeSelectorTerm, in the range
                                      1-100.
                                    format: int32
                                    type: integer
                                required:
                                - preference
                                - weight
                                type: object
                              type: array
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: If the affinity requirements specified
                                by this field are not met at scheduling time, the
                                pod will not be scheduled onto the node. If the affinity
                                requirements specified by this field cease to be met
                                at some point during pod execution (e.g. due to an
                                update), the system may or may not try to eventually
                                evict the pod from its node.
                              properties:
                                nodeSelectorTerms:
                                  description: Required. A list of node selector terms.
                                    The terms are ORed.
                                  items:
                                    description: A null or empty node selector term
                                      matches no objects. The requirements of them
                                      are ANDed. The TopologySelectorTerm type implements
                                      a subset of the NodeSelectorTerm.
                                    properties:
                                      matchExpressions:
                                        description: A list of node selector requirements
                                          by node's labels.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchFields:
                                        description: A list of node selector requirements
                                          by node's fields.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                    type: object
                                  type: array
                              required:
                              - nodeSelectorTerms
                              type: object
                          type: object
                        podAffinity:
                          description: Describes pod affinity scheduling rules (e.g.
                            co-locate this pod in the same node, zone, etc. as some
                            other pod(s)).
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: The scheduler will prefer to schedule pods
                                to nodes that satisfy the affinity expressions specified
                                by this field, but it may choose a node that violates
                                one or more of the expressions. The node that is most
                                preferred is the one with the greatest sum of weights,
                                i.e. for each node that meets all of the scheduling
                                requirements (resource request, requiredDuringScheduling
                                affinity expressions, etc.), compute a sum by iterating
                                through the elements of this field and adding "weight"
                                to the sum if the node has pods which matches the
                                corresponding podAffinityTerm; the node(s) with the
                                highest sum are the most preferred.
                              items:
                                description: The weights of all of the matched WeightedPodAffinityTerm
                                  fields are added per-node to find the most preferred
                                  node(s)
                                properties:
                                  podAffinityTerm:
                                    description: Required. A pod affinity term, associated
                                      with the corresponding weight.
                                    properties:
                                      labelSelector:
                                        description: A label query over a set of resources,
                                          in this case pods.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list
                                              of label selector requirements. The
                                              requirements are ANDed.
                                            items:
                                              description: A label selector requirement
                                                is a selector that contains values,
                                                a key, and an operator that relates
                                                the key and values.
                                              properties:
                                                key:
                                                  description: key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: operator represents
                                                    a key's relationship to a set
                                                    of values. Valid operators are
                                                    In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                values:
                                                  description: values is an array
                                                    of string values. If the operator
                                                    is In or NotIn, the values array
                                                    must be non-empty. If the operator
                                                    is Exists or DoesNotExist, the
                                                    values array must be empty. This
                                                    array is replaced during a strategic
                                                    merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: matchLabels is a map of {key,value}
                                              pairs. A single {key,value} in the matchLabels
                                              map is equivalent to an element of matchExpressions,
                                              whose key field is "key", the operator
                                              is "In", and the values array contains
                                              only "value". The requirements are ANDed.
                                            type: object
                                        type: object
                                      namespaces:
                                        description: namespaces specifies which namespaces
                                          the labelSelector applies to (matches against);
                                          null or empty list means "this pod's namespace"
                                        items:
                                          type: string
                                        type: array
                                      topologyKey:
                                        description: This pod should be co-located
                                          (affinity) or not co-located (anti-affinity)
                                          with the pods matching the labelSelector
                                          in the specified namespaces, where co-located
                                          is defined as running on a node whose value
                                          of the label with key topologyKey matches
                                          that of any node on which any of the selected
                                          pods is running. Empty topologyKey is not
                                          allowed.
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    description: weight associated with matching the
                                      corresponding podAffinityTerm, in the range
                                      1-100.
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: If the affinity requirements specified
                                by this field are not met at scheduling time, the
                                pod will not be scheduled onto the node. If the affinity
                                requirements specified by this field cease to be met
                                at some point during pod execution (e.g. due to a
                                pod label update), the system may or may not try to
                                eventually evict the pod from its node. When there
                                are multiple elements, the lists of nodes corresponding
                                to each podAffinityTerm are intersected, i.e. all
                                terms must be satisfied.
                              items:
                                description: Defines a set of pods (namely those matching
                                  the labelSelector relative to the given namespace(s))
                                  that this pod should be co-located (affinity) or
                                  not co-located (anti-affinity) with, where co-located
                                  is defined as running on a node whose value of the
                                  label with key <topologyKey> matches that of any
                                  node on which a pod of the set of pods is running
                                properties:
                                  labelSelector:
                                    description: A label query over a set of resources,
                                      in this case pods.
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of
                                          label selector requirements. The requirements
                                          are ANDed.
                                        items:
                                          description: A label selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: key is the label key that
                                                the selector applies to.
                                              type: string
                                            operator:
                                              description: operator represents a key's
                                                relationship to a set of values. Valid
                                                operators are In, NotIn, Exists and
                                                DoesNotExist.
                                              type: string
                                            values:
                                              description: values is an array of string
                                                values. If the operator is In or NotIn,
                                                the values array must be non-empty.
                                                If the operator is Exists or DoesNotExist,
                                                the values array must be empty. This
                                                array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: matchLabels is a map of {key,value}
                                          pairs. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                  namespaces:
                                    description: namespaces specifies which namespaces
                                      the labelSelector applies to (matches against);
                                      null or empty list means "this pod's namespace"
                                    items:
                                      type: string
                                    type: array
                                  topologyKey:
                                    description: This pod should be co-located (affinity)
                                      or not co-located (anti-affinity) with the pods
                                      matching the labelSelector in the specified
                                      namespaces, where co-located is defined as running
                                      on a node whose value of the label with key
                                      topologyKey matches that of any node on which
                                      any of the selected pods is running. Empty topologyKey
                                      is not allowed.
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                          type: object
                        podAntiAffinity:
                          description: Describes pod anti-affinity scheduling rules
                            (e.g. avoid putting this pod in the same node, zone, etc.
                            as some other pod(s)).
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: The scheduler will prefer to schedule pods
                                to nodes that satisfy the anti-affinity expressions
                                specified by this field, but it may choose a node
                                that violates one or more of the expressions. The
                                node that is most preferred is the one with the greatest
                                sum of weights, i.e. for each node that meets all
                                of the scheduling requirements (resource request,
                                requiredDuringScheduling anti-affinity expressions,
                                etc.), compute a sum by iterating through the elements
                                of this field and adding "weight" to the sum if the
                                node has pods which matches the corresponding podAffinityTerm;
                                the node(s) with the highest sum are the most preferred.
                              items:
                                description: The weights of all of the matched WeightedPodAffinityTerm
                                  fields are added per-node to find the most preferred
                                  node(s)
                                properties:
                                  podAffinityTerm:
                                    description: Required. A pod affinity term, associated
                                      with the corresponding weight.
                                    properties:
                                      labelSelector:
                                        description: A label query over a set of resources,
                                          in this case pods.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list
                                              of label selector requirements. The
                                              requirements are ANDed.
                                            items:
                                              description: A label selector requirement
                                                is a selector that contains values,
                                                a key, and an operator that relates
                                                the key and values.
                                              properties:
                                                key:
                                                  description: key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: operator represents
                                                    a key's relationship to a set
                                                    of values. Valid operators are
                                                    In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                values:
                                                  description: values is an array
                                                    of string values. If the operator
                                                    is In or NotIn, the values array
                                                    must be non-empty. If the operator
                                                    is Exists or DoesNotExist, the
                                                    values array must be empty. This
                                                    array is replaced during a strategic
                                                    merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: matchLabels is a map of {key,value}
                                              pairs. A single {key,value} in the matchLabels
                                              map is equivalent to an element of matchExpressions,
                                              whose key field is "key", the operator
                                              is "In", and the values array contains
                                              only "value". The requirements are ANDed.
                                            type: object
                                        type: object
                                      namespaces:
                                        description: namespaces specifies which namespaces
                                          the labelSelector applies to (matches against);
                                          null or empty list means "this pod's namespace"
                                        items:
                                          type: string
                                        type: array
                                      topologyKey:
                                        description: This pod should be co-located
                                          (affinity) or not co-located (anti-affinity)
                                          with the pods matching the labelSelector
                                          in the specified namespaces, where co-located
                                          is defined as running on a node whose value
                                          of the label with key topologyKey matches
                                          that of any node on which any of the selected
                                          pods is running. Empty topologyKey is not
                                          allowed.
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    description: weight associated with matching the
                                      corresponding podAffinityTerm, in the range
                                      1-100.
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: If the anti-affinity requirements specified
                                by this field are not met at scheduling time, the
                                pod will not be scheduled onto the node. If the anti-affinity
                                requirements specified by this field cease to be met
                                at some point during pod execution (e.g. due to a
                                pod label update), the system may or may not try to
                                eventually evict the pod from its node. When there
                                are multiple elements, the lists of nodes corresponding
                                to each podAffinityTerm are intersected, i.e. all
                                terms must be satisfied.
                              items:
                                description: Defines a set of pods (namely those matching
                                  the labelSelector relative to the given namespace(s))
                                  that this pod should be co-located (affinity) or
                                  not co-located (anti-affinity) with, where co-located
                                  is defined as running on a node whose value of the
                                  label with key <topologyKey> matches that of any
                                  node on which a pod of the set of pods is running
                                properties:
                                  labelSelector:
                                    description: A label query over a set of resources,
                                      in this case pods.
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of
                                          label selector requirements. The requirements
                                          are ANDed.
                                        items:
                                          description: A label selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: key is the label key that
                                                the selector applies to.
                                              type: string
                                            operator:
                                              description: operator represents a key's
                                                relationship to a set of values. Valid
                                                operators are In, NotIn, Exists and
                                                DoesNotExist.
                                              type: string
                                            values:
                                              description: values is an array of string
                                                values. If the operator is In or NotIn,
                                                the values array must be non-empty.
                                                If the operator is Exists or DoesNotExist,
                                                the values array must be empty. This
                                                array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: matchLabels is a map of {key,value}
                                          pairs. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                  namespaces:
                                    description: namespaces specifies which namespaces
                                      the labelSelector applies to (matches against);
                                      null or empty list means "this pod's namespace"
                                    items:
                                      type: string
                                    type: array
                                  topologyKey:
                                    description: This pod should be co-located (affinity)
                                      or not co-located (anti-affinity) with the pods
                                      matching the labelSelector in the specified
                                      namespaces, where co-located is defined as running
                                      on a node whose value of the label with key
                                      topologyKey matches that of any node on which
                                      any of the selected pods is running. Empty topologyKey
                                      is not allowed.
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                          type: object
                      type: object
                    args:
                      description: 'Arguments to the entrypoint. The docker image''s
                        CMD is used if this is not provided. Variable references $(VAR_NAME)
                        are expanded using the container''s environment. If a variable
                        cannot be resolved, the reference in the input string will
                        be unchanged. The $(VAR_NAME) syntax can be escaped with a
                        double $$, ie: $$(VAR_NAME). Escaped references will never
                        be expanded, regardless of whether the variable exists or
                        not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                      items:
                        type: string
                      type: array
                    backoffLimit:
                      description: Optional number of retries before marking this
                        job failed. Defaults to 6
                      format: int32
                      type: integer
                    command:
                      description: 'Entrypoint array. Not executed within a shell.
                        The docker image''s ENTRYPOINT is used if this is not provided.
                        Variable references $(VAR_NAME) are expanded using the container''s
                        environment. If a variable cannot be resolved, the reference
                        in the input string will be unchanged. The $(VAR_NAME) syntax
                        can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
                        references will never be expanded, regardless of whether the
                        variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                      items:
                        type: string
                      type: array
                    completions:
                      description: Specifies the desired number of successfully finished
                        pods the job should be run with.  Setting to nil means that
                        the success of any pod signals the success of all pods, and
                        allows parallelism to have any positive value.  Setting to
                        1 means that parallelism is limited to 1 and the success of
                        that pod signals the success of the job.
                      format: int32
                      type: integer
                    extraContainers:
                      description: List of containers belonging to the pod. Containers
                        cannot currently be added or removed. There must be at least
                        one container in a Pod. Cannot be updated.
                      items:
                        description: "Container is the specification of the desired
                          behavior of the Container. It is a stripped down version
                          of https://godoc.org/k8s.io/api/core/v1#Container with only
                          user definied specs \n Parameters are used to define how
                          settings are passed on to the container."
                        properties:
                          args:
                            description: 'Arguments to the entrypoint. The docker
                              image''s CMD is used if this is not provided. Variable
                              references $(VAR_NAME) are expanded using the container''s
                              environment. If a variable cannot be resolved, the reference
                              in the input string will be unchanged. The $(VAR_NAME)
                              syntax can be escaped with a double $$, ie: $$(VAR_NAME).
                              Escaped references will never be expanded, regardless
                              of whether the variable exists or not. Cannot be updated.
                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          command:
                            description: 'Entrypoint array. Not executed within a
                              shell. The docker image''s ENTRYPOINT is used if this
                              is not provided. Variable references $(VAR_NAME) are
                              expanded using the container''s environment. If a variable
                              cannot be resolved, the reference in the input string
                              will be unchanged. The $(VAR_NAME) syntax can be escaped
                              with a double $$, ie: $$(VAR_NAME). Escaped references
                              will never be expanded, regardless of whether the variable
                              exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          image:
                            description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                              This field is optional to allow higher level config
                              management to default or override container images in
                              workload controllers like Deployments and StatefulSets.'
                            type: string
                          imagePullPolicy:
                            description: 'Image pull policy. One of Always, Never,
                              IfNotPresent. Defaults to Always if :latest tag is specified,
                              or IfNotPresent otherwise. Cannot be updated. More info:
                              https://kubernetes.io/docs/concepts/containers/images#updating-images'
                            type: string
                          inline:
                            description: Periodic probe for container health
                            properties:
                              livenessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              readinessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                            type: object
                          name:
                            description: Name of the container specified as a DNS_LABEL.
                              Each container in a pod must have a unique name (DNS_LABEL).
                              Cannot be updated.
                            type: string
                          parameters:
                            description: SettingsSpec defines a list of parameters
                              and references to resources from which those parameters
                              can be fetched Only secrets and configmaps in the same
                              namespace are supported as references
                            properties:
                              parameters:
                                description: Parameters is a list of parameters
                                items:
                                  properties:
                                    fromKey:
                                      description: Key to select from the source
                                      type: string
                                    generate:
                                      description: Generate if specified defines how
                                        the parameter value will be generated
                                      type: string
                                    key:
                                      description: "Key of the parameter, can be mounted
                                        as as an environment variable, used in template
                                        or as the key in the key:value data fied in
                                        the configmap or secret \n Key must be unique"
                                      type: string
                                    mountFrom:
                                      description: MountPath specifies where the parameter
                                        will be mounted as a file
                                      properties:
                                        path:
                                          type: string
                                        subPath:
                                          type: string
                                      type: object
                                    mountType:
                                      description: MountType defined how the parameter
                                        will be mounted in the pod Defaults to EnvFile
                                      type: string
                                    ref:
                                      description: Name of the referent.
                                      type: string
                                    refType:
                                      description: Type of the parameter's source
                                        Defaults to the parameter type if not specified
                                      type: string
                                    type:
                                      description: Type specifies specifies the parameter
                                        type
                                      type: string
                                    value:
                                      description: Value of the paramater, should
                                        not contain secret values If it is a template,
                                        ParameterType should be template
                                      type: string
                                  type: object
                                type: array
                              sources:
                                description: Sources is a list of sources for the
                                  parameters from kubernetes resources in the same
                                  namespace Sources []Source `json:"sources,omitempty"`
                                items:
                                  properties:
                                    ref:
                                      description: Ref is the name of a resource in
                                        the same namespace
                                      type: string
                                    type:
                                      description: Type is the type of the resource
                                        Only Secrets and ConfigMaps are supported
                                      type: string
                                  type: object
                                type: array
                            type: object
                          ports:
                            description: List of ports to expose from the container.
                              Exposing a port here gives the system additional information
                              about the network connections a container uses, but
                              is primarily informational. Not specifying a port here
                              DOES NOT prevent that port from being exposed. Any port
                              which is listening on the default "0.0.0.0" address
                              inside a container will be accessible from the network.
                              Cannot be updated.
                            items:
                              description: ContainerPort represents a network port
                                in a single container.
                              properties:
                                containerPort:
                                  description: Number of port to expose on the pod's
                                    IP address. This must be a valid port number,
                                    0 < x < 65536.
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port
                                    to.
                                  type: string
                                hostPort:
                                  description: Number of port to expose on the host.
                                    If specified, this must be a valid port number,
                                    0 < x < 65536. If HostNetwork is specified, this
                                    must match ContainerPort. Most containers do not
                                    need this.
                                  format: int32
                                  type: integer
                                name:
                                  description: If specified, this must be an IANA_SVC_NAME
                                    and unique within the pod. Each named port in
                                    a pod must have a unique name. Name for the port
                                    that can be referred to by services.
                                  type: string
                                protocol:
                                  description: Protocol for port. Must be UDP, TCP,
                                    or SCTP. Defaults to "TCP".
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                        type: object
                      type: array
                    image:
                      description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                        This field is optional to allow higher level config management
                        to default or override container images in workload controllers
                        like Deployments and StatefulSets.'
                      type: string
                    imagePullPolicy:
                      description: 'Image pull policy. One of Always, Never, IfNotPresent.
                        Defaults to Always if :latest tag is specified, or IfNotPresent
                        otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                      type: string
                    imagePullSecrets:
                      description: 'ImagePullSecrets is an optional list of references
                        to secrets in the same namespace to use for pulling any of
                        the images used by this PodSpec. If specified, these secrets
                        will be passed to individual puller implementations for them
                        to use. For example, in the case of docker, only DockerConfig
                        type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
                      items:
                        description: LocalObjectReference contains enough information
                          to let you locate the referenced object inside the same
                          namespace.
                        properties:
                          name:
                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                              TODO: Add other useful fields. apiVersion, kind, uid?'
                            type: string
                        type: object
                      type: array
                    initContainers:
                      description: 'List of initialization containers belonging to
                        the pod. Init containers are executed in order prior to containers
                        being started. If any init container fails, the pod is considered
                        to have failed and is handled according to its restartPolicy.
                        The name for an init container or normal container must be
                        unique among all containers. Init containers may not have
                        Lifecycle actions, Readiness probes, Liveness probes, or Startup
                        probes. The resourceRequirements of an init container are
                        taken into account during scheduling by finding the highest
                        request/limit for each resource type, and then using the max
                        of of that value or the sum of the normal containers. Limits
                        are applied to init containers in a similar fashion. Init
                        containers cannot currently be added or removed. Cannot be
                        updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/'
                      items:
                        description: "Container is the specification of the desired
                          behavior of the Container. It is a stripped down version
                          of https://godoc.org/k8s.io/api/core/v1#Container with only
                          user definied specs \n Parameters are used to define how
                          settings are passed on to the container."
                        properties:
                          args:
                            description: 'Arguments to the entrypoint. The docker
                              image''s CMD is used if this is not provided. Variable
                              references $(VAR_NAME) are expanded using the container''s
                              environment. If a variable cannot be resolved, the reference
                              in the input string will be unchanged. The $(VAR_NAME)
                              syntax can be escaped with a double $$, ie: $$(VAR_NAME).
                              Escaped references will never be expanded, regardless
                              of whether the variable exists or not. Cannot be updated.
                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          command:
                            description: 'Entrypoint array. Not executed within a
                              shell. The docker image''s ENTRYPOINT is used if this
                              is not provided. Variable references $(VAR_NAME) are
                              expanded using the container''s environment. If a variable
                              cannot be resolved, the reference in the input string
                              will be unchanged. The $(VAR_NAME) syntax can be escaped
                              with a double $$, ie: $$(VAR_NAME). Escaped references
                              will never be expanded, regardless of whether the variable
                              exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          image:
                            description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                              This field is optional to allow higher level config
                              management to default or override container images in
                              workload controllers like Deployments and StatefulSets.'
                            type: string
                          imagePullPolicy:
                            description: 'Image pull policy. One of Always, Never,
                              IfNotPresent. Defaults to Always if :latest tag is specified,
                              or IfNotPresent otherwise. Cannot be updated. More info:
                              https://kubernetes.io/docs/concepts/containers/images#updating-images'
                            type: string
                          inline:
                            description: Periodic probe for container health
                            properties:
                              livenessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              readinessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                            type: object
                          name:
                            description: Name of the container specified as a DNS_LABEL.
                              Each container in a pod must have a unique name (DNS_LABEL).
                              Cannot be updated.
                            type: string
                          parameters:
                            description: SettingsSpec defines a list of parameters
                              and references to resources from which those parameters
                              can be fetched Only secrets and configmaps in the same
                              namespace are supported as references
                            properties:
                              parameters:
                                description: Parameters is a list of parameters
                                items:
                                  properties:
                                    fromKey:
                                      description: Key to select from the source
                                      type: string
                                    generate:
                                      description: Generate if specified defines how
                                        the parameter value will be generated
                                      type: string
                                    key:
                                      description: "Key of the parameter, can be mounted
                                        as as an environment variable, used in template
                                        or as the key in the key:value data fied in
                                        the configmap or secret \n Key must be unique"
                                      type: string
                                    mountFrom:
                                      description: MountPath specifies where the parameter
                                        will be mounted as a file
                                      properties:
                                        path:
                                          type: string
                                        subPath:
                                          type: string
                                      type: object
                                    mountType:
                                      description: MountType defined how the parameter
                                        will be mounted in the pod Defaults to EnvFile
                                      type: string
                                    ref:
                                      description: Name of the referent.
                                      type: string
                                    refType:
                                      description: Type of the parameter's source
                                        Defaults to the parameter type if not specified
                                      type: string
                                    type:
                                      description: Type specifies specifies the parameter
                                        type
                                      type: string
                                    value:
                                      description: Value of the paramater, should
                                        not contain secret values If it is a template,
                                        ParameterType should be template
                                      type: string
                                  type: object
                                type: array
                              sources:
                                description: Sources is a list of sources for the
                                  parameters from kubernetes resources in the same
                                  namespace Sources []Source `json:"sources,omitempty"`
                                items:
                                  properties:
                                    ref:
                                      description: Ref is the name of a resource in
                                        the same namespace
                                      type: string
                                    type:
                                      description: Type is the type of the resource
                                        Only Secrets and ConfigMaps are supported
                                      type: string
                                  type: object
                                type: array
                            type: object
                          ports:
                            description: List of ports to expose from the container.
                              Exposing a port here gives the system additional information
                              about the network connections a container uses, but
                              is primarily informational. Not specifying a port here
                              DOES NOT prevent that port from being exposed. Any port
                              which is listening on the default "0.0.0.0" address
                              inside a container will be accessible from the network.
                              Cannot be updated.
                            items:
                              description: ContainerPort represents a network port
                                in a single container.
                              properties:
                                containerPort:
                                  description: Number of port to expose on the pod's
                                    IP address. This must be a valid port number,
                                    0 < x < 65536.
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port
                                    to.
                                  type: string
                                hostPort:
                                  description: Number of port to expose on the host.
                                    If specified, this must be a valid port number,
                                    0 < x < 65536. If HostNetwork is specified, this
                                    must match ContainerPort. Most containers do not
                                    need this.
                                  format: int32
                                  type: integer
                                name:
                                  description: If specified, this must be an IANA_SVC_NAME
                                    and unique within the pod. Each named port in
                                    a pod must have a unique name. Name for the port
                                    that can be referred to by services.
                                  type: string
                                protocol:
                                  description: Protocol for port. Must be UDP, TCP,
                                    or SCTP. Defaults to "TCP".
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                        type: object
                      type: array
                    inline:
                      description: Periodic probe for container health
                      properties:
                        livenessProbe:
                          description: 'Periodic probe of container liveness. Container
                            will be restarted if the probe fails. Cannot be updated.
                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: One and only one of the following should
                                be specified. Exec specifies the action to take.
                              properties:
                                command:
                                  description: Command is the command line to execute
                                    inside the container, the working directory for
                                    the command  is root ('/') in the container's
                                    filesystem. The command is simply exec'd, it is
                                    not run inside a shell, so traditional shell instructions
                                    ('|', etc) won't work. To use a shell, you need
                                    to explicitly call out to that shell. Exit status
                                    of 0 is treated as live/healthy and non-zero is
                                    unhealthy.
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              description: Minimum consecutive failures for the probe
                                to be considered failed after having succeeded. Defaults
                                to 3. Minimum value is 1.
                              format: int32
                              type: integer
                            httpGet:
                              description: HTTPGet specifies the http request to perform.
                              properties:
                                host:
                                  description: Host name to connect to, defaults to
                                    the pod IP. You probably want to set "Host" in
                                    httpHeaders instead.
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request.
                                    HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header
                                      to be used in HTTP probes
                                    properties:
                                      name:
                                        description: The header field name
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Name or number of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: Scheme to use for connecting to the
                                    host. Defaults to HTTP.
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container
                                has started before liveness probes are initiated.
                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: How often (in seconds) to perform the probe.
                                Default to 10 seconds. Minimum value is 1.
                              format: int32
                              type: integer
                            successThreshold:
                              description: Minimum consecutive successes for the probe
                                to be considered successful after having failed. Defaults
                                to 1. Must be 1 for liveness and startup. Minimum
                                value is 1.
                              format: int32
                              type: integer
                            tcpSocket:
                              description: 'TCPSocket specifies an action involving
                                a TCP port. TCP hooks not yet supported TODO: implement
                                a realistic TCP lifecycle hook'
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to,
                                    defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Number or name of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe
                                times out. Defaults to 1 second. Minimum value is
                                1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        readinessProbe:
                          description: 'Periodic probe of container liveness. Container
                            will be restarted if the probe fails. Cannot be updated.
                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: One and only one of the following should
                                be specified. Exec specifies the action to take.
                              properties:
                                command:
                                  description: Command is the command line to execute
                                    inside the container, the working directory for
                                    the command  is root ('/') in the container's
                                    filesystem. The command is simply exec'd, it is
                                    not run inside a shell, so traditional shell instructions
                                    ('|', etc) won't work. To use a shell, you need
                                    to explicitly call out to that shell. Exit status
                                    of 0 is treated as live/healthy and non-zero is
                                    unhealthy.
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              description: Minimum consecutive failures for the probe
                                to be considered failed after having succeeded. Defaults
                                to 3. Minimum value is 1.
                              format: int32
                              type: integer
                            httpGet:
                              description: HTTPGet specifies the http request to perform.
                              properties:
                                host:
                                  description: Host name to connect to, defaults to
                                    the pod IP. You probably want to set "Host" in
                                    httpHeaders instead.
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request.
                                    HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header
                                      to be used in HTTP probes
                                    properties:
                                      name:
                                        description: The header field name
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Name or number of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: Scheme to use for connecting to the
                                    host. Defaults to HTTP.
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container
                                has started before liveness probes are initiated.
                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: How often (in seconds) to perform the probe.
                                Default to 10 seconds. Minimum value is 1.
                              format: int32
                              type: integer
                            successThreshold:
                              description: Minimum consecutive successes for the probe
                                to be considered successful after having failed. Defaults
                                to 1. Must be 1 for liveness and startup. Minimum
                                value is 1.
                              format: int32
                              type: integer
                            tcpSocket:
                              description: 'TCPSocket specifies an action involving
                                a TCP port. TCP hooks not yet supported TODO: implement
                                a realistic TCP lifecycle hook'
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to,
                                    defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Number or name of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe
                                times out. Defaults to 1 second. Minimum value is
                                1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                      type: object
                    meta:
                      description: "ObjectMeta meta is a stripped down version of
                        the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                        with only user defined specs \n This type can be used in an
                        application CRD ObjectMeta implements the Meta interface and
                        can be used to mutates an object"
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: 'Annotations is an unstructured key value map
                            stored with a resource that may be set by external tools
                            to store and retrieve arbitrary metadata. They are not
                            queryable and should be preserved when modifying objects.
                            More info: http://kubernetes.io/docs/user-guide/annotations'
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: 'Map of string keys and values that can be
                            used to organize and categorize (scope and select) objects.
                            May match selectors of replication controllers and services.
                            More info: http://kubernetes.io/docs/user-guide/labels'
                          type: object
                        name:
                          description: 'Name must be unique within a namespace. Is
                            required when creating resources, although some resources
                            may allow a client to request the generation of an appropriate
                            name automatically. Name is primarily intended for creation
                            idempotence and configuration definition. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                          type: string
                        namespace:
                          description: "Namespace defines the space within each name
                            must be unique. An empty namespace is equivalent to the
                            \"default\" namespace, but \"default\" is the canonical
                            representation. Not all objects are required to be scoped
                            to a namespace - the value of this field for those objects
                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/namespaces"
                          type: string
                      type: object
                    name:
                      description: Name of the container specified as a DNS_LABEL.
                        Each container in a pod must have a unique name (DNS_LABEL).
                        Cannot be updated.
                      type: string
                    nodeSelector:
                      additionalProperties:
                        type: string
                      description: 'NodeSelector is a selector which must be true
                        for the pod to fit on a node. Selector which must match a
                        node''s labels for the pod to be scheduled on that node. More
                        info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
                      type: object
                    parallelism:
                      description: Specifies the maximum desired number of pods the
                        job should run at any given time. The actual number of pods
                        running in steady state will be less than this number when
                        ((.spec.completions - .status.successful) < .spec.parallelism),
                        i.e. when the work left to do is less than max parallelism.
                      format: int32
                      type: integer
                    parameters:
                      description: SettingsSpec defines a list of parameters and references
                        to resources from which those parameters can be fetched Only
                        secrets and configmaps in the same namespace are supported
                        as references
                      properties:
                        parameters:
                          description: Parameters is a list of parameters
                          items:
                            properties:
                              fromKey:
                                description: Key to select from the source
                                type: string
                              generate:
                                description: Generate if specified defines how the
                                  parameter value will be generated
                                type: string
                              key:
                                description: "Key of the parameter, can be mounted
                                  as as an environment variable, used in template
                                  or as the key in the key:value data fied in the
                                  configmap or secret \n Key must be unique"
                                type: string
                              mountFrom:
                                description: MountPath specifies where the parameter
                                  will be mounted as a file
                                properties:
                                  path:
                                    type: string
                                  subPath:
                                    type: string
                                type: object
                              mountType:
                                description: MountType defined how the parameter will
                                  be mounted in the pod Defaults to EnvFile
                                type: string
                              ref:
                                description: Name of the referent.
                                type: string
                              refType:
                                description: Type of the parameter's source Defaults
                                  to the parameter type if not specified
                                type: string
                              type:
                                description: Type specifies specifies the parameter
                                  type
                                type: string
                              value:
                                description: Value of the paramater, should not contain
                                  secret values If it is a template, ParameterType
                                  should be template
                                type: string
                            type: object
                          type: array
                        sources:
                          description: Sources is a list of sources for the parameters
                            from kubernetes resources in the same namespace Sources
                            []Source `json:"sources,omitempty"`
                          items:
                            properties:
                              ref:
                                description: Ref is the name of a resource in the
                                  same namespace
                                type: string
                              type:
                                description: Type is the type of the resource Only
                                  Secrets and ConfigMaps are supported
                                type: string
                            type: object
                          type: array
                      type: object
                    ports:
                      description: List of ports to expose from the container. Exposing
                        a port here gives the system additional information about
                        the network connections a container uses, but is primarily
                        informational. Not specifying a port here DOES NOT prevent
                        that port from being exposed. Any port which is listening
                        on the default "0.0.0.0" address inside a container will be
                        accessible from the network. Cannot be updated.
                      items:
                        description: ContainerPort represents a network port in a
                          single container.
                        properties:
                          containerPort:
                            description: Number of port to expose on the pod's IP
                              address. This must be a valid port number, 0 < x < 65536.
                            format: int32
                            type: integer
                          hostIP:
                            description: What host IP to bind the external port to.
                            type: string
                          hostPort:
                            description: Number of port to expose on the host. If
                              specified, this must be a valid port number, 0 < x <
                              65536. If HostNetwork is specified, this must match
                              ContainerPort. Most containers do not need this.
                            format: int32
                            type: integer
                          name:
                            description: If specified, this must be an IANA_SVC_NAME
                              and unique within the pod. Each named port in a pod
                              must have a unique name. Name for the port that can
                              be referred to by services.
                            type: string
                          protocol:
                            description: Protocol for port. Must be UDP, TCP, or SCTP.
                              Defaults to "TCP".
                            type: string
                        required:
                        - containerPort
                        type: object
                      type: array
                    resources:
                      description: ResourceRequirements describes the compute resource
                        requirements.
                      properties:
                        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. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                          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. If Requests is omitted for a container,
                            it defaults to Limits if that is explicitly specified,
                            otherwise to an implementation-defined value. More info:
                            https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                          type: object
                      type: object
                    restartPolicy:
                      description: 'Restart policy for all containers within the pod.
                        One of Always, OnFailure, Never. Default to Always. More info:
                        https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy'
                      type: string
                    securityContext:
                      description: 'SecurityContext holds pod-level security attributes
                        and common container settings. Optional: Defaults to empty.  See
                        type description for default values of each field.'
                      properties:
                        fsGroup:
                          description: "A special supplemental group that applies
                            to all containers in a pod. Some volume types allow the
                            Kubelet to change the ownership of that volume to be owned
                            by the pod: \n 1. The owning GID will be the FSGroup 2.
                            The setgid bit is set (new files created in the volume
                            will be owned by FSGroup) 3. The permission bits are OR'd
                            with rw-rw---- \n If unset, the Kubelet will not modify
                            the ownership and permissions of any volume."
                          format: int64
                          type: integer
                        fsGroupChangePolicy:
                          description: 'fsGroupChangePolicy defines behavior of changing
                            ownership and permission of the volume before being exposed
                            inside Pod. This field will only apply to volume types
                            which support fsGroup based ownership(and permissions).
                            It will have no effect on ephemeral volume types such
                            as: secret, configmaps and emptydir. Valid values are
                            "OnRootMismatch" and "Always". If not specified defaults
                            to "Always".'
                          type: string
                        runAsGroup:
                          description: The GID to run the entrypoint of the container
                            process. Uses runtime default if unset. May also be set
                            in SecurityContext.  If set in both SecurityContext and
                            PodSecurityContext, the value specified in SecurityContext
                            takes precedence for that container.
                          format: int64
                          type: integer
                        runAsNonRoot:
                          description: Indicates that the container must run as a
                            non-root user. If true, the Kubelet will validate the
                            image at runtime to ensure that it does not run as UID
                            0 (root) and fail to start the container if it does. If
                            unset or false, no such validation will be performed.
                            May also be set in SecurityContext.  If set in both SecurityContext
                            and PodSecurityContext, the value specified in SecurityContext
                            takes precedence.
                          type: boolean
                        runAsUser:
                          description: The UID to run the entrypoint of the container
                            process. Defaults to user specified in image metadata
                            if unspecified. May also be set in SecurityContext.  If
                            set in both SecurityContext and PodSecurityContext, the
                            value specified in SecurityContext takes precedence for
                            that container.
                          format: int64
                          type: integer
                        seLinuxOptions:
                          description: The SELinux context to be applied to all containers.
                            If unspecified, the container runtime will allocate a
                            random SELinux context for each container.  May also be
                            set in SecurityContext.  If set in both SecurityContext
                            and PodSecurityContext, the value specified in SecurityContext
                            takes precedence for that container.
                          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
                        supplementalGroups:
                          description: A list of groups applied to the first process
                            run in each container, in addition to the container's
                            primary GID.  If unspecified, no groups will be added
                            to any container.
                          items:
                            format: int64
                            type: integer
                          type: array
                        sysctls:
                          description: Sysctls hold a list of namespaced sysctls used
                            for the pod. Pods with unsupported sysctls (by the container
                            runtime) might fail to launch.
                          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
                          type: array
                        windowsOptions:
                          description: The Windows specific settings applied to all
                            containers. If unspecified, the options within a container's
                            SecurityContext will be used. If set in both SecurityContext
                            and PodSecurityContext, the value specified in SecurityContext
                            takes precedence.
                          properties:
                            gmsaCredentialSpec:
                              description: GMSACredentialSpec is where the GMSA admission
                                webhook (https://github.com/kubernetes-sigs/windows-gmsa)
                                inlines the contents of the GMSA credential spec named
                                by the GMSACredentialSpecName field.
                              type: string
                            gmsaCredentialSpecName:
                              description: GMSACredentialSpecName is the name of the
                                GMSA credential spec to use.
                              type: string
                            runAsUserName:
                              description: The UserName in Windows to run the entrypoint
                                of the container process. Defaults to the user specified
                                in image metadata if unspecified. May also be set
                                in PodSecurityContext. If set in both SecurityContext
                                and PodSecurityContext, the value specified in SecurityContext
                                takes precedence.
                              type: string
                          type: object
                      type: object
                    settings:
                      items:
                        type: string
                      type: array
                    tolerations:
                      description: If specified, the pod's tolerations.
                      items:
                        description: The pod this Toleration is attached to tolerates
                          any taint that matches the triple <key,value,effect> using
                          the matching operator <operator>.
                        properties:
                          effect:
                            description: Effect indicates the taint effect to match.
                              Empty means match all taint effects. When specified,
                              allowed values are NoSchedule, PreferNoSchedule and
                              NoExecute.
                            type: string
                          key:
                            description: Key is the taint key that the toleration
                              applies to. Empty means match all taint keys. If the
                              key is empty, operator must be Exists; this combination
                              means to match all values and all keys.
                            type: string
                          operator:
                            description: Operator represents a key's relationship
                              to the value. Valid operators are Exists and Equal.
                              Defaults to Equal. Exists is equivalent to wildcard
                              for value, so that a pod can tolerate all taints of
                              a particular category.
                            type: string
                          tolerationSeconds:
                            description: TolerationSeconds represents the period of
                              time the toleration (which must be of effect NoExecute,
                              otherwise this field is ignored) tolerates the taint.
                              By default, it is not set, which means tolerate the
                              taint forever (do not evict). Zero and negative values
                              will be treated as 0 (evict immediately) by the system.
                            format: int64
                            type: integer
                          value:
                            description: Value is the taint value the toleration matches
                              to. If the operator is Exists, the value should be empty,
                              otherwise just a regular string.
                            type: string
                        type: object
                      type: array
                    ttlSecondsAfterFinished:
                      description: ttlSecondsAfterFinished limits the lifetime of
                        a Job that has finished execution (either Complete or Failed).
                        If this field is set, ttlSecondsAfterFinished after the Job
                        finishes, it is eligible to be automatically deleted. When
                        the Job is being deleted, its lifecycle guarantees (e.g. finalizers)
                        will be honored. If this field is unset, the Job won't be
                        automatically deleted. If this field is set to zero, the Job
                        becomes eligible to be deleted immediately after it finishes.
                        This field is alpha-level and is only honored by servers that
                        enable the TTLAfterFinished feature.
                      format: int32
                      type: integer
                  type: object
                upgrade:
                  properties:
                    activeDeadlineSeconds:
                      description: Optional duration in seconds relative to the startTime
                        that the job may be active before the system tries to terminate
                        it; value must be positive integer
                      format: int64
                      type: integer
                    affinity:
                      description: If specified, the pod's scheduling constraints
                      properties:
                        nodeAffinity:
                          description: Describes node affinity scheduling rules for
                            the pod.
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: The scheduler will prefer to schedule pods
                                to nodes that satisfy the affinity expressions specified
                                by this field, but it may choose a node that violates
                                one or more of the expressions. The node that is most
                                preferred is the one with the greatest sum of weights,
                                i.e. for each node that meets all of the scheduling
                                requirements (resource request, requiredDuringScheduling
                                affinity expressions, etc.), compute a sum by iterating
                                through the elements of this field and adding "weight"
                                to the sum if the node matches the corresponding matchExpressions;
                                the node(s) with the highest sum are the most preferred.
                              items:
                                description: An empty preferred scheduling term matches
                                  all objects with implicit weight 0 (i.e. it's a
                                  no-op). A null preferred scheduling term matches
                                  no objects (i.e. is also a no-op).
                                properties:
                                  preference:
                                    description: A node selector term, associated
                                      with the corresponding weight.
                                    properties:
                                      matchExpressions:
                                        description: A list of node selector requirements
                                          by node's labels.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchFields:
                                        description: A list of node selector requirements
                                          by node's fields.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                    type: object
                                  weight:
                                    description: Weight associated with matching the
                                      corresponding nodeSelectorTerm, in the range
                                      1-100.
                                    format: int32
                                    type: integer
                                required:
                                - preference
                                - weight
                                type: object
                              type: array
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: If the affinity requirements specified
                                by this field are not met at scheduling time, the
                                pod will not be scheduled onto the node. If the affinity
                                requirements specified by this field cease to be met
                                at some point during pod execution (e.g. due to an
                                update), the system may or may not try to eventually
                                evict the pod from its node.
                              properties:
                                nodeSelectorTerms:
                                  description: Required. A list of node selector terms.
                                    The terms are ORed.
                                  items:
                                    description: A null or empty node selector term
                                      matches no objects. The requirements of them
                                      are ANDed. The TopologySelectorTerm type implements
                                      a subset of the NodeSelectorTerm.
                                    properties:
                                      matchExpressions:
                                        description: A list of node selector requirements
                                          by node's labels.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchFields:
                                        description: A list of node selector requirements
                                          by node's fields.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                    type: object
                                  type: array
                              required:
                              - nodeSelectorTerms
                              type: object
                          type: object
                        podAffinity:
                          description: Describes pod affinity scheduling rules (e.g.
                            co-locate this pod in the same node, zone, etc. as some
                            other pod(s)).
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: The scheduler will prefer to schedule pods
                                to nodes that satisfy the affinity expressions specified
                                by this field, but it may choose a node that violates
                                one or more of the expressions. The node that is most
                                preferred is the one with the greatest sum of weights,
                                i.e. for each node that meets all of the scheduling
                                requirements (resource request, requiredDuringScheduling
                                affinity expressions, etc.), compute a sum by iterating
                                through the elements of this field and adding "weight"
                                to the sum if the node has pods which matches the
                                corresponding podAffinityTerm; the node(s) with the
                                highest sum are the most preferred.
                              items:
                                description: The weights of all of the matched WeightedPodAffinityTerm
                                  fields are added per-node to find the most preferred
                                  node(s)
                                properties:
                                  podAffinityTerm:
                                    description: Required. A pod affinity term, associated
                                      with the corresponding weight.
                                    properties:
                                      labelSelector:
                                        description: A label query over a set of resources,
                                          in this case pods.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list
                                              of label selector requirements. The
                                              requirements are ANDed.
                                            items:
                                              description: A label selector requirement
                                                is a selector that contains values,
                                                a key, and an operator that relates
                                                the key and values.
                                              properties:
                                                key:
                                                  description: key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: operator represents
                                                    a key's relationship to a set
                                                    of values. Valid operators are
                                                    In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                values:
                                                  description: values is an array
                                                    of string values. If the operator
                                                    is In or NotIn, the values array
                                                    must be non-empty. If the operator
                                                    is Exists or DoesNotExist, the
                                                    values array must be empty. This
                                                    array is replaced during a strategic
                                                    merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: matchLabels is a map of {key,value}
                                              pairs. A single {key,value} in the matchLabels
                                              map is equivalent to an element of matchExpressions,
                                              whose key field is "key", the operator
                                              is "In", and the values array contains
                                              only "value". The requirements are ANDed.
                                            type: object
                                        type: object
                                      namespaces:
                                        description: namespaces specifies which namespaces
                                          the labelSelector applies to (matches against);
                                          null or empty list means "this pod's namespace"
                                        items:
                                          type: string
                                        type: array
                                      topologyKey:
                                        description: This pod should be co-located
                                          (affinity) or not co-located (anti-affinity)
                                          with the pods matching the labelSelector
                                          in the specified namespaces, where co-located
                                          is defined as running on a node whose value
                                          of the label with key topologyKey matches
                                          that of any node on which any of the selected
                                          pods is running. Empty topologyKey is not
                                          allowed.
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    description: weight associated with matching the
                                      corresponding podAffinityTerm, in the range
                                      1-100.
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: If the affinity requirements specified
                                by this field are not met at scheduling time, the
                                pod will not be scheduled onto the node. If the affinity
                                requirements specified by this field cease to be met
                                at some point during pod execution (e.g. due to a
                                pod label update), the system may or may not try to
                                eventually evict the pod from its node. When there
                                are multiple elements, the lists of nodes corresponding
                                to each podAffinityTerm are intersected, i.e. all
                                terms must be satisfied.
                              items:
                                description: Defines a set of pods (namely those matching
                                  the labelSelector relative to the given namespace(s))
                                  that this pod should be co-located (affinity) or
                                  not co-located (anti-affinity) with, where co-located
                                  is defined as running on a node whose value of the
                                  label with key <topologyKey> matches that of any
                                  node on which a pod of the set of pods is running
                                properties:
                                  labelSelector:
                                    description: A label query over a set of resources,
                                      in this case pods.
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of
                                          label selector requirements. The requirements
                                          are ANDed.
                                        items:
                                          description: A label selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: key is the label key that
                                                the selector applies to.
                                              type: string
                                            operator:
                                              description: operator represents a key's
                                                relationship to a set of values. Valid
                                                operators are In, NotIn, Exists and
                                                DoesNotExist.
                                              type: string
                                            values:
                                              description: values is an array of string
                                                values. If the operator is In or NotIn,
                                                the values array must be non-empty.
                                                If the operator is Exists or DoesNotExist,
                                                the values array must be empty. This
                                                array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: matchLabels is a map of {key,value}
                                          pairs. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                  namespaces:
                                    description: namespaces specifies which namespaces
                                      the labelSelector applies to (matches against);
                                      null or empty list means "this pod's namespace"
                                    items:
                                      type: string
                                    type: array
                                  topologyKey:
                                    description: This pod should be co-located (affinity)
                                      or not co-located (anti-affinity) with the pods
                                      matching the labelSelector in the specified
                                      namespaces, where co-located is defined as running
                                      on a node whose value of the label with key
                                      topologyKey matches that of any node on which
                                      any of the selected pods is running. Empty topologyKey
                                      is not allowed.
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                          type: object
                        podAntiAffinity:
                          description: Describes pod anti-affinity scheduling rules
                            (e.g. avoid putting this pod in the same node, zone, etc.
                            as some other pod(s)).
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: The scheduler will prefer to schedule pods
                                to nodes that satisfy the anti-affinity expressions
                                specified by this field, but it may choose a node
                                that violates one or more of the expressions. The
                                node that is most preferred is the one with the greatest
                                sum of weights, i.e. for each node that meets all
                                of the scheduling requirements (resource request,
                                requiredDuringScheduling anti-affinity expressions,
                                etc.), compute a sum by iterating through the elements
                                of this field and adding "weight" to the sum if the
                                node has pods which matches the corresponding podAffinityTerm;
                                the node(s) with the highest sum are the most preferred.
                              items:
                                description: The weights of all of the matched WeightedPodAffinityTerm
                                  fields are added per-node to find the most preferred
                                  node(s)
                                properties:
                                  podAffinityTerm:
                                    description: Required. A pod affinity term, associated
                                      with the corresponding weight.
                                    properties:
                                      labelSelector:
                                        description: A label query over a set of resources,
                                          in this case pods.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list
                                              of label selector requirements. The
                                              requirements are ANDed.
                                            items:
                                              description: A label selector requirement
                                                is a selector that contains values,
                                                a key, and an operator that relates
                                                the key and values.
                                              properties:
                                                key:
                                                  description: key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: operator represents
                                                    a key's relationship to a set
                                                    of values. Valid operators are
                                                    In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                values:
                                                  description: values is an array
                                                    of string values. If the operator
                                                    is In or NotIn, the values array
                                                    must be non-empty. If the operator
                                                    is Exists or DoesNotExist, the
                                                    values array must be empty. This
                                                    array is replaced during a strategic
                                                    merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: matchLabels is a map of {key,value}
                                              pairs. A single {key,value} in the matchLabels
                                              map is equivalent to an element of matchExpressions,
                                              whose key field is "key", the operator
                                              is "In", and the values array contains
                                              only "value". The requirements are ANDed.
                                            type: object
                                        type: object
                                      namespaces:
                                        description: namespaces specifies which namespaces
                                          the labelSelector applies to (matches against);
                                          null or empty list means "this pod's namespace"
                                        items:
                                          type: string
                                        type: array
                                      topologyKey:
                                        description: This pod should be co-located
                                          (affinity) or not co-located (anti-affinity)
                                          with the pods matching the labelSelector
                                          in the specified namespaces, where co-located
                                          is defined as running on a node whose value
                                          of the label with key topologyKey matches
                                          that of any node on which any of the selected
                                          pods is running. Empty topologyKey is not
                                          allowed.
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    description: weight associated with matching the
                                      corresponding podAffinityTerm, in the range
                                      1-100.
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: If the anti-affinity requirements specified
                                by this field are not met at scheduling time, the
                                pod will not be scheduled onto the node. If the anti-affinity
                                requirements specified by this field cease to be met
                                at some point during pod execution (e.g. due to a
                                pod label update), the system may or may not try to
                                eventually evict the pod from its node. When there
                                are multiple elements, the lists of nodes corresponding
                                to each podAffinityTerm are intersected, i.e. all
                                terms must be satisfied.
                              items:
                                description: Defines a set of pods (namely those matching
                                  the labelSelector relative to the given namespace(s))
                                  that this pod should be co-located (affinity) or
                                  not co-located (anti-affinity) with, where co-located
                                  is defined as running on a node whose value of the
                                  label with key <topologyKey> matches that of any
                                  node on which a pod of the set of pods is running
                                properties:
                                  labelSelector:
                                    description: A label query over a set of resources,
                                      in this case pods.
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of
                                          label selector requirements. The requirements
                                          are ANDed.
                                        items:
                                          description: A label selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: key is the label key that
                                                the selector applies to.
                                              type: string
                                            operator:
                                              description: operator represents a key's
                                                relationship to a set of values. Valid
                                                operators are In, NotIn, Exists and
                                                DoesNotExist.
                                              type: string
                                            values:
                                              description: values is an array of string
                                                values. If the operator is In or NotIn,
                                                the values array must be non-empty.
                                                If the operator is Exists or DoesNotExist,
                                                the values array must be empty. This
                                                array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: matchLabels is a map of {key,value}
                                          pairs. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                  namespaces:
                                    description: namespaces specifies which namespaces
                                      the labelSelector applies to (matches against);
                                      null or empty list means "this pod's namespace"
                                    items:
                                      type: string
                                    type: array
                                  topologyKey:
                                    description: This pod should be co-located (affinity)
                                      or not co-located (anti-affinity) with the pods
                                      matching the labelSelector in the specified
                                      namespaces, where co-located is defined as running
                                      on a node whose value of the label with key
                                      topologyKey matches that of any node on which
                                      any of the selected pods is running. Empty topologyKey
                                      is not allowed.
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                          type: object
                      type: object
                    args:
                      description: 'Arguments to the entrypoint. The docker image''s
                        CMD is used if this is not provided. Variable references $(VAR_NAME)
                        are expanded using the container''s environment. If a variable
                        cannot be resolved, the reference in the input string will
                        be unchanged. The $(VAR_NAME) syntax can be escaped with a
                        double $$, ie: $$(VAR_NAME). Escaped references will never
                        be expanded, regardless of whether the variable exists or
                        not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                      items:
                        type: string
                      type: array
                    backoffLimit:
                      description: Optional number of retries before marking this
                        job failed. Defaults to 6
                      format: int32
                      type: integer
                    command:
                      description: 'Entrypoint array. Not executed within a shell.
                        The docker image''s ENTRYPOINT is used if this is not provided.
                        Variable references $(VAR_NAME) are expanded using the container''s
                        environment. If a variable cannot be resolved, the reference
                        in the input string will be unchanged. The $(VAR_NAME) syntax
                        can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
                        references will never be expanded, regardless of whether the
                        variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                      items:
                        type: string
                      type: array
                    completions:
                      description: Specifies the desired number of successfully finished
                        pods the job should be run with.  Setting to nil means that
                        the success of any pod signals the success of all pods, and
                        allows parallelism to have any positive value.  Setting to
                        1 means that parallelism is limited to 1 and the success of
                        that pod signals the success of the job.
                      format: int32
                      type: integer
                    extraContainers:
                      description: List of containers belonging to the pod. Containers
                        cannot currently be added or removed. There must be at least
                        one container in a Pod. Cannot be updated.
                      items:
                        description: "Container is the specification of the desired
                          behavior of the Container. It is a stripped down version
                          of https://godoc.org/k8s.io/api/core/v1#Container with only
                          user definied specs \n Parameters are used to define how
                          settings are passed on to the container."
                        properties:
                          args:
                            description: 'Arguments to the entrypoint. The docker
                              image''s CMD is used if this is not provided. Variable
                              references $(VAR_NAME) are expanded using the container''s
                              environment. If a variable cannot be resolved, the reference
                              in the input string will be unchanged. The $(VAR_NAME)
                              syntax can be escaped with a double $$, ie: $$(VAR_NAME).
                              Escaped references will never be expanded, regardless
                              of whether the variable exists or not. Cannot be updated.
                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          command:
                            description: 'Entrypoint array. Not executed within a
                              shell. The docker image''s ENTRYPOINT is used if this
                              is not provided. Variable references $(VAR_NAME) are
                              expanded using the container''s environment. If a variable
                              cannot be resolved, the reference in the input string
                              will be unchanged. The $(VAR_NAME) syntax can be escaped
                              with a double $$, ie: $$(VAR_NAME). Escaped references
                              will never be expanded, regardless of whether the variable
                              exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          image:
                            description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                              This field is optional to allow higher level config
                              management to default or override container images in
                              workload controllers like Deployments and StatefulSets.'
                            type: string
                          imagePullPolicy:
                            description: 'Image pull policy. One of Always, Never,
                              IfNotPresent. Defaults to Always if :latest tag is specified,
                              or IfNotPresent otherwise. Cannot be updated. More info:
                              https://kubernetes.io/docs/concepts/containers/images#updating-images'
                            type: string
                          inline:
                            description: Periodic probe for container health
                            properties:
                              livenessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              readinessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                            type: object
                          name:
                            description: Name of the container specified as a DNS_LABEL.
                              Each container in a pod must have a unique name (DNS_LABEL).
                              Cannot be updated.
                            type: string
                          parameters:
                            description: SettingsSpec defines a list of parameters
                              and references to resources from which those parameters
                              can be fetched Only secrets and configmaps in the same
                              namespace are supported as references
                            properties:
                              parameters:
                                description: Parameters is a list of parameters
                                items:
                                  properties:
                                    fromKey:
                                      description: Key to select from the source
                                      type: string
                                    generate:
                                      description: Generate if specified defines how
                                        the parameter value will be generated
                                      type: string
                                    key:
                                      description: "Key of the parameter, can be mounted
                                        as as an environment variable, used in template
                                        or as the key in the key:value data fied in
                                        the configmap or secret \n Key must be unique"
                                      type: string
                                    mountFrom:
                                      description: MountPath specifies where the parameter
                                        will be mounted as a file
                                      properties:
                                        path:
                                          type: string
                                        subPath:
                                          type: string
                                      type: object
                                    mountType:
                                      description: MountType defined how the parameter
                                        will be mounted in the pod Defaults to EnvFile
                                      type: string
                                    ref:
                                      description: Name of the referent.
                                      type: string
                                    refType:
                                      description: Type of the parameter's source
                                        Defaults to the parameter type if not specified
                                      type: string
                                    type:
                                      description: Type specifies specifies the parameter
                                        type
                                      type: string
                                    value:
                                      description: Value of the paramater, should
                                        not contain secret values If it is a template,
                                        ParameterType should be template
                                      type: string
                                  type: object
                                type: array
                              sources:
                                description: Sources is a list of sources for the
                                  parameters from kubernetes resources in the same
                                  namespace Sources []Source `json:"sources,omitempty"`
                                items:
                                  properties:
                                    ref:
                                      description: Ref is the name of a resource in
                                        the same namespace
                                      type: string
                                    type:
                                      description: Type is the type of the resource
                                        Only Secrets and ConfigMaps are supported
                                      type: string
                                  type: object
                                type: array
                            type: object
                          ports:
                            description: List of ports to expose from the container.
                              Exposing a port here gives the system additional information
                              about the network connections a container uses, but
                              is primarily informational. Not specifying a port here
                              DOES NOT prevent that port from being exposed. Any port
                              which is listening on the default "0.0.0.0" address
                              inside a container will be accessible from the network.
                              Cannot be updated.
                            items:
                              description: ContainerPort represents a network port
                                in a single container.
                              properties:
                                containerPort:
                                  description: Number of port to expose on the pod's
                                    IP address. This must be a valid port number,
                                    0 < x < 65536.
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port
                                    to.
                                  type: string
                                hostPort:
                                  description: Number of port to expose on the host.
                                    If specified, this must be a valid port number,
                                    0 < x < 65536. If HostNetwork is specified, this
                                    must match ContainerPort. Most containers do not
                                    need this.
                                  format: int32
                                  type: integer
                                name:
                                  description: If specified, this must be an IANA_SVC_NAME
                                    and unique within the pod. Each named port in
                                    a pod must have a unique name. Name for the port
                                    that can be referred to by services.
                                  type: string
                                protocol:
                                  description: Protocol for port. Must be UDP, TCP,
                                    or SCTP. Defaults to "TCP".
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                        type: object
                      type: array
                    image:
                      description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                        This field is optional to allow higher level config management
                        to default or override container images in workload controllers
                        like Deployments and StatefulSets.'
                      type: string
                    imagePullPolicy:
                      description: 'Image pull policy. One of Always, Never, IfNotPresent.
                        Defaults to Always if :latest tag is specified, or IfNotPresent
                        otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                      type: string
                    imagePullSecrets:
                      description: 'ImagePullSecrets is an optional list of references
                        to secrets in the same namespace to use for pulling any of
                        the images used by this PodSpec. If specified, these secrets
                        will be passed to individual puller implementations for them
                        to use. For example, in the case of docker, only DockerConfig
                        type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
                      items:
                        description: LocalObjectReference contains enough information
                          to let you locate the referenced object inside the same
                          namespace.
                        properties:
                          name:
                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                              TODO: Add other useful fields. apiVersion, kind, uid?'
                            type: string
                        type: object
                      type: array
                    initContainers:
                      description: 'List of initialization containers belonging to
                        the pod. Init containers are executed in order prior to containers
                        being started. If any init container fails, the pod is considered
                        to have failed and is handled according to its restartPolicy.
                        The name for an init container or normal container must be
                        unique among all containers. Init containers may not have
                        Lifecycle actions, Readiness probes, Liveness probes, or Startup
                        probes. The resourceRequirements of an init container are
                        taken into account during scheduling by finding the highest
                        request/limit for each resource type, and then using the max
                        of of that value or the sum of the normal containers. Limits
                        are applied to init containers in a similar fashion. Init
                        containers cannot currently be added or removed. Cannot be
                        updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/'
                      items:
                        description: "Container is the specification of the desired
                          behavior of the Container. It is a stripped down version
                          of https://godoc.org/k8s.io/api/core/v1#Container with only
                          user definied specs \n Parameters are used to define how
                          settings are passed on to the container."
                        properties:
                          args:
                            description: 'Arguments to the entrypoint. The docker
                              image''s CMD is used if this is not provided. Variable
                              references $(VAR_NAME) are expanded using the container''s
                              environment. If a variable cannot be resolved, the reference
                              in the input string will be unchanged. The $(VAR_NAME)
                              syntax can be escaped with a double $$, ie: $$(VAR_NAME).
                              Escaped references will never be expanded, regardless
                              of whether the variable exists or not. Cannot be updated.
                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          command:
                            description: 'Entrypoint array. Not executed within a
                              shell. The docker image''s ENTRYPOINT is used if this
                              is not provided. Variable references $(VAR_NAME) are
                              expanded using the container''s environment. If a variable
                              cannot be resolved, the reference in the input string
                              will be unchanged. The $(VAR_NAME) syntax can be escaped
                              with a double $$, ie: $$(VAR_NAME). Escaped references
                              will never be expanded, regardless of whether the variable
                              exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          image:
                            description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                              This field is optional to allow higher level config
                              management to default or override container images in
                              workload controllers like Deployments and StatefulSets.'
                            type: string
                          imagePullPolicy:
                            description: 'Image pull policy. One of Always, Never,
                              IfNotPresent. Defaults to Always if :latest tag is specified,
                              or IfNotPresent otherwise. Cannot be updated. More info:
                              https://kubernetes.io/docs/concepts/containers/images#updating-images'
                            type: string
                          inline:
                            description: Periodic probe for container health
                            properties:
                              livenessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              readinessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                            type: object
                          name:
                            description: Name of the container specified as a DNS_LABEL.
                              Each container in a pod must have a unique name (DNS_LABEL).
                              Cannot be updated.
                            type: string
                          parameters:
                            description: SettingsSpec defines a list of parameters
                              and references to resources from which those parameters
                              can be fetched Only secrets and configmaps in the same
                              namespace are supported as references
                            properties:
                              parameters:
                                description: Parameters is a list of parameters
                                items:
                                  properties:
                                    fromKey:
                                      description: Key to select from the source
                                      type: string
                                    generate:
                                      description: Generate if specified defines how
                                        the parameter value will be generated
                                      type: string
                                    key:
                                      description: "Key of the parameter, can be mounted
                                        as as an environment variable, used in template
                                        or as the key in the key:value data fied in
                                        the configmap or secret \n Key must be unique"
                                      type: string
                                    mountFrom:
                                      description: MountPath specifies where the parameter
                                        will be mounted as a file
                                      properties:
                                        path:
                                          type: string
                                        subPath:
                                          type: string
                                      type: object
                                    mountType:
                                      description: MountType defined how the parameter
                                        will be mounted in the pod Defaults to EnvFile
                                      type: string
                                    ref:
                                      description: Name of the referent.
                                      type: string
                                    refType:
                                      description: Type of the parameter's source
                                        Defaults to the parameter type if not specified
                                      type: string
                                    type:
                                      description: Type specifies specifies the parameter
                                        type
                                      type: string
                                    value:
                                      description: Value of the paramater, should
                                        not contain secret values If it is a template,
                                        ParameterType should be template
                                      type: string
                                  type: object
                                type: array
                              sources:
                                description: Sources is a list of sources for the
                                  parameters from kubernetes resources in the same
                                  namespace Sources []Source `json:"sources,omitempty"`
                                items:
                                  properties:
                                    ref:
                                      description: Ref is the name of a resource in
                                        the same namespace
                                      type: string
                                    type:
                                      description: Type is the type of the resource
                                        Only Secrets and ConfigMaps are supported
                                      type: string
                                  type: object
                                type: array
                            type: object
                          ports:
                            description: List of ports to expose from the container.
                              Exposing a port here gives the system additional information
                              about the network connections a container uses, but
                              is primarily informational. Not specifying a port here
                              DOES NOT prevent that port from being exposed. Any port
                              which is listening on the default "0.0.0.0" address
                              inside a container will be accessible from the network.
                              Cannot be updated.
                            items:
                              description: ContainerPort represents a network port
                                in a single container.
                              properties:
                                containerPort:
                                  description: Number of port to expose on the pod's
                                    IP address. This must be a valid port number,
                                    0 < x < 65536.
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port
                                    to.
                                  type: string
                                hostPort:
                                  description: Number of port to expose on the host.
                                    If specified, this must be a valid port number,
                                    0 < x < 65536. If HostNetwork is specified, this
                                    must match ContainerPort. Most containers do not
                                    need this.
                                  format: int32
                                  type: integer
                                name:
                                  description: If specified, this must be an IANA_SVC_NAME
                                    and unique within the pod. Each named port in
                                    a pod must have a unique name. Name for the port
                                    that can be referred to by services.
                                  type: string
                                protocol:
                                  description: Protocol for port. Must be UDP, TCP,
                                    or SCTP. Defaults to "TCP".
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                        type: object
                      type: array
                    inline:
                      description: Periodic probe for container health
                      properties:
                        livenessProbe:
                          description: 'Periodic probe of container liveness. Container
                            will be restarted if the probe fails. Cannot be updated.
                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: One and only one of the following should
                                be specified. Exec specifies the action to take.
                              properties:
                                command:
                                  description: Command is the command line to execute
                                    inside the container, the working directory for
                                    the command  is root ('/') in the container's
                                    filesystem. The command is simply exec'd, it is
                                    not run inside a shell, so traditional shell instructions
                                    ('|', etc) won't work. To use a shell, you need
                                    to explicitly call out to that shell. Exit status
                                    of 0 is treated as live/healthy and non-zero is
                                    unhealthy.
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              description: Minimum consecutive failures for the probe
                                to be considered failed after having succeeded. Defaults
                                to 3. Minimum value is 1.
                              format: int32
                              type: integer
                            httpGet:
                              description: HTTPGet specifies the http request to perform.
                              properties:
                                host:
                                  description: Host name to connect to, defaults to
                                    the pod IP. You probably want to set "Host" in
                                    httpHeaders instead.
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request.
                                    HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header
                                      to be used in HTTP probes
                                    properties:
                                      name:
                                        description: The header field name
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Name or number of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: Scheme to use for connecting to the
                                    host. Defaults to HTTP.
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container
                                has started before liveness probes are initiated.
                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: How often (in seconds) to perform the probe.
                                Default to 10 seconds. Minimum value is 1.
                              format: int32
                              type: integer
                            successThreshold:
                              description: Minimum consecutive successes for the probe
                                to be considered successful after having failed. Defaults
                                to 1. Must be 1 for liveness and startup. Minimum
                                value is 1.
                              format: int32
                              type: integer
                            tcpSocket:
                              description: 'TCPSocket specifies an action involving
                                a TCP port. TCP hooks not yet supported TODO: implement
                                a realistic TCP lifecycle hook'
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to,
                                    defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Number or name of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe
                                times out. Defaults to 1 second. Minimum value is
                                1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        readinessProbe:
                          description: 'Periodic probe of container liveness. Container
                            will be restarted if the probe fails. Cannot be updated.
                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: One and only one of the following should
                                be specified. Exec specifies the action to take.
                              properties:
                                command:
                                  description: Command is the command line to execute
                                    inside the container, the working directory for
                                    the command  is root ('/') in the container's
                                    filesystem. The command is simply exec'd, it is
                                    not run inside a shell, so traditional shell instructions
                                    ('|', etc) won't work. To use a shell, you need
                                    to explicitly call out to that shell. Exit status
                                    of 0 is treated as live/healthy and non-zero is
                                    unhealthy.
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              description: Minimum consecutive failures for the probe
                                to be considered failed after having succeeded. Defaults
                                to 3. Minimum value is 1.
                              format: int32
                              type: integer
                            httpGet:
                              description: HTTPGet specifies the http request to perform.
                              properties:
                                host:
                                  description: Host name to connect to, defaults to
                                    the pod IP. You probably want to set "Host" in
                                    httpHeaders instead.
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request.
                                    HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header
                                      to be used in HTTP probes
                                    properties:
                                      name:
                                        description: The header field name
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Name or number of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: Scheme to use for connecting to the
                                    host. Defaults to HTTP.
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container
                                has started before liveness probes are initiated.
                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: How often (in seconds) to perform the probe.
                                Default to 10 seconds. Minimum value is 1.
                              format: int32
                              type: integer
                            successThreshold:
                              description: Minimum consecutive successes for the probe
                                to be considered successful after having failed. Defaults
                                to 1. Must be 1 for liveness and startup. Minimum
                                value is 1.
                              format: int32
                              type: integer
                            tcpSocket:
                              description: 'TCPSocket specifies an action involving
                                a TCP port. TCP hooks not yet supported TODO: implement
                                a realistic TCP lifecycle hook'
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to,
                                    defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Number or name of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe
                                times out. Defaults to 1 second. Minimum value is
                                1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                      type: object
                    meta:
                      description: "ObjectMeta meta is a stripped down version of
                        the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                        with only user defined specs \n This type can be used in an
                        application CRD ObjectMeta implements the Meta interface and
                        can be used to mutates an object"
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: 'Annotations is an unstructured key value map
                            stored with a resource that may be set by external tools
                            to store and retrieve arbitrary metadata. They are not
                            queryable and should be preserved when modifying objects.
                            More info: http://kubernetes.io/docs/user-guide/annotations'
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: 'Map of string keys and values that can be
                            used to organize and categorize (scope and select) objects.
                            May match selectors of replication controllers and services.
                            More info: http://kubernetes.io/docs/user-guide/labels'
                          type: object
                        name:
                          description: 'Name must be unique within a namespace. Is
                            required when creating resources, although some resources
                            may allow a client to request the generation of an appropriate
                            name automatically. Name is primarily intended for creation
                            idempotence and configuration definition. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                          type: string
                        namespace:
                          description: "Namespace defines the space within each name
                            must be unique. An empty namespace is equivalent to the
                            \"default\" namespace, but \"default\" is the canonical
                            representation. Not all objects are required to be scoped
                            to a namespace - the value of this field for those objects
                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/namespaces"
                          type: string
                      type: object
                    name:
                      description: Name of the container specified as a DNS_LABEL.
                        Each container in a pod must have a unique name (DNS_LABEL).
                        Cannot be updated.
                      type: string
                    nodeSelector:
                      additionalProperties:
                        type: string
                      description: 'NodeSelector is a selector which must be true
                        for the pod to fit on a node. Selector which must match a
                        node''s labels for the pod to be scheduled on that node. More
                        info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
                      type: object
                    parallelism:
                      description: Specifies the maximum desired number of pods the
                        job should run at any given time. The actual number of pods
                        running in steady state will be less than this number when
                        ((.spec.completions - .status.successful) < .spec.parallelism),
                        i.e. when the work left to do is less than max parallelism.
                      format: int32
                      type: integer
                    parameters:
                      description: SettingsSpec defines a list of parameters and references
                        to resources from which those parameters can be fetched Only
                        secrets and configmaps in the same namespace are supported
                        as references
                      properties:
                        parameters:
                          description: Parameters is a list of parameters
                          items:
                            properties:
                              fromKey:
                                description: Key to select from the source
                                type: string
                              generate:
                                description: Generate if specified defines how the
                                  parameter value will be generated
                                type: string
                              key:
                                description: "Key of the parameter, can be mounted
                                  as as an environment variable, used in template
                                  or as the key in the key:value data fied in the
                                  configmap or secret \n Key must be unique"
                                type: string
                              mountFrom:
                                description: MountPath specifies where the parameter
                                  will be mounted as a file
                                properties:
                                  path:
                                    type: string
                                  subPath:
                                    type: string
                                type: object
                              mountType:
                                description: MountType defined how the parameter will
                                  be mounted in the pod Defaults to EnvFile
                                type: string
                              ref:
                                description: Name of the referent.
                                type: string
                              refType:
                                description: Type of the parameter's source Defaults
                                  to the parameter type if not specified
                                type: string
                              type:
                                description: Type specifies specifies the parameter
                                  type
                                type: string
                              value:
                                description: Value of the paramater, should not contain
                                  secret values If it is a template, ParameterType
                                  should be template
                                type: string
                            type: object
                          type: array
                        sources:
                          description: Sources is a list of sources for the parameters
                            from kubernetes resources in the same namespace Sources
                            []Source `json:"sources,omitempty"`
                          items:
                            properties:
                              ref:
                                description: Ref is the name of a resource in the
                                  same namespace
                                type: string
                              type:
                                description: Type is the type of the resource Only
                                  Secrets and ConfigMaps are supported
                                type: string
                            type: object
                          type: array
                      type: object
                    ports:
                      description: List of ports to expose from the container. Exposing
                        a port here gives the system additional information about
                        the network connections a container uses, but is primarily
                        informational. Not specifying a port here DOES NOT prevent
                        that port from being exposed. Any port which is listening
                        on the default "0.0.0.0" address inside a container will be
                        accessible from the network. Cannot be updated.
                      items:
                        description: ContainerPort represents a network port in a
                          single container.
                        properties:
                          containerPort:
                            description: Number of port to expose on the pod's IP
                              address. This must be a valid port number, 0 < x < 65536.
                            format: int32
                            type: integer
                          hostIP:
                            description: What host IP to bind the external port to.
                            type: string
                          hostPort:
                            description: Number of port to expose on the host. If
                              specified, this must be a valid port number, 0 < x <
                              65536. If HostNetwork is specified, this must match
                              ContainerPort. Most containers do not need this.
                            format: int32
                            type: integer
                          name:
                            description: If specified, this must be an IANA_SVC_NAME
                              and unique within the pod. Each named port in a pod
                              must have a unique name. Name for the port that can
                              be referred to by services.
                            type: string
                          protocol:
                            description: Protocol for port. Must be UDP, TCP, or SCTP.
                              Defaults to "TCP".
                            type: string
                        required:
                        - containerPort
                        type: object
                      type: array
                    resources:
                      description: ResourceRequirements describes the compute resource
                        requirements.
                      properties:
                        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. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                          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. If Requests is omitted for a container,
                            it defaults to Limits if that is explicitly specified,
                            otherwise to an implementation-defined value. More info:
                            https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                          type: object
                      type: object
                    restartPolicy:
                      description: 'Restart policy for all containers within the pod.
                        One of Always, OnFailure, Never. Default to Always. More info:
                        https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy'
                      type: string
                    securityContext:
                      description: 'SecurityContext holds pod-level security attributes
                        and common container settings. Optional: Defaults to empty.  See
                        type description for default values of each field.'
                      properties:
                        fsGroup:
                          description: "A special supplemental group that applies
                            to all containers in a pod. Some volume types allow the
                            Kubelet to change the ownership of that volume to be owned
                            by the pod: \n 1. The owning GID will be the FSGroup 2.
                            The setgid bit is set (new files created in the volume
                            will be owned by FSGroup) 3. The permission bits are OR'd
                            with rw-rw---- \n If unset, the Kubelet will not modify
                            the ownership and permissions of any volume."
                          format: int64
                          type: integer
                        fsGroupChangePolicy:
                          description: 'fsGroupChangePolicy defines behavior of changing
                            ownership and permission of the volume before being exposed
                            inside Pod. This field will only apply to volume types
                            which support fsGroup based ownership(and permissions).
                            It will have no effect on ephemeral volume types such
                            as: secret, configmaps and emptydir. Valid values are
                            "OnRootMismatch" and "Always". If not specified defaults
                            to "Always".'
                          type: string
                        runAsGroup:
                          description: The GID to run the entrypoint of the container
                            process. Uses runtime default if unset. May also be set
                            in SecurityContext.  If set in both SecurityContext and
                            PodSecurityContext, the value specified in SecurityContext
                            takes precedence for that container.
                          format: int64
                          type: integer
                        runAsNonRoot:
                          description: Indicates that the container must run as a
                            non-root user. If true, the Kubelet will validate the
                            image at runtime to ensure that it does not run as UID
                            0 (root) and fail to start the container if it does. If
                            unset or false, no such validation will be performed.
                            May also be set in SecurityContext.  If set in both SecurityContext
                            and PodSecurityContext, the value specified in SecurityContext
                            takes precedence.
                          type: boolean
                        runAsUser:
                          description: The UID to run the entrypoint of the container
                            process. Defaults to user specified in image metadata
                            if unspecified. May also be set in SecurityContext.  If
                            set in both SecurityContext and PodSecurityContext, the
                            value specified in SecurityContext takes precedence for
                            that container.
                          format: int64
                          type: integer
                        seLinuxOptions:
                          description: The SELinux context to be applied to all containers.
                            If unspecified, the container runtime will allocate a
                            random SELinux context for each container.  May also be
                            set in SecurityContext.  If set in both SecurityContext
                            and PodSecurityContext, the value specified in SecurityContext
                            takes precedence for that container.
                          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
                        supplementalGroups:
                          description: A list of groups applied to the first process
                            run in each container, in addition to the container's
                            primary GID.  If unspecified, no groups will be added
                            to any container.
                          items:
                            format: int64
                            type: integer
                          type: array
                        sysctls:
                          description: Sysctls hold a list of namespaced sysctls used
                            for the pod. Pods with unsupported sysctls (by the container
                            runtime) might fail to launch.
                          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
                          type: array
                        windowsOptions:
                          description: The Windows specific settings applied to all
                            containers. If unspecified, the options within a container's
                            SecurityContext will be used. If set in both SecurityContext
                            and PodSecurityContext, the value specified in SecurityContext
                            takes precedence.
                          properties:
                            gmsaCredentialSpec:
                              description: GMSACredentialSpec is where the GMSA admission
                                webhook (https://github.com/kubernetes-sigs/windows-gmsa)
                                inlines the contents of the GMSA credential spec named
                                by the GMSACredentialSpecName field.
                              type: string
                            gmsaCredentialSpecName:
                              description: GMSACredentialSpecName is the name of the
                                GMSA credential spec to use.
                              type: string
                            runAsUserName:
                              description: The UserName in Windows to run the entrypoint
                                of the container process. Defaults to the user specified
                                in image metadata if unspecified. May also be set
                                in PodSecurityContext. If set in both SecurityContext
                                and PodSecurityContext, the value specified in SecurityContext
                                takes precedence.
                              type: string
                          type: object
                      type: object
                    settings:
                      items:
                        type: string
                      type: array
                    tolerations:
                      description: If specified, the pod's tolerations.
                      items:
                        description: The pod this Toleration is attached to tolerates
                          any taint that matches the triple <key,value,effect> using
                          the matching operator <operator>.
                        properties:
                          effect:
                            description: Effect indicates the taint effect to match.
                              Empty means match all taint effects. When specified,
                              allowed values are NoSchedule, PreferNoSchedule and
                              NoExecute.
                            type: string
                          key:
                            description: Key is the taint key that the toleration
                              applies to. Empty means match all taint keys. If the
                              key is empty, operator must be Exists; this combination
                              means to match all values and all keys.
                            type: string
                          operator:
                            description: Operator represents a key's relationship
                              to the value. Valid operators are Exists and Equal.
                              Defaults to Equal. Exists is equivalent to wildcard
                              for value, so that a pod can tolerate all taints of
                              a particular category.
                            type: string
                          tolerationSeconds:
                            description: TolerationSeconds represents the period of
                              time the toleration (which must be of effect NoExecute,
                              otherwise this field is ignored) tolerates the taint.
                              By default, it is not set, which means tolerate the
                              taint forever (do not evict). Zero and negative values
                              will be treated as 0 (evict immediately) by the system.
                            format: int64
                            type: integer
                          value:
                            description: Value is the taint value the toleration matches
                              to. If the operator is Exists, the value should be empty,
                              otherwise just a regular string.
                            type: string
                        type: object
                      type: array
                    ttlSecondsAfterFinished:
                      description: ttlSecondsAfterFinished limits the lifetime of
                        a Job that has finished execution (either Complete or Failed).
                        If this field is set, ttlSecondsAfterFinished after the Job
                        finishes, it is eligible to be automatically deleted. When
                        the Job is being deleted, its lifecycle guarantees (e.g. finalizers)
                        will be honored. If this field is unset, the Job won't be
                        automatically deleted. If this field is set to zero, the Job
                        becomes eligible to be deleted immediately after it finishes.
                        This field is alpha-level and is only honored by servers that
                        enable the TTLAfterFinished feature.
                      format: int32
                      type: integer
                  type: object
              type: object
            settings:
              properties:
                app:
                  properties:
                    createOptions:
                      properties:
                        commonMeta:
                          description: "ObjectMeta meta is a stripped down version
                            of the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                            with only user defined specs \n This type can be used
                            in an application CRD ObjectMeta implements the Meta interface
                            and can be used to mutates an object"
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: 'Annotations is an unstructured key value
                                map stored with a resource that may be set by external
                                tools to store and retrieve arbitrary metadata. They
                                are not queryable and should be preserved when modifying
                                objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: 'Map of string keys and values that can
                                be used to organize and categorize (scope and select)
                                objects. May match selectors of replication controllers
                                and services. More info: http://kubernetes.io/docs/user-guide/labels'
                              type: object
                            name:
                              description: 'Name must be unique within a namespace.
                                Is required when creating resources, although some
                                resources may allow a client to request the generation
                                of an appropriate name automatically. Name is primarily
                                intended for creation idempotence and configuration
                                definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                              type: string
                            namespace:
                              description: "Namespace defines the space within each
                                name must be unique. An empty namespace is equivalent
                                to the \"default\" namespace, but \"default\" is the
                                canonical representation. Not all objects are required
                                to be scoped to a namespace - the value of this field
                                for those objects will be empty. \n Must be a DNS_LABEL.
                                Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
                              type: string
                          type: object
                        configMeta:
                          description: "ObjectMeta meta is a stripped down version
                            of the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                            with only user defined specs \n This type can be used
                            in an application CRD ObjectMeta implements the Meta interface
                            and can be used to mutates an object"
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: 'Annotations is an unstructured key value
                                map stored with a resource that may be set by external
                                tools to store and retrieve arbitrary metadata. They
                                are not queryable and should be preserved when modifying
                                objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: 'Map of string keys and values that can
                                be used to organize and categorize (scope and select)
                                objects. May match selectors of replication controllers
                                and services. More info: http://kubernetes.io/docs/user-guide/labels'
                              type: object
                            name:
                              description: 'Name must be unique within a namespace.
                                Is required when creating resources, although some
                                resources may allow a client to request the generation
                                of an appropriate name automatically. Name is primarily
                                intended for creation idempotence and configuration
                                definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                              type: string
                            namespace:
                              description: "Namespace defines the space within each
                                name must be unique. An empty namespace is equivalent
                                to the \"default\" namespace, but \"default\" is the
                                canonical representation. Not all objects are required
                                to be scoped to a namespace - the value of this field
                                for those objects will be empty. \n Must be a DNS_LABEL.
                                Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
                              type: string
                          type: object
                        generate:
                          type: string
                        secretMeta:
                          description: "ObjectMeta meta is a stripped down version
                            of the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                            with only user defined specs \n This type can be used
                            in an application CRD ObjectMeta implements the Meta interface
                            and can be used to mutates an object"
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: 'Annotations is an unstructured key value
                                map stored with a resource that may be set by external
                                tools to store and retrieve arbitrary metadata. They
                                are not queryable and should be preserved when modifying
                                objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: 'Map of string keys and values that can
                                be used to organize and categorize (scope and select)
                                objects. May match selectors of replication controllers
                                and services. More info: http://kubernetes.io/docs/user-guide/labels'
                              type: object
                            name:
                              description: 'Name must be unique within a namespace.
                                Is required when creating resources, although some
                                resources may allow a client to request the generation
                                of an appropriate name automatically. Name is primarily
                                intended for creation idempotence and configuration
                                definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                              type: string
                            namespace:
                              description: "Namespace defines the space within each
                                name must be unique. An empty namespace is equivalent
                                to the \"default\" namespace, but \"default\" is the
                                canonical representation. Not all objects are required
                                to be scoped to a namespace - the value of this field
                                for those objects will be empty. \n Must be a DNS_LABEL.
                                Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
                              type: string
                          type: object
                        type:
                          type: string
                      type: object
                    database:
                      properties:
                        database:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        host:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        password:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        port:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        type:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        username:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                      type: object
                    general:
                      properties:
                        adminPassword:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        adminUsername:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        appStore:
                          properties:
                            default:
                              description: Default defines the default app
                              properties:
                                fromKey:
                                  description: Key to select from the source
                                  type: string
                                generate:
                                  description: Generate if specified defines how the
                                    parameter value will be generated
                                  type: string
                                key:
                                  description: "Key of the parameter, can be mounted
                                    as as an environment variable, used in template
                                    or as the key in the key:value data fied in the
                                    configmap or secret \n Key must be unique"
                                  type: string
                                mountFrom:
                                  description: MountPath specifies where the parameter
                                    will be mounted as a file
                                  properties:
                                    path:
                                      type: string
                                    subPath:
                                      type: string
                                  type: object
                                mountType:
                                  description: MountType defined how the parameter
                                    will be mounted in the pod Defaults to EnvFile
                                  type: string
                                ref:
                                  description: Name of the referent.
                                  type: string
                                refType:
                                  description: Type of the parameter's source Defaults
                                    to the parameter type if not specified
                                  type: string
                                type:
                                  description: Type specifies specifies the parameter
                                    type
                                  type: string
                                value:
                                  description: Value of the paramater, should not
                                    contain secret values If it is a template, ParameterType
                                    should be template
                                  type: string
                              type: object
                            storeEnabled:
                              description: StoreEnabled defines if the app store is
                                enabled
                              properties:
                                fromKey:
                                  description: Key to select from the source
                                  type: string
                                generate:
                                  description: Generate if specified defines how the
                                    parameter value will be generated
                                  type: string
                                key:
                                  description: "Key of the parameter, can be mounted
                                    as as an environment variable, used in template
                                    or as the key in the key:value data fied in the
                                    configmap or secret \n Key must be unique"
                                  type: string
                                mountFrom:
                                  description: MountPath specifies where the parameter
                                    will be mounted as a file
                                  properties:
                                    path:
                                      type: string
                                    subPath:
                                      type: string
                                  type: object
                                mountType:
                                  description: MountType defined how the parameter
                                    will be mounted in the pod Defaults to EnvFile
                                  type: string
                                ref:
                                  description: Name of the referent.
                                  type: string
                                refType:
                                  description: Type of the parameter's source Defaults
                                    to the parameter type if not specified
                                  type: string
                                type:
                                  description: Type specifies specifies the parameter
                                    type
                                  type: string
                                value:
                                  description: Value of the paramater, should not
                                    contain secret values If it is a template, ParameterType
                                    should be template
                                  type: string
                              type: object
                            storeURL:
                              description: StoreUrl defines the URL for the app store
                              properties:
                                fromKey:
                                  description: Key to select from the source
                                  type: string
                                generate:
                                  description: Generate if specified defines how the
                                    parameter value will be generated
                                  type: string
                                key:
                                  description: "Key of the parameter, can be mounted
                                    as as an environment variable, used in template
                                    or as the key in the key:value data fied in the
                                    configmap or secret \n Key must be unique"
                                  type: string
                                mountFrom:
                                  description: MountPath specifies where the parameter
                                    will be mounted as a file
                                  properties:
                                    path:
                                      type: string
                                    subPath:
                                      type: string
                                  type: object
                                mountType:
                                  description: MountType defined how the parameter
                                    will be mounted in the pod Defaults to EnvFile
                                  type: string
                                ref:
                                  description: Name of the referent.
                                  type: string
                                refType:
                                  description: Type of the parameter's source Defaults
                                    to the parameter type if not specified
                                  type: string
                                type:
                                  description: Type specifies specifies the parameter
                                    type
                                  type: string
                                value:
                                  description: Value of the paramater, should not
                                    contain secret values If it is a template, ParameterType
                                    should be template
                                  type: string
                              type: object
                          type: object
                        bruteforce:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        dataDirectory:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        debug:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        domains:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        instanceID:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        locales:
                          properties:
                            default:
                              description: Default defines the default language
                              properties:
                                fromKey:
                                  description: Key to select from the source
                                  type: string
                                generate:
                                  description: Generate if specified defines how the
                                    parameter value will be generated
                                  type: string
                                key:
                                  description: "Key of the parameter, can be mounted
                                    as as an environment variable, used in template
                                    or as the key in the key:value data fied in the
                                    configmap or secret \n Key must be unique"
                                  type: string
                                mountFrom:
                                  description: MountPath specifies where the parameter
                                    will be mounted as a file
                                  properties:
                                    path:
                                      type: string
                                    subPath:
                                      type: string
                                  type: object
                                mountType:
                                  description: MountType defined how the parameter
                                    will be mounted in the pod Defaults to EnvFile
                                  type: string
                                ref:
                                  description: Name of the referent.
                                  type: string
                                refType:
                                  description: Type of the parameter's source Defaults
                                    to the parameter type if not specified
                                  type: string
                                type:
                                  description: Type specifies specifies the parameter
                                    type
                                  type: string
                                value:
                                  description: Value of the paramater, should not
                                    contain secret values If it is a template, ParameterType
                                    should be template
                                  type: string
                              type: object
                            forceLanguage:
                              properties:
                                fromKey:
                                  description: Key to select from the source
                                  type: string
                                generate:
                                  description: Generate if specified defines how the
                                    parameter value will be generated
                                  type: string
                                key:
                                  description: "Key of the parameter, can be mounted
                                    as as an environment variable, used in template
                                    or as the key in the key:value data fied in the
                                    configmap or secret \n Key must be unique"
                                  type: string
                                mountFrom:
                                  description: MountPath specifies where the parameter
                                    will be mounted as a file
                                  properties:
                                    path:
                                      type: string
                                    subPath:
                                      type: string
                                  type: object
                                mountType:
                                  description: MountType defined how the parameter
                                    will be mounted in the pod Defaults to EnvFile
                                  type: string
                                ref:
                                  description: Name of the referent.
                                  type: string
                                refType:
                                  description: Type of the parameter's source Defaults
                                    to the parameter type if not specified
                                  type: string
                                type:
                                  description: Type specifies specifies the parameter
                                    type
                                  type: string
                                value:
                                  description: Value of the paramater, should not
                                    contain secret values If it is a template, ParameterType
                                    should be template
                                  type: string
                              type: object
                            forceLocale:
                              properties:
                                fromKey:
                                  description: Key to select from the source
                                  type: string
                                generate:
                                  description: Generate if specified defines how the
                                    parameter value will be generated
                                  type: string
                                key:
                                  description: "Key of the parameter, can be mounted
                                    as as an environment variable, used in template
                                    or as the key in the key:value data fied in the
                                    configmap or secret \n Key must be unique"
                                  type: string
                                mountFrom:
                                  description: MountPath specifies where the parameter
                                    will be mounted as a file
                                  properties:
                                    path:
                                      type: string
                                    subPath:
                                      type: string
                                  type: object
                                mountType:
                                  description: MountType defined how the parameter
                                    will be mounted in the pod Defaults to EnvFile
                                  type: string
                                ref:
                                  description: Name of the referent.
                                  type: string
                                refType:
                                  description: Type of the parameter's source Defaults
                                    to the parameter type if not specified
                                  type: string
                                type:
                                  description: Type specifies specifies the parameter
                                    type
                                  type: string
                                value:
                                  description: Value of the paramater, should not
                                    contain secret values If it is a template, ParameterType
                                    should be template
                                  type: string
                              type: object
                            locale:
                              properties:
                                fromKey:
                                  description: Key to select from the source
                                  type: string
                                generate:
                                  description: Generate if specified defines how the
                                    parameter value will be generated
                                  type: string
                                key:
                                  description: "Key of the parameter, can be mounted
                                    as as an environment variable, used in template
                                    or as the key in the key:value data fied in the
                                    configmap or secret \n Key must be unique"
                                  type: string
                                mountFrom:
                                  description: MountPath specifies where the parameter
                                    will be mounted as a file
                                  properties:
                                    path:
                                      type: string
                                    subPath:
                                      type: string
                                  type: object
                                mountType:
                                  description: MountType defined how the parameter
                                    will be mounted in the pod Defaults to EnvFile
                                  type: string
                                ref:
                                  description: Name of the referent.
                                  type: string
                                refType:
                                  description: Type of the parameter's source Defaults
                                    to the parameter type if not specified
                                  type: string
                                type:
                                  description: Type specifies specifies the parameter
                                    type
                                  type: string
                                value:
                                  description: Value of the paramater, should not
                                    contain secret values If it is a template, ParameterType
                                    should be template
                                  type: string
                              type: object
                          type: object
                        overwriteCLI:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        overwriteProtocol:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        passwordSalt:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        readOnly:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        secret:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        udpateURL:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        updateChannel:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        updateChecker:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        updateDisable:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        version:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                      type: object
                    objectStore:
                      properties:
                        accessKeyID:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        autocreate:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        bucket:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        host:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        pathStyle:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        port:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        region:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        secretAccessKey:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        ssl:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                      type: object
                    redis:
                      properties:
                        host:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        password:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        port:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        username:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                      type: object
                    smtp:
                      properties:
                        authType:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        debug:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        domain:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        fromAddress:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        host:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        password:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        plainTextOnly:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        port:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        secure:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        templateClass:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                        username:
                          properties:
                            fromKey:
                              description: Key to select from the source
                              type: string
                            generate:
                              description: Generate if specified defines how the parameter
                                value will be generated
                              type: string
                            key:
                              description: "Key of the parameter, can be mounted as
                                as an environment variable, used in template or as
                                the key in the key:value data fied in the configmap
                                or secret \n Key must be unique"
                              type: string
                            mountFrom:
                              description: MountPath specifies where the parameter
                                will be mounted as a file
                              properties:
                                path:
                                  type: string
                                subPath:
                                  type: string
                              type: object
                            mountType:
                              description: MountType defined how the parameter will
                                be mounted in the pod Defaults to EnvFile
                              type: string
                            ref:
                              description: Name of the referent.
                              type: string
                            refType:
                              description: Type of the parameter's source Defaults
                                to the parameter type if not specified
                              type: string
                            type:
                              description: Type specifies specifies the parameter
                                type
                              type: string
                            value:
                              description: Value of the paramater, should not contain
                                secret values If it is a template, ParameterType should
                                be template
                              type: string
                          type: object
                      type: object
                    sources:
                      items:
                        properties:
                          ref:
                            description: Ref is the name of a resource in the same
                              namespace
                            type: string
                          type:
                            description: Type is the type of the resource Only Secrets
                              and ConfigMaps are supported
                            type: string
                        type: object
                      type: array
                  type: object
                createOptions:
                  properties:
                    commonMeta:
                      description: "ObjectMeta meta is a stripped down version of
                        the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                        with only user defined specs \n This type can be used in an
                        application CRD ObjectMeta implements the Meta interface and
                        can be used to mutates an object"
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: 'Annotations is an unstructured key value map
                            stored with a resource that may be set by external tools
                            to store and retrieve arbitrary metadata. They are not
                            queryable and should be preserved when modifying objects.
                            More info: http://kubernetes.io/docs/user-guide/annotations'
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: 'Map of string keys and values that can be
                            used to organize and categorize (scope and select) objects.
                            May match selectors of replication controllers and services.
                            More info: http://kubernetes.io/docs/user-guide/labels'
                          type: object
                        name:
                          description: 'Name must be unique within a namespace. Is
                            required when creating resources, although some resources
                            may allow a client to request the generation of an appropriate
                            name automatically. Name is primarily intended for creation
                            idempotence and configuration definition. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                          type: string
                        namespace:
                          description: "Namespace defines the space within each name
                            must be unique. An empty namespace is equivalent to the
                            \"default\" namespace, but \"default\" is the canonical
                            representation. Not all objects are required to be scoped
                            to a namespace - the value of this field for those objects
                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/namespaces"
                          type: string
                      type: object
                    configMeta:
                      description: "ObjectMeta meta is a stripped down version of
                        the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                        with only user defined specs \n This type can be used in an
                        application CRD ObjectMeta implements the Meta interface and
                        can be used to mutates an object"
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: 'Annotations is an unstructured key value map
                            stored with a resource that may be set by external tools
                            to store and retrieve arbitrary metadata. They are not
                            queryable and should be preserved when modifying objects.
                            More info: http://kubernetes.io/docs/user-guide/annotations'
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: 'Map of string keys and values that can be
                            used to organize and categorize (scope and select) objects.
                            May match selectors of replication controllers and services.
                            More info: http://kubernetes.io/docs/user-guide/labels'
                          type: object
                        name:
                          description: 'Name must be unique within a namespace. Is
                            required when creating resources, although some resources
                            may allow a client to request the generation of an appropriate
                            name automatically. Name is primarily intended for creation
                            idempotence and configuration definition. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                          type: string
                        namespace:
                          description: "Namespace defines the space within each name
                            must be unique. An empty namespace is equivalent to the
                            \"default\" namespace, but \"default\" is the canonical
                            representation. Not all objects are required to be scoped
                            to a namespace - the value of this field for those objects
                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/namespaces"
                          type: string
                      type: object
                    generate:
                      type: string
                    secretMeta:
                      description: "ObjectMeta meta is a stripped down version of
                        the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                        with only user defined specs \n This type can be used in an
                        application CRD ObjectMeta implements the Meta interface and
                        can be used to mutates an object"
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: 'Annotations is an unstructured key value map
                            stored with a resource that may be set by external tools
                            to store and retrieve arbitrary metadata. They are not
                            queryable and should be preserved when modifying objects.
                            More info: http://kubernetes.io/docs/user-guide/annotations'
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: 'Map of string keys and values that can be
                            used to organize and categorize (scope and select) objects.
                            May match selectors of replication controllers and services.
                            More info: http://kubernetes.io/docs/user-guide/labels'
                          type: object
                        name:
                          description: 'Name must be unique within a namespace. Is
                            required when creating resources, although some resources
                            may allow a client to request the generation of an appropriate
                            name automatically. Name is primarily intended for creation
                            idempotence and configuration definition. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                          type: string
                        namespace:
                          description: "Namespace defines the space within each name
                            must be unique. An empty namespace is equivalent to the
                            \"default\" namespace, but \"default\" is the canonical
                            representation. Not all objects are required to be scoped
                            to a namespace - the value of this field for those objects
                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/namespaces"
                          type: string
                      type: object
                    type:
                      type: string
                  type: object
                sources:
                  items:
                    properties:
                      ref:
                        description: Ref is the name of a resource in the same namespace
                        type: string
                      type:
                        description: Type is the type of the resource Only Secrets
                          and ConfigMaps are supported
                        type: string
                    type: object
                  type: array
                web:
                  properties:
                    conf:
                      properties:
                        fromKey:
                          description: Key to select from the source
                          type: string
                        generate:
                          description: Generate if specified defines how the parameter
                            value will be generated
                          type: string
                        key:
                          description: "Key of the parameter, can be mounted as as
                            an environment variable, used in template or as the key
                            in the key:value data fied in the configmap or secret
                            \n Key must be unique"
                          type: string
                        mountFrom:
                          description: MountPath specifies where the parameter will
                            be mounted as a file
                          properties:
                            path:
                              type: string
                            subPath:
                              type: string
                          type: object
                        mountType:
                          description: MountType defined how the parameter will be
                            mounted in the pod Defaults to EnvFile
                          type: string
                        ref:
                          description: Name of the referent.
                          type: string
                        refType:
                          description: Type of the parameter's source Defaults to
                            the parameter type if not specified
                          type: string
                        type:
                          description: Type specifies specifies the parameter type
                          type: string
                        value:
                          description: Value of the paramater, should not contain
                            secret values If it is a template, ParameterType should
                            be template
                          type: string
                      type: object
                    createOptions:
                      properties:
                        commonMeta:
                          description: "ObjectMeta meta is a stripped down version
                            of the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                            with only user defined specs \n This type can be used
                            in an application CRD ObjectMeta implements the Meta interface
                            and can be used to mutates an object"
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: 'Annotations is an unstructured key value
                                map stored with a resource that may be set by external
                                tools to store and retrieve arbitrary metadata. They
                                are not queryable and should be preserved when modifying
                                objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: 'Map of string keys and values that can
                                be used to organize and categorize (scope and select)
                                objects. May match selectors of replication controllers
                                and services. More info: http://kubernetes.io/docs/user-guide/labels'
                              type: object
                            name:
                              description: 'Name must be unique within a namespace.
                                Is required when creating resources, although some
                                resources may allow a client to request the generation
                                of an appropriate name automatically. Name is primarily
                                intended for creation idempotence and configuration
                                definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                              type: string
                            namespace:
                              description: "Namespace defines the space within each
                                name must be unique. An empty namespace is equivalent
                                to the \"default\" namespace, but \"default\" is the
                                canonical representation. Not all objects are required
                                to be scoped to a namespace - the value of this field
                                for those objects will be empty. \n Must be a DNS_LABEL.
                                Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
                              type: string
                          type: object
                        configMeta:
                          description: "ObjectMeta meta is a stripped down version
                            of the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                            with only user defined specs \n This type can be used
                            in an application CRD ObjectMeta implements the Meta interface
                            and can be used to mutates an object"
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: 'Annotations is an unstructured key value
                                map stored with a resource that may be set by external
                                tools to store and retrieve arbitrary metadata. They
                                are not queryable and should be preserved when modifying
                                objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: 'Map of string keys and values that can
                                be used to organize and categorize (scope and select)
                                objects. May match selectors of replication controllers
                                and services. More info: http://kubernetes.io/docs/user-guide/labels'
                              type: object
                            name:
                              description: 'Name must be unique within a namespace.
                                Is required when creating resources, although some
                                resources may allow a client to request the generation
                                of an appropriate name automatically. Name is primarily
                                intended for creation idempotence and configuration
                                definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                              type: string
                            namespace:
                              description: "Namespace defines the space within each
                                name must be unique. An empty namespace is equivalent
                                to the \"default\" namespace, but \"default\" is the
                                canonical representation. Not all objects are required
                                to be scoped to a namespace - the value of this field
                                for those objects will be empty. \n Must be a DNS_LABEL.
                                Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
                              type: string
                          type: object
                        generate:
                          type: string
                        secretMeta:
                          description: "ObjectMeta meta is a stripped down version
                            of the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                            with only user defined specs \n This type can be used
                            in an application CRD ObjectMeta implements the Meta interface
                            and can be used to mutates an object"
                          properties:
                            annotations:
                              additionalProperties:
                                type: string
                              description: 'Annotations is an unstructured key value
                                map stored with a resource that may be set by external
                                tools to store and retrieve arbitrary metadata. They
                                are not queryable and should be preserved when modifying
                                objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                              type: object
                            labels:
                              additionalProperties:
                                type: string
                              description: 'Map of string keys and values that can
                                be used to organize and categorize (scope and select)
                                objects. May match selectors of replication controllers
                                and services. More info: http://kubernetes.io/docs/user-guide/labels'
                              type: object
                            name:
                              description: 'Name must be unique within a namespace.
                                Is required when creating resources, although some
                                resources may allow a client to request the generation
                                of an appropriate name automatically. Name is primarily
                                intended for creation idempotence and configuration
                                definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                              type: string
                            namespace:
                              description: "Namespace defines the space within each
                                name must be unique. An empty namespace is equivalent
                                to the \"default\" namespace, but \"default\" is the
                                canonical representation. Not all objects are required
                                to be scoped to a namespace - the value of this field
                                for those objects will be empty. \n Must be a DNS_LABEL.
                                Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
                              type: string
                          type: object
                        type:
                          type: string
                      type: object
                    sources:
                      items:
                        properties:
                          ref:
                            description: Ref is the name of a resource in the same
                              namespace
                            type: string
                          type:
                            description: Type is the type of the resource Only Secrets
                              and ConfigMaps are supported
                            type: string
                        type: object
                      type: array
                  type: object
              type: object
            version:
              type: string
            web:
              properties:
                commonMeta:
                  description: "ObjectMeta meta is a stripped down version of the
                    ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                    with only user defined specs \n This type can be used in an application
                    CRD ObjectMeta implements the Meta interface and can be used to
                    mutates an object"
                  properties:
                    annotations:
                      additionalProperties:
                        type: string
                      description: 'Annotations is an unstructured key value map stored
                        with a resource that may be set by external tools to store
                        and retrieve arbitrary metadata. They are not queryable and
                        should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                      type: object
                    labels:
                      additionalProperties:
                        type: string
                      description: 'Map of string keys and values that can be used
                        to organize and categorize (scope and select) objects. May
                        match selectors of replication controllers and services. More
                        info: http://kubernetes.io/docs/user-guide/labels'
                      type: object
                    name:
                      description: 'Name must be unique within a namespace. Is required
                        when creating resources, although some resources may allow
                        a client to request the generation of an appropriate name
                        automatically. Name is primarily intended for creation idempotence
                        and configuration definition. Cannot be updated. More info:
                        http://kubernetes.io/docs/user-guide/identifiers#names'
                      type: string
                    namespace:
                      description: "Namespace defines the space within each name must
                        be unique. An empty namespace is equivalent to the \"default\"
                        namespace, but \"default\" is the canonical representation.
                        Not all objects are required to be scoped to a namespace -
                        the value of this field for those objects will be empty. \n
                        Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces"
                      type: string
                  type: object
                deployment:
                  description: Deployment is the specification of the desired behavior
                    of the Deployment. It is a stripped down version of https://godoc.org/k8s.io/api/apps/v1#Deployment
                    with only user definied specs
                  properties:
                    affinity:
                      description: If specified, the pod's scheduling constraints
                      properties:
                        nodeAffinity:
                          description: Describes node affinity scheduling rules for
                            the pod.
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: The scheduler will prefer to schedule pods
                                to nodes that satisfy the affinity expressions specified
                                by this field, but it may choose a node that violates
                                one or more of the expressions. The node that is most
                                preferred is the one with the greatest sum of weights,
                                i.e. for each node that meets all of the scheduling
                                requirements (resource request, requiredDuringScheduling
                                affinity expressions, etc.), compute a sum by iterating
                                through the elements of this field and adding "weight"
                                to the sum if the node matches the corresponding matchExpressions;
                                the node(s) with the highest sum are the most preferred.
                              items:
                                description: An empty preferred scheduling term matches
                                  all objects with implicit weight 0 (i.e. it's a
                                  no-op). A null preferred scheduling term matches
                                  no objects (i.e. is also a no-op).
                                properties:
                                  preference:
                                    description: A node selector term, associated
                                      with the corresponding weight.
                                    properties:
                                      matchExpressions:
                                        description: A list of node selector requirements
                                          by node's labels.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchFields:
                                        description: A list of node selector requirements
                                          by node's fields.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                    type: object
                                  weight:
                                    description: Weight associated with matching the
                                      corresponding nodeSelectorTerm, in the range
                                      1-100.
                                    format: int32
                                    type: integer
                                required:
                                - preference
                                - weight
                                type: object
                              type: array
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: If the affinity requirements specified
                                by this field are not met at scheduling time, the
                                pod will not be scheduled onto the node. If the affinity
                                requirements specified by this field cease to be met
                                at some point during pod execution (e.g. due to an
                                update), the system may or may not try to eventually
                                evict the pod from its node.
                              properties:
                                nodeSelectorTerms:
                                  description: Required. A list of node selector terms.
                                    The terms are ORed.
                                  items:
                                    description: A null or empty node selector term
                                      matches no objects. The requirements of them
                                      are ANDed. The TopologySelectorTerm type implements
                                      a subset of the NodeSelectorTerm.
                                    properties:
                                      matchExpressions:
                                        description: A list of node selector requirements
                                          by node's labels.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchFields:
                                        description: A list of node selector requirements
                                          by node's fields.
                                        items:
                                          description: A node selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: The label key that the
                                                selector applies to.
                                              type: string
                                            operator:
                                              description: Represents a key's relationship
                                                to a set of values. Valid operators
                                                are In, NotIn, Exists, DoesNotExist.
                                                Gt, and Lt.
                                              type: string
                                            values:
                                              description: An array of string values.
                                                If the operator is In or NotIn, the
                                                values array must be non-empty. If
                                                the operator is Exists or DoesNotExist,
                                                the values array must be empty. If
                                                the operator is Gt or Lt, the values
                                                array must have a single element,
                                                which will be interpreted as an integer.
                                                This array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                    type: object
                                  type: array
                              required:
                              - nodeSelectorTerms
                              type: object
                          type: object
                        podAffinity:
                          description: Describes pod affinity scheduling rules (e.g.
                            co-locate this pod in the same node, zone, etc. as some
                            other pod(s)).
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: The scheduler will prefer to schedule pods
                                to nodes that satisfy the affinity expressions specified
                                by this field, but it may choose a node that violates
                                one or more of the expressions. The node that is most
                                preferred is the one with the greatest sum of weights,
                                i.e. for each node that meets all of the scheduling
                                requirements (resource request, requiredDuringScheduling
                                affinity expressions, etc.), compute a sum by iterating
                                through the elements of this field and adding "weight"
                                to the sum if the node has pods which matches the
                                corresponding podAffinityTerm; the node(s) with the
                                highest sum are the most preferred.
                              items:
                                description: The weights of all of the matched WeightedPodAffinityTerm
                                  fields are added per-node to find the most preferred
                                  node(s)
                                properties:
                                  podAffinityTerm:
                                    description: Required. A pod affinity term, associated
                                      with the corresponding weight.
                                    properties:
                                      labelSelector:
                                        description: A label query over a set of resources,
                                          in this case pods.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list
                                              of label selector requirements. The
                                              requirements are ANDed.
                                            items:
                                              description: A label selector requirement
                                                is a selector that contains values,
                                                a key, and an operator that relates
                                                the key and values.
                                              properties:
                                                key:
                                                  description: key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: operator represents
                                                    a key's relationship to a set
                                                    of values. Valid operators are
                                                    In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                values:
                                                  description: values is an array
                                                    of string values. If the operator
                                                    is In or NotIn, the values array
                                                    must be non-empty. If the operator
                                                    is Exists or DoesNotExist, the
                                                    values array must be empty. This
                                                    array is replaced during a strategic
                                                    merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: matchLabels is a map of {key,value}
                                              pairs. A single {key,value} in the matchLabels
                                              map is equivalent to an element of matchExpressions,
                                              whose key field is "key", the operator
                                              is "In", and the values array contains
                                              only "value". The requirements are ANDed.
                                            type: object
                                        type: object
                                      namespaces:
                                        description: namespaces specifies which namespaces
                                          the labelSelector applies to (matches against);
                                          null or empty list means "this pod's namespace"
                                        items:
                                          type: string
                                        type: array
                                      topologyKey:
                                        description: This pod should be co-located
                                          (affinity) or not co-located (anti-affinity)
                                          with the pods matching the labelSelector
                                          in the specified namespaces, where co-located
                                          is defined as running on a node whose value
                                          of the label with key topologyKey matches
                                          that of any node on which any of the selected
                                          pods is running. Empty topologyKey is not
                                          allowed.
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    description: weight associated with matching the
                                      corresponding podAffinityTerm, in the range
                                      1-100.
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: If the affinity requirements specified
                                by this field are not met at scheduling time, the
                                pod will not be scheduled onto the node. If the affinity
                                requirements specified by this field cease to be met
                                at some point during pod execution (e.g. due to a
                                pod label update), the system may or may not try to
                                eventually evict the pod from its node. When there
                                are multiple elements, the lists of nodes corresponding
                                to each podAffinityTerm are intersected, i.e. all
                                terms must be satisfied.
                              items:
                                description: Defines a set of pods (namely those matching
                                  the labelSelector relative to the given namespace(s))
                                  that this pod should be co-located (affinity) or
                                  not co-located (anti-affinity) with, where co-located
                                  is defined as running on a node whose value of the
                                  label with key <topologyKey> matches that of any
                                  node on which a pod of the set of pods is running
                                properties:
                                  labelSelector:
                                    description: A label query over a set of resources,
                                      in this case pods.
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of
                                          label selector requirements. The requirements
                                          are ANDed.
                                        items:
                                          description: A label selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: key is the label key that
                                                the selector applies to.
                                              type: string
                                            operator:
                                              description: operator represents a key's
                                                relationship to a set of values. Valid
                                                operators are In, NotIn, Exists and
                                                DoesNotExist.
                                              type: string
                                            values:
                                              description: values is an array of string
                                                values. If the operator is In or NotIn,
                                                the values array must be non-empty.
                                                If the operator is Exists or DoesNotExist,
                                                the values array must be empty. This
                                                array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: matchLabels is a map of {key,value}
                                          pairs. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                  namespaces:
                                    description: namespaces specifies which namespaces
                                      the labelSelector applies to (matches against);
                                      null or empty list means "this pod's namespace"
                                    items:
                                      type: string
                                    type: array
                                  topologyKey:
                                    description: This pod should be co-located (affinity)
                                      or not co-located (anti-affinity) with the pods
                                      matching the labelSelector in the specified
                                      namespaces, where co-located is defined as running
                                      on a node whose value of the label with key
                                      topologyKey matches that of any node on which
                                      any of the selected pods is running. Empty topologyKey
                                      is not allowed.
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                          type: object
                        podAntiAffinity:
                          description: Describes pod anti-affinity scheduling rules
                            (e.g. avoid putting this pod in the same node, zone, etc.
                            as some other pod(s)).
                          properties:
                            preferredDuringSchedulingIgnoredDuringExecution:
                              description: The scheduler will prefer to schedule pods
                                to nodes that satisfy the anti-affinity expressions
                                specified by this field, but it may choose a node
                                that violates one or more of the expressions. The
                                node that is most preferred is the one with the greatest
                                sum of weights, i.e. for each node that meets all
                                of the scheduling requirements (resource request,
                                requiredDuringScheduling anti-affinity expressions,
                                etc.), compute a sum by iterating through the elements
                                of this field and adding "weight" to the sum if the
                                node has pods which matches the corresponding podAffinityTerm;
                                the node(s) with the highest sum are the most preferred.
                              items:
                                description: The weights of all of the matched WeightedPodAffinityTerm
                                  fields are added per-node to find the most preferred
                                  node(s)
                                properties:
                                  podAffinityTerm:
                                    description: Required. A pod affinity term, associated
                                      with the corresponding weight.
                                    properties:
                                      labelSelector:
                                        description: A label query over a set of resources,
                                          in this case pods.
                                        properties:
                                          matchExpressions:
                                            description: matchExpressions is a list
                                              of label selector requirements. The
                                              requirements are ANDed.
                                            items:
                                              description: A label selector requirement
                                                is a selector that contains values,
                                                a key, and an operator that relates
                                                the key and values.
                                              properties:
                                                key:
                                                  description: key is the label key
                                                    that the selector applies to.
                                                  type: string
                                                operator:
                                                  description: operator represents
                                                    a key's relationship to a set
                                                    of values. Valid operators are
                                                    In, NotIn, Exists and DoesNotExist.
                                                  type: string
                                                values:
                                                  description: values is an array
                                                    of string values. If the operator
                                                    is In or NotIn, the values array
                                                    must be non-empty. If the operator
                                                    is Exists or DoesNotExist, the
                                                    values array must be empty. This
                                                    array is replaced during a strategic
                                                    merge patch.
                                                  items:
                                                    type: string
                                                  type: array
                                              required:
                                              - key
                                              - operator
                                              type: object
                                            type: array
                                          matchLabels:
                                            additionalProperties:
                                              type: string
                                            description: matchLabels is a map of {key,value}
                                              pairs. A single {key,value} in the matchLabels
                                              map is equivalent to an element of matchExpressions,
                                              whose key field is "key", the operator
                                              is "In", and the values array contains
                                              only "value". The requirements are ANDed.
                                            type: object
                                        type: object
                                      namespaces:
                                        description: namespaces specifies which namespaces
                                          the labelSelector applies to (matches against);
                                          null or empty list means "this pod's namespace"
                                        items:
                                          type: string
                                        type: array
                                      topologyKey:
                                        description: This pod should be co-located
                                          (affinity) or not co-located (anti-affinity)
                                          with the pods matching the labelSelector
                                          in the specified namespaces, where co-located
                                          is defined as running on a node whose value
                                          of the label with key topologyKey matches
                                          that of any node on which any of the selected
                                          pods is running. Empty topologyKey is not
                                          allowed.
                                        type: string
                                    required:
                                    - topologyKey
                                    type: object
                                  weight:
                                    description: weight associated with matching the
                                      corresponding podAffinityTerm, in the range
                                      1-100.
                                    format: int32
                                    type: integer
                                required:
                                - podAffinityTerm
                                - weight
                                type: object
                              type: array
                            requiredDuringSchedulingIgnoredDuringExecution:
                              description: If the anti-affinity requirements specified
                                by this field are not met at scheduling time, the
                                pod will not be scheduled onto the node. If the anti-affinity
                                requirements specified by this field cease to be met
                                at some point during pod execution (e.g. due to a
                                pod label update), the system may or may not try to
                                eventually evict the pod from its node. When there
                                are multiple elements, the lists of nodes corresponding
                                to each podAffinityTerm are intersected, i.e. all
                                terms must be satisfied.
                              items:
                                description: Defines a set of pods (namely those matching
                                  the labelSelector relative to the given namespace(s))
                                  that this pod should be co-located (affinity) or
                                  not co-located (anti-affinity) with, where co-located
                                  is defined as running on a node whose value of the
                                  label with key <topologyKey> matches that of any
                                  node on which a pod of the set of pods is running
                                properties:
                                  labelSelector:
                                    description: A label query over a set of resources,
                                      in this case pods.
                                    properties:
                                      matchExpressions:
                                        description: matchExpressions is a list of
                                          label selector requirements. The requirements
                                          are ANDed.
                                        items:
                                          description: A label selector requirement
                                            is a selector that contains values, a
                                            key, and an operator that relates the
                                            key and values.
                                          properties:
                                            key:
                                              description: key is the label key that
                                                the selector applies to.
                                              type: string
                                            operator:
                                              description: operator represents a key's
                                                relationship to a set of values. Valid
                                                operators are In, NotIn, Exists and
                                                DoesNotExist.
                                              type: string
                                            values:
                                              description: values is an array of string
                                                values. If the operator is In or NotIn,
                                                the values array must be non-empty.
                                                If the operator is Exists or DoesNotExist,
                                                the values array must be empty. This
                                                array is replaced during a strategic
                                                merge patch.
                                              items:
                                                type: string
                                              type: array
                                          required:
                                          - key
                                          - operator
                                          type: object
                                        type: array
                                      matchLabels:
                                        additionalProperties:
                                          type: string
                                        description: matchLabels is a map of {key,value}
                                          pairs. A single {key,value} in the matchLabels
                                          map is equivalent to an element of matchExpressions,
                                          whose key field is "key", the operator is
                                          "In", and the values array contains only
                                          "value". The requirements are ANDed.
                                        type: object
                                    type: object
                                  namespaces:
                                    description: namespaces specifies which namespaces
                                      the labelSelector applies to (matches against);
                                      null or empty list means "this pod's namespace"
                                    items:
                                      type: string
                                    type: array
                                  topologyKey:
                                    description: This pod should be co-located (affinity)
                                      or not co-located (anti-affinity) with the pods
                                      matching the labelSelector in the specified
                                      namespaces, where co-located is defined as running
                                      on a node whose value of the label with key
                                      topologyKey matches that of any node on which
                                      any of the selected pods is running. Empty topologyKey
                                      is not allowed.
                                    type: string
                                required:
                                - topologyKey
                                type: object
                              type: array
                          type: object
                      type: object
                    args:
                      description: 'Arguments to the entrypoint. The docker image''s
                        CMD is used if this is not provided. Variable references $(VAR_NAME)
                        are expanded using the container''s environment. If a variable
                        cannot be resolved, the reference in the input string will
                        be unchanged. The $(VAR_NAME) syntax can be escaped with a
                        double $$, ie: $$(VAR_NAME). Escaped references will never
                        be expanded, regardless of whether the variable exists or
                        not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                      items:
                        type: string
                      type: array
                    command:
                      description: 'Entrypoint array. Not executed within a shell.
                        The docker image''s ENTRYPOINT is used if this is not provided.
                        Variable references $(VAR_NAME) are expanded using the container''s
                        environment. If a variable cannot be resolved, the reference
                        in the input string will be unchanged. The $(VAR_NAME) syntax
                        can be escaped with a double $$, ie: $$(VAR_NAME). Escaped
                        references will never be expanded, regardless of whether the
                        variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                      items:
                        type: string
                      type: array
                    extraContainers:
                      description: List of containers belonging to the pod. Containers
                        cannot currently be added or removed. There must be at least
                        one container in a Pod. Cannot be updated.
                      items:
                        description: "Container is the specification of the desired
                          behavior of the Container. It is a stripped down version
                          of https://godoc.org/k8s.io/api/core/v1#Container with only
                          user definied specs \n Parameters are used to define how
                          settings are passed on to the container."
                        properties:
                          args:
                            description: 'Arguments to the entrypoint. The docker
                              image''s CMD is used if this is not provided. Variable
                              references $(VAR_NAME) are expanded using the container''s
                              environment. If a variable cannot be resolved, the reference
                              in the input string will be unchanged. The $(VAR_NAME)
                              syntax can be escaped with a double $$, ie: $$(VAR_NAME).
                              Escaped references will never be expanded, regardless
                              of whether the variable exists or not. Cannot be updated.
                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          command:
                            description: 'Entrypoint array. Not executed within a
                              shell. The docker image''s ENTRYPOINT is used if this
                              is not provided. Variable references $(VAR_NAME) are
                              expanded using the container''s environment. If a variable
                              cannot be resolved, the reference in the input string
                              will be unchanged. The $(VAR_NAME) syntax can be escaped
                              with a double $$, ie: $$(VAR_NAME). Escaped references
                              will never be expanded, regardless of whether the variable
                              exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          image:
                            description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                              This field is optional to allow higher level config
                              management to default or override container images in
                              workload controllers like Deployments and StatefulSets.'
                            type: string
                          imagePullPolicy:
                            description: 'Image pull policy. One of Always, Never,
                              IfNotPresent. Defaults to Always if :latest tag is specified,
                              or IfNotPresent otherwise. Cannot be updated. More info:
                              https://kubernetes.io/docs/concepts/containers/images#updating-images'
                            type: string
                          inline:
                            description: Periodic probe for container health
                            properties:
                              livenessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              readinessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                            type: object
                          name:
                            description: Name of the container specified as a DNS_LABEL.
                              Each container in a pod must have a unique name (DNS_LABEL).
                              Cannot be updated.
                            type: string
                          parameters:
                            description: SettingsSpec defines a list of parameters
                              and references to resources from which those parameters
                              can be fetched Only secrets and configmaps in the same
                              namespace are supported as references
                            properties:
                              parameters:
                                description: Parameters is a list of parameters
                                items:
                                  properties:
                                    fromKey:
                                      description: Key to select from the source
                                      type: string
                                    generate:
                                      description: Generate if specified defines how
                                        the parameter value will be generated
                                      type: string
                                    key:
                                      description: "Key of the parameter, can be mounted
                                        as as an environment variable, used in template
                                        or as the key in the key:value data fied in
                                        the configmap or secret \n Key must be unique"
                                      type: string
                                    mountFrom:
                                      description: MountPath specifies where the parameter
                                        will be mounted as a file
                                      properties:
                                        path:
                                          type: string
                                        subPath:
                                          type: string
                                      type: object
                                    mountType:
                                      description: MountType defined how the parameter
                                        will be mounted in the pod Defaults to EnvFile
                                      type: string
                                    ref:
                                      description: Name of the referent.
                                      type: string
                                    refType:
                                      description: Type of the parameter's source
                                        Defaults to the parameter type if not specified
                                      type: string
                                    type:
                                      description: Type specifies specifies the parameter
                                        type
                                      type: string
                                    value:
                                      description: Value of the paramater, should
                                        not contain secret values If it is a template,
                                        ParameterType should be template
                                      type: string
                                  type: object
                                type: array
                              sources:
                                description: Sources is a list of sources for the
                                  parameters from kubernetes resources in the same
                                  namespace Sources []Source `json:"sources,omitempty"`
                                items:
                                  properties:
                                    ref:
                                      description: Ref is the name of a resource in
                                        the same namespace
                                      type: string
                                    type:
                                      description: Type is the type of the resource
                                        Only Secrets and ConfigMaps are supported
                                      type: string
                                  type: object
                                type: array
                            type: object
                          ports:
                            description: List of ports to expose from the container.
                              Exposing a port here gives the system additional information
                              about the network connections a container uses, but
                              is primarily informational. Not specifying a port here
                              DOES NOT prevent that port from being exposed. Any port
                              which is listening on the default "0.0.0.0" address
                              inside a container will be accessible from the network.
                              Cannot be updated.
                            items:
                              description: ContainerPort represents a network port
                                in a single container.
                              properties:
                                containerPort:
                                  description: Number of port to expose on the pod's
                                    IP address. This must be a valid port number,
                                    0 < x < 65536.
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port
                                    to.
                                  type: string
                                hostPort:
                                  description: Number of port to expose on the host.
                                    If specified, this must be a valid port number,
                                    0 < x < 65536. If HostNetwork is specified, this
                                    must match ContainerPort. Most containers do not
                                    need this.
                                  format: int32
                                  type: integer
                                name:
                                  description: If specified, this must be an IANA_SVC_NAME
                                    and unique within the pod. Each named port in
                                    a pod must have a unique name. Name for the port
                                    that can be referred to by services.
                                  type: string
                                protocol:
                                  description: Protocol for port. Must be UDP, TCP,
                                    or SCTP. Defaults to "TCP".
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                        type: object
                      type: array
                    image:
                      description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                        This field is optional to allow higher level config management
                        to default or override container images in workload controllers
                        like Deployments and StatefulSets.'
                      type: string
                    imagePullPolicy:
                      description: 'Image pull policy. One of Always, Never, IfNotPresent.
                        Defaults to Always if :latest tag is specified, or IfNotPresent
                        otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images'
                      type: string
                    imagePullSecrets:
                      description: 'ImagePullSecrets is an optional list of references
                        to secrets in the same namespace to use for pulling any of
                        the images used by this PodSpec. If specified, these secrets
                        will be passed to individual puller implementations for them
                        to use. For example, in the case of docker, only DockerConfig
                        type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod'
                      items:
                        description: LocalObjectReference contains enough information
                          to let you locate the referenced object inside the same
                          namespace.
                        properties:
                          name:
                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
                              TODO: Add other useful fields. apiVersion, kind, uid?'
                            type: string
                        type: object
                      type: array
                    initContainers:
                      description: 'List of initialization containers belonging to
                        the pod. Init containers are executed in order prior to containers
                        being started. If any init container fails, the pod is considered
                        to have failed and is handled according to its restartPolicy.
                        The name for an init container or normal container must be
                        unique among all containers. Init containers may not have
                        Lifecycle actions, Readiness probes, Liveness probes, or Startup
                        probes. The resourceRequirements of an init container are
                        taken into account during scheduling by finding the highest
                        request/limit for each resource type, and then using the max
                        of of that value or the sum of the normal containers. Limits
                        are applied to init containers in a similar fashion. Init
                        containers cannot currently be added or removed. Cannot be
                        updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/'
                      items:
                        description: "Container is the specification of the desired
                          behavior of the Container. It is a stripped down version
                          of https://godoc.org/k8s.io/api/core/v1#Container with only
                          user definied specs \n Parameters are used to define how
                          settings are passed on to the container."
                        properties:
                          args:
                            description: 'Arguments to the entrypoint. The docker
                              image''s CMD is used if this is not provided. Variable
                              references $(VAR_NAME) are expanded using the container''s
                              environment. If a variable cannot be resolved, the reference
                              in the input string will be unchanged. The $(VAR_NAME)
                              syntax can be escaped with a double $$, ie: $$(VAR_NAME).
                              Escaped references will never be expanded, regardless
                              of whether the variable exists or not. Cannot be updated.
                              More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          command:
                            description: 'Entrypoint array. Not executed within a
                              shell. The docker image''s ENTRYPOINT is used if this
                              is not provided. Variable references $(VAR_NAME) are
                              expanded using the container''s environment. If a variable
                              cannot be resolved, the reference in the input string
                              will be unchanged. The $(VAR_NAME) syntax can be escaped
                              with a double $$, ie: $$(VAR_NAME). Escaped references
                              will never be expanded, regardless of whether the variable
                              exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell'
                            items:
                              type: string
                            type: array
                          image:
                            description: 'Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images
                              This field is optional to allow higher level config
                              management to default or override container images in
                              workload controllers like Deployments and StatefulSets.'
                            type: string
                          imagePullPolicy:
                            description: 'Image pull policy. One of Always, Never,
                              IfNotPresent. Defaults to Always if :latest tag is specified,
                              or IfNotPresent otherwise. Cannot be updated. More info:
                              https://kubernetes.io/docs/concepts/containers/images#updating-images'
                            type: string
                          inline:
                            description: Periodic probe for container health
                            properties:
                              livenessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                              readinessProbe:
                                description: 'Periodic probe of container liveness.
                                  Container will be restarted if the probe fails.
                                  Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                properties:
                                  exec:
                                    description: One and only one of the following
                                      should be specified. Exec specifies the action
                                      to take.
                                    properties:
                                      command:
                                        description: Command is the command line to
                                          execute inside the container, the working
                                          directory for the command  is root ('/')
                                          in the container's filesystem. The command
                                          is simply exec'd, it is not run inside a
                                          shell, so traditional shell instructions
                                          ('|', etc) won't work. To use a shell, you
                                          need to explicitly call out to that shell.
                                          Exit status of 0 is treated as live/healthy
                                          and non-zero is unhealthy.
                                        items:
                                          type: string
                                        type: array
                                    type: object
                                  failureThreshold:
                                    description: Minimum consecutive failures for
                                      the probe to be considered failed after having
                                      succeeded. Defaults to 3. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  httpGet:
                                    description: HTTPGet specifies the http request
                                      to perform.
                                    properties:
                                      host:
                                        description: Host name to connect to, defaults
                                          to the pod IP. You probably want to set
                                          "Host" in httpHeaders instead.
                                        type: string
                                      httpHeaders:
                                        description: Custom headers to set in the
                                          request. HTTP allows repeated headers.
                                        items:
                                          description: HTTPHeader describes a custom
                                            header to be used in HTTP probes
                                          properties:
                                            name:
                                              description: The header field name
                                              type: string
                                            value:
                                              description: The header field value
                                              type: string
                                          required:
                                          - name
                                          - value
                                          type: object
                                        type: array
                                      path:
                                        description: Path to access on the HTTP server.
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Name or number of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                      scheme:
                                        description: Scheme to use for connecting
                                          to the host. Defaults to HTTP.
                                        type: string
                                    required:
                                    - port
                                    type: object
                                  initialDelaySeconds:
                                    description: 'Number of seconds after the container
                                      has started before liveness probes are initiated.
                                      More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                  periodSeconds:
                                    description: How often (in seconds) to perform
                                      the probe. Default to 10 seconds. Minimum value
                                      is 1.
                                    format: int32
                                    type: integer
                                  successThreshold:
                                    description: Minimum consecutive successes for
                                      the probe to be considered successful after
                                      having failed. Defaults to 1. Must be 1 for
                                      liveness and startup. Minimum value is 1.
                                    format: int32
                                    type: integer
                                  tcpSocket:
                                    description: 'TCPSocket specifies an action involving
                                      a TCP port. TCP hooks not yet supported TODO:
                                      implement a realistic TCP lifecycle hook'
                                    properties:
                                      host:
                                        description: 'Optional: Host name to connect
                                          to, defaults to the pod IP.'
                                        type: string
                                      port:
                                        anyOf:
                                        - type: integer
                                        - type: string
                                        description: Number or name of the port to
                                          access on the container. Number must be
                                          in the range 1 to 65535. Name must be an
                                          IANA_SVC_NAME.
                                        x-kubernetes-int-or-string: true
                                    required:
                                    - port
                                    type: object
                                  timeoutSeconds:
                                    description: 'Number of seconds after which the
                                      probe times out. Defaults to 1 second. Minimum
                                      value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                                    format: int32
                                    type: integer
                                type: object
                            type: object
                          name:
                            description: Name of the container specified as a DNS_LABEL.
                              Each container in a pod must have a unique name (DNS_LABEL).
                              Cannot be updated.
                            type: string
                          parameters:
                            description: SettingsSpec defines a list of parameters
                              and references to resources from which those parameters
                              can be fetched Only secrets and configmaps in the same
                              namespace are supported as references
                            properties:
                              parameters:
                                description: Parameters is a list of parameters
                                items:
                                  properties:
                                    fromKey:
                                      description: Key to select from the source
                                      type: string
                                    generate:
                                      description: Generate if specified defines how
                                        the parameter value will be generated
                                      type: string
                                    key:
                                      description: "Key of the parameter, can be mounted
                                        as as an environment variable, used in template
                                        or as the key in the key:value data fied in
                                        the configmap or secret \n Key must be unique"
                                      type: string
                                    mountFrom:
                                      description: MountPath specifies where the parameter
                                        will be mounted as a file
                                      properties:
                                        path:
                                          type: string
                                        subPath:
                                          type: string
                                      type: object
                                    mountType:
                                      description: MountType defined how the parameter
                                        will be mounted in the pod Defaults to EnvFile
                                      type: string
                                    ref:
                                      description: Name of the referent.
                                      type: string
                                    refType:
                                      description: Type of the parameter's source
                                        Defaults to the parameter type if not specified
                                      type: string
                                    type:
                                      description: Type specifies specifies the parameter
                                        type
                                      type: string
                                    value:
                                      description: Value of the paramater, should
                                        not contain secret values If it is a template,
                                        ParameterType should be template
                                      type: string
                                  type: object
                                type: array
                              sources:
                                description: Sources is a list of sources for the
                                  parameters from kubernetes resources in the same
                                  namespace Sources []Source `json:"sources,omitempty"`
                                items:
                                  properties:
                                    ref:
                                      description: Ref is the name of a resource in
                                        the same namespace
                                      type: string
                                    type:
                                      description: Type is the type of the resource
                                        Only Secrets and ConfigMaps are supported
                                      type: string
                                  type: object
                                type: array
                            type: object
                          ports:
                            description: List of ports to expose from the container.
                              Exposing a port here gives the system additional information
                              about the network connections a container uses, but
                              is primarily informational. Not specifying a port here
                              DOES NOT prevent that port from being exposed. Any port
                              which is listening on the default "0.0.0.0" address
                              inside a container will be accessible from the network.
                              Cannot be updated.
                            items:
                              description: ContainerPort represents a network port
                                in a single container.
                              properties:
                                containerPort:
                                  description: Number of port to expose on the pod's
                                    IP address. This must be a valid port number,
                                    0 < x < 65536.
                                  format: int32
                                  type: integer
                                hostIP:
                                  description: What host IP to bind the external port
                                    to.
                                  type: string
                                hostPort:
                                  description: Number of port to expose on the host.
                                    If specified, this must be a valid port number,
                                    0 < x < 65536. If HostNetwork is specified, this
                                    must match ContainerPort. Most containers do not
                                    need this.
                                  format: int32
                                  type: integer
                                name:
                                  description: If specified, this must be an IANA_SVC_NAME
                                    and unique within the pod. Each named port in
                                    a pod must have a unique name. Name for the port
                                    that can be referred to by services.
                                  type: string
                                protocol:
                                  description: Protocol for port. Must be UDP, TCP,
                                    or SCTP. Defaults to "TCP".
                                  type: string
                              required:
                              - containerPort
                              type: object
                            type: array
                        type: object
                      type: array
                    inline:
                      description: Periodic probe for container health
                      properties:
                        livenessProbe:
                          description: 'Periodic probe of container liveness. Container
                            will be restarted if the probe fails. Cannot be updated.
                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: One and only one of the following should
                                be specified. Exec specifies the action to take.
                              properties:
                                command:
                                  description: Command is the command line to execute
                                    inside the container, the working directory for
                                    the command  is root ('/') in the container's
                                    filesystem. The command is simply exec'd, it is
                                    not run inside a shell, so traditional shell instructions
                                    ('|', etc) won't work. To use a shell, you need
                                    to explicitly call out to that shell. Exit status
                                    of 0 is treated as live/healthy and non-zero is
                                    unhealthy.
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              description: Minimum consecutive failures for the probe
                                to be considered failed after having succeeded. Defaults
                                to 3. Minimum value is 1.
                              format: int32
                              type: integer
                            httpGet:
                              description: HTTPGet specifies the http request to perform.
                              properties:
                                host:
                                  description: Host name to connect to, defaults to
                                    the pod IP. You probably want to set "Host" in
                                    httpHeaders instead.
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request.
                                    HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header
                                      to be used in HTTP probes
                                    properties:
                                      name:
                                        description: The header field name
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Name or number of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: Scheme to use for connecting to the
                                    host. Defaults to HTTP.
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container
                                has started before liveness probes are initiated.
                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: How often (in seconds) to perform the probe.
                                Default to 10 seconds. Minimum value is 1.
                              format: int32
                              type: integer
                            successThreshold:
                              description: Minimum consecutive successes for the probe
                                to be considered successful after having failed. Defaults
                                to 1. Must be 1 for liveness and startup. Minimum
                                value is 1.
                              format: int32
                              type: integer
                            tcpSocket:
                              description: 'TCPSocket specifies an action involving
                                a TCP port. TCP hooks not yet supported TODO: implement
                                a realistic TCP lifecycle hook'
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to,
                                    defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Number or name of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe
                                times out. Defaults to 1 second. Minimum value is
                                1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                        readinessProbe:
                          description: 'Periodic probe of container liveness. Container
                            will be restarted if the probe fails. Cannot be updated.
                            More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                          properties:
                            exec:
                              description: One and only one of the following should
                                be specified. Exec specifies the action to take.
                              properties:
                                command:
                                  description: Command is the command line to execute
                                    inside the container, the working directory for
                                    the command  is root ('/') in the container's
                                    filesystem. The command is simply exec'd, it is
                                    not run inside a shell, so traditional shell instructions
                                    ('|', etc) won't work. To use a shell, you need
                                    to explicitly call out to that shell. Exit status
                                    of 0 is treated as live/healthy and non-zero is
                                    unhealthy.
                                  items:
                                    type: string
                                  type: array
                              type: object
                            failureThreshold:
                              description: Minimum consecutive failures for the probe
                                to be considered failed after having succeeded. Defaults
                                to 3. Minimum value is 1.
                              format: int32
                              type: integer
                            httpGet:
                              description: HTTPGet specifies the http request to perform.
                              properties:
                                host:
                                  description: Host name to connect to, defaults to
                                    the pod IP. You probably want to set "Host" in
                                    httpHeaders instead.
                                  type: string
                                httpHeaders:
                                  description: Custom headers to set in the request.
                                    HTTP allows repeated headers.
                                  items:
                                    description: HTTPHeader describes a custom header
                                      to be used in HTTP probes
                                    properties:
                                      name:
                                        description: The header field name
                                        type: string
                                      value:
                                        description: The header field value
                                        type: string
                                    required:
                                    - name
                                    - value
                                    type: object
                                  type: array
                                path:
                                  description: Path to access on the HTTP server.
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Name or number of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                                scheme:
                                  description: Scheme to use for connecting to the
                                    host. Defaults to HTTP.
                                  type: string
                              required:
                              - port
                              type: object
                            initialDelaySeconds:
                              description: 'Number of seconds after the container
                                has started before liveness probes are initiated.
                                More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                            periodSeconds:
                              description: How often (in seconds) to perform the probe.
                                Default to 10 seconds. Minimum value is 1.
                              format: int32
                              type: integer
                            successThreshold:
                              description: Minimum consecutive successes for the probe
                                to be considered successful after having failed. Defaults
                                to 1. Must be 1 for liveness and startup. Minimum
                                value is 1.
                              format: int32
                              type: integer
                            tcpSocket:
                              description: 'TCPSocket specifies an action involving
                                a TCP port. TCP hooks not yet supported TODO: implement
                                a realistic TCP lifecycle hook'
                              properties:
                                host:
                                  description: 'Optional: Host name to connect to,
                                    defaults to the pod IP.'
                                  type: string
                                port:
                                  anyOf:
                                  - type: integer
                                  - type: string
                                  description: Number or name of the port to access
                                    on the container. Number must be in the range
                                    1 to 65535. Name must be an IANA_SVC_NAME.
                                  x-kubernetes-int-or-string: true
                              required:
                              - port
                              type: object
                            timeoutSeconds:
                              description: 'Number of seconds after which the probe
                                times out. Defaults to 1 second. Minimum value is
                                1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes'
                              format: int32
                              type: integer
                          type: object
                      type: object
                    meta:
                      description: "ObjectMeta meta is a stripped down version of
                        the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                        with only user defined specs \n This type can be used in an
                        application CRD ObjectMeta implements the Meta interface and
                        can be used to mutates an object"
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: 'Annotations is an unstructured key value map
                            stored with a resource that may be set by external tools
                            to store and retrieve arbitrary metadata. They are not
                            queryable and should be preserved when modifying objects.
                            More info: http://kubernetes.io/docs/user-guide/annotations'
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: 'Map of string keys and values that can be
                            used to organize and categorize (scope and select) objects.
                            May match selectors of replication controllers and services.
                            More info: http://kubernetes.io/docs/user-guide/labels'
                          type: object
                        name:
                          description: 'Name must be unique within a namespace. Is
                            required when creating resources, although some resources
                            may allow a client to request the generation of an appropriate
                            name automatically. Name is primarily intended for creation
                            idempotence and configuration definition. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                          type: string
                        namespace:
                          description: "Namespace defines the space within each name
                            must be unique. An empty namespace is equivalent to the
                            \"default\" namespace, but \"default\" is the canonical
                            representation. Not all objects are required to be scoped
                            to a namespace - the value of this field for those objects
                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/namespaces"
                          type: string
                      type: object
                    name:
                      description: Name of the container specified as a DNS_LABEL.
                        Each container in a pod must have a unique name (DNS_LABEL).
                        Cannot be updated.
                      type: string
                    nodeSelector:
                      additionalProperties:
                        type: string
                      description: 'NodeSelector is a selector which must be true
                        for the pod to fit on a node. Selector which must match a
                        node''s labels for the pod to be scheduled on that node. More
                        info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/'
                      type: object
                    parameters:
                      description: SettingsSpec defines a list of parameters and references
                        to resources from which those parameters can be fetched Only
                        secrets and configmaps in the same namespace are supported
                        as references
                      properties:
                        parameters:
                          description: Parameters is a list of parameters
                          items:
                            properties:
                              fromKey:
                                description: Key to select from the source
                                type: string
                              generate:
                                description: Generate if specified defines how the
                                  parameter value will be generated
                                type: string
                              key:
                                description: "Key of the parameter, can be mounted
                                  as as an environment variable, used in template
                                  or as the key in the key:value data fied in the
                                  configmap or secret \n Key must be unique"
                                type: string
                              mountFrom:
                                description: MountPath specifies where the parameter
                                  will be mounted as a file
                                properties:
                                  path:
                                    type: string
                                  subPath:
                                    type: string
                                type: object
                              mountType:
                                description: MountType defined how the parameter will
                                  be mounted in the pod Defaults to EnvFile
                                type: string
                              ref:
                                description: Name of the referent.
                                type: string
                              refType:
                                description: Type of the parameter's source Defaults
                                  to the parameter type if not specified
                                type: string
                              type:
                                description: Type specifies specifies the parameter
                                  type
                                type: string
                              value:
                                description: Value of the paramater, should not contain
                                  secret values If it is a template, ParameterType
                                  should be template
                                type: string
                            type: object
                          type: array
                        sources:
                          description: Sources is a list of sources for the parameters
                            from kubernetes resources in the same namespace Sources
                            []Source `json:"sources,omitempty"`
                          items:
                            properties:
                              ref:
                                description: Ref is the name of a resource in the
                                  same namespace
                                type: string
                              type:
                                description: Type is the type of the resource Only
                                  Secrets and ConfigMaps are supported
                                type: string
                            type: object
                          type: array
                      type: object
                    ports:
                      description: List of ports to expose from the container. Exposing
                        a port here gives the system additional information about
                        the network connections a container uses, but is primarily
                        informational. Not specifying a port here DOES NOT prevent
                        that port from being exposed. Any port which is listening
                        on the default "0.0.0.0" address inside a container will be
                        accessible from the network. Cannot be updated.
                      items:
                        description: ContainerPort represents a network port in a
                          single container.
                        properties:
                          containerPort:
                            description: Number of port to expose on the pod's IP
                              address. This must be a valid port number, 0 < x < 65536.
                            format: int32
                            type: integer
                          hostIP:
                            description: What host IP to bind the external port to.
                            type: string
                          hostPort:
                            description: Number of port to expose on the host. If
                              specified, this must be a valid port number, 0 < x <
                              65536. If HostNetwork is specified, this must match
                              ContainerPort. Most containers do not need this.
                            format: int32
                            type: integer
                          name:
                            description: If specified, this must be an IANA_SVC_NAME
                              and unique within the pod. Each named port in a pod
                              must have a unique name. Name for the port that can
                              be referred to by services.
                            type: string
                          protocol:
                            description: Protocol for port. Must be UDP, TCP, or SCTP.
                              Defaults to "TCP".
                            type: string
                        required:
                        - containerPort
                        type: object
                      type: array
                    replicas:
                      description: Number of desired pods. This is a pointer to distinguish
                        between explicit zero and not specified. Defaults to 1.
                      format: int32
                      type: integer
                    resources:
                      description: ResourceRequirements describes the compute resource
                        requirements.
                      properties:
                        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. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                          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. If Requests is omitted for a container,
                            it defaults to Limits if that is explicitly specified,
                            otherwise to an implementation-defined value. More info:
                            https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                          type: object
                      type: object
                    restartPolicy:
                      description: 'Restart policy for all containers within the pod.
                        One of Always, OnFailure, Never. Default to Always. More info:
                        https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy'
                      type: string
                    securityContext:
                      description: 'SecurityContext holds pod-level security attributes
                        and common container settings. Optional: Defaults to empty.  See
                        type description for default values of each field.'
                      properties:
                        fsGroup:
                          description: "A special supplemental group that applies
                            to all containers in a pod. Some volume types allow the
                            Kubelet to change the ownership of that volume to be owned
                            by the pod: \n 1. The owning GID will be the FSGroup 2.
                            The setgid bit is set (new files created in the volume
                            will be owned by FSGroup) 3. The permission bits are OR'd
                            with rw-rw---- \n If unset, the Kubelet will not modify
                            the ownership and permissions of any volume."
                          format: int64
                          type: integer
                        fsGroupChangePolicy:
                          description: 'fsGroupChangePolicy defines behavior of changing
                            ownership and permission of the volume before being exposed
                            inside Pod. This field will only apply to volume types
                            which support fsGroup based ownership(and permissions).
                            It will have no effect on ephemeral volume types such
                            as: secret, configmaps and emptydir. Valid values are
                            "OnRootMismatch" and "Always". If not specified defaults
                            to "Always".'
                          type: string
                        runAsGroup:
                          description: The GID to run the entrypoint of the container
                            process. Uses runtime default if unset. May also be set
                            in SecurityContext.  If set in both SecurityContext and
                            PodSecurityContext, the value specified in SecurityContext
                            takes precedence for that container.
                          format: int64
                          type: integer
                        runAsNonRoot:
                          description: Indicates that the container must run as a
                            non-root user. If true, the Kubelet will validate the
                            image at runtime to ensure that it does not run as UID
                            0 (root) and fail to start the container if it does. If
                            unset or false, no such validation will be performed.
                            May also be set in SecurityContext.  If set in both SecurityContext
                            and PodSecurityContext, the value specified in SecurityContext
                            takes precedence.
                          type: boolean
                        runAsUser:
                          description: The UID to run the entrypoint of the container
                            process. Defaults to user specified in image metadata
                            if unspecified. May also be set in SecurityContext.  If
                            set in both SecurityContext and PodSecurityContext, the
                            value specified in SecurityContext takes precedence for
                            that container.
                          format: int64
                          type: integer
                        seLinuxOptions:
                          description: The SELinux context to be applied to all containers.
                            If unspecified, the container runtime will allocate a
                            random SELinux context for each container.  May also be
                            set in SecurityContext.  If set in both SecurityContext
                            and PodSecurityContext, the value specified in SecurityContext
                            takes precedence for that container.
                          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
                        supplementalGroups:
                          description: A list of groups applied to the first process
                            run in each container, in addition to the container's
                            primary GID.  If unspecified, no groups will be added
                            to any container.
                          items:
                            format: int64
                            type: integer
                          type: array
                        sysctls:
                          description: Sysctls hold a list of namespaced sysctls used
                            for the pod. Pods with unsupported sysctls (by the container
                            runtime) might fail to launch.
                          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
                          type: array
                        windowsOptions:
                          description: The Windows specific settings applied to all
                            containers. If unspecified, the options within a container's
                            SecurityContext will be used. If set in both SecurityContext
                            and PodSecurityContext, the value specified in SecurityContext
                            takes precedence.
                          properties:
                            gmsaCredentialSpec:
                              description: GMSACredentialSpec is where the GMSA admission
                                webhook (https://github.com/kubernetes-sigs/windows-gmsa)
                                inlines the contents of the GMSA credential spec named
                                by the GMSACredentialSpecName field.
                              type: string
                            gmsaCredentialSpecName:
                              description: GMSACredentialSpecName is the name of the
                                GMSA credential spec to use.
                              type: string
                            runAsUserName:
                              description: The UserName in Windows to run the entrypoint
                                of the container process. Defaults to the user specified
                                in image metadata if unspecified. May also be set
                                in PodSecurityContext. If set in both SecurityContext
                                and PodSecurityContext, the value specified in SecurityContext
                                takes precedence.
                              type: string
                          type: object
                      type: object
                    strategy:
                      description: The deployment strategy to use to replace existing
                        pods with new ones.
                      properties:
                        rollingUpdate:
                          description: 'Rolling update config params. Present only
                            if DeploymentStrategyType = RollingUpdate. --- TODO: Update
                            this to follow our convention for oneOf, whatever we decide
                            it to be.'
                          properties:
                            maxSurge:
                              anyOf:
                              - type: integer
                              - type: string
                              description: 'The maximum number of pods that can be
                                scheduled above the desired number of pods. Value
                                can be an absolute number (ex: 5) or a percentage
                                of desired pods (ex: 10%). This can not be 0 if MaxUnavailable
                                is 0. Absolute number is calculated from percentage
                                by rounding up. Defaults to 25%. Example: when this
                                is set to 30%, the new ReplicaSet can be scaled up
                                immediately when the rolling update starts, such that
                                the total number of old and new pods do not exceed
                                130% of desired pods. Once old pods have been killed,
                                new ReplicaSet can be scaled up further, ensuring
                                that total number of pods running at any time during
                                the update is at most 130% of desired pods.'
                              x-kubernetes-int-or-string: true
                            maxUnavailable:
                              anyOf:
                              - type: integer
                              - type: string
                              description: 'The maximum number of pods that can be
                                unavailable during the update. Value can be an absolute
                                number (ex: 5) or a percentage of desired pods (ex:
                                10%). Absolute number is calculated from percentage
                                by rounding down. This can not be 0 if MaxSurge is
                                0. Defaults to 25%. Example: when this is set to 30%,
                                the old ReplicaSet can be scaled down to 70% of desired
                                pods immediately when the rolling update starts. Once
                                new pods are ready, old ReplicaSet can be scaled down
                                further, followed by scaling up the new ReplicaSet,
                                ensuring that the total number of pods available at
                                all times during the update is at least 70% of desired
                                pods.'
                              x-kubernetes-int-or-string: true
                          type: object
                        type:
                          description: Type of deployment. Can be "Recreate" or "RollingUpdate".
                            Default is RollingUpdate.
                          type: string
                      type: object
                    tolerations:
                      description: If specified, the pod's tolerations.
                      items:
                        description: The pod this Toleration is attached to tolerates
                          any taint that matches the triple <key,value,effect> using
                          the matching operator <operator>.
                        properties:
                          effect:
                            description: Effect indicates the taint effect to match.
                              Empty means match all taint effects. When specified,
                              allowed values are NoSchedule, PreferNoSchedule and
                              NoExecute.
                            type: string
                          key:
                            description: Key is the taint key that the toleration
                              applies to. Empty means match all taint keys. If the
                              key is empty, operator must be Exists; this combination
                              means to match all values and all keys.
                            type: string
                          operator:
                            description: Operator represents a key's relationship
                              to the value. Valid operators are Exists and Equal.
                              Defaults to Equal. Exists is equivalent to wildcard
                              for value, so that a pod can tolerate all taints of
                              a particular category.
                            type: string
                          tolerationSeconds:
                            description: TolerationSeconds represents the period of
                              time the toleration (which must be of effect NoExecute,
                              otherwise this field is ignored) tolerates the taint.
                              By default, it is not set, which means tolerate the
                              taint forever (do not evict). Zero and negative values
                              will be treated as 0 (evict immediately) by the system.
                            format: int64
                            type: integer
                          value:
                            description: Value is the taint value the toleration matches
                              to. If the operator is Exists, the value should be empty,
                              otherwise just a regular string.
                            type: string
                        type: object
                      type: array
                  type: object
                network:
                  properties:
                    extraPorts:
                      description: The list of ports that are exposed by this service.
                      items:
                        properties:
                          name:
                            type: string
                          port:
                            format: int32
                            type: integer
                          protocol:
                            description: Protocol defines network protocols supported
                              for things like container ports.
                            type: string
                        type: object
                      type: array
                    host:
                      description: "Host is the fully qualified domain name of a network
                        host, as defined by RFC 3986. Note the following deviations
                        from the \"host\" part of the URI as defined in RFC 3986:
                        1. IPs are not allowed. Currently an IngressRuleValue can
                        only apply to    the IP in the Spec of the parent Ingress.
                        2. The `:` delimiter is not respected because ports are not
                        allowed. \t  Currently the port of an Ingress is implicitly
                        :80 for http and \t  :443 for https. Both these may change
                        in the future. Incoming requests are matched against the host
                        before the IngressRuleValue. If the host is unspecified, the
                        Ingress routes all traffic based on the specified IngressRuleValue.
                        \n Host can be \"precise\" which is a domain name without
                        the terminating dot of a network host (e.g. \"foo.bar.com\")
                        or \"wildcard\", which is a domain name prefixed with a single
                        wildcard label (e.g. \"*.foo.com\"). The wildcard character
                        '*' must appear by itself as the first DNS label and matches
                        only a single label. You cannot have a wildcard label by itself
                        (e.g. Host == \"*\"). Requests will be matched against the
                        Host field in the following way: 1. If Host is precise, the
                        request matches this rule if the http host header is equal
                        to Host. 2. If Host is a wildcard, then the request matches
                        this rule if the http host header is to equal to the suffix
                        (removing the first label) of the wildcard rule."
                      type: string
                    ingressMeta:
                      description: "ObjectMeta meta is a stripped down version of
                        the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                        with only user defined specs \n This type can be used in an
                        application CRD ObjectMeta implements the Meta interface and
                        can be used to mutates an object"
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: 'Annotations is an unstructured key value map
                            stored with a resource that may be set by external tools
                            to store and retrieve arbitrary metadata. They are not
                            queryable and should be preserved when modifying objects.
                            More info: http://kubernetes.io/docs/user-guide/annotations'
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: 'Map of string keys and values that can be
                            used to organize and categorize (scope and select) objects.
                            May match selectors of replication controllers and services.
                            More info: http://kubernetes.io/docs/user-guide/labels'
                          type: object
                        name:
                          description: 'Name must be unique within a namespace. Is
                            required when creating resources, although some resources
                            may allow a client to request the generation of an appropriate
                            name automatically. Name is primarily intended for creation
                            idempotence and configuration definition. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                          type: string
                        namespace:
                          description: "Namespace defines the space within each name
                            must be unique. An empty namespace is equivalent to the
                            \"default\" namespace, but \"default\" is the canonical
                            representation. Not all objects are required to be scoped
                            to a namespace - the value of this field for those objects
                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/namespaces"
                          type: string
                      type: object
                    port:
                      properties:
                        name:
                          type: string
                        port:
                          format: int32
                          type: integer
                        protocol:
                          description: Protocol defines network protocols supported
                            for things like container ports.
                          type: string
                      type: object
                    routes:
                      description: Path is matched against the path of an incoming
                        request. Currently it can contain characters disallowed from
                        the conventional "path" part of a URL as defined by RFC 3986.
                        Paths must begin with a '/'. When unspecified, all paths from
                        incoming requests are matched.
                      items:
                        type: string
                      type: array
                    serviceMeta:
                      description: "ObjectMeta meta is a stripped down version of
                        the ObjectMeta type https://godoc.org/k8s.io/apimachinery/pkg/apis/meta/v1#ObjectMeta
                        with only user defined specs \n This type can be used in an
                        application CRD ObjectMeta implements the Meta interface and
                        can be used to mutates an object"
                      properties:
                        annotations:
                          additionalProperties:
                            type: string
                          description: 'Annotations is an unstructured key value map
                            stored with a resource that may be set by external tools
                            to store and retrieve arbitrary metadata. They are not
                            queryable and should be preserved when modifying objects.
                            More info: http://kubernetes.io/docs/user-guide/annotations'
                          type: object
                        labels:
                          additionalProperties:
                            type: string
                          description: 'Map of string keys and values that can be
                            used to organize and categorize (scope and select) objects.
                            May match selectors of replication controllers and services.
                            More info: http://kubernetes.io/docs/user-guide/labels'
                          type: object
                        name:
                          description: 'Name must be unique within a namespace. Is
                            required when creating resources, although some resources
                            may allow a client to request the generation of an appropriate
                            name automatically. Name is primarily intended for creation
                            idempotence and configuration definition. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/identifiers#names'
                          type: string
                        namespace:
                          description: "Namespace defines the space within each name
                            must be unique. An empty namespace is equivalent to the
                            \"default\" namespace, but \"default\" is the canonical
                            representation. Not all objects are required to be scoped
                            to a namespace - the value of this field for those objects
                            will be empty. \n Must be a DNS_LABEL. Cannot be updated.
                            More info: http://kubernetes.io/docs/user-guide/namespaces"
                          type: string
                      type: object
                    serviceName:
                      description: Specifies the name of the referenced service.
                      type: string
                    tls:
                      description: TLS specifies if tls is enabled
                      type: boolean
                    tlsSecretRef:
                      description: SecretName is the name of the secret used to terminate
                        TLS traffic on port 443. Field is left optional to allow TLS
                        routing based on SNI hostname alone. If the SNI host in a
                        listener conflicts with the "Host" header field used by an
                        IngressRule, the SNI host is used for termination and value
                        of the Host header is used for routing.
                      type: string
                    type:
                      description: 'type determines how the Service is exposed. Defaults
                        to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort,
                        and LoadBalancer. "ExternalName" maps to the specified externalName.
                        "ClusterIP" allocates a cluster-internal IP address for load-balancing
                        to endpoints. Endpoints are determined by the selector or
                        if that is not specified, by manual construction of an Endpoints
                        object. If clusterIP is "None", no virtual IP is allocated
                        and the endpoints are published as a set of endpoints rather
                        than a stable IP. "NodePort" builds on ClusterIP and allocates
                        a port on every node which routes to the clusterIP. "LoadBalancer"
                        builds on NodePort and creates an external load-balancer (if
                        supported in the current cloud) which routes to the clusterIP.
                        More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types'
                      type: string
                  type: object
                settings:
                  items:
                    type: string
                  type: array
              type: object
          type: object
        status:
          description: NextcloudStatus defines the observed state of Nextcloud
          properties:
            components:
              additionalProperties:
                description: ApplicationStatus defines controller's the observed state
                  of Application
                properties:
                  componentsReady:
                    description: 'ComponentsReady: status of the components in the
                      format ready/total'
                    type: string
                  name:
                    type: string
                  objects:
                    description: Object status array for all matching objects
                    items:
                      description: ObjectStatus is a generic status holder for objects
                      properties:
                        group:
                          description: Object group
                          type: string
                        kind:
                          description: Kind of object
                          type: string
                        link:
                          description: Link to object
                          type: string
                        name:
                          description: Name of object
                          type: string
                        status:
                          description: 'Status. Values: InProgress, Ready, Unknown'
                          type: string
                        version:
                          description: Kind of object
                          type: string
                      type: object
                    type: array
                type: object
              description: Components is a list of object ComponentStatus
              type: object
            componentsReady:
              description: 'ComponentsReady: status of the components in the format
                ready/total'
              type: string
            conditions:
              description: Conditions represents the latest state of the object
              items:
                description: Condition describes the state of an object at a certain
                  point.
                properties:
                  lastTransitionTime:
                    description: "Last time the condition was probed \tLastUpdateTime
                      metav1.Time `json:\"lastUpdateTime,omitempty\" protobuf:\"bytes,3,opt,name=lastProbeTime\"`
                      Last time the condition transitioned from one status to another."
                    format: date-time
                    type: string
                  message:
                    description: A human readable message indicating details about
                      the transition.
                    type: string
                  reason:
                    description: The reason for the condition's last transition.
                    type: string
                  status:
                    description: Status of the condition, one of True, False, Unknown.
                    type: string
                  type:
                    description: Type of condition.
                    type: string
                required:
                - status
                - type
                type: object
              type: array
            observedGeneration:
              description: Phase   Phase  `json:"phase,omitempty"` ObservedGeneration
                is the most recent generation observed. It corresponds to the Object's
                generation, which is updated on mutation by the API Server.
              format: int64
              type: integer
            settings:
              additionalProperties:
                description: ApplicationStatus defines controller's the observed state
                  of Application
                properties:
                  componentsReady:
                    description: 'ComponentsReady: status of the components in the
                      format ready/total'
                    type: string
                  name:
                    type: string
                  objects:
                    description: Object status array for all matching objects
                    items:
                      description: ObjectStatus is a generic status holder for objects
                      properties:
                        group:
                          description: Object group
                          type: string
                        kind:
                          description: Kind of object
                          type: string
                        link:
                          description: Link to object
                          type: string
                        name:
                          description: Name of object
                          type: string
                        status:
                          description: 'Status. Values: InProgress, Ready, Unknown'
                          type: string
                        version:
                          description: Kind of object
                          type: string
                      type: object
                    type: array
                type: object
              type: object
            version:
              type: string
          type: object
      type: object
  version: v1alpha1
  versions:
  - name: v1alpha1
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: null
  storedVersions: null
