apiVersion: v1
kind: Namespace
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-bke
    control-plane: controller-manager
  name: cluster-system
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  labels:
    cluster.x-k8s.io/provider: infrastructure-bke
    cluster.x-k8s.io/v1beta1: v1beta1
  name: bkeclusters.bke.bocloud.com
spec:
  group: bke.bocloud.com
  names:
    kind: BKECluster
    listKind: BKEClusterList
    plural: bkeclusters
    shortNames:
    - bc
    singular: bkecluster
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.phase
      name: PHASE
      type: string
    - jsonPath: .status.clusterHealthState
      name: STATE
      type: string
    - jsonPath: .status.clusterStatus
      name: CLUSTER STATUS
      type: string
    - jsonPath: .spec.controlPlaneEndpoint.host
      name: ENDPOINT
      type: string
    - jsonPath: .spec.controlPlaneEndpoint.port
      name: ENDPOINT PORT
      type: string
    - jsonPath: .status.kubernetesVersion
      name: VERSION
      type: string
    - jsonPath: .status.agentStatus.status
      name: AGENT STATUS
      type: string
    - jsonPath: .spec.clusterConfig.cluster.containerRuntime.cri
      name: CONTAINER RUNTIME
      priority: 1
      type: string
    - jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: BKECluster is the Schema for the bkeclusters API
        properties:
          apiVersion:
            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'
            type: string
          kind:
            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'
            type: string
          metadata:
            type: object
          spec:
            description: BKEClusterSpec defines the desired state of BKECluster
            properties:
              clusterConfig:
                description: ClusterConfig defines the cluster config
                properties:
                  addons:
                    description: Addons defines the addons that the target cluster will install after deployment
                    items:
                      properties:
                        block:
                          default: false
                          description: Block defines fully wait for the Product to be deployed successfully
                          type: boolean
                        name:
                          type: string
                        param:
                          additionalProperties:
                            type: string
                          type: object
                        version:
                          type: string
                      required:
                      - name
                      type: object
                    type: array
                  cluster:
                    description: Cluster defines the configuration of the target cluster
                    properties:
                      apiServer:
                        description: APIServer contains extra settings for the api server control plane component
                        properties:
                          certSANs:
                            description: CertSANs sets extra Subject Alternative Names for the API Server signing cert.
                            items:
                              type: string
                            type: array
                          extraArgs:
                            additionalProperties:
                              type: string
                            description: ExtraArgs is an extra set of flags to pass to the control plane component.
                            type: object
                          extraVolumes:
                            description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                            items:
                              description: HostPathMount contains elements describing volumes that are mounted from the host.
                              properties:
                                hostPath:
                                  description: HostPath is the path in the host that will be mounted inside the pod.
                                  type: string
                                mountPath:
                                  description: MountPath is the path inside the pod where hostPath will be mounted.
                                  type: string
                                name:
                                  description: Name of the volume inside the pod template.
                                  type: string
                                pathType:
                                  description: PathType is the type of the HostPath.
                                  type: string
                                readOnly:
                                  description: ReadOnly controls write access to the volume
                                  type: boolean
                              type: object
                            type: array
                          host:
                            description: AdvertiseAddress sets the IP address for the API server to advertise.
                            type: string
                          port:
                            description: BindPort sets the secure port for the API Server to bind to. Defaults to 6443.
                            format: int32
                            type: integer
                        type: object
                      certificatesDir:
                        description: CertificatesDir specifies where to store or look for all required certificates.
                        type: string
                      containerRuntime:
                        description: ContainerRuntime defines the container runtime of the target cluster
                        properties:
                          cri:
                            description: Name defines the name of the runtime
                            enum:
                            - docker
                            - containerd
                            type: string
                          param:
                            additionalProperties:
                              type: string
                            description: Param defines the param of the runtime
                            type: object
                          runtime:
                            description: RunTime defines the lower runtime of the runtime
                            enum:
                            - runc
                            - richrunc
                            - kata
                            type: string
                        type: object
                      controllerManager:
                        description: ControllerManager contains extra settings for the controller manager control plane component
                        properties:
                          extraArgs:
                            additionalProperties:
                              type: string
                            description: ExtraArgs is an extra set of flags to pass to the control plane component.
                            type: object
                          extraVolumes:
                            description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                            items:
                              description: HostPathMount contains elements describing volumes that are mounted from the host.
                              properties:
                                hostPath:
                                  description: HostPath is the path in the host that will be mounted inside the pod.
                                  type: string
                                mountPath:
                                  description: MountPath is the path inside the pod where hostPath will be mounted.
                                  type: string
                                name:
                                  description: Name of the volume inside the pod template.
                                  type: string
                                pathType:
                                  description: PathType is the type of the HostPath.
                                  type: string
                                readOnly:
                                  description: ReadOnly controls write access to the volume
                                  type: boolean
                              type: object
                            type: array
                        type: object
                      etcd:
                        description: Etcd holds configuration for etcd
                        properties:
                          dataDir:
                            description: DataDir is the directory etcd will place its data. Defaults to "/var/lib/openFuyao/etcd".
                            type: string
                          extraArgs:
                            additionalProperties:
                              type: string
                            description: ExtraArgs is an extra set of flags to pass to the control plane component.
                            type: object
                          extraVolumes:
                            description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                            items:
                              description: HostPathMount contains elements describing volumes that are mounted from the host.
                              properties:
                                hostPath:
                                  description: HostPath is the path in the host that will be mounted inside the pod.
                                  type: string
                                mountPath:
                                  description: MountPath is the path inside the pod where hostPath will be mounted.
                                  type: string
                                name:
                                  description: Name of the volume inside the pod template.
                                  type: string
                                pathType:
                                  description: PathType is the type of the HostPath.
                                  type: string
                                readOnly:
                                  description: ReadOnly controls write access to the volume
                                  type: boolean
                              type: object
                            type: array
                          peerCertSANs:
                            description: PeerCertSANs sets extra Subject Alternative Names for the etcd peer signing cert.
                            items:
                              type: string
                            type: array
                          serverCertSANs:
                            description: ServerCertSANs sets extra Subject Alternative Names for the etcd server signing cert.
                            items:
                              type: string
                            type: array
                        type: object
                      httpRepo:
                        description: HTTPRepo defines the HTTP repository to use when deploying rpm / deb / http server
                        properties:
                          domain:
                            description: Domain defines the Repo domain name
                            type: string
                          ip:
                            description: Ip defines the Repo ip
                            type: string
                          port:
                            description: Port defines the number of port to connect to the Repo
                            type: string
                          prefix:
                            description: Prefix defines the kubernetes image address
                            type: string
                        type: object
                      imageRepo:
                        description: ImageRepo defines the global image repository of the deployment target cluster
                        properties:
                          domain:
                            description: Domain defines the Repo domain name
                            type: string
                          ip:
                            description: Ip defines the Repo ip
                            type: string
                          port:
                            description: Port defines the number of port to connect to the Repo
                            type: string
                          prefix:
                            description: Prefix defines the kubernetes image address
                            type: string
                        type: object
                      kubelet:
                        description: Kubelet define kubelet configuration for all nodes in the target cluster
                        properties:
                          extraArgs:
                            additionalProperties:
                              type: string
                            description: ExtraArgs is an extra set of flags to pass to the control plane component.
                            type: object
                          extraVolumes:
                            description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                            items:
                              description: HostPathMount contains elements describing volumes that are mounted from the host.
                              properties:
                                hostPath:
                                  description: HostPath is the path in the host that will be mounted inside the pod.
                                  type: string
                                mountPath:
                                  description: MountPath is the path inside the pod where hostPath will be mounted.
                                  type: string
                                name:
                                  description: Name of the volume inside the pod template.
                                  type: string
                                pathType:
                                  description: PathType is the type of the HostPath.
                                  type: string
                                readOnly:
                                  description: ReadOnly controls write access to the volume
                                  type: boolean
                              type: object
                            type: array
                          manifestsDir:
                            description: ManifestsDir is the directory where kubelet will store manifests
                            type: string
                        type: object
                      kubernetesVersion:
                        description: KubernetesVersion defines the Kubernetes version of the target cluster support up to v1.25.6 in bke
                        type: string
                      networking:
                        description: Networking defines the configuration of target cluster network
                        properties:
                          dnsDomain:
                            description: DNSDomain is the dns domain used by k8s services. Defaults to "cluster.local".
                            type: string
                          podSubnet:
                            description: PodSubnet is the subnet used by pods.
                            type: string
                          serviceSubnet:
                            description: ServiceSubnet is the subnet used by k8s services. Defaults to "10.96.0.0/12".
                            type: string
                        type: object
                      ntpServer:
                        description: NTPServer defines the ntp server information used for time synchronization
                        type: string
                      scheduler:
                        description: Scheduler contains extra settings for the scheduler control plane component
                        properties:
                          extraArgs:
                            additionalProperties:
                              type: string
                            description: ExtraArgs is an extra set of flags to pass to the control plane component.
                            type: object
                          extraVolumes:
                            description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                            items:
                              description: HostPathMount contains elements describing volumes that are mounted from the host.
                              properties:
                                hostPath:
                                  description: HostPath is the path in the host that will be mounted inside the pod.
                                  type: string
                                mountPath:
                                  description: MountPath is the path inside the pod where hostPath will be mounted.
                                  type: string
                                name:
                                  description: Name of the volume inside the pod template.
                                  type: string
                                pathType:
                                  description: PathType is the type of the HostPath.
                                  type: string
                                readOnly:
                                  description: ReadOnly controls write access to the volume
                                  type: boolean
                              type: object
                            type: array
                        type: object
                    type: object
                  customExtra:
                    additionalProperties:
                      type: string
                    description: CustomArgs defines the custom args
                    type: object
                  nodes:
                    description: Nodes defines the configuration of the target cluster nodes
                    items:
                      properties:
                        apiServer:
                          description: APIServer contains extra settings for the api server control plane component
                          properties:
                            certSANs:
                              description: CertSANs sets extra Subject Alternative Names for the API Server signing cert.
                              items:
                                type: string
                              type: array
                            extraArgs:
                              additionalProperties:
                                type: string
                              description: ExtraArgs is an extra set of flags to pass to the control plane component.
                              type: object
                            extraVolumes:
                              description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                              items:
                                description: HostPathMount contains elements describing volumes that are mounted from the host.
                                properties:
                                  hostPath:
                                    description: HostPath is the path in the host that will be mounted inside the pod.
                                    type: string
                                  mountPath:
                                    description: MountPath is the path inside the pod where hostPath will be mounted.
                                    type: string
                                  name:
                                    description: Name of the volume inside the pod template.
                                    type: string
                                  pathType:
                                    description: PathType is the type of the HostPath.
                                    type: string
                                  readOnly:
                                    description: ReadOnly controls write access to the volume
                                    type: boolean
                                type: object
                              type: array
                            host:
                              description: AdvertiseAddress sets the IP address for the API server to advertise.
                              type: string
                            port:
                              description: BindPort sets the secure port for the API Server to bind to. Defaults to 6443.
                              format: int32
                              type: integer
                          type: object
                        controllerManager:
                          description: ControllerManager contains extra settings for the controller manager control plane component
                          properties:
                            extraArgs:
                              additionalProperties:
                                type: string
                              description: ExtraArgs is an extra set of flags to pass to the control plane component.
                              type: object
                            extraVolumes:
                              description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                              items:
                                description: HostPathMount contains elements describing volumes that are mounted from the host.
                                properties:
                                  hostPath:
                                    description: HostPath is the path in the host that will be mounted inside the pod.
                                    type: string
                                  mountPath:
                                    description: MountPath is the path inside the pod where hostPath will be mounted.
                                    type: string
                                  name:
                                    description: Name of the volume inside the pod template.
                                    type: string
                                  pathType:
                                    description: PathType is the type of the HostPath.
                                    type: string
                                  readOnly:
                                    description: ReadOnly controls write access to the volume
                                    type: boolean
                                type: object
                              type: array
                          type: object
                        etcd:
                          description: Etcd holds configuration for etcd
                          properties:
                            dataDir:
                              description: DataDir is the directory etcd will place its data. Defaults to "/var/lib/openFuyao/etcd".
                              type: string
                            extraArgs:
                              additionalProperties:
                                type: string
                              description: ExtraArgs is an extra set of flags to pass to the control plane component.
                              type: object
                            extraVolumes:
                              description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                              items:
                                description: HostPathMount contains elements describing volumes that are mounted from the host.
                                properties:
                                  hostPath:
                                    description: HostPath is the path in the host that will be mounted inside the pod.
                                    type: string
                                  mountPath:
                                    description: MountPath is the path inside the pod where hostPath will be mounted.
                                    type: string
                                  name:
                                    description: Name of the volume inside the pod template.
                                    type: string
                                  pathType:
                                    description: PathType is the type of the HostPath.
                                    type: string
                                  readOnly:
                                    description: ReadOnly controls write access to the volume
                                    type: boolean
                                type: object
                              type: array
                            peerCertSANs:
                              description: PeerCertSANs sets extra Subject Alternative Names for the etcd peer signing cert.
                              items:
                                type: string
                              type: array
                            serverCertSANs:
                              description: ServerCertSANs sets extra Subject Alternative Names for the etcd server signing cert.
                              items:
                                type: string
                              type: array
                          type: object
                        hostname:
                          description: Hostname specifies the hostname of the node
                          type: string
                        ip:
                          description: IP node IP
                          type: string
                        kubelet:
                          description: Kubelet rewrite the cluster's Kubelet configuration'
                          properties:
                            extraArgs:
                              additionalProperties:
                                type: string
                              description: ExtraArgs is an extra set of flags to pass to the control plane component.
                              type: object
                            extraVolumes:
                              description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                              items:
                                description: HostPathMount contains elements describing volumes that are mounted from the host.
                                properties:
                                  hostPath:
                                    description: HostPath is the path in the host that will be mounted inside the pod.
                                    type: string
                                  mountPath:
                                    description: MountPath is the path inside the pod where hostPath will be mounted.
                                    type: string
                                  name:
                                    description: Name of the volume inside the pod template.
                                    type: string
                                  pathType:
                                    description: PathType is the type of the HostPath.
                                    type: string
                                  readOnly:
                                    description: ReadOnly controls write access to the volume
                                    type: boolean
                                type: object
                              type: array
                            manifestsDir:
                              description: ManifestsDir is the directory where kubelet will store manifests
                              type: string
                          type: object
                        password:
                          description: Password node Password used for SSH
                          type: string
                        port:
                          description: Port node Port used for SSH
                          type: string
                        role:
                          description: Role defines the role of the node in target cluster
                          items:
                            type: string
                          type: array
                        scheduler:
                          description: Scheduler contains extra settings for the scheduler control plane component
                          properties:
                            extraArgs:
                              additionalProperties:
                                type: string
                              description: ExtraArgs is an extra set of flags to pass to the control plane component.
                              type: object
                            extraVolumes:
                              description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                              items:
                                description: HostPathMount contains elements describing volumes that are mounted from the host.
                                properties:
                                  hostPath:
                                    description: HostPath is the path in the host that will be mounted inside the pod.
                                    type: string
                                  mountPath:
                                    description: MountPath is the path inside the pod where hostPath will be mounted.
                                    type: string
                                  name:
                                    description: Name of the volume inside the pod template.
                                    type: string
                                  pathType:
                                    description: PathType is the type of the HostPath.
                                    type: string
                                  readOnly:
                                    description: ReadOnly controls write access to the volume
                                    type: boolean
                                type: object
                              type: array
                          type: object
                        username:
                          description: Username node Username used for SSH
                          type: string
                      type: object
                    maxItems: 2048
                    type: array
                type: object
              controlPlaneEndpoint:
                description: ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
                properties:
                  host:
                    description: AdvertiseAddress sets the IP address for the API server to advertise.
                    type: string
                  port:
                    description: BindPort sets the secure port for the API Server to bind to. Defaults to 6443.
                    format: int32
                    type: integer
                type: object
              dryRun:
                description: DryRun is used to dry run the BKECluster, it also dries run the BKECluster's machines.
                type: boolean
              pause:
                description: Pause is used to pause reconciliation of the BKECluster, it also pauses the BKECluster's machines.
                type: boolean
              reset:
                description: Reset is used to reset the BKECluster, it also resets the BKECluster's machines, include cluster-api Cluster Machine etc.
                type: boolean
            type: object
          status:
            description: BKEClusterStatus defines the observed state of BKECluster
            properties:
              addonStatus:
                description: AddonStatus is the current status of the addons.
                items:
                  properties:
                    block:
                      default: false
                      description: Block defines fully wait for the Product to be deployed successfully
                      type: boolean
                    name:
                      type: string
                    param:
                      additionalProperties:
                        type: string
                      type: object
                    version:
                      type: string
                  required:
                  - name
                  type: object
                type: array
              agentStatus:
                properties:
                  replies:
                    default: 0
                    format: int32
                    type: integer
                  status:
                    default: 0/0
                    type: string
                  unavailableReplies:
                    default: 0
                    format: int32
                    type: integer
                type: object
              clusterHealthState:
                description: ClusterHealthState
                type: string
              clusterStatus:
                description: ClusterStatus is the current operate status of the cluster.
                type: string
              conditions:
                items:
                  properties:
                    addonName:
                      description: AddonName is the name of the current reconcile addon
                      type: string
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about the transition. This field may be empty.
                      type: string
                    reason:
                      description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      type: string
                  required:
                  - status
                  - type
                  type: object
                type: array
              kubernetesVersion:
                type: string
              nodesStatus:
                description: NodesStatus is the current status of the nodes.
                items:
                  properties:
                    message:
                      type: string
                    node:
                      properties:
                        apiServer:
                          description: APIServer contains extra settings for the api server control plane component
                          properties:
                            certSANs:
                              description: CertSANs sets extra Subject Alternative Names for the API Server signing cert.
                              items:
                                type: string
                              type: array
                            extraArgs:
                              additionalProperties:
                                type: string
                              description: ExtraArgs is an extra set of flags to pass to the control plane component.
                              type: object
                            extraVolumes:
                              description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                              items:
                                description: HostPathMount contains elements describing volumes that are mounted from the host.
                                properties:
                                  hostPath:
                                    description: HostPath is the path in the host that will be mounted inside the pod.
                                    type: string
                                  mountPath:
                                    description: MountPath is the path inside the pod where hostPath will be mounted.
                                    type: string
                                  name:
                                    description: Name of the volume inside the pod template.
                                    type: string
                                  pathType:
                                    description: PathType is the type of the HostPath.
                                    type: string
                                  readOnly:
                                    description: ReadOnly controls write access to the volume
                                    type: boolean
                                type: object
                              type: array
                            host:
                              description: AdvertiseAddress sets the IP address for the API server to advertise.
                              type: string
                            port:
                              description: BindPort sets the secure port for the API Server to bind to. Defaults to 6443.
                              format: int32
                              type: integer
                          type: object
                        controllerManager:
                          description: ControllerManager contains extra settings for the controller manager control plane component
                          properties:
                            extraArgs:
                              additionalProperties:
                                type: string
                              description: ExtraArgs is an extra set of flags to pass to the control plane component.
                              type: object
                            extraVolumes:
                              description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                              items:
                                description: HostPathMount contains elements describing volumes that are mounted from the host.
                                properties:
                                  hostPath:
                                    description: HostPath is the path in the host that will be mounted inside the pod.
                                    type: string
                                  mountPath:
                                    description: MountPath is the path inside the pod where hostPath will be mounted.
                                    type: string
                                  name:
                                    description: Name of the volume inside the pod template.
                                    type: string
                                  pathType:
                                    description: PathType is the type of the HostPath.
                                    type: string
                                  readOnly:
                                    description: ReadOnly controls write access to the volume
                                    type: boolean
                                type: object
                              type: array
                          type: object
                        etcd:
                          description: Etcd holds configuration for etcd
                          properties:
                            dataDir:
                              description: DataDir is the directory etcd will place its data. Defaults to "/var/lib/openFuyao/etcd".
                              type: string
                            extraArgs:
                              additionalProperties:
                                type: string
                              description: ExtraArgs is an extra set of flags to pass to the control plane component.
                              type: object
                            extraVolumes:
                              description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                              items:
                                description: HostPathMount contains elements describing volumes that are mounted from the host.
                                properties:
                                  hostPath:
                                    description: HostPath is the path in the host that will be mounted inside the pod.
                                    type: string
                                  mountPath:
                                    description: MountPath is the path inside the pod where hostPath will be mounted.
                                    type: string
                                  name:
                                    description: Name of the volume inside the pod template.
                                    type: string
                                  pathType:
                                    description: PathType is the type of the HostPath.
                                    type: string
                                  readOnly:
                                    description: ReadOnly controls write access to the volume
                                    type: boolean
                                type: object
                              type: array
                            peerCertSANs:
                              description: PeerCertSANs sets extra Subject Alternative Names for the etcd peer signing cert.
                              items:
                                type: string
                              type: array
                            serverCertSANs:
                              description: ServerCertSANs sets extra Subject Alternative Names for the etcd server signing cert.
                              items:
                                type: string
                              type: array
                          type: object
                        hostname:
                          description: Hostname specifies the hostname of the node
                          type: string
                        ip:
                          description: IP node IP
                          type: string
                        kubelet:
                          description: Kubelet rewrite the cluster's Kubelet configuration'
                          properties:
                            extraArgs:
                              additionalProperties:
                                type: string
                              description: ExtraArgs is an extra set of flags to pass to the control plane component.
                              type: object
                            extraVolumes:
                              description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                              items:
                                description: HostPathMount contains elements describing volumes that are mounted from the host.
                                properties:
                                  hostPath:
                                    description: HostPath is the path in the host that will be mounted inside the pod.
                                    type: string
                                  mountPath:
                                    description: MountPath is the path inside the pod where hostPath will be mounted.
                                    type: string
                                  name:
                                    description: Name of the volume inside the pod template.
                                    type: string
                                  pathType:
                                    description: PathType is the type of the HostPath.
                                    type: string
                                  readOnly:
                                    description: ReadOnly controls write access to the volume
                                    type: boolean
                                type: object
                              type: array
                            manifestsDir:
                              description: ManifestsDir is the directory where kubelet will store manifests
                              type: string
                          type: object
                        password:
                          description: Password node Password used for SSH
                          type: string
                        port:
                          description: Port node Port used for SSH
                          type: string
                        role:
                          description: Role defines the role of the node in target cluster
                          items:
                            type: string
                          type: array
                        scheduler:
                          description: Scheduler contains extra settings for the scheduler control plane component
                          properties:
                            extraArgs:
                              additionalProperties:
                                type: string
                              description: ExtraArgs is an extra set of flags to pass to the control plane component.
                              type: object
                            extraVolumes:
                              description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                              items:
                                description: HostPathMount contains elements describing volumes that are mounted from the host.
                                properties:
                                  hostPath:
                                    description: HostPath is the path in the host that will be mounted inside the pod.
                                    type: string
                                  mountPath:
                                    description: MountPath is the path inside the pod where hostPath will be mounted.
                                    type: string
                                  name:
                                    description: Name of the volume inside the pod template.
                                    type: string
                                  pathType:
                                    description: PathType is the type of the HostPath.
                                    type: string
                                  readOnly:
                                    description: ReadOnly controls write access to the volume
                                    type: boolean
                                type: object
                              type: array
                          type: object
                        username:
                          description: Username node Username used for SSH
                          type: string
                      type: object
                    state:
                      type: string
                    stateCode:
                      type: integer
                  type: object
                type: array
              phase:
                description: Phase is the current phase of the cluster.
                type: string
              phaseStatus:
                items:
                  properties:
                    endTime:
                      description: EndTime is the end time of the phase
                      format: date-time
                      type: string
                    message:
                      description: Message is the message of the phase
                      type: string
                    name:
                      description: Name is the name of the phase name
                      type: string
                    startTime:
                      description: StartTime is the start time of the phase
                      format: date-time
                      type: string
                    status:
                      description: Status is the status of the phase
                      type: string
                  type: object
                type: array
              ready:
                description: 'INSERT ADDITIONAL STATUS FIELD - define observed state of cluster Important: Run "make" to regenerate code after modifying this file'
                type: boolean
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  labels:
    cluster.x-k8s.io/provider: infrastructure-bke
    cluster.x-k8s.io/v1beta1: v1beta1
  name: bkeclustertemplates.bke.bocloud.com
