CustomResourceDefinition represents a resource that should be exposed on the API server. Its name MUST be in the format <.spec.name>.<.spec.group>.
new()
mixinInstance(metadata)
withAnnotations(annotations)
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
withAnnotationsMixin(annotations)
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
withClusterName(clusterName)
The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
withFinalizers(finalizers)
Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.
withFinalizersMixin(finalizers)
Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.
withGenerateName(generateName)
GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server.
If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).
Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
withLabels(labels)
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
withLabelsMixin(labels)
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
withManagedFields(managedFields)
ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn’t need to set or understand this field. A workflow can be the user’s name, a controller’s name, or the name of a specific apply path like “ci-cd”. The set of fields is always in the version that the workflow used when modifying the object.
This field is alpha and can be changed or removed without notice.
withManagedFields
takes an array of type managedFieldsType
. You can create
an instance of managedFieldsType
with hidden.meta.v1.managedFieldsEntry.new()
.
see hidden.meta.v1.managedFieldsEntry
withManagedFieldsMixin(managedFields)
ManagedFields maps workflow-id and version to the set of fields that are managed by that workflow. This is mostly for internal housekeeping, and users typically shouldn’t need to set or understand this field. A workflow can be the user’s name, a controller’s name, or the name of a specific apply path like “ci-cd”. The set of fields is always in the version that the workflow used when modifying the object.
This field is alpha and can be changed or removed without notice.
withManagedFieldsMixin
takes an array of type managedFieldsType
. You can create
an instance of managedFieldsType
with hidden.meta.v1.managedFieldsEntry.new()
.
see hidden.meta.v1.managedFieldsEntry
withName(name)
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
withNamespace(namespace)
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.
Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces
withOwnerReferences(ownerReferences)
List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
withOwnerReferences
takes an array of type ownerReferencesType
. You can create
an instance of ownerReferencesType
with hidden.meta.v1.ownerReference.new()
.
see hidden.meta.v1.ownerReference
withOwnerReferencesMixin(ownerReferences)
List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
withOwnerReferencesMixin
takes an array of type ownerReferencesType
. You can create
an instance of ownerReferencesType
with hidden.meta.v1.ownerReference.new()
.
see hidden.meta.v1.ownerReference
An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven't explicitly asked to observe uninitialized objects.
When an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.
DEPRECATED - initializers are an alpha field and will be removed in v1.15.
mixinInstance(initializers)
withPending(pending)
Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.
withPending
takes an array of type pendingType
. You can create
an instance of pendingType
with hidden.meta.v1.initializer.new()
.
see hidden.meta.v1.initializer
withPendingMixin(pending)
Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.
withPendingMixin
takes an array of type pendingType
. You can create
an instance of pendingType
with hidden.meta.v1.initializer.new()
.
see hidden.meta.v1.initializer
Spec describes how the user wants the resources to appear
mixinInstance(spec)
withAdditionalPrinterColumns(additionalPrinterColumns)
AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column. Optional, the global columns for all versions. Top-level and per-version columns are mutually exclusive.
withAdditionalPrinterColumns
takes an array of type additionalPrinterColumnsType
. You can create
an instance of additionalPrinterColumnsType
with hidden.apiextensions.v1beta1.customResourceColumnDefinition.new()
.
see hidden.apiextensions.v1beta1.customResourceColumnDefinition
withAdditionalPrinterColumnsMixin(additionalPrinterColumns)
AdditionalPrinterColumns are additional columns shown e.g. in kubectl next to the name. Defaults to a created-at column. Optional, the global columns for all versions. Top-level and per-version columns are mutually exclusive.
withAdditionalPrinterColumnsMixin
takes an array of type additionalPrinterColumnsType
. You can create
an instance of additionalPrinterColumnsType
with hidden.apiextensions.v1beta1.customResourceColumnDefinition.new()
.
see hidden.apiextensions.v1beta1.customResourceColumnDefinition
withGroup(group)
Group is the group this resource belongs in
withPreserveUnknownFields(preserveUnknownFields)
preserveUnknownFields disables pruning of object fields which are not specified in the OpenAPI schema. apiVersion, kind, metadata and known fields inside metadata are always preserved. Defaults to true in v1beta and will default to false in v1.
withScope(scope)
Scope indicates whether this resource is cluster or namespace scoped. Default is namespaced
withVersion(version)
Version is the version this resource belongs in Should be always first item in Versions field if provided. Optional, but at least one of Version or Versions must be set. Deprecated: Please use Versions
.
withVersions(versions)
Versions is the list of all supported versions for this resource. If Version field is provided, this field is optional. Validation: All versions must use the same validation schema for now. i.e., top level Validation field is applied to all of these versions. Order: The version name will be used to compute the order. If the version string is “kube-like”, it will sort above non “kube-like” version strings, which are ordered lexicographically. “Kube-like” versions start with a “v”, then are followed by a number (the major version), then optionally the string “alpha” or “beta” and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
withVersions
takes an array of type versionsType
. You can create
an instance of versionsType
with hidden.apiextensions.v1beta1.customResourceDefinitionVersion.new()
.
see hidden.apiextensions.v1beta1.customResourceDefinitionVersion
withVersionsMixin(versions)
Versions is the list of all supported versions for this resource. If Version field is provided, this field is optional. Validation: All versions must use the same validation schema for now. i.e., top level Validation field is applied to all of these versions. Order: The version name will be used to compute the order. If the version string is “kube-like”, it will sort above non “kube-like” version strings, which are ordered lexicographically. “Kube-like” versions start with a “v”, then are followed by a number (the major version), then optionally the string “alpha” or “beta” and another number (the minor version). These are sorted first by GA > beta > alpha (where GA is a version with no suffix such as beta or alpha), and then by comparing major version, then minor version. An example sorted list of versions: v10, v2, v1, v11beta2, v10beta3, v3beta1, v12alpha1, v11alpha2, foo1, foo10.
withVersionsMixin
takes an array of type versionsType
. You can create
an instance of versionsType
with hidden.apiextensions.v1beta1.customResourceDefinitionVersion.new()
.
see hidden.apiextensions.v1beta1.customResourceDefinitionVersion
`conversion` defines conversion settings for the CRD.
mixinInstance(conversion)
withConversionReviewVersions(conversionReviewVersions)
ConversionReviewVersions is an ordered list of preferred ConversionReview
versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, conversion will fail for this object. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail. Default to ['v1beta1']
.
withConversionReviewVersionsMixin(conversionReviewVersions)
ConversionReviewVersions is an ordered list of preferred ConversionReview
versions the Webhook expects. API server will try to use first version in the list which it supports. If none of the versions specified in this list supported by API server, conversion will fail for this object. If a persisted Webhook configuration specifies allowed versions and does not include any versions known to the API Server, calls to the webhook will fail. Default to ['v1beta1']
.
withStrategy(strategy)
strategy
specifies the conversion strategy. Allowed values are: - None
: The converter only change the apiVersion and would not touch any other field in the CR. - Webhook
: API Server will call to an external webhook to do the conversion. Additional information
is needed for this option. This requires spec.preserveUnknownFields to be false.
`webhookClientConfig` is the instructions for how to call the webhook if strategy is `Webhook`. This field is alpha-level and is only honored by servers that enable the CustomResourceWebhookConversion feature.
mixinInstance(webhookClientConfig)
withCaBundle(caBundle)
caBundle
is a PEM encoded CA bundle which will be used to validate the webhook’s server certificate. If unspecified, system trust roots on the apiserver are used.
withUrl(url)
url
gives the location of the webhook, in standard URL form (scheme://host:port/path
). Exactly one of url
or service
must be specified.
The host
should not refer to a service running in the cluster; use the service
field instead. The host might be resolved via external DNS in some apiservers (e.g., kube-apiserver
cannot resolve in-cluster DNS as that would be a layering violation). host
may also be an IP address.
Please note that using localhost
or 127.0.0.1
as a host
is risky unless you take great care to run this webhook on all hosts which run an apiserver which might need to make calls to this webhook. Such installs are likely to be non-portable, i.e., not easy to turn up in a new cluster.
The scheme must be “https”; the URL must begin with “https://“.
A path is optional, and if present may be any string permissible in a URL. You may use the path to pass an arbitrary string to the webhook, for example, a cluster identifier.
Attempting to use a user or basic auth e.g. “user:password@” is not allowed. Fragments (“#…”) and query parameters (“?…”) are not allowed, either.
`service` is a reference to the service for this webhook. Either `service` or `url` must be specified.
If the webhook is running within the cluster, then you should use `service`.
mixinInstance(service)
withName(name)
name
is the name of the service. Required
withNamespace(namespace)
namespace
is the namespace of the service. Required
withPath(path)
path
is an optional URL path which will be sent in any request to this service.
withPort(port)
If specified, the port on the service that hosting webhook. Default to 443 for backward compatibility. port
should be a valid port number (1-65535, inclusive).
Names are the names used to describe this custom resource
mixinInstance(names)
withCategories(categories)
Categories is a list of grouped resources custom resources belong to (e.g. ‘all’)
withCategoriesMixin(categories)
Categories is a list of grouped resources custom resources belong to (e.g. ‘all’)
withKind(kind)
Kind is the serialized kind of the resource. It is normally CamelCase and singular.
withListKind(listKind)
ListKind is the serialized kind of the list for this resource. Defaults to
withPlural(plural)
Plural is the plural name of the resource to serve. It must match the name of the CustomResourceDefinition-registration too: plural.group and it must be all lowercase.
withShortNames(shortNames)
ShortNames are short names for the resource. It must be all lowercase.
withShortNamesMixin(shortNames)
ShortNames are short names for the resource. It must be all lowercase.
withSingular(singular)
Singular is the singular name of the resource. It must be all lowercase Defaults to lowercased
Subresources describes the subresources for CustomResource Optional, the global subresources for all versions. Top-level and per-version subresources are mutually exclusive.
mixinInstance(subresources)
Scale denotes the scale subresource for CustomResources
mixinInstance(scale)
withLabelSelectorPath(labelSelectorPath)
LabelSelectorPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Selector. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status or .spec. Must be set to work with HPA. The field pointed by this JSON path must be a string field (not a complex selector struct) which contains a serialized label selector in string form. More info: https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions#scale-subresource If there is no value under the given path in the CustomResource, the status label selector value in the /scale subresource will default to the empty string.
withSpecReplicasPath(specReplicasPath)
SpecReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Spec.Replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .spec. If there is no value under the given path in the CustomResource, the /scale subresource will return an error on GET.
withStatusReplicasPath(statusReplicasPath)
StatusReplicasPath defines the JSON path inside of a CustomResource that corresponds to Scale.Status.Replicas. Only JSON paths without the array notation are allowed. Must be a JSON Path under .status. If there is no value under the given path in the CustomResource, the status replica value in the /scale subresource will default to 0.
Validation describes the validation methods for CustomResources Optional, the global validation schema for all versions. Top-level and per-version schemas are mutually exclusive.
mixinInstance(validation)
withOpenApiV3Schema(openApiV3Schema)
OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.
withOpenApiV3SchemaMixin(openApiV3Schema)
OpenAPIV3Schema is the OpenAPI v3 schema to be validated against.