api/v1/config/crd/eno.azure.io_symphonies.yaml (181 lines of code) (raw):

--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.17.3 name: symphonies.eno.azure.io spec: group: eno.azure.io names: kind: Symphony listKind: SymphonyList plural: symphonies singular: symphony scope: Namespaced versions: - name: v1 schema: openAPIV3Schema: description: |- Symphony is a set of variations on a composition. Useful for creating several compositions that use a common set of bindings but different synthesizers. This pattern is highly opinionated for use-cases in which a single "unit of management" includes multiple distinct components. For example: deploying many instances of an application that is comprised of several components (Wordpress, etc.). 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: bindings: description: Bindings are inherited by all compositions managed by this symphony. items: description: |- Bindings map a specific Kubernetes resource to a ref exposed by a synthesizer. Compositions use bindings to populate inputs supported by their synthesizer. properties: key: description: Key determines which ref this binding binds to. Opaque. type: string resource: description: A reference to a specific resource name and optionally namespace. properties: name: type: string namespace: type: string required: - name type: object required: - key - resource type: object type: array synthesisEnv: description: |- SynthesisEnv Copied opaquely into the compositions managed by this symphony. items: properties: name: maxLength: 100 type: string value: type: string required: - name type: object maxItems: 50 type: array variations: description: |- Each variation will result in the creation of a composition. Synthesizer refs must be unique across variations. Removing a variation will cause the composition to be deleted! items: properties: annotations: additionalProperties: type: string description: Used to populate the composition's medatada.annotations. type: object bindings: description: |- Variation-specific bindings get merged with Symphony bindings and take precedence over them. items: description: |- Bindings map a specific Kubernetes resource to a ref exposed by a synthesizer. Compositions use bindings to populate inputs supported by their synthesizer. properties: key: description: Key determines which ref this binding binds to. Opaque. type: string resource: description: A reference to a specific resource name and optionally namespace. properties: name: type: string namespace: type: string required: - name type: object required: - key - resource type: object type: array labels: additionalProperties: type: string description: Used to populate the composition's metadata.labels. type: object synthesisEnv: description: |- SynthesisEnv Copied opaquely into the compositions that's derived from this variation. It gets merged with the Symhony environment and takes precedence over it. items: properties: name: maxLength: 100 type: string value: type: string required: - name type: object maxItems: 25 type: array synthesizer: description: Used to populate the composition's spec.synthesizer. properties: name: type: string type: object type: object type: array type: object status: properties: observedGeneration: format: int64 type: integer ready: format: date-time type: string reconciled: format: date-time type: string synthesized: format: date-time type: string type: object type: object served: true storage: true subresources: status: {}