spec:
  group: bke.bocloud.com
  names:
    kind: BKEClusterTemplate
    listKind: BKEClusterTemplateList
    plural: bkeclustertemplates
    singular: bkeclustertemplate
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: BKEClusterTemplate is the Schema for the bkeclustertemplates API
        properties:
          apiVersion:
            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'
            type: string
          kind:
            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'
            type: string
          metadata:
            type: object
          spec:
            description: BKEClusterTemplateSpec defines the desired state of BKEClusterTemplate
            properties:
              template:
                properties:
                  metadata:
                    description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
                        type: object
                    type: object
                  spec:
                    description: BKEClusterSpec defines the desired state of BKECluster
                    properties:
                      clusterConfig:
                        description: ClusterConfig defines the cluster config
                        properties:
                          addons:
                            description: Addons defines the addons that the target cluster will install after deployment
                            items:
                              properties:
                                block:
                                  default: false
                                  description: Block defines fully wait for the Product to be deployed successfully
                                  type: boolean
                                name:
                                  type: string
                                param:
                                  additionalProperties:
                                    type: string
                                  type: object
                                version:
                                  type: string
                              required:
                              - name
                              type: object
                            type: array
                          cluster:
                            description: Cluster defines the configuration of the target cluster
                            properties:
                              apiServer:
                                description: APIServer contains extra settings for the api server control plane component
                                properties:
                                  certSANs:
                                    description: CertSANs sets extra Subject Alternative Names for the API Server signing cert.
                                    items:
                                      type: string
                                    type: array
                                  extraArgs:
                                    additionalProperties:
                                      type: string
                                    description: ExtraArgs is an extra set of flags to pass to the control plane component.
                                    type: object
                                  extraVolumes:
                                    description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                                    items:
                                      description: HostPathMount contains elements describing volumes that are mounted from the host.
                                      properties:
                                        hostPath:
                                          description: HostPath is the path in the host that will be mounted inside the pod.
                                          type: string
                                        mountPath:
                                          description: MountPath is the path inside the pod where hostPath will be mounted.
                                          type: string
                                        name:
                                          description: Name of the volume inside the pod template.
                                          type: string
                                        pathType:
                                          description: PathType is the type of the HostPath.
                                          type: string
                                        readOnly:
                                          description: ReadOnly controls write access to the volume
                                          type: boolean
                                      type: object
                                    type: array
                                  host:
                                    description: AdvertiseAddress sets the IP address for the API server to advertise.
                                    type: string
                                  port:
                                    description: BindPort sets the secure port for the API Server to bind to. Defaults to 6443.
                                    format: int32
                                    type: integer
                                type: object
                              certificatesDir:
                                description: CertificatesDir specifies where to store or look for all required certificates.
                                type: string
                              containerRuntime:
                                description: ContainerRuntime defines the container runtime of the target cluster
                                properties:
                                  cri:
                                    description: Name defines the name of the runtime
                                    enum:
                                    - docker
                                    - containerd
                                    type: string
                                  param:
                                    additionalProperties:
                                      type: string
                                    description: Param defines the param of the runtime
                                    type: object
                                  runtime:
                                    description: RunTime defines the lower runtime of the runtime
                                    enum:
                                    - runc
                                    - richrunc
                                    - kata
                                    type: string
                                type: object
                              controllerManager:
                                description: ControllerManager contains extra settings for the controller manager control plane component
                                properties:
                                  extraArgs:
                                    additionalProperties:
                                      type: string
                                    description: ExtraArgs is an extra set of flags to pass to the control plane component.
                                    type: object
                                  extraVolumes:
                                    description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                                    items:
                                      description: HostPathMount contains elements describing volumes that are mounted from the host.
                                      properties:
                                        hostPath:
                                          description: HostPath is the path in the host that will be mounted inside the pod.
                                          type: string
                                        mountPath:
                                          description: MountPath is the path inside the pod where hostPath will be mounted.
                                          type: string
                                        name:
                                          description: Name of the volume inside the pod template.
                                          type: string
                                        pathType:
                                          description: PathType is the type of the HostPath.
                                          type: string
                                        readOnly:
                                          description: ReadOnly controls write access to the volume
                                          type: boolean
                                      type: object
                                    type: array
                                type: object
                              etcd:
                                description: Etcd holds configuration for etcd
                                properties:
                                  dataDir:
                                    description: DataDir is the directory etcd will place its data. Defaults to "/var/lib/openFuyao/etcd".
                                    type: string
                                  extraArgs:
                                    additionalProperties:
                                      type: string
                                    description: ExtraArgs is an extra set of flags to pass to the control plane component.
                                    type: object
                                  extraVolumes:
                                    description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                                    items:
                                      description: HostPathMount contains elements describing volumes that are mounted from the host.
                                      properties:
                                        hostPath:
                                          description: HostPath is the path in the host that will be mounted inside the pod.
                                          type: string
                                        mountPath:
                                          description: MountPath is the path inside the pod where hostPath will be mounted.
                                          type: string
                                        name:
                                          description: Name of the volume inside the pod template.
                                          type: string
                                        pathType:
                                          description: PathType is the type of the HostPath.
                                          type: string
                                        readOnly:
                                          description: ReadOnly controls write access to the volume
                                          type: boolean
                                      type: object
                                    type: array
                                  peerCertSANs:
                                    description: PeerCertSANs sets extra Subject Alternative Names for the etcd peer signing cert.
                                    items:
                                      type: string
                                    type: array
                                  serverCertSANs:
                                    description: ServerCertSANs sets extra Subject Alternative Names for the etcd server signing cert.
                                    items:
                                      type: string
                                    type: array
                                type: object
                              httpRepo:
                                description: HTTPRepo defines the HTTP repository to use when deploying rpm / deb / http server
                                properties:
                                  domain:
                                    description: Domain defines the Repo domain name
                                    type: string
                                  ip:
                                    description: Ip defines the Repo ip
                                    type: string
                                  port:
                                    description: Port defines the number of port to connect to the Repo
                                    type: string
                                  prefix:
                                    description: Prefix defines the kubernetes image address
                                    type: string
                                type: object
                              imageRepo:
                                description: ImageRepo defines the global image repository of the deployment target cluster
                                properties:
                                  domain:
                                    description: Domain defines the Repo domain name
                                    type: string
                                  ip:
                                    description: Ip defines the Repo ip
                                    type: string
                                  port:
                                    description: Port defines the number of port to connect to the Repo
                                    type: string
                                  prefix:
                                    description: Prefix defines the kubernetes image address
                                    type: string
                                type: object
                              kubelet:
                                description: Kubelet define kubelet configuration for all nodes in the target cluster
                                properties:
                                  extraArgs:
                                    additionalProperties:
                                      type: string
                                    description: ExtraArgs is an extra set of flags to pass to the control plane component.
                                    type: object
                                  extraVolumes:
                                    description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                                    items:
                                      description: HostPathMount contains elements describing volumes that are mounted from the host.
                                      properties:
                                        hostPath:
                                          description: HostPath is the path in the host that will be mounted inside the pod.
                                          type: string
                                        mountPath:
                                          description: MountPath is the path inside the pod where hostPath will be mounted.
                                          type: string
                                        name:
                                          description: Name of the volume inside the pod template.
                                          type: string
                                        pathType:
                                          description: PathType is the type of the HostPath.
                                          type: string
                                        readOnly:
                                          description: ReadOnly controls write access to the volume
                                          type: boolean
                                      type: object
                                    type: array
                                  manifestsDir:
                                    description: ManifestsDir is the directory where kubelet will store manifests
                                    type: string
                                type: object
                              kubernetesVersion:
                                description: KubernetesVersion defines the Kubernetes version of the target cluster support up to v1.25.6 in bke
                                type: string
                              networking:
                                description: Networking defines the configuration of target cluster network
                                properties:
                                  dnsDomain:
                                    description: DNSDomain is the dns domain used by k8s services. Defaults to "cluster.local".
                                    type: string
                                  podSubnet:
                                    description: PodSubnet is the subnet used by pods.
                                    type: string
                                  serviceSubnet:
                                    description: ServiceSubnet is the subnet used by k8s services. Defaults to "10.96.0.0/12".
                                    type: string
                                type: object
                              ntpServer:
                                description: NTPServer defines the ntp server information used for time synchronization
                                type: string
                              scheduler:
                                description: Scheduler contains extra settings for the scheduler control plane component
                                properties:
                                  extraArgs:
                                    additionalProperties:
                                      type: string
                                    description: ExtraArgs is an extra set of flags to pass to the control plane component.
                                    type: object
                                  extraVolumes:
                                    description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                                    items:
                                      description: HostPathMount contains elements describing volumes that are mounted from the host.
                                      properties:
                                        hostPath:
                                          description: HostPath is the path in the host that will be mounted inside the pod.
                                          type: string
                                        mountPath:
                                          description: MountPath is the path inside the pod where hostPath will be mounted.
                                          type: string
                                        name:
                                          description: Name of the volume inside the pod template.
                                          type: string
                                        pathType:
                                          description: PathType is the type of the HostPath.
                                          type: string
                                        readOnly:
                                          description: ReadOnly controls write access to the volume
                                          type: boolean
                                      type: object
                                    type: array
                                type: object
                            type: object
                          customExtra:
                            additionalProperties:
                              type: string
                            description: CustomArgs defines the custom args
                            type: object
                          nodes:
                            description: Nodes defines the configuration of the target cluster nodes
                            items:
                              properties:
                                apiServer:
                                  description: APIServer contains extra settings for the api server control plane component
                                  properties:
                                    certSANs:
                                      description: CertSANs sets extra Subject Alternative Names for the API Server signing cert.
                                      items:
                                        type: string
                                      type: array
                                    extraArgs:
                                      additionalProperties:
                                        type: string
                                      description: ExtraArgs is an extra set of flags to pass to the control plane component.
                                      type: object
                                    extraVolumes:
                                      description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                                      items:
                                        description: HostPathMount contains elements describing volumes that are mounted from the host.
                                        properties:
                                          hostPath:
                                            description: HostPath is the path in the host that will be mounted inside the pod.
                                            type: string
                                          mountPath:
                                            description: MountPath is the path inside the pod where hostPath will be mounted.
                                            type: string
                                          name:
                                            description: Name of the volume inside the pod template.
                                            type: string
                                          pathType:
                                            description: PathType is the type of the HostPath.
                                            type: string
                                          readOnly:
                                            description: ReadOnly controls write access to the volume
                                            type: boolean
                                        type: object
                                      type: array
                                    host:
                                      description: AdvertiseAddress sets the IP address for the API server to advertise.
                                      type: string
                                    port:
                                      description: BindPort sets the secure port for the API Server to bind to. Defaults to 6443.
                                      format: int32
                                      type: integer
                                  type: object
                                controllerManager:
                                  description: ControllerManager contains extra settings for the controller manager control plane component
                                  properties:
                                    extraArgs:
                                      additionalProperties:
                                        type: string
                                      description: ExtraArgs is an extra set of flags to pass to the control plane component.
                                      type: object
                                    extraVolumes:
                                      description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                                      items:
                                        description: HostPathMount contains elements describing volumes that are mounted from the host.
                                        properties:
                                          hostPath:
                                            description: HostPath is the path in the host that will be mounted inside the pod.
                                            type: string
                                          mountPath:
                                            description: MountPath is the path inside the pod where hostPath will be mounted.
                                            type: string
                                          name:
                                            description: Name of the volume inside the pod template.
                                            type: string
                                          pathType:
                                            description: PathType is the type of the HostPath.
                                            type: string
                                          readOnly:
                                            description: ReadOnly controls write access to the volume
                                            type: boolean
                                        type: object
                                      type: array
                                  type: object
                                etcd:
                                  description: Etcd holds configuration for etcd
                                  properties:
                                    dataDir:
                                      description: DataDir is the directory etcd will place its data. Defaults to "/var/lib/openFuyao/etcd".
                                      type: string
                                    extraArgs:
                                      additionalProperties:
                                        type: string
                                      description: ExtraArgs is an extra set of flags to pass to the control plane component.
                                      type: object
                                    extraVolumes:
                                      description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                                      items:
                                        description: HostPathMount contains elements describing volumes that are mounted from the host.
                                        properties:
                                          hostPath:
                                            description: HostPath is the path in the host that will be mounted inside the pod.
                                            type: string
                                          mountPath:
                                            description: MountPath is the path inside the pod where hostPath will be mounted.
                                            type: string
                                          name:
                                            description: Name of the volume inside the pod template.
                                            type: string
                                          pathType:
                                            description: PathType is the type of the HostPath.
                                            type: string
                                          readOnly:
                                            description: ReadOnly controls write access to the volume
                                            type: boolean
                                        type: object
                                      type: array
                                    peerCertSANs:
                                      description: PeerCertSANs sets extra Subject Alternative Names for the etcd peer signing cert.
                                      items:
                                        type: string
                                      type: array
                                    serverCertSANs:
                                      description: ServerCertSANs sets extra Subject Alternative Names for the etcd server signing cert.
                                      items:
                                        type: string
                                      type: array
                                  type: object
                                hostname:
                                  description: Hostname specifies the hostname of the node
                                  type: string
                                ip:
                                  description: IP node IP
                                  type: string
                                kubelet:
                                  description: Kubelet rewrite the cluster's Kubelet configuration'
                                  properties:
                                    extraArgs:
                                      additionalProperties:
                                        type: string
                                      description: ExtraArgs is an extra set of flags to pass to the control plane component.
                                      type: object
                                    extraVolumes:
                                      description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                                      items:
                                        description: HostPathMount contains elements describing volumes that are mounted from the host.
                                        properties:
                                          hostPath:
                                            description: HostPath is the path in the host that will be mounted inside the pod.
                                            type: string
                                          mountPath:
                                            description: MountPath is the path inside the pod where hostPath will be mounted.
                                            type: string
                                          name:
                                            description: Name of the volume inside the pod template.
                                            type: string
                                          pathType:
                                            description: PathType is the type of the HostPath.
                                            type: string
                                          readOnly:
                                            description: ReadOnly controls write access to the volume
                                            type: boolean
                                        type: object
                                      type: array
                                    manifestsDir:
                                      description: ManifestsDir is the directory where kubelet will store manifests
                                      type: string
                                  type: object
                                password:
                                  description: Password node Password used for SSH
                                  type: string
                                port:
                                  description: Port node Port used for SSH
                                  type: string
                                role:
                                  description: Role defines the role of the node in target cluster
                                  items:
                                    type: string
                                  type: array
                                scheduler:
                                  description: Scheduler contains extra settings for the scheduler control plane component
                                  properties:
                                    extraArgs:
                                      additionalProperties:
                                        type: string
                                      description: ExtraArgs is an extra set of flags to pass to the control plane component.
                                      type: object
                                    extraVolumes:
                                      description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                                      items:
                                        description: HostPathMount contains elements describing volumes that are mounted from the host.
                                        properties:
                                          hostPath:
                                            description: HostPath is the path in the host that will be mounted inside the pod.
                                            type: string
                                          mountPath:
                                            description: MountPath is the path inside the pod where hostPath will be mounted.
                                            type: string
                                          name:
                                            description: Name of the volume inside the pod template.
                                            type: string
                                          pathType:
                                            description: PathType is the type of the HostPath.
                                            type: string
                                          readOnly:
                                            description: ReadOnly controls write access to the volume
                                            type: boolean
                                        type: object
                                      type: array
                                  type: object
                                username:
                                  description: Username node Username used for SSH
                                  type: string
                              type: object
                            maxItems: 2048
                            type: array
                        type: object
                      controlPlaneEndpoint:
                        description: ControlPlaneEndpoint represents the endpoint used to communicate with the control plane.
                        properties:
                          host:
                            description: AdvertiseAddress sets the IP address for the API server to advertise.
                            type: string
                          port:
                            description: BindPort sets the secure port for the API Server to bind to. Defaults to 6443.
                            format: int32
                            type: integer
                        type: object
                      dryRun:
                        description: DryRun is used to dry run the BKECluster, it also dries run the BKECluster's machines.
                        type: boolean
                      pause:
                        description: Pause is used to pause reconciliation of the BKECluster, it also pauses the BKECluster's machines.
                        type: boolean
                      reset:
                        description: Reset is used to reset the BKECluster, it also resets the BKECluster's machines, include cluster-api Cluster Machine etc.
                        type: boolean
                    type: object
                required:
                - spec
                type: object
            required:
            - template
            type: object
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  labels:
    cluster.x-k8s.io/provider: infrastructure-bke
    cluster.x-k8s.io/v1beta1: v1beta1
  name: bkemachines.bke.bocloud.com
