Skip to content

Instantly share code, notes, and snippets.

@vfarcic
Created July 22, 2021 11:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vfarcic/1167e69152d38291b1827c730d573d65 to your computer and use it in GitHub Desktop.
Save vfarcic/1167e69152d38291b1827c730d573d65 to your computer and use it in GitHub Desktop.
apiVersion: apiextensions.crossplane.io/v1
kind: CompositeResourceDefinition
metadata:
name: compositeclusters.devopstoolkitseries.com
annotations:
upbound.io/ui-schema: |-
---
configSections:
- title: Cluster Info
description: Information about this cluster
items:
- name: id
controlType: singleInput
type: string
path: ".spec.id"
title: Cluster ID
description: Cluster ID that other objects will use to refer to this cluster
validation:
- required: true
customError: Cluster ID is required.
- title: Cluster Nodes
description: Enter information to size your cluster
items:
- name: version
controlType: singleInput
type: string
path: ".spec.parameters.version"
title: Kubernetes version
description: One of the versions supported by the vendor
- required: false
- name: nodeSize
controlType: singleSelect
path: ".spec.parameters.nodeSize"
title: Node Size
description: Can be small, medium, or large. The specific size is determined by the vendor.
enum:
- small
- medium
- large
validation:
- required: true
customError: Node size is required.
- name: minNodeCount
controlType: singleInput
type: integer
path: ".spec.parameters.minNodeCount"
title: Minimum Node Count
description: The minimum number of nodes. The number of the nodes might be bigger due to cluster autoscaler.
default: 1
validation:
- minimum: 1
- maximum: 10
- required: false
spec:
connectionSecretKeys:
- kubeconfig
defaultCompositionRef:
name: cluster-google
group: devopstoolkitseries.com
names:
kind: CompositeCluster
plural: compositeclusters
claimNames:
kind: ClusterClaim
plural: clusterclaims
versions:
- name: v1alpha1
served: true
referenceable: true
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
id:
type: string
description: ID of this Cluster that other objects will use to refer to it.
parameters:
type: object
properties:
version:
description: The Kubernetes version for the cluster.
type: string
nodeSize:
description: The size of the nodes; small, medium, large
type: string
minNodeCount:
description: The minimum number of nodes
type: integer
default: 1
required:
- nodeSize
required:
- id
- parameters
status:
type: object
properties:
clusterName:
description: The name of the cluster
type: string
controlPlaneStatus:
description: The status of the control plane
type: string
nodePoolStatus:
description: The status of the node pool
type: string
additionalPrinterColumns:
- name: clusterName
type: string
jsonPath: ".status.clusterName"
- name: controlPlane
type: string
jsonPath: ".status.controlPlaneStatus"
- name: nodePool
type: string
jsonPath: ".status.nodePoolStatus"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment