github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/helm/crds/extensions.kubeblocks.io_addons.yaml (about) 1 apiVersion: apiextensions.k8s.io/v1 2 kind: CustomResourceDefinition 3 metadata: 4 annotations: 5 controller-gen.kubebuilder.io/version: v0.12.1 6 labels: 7 app.kubernetes.io/name: kubeblocks 8 name: addons.extensions.kubeblocks.io 9 spec: 10 group: extensions.kubeblocks.io 11 names: 12 categories: 13 - kubeblocks 14 kind: Addon 15 listKind: AddonList 16 plural: addons 17 singular: addon 18 scope: Cluster 19 versions: 20 - additionalPrinterColumns: 21 - description: addon types 22 jsonPath: .spec.type 23 name: TYPE 24 type: string 25 - description: status phase 26 jsonPath: .status.phase 27 name: STATUS 28 type: string 29 - jsonPath: .metadata.creationTimestamp 30 name: AGE 31 type: date 32 name: v1alpha1 33 schema: 34 openAPIV3Schema: 35 description: Addon is the Schema for the add-ons API. 36 properties: 37 apiVersion: 38 description: 'APIVersion defines the versioned schema of this representation 39 of an object. Servers should convert recognized schemas to the latest 40 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 41 type: string 42 kind: 43 description: 'Kind is a string value representing the REST resource this 44 object represents. Servers may infer this from the endpoint the client 45 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 46 type: string 47 metadata: 48 type: object 49 spec: 50 description: AddonSpec defines the desired state of an add-on. 51 properties: 52 cliPlugins: 53 description: Plugin installation spec. 54 items: 55 properties: 56 description: 57 description: The description of the plugin. 58 type: string 59 indexRepository: 60 description: The index repository of the plugin. 61 type: string 62 name: 63 description: Name of the plugin. 64 type: string 65 required: 66 - indexRepository 67 - name 68 type: object 69 type: array 70 defaultInstallValues: 71 description: Default installation parameters. 72 items: 73 properties: 74 enabled: 75 description: enabled can be set if there are no specific installation 76 attributes to be set. 77 type: boolean 78 extras: 79 description: Installs spec. for extra items. 80 items: 81 properties: 82 name: 83 description: Name of the item. 84 type: string 85 persistentVolumeEnabled: 86 description: Persistent Volume Enabled value. 87 type: boolean 88 replicas: 89 description: Replicas value. 90 format: int32 91 type: integer 92 resources: 93 description: Resource requirements. 94 properties: 95 limits: 96 additionalProperties: 97 anyOf: 98 - type: integer 99 - type: string 100 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 101 x-kubernetes-int-or-string: true 102 description: 'Limits describes the maximum amount 103 of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/.' 104 type: object 105 requests: 106 additionalProperties: 107 anyOf: 108 - type: integer 109 - type: string 110 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 111 x-kubernetes-int-or-string: true 112 description: 'Requests describes the minimum amount 113 of compute resources required. If Requests is omitted 114 for a container, it defaults to Limits if that is 115 explicitly specified; otherwise, it defaults to 116 an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/.' 117 type: object 118 type: object 119 storageClass: 120 description: Storage class name. 121 type: string 122 tolerations: 123 description: Tolerations JSON array string value. 124 type: string 125 required: 126 - name 127 type: object 128 type: array 129 x-kubernetes-list-map-keys: 130 - name 131 x-kubernetes-list-type: map 132 persistentVolumeEnabled: 133 description: Persistent Volume Enabled value. 134 type: boolean 135 replicas: 136 description: Replicas value. 137 format: int32 138 type: integer 139 resources: 140 description: Resource requirements. 141 properties: 142 limits: 143 additionalProperties: 144 anyOf: 145 - type: integer 146 - type: string 147 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 148 x-kubernetes-int-or-string: true 149 description: 'Limits describes the maximum amount of compute 150 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/.' 151 type: object 152 requests: 153 additionalProperties: 154 anyOf: 155 - type: integer 156 - type: string 157 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 158 x-kubernetes-int-or-string: true 159 description: 'Requests describes the minimum amount of compute 160 resources required. If Requests is omitted for a container, 161 it defaults to Limits if that is explicitly specified; 162 otherwise, it defaults to an implementation-defined value. 163 More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/.' 164 type: object 165 type: object 166 selectors: 167 description: Addon installs parameters selectors by default. 168 If multiple selectors are provided, all selectors must evaluate 169 to true. 170 items: 171 properties: 172 key: 173 description: The selector key. Valid values are KubeVersion, 174 KubeGitVersion and KubeProvider. "KubeVersion" the semver 175 expression of Kubernetes versions, i.e., v1.24. "KubeGitVersion" 176 may contain distro. info., i.e., v1.24.4+eks. "KubeProvider" 177 the Kubernetes provider, i.e., aws,gcp,azure,huaweiCloud,tencentCloud 178 etc. 179 enum: 180 - KubeGitVersion 181 - KubeVersion 182 - KubeProvider 183 type: string 184 operator: 185 description: "Represents a key's relationship to a set 186 of values. Valid operators are Contains, NotIn, DoesNotContain, 187 MatchRegex, and DoesNoteMatchRegex. \n Possible enum 188 values: `\"Contains\"` line contains a string. `\"DoesNotContain\"` 189 line does not contain a string. `\"MatchRegex\"` line 190 contains a match to the regular expression. `\"DoesNotMatchRegex\"` 191 line does not contain a match to the regular expression." 192 enum: 193 - Contains 194 - DoesNotContain 195 - MatchRegex 196 - DoesNotMatchRegex 197 type: string 198 values: 199 description: An array of string values. It serves as an 200 "OR" expression to the operator. 201 items: 202 type: string 203 type: array 204 required: 205 - key 206 - operator 207 type: object 208 type: array 209 storageClass: 210 description: Storage class name. 211 type: string 212 tolerations: 213 description: Tolerations JSON array string value. 214 type: string 215 type: object 216 minItems: 1 217 type: array 218 description: 219 description: Addon description. 220 type: string 221 helm: 222 description: Helm installation spec. It's processed only when type=helm. 223 properties: 224 chartLocationURL: 225 description: A Helm Chart location URL. 226 type: string 227 chartsImage: 228 description: chartsImage defines the image of Helm charts. 229 type: string 230 chartsPathInImage: 231 description: chartsPathInImage defines the path of Helm charts 232 in the image. It's used to copy Helm charts from the image to 233 the shared volume. 234 type: string 235 installOptions: 236 additionalProperties: 237 type: string 238 description: installOptions defines Helm release installation 239 options. 240 type: object 241 installValues: 242 description: HelmInstallValues defines Helm release installation 243 set values. 244 properties: 245 configMapRefs: 246 description: Selects a key of a ConfigMap item list. The value 247 of ConfigMap can be a JSON or YAML string content. Use a 248 key name with ".json" or ".yaml" or ".yml" extension name 249 to specify a content type. 250 items: 251 properties: 252 key: 253 description: The key to select. 254 type: string 255 name: 256 description: Object name of the referent. 257 pattern: ^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$ 258 type: string 259 required: 260 - key 261 - name 262 type: object 263 type: array 264 secretRefs: 265 description: Selects a key of a Secrets item list. The value 266 of Secrets can be a JSON or YAML string content. Use a key 267 name with ".json" or ".yaml" or ".yml" extension name to 268 specify a content type. 269 items: 270 properties: 271 key: 272 description: The key to select. 273 type: string 274 name: 275 description: Object name of the referent. 276 pattern: ^[a-z0-9]([a-z0-9\.\-]*[a-z0-9])?$ 277 type: string 278 required: 279 - key 280 - name 281 type: object 282 type: array 283 setJSONValues: 284 description: Helm install set JSON values. It can specify 285 multiple or separate values with commas(key1=jsonval1,key2=jsonval2). 286 items: 287 type: string 288 type: array 289 setValues: 290 description: Helm install set values. It can specify multiple 291 or separate values with commas(key1=val1,key2=val2). 292 items: 293 type: string 294 type: array 295 urls: 296 items: 297 type: string 298 type: array 299 type: object 300 valuesMapping: 301 description: valuesMapping defines add-on normalized resources 302 parameters mapped to Helm values' keys. 303 properties: 304 extras: 305 description: Helm value mapping items for extra items. 306 items: 307 properties: 308 jsonMap: 309 description: 'jsonMap defines the "key" mapping values. 310 The valid key is tolerations. Enum values explained: 311 `"tolerations"` sets the toleration mapping key.' 312 properties: 313 tolerations: 314 description: tolerations sets the toleration mapping 315 key. 316 type: string 317 type: object 318 name: 319 description: Name of the item. 320 type: string 321 resources: 322 description: resources sets resources related mapping 323 keys. 324 properties: 325 cpu: 326 description: cpu sets CPU requests and limits mapping 327 keys. 328 properties: 329 limits: 330 description: Limits value mapping key. 331 type: string 332 requests: 333 description: Requests value mapping key. 334 type: string 335 type: object 336 memory: 337 description: memory sets Memory requests and limits 338 mapping keys. 339 properties: 340 limits: 341 description: Limits value mapping key. 342 type: string 343 requests: 344 description: Requests value mapping key. 345 type: string 346 type: object 347 storage: 348 description: storage sets the storage size value 349 mapping key. 350 type: string 351 type: object 352 valueMap: 353 description: 'valueMap define the "key" mapping values. 354 Valid keys are replicaCount, persistentVolumeEnabled, 355 and storageClass. Enum values explained: `"replicaCount"` 356 sets the replicaCount value mapping key. `"persistentVolumeEnabled"` 357 sets the persistent volume enabled mapping key. `"storageClass"` 358 sets the storageClass mapping key.' 359 properties: 360 persistentVolumeEnabled: 361 description: persistentVolumeEnabled sets the persistent 362 volume enabled mapping key. 363 type: string 364 replicaCount: 365 description: replicaCount sets the replicaCount 366 value mapping key. 367 type: string 368 storageClass: 369 description: storageClass sets the storageClass 370 mapping key. 371 type: string 372 type: object 373 required: 374 - name 375 type: object 376 type: array 377 x-kubernetes-list-map-keys: 378 - name 379 x-kubernetes-list-type: map 380 jsonMap: 381 description: 'jsonMap defines the "key" mapping values. The 382 valid key is tolerations. Enum values explained: `"tolerations"` 383 sets the toleration mapping key.' 384 properties: 385 tolerations: 386 description: tolerations sets the toleration mapping key. 387 type: string 388 type: object 389 resources: 390 description: resources sets resources related mapping keys. 391 properties: 392 cpu: 393 description: cpu sets CPU requests and limits mapping 394 keys. 395 properties: 396 limits: 397 description: Limits value mapping key. 398 type: string 399 requests: 400 description: Requests value mapping key. 401 type: string 402 type: object 403 memory: 404 description: memory sets Memory requests and limits mapping 405 keys. 406 properties: 407 limits: 408 description: Limits value mapping key. 409 type: string 410 requests: 411 description: Requests value mapping key. 412 type: string 413 type: object 414 storage: 415 description: storage sets the storage size value mapping 416 key. 417 type: string 418 type: object 419 valueMap: 420 description: 'valueMap define the "key" mapping values. Valid 421 keys are replicaCount, persistentVolumeEnabled, and storageClass. 422 Enum values explained: `"replicaCount"` sets the replicaCount 423 value mapping key. `"persistentVolumeEnabled"` sets the 424 persistent volume enabled mapping key. `"storageClass"` 425 sets the storageClass mapping key.' 426 properties: 427 persistentVolumeEnabled: 428 description: persistentVolumeEnabled sets the persistent 429 volume enabled mapping key. 430 type: string 431 replicaCount: 432 description: replicaCount sets the replicaCount value 433 mapping key. 434 type: string 435 storageClass: 436 description: storageClass sets the storageClass mapping 437 key. 438 type: string 439 type: object 440 type: object 441 required: 442 - chartLocationURL 443 type: object 444 x-kubernetes-validations: 445 - message: chartsImage is required when chartLocationURL starts with 446 'file://' 447 rule: 'self.chartLocationURL.startsWith(''file://'') ? has(self.chartsImage) 448 : true' 449 install: 450 description: Installation parameters. 451 properties: 452 enabled: 453 description: enabled can be set if there are no specific installation 454 attributes to be set. 455 type: boolean 456 extras: 457 description: Installs spec. for extra items. 458 items: 459 properties: 460 name: 461 description: Name of the item. 462 type: string 463 persistentVolumeEnabled: 464 description: Persistent Volume Enabled value. 465 type: boolean 466 replicas: 467 description: Replicas value. 468 format: int32 469 type: integer 470 resources: 471 description: Resource requirements. 472 properties: 473 limits: 474 additionalProperties: 475 anyOf: 476 - type: integer 477 - type: string 478 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 479 x-kubernetes-int-or-string: true 480 description: 'Limits describes the maximum amount of 481 compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/.' 482 type: object 483 requests: 484 additionalProperties: 485 anyOf: 486 - type: integer 487 - type: string 488 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 489 x-kubernetes-int-or-string: true 490 description: 'Requests describes the minimum amount 491 of compute resources required. If Requests is omitted 492 for a container, it defaults to Limits if that is 493 explicitly specified; otherwise, it defaults to an 494 implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/.' 495 type: object 496 type: object 497 storageClass: 498 description: Storage class name. 499 type: string 500 tolerations: 501 description: Tolerations JSON array string value. 502 type: string 503 required: 504 - name 505 type: object 506 type: array 507 x-kubernetes-list-map-keys: 508 - name 509 x-kubernetes-list-type: map 510 persistentVolumeEnabled: 511 description: Persistent Volume Enabled value. 512 type: boolean 513 replicas: 514 description: Replicas value. 515 format: int32 516 type: integer 517 resources: 518 description: Resource requirements. 519 properties: 520 limits: 521 additionalProperties: 522 anyOf: 523 - type: integer 524 - type: string 525 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 526 x-kubernetes-int-or-string: true 527 description: 'Limits describes the maximum amount of compute 528 resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/.' 529 type: object 530 requests: 531 additionalProperties: 532 anyOf: 533 - type: integer 534 - type: string 535 pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ 536 x-kubernetes-int-or-string: true 537 description: 'Requests describes the minimum amount of compute 538 resources required. If Requests is omitted for a container, 539 it defaults to Limits if that is explicitly specified; otherwise, 540 it defaults to an implementation-defined value. More info: 541 https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/.' 542 type: object 543 type: object 544 storageClass: 545 description: Storage class name. 546 type: string 547 tolerations: 548 description: Tolerations JSON array string value. 549 type: string 550 type: object 551 installable: 552 description: Addon installable spec. It provides selector and auto-install 553 settings. 554 properties: 555 autoInstall: 556 default: false 557 description: autoInstall defines an add-on should be installed 558 automatically. 559 type: boolean 560 selectors: 561 description: Add-on installable selectors. If multiple selectors 562 are provided, all selectors must evaluate to true. 563 items: 564 properties: 565 key: 566 description: The selector key. Valid values are KubeVersion, 567 KubeGitVersion and KubeProvider. "KubeVersion" the semver 568 expression of Kubernetes versions, i.e., v1.24. "KubeGitVersion" 569 may contain distro. info., i.e., v1.24.4+eks. "KubeProvider" 570 the Kubernetes provider, i.e., aws,gcp,azure,huaweiCloud,tencentCloud 571 etc. 572 enum: 573 - KubeGitVersion 574 - KubeVersion 575 - KubeProvider 576 type: string 577 operator: 578 description: "Represents a key's relationship to a set of 579 values. Valid operators are Contains, NotIn, DoesNotContain, 580 MatchRegex, and DoesNoteMatchRegex. \n Possible enum values: 581 `\"Contains\"` line contains a string. `\"DoesNotContain\"` 582 line does not contain a string. `\"MatchRegex\"` line 583 contains a match to the regular expression. `\"DoesNotMatchRegex\"` 584 line does not contain a match to the regular expression." 585 enum: 586 - Contains 587 - DoesNotContain 588 - MatchRegex 589 - DoesNotMatchRegex 590 type: string 591 values: 592 description: An array of string values. It serves as an 593 "OR" expression to the operator. 594 items: 595 type: string 596 type: array 597 required: 598 - key 599 - operator 600 type: object 601 type: array 602 required: 603 - autoInstall 604 type: object 605 type: 606 description: Add-on type. The valid value is helm. 607 enum: 608 - Helm 609 type: string 610 required: 611 - defaultInstallValues 612 - type 613 type: object 614 x-kubernetes-validations: 615 - message: spec.helm is required when spec.type is Helm, and forbidden 616 otherwise 617 rule: 'has(self.type) && self.type == ''Helm'' ? has(self.helm) : !has(self.helm)' 618 status: 619 description: AddonStatus defines the observed state of an add-on. 620 properties: 621 conditions: 622 description: Describes the current state of add-on API installation 623 conditions. 624 items: 625 description: "Condition contains details for one aspect of the current 626 state of this API Resource. --- This struct is intended for direct 627 use as an array at the field path .status.conditions. For example, 628 \n type FooStatus struct{ // Represents the observations of a 629 foo's current state. // Known .status.conditions.type are: \"Available\", 630 \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge 631 // +listType=map // +listMapKey=type Conditions []metav1.Condition 632 `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" 633 protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" 634 properties: 635 lastTransitionTime: 636 description: lastTransitionTime is the last time the condition 637 transitioned from one status to another. This should be when 638 the underlying condition changed. If that is not known, then 639 using the time when the API field changed is acceptable. 640 format: date-time 641 type: string 642 message: 643 description: message is a human readable message indicating 644 details about the transition. This may be an empty string. 645 maxLength: 32768 646 type: string 647 observedGeneration: 648 description: observedGeneration represents the .metadata.generation 649 that the condition was set based upon. For instance, if .metadata.generation 650 is currently 12, but the .status.conditions[x].observedGeneration 651 is 9, the condition is out of date with respect to the current 652 state of the instance. 653 format: int64 654 minimum: 0 655 type: integer 656 reason: 657 description: reason contains a programmatic identifier indicating 658 the reason for the condition's last transition. Producers 659 of specific condition types may define expected values and 660 meanings for this field, and whether the values are considered 661 a guaranteed API. The value should be a CamelCase string. 662 This field may not be empty. 663 maxLength: 1024 664 minLength: 1 665 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 666 type: string 667 status: 668 description: status of the condition, one of True, False, Unknown. 669 enum: 670 - "True" 671 - "False" 672 - Unknown 673 type: string 674 type: 675 description: type of condition in CamelCase or in foo.example.com/CamelCase. 676 --- Many .condition.type values are consistent across resources 677 like Available, but because arbitrary conditions can be useful 678 (see .node.status.conditions), the ability to deconflict is 679 important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 680 maxLength: 316 681 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 682 type: string 683 required: 684 - lastTransitionTime 685 - message 686 - reason 687 - status 688 - type 689 type: object 690 type: array 691 observedGeneration: 692 description: observedGeneration is the most recent generation observed 693 for this add-on. It corresponds to the add-on's generation, which 694 is updated on mutation by the API Server. 695 format: int64 696 type: integer 697 phase: 698 description: Add-on installation phases. Valid values are Disabled, 699 Enabled, Failed, Enabling, Disabling. 700 enum: 701 - Disabled 702 - Enabled 703 - Failed 704 - Enabling 705 - Disabling 706 type: string 707 type: object 708 type: object 709 served: true 710 storage: true 711 subresources: 712 status: {}