spec:
  group: bke.bocloud.com
  names:
    kind: BKEMachine
    listKind: BKEMachineList
    plural: bkemachines
    singular: bkemachine
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: The hostname of the machine
      jsonPath: .status.node.hostname
      name: HOSTNAME
      type: string
    - description: The ip of the machine
      jsonPath: .status.node.ip
      name: IP
      type: string
    - jsonPath: .spec.providerID
      name: PROVIDER-ID
      type: string
    - jsonPath: .status.bootstrapped
      name: BOOTSTRAPPED
      type: boolean
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: BKEMachine is the Schema for the bkemachines API
        properties:
          apiVersion:
            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'
            type: string
          kind:
            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'
            type: string
          metadata:
            type: object
          spec:
            description: BKEMachineSpec defines the desired state of BKEMachine
            properties:
              dryRun:
                description: DryRun is used to dry run the BKEMachine.
                type: boolean
              pause:
                description: Pause is used to pause reconciliation of the BKEMachine.
                type: boolean
              providerID:
                description: 标识唯一的主机 cluster-api需要的参数,可以用hostname或者ip填充
                type: string
            type: object
          status:
            description: BKEMachineStatus defines the observed state of BKEMachine
            properties:
              addresses:
                items:
                  description: MachineAddress contains information for the node's address.
                  properties:
                    address:
                      description: The machine address.
                      type: string
                    type:
                      description: Machine address type, one of Hostname, ExternalIP or InternalIP.
                      type: string
                  required:
                  - address
                  - type
                  type: object
                type: array
              bootstrapped:
                description: Bootstrapped means that the machine already has bootstrapped
                type: boolean
              conditions:
                description: Conditions provide observations of the operational state of a Cluster API resource.
                items:
                  description: Condition defines an observation of a Cluster API resource operational state.
                  properties:
                    lastTransitionTime:
                      description: Last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: A human readable message indicating details about the transition. This field may be empty.
                      type: string
                    reason:
                      description: The reason for the condition's last transition in CamelCase. The specific API may choose whether or not this field is considered a guaranteed API. This field may not be empty.
                      type: string
                    severity:
                      description: Severity provides an explicit classification of Reason code, so the users or machines can immediately understand the current situation and act accordingly. The Severity field MUST be set only when Status=False.
                      type: string
                    status:
                      description: Status of the condition, one of True, False, Unknown.
                      type: string
                    type:
                      description: Type of condition in CamelCase or in foo.example.com/CamelCase. Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important.
                      type: string
                  required:
                  - lastTransitionTime
                  - status
                  - type
                  type: object
                type: array
              node:
                properties:
                  apiServer:
                    description: APIServer contains extra settings for the api server control plane component
                    properties:
                      certSANs:
                        description: CertSANs sets extra Subject Alternative Names for the API Server signing cert.
                        items:
                          type: string
                        type: array
                      extraArgs:
                        additionalProperties:
                          type: string
                        description: ExtraArgs is an extra set of flags to pass to the control plane component.
                        type: object
                      extraVolumes:
                        description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                        items:
                          description: HostPathMount contains elements describing volumes that are mounted from the host.
                          properties:
                            hostPath:
                              description: HostPath is the path in the host that will be mounted inside the pod.
                              type: string
                            mountPath:
                              description: MountPath is the path inside the pod where hostPath will be mounted.
                              type: string
                            name:
                              description: Name of the volume inside the pod template.
                              type: string
                            pathType:
                              description: PathType is the type of the HostPath.
                              type: string
                            readOnly:
                              description: ReadOnly controls write access to the volume
                              type: boolean
                          type: object
                        type: array
                      host:
                        description: AdvertiseAddress sets the IP address for the API server to advertise.
                        type: string
                      port:
                        description: BindPort sets the secure port for the API Server to bind to. Defaults to 6443.
                        format: int32
                        type: integer
                    type: object
                  controllerManager:
                    description: ControllerManager contains extra settings for the controller manager control plane component
                    properties:
                      extraArgs:
                        additionalProperties:
                          type: string
                        description: ExtraArgs is an extra set of flags to pass to the control plane component.
                        type: object
                      extraVolumes:
                        description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                        items:
                          description: HostPathMount contains elements describing volumes that are mounted from the host.
                          properties:
                            hostPath:
                              description: HostPath is the path in the host that will be mounted inside the pod.
                              type: string
                            mountPath:
                              description: MountPath is the path inside the pod where hostPath will be mounted.
                              type: string
                            name:
                              description: Name of the volume inside the pod template.
                              type: string
                            pathType:
                              description: PathType is the type of the HostPath.
                              type: string
                            readOnly:
                              description: ReadOnly controls write access to the volume
                              type: boolean
                          type: object
                        type: array
                    type: object
                  etcd:
                    description: Etcd holds configuration for etcd
                    properties:
                      dataDir:
                        description: DataDir is the directory etcd will place its data. Defaults to "/var/lib/openFuyao/etcd".
                        type: string
                      extraArgs:
                        additionalProperties:
                          type: string
                        description: ExtraArgs is an extra set of flags to pass to the control plane component.
                        type: object
                      extraVolumes:
                        description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                        items:
                          description: HostPathMount contains elements describing volumes that are mounted from the host.
                          properties:
                            hostPath:
                              description: HostPath is the path in the host that will be mounted inside the pod.
                              type: string
                            mountPath:
                              description: MountPath is the path inside the pod where hostPath will be mounted.
                              type: string
                            name:
                              description: Name of the volume inside the pod template.
                              type: string
                            pathType:
                              description: PathType is the type of the HostPath.
                              type: string
                            readOnly:
                              description: ReadOnly controls write access to the volume
                              type: boolean
                          type: object
                        type: array
                      peerCertSANs:
                        description: PeerCertSANs sets extra Subject Alternative Names for the etcd peer signing cert.
                        items:
                          type: string
                        type: array
                      serverCertSANs:
                        description: ServerCertSANs sets extra Subject Alternative Names for the etcd server signing cert.
                        items:
                          type: string
                        type: array
                    type: object
                  hostname:
                    description: Hostname specifies the hostname of the node
                    type: string
                  ip:
                    description: IP node IP
                    type: string
                  kubelet:
                    description: Kubelet rewrite the cluster's Kubelet configuration'
                    properties:
                      extraArgs:
                        additionalProperties:
                          type: string
                        description: ExtraArgs is an extra set of flags to pass to the control plane component.
                        type: object
                      extraVolumes:
                        description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                        items:
                          description: HostPathMount contains elements describing volumes that are mounted from the host.
                          properties:
                            hostPath:
                              description: HostPath is the path in the host that will be mounted inside the pod.
                              type: string
                            mountPath:
                              description: MountPath is the path inside the pod where hostPath will be mounted.
                              type: string
                            name:
                              description: Name of the volume inside the pod template.
                              type: string
                            pathType:
                              description: PathType is the type of the HostPath.
                              type: string
                            readOnly:
                              description: ReadOnly controls write access to the volume
                              type: boolean
                          type: object
                        type: array
                      manifestsDir:
                        description: ManifestsDir is the directory where kubelet will store manifests
                        type: string
                    type: object
                  password:
                    description: Password node Password used for SSH
                    type: string
                  port:
                    description: Port node Port used for SSH
                    type: string
                  role:
                    description: Role defines the role of the node in target cluster
                    items:
                      type: string
                    type: array
                  scheduler:
                    description: Scheduler contains extra settings for the scheduler control plane component
                    properties:
                      extraArgs:
                        additionalProperties:
                          type: string
                        description: ExtraArgs is an extra set of flags to pass to the control plane component.
                        type: object
                      extraVolumes:
                        description: ExtraVolumes is an extra set of host volumes, mounted to the control plane component.
                        items:
                          description: HostPathMount contains elements describing volumes that are mounted from the host.
                          properties:
                            hostPath:
                              description: HostPath is the path in the host that will be mounted inside the pod.
                              type: string
                            mountPath:
                              description: MountPath is the path inside the pod where hostPath will be mounted.
                              type: string
                            name:
                              description: Name of the volume inside the pod template.
                              type: string
                            pathType:
                              description: PathType is the type of the HostPath.
                              type: string
                            readOnly:
                              description: ReadOnly controls write access to the volume
                              type: boolean
                          type: object
                        type: array
                    type: object
                  username:
                    description: Username node Username used for SSH
                    type: string
                type: object
              ready:
                description: 'INSERT ADDITIONAL STATUS FIELD - define observed state of cluster Important: Run "make" to regenerate code after modifying this file Ready denotes that the machine is ready'
                type: boolean
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.10.0
  creationTimestamp: null
  labels:
    cluster.x-k8s.io/provider: infrastructure-bke
    cluster.x-k8s.io/v1beta1: v1beta1
  name: bkemachinetemplates.bke.bocloud.com
