airshipctl/manifests/function/airshipctl-schemas/airshipit.org_clustermaps.yaml
Matthew Fuller 52c5aedc63 Generate additional CRDs from API types
'make manifests' attempts to generate all airshipctl API types,
but several types throw errors and the resulting CRDs can't be
properly generated. This change:

- updates the controller-gen version to pull in a bug fix for the
  error 'map values must be a named type, not *ast.StarExpr'
- modifies the Templater type's Values member to be of type JSON
  since controller-gen does not support map[string]interface{},
  and unmarshals it separately in the templater itself
- adds 'image_repositories' to the VersionsCatalogueSpec struct
  to ensure it doesn't get deleted from the schema when manifests
  get regenerated
- checks in generated copies of all CRDs from airshipctl's API
  types, not just catalogues, to be used for validation

Closes: #574
Change-Id: I89a12cfd307a08da9aaec9773eac01169ea43ace
2021-06-25 19:10:25 +00:00

103 lines
4.0 KiB
YAML

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.6.1
creationTimestamp: null
name: clustermaps.airshipit.org
spec:
group: airshipit.org
names:
kind: ClusterMap
listKind: ClusterMapList
plural: clustermaps
singular: clustermap
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: ClusterMap represents cluster defined for this manifest
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
map:
additionalProperties:
description: Cluster uniquely identifies a cluster and its parent cluster
properties:
kubeconfigSources:
description: KubeconfigContext is the context in kubeconfig, default
is equals to clusterMap key
items:
description: KubeconfigSource describes source of the kubeconfig
properties:
bundle:
description: KubeconfigSourceBundle get kubeconfig from bundle
properties:
contextName:
type: string
type: object
clusterAPI:
description: KubeconfigSourceClusterAPI get kubeconfig from
clusterAPI parent cluster
properties:
clusterNamespacedName:
description: NamespacedName is a name combined with namespace
to uniquely identify objects
properties:
name:
type: string
namespace:
type: string
type: object
timeout:
type: string
type: object
filesystem:
description: KubeconfigSourceFilesystem get kubeconfig from
filesystem path
properties:
contextName:
type: string
path:
type: string
type: object
type:
description: KubeconfigSourceType type of source
type: string
required:
- type
type: object
type: array
parent:
description: Parent is a key in ClusterMap.Map that identifies the
name of the parent(management) cluster
type: string
required:
- kubeconfigSources
type: object
description: Keys in this map MUST correspond to context names in kubeconfigs
provided
type: object
metadata:
type: object
type: object
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []