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:
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:
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