spec:
  group: bke.bocloud.com
  names:
    kind: BKEMachineTemplate
    listKind: BKEMachineTemplateList
    plural: bkemachinetemplates
    singular: bkemachinetemplate
  scope: Namespaced
  versions:
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: BKEMachineTemplate is the Schema for the bkemachinetemplates API
        properties:
          apiVersion:
            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'
            type: string
          kind:
            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'
            type: string
          metadata:
            type: object
          spec:
            description: BKEMachineTemplateSpec defines the desired state of BKEMachineTemplate
            properties:
              template:
                properties:
                  metadata:
                    description: 'Standard object''s metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata'
                    properties:
                      annotations:
                        additionalProperties:
                          type: string
                        description: 'Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations'
                        type: object
                      labels:
                        additionalProperties:
                          type: string
                        description: 'Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels'
                        type: object
                    type: object
                  spec:
                    description: Spec is the specification of the desired behavior of the machine.
                    properties:
                      dryRun:
                        description: DryRun is used to dry run the BKEMachine.
                        type: boolean
                      pause:
                        description: Pause is used to pause reconciliation of the BKEMachine.
                        type: boolean
                      providerID:
                        description: 标识唯一的主机 cluster-api需要的参数,可以用hostname或者ip填充
                        type: string
                    type: object
                required:
                - spec
                type: object
            required:
            - template
            type: object
        type: object
    served: true
    storage: true
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.0
  creationTimestamp: null
  labels:
    cluster.x-k8s.io/provider: infrastructure-bke
    cluster.x-k8s.io/v1beta1: v1beta1
  name: commands.bkeagent.bocloud.com
