Drop initial code
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.19.0
|
||||
name: clusters.k8sprovisioner.appstack.io
|
||||
spec:
|
||||
group: k8sprovisioner.appstack.io
|
||||
names:
|
||||
kind: Cluster
|
||||
listKind: ClusterList
|
||||
plural: clusters
|
||||
singular: cluster
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- 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:
|
||||
properties:
|
||||
controlPlaneHA:
|
||||
type: boolean
|
||||
infraRef:
|
||||
type: string
|
||||
kubernetesVersion:
|
||||
type: string
|
||||
workerPools:
|
||||
items:
|
||||
properties:
|
||||
cpuCores:
|
||||
type: integer
|
||||
diskGb:
|
||||
type: integer
|
||||
memoryGb:
|
||||
type: integer
|
||||
name:
|
||||
type: string
|
||||
quantity:
|
||||
type: integer
|
||||
required:
|
||||
- cpuCores
|
||||
- diskGb
|
||||
- memoryGb
|
||||
- name
|
||||
- quantity
|
||||
type: object
|
||||
type: array
|
||||
required:
|
||||
- controlPlaneHA
|
||||
- infraRef
|
||||
- kubernetesVersion
|
||||
- workerPools
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
generatedAccount:
|
||||
description: '[NEW] Struct to track the Harvester Identity'
|
||||
properties:
|
||||
secretRef:
|
||||
description: The Secret created in this namespace (e.g. "harvesterconfig-test-cluster-01")
|
||||
type: string
|
||||
serviceAccountName:
|
||||
description: The ServiceAccount created on Harvester (e.g. "prov-test-cluster-01")
|
||||
type: string
|
||||
tokenExpiresAt:
|
||||
description: Expiry for future rotation logic
|
||||
format: date-time
|
||||
type: string
|
||||
type: object
|
||||
ready:
|
||||
type: boolean
|
||||
required:
|
||||
- ready
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
@@ -0,0 +1,84 @@
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
annotations:
|
||||
controller-gen.kubebuilder.io/version: v0.19.0
|
||||
name: infras.k8sprovisioner.appstack.io
|
||||
spec:
|
||||
group: k8sprovisioner.appstack.io
|
||||
names:
|
||||
kind: Infra
|
||||
listKind: InfraList
|
||||
plural: infras
|
||||
singular: infra
|
||||
scope: Namespaced
|
||||
versions:
|
||||
- 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:
|
||||
properties:
|
||||
cloudCredentialSecret:
|
||||
description: |-
|
||||
1. Rancher/Cloud Settings
|
||||
The "Master" credential name in cattle-global-data
|
||||
type: string
|
||||
harvesterUrl:
|
||||
description: This removes the need for auto-discovery.
|
||||
type: string
|
||||
imageName:
|
||||
type: string
|
||||
networkName:
|
||||
type: string
|
||||
rancherUrl:
|
||||
type: string
|
||||
rke2ConfigYaml:
|
||||
description: 3. Governance Configs
|
||||
type: string
|
||||
sshUser:
|
||||
type: string
|
||||
userData:
|
||||
type: string
|
||||
vmNamespace:
|
||||
description: 2. Environment Defaults
|
||||
type: string
|
||||
required:
|
||||
- cloudCredentialSecret
|
||||
- harvesterUrl
|
||||
- imageName
|
||||
- networkName
|
||||
- rancherUrl
|
||||
- sshUser
|
||||
- vmNamespace
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
ready:
|
||||
type: boolean
|
||||
required:
|
||||
- ready
|
||||
type: object
|
||||
type: object
|
||||
served: true
|
||||
storage: true
|
||||
subresources:
|
||||
status: {}
|
||||
17
deploy/k8s-provisioner/config/crd/kustomization.yaml
Normal file
17
deploy/k8s-provisioner/config/crd/kustomization.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
# This kustomization.yaml is not intended to be run by itself,
|
||||
# since it depends on service name and namespace that are out of this kustomize package.
|
||||
# It should be run by config/default
|
||||
resources:
|
||||
- bases/k8sprovisioner.appstack.io_infras.yaml
|
||||
- bases/k8sprovisioner.appstack.io_clusters.yaml
|
||||
# +kubebuilder:scaffold:crdkustomizeresource
|
||||
|
||||
patches:
|
||||
# [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix.
|
||||
# patches here are for enabling the conversion webhook for each CRD
|
||||
# +kubebuilder:scaffold:crdkustomizewebhookpatch
|
||||
|
||||
# [WEBHOOK] To enable webhook, uncomment the following section
|
||||
# the following config is for teaching kustomize how to do kustomization for CRDs.
|
||||
#configurations:
|
||||
#- kustomizeconfig.yaml
|
||||
19
deploy/k8s-provisioner/config/crd/kustomizeconfig.yaml
Normal file
19
deploy/k8s-provisioner/config/crd/kustomizeconfig.yaml
Normal file
@@ -0,0 +1,19 @@
|
||||
# This file is for teaching kustomize how to substitute name and namespace reference in CRD
|
||||
nameReference:
|
||||
- kind: Service
|
||||
version: v1
|
||||
fieldSpecs:
|
||||
- kind: CustomResourceDefinition
|
||||
version: v1
|
||||
group: apiextensions.k8s.io
|
||||
path: spec/conversion/webhook/clientConfig/service/name
|
||||
|
||||
namespace:
|
||||
- kind: CustomResourceDefinition
|
||||
version: v1
|
||||
group: apiextensions.k8s.io
|
||||
path: spec/conversion/webhook/clientConfig/service/namespace
|
||||
create: false
|
||||
|
||||
varReference:
|
||||
- path: metadata/annotations
|
||||
Reference in New Issue
Block a user