The Deckhouse Kubernetes Platform installs CRDs but does not remove them when a module is disabled. If you no longer need the created CRDs, delete them.

The module lifecycle stageGeneral Availability

ConversionWebhook

Scope: Cluster
Version: v1alpha1

ConversionWebhook is the Schema for the conversionwebhooks API

  • apiVersion
    string

    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

  • context
    array of objects

    Run a hook on a Kubernetes object changes.

    • context.kubernetes
      object
      • context.kubernetes.allowFailure
        boolean

        If true, Shell-operator skips the hook execution errors. If false or the parameter is not set, the hook is restarted after a 5 seconds delay in case of an error.

      • context.kubernetes.apiVersion
        string

        Is an optional group and version of object API. For example, it is v1 for core objects (Pod, etc.), rbac.authorization.k8s.io/v1beta1 for ClusterRole and monitoring.coreos.com/v1 for prometheus-operator.

      • context.kubernetes.fieldSelector
        object
        • context.kubernetes.fieldSelector.matchExpressions
          array of objects

          Required value

          • context.kubernetes.fieldSelector.matchExpressions.field
            string

            Required value

          • context.kubernetes.fieldSelector.matchExpressions.operator
            string

            Required value

          • context.kubernetes.fieldSelector.matchExpressions.value
            string
      • context.kubernetes.includeSnapshotsFrom
        array of strings

        An array of names of kubernetes bindings in a hook. When specified, a list of monitored objects from that bindings will be added to the binding context in a snapshots field. Self-include is also possible.

      • context.kubernetes.jqFilter
        string

        An optional parameter that specifies event filtering using jq syntax. The hook will be triggered on the “Modified” event only if the filter result is changed after the last event.

      • context.kubernetes.kind
        string

        Required value

        Is the type of a monitored Kubernetes resource. This field is required.

      • context.kubernetes.labelSelector
        object

        A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

        • context.kubernetes.labelSelector.matchExpressions
          array of objects

          matchExpressions is a list of label selector requirements. The requirements are ANDed.

          A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

          • context.kubernetes.labelSelector.matchExpressions.key
            string

            Required value

            key is the label key that the selector applies to.

          • context.kubernetes.labelSelector.matchExpressions.operator
            string

            Required value

            operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

          • context.kubernetes.labelSelector.matchExpressions.values
            array of strings

            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.

        • context.kubernetes.labelSelector.matchLabels
          object

          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.

      • context.kubernetes.nameSelector
        object
        • context.kubernetes.nameSelector.matchNames
          array of strings

          Required value

      • context.kubernetes.namespace
        object

        Filters to choose namespaces.

        • context.kubernetes.namespace.labelSelector
          object

          A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

          • context.kubernetes.namespace.labelSelector.matchExpressions
            array of objects

            matchExpressions is a list of label selector requirements. The requirements are ANDed.

            A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

            • context.kubernetes.namespace.labelSelector.matchExpressions.key
              string

              Required value

              key is the label key that the selector applies to.

            • context.kubernetes.namespace.labelSelector.matchExpressions.operator
              string

              Required value

              operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

            • context.kubernetes.namespace.labelSelector.matchExpressions.values
              array of strings

              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.

          • context.kubernetes.namespace.labelSelector.matchLabels
            object

            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.

        • context.kubernetes.namespace.nameSelector
          object
          • context.kubernetes.namespace.nameSelector.matchNames
            array of strings

            Required value

      • context.kubernetes.queue
        string

        A name of a separate queue. It can be used to execute long-running hooks in parallel with hooks in the “main” queue.

    • context.name
      string

      Required value

      It is used to distinguish different bindings during runtime.

  • conversions
    array of objects

    Required value

    This binding transforms a hook into a handler for conversions defined in CustomResourceDefinition. The Shell-operator updates a CRD with .spec.conversion, starts HTTPS server, and runs hooks to handle ConversionReview requests.

    • conversions.from
      string

      Required value

      A version of a custom resource that hook can convert.

    • conversions.handler
      object

      Required value

      Code of the conversion handler.

      • conversions.handler.python
        string

        Python script handler for object.

    • conversions.includeSnapshotsFrom
      array of strings

      An array of names of Kubernetes bindings in a hook. When specified, a list of monitored objects from these bindings will be added to the binding context in the snapshots field.

    • conversions.to
      string

      Required value

      A version of a custom resource that hook can produce.

  • kind
    string

    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

  • metadata
    object