spec:
  group: bkeagent.bocloud.com
  names:
    kind: Command
    listKind: CommandList
    plural: commands
    shortNames:
    - cmd
    singular: command
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.nodeName
      name: NODENAME
      type: string
    - jsonPath: .spec.suspend
      name: SUSPEND
      type: boolean
    - jsonPath: .spec.backoffLimit
      name: BACKOFFLIMIT
      type: integer
    - jsonPath: .spec.ttlSecondsAfterFinished
      name: TTLSECONDSAFTERFINISHED
      type: integer
    name: v1beta1
    schema:
      openAPIV3Schema:
        description: Command is the Schema for the commands API
        properties:
          apiVersion:
            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'
            type: string
          kind:
            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'
            type: string
          metadata:
            type: object
          spec:
            description: CommandSpec defines the desired state of Command
            properties:
              activeDeadlineSecond:
                description: 超过此时间后,不在执行。默认600 当该任务暂停后,重新启动时将重新计时
                type: integer
              backoffLimit:
                description: 当某个命令执行失败时, 最大重试次数
                type: integer
              commands:
                description: 这里的指令会按照数组顺序执行,如果上个不成功则下个不会执行,除非设置了失败跳过 对于指令书写错误的直接标识失败
                items:
                  properties:
                    backoffDelay:
                      description: 命令执行失败时, 重试间隔时间 默认为0
                      type: integer
                    backoffIgnore:
                      description: 当该条指令执行失败,并且达到失败重试次数时,为true则运行跳过,默认false
                      type: boolean
                    command:
                      description: '这里要根据命令类型进行不同的指令解析 Type: BuiltIn,是Agent内置实现指令,比如节点Ipv4开启等, 示例[]string{ipv4, dockerStorageCapacity},将检查ipv4转发是否开启, docker目录/var/lib/docker是否大于300G Type: Shell,这个是要Agent执行具体的指令 示例[]string{"iptables", "--table", "nat", "--list", ">", "/tmp/iptables.rule"},获取iptables规则并写入文件 Type: Kubernetes,这个是要获取K8s中资源或者执行里边的指令 固定格式: [configmap|secret]:ns/name:ro:/tmp/secret.json 只支持[configmap|secret], ns/name标识唯一资源,只有[ro|rx|rw]三个值标识[configmap|secret]资源是[只读|执行|写入] 最后一个为宿主机目录,当rx时最后一个为任意值 示例[]string{"secret:ns/name:ro:/tmp/secret.json"} 获取secret/ns/name资源并写入/tmp/secret.json文件 示例[]string{"configmap:ns/name:rx:shell"} 获取configmap/ns/name中的资源,在agent以shell方式执行 示例[]string{"configmap:ns/name:rw:/tmp/iptables.rule"} 读取/tmp/iptables.rule中的内容并写入configmap/ns/name'
                      items:
                        type: string
                      type: array
                    id:
                      description: 每条指令都必须有唯一的ID
                      type: string
                    type:
                      description: 指令类型
                      type: string
                  required:
                  - command
                  - id
                  - type
                  type: object
                type: array
              nodeName:
                description: 命令执行节点
                type: string
              nodeSelector:
                description: 选定某些节点执行,NodeName需要为空
                properties:
                  matchExpressions:
                    description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
                    items:
                      description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
                      properties:
                        key:
                          description: key is the label key that the selector applies to.
                          type: string
                        operator:
                          description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
                          type: string
                        values:
                          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.
                          items:
                            type: string
                          type: array
                      required:
                      - key
                      - operator
                      type: object
                    type: array
                  matchLabels:
                    additionalProperties:
                      type: string
                    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.
                    type: object
                type: object
              suspend:
                description: 挂起暂不执行,可阻止下个执行的指令
                type: boolean
              ttlSecondsAfterFinished:
                description: 运行完成后,超过此清理的时间则清理该任务,不设置不删除
                type: integer
            type: object
          status:
            additionalProperties:
              description: CommandStatus defines the observed state of Command
              properties:
                completionTime:
                  description: Represents time when the job was completed. It is not guaranteed to be set in happens-before order across separate operations. It is represented in RFC3339 form and is in UTC. The completion time is only set when the job finishes successfully.
                  format: date-time
                  type: string
                conditions:
                  items:
                    properties:
                      count:
                        description: 执行次数
                        type: integer
                      id:
                        description: 每条指令都必须有唯一的ID
                        type: string
                      lastStartTime:
                        format: date-time
                        type: string
                      phase:
                        description: 该命令所在阶段
                        type: string
                      status:
                        description: 该命令执行的结果
                        type: string
                      stdErr:
                        items:
                          type: string
                        type: array
                      stdOut:
                        items:
                          type: string
                        type: array
                    required:
                    - id
                    type: object
                  type: array
                failed:
                  description: The number of pods which reached phase Failed.
                  type: integer
                lastStartTime:
                  description: 这个时间在两处更新,一处该CRD刚刚要被处理时,由agent来更新 当该任务暂停后,在磁被启动的时候要cluster-api-provider-metal来同时更新此字段 spec.activeDeadlineSecond 依据此字段做判断
                  format: date-time
                  type: string
                phase:
                  description: 执行阶段
                  type: string
                status:
                  description: 执行结果
                  type: string
                succeeded:
                  description: The number of pods which reached phase Succeeded.
                  type: integer
              type: object
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.20.0
  labels:
    cluster.x-k8s.io/provider: infrastructure-bke
    cluster.x-k8s.io/v1beta1: v1beta1
  name: upgradepaths.config.openfuyao.com
