ContainerImage.Pinniped/deploy/crd.yaml

68 lines
2.0 KiB
YAML
Raw Normal View History

#@ load("@ytt:data", "data")
#! Example of valid LoginDiscoveryConfig object:
#! ---
#! apiVersion: suzerain-io.github.io/v1alpha1
#! kind: LoginDiscoveryConfig
#! metadata:
#! name: login-discovery
#! namespace: integration
#! spec:
#! server: https://foo
#! certificateAuthorityData: bar
#! identityProviders:
#! - name: baz
#! type: token
#! - name: bat
#! type: token
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: logindiscoveryconfigs.suzerain-io.github.io
spec:
group: suzerain-io.github.io
versions:
#! Any changes to these schemas should also be reflected in the types.go file(s)
#! in https://github.com/suzerain-io/placeholder-name-api/tree/main/pkg/apis/placeholder
- name: v1alpha1
served: true
storage: true
schema:
openAPIV3Schema:
type: object
required: [spec]
properties:
spec:
type: object
required: [server, certificateAuthorityData, identityProviders]
properties:
server:
type: string
minLength: 1
pattern: '^https://'
certificateAuthorityData:
type: string
minLength: 1
identityProviders:
type: array
items:
type: object
required: [name, type]
properties:
name:
type: string
minLength: 1
pattern: '^[a-zA-Z0-9]+(?:(-|_)?[a-zA-Z0-9]+)+$'
type: #! The name of this property is "type" (not declaring the type of a property).
type: string
pattern: '^token$'
scope: Namespaced
names:
plural: logindiscoveryconfigs
singular: logindiscoveryconfig
kind: LoginDiscoveryConfig
shortNames:
- ldc