ValidationWebhook

Scope: Cluster
Version: v1alpha1

ValidationWebhook is the Schema for the validationwebhooks API

  • apiVersion
    string

    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

  • context
    array of objects

    Run a hook on a Kubernetes object changes.

    • context.kubernetes
      object
      • context.kubernetes.allowFailure
        boolean

        If true, Shell-operator skips the hook execution errors. If false or the parameter is not set, the hook is restarted after a 5 seconds delay in case of an error.

      • context.kubernetes.apiVersion
        string

        Is an optional group and version of object API. For example, it is v1 for core objects (Pod, etc.), rbac.authorization.k8s.io/v1beta1 for ClusterRole and monitoring.coreos.com/v1 for prometheus-operator.

      • context.kubernetes.fieldSelector
        object
        • context.kubernetes.fieldSelector.matchExpressions
          array of objects

          Required value

          • context.kubernetes.fieldSelector.matchExpressions.field
            string

            Required value

          • context.kubernetes.fieldSelector.matchExpressions.operator
            string

            Required value

          • context.kubernetes.fieldSelector.matchExpressions.value
            string
      • context.kubernetes.includeSnapshotsFrom
        array of strings

        An array of names of kubernetes bindings in a hook. When specified, a list of monitored objects from that bindings will be added to the binding context in a snapshots field. Self-include is also possible.

      • context.kubernetes.jqFilter
        string

        An optional parameter that specifies event filtering using jq syntax. The hook will be triggered on the “Modified” event only if the filter result is changed after the last event.

      • context.kubernetes.kind
        string

        Required value

        Is the type of a monitored Kubernetes resource. This field is required.

      • context.kubernetes.labelSelector
        object

        A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

        • context.kubernetes.labelSelector.matchExpressions
          array of objects

          matchExpressions is a list of label selector requirements. The requirements are ANDed.

          A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

          • context.kubernetes.labelSelector.matchExpressions.key
            string

            Required value

            key is the label key that the selector applies to.

          • context.kubernetes.labelSelector.matchExpressions.operator
            string

            Required value

            operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

          • context.kubernetes.labelSelector.matchExpressions.values
            array of strings

            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.

        • context.kubernetes.labelSelector.matchLabels
          object

          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.

      • context.kubernetes.nameSelector
        object
        • context.kubernetes.nameSelector.matchNames
          array of strings

          Required value

      • context.kubernetes.namespace
        object

        Filters to choose namespaces.

        • context.kubernetes.namespace.labelSelector
          object

          A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

          • context.kubernetes.namespace.labelSelector.matchExpressions
            array of objects

            matchExpressions is a list of label selector requirements. The requirements are ANDed.

            A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

            • context.kubernetes.namespace.labelSelector.matchExpressions.key
              string

              Required value

              key is the label key that the selector applies to.

            • context.kubernetes.namespace.labelSelector.matchExpressions.operator
              string

              Required value

              operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

            • context.kubernetes.namespace.labelSelector.matchExpressions.values
              array of strings

              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.

          • context.kubernetes.namespace.labelSelector.matchLabels
            object

            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.

        • context.kubernetes.namespace.nameSelector
          object
          • context.kubernetes.namespace.nameSelector.matchNames
            array of strings

            Required value

      • context.kubernetes.queue
        string

        A name of a separate queue. It can be used to execute long-running hooks in parallel with hooks in the “main” queue.

    • context.name
      string

      Required value

      It is used to distinguish different bindings during runtime.

  • handler
    object

    Required value

    Code of the ValidatingWebhook handler

    • handler.cel
      string

      CEL rules handler for object.

    • handler.python
      string

      Python script handler for object.

  • kind
    string

    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

  • metadata
    object
  • validationObject
    object

    Required value

    ValidatingWebhook describes an webhook and the resources and operations it applies to.

    • validationObject.failurePolicy
      string

      Defines how errors from the hook are handled.

    • validationObject.group
      string

      A key to include snapshots from a group of schedule and Kubernetes bindings. See grouping.

    • validationObject.labelSelector
      object

      A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.

      • validationObject.labelSelector.matchExpressions
        array of objects

        matchExpressions is a list of label selector requirements. The requirements are ANDed.

        A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

        • validationObject.labelSelector.matchExpressions.key
          string

          Required value

          key is the label key that the selector applies to.

        • validationObject.labelSelector.matchExpressions.operator
          string

          Required value

          operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

        • validationObject.labelSelector.matchExpressions.values
          array of strings

          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.

      • validationObject.labelSelector.matchLabels
        object

        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.

    • validationObject.matchConditions
      array of objects

      An optional list of match conditions for fine-grained request filtering. Available only since v1.27 of Kubernetes.

      MatchCondition represents a condition which must by fulfilled for a request to be sent to a webhook.

      • validationObject.matchConditions.expression
        string

        Required value

        Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables:

        ‘object’ - The object from the incoming request. The value is null for DELETE requests. ‘oldObject’ - The existing object. The value is null for CREATE requests. ‘request’ - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). ‘authorizer’ - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz ‘authorizer.requestResource’ - A CEL ResourceCheck constructed from the ‘authorizer’ and configured with the request resource. Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/

        Required.

      • validationObject.matchConditions.name
        string

        Required value

        Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, ‘-‘, ‘’ or ‘.’, and must start and end with an alphanumeric character (e.g. ‘MyName’, or ‘my.name’, or ‘123-abc’, regex used for validation is ‘([A-Za-z0-9][-A-Za-z0-9.]*)?[A-Za-z0-9]’) with an optional DNS subdomain prefix and ‘/’ (e.g. ‘example.com/MyName’)

        Required.

    • validationObject.name
      string

      Required value

      Name should be a domain with at least three segments separated by dots.

    • validationObject.namespace
      object

      Namespace filtering. Only labelSelector is supported (not nameSelector). To filter by namespace name, use labelSelector with kubernetes.io/metadata.name label.

      • validationObject.namespace.labelSelector
        object

        labelSelector is a selector to filter namespaces by labels. Use kubernetes.io/metadata.name label to filter by namespace name.

        • validationObject.namespace.labelSelector.matchExpressions
          array of objects

          matchExpressions is a list of label selector requirements. The requirements are ANDed.

          A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.

          • validationObject.namespace.labelSelector.matchExpressions.key
            string

            Required value

            key is the label key that the selector applies to.

          • validationObject.namespace.labelSelector.matchExpressions.operator
            string

            Required value

            operator represents a key’s relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.

          • validationObject.namespace.labelSelector.matchExpressions.values
            array of strings

            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.

        • validationObject.namespace.labelSelector.matchLabels
          object

          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.

    • validationObject.rules
      array of objects

      A required list of rules used to determine if a request to the Kubernetes API server should be sent to the hook.

      RuleWithOperations is a tuple of Operations and Resources. It is recommended to make sure that all the tuple expansions are valid.

      • validationObject.rules.apiGroups
        array of strings

        APIGroups is the API groups the resources belong to. ‘’ is all groups. If ‘’ is present, the length of the slice must be one. Required.

      • validationObject.rules.apiVersions
        array of strings

        APIVersions is the API versions the resources belong to. ‘’ is all versions. If ‘’ is present, the length of the slice must be one. Required.

      • validationObject.rules.operations
        array of strings

        Operations is the operations the admission hook cares about - CREATE, UPDATE, DELETE, CONNECT or * for all of those operations and any future admission operations that are added. If ‘*’ is present, the length of the slice must be one. Required.

        • Element of the array
          string

          OperationType specifies an operation for a request.

      • validationObject.rules.resources
        array of strings

        Resources is a list of resources this rule applies to.

        For example: ‘pods’ means pods. ‘pods/log’ means the log subresource of pods. ‘’ means all resources, but not subresources. ‘pods/’ means all subresources of pods. ‘/scale’ means all scale subresources. ‘/*’ means all resources and their subresources.

        If wildcard is present, the validation rule will ensure resources do not overlap with each other.

        Depending on the enclosing object, subresources might not be allowed. Required.

      • validationObject.rules.scope
        string

        scope specifies the scope of this rule. Valid values are “Cluster”, “Namespaced”, and “” “Cluster” means that only cluster-scoped resources will match this rule. Namespace API objects are cluster-scoped. “Namespaced” means that only namespaced resources will match this rule. “” means that there are no scope restrictions. Subresources match the scope of their parent resource. Default is “*”.

    • validationObject.sideEffects
      string

      Determines whether the hook is dryRun-aware.

    • validationObject.timeoutSeconds
      integer

      Seconds API server should wait for a hook to respond before treating the call as a failure. Default is 10 (seconds).