spec:
  group: config.openfuyao.com
  names:
    kind: UpgradePath
    listKind: UpgradePathList
    plural: upgradepaths
    shortNames:
    - up
    singular: upgradepath
  scope: Cluster
  versions:
  - additionalPrinterColumns:
    - jsonPath: .status.phase
      name: Phase
      type: string
    - jsonPath: .status.pathCount
      name: Paths
      type: integer
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: UpgradePath defines allowed version upgrade routes loaded from an OCI artifact.
        properties:
          apiVersion:
            type: string
          kind:
            type: string
          metadata:
            type: object
          spec:
            description: UpgradePathSpec defines the desired upgrade path catalog.
            properties:
              paths:
                items:
                  description: UpgradePathRule is one directed upgrade edge between versions.
                  properties:
                    blocked:
                      type: boolean
                    deprecated:
                      type: boolean
                    from:
                      type: string
                    notes:
                      type: string
                    postCheck:
                      items:
                        description: CheckStep describes a upgrade validation step.
                        properties:
                          name:
                            type: string
                          required:
                            type: boolean
                        type: object
                      type: array
                    preCheck:
                      items:
                        description: CheckStep describes a upgrade validation step.
                        properties:
                          name:
                            type: string
                          required:
                            type: boolean
                        type: object
                      type: array
                    to:
                      type: string
                  type: object
                type: array
              versions:
                items:
                  description: VersionEntry defines version info.
                  properties:
                    deprecated:
                      type: boolean
                    installable:
                      type: boolean
                    notes:
                      type: string
                    version:
                      type: string
                  type: object
                type: array
            type: object
          status:
            description: UpgradePathStatus defines the observed upgrade path catalog state.
            properties:
              conditions:
                items:
                  description: Condition contains details for one aspect of the current state of this API Resource.
                  properties:
                    lastTransitionTime:
                      format: date-time
                      type: string
                    message:
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      maxLength: 316
                      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])$
                      type: string
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
              lastCheckedAt:
                format: date-time
                type: string
              lastDigest:
                type: string
              pathCount:
                type: integer
              phase:
                description: UpgradePathPhase is the validation/lifecycle phase of an UpgradePath.
                enum:
                - Active
                - Blocked
                - Invalid
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: v1
kind: ServiceAccount
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-bke
  name: bke-controller-manager
  namespace: cluster-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-bke
  name: bke-leader-election-role
  namespace: cluster-system
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  creationTimestamp: null
  labels:
    cluster.x-k8s.io/provider: infrastructure-bke
  name: bke-manager-role
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  - events
  - namespaces
  - secrets
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - bke.bocloud.com
  resources:
  - '*'
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - bkeagent.bocloud.com
  resources:
  - commands
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - config.openfuyao.com
  resources:
  - upgradepaths
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - config.openfuyao.com
  resources:
  - upgradepaths/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - bootstrap.cluster.x-k8s.io
  - cluster.x-k8s.io
  - controlplane.cluster.x-k8s.io
  resources:
  - '*'
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-bke
  name: bke-leader-election-rolebinding
  namespace: cluster-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: bke-leader-election-role
