airshipctl/manifests/function/airshipctl-schemas/airshipit.org_replacementtransformers.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

159 lines
6.7 KiB
YAML

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.6.1
creationTimestamp: null
name: replacementtransformers.airshipit.org
spec:
group: airshipit.org
names:
kind: ReplacementTransformer
listKind: ReplacementTransformerList
plural: replacementtransformers
singular: replacementtransformer
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: ReplacementTransformer plugin configuration for airship document
model
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
replacements:
description: Replacements list of source and target field to do a replacement
items:
description: Replacement defines how to perform a substitution where
it is from and where it is to.
properties:
source:
description: ReplSource defines where a substitution is from It
can from two different kinds of sources - from a field of one
resource - from a string
properties:
fieldref:
type: string
objref:
description: Target refers to a kubernetes object by Group,
Version, Kind and Name gvk.Gvk contains Group, Version and
Kind APIVersion is added to keep the backward compatibility
of using ObjectReference for Var.ObjRef
properties:
apiVersion:
type: string
group:
type: string
kind:
type: string
name:
type: string
namespace:
type: string
version:
type: string
required:
- name
type: object
value:
type: string
type: object
target:
description: ReplTarget defines where a substitution is to.
properties:
fieldrefs:
items:
type: string
type: array
objref:
description: Selector specifies a set of resources. Any resource
that matches intersection of all conditions is included in
this set.
properties:
annotationSelector:
description: AnnotationSelector is a string that follows
the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
It matches with the resource annotations.
type: string
group:
type: string
kind:
type: string
labelSelector:
description: LabelSelector is a string that follows the
label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
It matches with the resource labels.
type: string
name:
type: string
namespace:
type: string
version:
type: string
type: object
type: object
targets:
items:
description: ReplTarget defines where a substitution is to.
properties:
fieldrefs:
items:
type: string
type: array
objref:
description: Selector specifies a set of resources. Any resource
that matches intersection of all conditions is included
in this set.
properties:
annotationSelector:
description: AnnotationSelector is a string that follows
the label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
It matches with the resource annotations.
type: string
group:
type: string
kind:
type: string
labelSelector:
description: LabelSelector is a string that follows the
label selection expression https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#api
It matches with the resource labels.
type: string
name:
type: string
namespace:
type: string
version:
type: string
type: object
type: object
type: array
required:
- source
- target
- targets
type: object
type: array
type: object
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []