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.19.0
name: clusterversions.config.openfuyao.com
spec:
group: config.openfuyao.com
names:
kind: ClusterVersion
listKind: ClusterVersionList
plural: clusterversions
shortNames:
- cv
singular: clusterversion
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.desiredVersion
name: Desired
type: string
- jsonPath: .status.currentVersion
name: Current
type: string
- jsonPath: .status.phase
name: Phase
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: ClusterVersion tracks desired and current openFuyao cluster version.
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
description: ClusterVersionSpec defines the desired cluster version state.
properties:
desiredVersion:
description: DesiredVersion is the target openFuyao version for the cluster.
type: string
type: object
status:
description: ClusterVersionStatus defines the observed cluster version state.
properties:
conditions:
items:
description: ClusterVersionCondition reports fine-grained readiness.
properties:
lastTransitionTime:
format: date-time
type: string
message:
type: string
reason:
type: string
status:
type: string
type:
type: string
type: object
type: array
currentVersion:
type: string
phase:
description: ClusterVersionPhase is the lifecycle phase of a ClusterVersion.
enum:
- Pending
- Installing
- Installed
- Ready
- PreChecking
- Upgrading
- Upgraded
- Blocked
- PreCheckFailed
- Failed
type: string
upgradeHistory:
items:
description: ClusterUpgradeRecord records one upgrade attempt.
properties:
completedAt:
format: date-time
type: string
from:
type: string
startedAt:
format: date-time
type: string
status:
description: ClusterUpgradeRecordStatus is the result of an upgrade record.
enum:
- Succeeded
- Failed
- RolledBack
type: string
to:
type: string
type: object
type: array
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
name: componentversions.config.openfuyao.com
spec:
group: config.openfuyao.com
names:
kind: ComponentVersion
listKind: ComponentVersionList
plural: componentversions
singular: componentversion
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: ComponentVersion is the Schema for the componentversions 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: ComponentVersionSpec defines the desired state of ComponentVersion
properties:
compatibility:
description: CompatibilitySpec defines compatibility constraints
properties:
constraints:
items:
description: Constraint defines a single compatibility constraint
properties:
component:
type: string
rule:
type: string
required:
- component
- rule
type: object
type: array
type: object
dependencies:
items:
description: Dependency defines a dependency on another component
properties:
name:
type: string
phase:
type: string
required:
- name
type: object
type: array
inline:
description: InlineSpec defines the inline handler configuration
properties:
handler:
type: string
version:
type: string
required:
- handler
- version
type: object
name:
type: string
resources:
items:
description: ResourceSpec defines a Kubernetes resource to be applied
properties:
apiVersion:
type: string
data:
additionalProperties:
type: string
type: object
kind:
type: string
labels:
additionalProperties:
type: string
type: object
manifest:
type: string
name:
type: string
namespace:
type: string
stringData:
additionalProperties:
type: string
type: object
required:
- apiVersion
- kind
- name
type: object
type: array
subComponents:
items:
description: SubComponent defines a sub-component reference
properties:
name:
type: string
version:
type: string
required:
- name
- version
type: object
type: array
type:
description: ComponentType defines the type of component installation
type: string
upgradeStrategy:
description: UpgradeStrategySpec defines the upgrade strategy for
the component
properties:
batchSize:
type: integer
failurePolicy:
type: string
mode:
type: string
timeout:
type: string
type: object
version:
type: string
required:
- name
- type
- version
type: object
status:
description: ComponentVersionStatus defines the observed state of ComponentVersion
properties:
conditions:
items:
description: Condition contains details for one aspect of the current
state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the 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: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
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
phase:
type: string
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
name: releaseimages.config.openfuyao.com
spec:
group: config.openfuyao.com
names:
kind: ReleaseImage
listKind: ReleaseImageList
plural: releaseimages
shortNames:
- ri
singular: releaseimage
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.version
name: Version
type: string
- jsonPath: .status.phase
name: Phase
type: string
name: v1alpha1
schema:
openAPIV3Schema:
description: ReleaseImage describes an OCI release image and its install/upgrade
component manifests.
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: ReleaseImageSpec defines the desired release image state.
properties:
allowCacheFallback:
type: boolean
digest:
type: string
install:
description: ReleaseImageInstallSpec lists components to install from
the release image.
properties:
components:
items:
description: ReleaseImageInstallComponent is one installable
component.
properties:
name:
type: string
version:
type: string
type: object
type: array
type: object
signatureKey:
type: string
upgrade:
description: ReleaseImageUpgradeSpec lists components and upgrade
handlers for a release.
properties:
components:
items:
description: ReleaseImageUpgradeComponent is one upgradable
component, optionally with an inline handler.
properties:
inline:
description: ReleaseImageUpgradeInline references an inline
upgrade handler implementation.
properties:
handler:
type: string
version:
type: string
type: object
name:
type: string
version:
type: string
type: object
type: array
type: object
verifySignature:
type: boolean
version:
type: string
type: object
status:
description: ReleaseImageStatus defines the observed release image state.
properties:
cacheFallback:
type: boolean
compatibilityReport:
type: string
componentCount:
type: integer
digest:
type: string
message:
type: string
phase:
description: ReleaseImagePhase is the validation/lifecycle phase of
a ReleaseImage.
enum:
- Valid
- Invalid
- ManifestMissing
- CompatibilityFailed
type: string
source:
type: string
validatedAt:
format: date-time
type: string
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
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:
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: 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:
description: |-
lastTransitionTime is the 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: |-
message is a human readable message indicating details about the transition.
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: type of condition in CamelCase or in foo.example.com/CamelCase.
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: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.19.0
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:
KubeletConfigRef:
description: KubeletConfigRef references a KubeletConfig to use for
kubelet configuration
properties:
name:
type: string
namespace:
type: string
type: object
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
namespace:
description: |-
Namespace defines the namespace of the chart
If empty, use the default configuration of chart
type: string
param:
additionalProperties:
type: string
type: object
releaseName:
description: |-
ReleaseName defines the release name of the chart
If empty, defaults to the product name
type: string
timeout:
description: |-
Timeout defines the timeout for the Product to be deployed\removed\upgraded successfully
If empty, defaults to 300 seconds
type: integer
type:
description: |-
Type defines the product type, such as "chart", "yaml"
If empty, defaults to "yaml"
enum:
- yaml
- chart
type: string
valuesConfigMapRef:
description: |-
ValuesConfigMapRef references a ConfigMap containing the values.yaml for the chart
If empty, use the default configuration of chart
properties:
name:
description: Name of the ValuesConfigMapRef resource
type: string
namespace:
description: |-
Namespace of the ValuesConfigMapRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
valuesKey:
description: |-
ValuesKey is the key name that stores the values.yaml in the ConfigMap
If empty, defaults to "values.yaml"
type: string
required:
- name
type: object
version:
type: string
required:
- name
type: object
type: array
cluster:
description: Cluster defines the configuration of the target cluster
properties:
agentHealthPort:
description: AgentHealthPort defines the agent health port
type: string
apiServer:
description: APIServer contains additional settings for the
API server component
properties:
certSANs:
description: CertSANs sets extra Subject Alternative Names
for the API Server signing certificate
items:
type: string
type: array
extraArgs:
additionalProperties:
type: string
description: ExtraArgs specifies additional command line
flags to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional host volumes
to mount to the control plane component
items:
description: HostPathMount describes volumes that are
mounted from the host into pods
properties:
hostPath:
description: HostPath specifies the path on the
host that will be mounted into the pod
type: string
mountPath:
description: MountPath specifies the path inside
the pod where the hostPath will be mounted
type: string
name:
description: Name specifies the name of the volume
within the pod template
type: string
pathType:
description: PathType specifies the type of the
HostPath
type: string
readOnly:
description: ReadOnly specifies whether the volume
should be mounted as read-only
type: boolean
type: object
type: array
host:
description: Host sets the Host for the API server to
advertise.
type: string
port:
description: Port sets the secure port for the API Server
to bind to. Defaults to 6443.
format: int32
type: integer
type: object
certificatesDir:
description: CertificatesDir defines the directory path for
storing or locating all required certificates.
type: string
chartRepo:
description: ChartRepo defines the global chart repository
of the deployment target cluster
properties:
authSecretRef:
description: AuthSecretRef defines the secret name, namespace
and other information for authentication
properties:
name:
description: Name of the AuthSecretRef resource
type: string
namespace:
description: |-
Namespace of the AuthSecretRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
passwordKey:
description: |-
PasswordKey is the key name that stores the password in the secret
If empty, defaults to "password"
type: string
usernameKey:
description: |-
UsernameKey is the key name that stores the username in the secret
If empty, defaults to "username"
type: string
required:
- name
type: object
domain:
description: Domain defines the Repo domain name
type: string
insecureSkipTLSVerify:
description: |-
InsecureSkipTLSVerify defines whether to skip TLS verification when connecting to the repo
If empty, defaults to false
type: boolean
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
tlsSecretRef:
description: TlsSecretRef defines the secret name, namespace
and other information for TLS certificates
properties:
caKey:
description: |-
CaKey is the key name that stores the ca.crt in the secret
If empty, defaults to "ca.crt"
type: string
certKey:
description: |-
CertKey is the key name that stores the cert.crt in the secret
If empty, defaults to "cert.crt"
type: string
keyKey:
description: |-
KeyKey is the key name that stores the key.key in the secret
If empty, defaults to "key.key"
type: string
name:
description: Name of the TlsSecretRef resource
type: string
namespace:
description: |-
Namespace of the TlsSecretRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
required:
- name
type: object
type: object
containerRuntime:
description: ContainerRuntime defines the container runtime
of the target cluster
properties:
cri:
description: CRI 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
containerdConfigRef:
description: |-
ContainerdConfigRef references a ContainerdConfig custom resource for advanced containerd configuration
If specified, this will override the default containerd configuration
properties:
name:
description: Name of the ContainerdConfig resource
type: string
namespace:
description: |-
Namespace of the ContainerdConfig resource
If empty, defaults to the same namespace as the Cluster resource
type: string
required:
- name
type: object
containerdVersion:
type: string
controllerManager:
description: ControllerManager contains additional settings
for the controller manager component
properties:
extraArgs:
additionalProperties:
type: string
description: ExtraArgs specifies additional command line
flags to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional host volumes
to mount to the control plane component
items:
description: HostPathMount describes volumes that are
mounted from the host into pods
properties:
hostPath:
description: HostPath specifies the path on the
host that will be mounted into the pod
type: string
mountPath:
description: MountPath specifies the path inside
the pod where the hostPath will be mounted
type: string
name:
description: Name specifies the name of the volume
within the pod template
type: string
pathType:
description: PathType specifies the type of the
HostPath
type: string
readOnly:
description: ReadOnly specifies whether the volume
should be mounted as read-only
type: boolean
type: object
type: array
type: object
etcd:
description: Etcd contains configuration for etcd
properties:
dataDir:
description: |-
DataDir specifies the directory path where etcd will store its data.
If not specified, defaults to "/var/lib/openFuyao/etcd".
type: string
extraArgs:
additionalProperties:
type: string
description: ExtraArgs specifies additional command line
flags to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional host volumes
to mount to the control plane component
items:
description: HostPathMount describes volumes that are
mounted from the host into pods
properties:
hostPath:
description: HostPath specifies the path on the
host that will be mounted into the pod
type: string
mountPath:
description: MountPath specifies the path inside
the pod where the hostPath will be mounted
type: string
name:
description: Name specifies the name of the volume
within the pod template
type: string
pathType:
description: PathType specifies the type of the
HostPath
type: string
readOnly:
description: ReadOnly specifies whether the volume
should be mounted as read-only
type: boolean
type: object
type: array
peerCertSANs:
description: PeerCertSANs defines additional Subject Alternative
Names (SANs) for the etcd peer-to-peer communication
certificate.
items:
type: string
type: array
serverCertSANs:
description: ServerCertSANs defines additional Subject
Alternative Names (SANs) for the etcd server certificate.
items:
type: string
type: array
type: object
etcdVersion:
description: EtcdVersion defines the Etcd version of the target
cluster
type: string
httpRepo:
description: |-
HTTPRepo defines the HTTP repository to use when deploying
rpm / deb / http server
properties:
authSecretRef:
description: AuthSecretRef defines the secret name, namespace
and other information for authentication
properties:
name:
description: Name of the AuthSecretRef resource
type: string
namespace:
description: |-
Namespace of the AuthSecretRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
passwordKey:
description: |-
PasswordKey is the key name that stores the password in the secret
If empty, defaults to "password"
type: string
usernameKey:
description: |-
UsernameKey is the key name that stores the username in the secret
If empty, defaults to "username"
type: string
required:
- name
type: object
domain:
description: Domain defines the Repo domain name
type: string
insecureSkipTLSVerify:
description: |-
InsecureSkipTLSVerify defines whether to skip TLS verification when connecting to the repo
If empty, defaults to false
type: boolean
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
tlsSecretRef:
description: TlsSecretRef defines the secret name, namespace
and other information for TLS certificates
properties:
caKey:
description: |-
CaKey is the key name that stores the ca.crt in the secret
If empty, defaults to "ca.crt"
type: string
certKey:
description: |-
CertKey is the key name that stores the cert.crt in the secret
If empty, defaults to "cert.crt"
type: string
keyKey:
description: |-
KeyKey is the key name that stores the key.key in the secret
If empty, defaults to "key.key"
type: string
name:
description: Name of the TlsSecretRef resource
type: string
namespace:
description: |-
Namespace of the TlsSecretRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
required:
- name
type: object
type: object
imageRepo:
description: ImageRepo defines the global image repository
of the deployment target cluster
properties:
authSecretRef:
description: AuthSecretRef defines the secret name, namespace
and other information for authentication
properties:
name:
description: Name of the AuthSecretRef resource
type: string
namespace:
description: |-
Namespace of the AuthSecretRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
passwordKey:
description: |-
PasswordKey is the key name that stores the password in the secret
If empty, defaults to "password"
type: string
usernameKey:
description: |-
UsernameKey is the key name that stores the username in the secret
If empty, defaults to "username"
type: string
required:
- name
type: object
domain:
description: Domain defines the Repo domain name
type: string
insecureSkipTLSVerify:
description: |-
InsecureSkipTLSVerify defines whether to skip TLS verification when connecting to the repo
If empty, defaults to false
type: boolean
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
tlsSecretRef:
description: TlsSecretRef defines the secret name, namespace
and other information for TLS certificates
properties:
caKey:
description: |-
CaKey is the key name that stores the ca.crt in the secret
If empty, defaults to "ca.crt"
type: string
certKey:
description: |-
CertKey is the key name that stores the cert.crt in the secret
If empty, defaults to "cert.crt"
type: string
keyKey:
description: |-
KeyKey is the key name that stores the key.key in the secret
If empty, defaults to "key.key"
type: string
name:
description: Name of the TlsSecretRef resource
type: string
namespace:
description: |-
Namespace of the TlsSecretRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
required:
- name
type: object
type: object
kubelet:
description: Kubelet define kubelet configuration for all
nodes in the target cluster
properties:
extraArgs:
additionalProperties:
type: string
description: ExtraArgs specifies additional command line
flags to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional host volumes
to mount to the control plane component
items:
description: HostPathMount describes volumes that are
mounted from the host into pods
properties:
hostPath:
description: HostPath specifies the path on the
host that will be mounted into the pod
type: string
mountPath:
description: MountPath specifies the path inside
the pod where the hostPath will be mounted
type: string
name:
description: Name specifies the name of the volume
within the pod template
type: string
pathType:
description: PathType specifies the type of the
HostPath
type: string
readOnly:
description: ReadOnly specifies whether the volume
should be mounted as read-only
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
labels:
description: Global node labels
items:
description: Label represents a key-value pair used for
setting labels on Kubernetes nodes
properties:
key:
type: string
value:
type: string
type: object
type: array
networking:
description: Networking defines the configuration of target
cluster network
properties:
dnsDomain:
description: |-
DNSDomain specifies the DNS domain suffix for Kubernetes services.
If not specified, defaults to "cluster.local".
type: string
podSubnet:
description: PodSubnet specifies the CIDR block for Pod
IP addresses.
type: string
serviceSubnet:
description: |-
ServiceSubnet specifies the CIDR block for Kubernetes services.
If not specified, 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
openFuyaoVersion:
type: string
scheduler:
description: Scheduler contains additional settings for the
scheduler component
properties:
extraArgs:
additionalProperties:
type: string
description: ExtraArgs specifies additional command line
flags to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional host volumes
to mount to the control plane component
items:
description: HostPathMount describes volumes that are
mounted from the host into pods
properties:
hostPath:
description: HostPath specifies the path on the
host that will be mounted into the pod
type: string
mountPath:
description: MountPath specifies the path inside
the pod where the hostPath will be mounted
type: string
name:
description: Name specifies the name of the volume
within the pod template
type: string
pathType:
description: PathType specifies the type of the
HostPath
type: string
readOnly:
description: ReadOnly specifies whether the volume
should be mounted as read-only
type: boolean
type: object
type: array
type: object
required:
- ntpServer
type: object
customExtra:
additionalProperties:
type: string
description: CustomArgs defines the custom args
type: object
type: object
controlPlaneEndpoint:
description: ControlPlaneEndpoint represents the endpoint used to
communicate with the control plane.
properties:
host:
description: Host sets the Host for the API server to advertise.
type: string
port:
description: Port 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
namespace:
description: |-
Namespace defines the namespace of the chart
If empty, use the default configuration of chart
type: string
param:
additionalProperties:
type: string
type: object
releaseName:
description: |-
ReleaseName defines the release name of the chart
If empty, defaults to the product name
type: string
timeout:
description: |-
Timeout defines the timeout for the Product to be deployed\removed\upgraded successfully
If empty, defaults to 300 seconds
type: integer
type:
description: |-
Type defines the product type, such as "chart", "yaml"
If empty, defaults to "yaml"
enum:
- yaml
- chart
type: string
valuesConfigMapRef:
description: |-
ValuesConfigMapRef references a ConfigMap containing the values.yaml for the chart
If empty, use the default configuration of chart
properties:
name:
description: Name of the ValuesConfigMapRef resource
type: string
namespace:
description: |-
Namespace of the ValuesConfigMapRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
valuesKey:
description: |-
ValuesKey is the key name that stores the values.yaml in the ConfigMap
If empty, defaults to "values.yaml"
type: string
required:
- name
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
containerdVersion:
type: string
declarativeUpgrade:
description: DeclarativeUpgrade holds progress for declarative DAG
upgrades.
properties:
completed:
description: Completed holds component completion records for
this TargetVersion.
items:
properties:
completedAt:
description: CompletedAt is the time the component finished
successfully.
format: date-time
type: string
name:
description: Name is the declarative upgrade component name
(DAG node name).
type: string
version:
description: Version is the component version key used in
the DAG node.
type: string
required:
- completedAt
- name
type: object
type: array
finishedAt:
description: FinishedAt marks when the upgrade plan completed
successfully.
format: date-time
type: string
lastFailure:
description: |-
LastFailure records the last failed component for this TargetVersion, for easier debugging.
It must NOT be used for skip decisions.
properties:
attempt:
description: Attempt is a best-effort counter for consecutive failures of the same component+version.
format: int32
type: integer
error:
description: Error is a short error message for the failure.
type: string
failedAt:
description: FailedAt is the time the component execution failed.
format: date-time
type: string
name:
description: Name is the declarative upgrade component name (DAG node name).
type: string
version:
description: Version is the component version key used in the DAG node.
type: string
required:
- failedAt
- name
type: object
lastError:
description: LastError records the last observed error during
DAG execution for this TargetVersion.
type: string
startedAt:
description: StartedAt marks the first time we initialized progress
for TargetVersion.
format: date-time
type: string
targetVersion:
description: |-
TargetVersion is the desired ClusterVersion for this upgrade execution plan.
When it changes, Completed should be reset.
type: string
type: object
etcdVersion:
type: string
kubernetesVersion:
type: string
openFuyaoVersion:
type: string
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
required:
- name
- status
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.19.0
labels:
cluster.x-k8s.io/provider: infrastructure-bke
cluster.x-k8s.io/v1beta1: v1beta1
name: bkenodes.bke.bocloud.com
spec:
group: bke.bocloud.com
names:
kind: BKENode
listKind: BKENodeList
plural: bkenodes
shortNames:
- bn
singular: bkenode
scope: Namespaced
versions:
- additionalPrinterColumns:
- jsonPath: .spec.ip
name: IP
type: string
- jsonPath: .spec.hostname
name: Hostname
type: string
- jsonPath: .spec.role
name: Role
type: string
- jsonPath: .status.state
name: State
type: string
- jsonPath: .metadata.creationTimestamp
name: Age
type: date
name: v1beta1
schema:
openAPIV3Schema:
description: BKENode is the Schema for the bkenodes 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: BKENodeSpec defines the desired state of BKENode
properties:
apiServer:
description: APIServer contains additional settings for the API server
component
properties:
certSANs:
description: CertSANs sets extra Subject Alternative Names for
the API Server signing certificate
items:
type: string
type: array
extraArgs:
additionalProperties:
type: string
description: ExtraArgs specifies additional command line flags
to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional host volumes to
mount to the control plane component
items:
description: HostPathMount describes volumes that are mounted
from the host into pods
properties:
hostPath:
description: HostPath specifies the path on the host that
will be mounted into the pod
type: string
mountPath:
description: MountPath specifies the path inside the pod
where the hostPath will be mounted
type: string
name:
description: Name specifies the name of the volume within
the pod template
type: string
pathType:
description: PathType specifies the type of the HostPath
type: string
readOnly:
description: ReadOnly specifies whether the volume should
be mounted as read-only
type: boolean
type: object
type: array
host:
description: Host sets the Host for the API server to advertise.
type: string
port:
description: Port sets the secure port for the API Server to bind
to. Defaults to 6443.
format: int32
type: integer
type: object
controllerManager:
description: ControllerManager contains additional settings for the
controller manager component
properties:
extraArgs:
additionalProperties:
type: string
description: ExtraArgs specifies additional command line flags
to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional host volumes to
mount to the control plane component
items:
description: HostPathMount describes volumes that are mounted
from the host into pods
properties:
hostPath:
description: HostPath specifies the path on the host that
will be mounted into the pod
type: string
mountPath:
description: MountPath specifies the path inside the pod
where the hostPath will be mounted
type: string
name:
description: Name specifies the name of the volume within
the pod template
type: string
pathType:
description: PathType specifies the type of the HostPath
type: string
readOnly:
description: ReadOnly specifies whether the volume should
be mounted as read-only
type: boolean
type: object
type: array
type: object
etcd:
description: Etcd contains configuration for etcd
properties:
dataDir:
description: |-
DataDir specifies the directory path where etcd will store its data.
If not specified, defaults to "/var/lib/openFuyao/etcd".
type: string
extraArgs:
additionalProperties:
type: string
description: ExtraArgs specifies additional command line flags
to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional host volumes to
mount to the control plane component
items:
description: HostPathMount describes volumes that are mounted
from the host into pods
properties:
hostPath:
description: HostPath specifies the path on the host that
will be mounted into the pod
type: string
mountPath:
description: MountPath specifies the path inside the pod
where the hostPath will be mounted
type: string
name:
description: Name specifies the name of the volume within
the pod template
type: string
pathType:
description: PathType specifies the type of the HostPath
type: string
readOnly:
description: ReadOnly specifies whether the volume should
be mounted as read-only
type: boolean
type: object
type: array
peerCertSANs:
description: PeerCertSANs defines additional Subject Alternative
Names (SANs) for the etcd peer-to-peer communication certificate.
items:
type: string
type: array
serverCertSANs:
description: ServerCertSANs defines additional Subject Alternative
Names (SANs) for the etcd server certificate.
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 specifies additional command line flags
to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional host volumes to
mount to the control plane component
items:
description: HostPathMount describes volumes that are mounted
from the host into pods
properties:
hostPath:
description: HostPath specifies the path on the host that
will be mounted into the pod
type: string
mountPath:
description: MountPath specifies the path inside the pod
where the hostPath will be mounted
type: string
name:
description: Name specifies the name of the volume within
the pod template
type: string
pathType:
description: PathType specifies the type of the HostPath
type: string
readOnly:
description: ReadOnly specifies whether the volume should
be mounted as read-only
type: boolean
type: object
type: array
manifestsDir:
description: ManifestsDir is the directory where kubelet will
store manifests
type: string
type: object
labels:
description: Labels defines the node labels
items:
description: Label represents a key-value pair used for setting
labels on Kubernetes nodes
properties:
key:
type: string
value:
type: string
type: object
type: array
password:
description: Password node Password used for SSH (encrypted)
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 additional settings for the scheduler
component
properties:
extraArgs:
additionalProperties:
type: string
description: ExtraArgs specifies additional command line flags
to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional host volumes to
mount to the control plane component
items:
description: HostPathMount describes volumes that are mounted
from the host into pods
properties:
hostPath:
description: HostPath specifies the path on the host that
will be mounted into the pod
type: string
mountPath:
description: MountPath specifies the path inside the pod
where the hostPath will be mounted
type: string
name:
description: Name specifies the name of the volume within
the pod template
type: string
pathType:
description: PathType specifies the type of the HostPath
type: string
readOnly:
description: ReadOnly specifies whether the volume should
be mounted as read-only
type: boolean
type: object
type: array
type: object
username:
description: Username node Username used for SSH
type: string
required:
- ip
type: object
status:
description: BKENodeStatus defines the observed state of BKENode
properties:
message:
description: Message is a human-readable message indicating details
about the node state
type: string
needSkip:
description: NeedSkip indicates whether this node should be skipped
during operations
type: boolean
state:
description: State is the current state of the node
type: string
stateCode:
description: StateCode is the bit flag representing the node state
type: integer
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.19.0
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: |-
EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN!
NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
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
namespace:
description: |-
Namespace defines the namespace of the chart
If empty, use the default configuration of chart
type: string
param:
additionalProperties:
type: string
type: object
releaseName:
description: |-
ReleaseName defines the release name of the chart
If empty, defaults to the product name
type: string
timeout:
description: |-
Timeout defines the timeout for the Product to be deployed\removed\upgraded successfully
If empty, defaults to 300 seconds
type: integer
type:
description: |-
Type defines the product type, such as "chart", "yaml"
If empty, defaults to "yaml"
enum:
- yaml
- chart
type: string
valuesConfigMapRef:
description: |-
ValuesConfigMapRef references a ConfigMap containing the values.yaml for the chart
If empty, use the default configuration of chart
properties:
name:
description: Name of the ValuesConfigMapRef
resource
type: string
namespace:
description: |-
Namespace of the ValuesConfigMapRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
valuesKey:
description: |-
ValuesKey is the key name that stores the values.yaml in the ConfigMap
If empty, defaults to "values.yaml"
type: string
required:
- name
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 additional settings
for the API server component
properties:
certSANs:
description: CertSANs sets extra Subject Alternative
Names for the API Server signing certificate
items:
type: string
type: array
extraArgs:
additionalProperties:
type: string
description: ExtraArgs specifies additional command
line flags to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional
host volumes to mount to the control plane component
items:
description: HostPathMount describes volumes
that are mounted from the host into pods
properties:
hostPath:
description: HostPath specifies the path
on the host that will be mounted into
the pod
type: string
mountPath:
description: MountPath specifies the path
inside the pod where the hostPath will
be mounted
type: string
name:
description: Name specifies the name of
the volume within the pod template
type: string
pathType:
description: PathType specifies the type
of the HostPath
type: string
readOnly:
description: ReadOnly specifies whether
the volume should be mounted as read-only
type: boolean
type: object
type: array
host:
description: Host sets the Host for the API server
to advertise.
type: string
port:
description: Port sets the secure port for the
API Server to bind to. Defaults to 6443.
format: int32
type: integer
type: object
certificatesDir:
description: CertificatesDir defines the directory
path for storing or locating all required certificates.
type: string
chartRepo:
description: ChartRepo defines the global chart repository
of the deployment target cluster
properties:
authSecretRef:
description: AuthSecretRef defines the secret
name, namespace and other information for authentication
properties:
name:
description: Name of the AuthSecretRef resource
type: string
namespace:
description: |-
Namespace of the AuthSecretRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
passwordKey:
description: |-
PasswordKey is the key name that stores the password in the secret
If empty, defaults to "password"
type: string
usernameKey:
description: |-
UsernameKey is the key name that stores the username in the secret
If empty, defaults to "username"
type: string
required:
- name
type: object
domain:
description: Domain defines the Repo domain name
type: string
insecureSkipTLSVerify:
description: |-
InsecureSkipTLSVerify defines whether to skip TLS verification when connecting to the repo
If empty, defaults to false
type: boolean
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
tlsSecretRef:
description: TlsSecretRef defines the secret name,
namespace and other information for TLS certificates
properties:
caKey:
description: |-
CaKey is the key name that stores the ca.crt in the secret
If empty, defaults to "ca.crt"
type: string
certKey:
description: |-
CertKey is the key name that stores the cert.crt in the secret
If empty, defaults to "cert.crt"
type: string
keyKey:
description: |-
KeyKey is the key name that stores the key.key in the secret
If empty, defaults to "key.key"
type: string
name:
description: Name of the TlsSecretRef resource
type: string
namespace:
description: |-
Namespace of the TlsSecretRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
required:
- name
type: object
type: object
containerRuntime:
description: ContainerRuntime defines the container
runtime of the target cluster
properties:
cri:
description: CRI 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
containerdConfigRef:
description: |-
ContainerdConfigRef references a ContainerdConfig custom resource for advanced containerd configuration
If specified, this will override the default containerd configuration
properties:
name:
description: Name of the ContainerdConfig resource
type: string
namespace:
description: |-
Namespace of the ContainerdConfig resource
If empty, defaults to the same namespace as the Cluster resource
type: string
required:
- name
type: object
containerdVersion:
type: string
controllerManager:
description: ControllerManager contains additional
settings for the controller manager component
properties:
extraArgs:
additionalProperties:
type: string
description: ExtraArgs specifies additional command
line flags to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional
host volumes to mount to the control plane component
items:
description: HostPathMount describes volumes
that are mounted from the host into pods
properties:
hostPath:
description: HostPath specifies the path
on the host that will be mounted into
the pod
type: string
mountPath:
description: MountPath specifies the path
inside the pod where the hostPath will
be mounted
type: string
name:
description: Name specifies the name of
the volume within the pod template
type: string
pathType:
description: PathType specifies the type
of the HostPath
type: string
readOnly:
description: ReadOnly specifies whether
the volume should be mounted as read-only
type: boolean
type: object
type: array
type: object
etcd:
description: Etcd contains configuration for etcd
properties:
dataDir:
description: |-
DataDir specifies the directory path where etcd will store its data.
If not specified, defaults to "/var/lib/openFuyao/etcd".
type: string
extraArgs:
additionalProperties:
type: string
description: ExtraArgs specifies additional command
line flags to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional
host volumes to mount to the control plane component
items:
description: HostPathMount describes volumes
that are mounted from the host into pods
properties:
hostPath:
description: HostPath specifies the path
on the host that will be mounted into
the pod
type: string
mountPath:
description: MountPath specifies the path
inside the pod where the hostPath will
be mounted
type: string
name:
description: Name specifies the name of
the volume within the pod template
type: string
pathType:
description: PathType specifies the type
of the HostPath
type: string
readOnly:
description: ReadOnly specifies whether
the volume should be mounted as read-only
type: boolean
type: object
type: array
peerCertSANs:
description: PeerCertSANs defines additional Subject
Alternative Names (SANs) for the etcd peer-to-peer
communication certificate.
items:
type: string
type: array
serverCertSANs:
description: ServerCertSANs defines additional
Subject Alternative Names (SANs) for the etcd
server certificate.
items:
type: string
type: array
type: object
etcdVersion:
description: EtcdVersion defines the Etcd version
of the target cluster
type: string
httpRepo:
description: |-
HTTPRepo defines the HTTP repository to use when deploying
rpm / deb / http server
properties:
authSecretRef:
description: AuthSecretRef defines the secret
name, namespace and other information for authentication
properties:
name:
description: Name of the AuthSecretRef resource
type: string
namespace:
description: |-
Namespace of the AuthSecretRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
passwordKey:
description: |-
PasswordKey is the key name that stores the password in the secret
If empty, defaults to "password"
type: string
usernameKey:
description: |-
UsernameKey is the key name that stores the username in the secret
If empty, defaults to "username"
type: string
required:
- name
type: object
domain:
description: Domain defines the Repo domain name
type: string
insecureSkipTLSVerify:
description: |-
InsecureSkipTLSVerify defines whether to skip TLS verification when connecting to the repo
If empty, defaults to false
type: boolean
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
tlsSecretRef:
description: TlsSecretRef defines the secret name,
namespace and other information for TLS certificates
properties:
caKey:
description: |-
CaKey is the key name that stores the ca.crt in the secret
If empty, defaults to "ca.crt"
type: string
certKey:
description: |-
CertKey is the key name that stores the cert.crt in the secret
If empty, defaults to "cert.crt"
type: string
keyKey:
description: |-
KeyKey is the key name that stores the key.key in the secret
If empty, defaults to "key.key"
type: string
name:
description: Name of the TlsSecretRef resource
type: string
namespace:
description: |-
Namespace of the TlsSecretRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
required:
- name
type: object
type: object
imageRepo:
description: ImageRepo defines the global image repository
of the deployment target cluster
properties:
authSecretRef:
description: AuthSecretRef defines the secret
name, namespace and other information for authentication
properties:
name:
description: Name of the AuthSecretRef resource
type: string
namespace:
description: |-
Namespace of the AuthSecretRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
passwordKey:
description: |-
PasswordKey is the key name that stores the password in the secret
If empty, defaults to "password"
type: string
usernameKey:
description: |-
UsernameKey is the key name that stores the username in the secret
If empty, defaults to "username"
type: string
required:
- name
type: object
domain:
description: Domain defines the Repo domain name
type: string
insecureSkipTLSVerify:
description: |-
InsecureSkipTLSVerify defines whether to skip TLS verification when connecting to the repo
If empty, defaults to false
type: boolean
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
tlsSecretRef:
description: TlsSecretRef defines the secret name,
namespace and other information for TLS certificates
properties:
caKey:
description: |-
CaKey is the key name that stores the ca.crt in the secret
If empty, defaults to "ca.crt"
type: string
certKey:
description: |-
CertKey is the key name that stores the cert.crt in the secret
If empty, defaults to "cert.crt"
type: string
keyKey:
description: |-
KeyKey is the key name that stores the key.key in the secret
If empty, defaults to "key.key"
type: string
name:
description: Name of the TlsSecretRef resource
type: string
namespace:
description: |-
Namespace of the TlsSecretRef resource
If empty, defaults to the same namespace as the Cluster resource
type: string
required:
- name
type: object
type: object
kubelet:
description: Kubelet define kubelet configuration
for all nodes in the target cluster
properties:
extraArgs:
additionalProperties:
type: string
description: ExtraArgs specifies additional command
line flags to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional
host volumes to mount to the control plane component
items:
description: HostPathMount describes volumes
that are mounted from the host into pods
properties:
hostPath:
description: HostPath specifies the path
on the host that will be mounted into
the pod
type: string
mountPath:
description: MountPath specifies the path
inside the pod where the hostPath will
be mounted
type: string
name:
description: Name specifies the name of
the volume within the pod template
type: string
pathType:
description: PathType specifies the type
of the HostPath
type: string
readOnly:
description: ReadOnly specifies whether
the volume should be mounted as read-only
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
labels:
description: Global node labels
items:
description: Label represents a key-value pair used
for setting labels on Kubernetes nodes
properties:
key:
type: string
value:
type: string
type: object
type: array
networking:
description: Networking defines the configuration
of target cluster network
properties:
dnsDomain:
description: |-
DNSDomain specifies the DNS domain suffix for Kubernetes services.
If not specified, defaults to "cluster.local".
type: string
podSubnet:
description: PodSubnet specifies the CIDR block
for Pod IP addresses.
type: string
serviceSubnet:
description: |-
ServiceSubnet specifies the CIDR block for Kubernetes services.
If not specified, 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
openFuyaoVersion:
type: string
scheduler:
description: Scheduler contains additional settings
for the scheduler component
properties:
extraArgs:
additionalProperties:
type: string
description: ExtraArgs specifies additional command
line flags to pass to the control plane component
type: object
extraVolumes:
description: ExtraVolumes specifies additional
host volumes to mount to the control plane component
items:
description: HostPathMount describes volumes
that are mounted from the host into pods
properties:
hostPath:
description: HostPath specifies the path
on the host that will be mounted into
the pod
type: string
mountPath:
description: MountPath specifies the path
inside the pod where the hostPath will
be mounted
type: string
name:
description: Name specifies the name of
the volume within the pod template
type: string
pathType:
description: PathType specifies the type
of the HostPath
type: string
readOnly:
description: ReadOnly specifies whether
the volume should be mounted as read-only
type: boolean
type: object
type: array
type: object
required:
- ntpServer
type: object
customExtra:
additionalProperties:
type: string
description: CustomArgs defines the custom args
type: object
type: object
controlPlaneEndpoint:
description: ControlPlaneEndpoint represents the endpoint
used to communicate with the control plane.
properties:
host:
description: Host sets the Host for the API server to
advertise.
type: string
port:
description: Port 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.16.5
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
labels:
description: Node Labels
items:
properties:
key:
type: string
value:
type: string
type: object
type: array
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.16.5
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: 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:
labels:
cluster.x-k8s.io/provider: infrastructure-bke
name: bke-manager-role
rules:
- apiGroups:
- ""
resources:
- configmaps
- events
- namespaces
- secrets
- pods
- pods/status
- services
- replicationcontrollers
- persistentvolumeclaims
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- deletecollection
- apiGroups:
- apps
resources:
- deployments
- deployments/status
- daemonsets
- daemonsets/status
- replicasets
- replicasets/status
- statefulsets
- statefulsets/status
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- batch
resources:
- jobs
- jobs/status
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
- customresourcedefinitions/status
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:
- bootstrap.cluster.x-k8s.io
- cluster.x-k8s.io
- controlplane.cluster.x-k8s.io
resources:
- '*'
verbs:
- create
- delete
- get
- list
- patch
- update
- watch
- apiGroups:
- config.openfuyao.com
resources:
- upgradepaths
- releaseimages
- clusterversions
verbs:
- get
- list
- watch
- create
- update
- patch
- delete
- apiGroups:
- config.openfuyao.com
resources:
- upgradepaths/status
- releaseimages/status
- clusterversions/status
verbs:
- get
- patch
- update
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
- list
- watch
- create
- update
- patch
---
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:
cluster.x-k8s.io/provider: infrastructure-bke
control-plane: controller-manager
name: bke-controller-manager-metrics-service
namespace: cluster-system
spec:
ports:
- name: metrics
port: 8080
protocol: TCP
targetPort: 8080
selector:
cluster.x-k8s.io/provider: infrastructure-bke
control-plane: controller-manager
---
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
prometheus.io/port: "8080"
prometheus.io/scrape: "true"
labels:
cluster.x-k8s.io/provider: infrastructure-bke
control-plane: controller-manager
spec:
dnsConfig:
nameservers:
- 8.8.8.8
- 8.8.4.4
containers:
- command:
- /manager
- --metrics-bind-address=:8080
- --leader-elect=true
- --health-probe-bind-address=:8081
- --health-probe-scheme=http
env:
- name: container
value: "true"
- name: DEBUG
value: "true"
- name: ALLOWED_FAILED_COUNT
value: "3"
image: {{ if .repo }}{{ .repo }}{{ else }}cr.openfuyao.cn/openfuyao/{{ end }}cluster-api-provider-bke:{{.providerVersion}}
imagePullPolicy: Always
livenessProbe:
httpGet:
path: /healthz
port: 8081
scheme: HTTP
initialDelaySeconds: 15
periodSeconds: 20
name: manager
ports:
- containerPort: 9443
name: webhook-server
protocol: TCP
readinessProbe:
httpGet:
path: /readyz
port: 8081
scheme: HTTP
initialDelaySeconds: 5
periodSeconds: 10
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 100m
memory: 200Mi
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
- mountPath: /etc/openFuyao
name: repo-cert
readOnly: true
initContainers:
- command:
- /bin/sh
- -c
- cp -rf . /manifests
image: {{ if .repo }}{{ .repo }}{{ else }}cr.openfuyao.cn/openfuyao/{{ end }}bke-manifests:{{.manifestsVersion}}
imagePullPolicy: Always
name: manifests
volumeMounts:
- mountPath: /manifests
name: manifests
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: /etc/openFuyao
type: DirectoryOrCreate
name: repo-cert
- hostPath:
path: /etc/openFuyao/addons/manifests
type: Directory
name: manifests
- hostPath:
path: /var/lib/bke/release-cache
type: DirectoryOrCreate
name: release-cache
---
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:
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVJ5Z0F3SUJBZ0lSQUxNaVpPME02MFk5U0NpbjdWYlVPV2N3Q2dZSUtvWkl6ajBFQXdJd0R6RU4KTUFzR0ExVUVDaE1FYm1sc01UQWdGdzB5TXpFeU1qWXdNalU0TlRGYUdBOHlNVEl6TVRJd01qQXlOVGcxTVZvdwpEekVOTUFzR0ExVUVDaE1FYm1sc01UQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJMaDdNTFRvCm9LL2pGNXdXdkcrTGphUER6K2pJZG9XQkE0MVp2V3F6eDJ2NkZVb2dmWnRpa2RNNENvM0ZneTJTWEVIa25MWEYKNU9xWUVEQ0JVSHhlLzBPalZ6QlZNQTRHQTFVZER3RUIvd1FFQXdJQ0JEQVRCZ05WSFNVRUREQUtCZ2dyQmdFRgpCUWNEQVRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJTUURGS2dsUWRicWhNTVdGSW94b1BIClI1Q1RSREFLQmdncWhrak9QUVFEQWdOSkFEQkdBaUVBZ1E4L0s5aEdlWjZwNGJZU3A4bE9KQVo2M1dxMHNNLzMKcmh4djAvT1BCdElDSVFDR056czVIbFZ0OVdQbFJ1S0RSVUIxblBGTklVMkUzbncwRFlhbWVsajFGZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
service:
name: bke-webhook-service
namespace: cluster-system
path: /mutate-bke-bocloud-com-v1beta1-bkecluster
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:
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVJ5Z0F3SUJBZ0lSQUxNaVpPME02MFk5U0NpbjdWYlVPV2N3Q2dZSUtvWkl6ajBFQXdJd0R6RU4KTUFzR0ExVUVDaE1FYm1sc01UQWdGdzB5TXpFeU1qWXdNalU0TlRGYUdBOHlNVEl6TVRJd01qQXlOVGcxTVZvdwpEekVOTUFzR0ExVUVDaE1FYm1sc01UQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJMaDdNTFRvCm9LL2pGNXdXdkcrTGphUER6K2pJZG9XQkE0MVp2V3F6eDJ2NkZVb2dmWnRpa2RNNENvM0ZneTJTWEVIa25MWEYKNU9xWUVEQ0JVSHhlLzBPalZ6QlZNQTRHQTFVZER3RUIvd1FFQXdJQ0JEQVRCZ05WSFNVRUREQUtCZ2dyQmdFRgpCUWNEQVRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJTUURGS2dsUWRicWhNTVdGSW94b1BIClI1Q1RSREFLQmdncWhrak9QUVFEQWdOSkFEQkdBaUVBZ1E4L0s5aEdlWjZwNGJZU3A4bE9KQVo2M1dxMHNNLzMKcmh4djAvT1BCdElDSVFDR056czVIbFZ0OVdQbFJ1S0RSVUIxblBGTklVMkUzbncwRFlhbWVsajFGZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
service:
name: bke-webhook-service
namespace: cluster-system
path: /validate-bke-bocloud-com-v1beta1-bkecluster
failurePolicy: Fail
name: vbkecluster.kb.io
rules:
- apiGroups:
- bke.bocloud.com
apiVersions:
- v1beta1
operations:
- CREATE
- UPDATE
resources:
- bkeclusters
sideEffects: None
- admissionReviewVersions:
- v1
clientConfig:
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUJkekNDQVJ5Z0F3SUJBZ0lSQUxNaVpPME02MFk5U0NpbjdWYlVPV2N3Q2dZSUtvWkl6ajBFQXdJd0R6RU4KTUFzR0ExVUVDaE1FYm1sc01UQWdGdzB5TXpFeU1qWXdNalU0TlRGYUdBOHlNVEl6TVRJd01qQXlOVGcxTVZvdwpEekVOTUFzR0ExVUVDaE1FYm1sc01UQlpNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQTBJQUJMaDdNTFRvCm9LL2pGNXdXdkcrTGphUER6K2pJZG9XQkE0MVp2V3F6eDJ2NkZVb2dmWnRpa2RNNENvM0ZneTJTWEVIa25MWEYKNU9xWUVEQ0JVSHhlLzBPalZ6QlZNQTRHQTFVZER3RUIvd1FFQXdJQ0JEQVRCZ05WSFNVRUREQUtCZ2dyQmdFRgpCUWNEQVRBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJTUURGS2dsUWRicWhNTVdGSW94b1BIClI1Q1RSREFLQmdncWhrak9QUVFEQWdOSkFEQkdBaUVBZ1E4L0s5aEdlWjZwNGJZU3A4bE9KQVo2M1dxMHNNLzMKcmh4djAvT1BCdElDSVFDR056czVIbFZ0OVdQbFJ1S0RSVUIxblBGTklVMkUzbncwRFlhbWVsajFGZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
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