subjects:
- kind: ServiceAccount
  name: bke-controller-manager
  namespace: cluster-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-bke
  name: bke-cluster-api-rolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: bke-manager-role
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: system:serviceaccounts:cluster-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-bke
  name: bke-manager-rolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: bke-manager-role
subjects:
- kind: ServiceAccount
  name: bke-controller-manager
  namespace: cluster-system
---
apiVersion: v1
kind: Service
metadata:
  labels:
    app.kubernetes.io/component: webhook
    app.kubernetes.io/created-by: cluster-api-provider-bke
    app.kubernetes.io/instance: webhook-service
    app.kubernetes.io/managed-by: kustomize
    app.kubernetes.io/name: service
    app.kubernetes.io/part-of: cluster-api-provider-bke
    cluster.x-k8s.io/provider: infrastructure-bke
  name: bke-webhook-service
  namespace: cluster-system
spec:
  ports:
  - port: 443
    protocol: TCP
    targetPort: 9443
  selector:
    cluster.x-k8s.io/provider: infrastructure-bke
    control-plane: controller-manager
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    cluster.x-k8s.io/provider: infrastructure-bke
    control-plane: controller-manager
  name: bke-controller-manager
  namespace: cluster-system
spec:
  replicas: 1
  selector:
    matchLabels:
      cluster.x-k8s.io/provider: infrastructure-bke
      control-plane: controller-manager
  template:
    metadata:
      annotations:
        kubectl.kubernetes.io/default-container: manager
      labels:
        cluster.x-k8s.io/provider: infrastructure-bke
        control-plane: controller-manager
    spec:
      initContainers:
        - name: manifests
          image: deploy.bocloud.k8s:443/kubernetes/addons:latest
          imagePullPolicy: Always
          command:
            - /bin/sh
            - -c
            - cp -r . /manifests
          volumeMounts:
            - mountPath: /manifests
              name: manifests
      containers:
      - command:
        - /manager
        env:
        - name: container
          value: "true"
        - name: DEBUG
          value: "true"
        image: deploy.bocloud.k8s:443/kubernetes/bke-controller:v1.0.0
        imagePullPolicy: Always
        livenessProbe:
          httpGet:
            path: /healthz
            port: 8081
          initialDelaySeconds: 15
          periodSeconds: 20
        name: manager
        ports:
        - containerPort: 9443
          name: webhook-server
          protocol: TCP
        readinessProbe:
          httpGet:
            path: /readyz
            port: 8081
          initialDelaySeconds: 5
          periodSeconds: 10
        resources:
          limits:
            cpu: 500m
            memory: 500Mi
          requests:
            cpu: 100m
            memory: 100Mi
        securityContext:
          allowPrivilegeEscalation: true
        volumeMounts:
        - mountPath: /tmp/k8s-webhook-server/serving-certs
          name: cert
          readOnly: true
        - mountPath: /var/log
          name: log
        - mountPath: /etc/localtime
          name: localtime
        - mountPath: /manifests
          name: manifests
        - mountPath: /var/lib/bke/release-cache
          name: release-cache
      securityContext:
        runAsNonRoot: false
      serviceAccountName: bke-controller-manager
      terminationGracePeriodSeconds: 10
      volumes:
      - name: cert
        secret:
          defaultMode: 420
          secretName: bke-webhook-secret
      - hostPath:
          path: /var/log
          type: Directory
        name: log
      - hostPath:
          path: /etc/localtime
        name: localtime
      - hostPath:
          path: /var/lib/bke/release-cache
          type: DirectoryOrCreate
        name: release-cache
      - emptyDir: {}
        name: manifests
