k8c.io/api/v3@v3.0.0-20230904060738-b0a93889c0b6/crd/community/kubermatic.k8c.io_kubermaticconfigurations.yaml (about) 1 # This file has been generated by hack/update-codegen.sh, DO NOT EDIT. 2 3 apiVersion: apiextensions.k8s.io/v1 4 kind: CustomResourceDefinition 5 metadata: 6 annotations: 7 controller-gen.kubebuilder.io/version: v0.12.0 8 name: kubermaticconfigurations.kubermatic.k8c.io 9 spec: 10 group: kubermatic.k8c.io 11 names: 12 kind: KubermaticConfiguration 13 listKind: KubermaticConfigurationList 14 plural: kubermaticconfigurations 15 singular: kubermaticconfiguration 16 scope: Namespaced 17 versions: 18 - additionalPrinterColumns: 19 - jsonPath: .metadata.creationTimestamp 20 name: Age 21 type: date 22 name: v1 23 schema: 24 openAPIV3Schema: 25 description: KubermaticConfiguration is the configuration required for running Kubermatic. 26 properties: 27 apiVersion: 28 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' 29 type: string 30 kind: 31 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' 32 type: string 33 metadata: 34 type: object 35 spec: 36 description: KubermaticConfigurationSpec is the spec for a Kubermatic installation. 37 properties: 38 api: 39 description: API configures the frontend REST API used by the dashboard. 40 properties: 41 accessibleAddons: 42 description: AccessibleAddons is a list of addons that should be enabled in the API. 43 items: 44 type: string 45 type: array 46 debugLog: 47 description: DebugLog enables more verbose logging. 48 type: boolean 49 dockerRepository: 50 description: DockerRepository is the repository containing the Kubermatic REST API image. 51 type: string 52 pprofEndpoint: 53 description: PProfEndpoint controls the port the API should listen on to provide pprof data. This port is never exposed from the container and only available via port-forwardings. 54 type: string 55 replicas: 56 description: Replicas sets the number of pod replicas for the API deployment. 57 format: int32 58 type: integer 59 resources: 60 description: Resources describes the requested and maximum allowed CPU/memory usage. 61 properties: 62 claims: 63 description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." 64 items: 65 description: ResourceClaim references one entry in PodSpec.ResourceClaims. 66 properties: 67 name: 68 description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. 69 type: string 70 required: 71 - name 72 type: object 73 type: array 74 x-kubernetes-list-map-keys: 75 - name 76 x-kubernetes-list-type: map 77 limits: 78 additionalProperties: 79 anyOf: 80 - type: integer 81 - type: string 82 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 83 x-kubernetes-int-or-string: true 84 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 85 type: object 86 requests: 87 additionalProperties: 88 anyOf: 89 - type: integer 90 - type: string 91 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 92 x-kubernetes-int-or-string: true 93 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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 94 type: object 95 type: object 96 type: object 97 auth: 98 description: Auth defines keys and URLs for Dex. These must be defined unless the HeadlessInstallation feature gate is set, which will disable the UI/API and its need for an OIDC provider entirely. 99 properties: 100 clientID: 101 type: string 102 issuerClientID: 103 description: IssuerClientID is the application's ID. 104 type: string 105 issuerClientSecret: 106 description: IssuerClientSecret is the application's secret. 107 type: string 108 issuerCookieKey: 109 description: IssuerCookieKey is required, used to authenticate the cookie value using HMAC. It is recommended to use a key with 32 or 64 bytes. 110 type: string 111 issuerRedirectURL: 112 type: string 113 offlineAccessAsScope: 114 description: 'Optional: OfflineAccessAsScope if true then "offline_access" scope will be used otherwise ''access_type=offline" query param will be passed.' 115 type: boolean 116 serviceAccountKey: 117 type: string 118 skipTokenIssuerTLSVerify: 119 description: 'Optional: SkipTokenIssuerTLSVerify skip TLS verification for the token issuer.' 120 type: boolean 121 tokenIssuer: 122 description: URL of the provider which allows the API server to discover public signing keys. 123 type: string 124 type: object 125 caBundle: 126 description: CABundle references a ConfigMap in the same namespace as the KubermaticConfiguration. This ConfigMap must contain a ca-bundle.pem with PEM-encoded certificates. This bundle automatically synchronized into each seed and each usercluster. APIGroup and Kind are currently ignored. 127 properties: 128 apiGroup: 129 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. 130 type: string 131 kind: 132 description: Kind is the type of resource being referenced 133 type: string 134 name: 135 description: Name is the name of resource being referenced 136 type: string 137 required: 138 - kind 139 - name 140 type: object 141 x-kubernetes-map-type: atomic 142 controllerManager: 143 description: ControllerManager configures the kubermatic-controller-manager. 144 properties: 145 backupCleanupContainer: 146 description: BackupCleanupContainer is the container used for removing expired backups from the storage location. This container is only relevant when the old, deprecated backup controllers are enabled. 147 type: string 148 backupDeleteContainer: 149 description: BackupDeleteContainer is the container used for deleting etcd snapshots from a backup location. This container is only relevant when the new backup/restore controllers are enabled. 150 type: string 151 backupStoreContainer: 152 description: BackupStoreContainer is the container used for shipping etcd snapshots to a backup location. 153 type: string 154 debugLog: 155 description: DebugLog enables more verbose logging. 156 type: boolean 157 dockerRepository: 158 description: DockerRepository is the repository containing the Kubermatic seed-controller-manager image. 159 type: string 160 maximumParallelReconciles: 161 description: MaximumParallelReconciles limits the number of cluster reconciliations that are active at any given time. 162 type: integer 163 pprofEndpoint: 164 description: PProfEndpoint controls the port the seed-controller-manager should listen on to provide pprof data. This port is never exposed from the container and only available via port-forwardings. 165 type: string 166 projectsMigrator: 167 description: ProjectsMigrator configures the migrator for user projects. 168 properties: 169 dryRun: 170 description: DryRun makes the migrator only log the actions it would take. 171 type: boolean 172 type: object 173 replicas: 174 description: Replicas sets the number of pod replicas for the seed-controller-manager. 175 format: int32 176 type: integer 177 resources: 178 description: Resources describes the requested and maximum allowed CPU/memory usage. 179 properties: 180 claims: 181 description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." 182 items: 183 description: ResourceClaim references one entry in PodSpec.ResourceClaims. 184 properties: 185 name: 186 description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. 187 type: string 188 required: 189 - name 190 type: object 191 type: array 192 x-kubernetes-list-map-keys: 193 - name 194 x-kubernetes-list-type: map 195 limits: 196 additionalProperties: 197 anyOf: 198 - type: integer 199 - type: string 200 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 201 x-kubernetes-int-or-string: true 202 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 203 type: object 204 requests: 205 additionalProperties: 206 anyOf: 207 - type: integer 208 - type: string 209 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 210 x-kubernetes-int-or-string: true 211 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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 212 type: object 213 type: object 214 type: object 215 exposeStrategy: 216 description: ExposeStrategy is the strategy to expose the control planes of user clusters with. 217 enum: 218 - NodePort 219 - LoadBalancer 220 - Tunneling 221 type: string 222 featureGates: 223 additionalProperties: 224 type: boolean 225 description: FeatureGates are used to optionally enable certain features. 226 type: object 227 imagePullSecret: 228 description: ImagePullSecret is used to authenticate against Docker registries. 229 type: string 230 ingress: 231 description: Ingress contains settings for making the API and UI accessible remotely. 232 properties: 233 certificateIssuer: 234 description: CertificateIssuer is the name of a cert-manager Issuer or ClusterIssuer (default) that will be used to acquire the certificate for the configured domain. To use a namespaced Issuer, set the Kind to "Issuer" and manually create the matching Issuer in Kubermatic's namespace. Setting an empty name disables the automatic creation of certificates and disables the TLS settings on the Kubermatic Ingress. 235 properties: 236 apiGroup: 237 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. 238 type: string 239 kind: 240 description: Kind is the type of resource being referenced 241 type: string 242 name: 243 description: Name is the name of resource being referenced 244 type: string 245 required: 246 - kind 247 - name 248 type: object 249 x-kubernetes-map-type: atomic 250 className: 251 description: ClassName is the Ingress resource's class name, used for selecting the appropriate ingress controller. 252 type: string 253 disable: 254 description: Disable will prevent an Ingress from being created at all. This is mostly useful during testing. If the Ingress is disabled, the CertificateIssuer setting can also be left empty, as no Certificate resource will be created. 255 type: boolean 256 domain: 257 description: Domain is the base domain where the dashboard shall be available. Even with a disabled Ingress, this must always be a valid hostname. 258 type: string 259 required: 260 - domain 261 type: object 262 metering: 263 description: MeteringConfiguration contains all the configuration for the metering tool. 264 properties: 265 enabled: 266 type: boolean 267 reports: 268 additionalProperties: 269 properties: 270 interval: 271 default: 7 272 description: Interval defines the number of days consulted in the metering report. 273 format: int32 274 minimum: 1 275 type: integer 276 retention: 277 description: Retention defines a number of days after which reports are queued for removal. If not set, reports are kept forever. Please note that this functionality works only for object storage that supports an object lifecycle management mechanism. 278 format: int32 279 minimum: 1 280 type: integer 281 schedule: 282 default: 0 1 * * 6 283 description: Schedule in Cron format, see https://en.wikipedia.org/wiki/Cron. Please take a note that Schedule is responsible only for setting the time when a report generation mechanism kicks off. The Interval MUST be set independently. 284 type: string 285 type: 286 default: 287 - cluster 288 - namespace 289 description: Types of reports to generate. Available report types are cluster and namespace. By default, all types of reports are generated. 290 items: 291 type: string 292 type: array 293 type: object 294 default: 295 weekly: 296 interval: 7 297 schedule: 0 1 * * 6 298 description: ReportConfigurations is a map of report configuration definitions. 299 type: object 300 storageClassName: 301 description: StorageClassName is the name of the storage class that the metering prometheus instance uses to store metric data for reporting. 302 type: string 303 storageSize: 304 description: StorageSize is the size of the storage class. Default value is 100Gi. 305 type: string 306 required: 307 - enabled 308 - storageClassName 309 - storageSize 310 type: object 311 nodeportProxy: 312 description: NodeportProxy can be used to configure the NodePort proxy service that is responsible for making user-cluster control planes accessible from the outside. This only takes effect if the ExposeStrategy is set to NodePort. 313 properties: 314 annotations: 315 additionalProperties: 316 type: string 317 description: 'Annotations are used to further tweak the LoadBalancer integration with the cloud provider where the seed cluster is running. Deprecated: Use .envoy.loadBalancerService.annotations instead.' 318 type: object 319 disable: 320 description: Disable will prevent the Kubermatic Operator from creating a nodeport-proxy setup on the seed cluster. This should only be used if a suitable replacement is installed (like the nodeport-proxy Helm chart). 321 type: boolean 322 envoy: 323 description: Envoy configures the Envoy application itself. 324 properties: 325 dockerRepository: 326 description: DockerRepository is the repository containing the component's image. 327 type: string 328 loadBalancerService: 329 properties: 330 annotations: 331 additionalProperties: 332 type: string 333 description: Annotations are used to further tweak the LoadBalancer integration with the cloud provider. 334 type: object 335 sourceRanges: 336 description: 'SourceRanges will restrict loadbalancer service to IP ranges specified using CIDR notation like 172.25.0.0/16. This field will be ignored if the cloud-provider does not support the feature. More info: https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/' 337 items: 338 pattern: ^((\d{1,3}\.){3}\d{1,3}\/([0-9]|[1-2][0-9]|3[0-2]))$ 339 type: string 340 type: array 341 type: object 342 resources: 343 description: Resources describes the requested and maximum allowed CPU/memory usage. 344 properties: 345 claims: 346 description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." 347 items: 348 description: ResourceClaim references one entry in PodSpec.ResourceClaims. 349 properties: 350 name: 351 description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. 352 type: string 353 required: 354 - name 355 type: object 356 type: array 357 x-kubernetes-list-map-keys: 358 - name 359 x-kubernetes-list-type: map 360 limits: 361 additionalProperties: 362 anyOf: 363 - type: integer 364 - type: string 365 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 366 x-kubernetes-int-or-string: true 367 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 368 type: object 369 requests: 370 additionalProperties: 371 anyOf: 372 - type: integer 373 - type: string 374 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 375 x-kubernetes-int-or-string: true 376 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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 377 type: object 378 type: object 379 type: object 380 envoyManager: 381 description: EnvoyManager configures the Kubermatic-internal Envoy manager. 382 properties: 383 dockerRepository: 384 description: DockerRepository is the repository containing the component's image. 385 type: string 386 resources: 387 description: Resources describes the requested and maximum allowed CPU/memory usage. 388 properties: 389 claims: 390 description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." 391 items: 392 description: ResourceClaim references one entry in PodSpec.ResourceClaims. 393 properties: 394 name: 395 description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. 396 type: string 397 required: 398 - name 399 type: object 400 type: array 401 x-kubernetes-list-map-keys: 402 - name 403 x-kubernetes-list-type: map 404 limits: 405 additionalProperties: 406 anyOf: 407 - type: integer 408 - type: string 409 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 410 x-kubernetes-int-or-string: true 411 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 412 type: object 413 requests: 414 additionalProperties: 415 anyOf: 416 - type: integer 417 - type: string 418 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 419 x-kubernetes-int-or-string: true 420 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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 421 type: object 422 type: object 423 type: object 424 updater: 425 description: Updater configures the component responsible for updating the LoadBalancer service. 426 properties: 427 dockerRepository: 428 description: DockerRepository is the repository containing the component's image. 429 type: string 430 resources: 431 description: Resources describes the requested and maximum allowed CPU/memory usage. 432 properties: 433 claims: 434 description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." 435 items: 436 description: ResourceClaim references one entry in PodSpec.ResourceClaims. 437 properties: 438 name: 439 description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. 440 type: string 441 required: 442 - name 443 type: object 444 type: array 445 x-kubernetes-list-map-keys: 446 - name 447 x-kubernetes-list-type: map 448 limits: 449 additionalProperties: 450 anyOf: 451 - type: integer 452 - type: string 453 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 454 x-kubernetes-int-or-string: true 455 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 456 type: object 457 requests: 458 additionalProperties: 459 anyOf: 460 - type: integer 461 - type: string 462 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 463 x-kubernetes-int-or-string: true 464 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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 465 type: object 466 type: object 467 type: object 468 type: object 469 proxy: 470 description: Proxy allows to configure Kubermatic to use proxies to talk to the world outside of its cluster. 471 properties: 472 http: 473 description: HTTP is the full URL to the proxy to use for plaintext HTTP connections, e.g. "http://internalproxy.example.com:8080". 474 type: string 475 https: 476 description: HTTPS is the full URL to the proxy to use for encrypted HTTPS connections, e.g. "http://secureinternalproxy.example.com:8080". 477 type: string 478 noProxy: 479 description: 'NoProxy is a comma-separated list of hostnames / network masks for which no proxy shall be used. If you make use of proxies, this list should contain all local and cluster-internal domains and networks, e.g. "10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,mydomain". The operator will always prepend the following elements to this list if proxying is configured (i.e. HTTP/HTTPS are not empty): "127.0.0.1/8", "localhost", ".local", ".local.", "kubernetes", ".default", ".svc"' 480 type: string 481 type: object 482 ui: 483 description: UI configures the dashboard. 484 properties: 485 config: 486 description: Config sets flags for various dashboard features. 487 type: string 488 dockerRepository: 489 description: DockerRepository is the repository containing the Kubermatic dashboard image. 490 type: string 491 dockerTag: 492 description: DockerTag is used to overwrite the dashboard Docker image tag and is only for development purposes. This field must not be set in production environments. --- 493 type: string 494 dockerTagSuffix: 495 description: DockerTagSuffix is appended to the KKP version used for referring to the custom dashboard image. If left empty, either the `DockerTag` if specified or the original dashboard Docker image tag will be used. With DockerTagSuffix the tag becomes <KKP_VERSION:SUFFIX> i.e. "v3.15.0-SUFFIX". 496 type: string 497 extraVolumeMounts: 498 description: ExtraVolumeMounts allows to mount additional volumes into the UI container. 499 items: 500 description: VolumeMount describes a mounting of a Volume within a container. 501 properties: 502 mountPath: 503 description: Path within the container at which the volume should be mounted. Must not contain ':'. 504 type: string 505 mountPropagation: 506 description: mountPropagation determines how mounts are propagated from the host to container and the other way around. When not set, MountPropagationNone is used. This field is beta in 1.10. 507 type: string 508 name: 509 description: This must match the Name of a Volume. 510 type: string 511 readOnly: 512 description: Mounted read-only if true, read-write otherwise (false or unspecified). Defaults to false. 513 type: boolean 514 subPath: 515 description: Path within the volume from which the container's volume should be mounted. Defaults to "" (volume's root). 516 type: string 517 subPathExpr: 518 description: Expanded path within the volume from which the container's volume should be mounted. Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded using the container's environment. Defaults to "" (volume's root). SubPathExpr and SubPath are mutually exclusive. 519 type: string 520 required: 521 - mountPath 522 - name 523 type: object 524 type: array 525 extraVolumes: 526 description: ExtraVolumes allows to mount additional volumes into the UI container. 527 items: 528 description: Volume represents a named volume in a pod that may be accessed by any container in the pod. 529 properties: 530 awsElasticBlockStore: 531 description: 'awsElasticBlockStore represents an AWS Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' 532 properties: 533 fsType: 534 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore TODO: how do we prevent errors in the filesystem from compromising the machine' 535 type: string 536 partition: 537 description: 'partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty).' 538 format: int32 539 type: integer 540 readOnly: 541 description: 'readOnly value true will force the readOnly setting in VolumeMounts. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' 542 type: boolean 543 volumeID: 544 description: 'volumeID is unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore' 545 type: string 546 required: 547 - volumeID 548 type: object 549 azureDisk: 550 description: azureDisk represents an Azure Data Disk mount on the host and bind mount to the pod. 551 properties: 552 cachingMode: 553 description: 'cachingMode is the Host Caching mode: None, Read Only, Read Write.' 554 type: string 555 diskName: 556 description: diskName is the Name of the data disk in the blob storage 557 type: string 558 diskURI: 559 description: diskURI is the URI of data disk in the blob storage 560 type: string 561 fsType: 562 description: fsType is Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. 563 type: string 564 kind: 565 description: 'kind expected values are Shared: multiple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared' 566 type: string 567 readOnly: 568 description: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. 569 type: boolean 570 required: 571 - diskName 572 - diskURI 573 type: object 574 azureFile: 575 description: azureFile represents an Azure File Service mount on the host and bind mount to the pod. 576 properties: 577 readOnly: 578 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. 579 type: boolean 580 secretName: 581 description: secretName is the name of secret that contains Azure Storage Account Name and Key 582 type: string 583 shareName: 584 description: shareName is the azure share Name 585 type: string 586 required: 587 - secretName 588 - shareName 589 type: object 590 cephfs: 591 description: cephFS represents a Ceph FS mount on the host that shares a pod's lifetime 592 properties: 593 monitors: 594 description: 'monitors is Required: Monitors is a collection of Ceph monitors More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' 595 items: 596 type: string 597 type: array 598 path: 599 description: 'path is Optional: Used as the mounted root, rather than the full Ceph tree, default is /' 600 type: string 601 readOnly: 602 description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' 603 type: boolean 604 secretFile: 605 description: 'secretFile is Optional: SecretFile is the path to key ring for User, default is /etc/ceph/user.secret More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' 606 type: string 607 secretRef: 608 description: 'secretRef is Optional: SecretRef is reference to the authentication secret for User, default is empty. More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' 609 properties: 610 name: 611 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?' 612 type: string 613 type: object 614 x-kubernetes-map-type: atomic 615 user: 616 description: 'user is optional: User is the rados user name, default is admin More info: https://examples.k8s.io/volumes/cephfs/README.md#how-to-use-it' 617 type: string 618 required: 619 - monitors 620 type: object 621 cinder: 622 description: 'cinder represents a cinder volume attached and mounted on kubelets host machine. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' 623 properties: 624 fsType: 625 description: 'fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' 626 type: string 627 readOnly: 628 description: 'readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' 629 type: boolean 630 secretRef: 631 description: 'secretRef is optional: points to a secret object containing parameters used to connect to OpenStack.' 632 properties: 633 name: 634 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?' 635 type: string 636 type: object 637 x-kubernetes-map-type: atomic 638 volumeID: 639 description: 'volumeID used to identify the volume in cinder. More info: https://examples.k8s.io/mysql-cinder-pd/README.md' 640 type: string 641 required: 642 - volumeID 643 type: object 644 configMap: 645 description: configMap represents a configMap that should populate this volume 646 properties: 647 defaultMode: 648 description: 'defaultMode is optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.' 649 format: int32 650 type: integer 651 items: 652 description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. 653 items: 654 description: Maps a string key to a path within a volume. 655 properties: 656 key: 657 description: key is the key to project. 658 type: string 659 mode: 660 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.' 661 format: int32 662 type: integer 663 path: 664 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. 665 type: string 666 required: 667 - key 668 - path 669 type: object 670 type: array 671 name: 672 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?' 673 type: string 674 optional: 675 description: optional specify whether the ConfigMap or its keys must be defined 676 type: boolean 677 type: object 678 x-kubernetes-map-type: atomic 679 csi: 680 description: csi (Container Storage Interface) represents ephemeral storage that is handled by certain external CSI drivers (Beta feature). 681 properties: 682 driver: 683 description: driver is the name of the CSI driver that handles this volume. Consult with your admin for the correct name as registered in the cluster. 684 type: string 685 fsType: 686 description: fsType to mount. Ex. "ext4", "xfs", "ntfs". If not provided, the empty value is passed to the associated CSI driver which will determine the default filesystem to apply. 687 type: string 688 nodePublishSecretRef: 689 description: nodePublishSecretRef is a reference to the secret object containing sensitive information to pass to the CSI driver to complete the CSI NodePublishVolume and NodeUnpublishVolume calls. This field is optional, and may be empty if no secret is required. If the secret object contains more than one secret, all secret references are passed. 690 properties: 691 name: 692 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?' 693 type: string 694 type: object 695 x-kubernetes-map-type: atomic 696 readOnly: 697 description: readOnly specifies a read-only configuration for the volume. Defaults to false (read/write). 698 type: boolean 699 volumeAttributes: 700 additionalProperties: 701 type: string 702 description: volumeAttributes stores driver-specific properties that are passed to the CSI driver. Consult your driver's documentation for supported values. 703 type: object 704 required: 705 - driver 706 type: object 707 downwardAPI: 708 description: downwardAPI represents downward API about the pod that should populate this volume 709 properties: 710 defaultMode: 711 description: 'Optional: mode bits to use on created files by default. Must be a Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.' 712 format: int32 713 type: integer 714 items: 715 description: Items is a list of downward API volume file 716 items: 717 description: DownwardAPIVolumeFile represents information to create the file containing the pod field 718 properties: 719 fieldRef: 720 description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.' 721 properties: 722 apiVersion: 723 description: Version of the schema the FieldPath is written in terms of, defaults to "v1". 724 type: string 725 fieldPath: 726 description: Path of the field to select in the specified API version. 727 type: string 728 required: 729 - fieldPath 730 type: object 731 x-kubernetes-map-type: atomic 732 mode: 733 description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.' 734 format: int32 735 type: integer 736 path: 737 description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..''' 738 type: string 739 resourceFieldRef: 740 description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.' 741 properties: 742 containerName: 743 description: 'Container name: required for volumes, optional for env vars' 744 type: string 745 divisor: 746 anyOf: 747 - type: integer 748 - type: string 749 description: Specifies the output format of the exposed resources, defaults to "1" 750 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 751 x-kubernetes-int-or-string: true 752 resource: 753 description: 'Required: resource to select' 754 type: string 755 required: 756 - resource 757 type: object 758 x-kubernetes-map-type: atomic 759 required: 760 - path 761 type: object 762 type: array 763 type: object 764 emptyDir: 765 description: 'emptyDir represents a temporary directory that shares a pod''s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' 766 properties: 767 medium: 768 description: 'medium represents what type of storage medium should back this directory. The default is "" which means to use the node''s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' 769 type: string 770 sizeLimit: 771 anyOf: 772 - type: integer 773 - type: string 774 description: 'sizeLimit is the total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir' 775 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 776 x-kubernetes-int-or-string: true 777 type: object 778 ephemeral: 779 description: "ephemeral represents a volume that is handled by a cluster storage driver. The volume's lifecycle is tied to the pod that defines it - it will be created before the pod starts, and deleted when the pod is removed. \n Use this if: a) the volume is only needed while the pod runs, b) features of normal volumes like restoring from snapshot or capacity tracking are needed, c) the storage driver is specified through a storage class, and d) the storage driver supports dynamic volume provisioning through a PersistentVolumeClaim (see EphemeralVolumeSource for more information on the connection between this volume type and PersistentVolumeClaim). \n Use PersistentVolumeClaim or one of the vendor-specific APIs for volumes that persist for longer than the lifecycle of an individual pod. \n Use CSI for light-weight local ephemeral volumes if the CSI driver is meant to be used that way - see the documentation of the driver for more information. \n A pod can use both types of ephemeral volumes and persistent volumes at the same time." 780 properties: 781 volumeClaimTemplate: 782 description: "Will be used to create a stand-alone PVC to provision the volume. The pod in which this EphemeralVolumeSource is embedded will be the owner of the PVC, i.e. the PVC will be deleted together with the pod. The name of the PVC will be `<pod name>-<volume name>` where `<volume name>` is the name from the `PodSpec.Volumes` array entry. Pod validation will reject the pod if the concatenated name is not valid for a PVC (for example, too long). \n An existing PVC with that name that is not owned by the pod will *not* be used for the pod to avoid using an unrelated volume by mistake. Starting the pod is then blocked until the unrelated PVC is removed. If such a pre-created PVC is meant to be used by the pod, the PVC has to updated with an owner reference to the pod once the pod exists. Normally this should not be necessary, but it may be useful when manually reconstructing a broken cluster. \n This field is read-only and no changes will be made by Kubernetes to the PVC after it has been created. \n Required, must not be nil." 783 properties: 784 metadata: 785 description: May contain labels and annotations that will be copied into the PVC when creating it. No other fields are allowed and will be rejected during validation. 786 type: object 787 spec: 788 description: The specification for the PersistentVolumeClaim. The entire content is copied unchanged into the PVC that gets created from this template. The same fields as in a PersistentVolumeClaim are also valid here. 789 properties: 790 accessModes: 791 description: 'accessModes contains the desired access modes the volume should have. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#access-modes-1' 792 items: 793 type: string 794 type: array 795 dataSource: 796 description: 'dataSource field can be used to specify either: * An existing VolumeSnapshot object (snapshot.storage.k8s.io/VolumeSnapshot) * An existing PVC (PersistentVolumeClaim) If the provisioner or an external controller can support the specified data source, it will create a new volume based on the contents of the specified data source. When the AnyVolumeDataSource feature gate is enabled, dataSource contents will be copied to dataSourceRef, and dataSourceRef contents will be copied to dataSource when dataSourceRef.namespace is not specified. If the namespace is specified, then dataSourceRef will not be copied to dataSource.' 797 properties: 798 apiGroup: 799 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. 800 type: string 801 kind: 802 description: Kind is the type of resource being referenced 803 type: string 804 name: 805 description: Name is the name of resource being referenced 806 type: string 807 required: 808 - kind 809 - name 810 type: object 811 x-kubernetes-map-type: atomic 812 dataSourceRef: 813 description: 'dataSourceRef specifies the object from which to populate the volume with data, if a non-empty volume is desired. This may be any object from a non-empty API group (non core object) or a PersistentVolumeClaim object. When this field is specified, volume binding will only succeed if the type of the specified object matches some installed volume populator or dynamic provisioner. This field will replace the functionality of the dataSource field and as such if both fields are non-empty, they must have the same value. For backwards compatibility, when namespace isn''t specified in dataSourceRef, both fields (dataSource and dataSourceRef) will be set to the same value automatically if one of them is empty and the other is non-empty. When namespace is specified in dataSourceRef, dataSource isn''t set to the same value and must be empty. There are three important differences between dataSource and dataSourceRef: * While dataSource only allows two specific types of objects, dataSourceRef allows any non-core object, as well as PersistentVolumeClaim objects. * While dataSource ignores disallowed values (dropping them), dataSourceRef preserves all values, and generates an error if a disallowed value is specified. * While dataSource only allows local objects, dataSourceRef allows objects in any namespaces. (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled.' 814 properties: 815 apiGroup: 816 description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. 817 type: string 818 kind: 819 description: Kind is the type of resource being referenced 820 type: string 821 name: 822 description: Name is the name of resource being referenced 823 type: string 824 namespace: 825 description: Namespace is the namespace of resource being referenced Note that when a namespace is specified, a gateway.networking.k8s.io/ReferenceGrant object is required in the referent namespace to allow that namespace's owner to accept the reference. See the ReferenceGrant documentation for details. (Alpha) This field requires the CrossNamespaceVolumeDataSource feature gate to be enabled. 826 type: string 827 required: 828 - kind 829 - name 830 type: object 831 resources: 832 description: 'resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources' 833 properties: 834 claims: 835 description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." 836 items: 837 description: ResourceClaim references one entry in PodSpec.ResourceClaims. 838 properties: 839 name: 840 description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. 841 type: string 842 required: 843 - name 844 type: object 845 type: array 846 x-kubernetes-list-map-keys: 847 - name 848 x-kubernetes-list-type: map 849 limits: 850 additionalProperties: 851 anyOf: 852 - type: integer 853 - type: string 854 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 855 x-kubernetes-int-or-string: true 856 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 857 type: object 858 requests: 859 additionalProperties: 860 anyOf: 861 - type: integer 862 - type: string 863 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 864 x-kubernetes-int-or-string: true 865 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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 866 type: object 867 type: object 868 selector: 869 description: selector is a label query over volumes to consider for binding. 870 properties: 871 matchExpressions: 872 description: matchExpressions is a list of label selector requirements. The requirements are ANDed. 873 items: 874 description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. 875 properties: 876 key: 877 description: key is the label key that the selector applies to. 878 type: string 879 operator: 880 description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. 881 type: string 882 values: 883 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. 884 items: 885 type: string 886 type: array 887 required: 888 - key 889 - operator 890 type: object 891 type: array 892 matchLabels: 893 additionalProperties: 894 type: string 895 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. 896 type: object 897 type: object 898 x-kubernetes-map-type: atomic 899 storageClassName: 900 description: 'storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1' 901 type: string 902 volumeMode: 903 description: volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. 904 type: string 905 volumeName: 906 description: volumeName is the binding reference to the PersistentVolume backing this claim. 907 type: string 908 type: object 909 required: 910 - spec 911 type: object 912 type: object 913 fc: 914 description: fc represents a Fibre Channel resource that is attached to a kubelet's host machine and then exposed to the pod. 915 properties: 916 fsType: 917 description: 'fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. TODO: how do we prevent errors in the filesystem from compromising the machine' 918 type: string 919 lun: 920 description: 'lun is Optional: FC target lun number' 921 format: int32 922 type: integer 923 readOnly: 924 description: 'readOnly is Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.' 925 type: boolean 926 targetWWNs: 927 description: 'targetWWNs is Optional: FC target worldwide names (WWNs)' 928 items: 929 type: string 930 type: array 931 wwids: 932 description: 'wwids Optional: FC volume world wide identifiers (wwids) Either wwids or combination of targetWWNs and lun must be set, but not both simultaneously.' 933 items: 934 type: string 935 type: array 936 type: object 937 flexVolume: 938 description: flexVolume represents a generic volume resource that is provisioned/attached using an exec based plugin. 939 properties: 940 driver: 941 description: driver is the name of the driver to use for this volume. 942 type: string 943 fsType: 944 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". The default filesystem depends on FlexVolume script. 945 type: string 946 options: 947 additionalProperties: 948 type: string 949 description: 'options is Optional: this field holds extra command options if any.' 950 type: object 951 readOnly: 952 description: 'readOnly is Optional: defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.' 953 type: boolean 954 secretRef: 955 description: 'secretRef is Optional: secretRef is reference to the secret object containing sensitive information to pass to the plugin scripts. This may be empty if no secret object is specified. If the secret object contains more than one secret, all secrets are passed to the plugin scripts.' 956 properties: 957 name: 958 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?' 959 type: string 960 type: object 961 x-kubernetes-map-type: atomic 962 required: 963 - driver 964 type: object 965 flocker: 966 description: flocker represents a Flocker volume attached to a kubelet's host machine. This depends on the Flocker control service being running 967 properties: 968 datasetName: 969 description: datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker should be considered as deprecated 970 type: string 971 datasetUUID: 972 description: datasetUUID is the UUID of the dataset. This is unique identifier of a Flocker dataset 973 type: string 974 type: object 975 gcePersistentDisk: 976 description: 'gcePersistentDisk represents a GCE Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' 977 properties: 978 fsType: 979 description: 'fsType is filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk TODO: how do we prevent errors in the filesystem from compromising the machine' 980 type: string 981 partition: 982 description: 'partition is the partition in the volume that you want to mount. If omitted, the default is to mount by volume name. Examples: For volume /dev/sda1, you specify the partition as "1". Similarly, the volume partition for /dev/sda is "0" (or you can leave the property empty). More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' 983 format: int32 984 type: integer 985 pdName: 986 description: 'pdName is unique name of the PD resource in GCE. Used to identify the disk in GCE. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' 987 type: string 988 readOnly: 989 description: 'readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk' 990 type: boolean 991 required: 992 - pdName 993 type: object 994 gitRepo: 995 description: 'gitRepo represents a git repository at a particular revision. DEPRECATED: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod''s container.' 996 properties: 997 directory: 998 description: directory is the target directory name. Must not contain or start with '..'. If '.' is supplied, the volume directory will be the git repository. Otherwise, if specified, the volume will contain the git repository in the subdirectory with the given name. 999 type: string 1000 repository: 1001 description: repository is the URL 1002 type: string 1003 revision: 1004 description: revision is the commit hash for the specified revision. 1005 type: string 1006 required: 1007 - repository 1008 type: object 1009 glusterfs: 1010 description: 'glusterfs represents a Glusterfs mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/glusterfs/README.md' 1011 properties: 1012 endpoints: 1013 description: 'endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' 1014 type: string 1015 path: 1016 description: 'path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' 1017 type: string 1018 readOnly: 1019 description: 'readOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod' 1020 type: boolean 1021 required: 1022 - endpoints 1023 - path 1024 type: object 1025 hostPath: 1026 description: 'hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath --- TODO(jonesdl) We need to restrict who can use host directory mounts and who can/can not mount host directories as read/write.' 1027 properties: 1028 path: 1029 description: 'path of the directory on the host. If the path is a symlink, it will follow the link to the real path. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' 1030 type: string 1031 type: 1032 description: 'type for HostPath Volume Defaults to "" More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath' 1033 type: string 1034 required: 1035 - path 1036 type: object 1037 iscsi: 1038 description: 'iscsi represents an ISCSI Disk resource that is attached to a kubelet''s host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md' 1039 properties: 1040 chapAuthDiscovery: 1041 description: chapAuthDiscovery defines whether support iSCSI Discovery CHAP authentication 1042 type: boolean 1043 chapAuthSession: 1044 description: chapAuthSession defines whether support iSCSI Session CHAP authentication 1045 type: boolean 1046 fsType: 1047 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi TODO: how do we prevent errors in the filesystem from compromising the machine' 1048 type: string 1049 initiatorName: 1050 description: initiatorName is the custom iSCSI Initiator Name. If initiatorName is specified with iscsiInterface simultaneously, new iSCSI interface <target portal>:<volume name> will be created for the connection. 1051 type: string 1052 iqn: 1053 description: iqn is the target iSCSI Qualified Name. 1054 type: string 1055 iscsiInterface: 1056 description: iscsiInterface is the interface Name that uses an iSCSI transport. Defaults to 'default' (tcp). 1057 type: string 1058 lun: 1059 description: lun represents iSCSI Target Lun number. 1060 format: int32 1061 type: integer 1062 portals: 1063 description: portals is the iSCSI Target Portal List. The portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). 1064 items: 1065 type: string 1066 type: array 1067 readOnly: 1068 description: readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. 1069 type: boolean 1070 secretRef: 1071 description: secretRef is the CHAP Secret for iSCSI target and initiator authentication 1072 properties: 1073 name: 1074 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?' 1075 type: string 1076 type: object 1077 x-kubernetes-map-type: atomic 1078 targetPortal: 1079 description: targetPortal is iSCSI Target Portal. The Portal is either an IP or ip_addr:port if the port is other than default (typically TCP ports 860 and 3260). 1080 type: string 1081 required: 1082 - iqn 1083 - lun 1084 - targetPortal 1085 type: object 1086 name: 1087 description: 'name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' 1088 type: string 1089 nfs: 1090 description: 'nfs represents an NFS mount on the host that shares a pod''s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' 1091 properties: 1092 path: 1093 description: 'path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' 1094 type: string 1095 readOnly: 1096 description: 'readOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' 1097 type: boolean 1098 server: 1099 description: 'server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs' 1100 type: string 1101 required: 1102 - path 1103 - server 1104 type: object 1105 persistentVolumeClaim: 1106 description: 'persistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' 1107 properties: 1108 claimName: 1109 description: 'claimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims' 1110 type: string 1111 readOnly: 1112 description: readOnly Will force the ReadOnly setting in VolumeMounts. Default false. 1113 type: boolean 1114 required: 1115 - claimName 1116 type: object 1117 photonPersistentDisk: 1118 description: photonPersistentDisk represents a PhotonController persistent disk attached and mounted on kubelets host machine 1119 properties: 1120 fsType: 1121 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. 1122 type: string 1123 pdID: 1124 description: pdID is the ID that identifies Photon Controller persistent disk 1125 type: string 1126 required: 1127 - pdID 1128 type: object 1129 portworxVolume: 1130 description: portworxVolume represents a portworx volume attached and mounted on kubelets host machine 1131 properties: 1132 fsType: 1133 description: fSType represents the filesystem type to mount Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs". Implicitly inferred to be "ext4" if unspecified. 1134 type: string 1135 readOnly: 1136 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. 1137 type: boolean 1138 volumeID: 1139 description: volumeID uniquely identifies a Portworx volume 1140 type: string 1141 required: 1142 - volumeID 1143 type: object 1144 projected: 1145 description: projected items for all in one resources secrets, configmaps, and downward API 1146 properties: 1147 defaultMode: 1148 description: defaultMode are the mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set. 1149 format: int32 1150 type: integer 1151 sources: 1152 description: sources is the list of volume projections 1153 items: 1154 description: Projection that may be projected along with other supported volume types 1155 properties: 1156 configMap: 1157 description: configMap information about the configMap data to project 1158 properties: 1159 items: 1160 description: items if unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. 1161 items: 1162 description: Maps a string key to a path within a volume. 1163 properties: 1164 key: 1165 description: key is the key to project. 1166 type: string 1167 mode: 1168 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.' 1169 format: int32 1170 type: integer 1171 path: 1172 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. 1173 type: string 1174 required: 1175 - key 1176 - path 1177 type: object 1178 type: array 1179 name: 1180 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?' 1181 type: string 1182 optional: 1183 description: optional specify whether the ConfigMap or its keys must be defined 1184 type: boolean 1185 type: object 1186 x-kubernetes-map-type: atomic 1187 downwardAPI: 1188 description: downwardAPI information about the downwardAPI data to project 1189 properties: 1190 items: 1191 description: Items is a list of DownwardAPIVolume file 1192 items: 1193 description: DownwardAPIVolumeFile represents information to create the file containing the pod field 1194 properties: 1195 fieldRef: 1196 description: 'Required: Selects a field of the pod: only annotations, labels, name and namespace are supported.' 1197 properties: 1198 apiVersion: 1199 description: Version of the schema the FieldPath is written in terms of, defaults to "v1". 1200 type: string 1201 fieldPath: 1202 description: Path of the field to select in the specified API version. 1203 type: string 1204 required: 1205 - fieldPath 1206 type: object 1207 x-kubernetes-map-type: atomic 1208 mode: 1209 description: 'Optional: mode bits used to set permissions on this file, must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.' 1210 format: int32 1211 type: integer 1212 path: 1213 description: 'Required: Path is the relative path name of the file to be created. Must not be absolute or contain the ''..'' path. Must be utf-8 encoded. The first item of the relative path must not start with ''..''' 1214 type: string 1215 resourceFieldRef: 1216 description: 'Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, requests.cpu and requests.memory) are currently supported.' 1217 properties: 1218 containerName: 1219 description: 'Container name: required for volumes, optional for env vars' 1220 type: string 1221 divisor: 1222 anyOf: 1223 - type: integer 1224 - type: string 1225 description: Specifies the output format of the exposed resources, defaults to "1" 1226 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1227 x-kubernetes-int-or-string: true 1228 resource: 1229 description: 'Required: resource to select' 1230 type: string 1231 required: 1232 - resource 1233 type: object 1234 x-kubernetes-map-type: atomic 1235 required: 1236 - path 1237 type: object 1238 type: array 1239 type: object 1240 secret: 1241 description: secret information about the secret data to project 1242 properties: 1243 items: 1244 description: items if unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. 1245 items: 1246 description: Maps a string key to a path within a volume. 1247 properties: 1248 key: 1249 description: key is the key to project. 1250 type: string 1251 mode: 1252 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.' 1253 format: int32 1254 type: integer 1255 path: 1256 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. 1257 type: string 1258 required: 1259 - key 1260 - path 1261 type: object 1262 type: array 1263 name: 1264 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?' 1265 type: string 1266 optional: 1267 description: optional field specify whether the Secret or its key must be defined 1268 type: boolean 1269 type: object 1270 x-kubernetes-map-type: atomic 1271 serviceAccountToken: 1272 description: serviceAccountToken is information about the serviceAccountToken data to project 1273 properties: 1274 audience: 1275 description: audience is the intended audience of the token. A recipient of a token must identify itself with an identifier specified in the audience of the token, and otherwise should reject the token. The audience defaults to the identifier of the apiserver. 1276 type: string 1277 expirationSeconds: 1278 description: expirationSeconds is the requested duration of validity of the service account token. As the token approaches expiration, the kubelet volume plugin will proactively rotate the service account token. The kubelet will start trying to rotate the token if the token is older than 80 percent of its time to live or if the token is older than 24 hours.Defaults to 1 hour and must be at least 10 minutes. 1279 format: int64 1280 type: integer 1281 path: 1282 description: path is the path relative to the mount point of the file to project the token into. 1283 type: string 1284 required: 1285 - path 1286 type: object 1287 type: object 1288 type: array 1289 type: object 1290 quobyte: 1291 description: quobyte represents a Quobyte mount on the host that shares a pod's lifetime 1292 properties: 1293 group: 1294 description: group to map volume access to Default is no group 1295 type: string 1296 readOnly: 1297 description: readOnly here will force the Quobyte volume to be mounted with read-only permissions. Defaults to false. 1298 type: boolean 1299 registry: 1300 description: registry represents a single or multiple Quobyte Registry services specified as a string as host:port pair (multiple entries are separated with commas) which acts as the central registry for volumes 1301 type: string 1302 tenant: 1303 description: tenant owning the given Quobyte volume in the Backend Used with dynamically provisioned Quobyte volumes, value is set by the plugin 1304 type: string 1305 user: 1306 description: user to map volume access to Defaults to serivceaccount user 1307 type: string 1308 volume: 1309 description: volume is a string that references an already created Quobyte volume by name. 1310 type: string 1311 required: 1312 - registry 1313 - volume 1314 type: object 1315 rbd: 1316 description: 'rbd represents a Rados Block Device mount on the host that shares a pod''s lifetime. More info: https://examples.k8s.io/volumes/rbd/README.md' 1317 properties: 1318 fsType: 1319 description: 'fsType is the filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd TODO: how do we prevent errors in the filesystem from compromising the machine' 1320 type: string 1321 image: 1322 description: 'image is the rados image name. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' 1323 type: string 1324 keyring: 1325 description: 'keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' 1326 type: string 1327 monitors: 1328 description: 'monitors is a collection of Ceph monitors. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' 1329 items: 1330 type: string 1331 type: array 1332 pool: 1333 description: 'pool is the rados pool name. Default is rbd. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' 1334 type: string 1335 readOnly: 1336 description: 'readOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' 1337 type: boolean 1338 secretRef: 1339 description: 'secretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' 1340 properties: 1341 name: 1342 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?' 1343 type: string 1344 type: object 1345 x-kubernetes-map-type: atomic 1346 user: 1347 description: 'user is the rados user name. Default is admin. More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it' 1348 type: string 1349 required: 1350 - image 1351 - monitors 1352 type: object 1353 scaleIO: 1354 description: scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. 1355 properties: 1356 fsType: 1357 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Default is "xfs". 1358 type: string 1359 gateway: 1360 description: gateway is the host address of the ScaleIO API Gateway. 1361 type: string 1362 protectionDomain: 1363 description: protectionDomain is the name of the ScaleIO Protection Domain for the configured storage. 1364 type: string 1365 readOnly: 1366 description: readOnly Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. 1367 type: boolean 1368 secretRef: 1369 description: secretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail. 1370 properties: 1371 name: 1372 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?' 1373 type: string 1374 type: object 1375 x-kubernetes-map-type: atomic 1376 sslEnabled: 1377 description: sslEnabled Flag enable/disable SSL communication with Gateway, default false 1378 type: boolean 1379 storageMode: 1380 description: storageMode indicates whether the storage for a volume should be ThickProvisioned or ThinProvisioned. Default is ThinProvisioned. 1381 type: string 1382 storagePool: 1383 description: storagePool is the ScaleIO Storage Pool associated with the protection domain. 1384 type: string 1385 system: 1386 description: system is the name of the storage system as configured in ScaleIO. 1387 type: string 1388 volumeName: 1389 description: volumeName is the name of a volume already created in the ScaleIO system that is associated with this volume source. 1390 type: string 1391 required: 1392 - gateway 1393 - secretRef 1394 - system 1395 type: object 1396 secret: 1397 description: 'secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' 1398 properties: 1399 defaultMode: 1400 description: 'defaultMode is Optional: mode bits used to set permissions on created files by default. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. Defaults to 0644. Directories within the path are not affected by this setting. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.' 1401 format: int32 1402 type: integer 1403 items: 1404 description: items If unspecified, each key-value pair in the Data field of the referenced Secret will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the Secret, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the '..' path or start with '..'. 1405 items: 1406 description: Maps a string key to a path within a volume. 1407 properties: 1408 key: 1409 description: key is the key to project. 1410 type: string 1411 mode: 1412 description: 'mode is Optional: mode bits used to set permissions on this file. Must be an octal value between 0000 and 0777 or a decimal value between 0 and 511. YAML accepts both octal and decimal values, JSON requires decimal values for mode bits. If not specified, the volume defaultMode will be used. This might be in conflict with other options that affect the file mode, like fsGroup, and the result can be other mode bits set.' 1413 format: int32 1414 type: integer 1415 path: 1416 description: path is the relative path of the file to map the key to. May not be an absolute path. May not contain the path element '..'. May not start with the string '..'. 1417 type: string 1418 required: 1419 - key 1420 - path 1421 type: object 1422 type: array 1423 optional: 1424 description: optional field specify whether the Secret or its keys must be defined 1425 type: boolean 1426 secretName: 1427 description: 'secretName is the name of the secret in the pod''s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret' 1428 type: string 1429 type: object 1430 storageos: 1431 description: storageOS represents a StorageOS volume attached and mounted on Kubernetes nodes. 1432 properties: 1433 fsType: 1434 description: fsType is the filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. 1435 type: string 1436 readOnly: 1437 description: readOnly defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. 1438 type: boolean 1439 secretRef: 1440 description: secretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted. 1441 properties: 1442 name: 1443 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?' 1444 type: string 1445 type: object 1446 x-kubernetes-map-type: atomic 1447 volumeName: 1448 description: volumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace. 1449 type: string 1450 volumeNamespace: 1451 description: volumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod's namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created. 1452 type: string 1453 type: object 1454 vsphereVolume: 1455 description: vsphereVolume represents a vSphere volume attached and mounted on kubelets host machine 1456 properties: 1457 fsType: 1458 description: fsType is filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. 1459 type: string 1460 storagePolicyID: 1461 description: storagePolicyID is the storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName. 1462 type: string 1463 storagePolicyName: 1464 description: storagePolicyName is the storage Policy Based Management (SPBM) profile name. 1465 type: string 1466 volumePath: 1467 description: volumePath is the path that identifies vSphere volume vmdk 1468 type: string 1469 required: 1470 - volumePath 1471 type: object 1472 required: 1473 - name 1474 type: object 1475 type: array 1476 replicas: 1477 description: Replicas sets the number of pod replicas for the UI deployment. 1478 format: int32 1479 type: integer 1480 resources: 1481 description: Resources describes the requested and maximum allowed CPU/memory usage. 1482 properties: 1483 claims: 1484 description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." 1485 items: 1486 description: ResourceClaim references one entry in PodSpec.ResourceClaims. 1487 properties: 1488 name: 1489 description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. 1490 type: string 1491 required: 1492 - name 1493 type: object 1494 type: array 1495 x-kubernetes-list-map-keys: 1496 - name 1497 x-kubernetes-list-type: map 1498 limits: 1499 additionalProperties: 1500 anyOf: 1501 - type: integer 1502 - type: string 1503 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1504 x-kubernetes-int-or-string: true 1505 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 1506 type: object 1507 requests: 1508 additionalProperties: 1509 anyOf: 1510 - type: integer 1511 - type: string 1512 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1513 x-kubernetes-int-or-string: true 1514 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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 1515 type: object 1516 type: object 1517 type: object 1518 userCluster: 1519 description: UserCluster configures various aspects of the user-created clusters. 1520 properties: 1521 addons: 1522 description: Addons controls the optional additions installed into each user cluster. 1523 properties: 1524 default: 1525 description: Default is the list of addons to be installed by default into each cluster. Mutually exclusive with "defaultManifests". 1526 items: 1527 type: string 1528 type: array 1529 defaultManifests: 1530 description: DefaultManifests is a list of addon manifests to install into all clusters. Mutually exclusive with "default". 1531 type: string 1532 dockerRepository: 1533 description: DockerRepository is the repository containing the Docker image containing the possible addon manifests. 1534 type: string 1535 dockerTagSuffix: 1536 description: DockerTagSuffix is appended to the tag used for referring to the addons image. If left empty, the tag will be the KKP version (e.g. "v3.15.0"), with a suffix it becomes "v3.15.0-SUFFIX". 1537 type: string 1538 type: object 1539 apiserverReplicas: 1540 description: APIServerReplicas configures the replica count for the API-Server deployment inside user clusters. 1541 format: int32 1542 type: integer 1543 baseDomain: 1544 description: This configures the base domain for all userclusters. Each usercluster will get a subdomain (named <clustername>.<basedomain>) to allow access to the cluster's controlplane. This domain should be different from the main ingress (which makes the KKP dashboard available), as cluster names might collide with other, well-known names and could interfere with the dashboard. If your dashboard is using "example.com", you could configure the usercluster base domain as "clusters.example.com". 1545 type: string 1546 defaultTemplate: 1547 description: DefaultCTemplate is the name of a cluster template that is used to default a new user cluster. 1548 type: string 1549 disableApiserverEndpointReconciling: 1550 description: DisableAPIServerEndpointReconciling can be used to toggle the `--endpoint-reconciler-type` flag for the Kubernetes API server. 1551 type: boolean 1552 dnatControllerDockerRepository: 1553 description: DNATControllerDockerRepository is the repository containing the dnat-controller image. 1554 type: string 1555 etcdBackupRestore: 1556 description: EtcdBackupRestore holds the configuration of the automatic etcd backup restores for the Seed; if this is set, the new backup/restore controllers are enabled for this Seed. 1557 properties: 1558 defaultDestination: 1559 description: DefaultDestination marks the default destination that will be used for the default etcd backup config which is created for every user cluster. Has to correspond to a destination in Destinations. If removed, it removes the related default etcd backup configs. 1560 maxLength: 63 1561 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ 1562 type: string 1563 destinations: 1564 additionalProperties: 1565 description: EtcdBackupDestination defines the bucket name and endpoint as a backup destination, and holds reference to the credentials secret. 1566 properties: 1567 bucketName: 1568 description: BucketName is the bucket name to use for backup and restore. 1569 type: string 1570 credentials: 1571 description: Credentials hold the ref to the secret with backup credentials 1572 properties: 1573 name: 1574 description: name is unique within a namespace to reference a secret resource. 1575 type: string 1576 namespace: 1577 description: namespace defines the space within which the secret name must be unique. 1578 type: string 1579 type: object 1580 x-kubernetes-map-type: atomic 1581 endpoint: 1582 description: Endpoint is the API endpoint to use for backup and restore. 1583 type: string 1584 required: 1585 - bucketName 1586 - endpoint 1587 type: object 1588 description: Destinations stores all the possible destinations where the backups for the Seed can be stored. If not empty, it enables automatic backup and restore for the seed. 1589 type: object 1590 type: object 1591 etcdLauncherDockerRepository: 1592 description: EtcdLauncherDockerRepository is the repository containing the Kubermatic etcd-launcher image. 1593 type: string 1594 etcdVolumeSize: 1595 description: EtcdVolumeSize configures the volume size to use for each etcd pod inside user clusters. 1596 type: string 1597 kubermaticDockerRepository: 1598 description: KubermaticDockerRepository is the repository containing the Kubermatic user-cluster-controller-manager image. 1599 type: string 1600 machineController: 1601 description: MachineController configures the Machine Controller 1602 properties: 1603 imageRepository: 1604 description: ImageRepository is used to override the Machine Controller image repository. It is only for development, tests and PoC purposes. This field must not be set in production environments. 1605 type: string 1606 imageTag: 1607 description: ImageTag is used to override the Machine Controller image. It is only for development, tests and PoC purposes. This field must not be set in production environments. 1608 type: string 1609 type: object 1610 mla: 1611 description: KubermaticUserClusterMLAConfiguration allows configuring Monitoring, Logging & Alerting settings. 1612 properties: 1613 enabled: 1614 type: boolean 1615 required: 1616 - enabled 1617 type: object 1618 monitoring: 1619 description: Monitoring can be used to fine-tune to in-cluster Prometheus. 1620 properties: 1621 customRules: 1622 description: CustomRules can be used to inject custom recording and alerting rules. This field must be a YAML-formatted string with a `group` element at its root, as documented on https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/. This value is treated as a Go template, which allows to inject dynamic values like the internal cluster address or the cluster ID. Refer to pkg/resources/prometheus and the documentation for more information on the available fields. 1623 type: string 1624 customScrapingConfigs: 1625 description: CustomScrapingConfigs can be used to inject custom scraping rules. This must be a YAML-formatted string containing an array of scrape configurations as documented on https://prometheus.io/docs/prometheus/latest/configuration/configuration/#scrape_config. This value is treated as a Go template, which allows to inject dynamic values like the internal cluster address or the cluster ID. Refer to pkg/resources/prometheus and the documentation for more information on the available fields. 1626 type: string 1627 disableDefaultRules: 1628 description: DisableDefaultRules disables the recording and alerting rules. 1629 type: boolean 1630 disableDefaultScrapingConfigs: 1631 description: DisableDefaultScrapingConfigs disables the default scraping targets. 1632 type: boolean 1633 scrapeAnnotationPrefix: 1634 description: ScrapeAnnotationPrefix (if set) is used to make the in-cluster Prometheus scrape pods inside the user clusters. 1635 type: string 1636 type: object 1637 nodePortRange: 1638 description: NodePortRange is the port range for user clusters - this must match the NodePort range of the seed cluster. 1639 type: string 1640 operatingSystemManager: 1641 description: OperatingSystemManager configures the image repo and the tag version for osm deployment. 1642 properties: 1643 imageRepository: 1644 description: ImageRepository is used to override the OperatingSystemManager image repository. It is recommended to use this field only for development, tests and PoC purposes. For production environments. it is not recommended, to use this field due to compatibility with the overall KKP stack. 1645 type: string 1646 imageTag: 1647 description: ImageTag is used to override the OperatingSystemManager image. It is recommended to use this field only for development, tests and PoC purposes. For production environments. it is not recommended, to use this field due to compatibility with the overall KKP stack. 1648 type: string 1649 type: object 1650 overwriteRegistry: 1651 description: OverwriteRegistry specifies a custom Docker registry which will be used for all images used for user clusters (user cluster control plane + addons). This also applies to the KubermaticDockerRepository and DNATControllerDockerRepository fields. 1652 type: string 1653 proxySettings: 1654 description: 'Optional: ProxySettings can be used to configure HTTP proxy settings on the worker nodes in user clusters. However, proxy settings on nodes take precedence.' 1655 properties: 1656 httpProxy: 1657 description: 'Optional: If set, this proxy will be configured for both HTTP and HTTPS.' 1658 type: string 1659 noProxy: 1660 description: 'Optional: If set this will be set as NO_PROXY environment variable on the node; The value must be a comma-separated list of domains for which no proxy should be used, e.g. "*.example.com,internal.dev". Note that the in-cluster apiserver URL will be automatically prepended to this value.' 1661 type: string 1662 type: object 1663 systemApplications: 1664 description: SystemApplications contains configuration for system Applications (such as CNI). 1665 properties: 1666 helmRegistryConfigFile: 1667 description: HelmRegistryConfigFile optionally holds the ref and key in the secret for the OCI registry credential file. The value is dockercfg file that follows the same format rules as ~/.docker/config.json The Secret must exist in the namespace where KKP is installed (default is "kubermatic"). The Secret must be annotated with `apps.kubermatic.k8c.io/secret-type:` set to "helm". 1668 properties: 1669 key: 1670 description: The key of the secret to select from. Must be a valid secret key. 1671 type: string 1672 name: 1673 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?' 1674 type: string 1675 optional: 1676 description: Specify whether the Secret or its key must be defined 1677 type: boolean 1678 required: 1679 - key 1680 type: object 1681 x-kubernetes-map-type: atomic 1682 helmRepository: 1683 description: HelmRepository specifies OCI repository containing Helm charts of system Applications. 1684 type: string 1685 type: object 1686 required: 1687 - baseDomain 1688 type: object 1689 versions: 1690 description: Versions configures the available and default Kubernetes versions and updates. 1691 properties: 1692 default: 1693 description: Default is the default version to offer users. 1694 type: string 1695 providerIncompatibilities: 1696 description: ProviderIncompatibilities lists all the Kubernetes version incompatibilities 1697 items: 1698 description: Incompatibility represents a version incompatibility for a user cluster. 1699 properties: 1700 condition: 1701 description: Condition is the cluster or datacenter condition that must be met to block a specific version 1702 enum: 1703 - always 1704 - externalCloudProvider 1705 - inTreeProvider 1706 type: string 1707 operation: 1708 description: Operation is the operation triggering the compatibility check (CREATE or UPDATE) 1709 enum: 1710 - CREATE 1711 - UPGRADE 1712 - SUPPORT 1713 type: string 1714 provider: 1715 description: Provider to which to apply the compatibility check. If this is not specified, the incompatibility is valid for all cloud providers. 1716 enum: 1717 - alibaba 1718 - anexia 1719 - aws 1720 - azure 1721 - bringyourown 1722 - digitalocean 1723 - gcp 1724 - hetzner 1725 - kubevirt 1726 - nutanix 1727 - openstack 1728 - packet 1729 - vmwareclouddirector 1730 - vsphere 1731 type: string 1732 version: 1733 description: Version is the Kubernetes version that must be checked. Wildcards are allowed, e.g. "1.25.*". 1734 type: string 1735 type: object 1736 type: array 1737 updates: 1738 description: 'Updates is a list of available and automatic upgrades. All ''to'' versions must be configured in the version list for this orchestrator. Each update may optionally be configured to be ''automatic: true'', in which case the controlplane of all clusters whose version matches the ''from'' directive will get updated to the ''to'' version. If automatic is enabled, the ''to'' version must be a version and not a version range. Also, updates may set ''automaticNodeUpdate: true'', in which case Nodes will get updates as well. ''automaticNodeUpdate: true'' implies ''automatic: true'' as well, because Nodes may not have a newer version than the controlplane.' 1739 items: 1740 description: Update represents an update option for a user cluster. 1741 properties: 1742 automatic: 1743 description: Automatic controls whether this update is executed automatically for the control plane of all matching user clusters. --- 1744 type: boolean 1745 automaticNodeUpdate: 1746 description: Automatic controls whether this update is executed automatically for the worker nodes of all matching user clusters. --- 1747 type: boolean 1748 from: 1749 description: From is the version from which an update is allowed. Wildcards are allowed, e.g. "1.18.*". 1750 type: string 1751 to: 1752 description: To is the version to which an update is allowed. Must be a valid version if `automatic` is set to true, e.g. "1.20.13". Can be a wildcard otherwise, e.g. "1.20.*". 1753 type: string 1754 type: object 1755 type: array 1756 versions: 1757 description: Versions lists the available versions. 1758 items: 1759 description: Semver is a type that encapsulates github.com/Masterminds/semver/v3.Version struct so it can be used in our API. 1760 type: string 1761 type: array 1762 type: object 1763 verticalPodAutoscaler: 1764 description: VerticalPodAutoscaler configures the Kubernetes VPA integration. 1765 properties: 1766 admissionController: 1767 properties: 1768 dockerRepository: 1769 description: DockerRepository is the repository containing the component's image. 1770 type: string 1771 resources: 1772 description: Resources describes the requested and maximum allowed CPU/memory usage. 1773 properties: 1774 claims: 1775 description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." 1776 items: 1777 description: ResourceClaim references one entry in PodSpec.ResourceClaims. 1778 properties: 1779 name: 1780 description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. 1781 type: string 1782 required: 1783 - name 1784 type: object 1785 type: array 1786 x-kubernetes-list-map-keys: 1787 - name 1788 x-kubernetes-list-type: map 1789 limits: 1790 additionalProperties: 1791 anyOf: 1792 - type: integer 1793 - type: string 1794 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1795 x-kubernetes-int-or-string: true 1796 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 1797 type: object 1798 requests: 1799 additionalProperties: 1800 anyOf: 1801 - type: integer 1802 - type: string 1803 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1804 x-kubernetes-int-or-string: true 1805 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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 1806 type: object 1807 type: object 1808 type: object 1809 recommender: 1810 properties: 1811 dockerRepository: 1812 description: DockerRepository is the repository containing the component's image. 1813 type: string 1814 resources: 1815 description: Resources describes the requested and maximum allowed CPU/memory usage. 1816 properties: 1817 claims: 1818 description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." 1819 items: 1820 description: ResourceClaim references one entry in PodSpec.ResourceClaims. 1821 properties: 1822 name: 1823 description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. 1824 type: string 1825 required: 1826 - name 1827 type: object 1828 type: array 1829 x-kubernetes-list-map-keys: 1830 - name 1831 x-kubernetes-list-type: map 1832 limits: 1833 additionalProperties: 1834 anyOf: 1835 - type: integer 1836 - type: string 1837 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1838 x-kubernetes-int-or-string: true 1839 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 1840 type: object 1841 requests: 1842 additionalProperties: 1843 anyOf: 1844 - type: integer 1845 - type: string 1846 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1847 x-kubernetes-int-or-string: true 1848 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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 1849 type: object 1850 type: object 1851 type: object 1852 updater: 1853 properties: 1854 dockerRepository: 1855 description: DockerRepository is the repository containing the component's image. 1856 type: string 1857 resources: 1858 description: Resources describes the requested and maximum allowed CPU/memory usage. 1859 properties: 1860 claims: 1861 description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." 1862 items: 1863 description: ResourceClaim references one entry in PodSpec.ResourceClaims. 1864 properties: 1865 name: 1866 description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. 1867 type: string 1868 required: 1869 - name 1870 type: object 1871 type: array 1872 x-kubernetes-list-map-keys: 1873 - name 1874 x-kubernetes-list-type: map 1875 limits: 1876 additionalProperties: 1877 anyOf: 1878 - type: integer 1879 - type: string 1880 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1881 x-kubernetes-int-or-string: true 1882 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 1883 type: object 1884 requests: 1885 additionalProperties: 1886 anyOf: 1887 - type: integer 1888 - type: string 1889 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1890 x-kubernetes-int-or-string: true 1891 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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 1892 type: object 1893 type: object 1894 type: object 1895 type: object 1896 webhook: 1897 description: Webhook configures the webhook. 1898 properties: 1899 debugLog: 1900 description: DebugLog enables more verbose logging. 1901 type: boolean 1902 dockerRepository: 1903 description: DockerRepository is the repository containing the Kubermatic webhook image. 1904 type: string 1905 pprofEndpoint: 1906 description: PProfEndpoint controls the port the webhook should listen on to provide pprof data. This port is never exposed from the container and only available via port-forwardings. 1907 type: string 1908 replicas: 1909 description: Replicas sets the number of pod replicas for the webhook. 1910 format: int32 1911 type: integer 1912 resources: 1913 description: Resources describes the requested and maximum allowed CPU/memory usage. 1914 properties: 1915 claims: 1916 description: "Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. \n This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. \n This field is immutable. It can only be set for containers." 1917 items: 1918 description: ResourceClaim references one entry in PodSpec.ResourceClaims. 1919 properties: 1920 name: 1921 description: Name must match the name of one entry in pod.spec.resourceClaims of the Pod where this field is used. It makes that resource available inside a container. 1922 type: string 1923 required: 1924 - name 1925 type: object 1926 type: array 1927 x-kubernetes-list-map-keys: 1928 - name 1929 x-kubernetes-list-type: map 1930 limits: 1931 additionalProperties: 1932 anyOf: 1933 - type: integer 1934 - type: string 1935 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1936 x-kubernetes-int-or-string: true 1937 description: 'Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 1938 type: object 1939 requests: 1940 additionalProperties: 1941 anyOf: 1942 - type: integer 1943 - type: string 1944 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 1945 x-kubernetes-int-or-string: true 1946 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. Requests cannot exceed Limits. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' 1947 type: object 1948 type: object 1949 type: object 1950 type: object 1951 status: 1952 description: KubermaticConfigurationStatus stores status information about a KubermaticConfiguration. 1953 properties: 1954 kubermaticEdition: 1955 description: KubermaticEdition current Kubermatic Edition , i.e. Community Edition or Enterprise Edition. 1956 type: string 1957 kubermaticVersion: 1958 description: KubermaticVersion current Kubermatic Version. 1959 type: string 1960 type: object 1961 type: object 1962 served: true 1963 storage: true 1964 subresources: 1965 status: {}