sigs.k8s.io/cluster-api/bootstrap/kubeadm@v0.0.0-20191016155141-23a891785b60/config/crd/bases/bootstrap.cluster.x-k8s.io_kubeadmconfigs.yaml (about) 1 2 --- 3 apiVersion: apiextensions.k8s.io/v1beta1 4 kind: CustomResourceDefinition 5 metadata: 6 creationTimestamp: null 7 name: kubeadmconfigs.bootstrap.cluster.x-k8s.io 8 spec: 9 group: bootstrap.cluster.x-k8s.io 10 names: 11 categories: 12 - cluster-api 13 kind: KubeadmConfig 14 listKind: KubeadmConfigList 15 plural: kubeadmconfigs 16 singular: kubeadmconfig 17 scope: Namespaced 18 subresources: 19 status: {} 20 validation: 21 openAPIV3Schema: 22 description: KubeadmConfig is the Schema for the kubeadmconfigs API 23 properties: 24 apiVersion: 25 description: 'APIVersion defines the versioned schema of this representation 26 of an object. Servers should convert recognized schemas to the latest 27 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' 28 type: string 29 kind: 30 description: 'Kind is a string value representing the REST resource this 31 object represents. Servers may infer this from the endpoint the client 32 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' 33 type: string 34 metadata: 35 type: object 36 spec: 37 description: KubeadmConfigSpec defines the desired state of KubeadmConfig. 38 Either ClusterConfiguration and InitConfiguration should be defined or 39 the JoinConfiguration should be defined. 40 properties: 41 clusterConfiguration: 42 description: ClusterConfiguration along with InitConfiguration are the 43 configurations necessary for the init command 44 properties: 45 apiServer: 46 description: APIServer contains extra settings for the API server 47 control plane component 48 properties: 49 certSANs: 50 description: CertSANs sets extra Subject Alternative Names for 51 the API Server signing cert. 52 items: 53 type: string 54 type: array 55 extraArgs: 56 additionalProperties: 57 type: string 58 description: 'ExtraArgs is an extra set of flags to pass to 59 the control plane component. TODO: This is temporary and ideally 60 we would like to switch all components to use ComponentConfig 61 + ConfigMaps.' 62 type: object 63 extraVolumes: 64 description: ExtraVolumes is an extra set of host volumes, mounted 65 to the control plane component. 66 items: 67 description: HostPathMount contains elements describing volumes 68 that are mounted from the host. 69 properties: 70 hostPath: 71 description: HostPath is the path in the host that will 72 be mounted inside the pod. 73 type: string 74 mountPath: 75 description: MountPath is the path inside the pod where 76 hostPath will be mounted. 77 type: string 78 name: 79 description: Name of the volume inside the pod template. 80 type: string 81 pathType: 82 description: PathType is the type of the HostPath. 83 type: string 84 readOnly: 85 description: ReadOnly controls write access to the volume 86 type: boolean 87 required: 88 - hostPath 89 - mountPath 90 - name 91 type: object 92 type: array 93 timeoutForControlPlane: 94 description: TimeoutForControlPlane controls the timeout that 95 we use for API server to appear 96 type: string 97 type: object 98 apiVersion: 99 description: 'APIVersion defines the versioned schema of this representation 100 of an object. Servers should convert recognized schemas to the 101 latest internal value, and may reject unrecognized values. More 102 info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' 103 type: string 104 certificatesDir: 105 description: CertificatesDir specifies where to store or look for 106 all required certificates. 107 type: string 108 clusterName: 109 description: The cluster name 110 type: string 111 controlPlaneEndpoint: 112 description: 'ControlPlaneEndpoint sets a stable IP address or DNS 113 name for the control plane; it can be a valid IP address or a 114 RFC-1123 DNS subdomain, both with optional TCP port. In case the 115 ControlPlaneEndpoint is not specified, the AdvertiseAddress + 116 BindPort are used; in case the ControlPlaneEndpoint is specified 117 but without a TCP port, the BindPort is used. Possible usages 118 are: e.g. In a cluster with more than one control plane instances, 119 this field should be assigned the address of the external load 120 balancer in front of the control plane instances. e.g. in environments 121 with enforced node recycling, the ControlPlaneEndpoint could be 122 used for assigning a stable DNS to the control plane. NB: This 123 value defaults to the first value in the Cluster object status.apiEndpoints 124 array.' 125 type: string 126 controllerManager: 127 description: ControllerManager contains extra settings for the controller 128 manager control plane component 129 properties: 130 extraArgs: 131 additionalProperties: 132 type: string 133 description: 'ExtraArgs is an extra set of flags to pass to 134 the control plane component. TODO: This is temporary and ideally 135 we would like to switch all components to use ComponentConfig 136 + ConfigMaps.' 137 type: object 138 extraVolumes: 139 description: ExtraVolumes is an extra set of host volumes, mounted 140 to the control plane component. 141 items: 142 description: HostPathMount contains elements describing volumes 143 that are mounted from the host. 144 properties: 145 hostPath: 146 description: HostPath is the path in the host that will 147 be mounted inside the pod. 148 type: string 149 mountPath: 150 description: MountPath is the path inside the pod where 151 hostPath will be mounted. 152 type: string 153 name: 154 description: Name of the volume inside the pod template. 155 type: string 156 pathType: 157 description: PathType is the type of the HostPath. 158 type: string 159 readOnly: 160 description: ReadOnly controls write access to the volume 161 type: boolean 162 required: 163 - hostPath 164 - mountPath 165 - name 166 type: object 167 type: array 168 type: object 169 dns: 170 description: DNS defines the options for the DNS add-on installed 171 in the cluster. 172 properties: 173 imageRepository: 174 description: ImageRepository sets the container registry to 175 pull images from. if not set, the ImageRepository defined 176 in ClusterConfiguration will be used instead. 177 type: string 178 imageTag: 179 description: ImageTag allows to specify a tag for the image. 180 In case this value is set, kubeadm does not change automatically 181 the version of the above components during upgrades. 182 type: string 183 type: 184 description: Type defines the DNS add-on to be used 185 type: string 186 required: 187 - type 188 type: object 189 etcd: 190 description: Etcd holds configuration for etcd. 191 properties: 192 external: 193 description: External describes how to connect to an external 194 etcd cluster Local and External are mutually exclusive 195 properties: 196 caFile: 197 description: CAFile is an SSL Certificate Authority file 198 used to secure etcd communication. Required if using a 199 TLS connection. 200 type: string 201 certFile: 202 description: CertFile is an SSL certification file used 203 to secure etcd communication. Required if using a TLS 204 connection. 205 type: string 206 endpoints: 207 description: Endpoints of etcd members. Required for ExternalEtcd. 208 items: 209 type: string 210 type: array 211 keyFile: 212 description: KeyFile is an SSL key file used to secure etcd 213 communication. Required if using a TLS connection. 214 type: string 215 required: 216 - caFile 217 - certFile 218 - endpoints 219 - keyFile 220 type: object 221 local: 222 description: Local provides configuration knobs for configuring 223 the local etcd instance Local and External are mutually exclusive 224 properties: 225 dataDir: 226 description: DataDir is the directory etcd will place its 227 data. Defaults to "/var/lib/etcd". 228 type: string 229 extraArgs: 230 additionalProperties: 231 type: string 232 description: ExtraArgs are extra arguments provided to the 233 etcd binary when run inside a static pod. 234 type: object 235 imageRepository: 236 description: ImageRepository sets the container registry 237 to pull images from. if not set, the ImageRepository defined 238 in ClusterConfiguration will be used instead. 239 type: string 240 imageTag: 241 description: ImageTag allows to specify a tag for the image. 242 In case this value is set, kubeadm does not change automatically 243 the version of the above components during upgrades. 244 type: string 245 peerCertSANs: 246 description: PeerCertSANs sets extra Subject Alternative 247 Names for the etcd peer signing cert. 248 items: 249 type: string 250 type: array 251 serverCertSANs: 252 description: ServerCertSANs sets extra Subject Alternative 253 Names for the etcd server signing cert. 254 items: 255 type: string 256 type: array 257 required: 258 - dataDir 259 type: object 260 type: object 261 featureGates: 262 additionalProperties: 263 type: boolean 264 description: FeatureGates enabled by the user. 265 type: object 266 imageRepository: 267 description: ImageRepository sets the container registry to pull 268 images from. If empty, `k8s.gcr.io` will be used by default; in 269 case of kubernetes version is a CI build (kubernetes version starts 270 with `ci/` or `ci-cross/`) `gcr.io/kubernetes-ci-images` will 271 be used as a default for control plane components and for kube-proxy, 272 while `k8s.gcr.io` will be used for all the other images. 273 type: string 274 kind: 275 description: 'Kind is a string value representing the REST resource 276 this object represents. Servers may infer this from the endpoint 277 the client submits requests to. Cannot be updated. In CamelCase. 278 More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' 279 type: string 280 kubernetesVersion: 281 description: 'KubernetesVersion is the target version of the control 282 plane. NB: This value defaults to the Machine object spec.kuberentesVersion' 283 type: string 284 networking: 285 description: 'Networking holds configuration for the networking 286 topology of the cluster. NB: This value defaults to the Cluster 287 object spec.clusterNetwork.' 288 properties: 289 dnsDomain: 290 description: DNSDomain is the dns domain used by k8s services. 291 Defaults to "cluster.local". 292 type: string 293 podSubnet: 294 description: PodSubnet is the subnet used by pods. 295 type: string 296 serviceSubnet: 297 description: ServiceSubnet is the subnet used by k8s services. 298 Defaults to "10.96.0.0/12". 299 type: string 300 required: 301 - dnsDomain 302 - podSubnet 303 - serviceSubnet 304 type: object 305 scheduler: 306 description: Scheduler contains extra settings for the scheduler 307 control plane component 308 properties: 309 extraArgs: 310 additionalProperties: 311 type: string 312 description: 'ExtraArgs is an extra set of flags to pass to 313 the control plane component. TODO: This is temporary and ideally 314 we would like to switch all components to use ComponentConfig 315 + ConfigMaps.' 316 type: object 317 extraVolumes: 318 description: ExtraVolumes is an extra set of host volumes, mounted 319 to the control plane component. 320 items: 321 description: HostPathMount contains elements describing volumes 322 that are mounted from the host. 323 properties: 324 hostPath: 325 description: HostPath is the path in the host that will 326 be mounted inside the pod. 327 type: string 328 mountPath: 329 description: MountPath is the path inside the pod where 330 hostPath will be mounted. 331 type: string 332 name: 333 description: Name of the volume inside the pod template. 334 type: string 335 pathType: 336 description: PathType is the type of the HostPath. 337 type: string 338 readOnly: 339 description: ReadOnly controls write access to the volume 340 type: boolean 341 required: 342 - hostPath 343 - mountPath 344 - name 345 type: object 346 type: array 347 type: object 348 useHyperKubeImage: 349 description: UseHyperKubeImage controls if hyperkube should be used 350 for Kubernetes components instead of their respective separate 351 images 352 type: boolean 353 type: object 354 files: 355 description: Files specifies extra files to be passed to user_data upon 356 creation. 357 items: 358 description: File defines the input for generating write_files in 359 cloud-init. 360 properties: 361 content: 362 description: Content is the actual content of the file. 363 type: string 364 encoding: 365 description: Encoding specifies the encoding of the file contents. 366 enum: 367 - base64 368 - gzip 369 - gzip+base64 370 type: string 371 owner: 372 description: Owner specifies the ownership of the file, e.g. "root:root". 373 type: string 374 path: 375 description: Path specifies the full path on disk where to store 376 the file. 377 type: string 378 permissions: 379 description: Permissions specifies the permissions to assign to 380 the file, e.g. "0640". 381 type: string 382 required: 383 - content 384 - path 385 type: object 386 type: array 387 format: 388 description: Format specifies the output format of the bootstrap data 389 enum: 390 - cloud-config 391 type: string 392 initConfiguration: 393 description: InitConfiguration along with ClusterConfiguration are the 394 configurations necessary for the init command 395 properties: 396 apiVersion: 397 description: 'APIVersion defines the versioned schema of this representation 398 of an object. Servers should convert recognized schemas to the 399 latest internal value, and may reject unrecognized values. More 400 info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' 401 type: string 402 bootstrapTokens: 403 description: BootstrapTokens is respected at `kubeadm init` time 404 and describes a set of Bootstrap Tokens to create. This information 405 IS NOT uploaded to the kubeadm cluster configmap, partly because 406 of its sensitive nature 407 items: 408 description: BootstrapToken describes one bootstrap token, stored 409 as a Secret in the cluster 410 properties: 411 description: 412 description: Description sets a human-friendly message why 413 this token exists and what it's used for, so other administrators 414 can know its purpose. 415 type: string 416 expires: 417 description: Expires specifies the timestamp when this token 418 expires. Defaults to being set dynamically at runtime based 419 on the TTL. Expires and TTL are mutually exclusive. 420 format: date-time 421 type: string 422 groups: 423 description: Groups specifies the extra groups that this token 424 will authenticate as when/if used for authentication 425 items: 426 type: string 427 type: array 428 token: 429 description: Token is used for establishing bidirectional 430 trust between nodes and control-planes. Used for joining 431 nodes in the cluster. 432 type: object 433 ttl: 434 description: TTL defines the time to live for this token. 435 Defaults to 24h. Expires and TTL are mutually exclusive. 436 type: string 437 usages: 438 description: Usages describes the ways in which this token 439 can be used. Can by default be used for establishing bidirectional 440 trust, but that can be changed here. 441 items: 442 type: string 443 type: array 444 required: 445 - token 446 type: object 447 type: array 448 kind: 449 description: 'Kind is a string value representing the REST resource 450 this object represents. Servers may infer this from the endpoint 451 the client submits requests to. Cannot be updated. In CamelCase. 452 More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' 453 type: string 454 localAPIEndpoint: 455 description: LocalAPIEndpoint represents the endpoint of the API 456 server instance that's deployed on this control plane node In 457 HA setups, this differs from ClusterConfiguration.ControlPlaneEndpoint 458 in the sense that ControlPlaneEndpoint is the global endpoint 459 for the cluster, which then loadbalances the requests to each 460 individual API server. This configuration object lets you customize 461 what IP/DNS name and port the local API server advertises it's 462 accessible on. By default, kubeadm tries to auto-detect the IP 463 of the default interface and use that, but in case that process 464 fails you may set the desired value here. 465 properties: 466 advertiseAddress: 467 description: AdvertiseAddress sets the IP address for the API 468 server to advertise. 469 type: string 470 bindPort: 471 description: BindPort sets the secure port for the API Server 472 to bind to. Defaults to 6443. 473 format: int32 474 type: integer 475 required: 476 - advertiseAddress 477 - bindPort 478 type: object 479 nodeRegistration: 480 description: NodeRegistration holds fields that relate to registering 481 the new control-plane node to the cluster 482 properties: 483 criSocket: 484 description: CRISocket is used to retrieve container runtime 485 info. This information will be annotated to the Node API object, 486 for later re-use 487 type: string 488 kubeletExtraArgs: 489 additionalProperties: 490 type: string 491 description: KubeletExtraArgs passes through extra arguments 492 to the kubelet. The arguments here are passed to the kubelet 493 command line via the environment file kubeadm writes at runtime 494 for the kubelet to source. This overrides the generic base-level 495 configuration in the kubelet-config-1.X ConfigMap Flags have 496 higher priority when parsing. These values are local and specific 497 to the node kubeadm is executing on. 498 type: object 499 name: 500 description: Name is the `.Metadata.Name` field of the Node 501 API object that will be created in this `kubeadm init` or 502 `kubeadm join` operation. This field is also used in the CommonName 503 field of the kubelet's client certificate to the API server. 504 Defaults to the hostname of the node if not provided. 505 type: string 506 taints: 507 description: 'Taints specifies the taints the Node API object 508 should be registered with. If this field is unset, i.e. nil, 509 in the `kubeadm init` process it will be defaulted to []v1.Taint{''node-role.kubernetes.io/master=""''}. 510 If you don''t want to taint your control-plane node, set this 511 field to an empty slice, i.e. `taints: {}` in the YAML file. 512 This field is solely used for Node registration.' 513 items: 514 description: The node this Taint is attached to has the "effect" 515 on any pod that does not tolerate the Taint. 516 properties: 517 effect: 518 description: Required. The effect of the taint on pods 519 that do not tolerate the taint. Valid effects are NoSchedule, 520 PreferNoSchedule and NoExecute. 521 type: string 522 key: 523 description: Required. The taint key to be applied to 524 a node. 525 type: string 526 timeAdded: 527 description: TimeAdded represents the time at which the 528 taint was added. It is only written for NoExecute taints. 529 format: date-time 530 type: string 531 value: 532 description: Required. The taint value corresponding to 533 the taint key. 534 type: string 535 required: 536 - effect 537 - key 538 type: object 539 type: array 540 type: object 541 type: object 542 joinConfiguration: 543 description: JoinConfiguration is the kubeadm configuration for the 544 join command 545 properties: 546 apiVersion: 547 description: 'APIVersion defines the versioned schema of this representation 548 of an object. Servers should convert recognized schemas to the 549 latest internal value, and may reject unrecognized values. More 550 info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources' 551 type: string 552 caCertPath: 553 description: 'CACertPath is the path to the SSL certificate authority 554 used to secure comunications between node and control-plane. Defaults 555 to "/etc/kubernetes/pki/ca.crt". TODO: revisit when there is defaulting 556 from k/k' 557 type: string 558 controlPlane: 559 description: ControlPlane defines the additional control plane instance 560 to be deployed on the joining node. If nil, no additional control 561 plane instance will be deployed. 562 properties: 563 localAPIEndpoint: 564 description: LocalAPIEndpoint represents the endpoint of the 565 API server instance to be deployed on this node. 566 properties: 567 advertiseAddress: 568 description: AdvertiseAddress sets the IP address for the 569 API server to advertise. 570 type: string 571 bindPort: 572 description: BindPort sets the secure port for the API Server 573 to bind to. Defaults to 6443. 574 format: int32 575 type: integer 576 required: 577 - advertiseAddress 578 - bindPort 579 type: object 580 type: object 581 discovery: 582 description: 'Discovery specifies the options for the kubelet to 583 use during the TLS Bootstrap process TODO: revisit when there 584 is defaulting from k/k' 585 properties: 586 bootstrapToken: 587 description: BootstrapToken is used to set the options for bootstrap 588 token based discovery BootstrapToken and File are mutually 589 exclusive 590 properties: 591 apiServerEndpoint: 592 description: APIServerEndpoint is an IP or domain name to 593 the API server from which info will be fetched. 594 type: string 595 caCertHashes: 596 description: 'CACertHashes specifies a set of public key 597 pins to verify when token-based discovery is used. The 598 root CA found during discovery must match one of these 599 values. Specifying an empty set disables root CA pinning, 600 which can be unsafe. Each hash is specified as "<type>:<value>", 601 where the only currently supported type is "sha256". This 602 is a hex-encoded SHA-256 hash of the Subject Public Key 603 Info (SPKI) object in DER-encoded ASN.1. These hashes 604 can be calculated using, for example, OpenSSL: openssl 605 x509 -pubkey -in ca.crt openssl rsa -pubin -outform der 606 2>&/dev/null | openssl dgst -sha256 -hex' 607 items: 608 type: string 609 type: array 610 token: 611 description: Token is a token used to validate cluster information 612 fetched from the control-plane. 613 type: string 614 unsafeSkipCAVerification: 615 description: UnsafeSkipCAVerification allows token-based 616 discovery without CA verification via CACertHashes. This 617 can weaken the security of kubeadm since other nodes can 618 impersonate the control-plane. 619 type: boolean 620 required: 621 - token 622 - unsafeSkipCAVerification 623 type: object 624 file: 625 description: File is used to specify a file or URL to a kubeconfig 626 file from which to load cluster information BootstrapToken 627 and File are mutually exclusive 628 properties: 629 kubeConfigPath: 630 description: KubeConfigPath is used to specify the actual 631 file path or URL to the kubeconfig file from which to 632 load cluster information 633 type: string 634 required: 635 - kubeConfigPath 636 type: object 637 timeout: 638 description: Timeout modifies the discovery timeout 639 type: string 640 tlsBootstrapToken: 641 description: 'TLSBootstrapToken is a token used for TLS bootstrapping. 642 If .BootstrapToken is set, this field is defaulted to .BootstrapToken.Token, 643 but can be overridden. If .File is set, this field **must 644 be set** in case the KubeConfigFile does not contain any other 645 authentication information TODO: revisit when there is defaulting 646 from k/k' 647 type: string 648 type: object 649 kind: 650 description: 'Kind is a string value representing the REST resource 651 this object represents. Servers may infer this from the endpoint 652 the client submits requests to. Cannot be updated. In CamelCase. 653 More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds' 654 type: string 655 nodeRegistration: 656 description: NodeRegistration holds fields that relate to registering 657 the new control-plane node to the cluster 658 properties: 659 criSocket: 660 description: CRISocket is used to retrieve container runtime 661 info. This information will be annotated to the Node API object, 662 for later re-use 663 type: string 664 kubeletExtraArgs: 665 additionalProperties: 666 type: string 667 description: KubeletExtraArgs passes through extra arguments 668 to the kubelet. The arguments here are passed to the kubelet 669 command line via the environment file kubeadm writes at runtime 670 for the kubelet to source. This overrides the generic base-level 671 configuration in the kubelet-config-1.X ConfigMap Flags have 672 higher priority when parsing. These values are local and specific 673 to the node kubeadm is executing on. 674 type: object 675 name: 676 description: Name is the `.Metadata.Name` field of the Node 677 API object that will be created in this `kubeadm init` or 678 `kubeadm join` operation. This field is also used in the CommonName 679 field of the kubelet's client certificate to the API server. 680 Defaults to the hostname of the node if not provided. 681 type: string 682 taints: 683 description: 'Taints specifies the taints the Node API object 684 should be registered with. If this field is unset, i.e. nil, 685 in the `kubeadm init` process it will be defaulted to []v1.Taint{''node-role.kubernetes.io/master=""''}. 686 If you don''t want to taint your control-plane node, set this 687 field to an empty slice, i.e. `taints: {}` in the YAML file. 688 This field is solely used for Node registration.' 689 items: 690 description: The node this Taint is attached to has the "effect" 691 on any pod that does not tolerate the Taint. 692 properties: 693 effect: 694 description: Required. The effect of the taint on pods 695 that do not tolerate the taint. Valid effects are NoSchedule, 696 PreferNoSchedule and NoExecute. 697 type: string 698 key: 699 description: Required. The taint key to be applied to 700 a node. 701 type: string 702 timeAdded: 703 description: TimeAdded represents the time at which the 704 taint was added. It is only written for NoExecute taints. 705 format: date-time 706 type: string 707 value: 708 description: Required. The taint value corresponding to 709 the taint key. 710 type: string 711 required: 712 - effect 713 - key 714 type: object 715 type: array 716 type: object 717 required: 718 - nodeRegistration 719 type: object 720 ntp: 721 description: NTP specifies NTP configuration 722 properties: 723 enabled: 724 description: Enabled specifies whether NTP should be enabled 725 type: boolean 726 servers: 727 description: Servers specifies which NTP servers to use 728 items: 729 type: string 730 type: array 731 type: object 732 postKubeadmCommands: 733 description: PostKubeadmCommands specifies extra commands to run after 734 kubeadm runs 735 items: 736 type: string 737 type: array 738 preKubeadmCommands: 739 description: PreKubeadmCommands specifies extra commands to run before 740 kubeadm runs 741 items: 742 type: string 743 type: array 744 users: 745 description: Users specifies extra users to add 746 items: 747 description: User defines the input for a generated user in cloud-init. 748 properties: 749 gecos: 750 description: Gecos specifies the gecos to use for the user 751 type: string 752 groups: 753 description: Groups specifies the additional groups for the user 754 type: string 755 homeDir: 756 description: HomeDir specifies the home directory to use for the 757 user 758 type: string 759 inactive: 760 description: Inactive specifies whether to mark the user as inactive 761 type: boolean 762 lockPassword: 763 description: LockPassword specifies if password login should be 764 disabled 765 type: boolean 766 name: 767 description: Name specifies the user name 768 type: string 769 passwd: 770 description: Passwd specifies a hashed password for the user 771 type: string 772 primaryGroup: 773 description: PrimaryGroup specifies the primary group for the 774 user 775 type: string 776 shell: 777 description: Shell specifies the user's shell 778 type: string 779 sshAuthorizedKeys: 780 description: SSHAuthorizedKeys specifies a list of ssh authorized 781 keys for the user 782 items: 783 type: string 784 type: array 785 sudo: 786 description: Sudo specifies a sudo role for the user 787 type: string 788 required: 789 - name 790 type: object 791 type: array 792 type: object 793 status: 794 description: KubeadmConfigStatus defines the observed state of KubeadmConfig 795 properties: 796 bootstrapData: 797 description: BootstrapData will be a cloud-init script for now 798 format: byte 799 type: string 800 errorMessage: 801 description: ErrorMessage will be set on non-retryable errors 802 type: string 803 errorReason: 804 description: ErrorReason will be set on non-retryable errors 805 type: string 806 ready: 807 description: Ready indicates the BootstrapData field is ready to be 808 consumed 809 type: boolean 810 type: object 811 type: object 812 version: v1alpha2 813 versions: 814 - name: v1alpha2 815 served: true 816 storage: true 817 status: 818 acceptedNames: 819 kind: "" 820 plural: "" 821 conditions: [] 822 storedVersions: []