137 lines
5.0 KiB
YAML
137 lines
5.0 KiB
YAML
---
|
|
apiVersion: apiextensions.k8s.io/v1
|
|
kind: CustomResourceDefinition
|
|
metadata:
|
|
annotations:
|
|
controller-gen.kubebuilder.io/version: v0.19.0
|
|
name: clusterblueprints.rig.appstack.io
|
|
spec:
|
|
group: rig.appstack.io
|
|
names:
|
|
kind: ClusterBlueprint
|
|
listKind: ClusterBlueprintList
|
|
plural: clusterblueprints
|
|
shortNames:
|
|
- cbp
|
|
singular: clusterblueprint
|
|
scope: Namespaced
|
|
versions:
|
|
- additionalPrinterColumns:
|
|
- jsonPath: .status.phase
|
|
name: Phase
|
|
type: string
|
|
- jsonPath: .spec.kubernetesVersion
|
|
name: K8s Version
|
|
type: string
|
|
- jsonPath: .spec.infraBlueprintRef
|
|
name: Infra
|
|
type: string
|
|
name: v1alpha1
|
|
schema:
|
|
openAPIV3Schema:
|
|
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: ClusterBlueprintSpec defines the desired state of ClusterBlueprint
|
|
properties:
|
|
controlPlaneHA:
|
|
description: ControlPlaneHA determines if we provision 3 CP nodes
|
|
(true) or 1 (false).
|
|
type: boolean
|
|
infraBlueprintRef:
|
|
description: |-
|
|
InfraBlueprintRef points to the InfraBlueprint (IBP) that manages
|
|
the quotas and provider details for this cluster.
|
|
type: string
|
|
kubernetesVersion:
|
|
description: KubernetesVersion is the target RKE2/K3s version (e.g.,
|
|
v1.28.0+rke2r1).
|
|
type: string
|
|
workerPools:
|
|
description: WorkerPools is the list of worker node groups to provision.
|
|
items:
|
|
description: |-
|
|
GenericPoolReq defines a request for a set of nodes with specific sizing.
|
|
This is provider-agnostic.
|
|
properties:
|
|
cpuCores:
|
|
description: CpuCores is the number of vCPUs per node.
|
|
minimum: 1
|
|
type: integer
|
|
diskGb:
|
|
description: DiskGB is the root disk size per node in Gigabytes.
|
|
minimum: 10
|
|
type: integer
|
|
memoryGb:
|
|
description: MemoryGB is the amount of RAM per node in Gigabytes.
|
|
minimum: 1
|
|
type: integer
|
|
name:
|
|
description: Name is the identifier for this node pool (e.g.
|
|
"workers-gpu").
|
|
type: string
|
|
quantity:
|
|
description: Quantity is the number of nodes desired.
|
|
minimum: 0
|
|
type: integer
|
|
required:
|
|
- cpuCores
|
|
- diskGb
|
|
- memoryGb
|
|
- name
|
|
- quantity
|
|
type: object
|
|
type: array
|
|
required:
|
|
- infraBlueprintRef
|
|
- kubernetesVersion
|
|
type: object
|
|
status:
|
|
description: ClusterBlueprintStatus defines the observed state of ClusterBlueprint
|
|
properties:
|
|
identity:
|
|
description: Identity tracks the cloud credentials generated for this
|
|
cluster.
|
|
properties:
|
|
secretRef:
|
|
description: SecretRef is the name of the generated secret used
|
|
by this cluster.
|
|
type: string
|
|
serviceAccount:
|
|
description: ServiceAccount is the name of the SA created on the
|
|
provider (if applicable).
|
|
type: string
|
|
type: object
|
|
phase:
|
|
description: Phase can be "Pending", "Provisioning", "Deployed", or
|
|
"Failed"
|
|
type: string
|
|
ready:
|
|
description: Ready indicates if the Helm Chart has been successfully
|
|
applied.
|
|
type: boolean
|
|
required:
|
|
- ready
|
|
type: object
|
|
type: object
|
|
served: true
|
|
storage: true
|
|
subresources:
|
|
status: {}
|