---
apiVersion: admissionregistration.k8s.io/v1
kind: MutatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from: cluster-system/bke-serving-cert
  labels:
    app.kubernetes.io/component: webhook
    app.kubernetes.io/created-by: cluster-api-provider-bke
    app.kubernetes.io/instance: mutating-webhook-configuration
    app.kubernetes.io/managed-by: kustomize
    app.kubernetes.io/name: mutatingwebhookconfiguration
    app.kubernetes.io/part-of: cluster-api-provider-bke
    cluster.x-k8s.io/provider: infrastructure-bke
  name: bke-mutating-webhook-configuration
webhooks:
- admissionReviewVersions:
  - v1
  clientConfig:
    #    service:
    #      name: bke-webhook-service
    #      namespace: cluster-system
    #      path: /
    url: https://172.28.8.66:9443/mutate-bke-bocloud-com-v1beta1-bkecluster
    caBundle: Cg==
  failurePolicy: Fail
  name: mbkecluster.kb.io
  rules:
  - apiGroups:
    - bke.bocloud.com
    apiVersions:
    - v1beta1
    operations:
    - CREATE
    - UPDATE
    resources:
    - bkeclusters
  sideEffects: None
---
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingWebhookConfiguration
metadata:
  annotations:
    cert-manager.io/inject-ca-from: cluster-system/bke-serving-cert
  labels:
    app.kubernetes.io/component: webhook
    app.kubernetes.io/created-by: cluster-api-provider-bke
    app.kubernetes.io/instance: validating-webhook-configuration
    app.kubernetes.io/managed-by: kustomize
    app.kubernetes.io/name: validatingwebhookconfiguration
    app.kubernetes.io/part-of: cluster-api-provider-bke
    cluster.x-k8s.io/provider: infrastructure-bke
  name: bke-validating-webhook-configuration
webhooks:
- admissionReviewVersions:
  - v1
  clientConfig:
#    service:
#      name: bke-webhook-service
#      namespace: cluster-system
#      path: /validate-bke-bocloud-com-v1beta1-bkecluster
    url: https://172.28.8.66:9443/validate-bke-bocloud-com-v1beta1-bkecluster
    caBundle: Cg==
  failurePolicy: Fail
  name: vbkecluster.kb.io
  rules:
  - apiGroups:
    - bke.bocloud.com
    apiVersions:
    - v1beta1
    operations:
    - CREATE
    - UPDATE
    resources:
    - bkeclusters
  sideEffects: None
- admissionReviewVersions:
  - v1
  clientConfig:
    service:
      name: bke-webhook-service
      namespace: cluster-system
      path: /validate-config-openfuyao-com-v1alpha1-upgradepath
  failurePolicy: Fail
  name: vupgradepath.kb.io
  rules:
  - apiGroups:
    - config.openfuyao.com
    apiVersions:
    - v1alpha1
    operations:
    - CREATE
    - UPDATE
    - DELETE
    resources:
    - upgradepaths
  sideEffects: None