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

359 lines
16 KiB
YAML

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.6.1
creationTimestamp: null
name: kubeconfigs.airshipit.org
spec:
group: airshipit.org
names:
kind: KubeConfig
listKind: KubeConfigList
plural: kubeconfigs
singular: kubeconfig
scope: Namespaced
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
description: KubeConfig object for k8s client
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
config:
description: Config holds the information needed to build connect to remote
kubernetes clusters as a given user
properties:
apiVersion:
description: 'Legacy field from pkg/api/types.go TypeMeta. TODO(jlowdermilk):
remove this after eliminating downstream dependencies.'
type: string
clusters:
description: Clusters is a map of referencable names to cluster configs
items:
description: NamedCluster relates nicknames to cluster information
properties:
cluster:
description: Cluster holds the cluster information
properties:
certificate-authority:
description: CertificateAuthority is the path to a cert
file for the certificate authority.
type: string
certificate-authority-data:
description: CertificateAuthorityData contains PEM-encoded
certificate authority certificates. Overrides CertificateAuthority
format: byte
type: string
extensions:
description: Extensions holds additional information. This
is useful for extenders so that reads and writes don't
clobber unknown fields
items:
description: NamedExtension relates nicknames to extension
information
properties:
extension:
description: Extension holds the extension information
type: object
name:
description: Name is the nickname for this Extension
type: string
required:
- extension
- name
type: object
type: array
insecure-skip-tls-verify:
description: InsecureSkipTLSVerify skips the validity check
for the server's certificate. This will make your HTTPS
connections insecure.
type: boolean
server:
description: Server is the address of the kubernetes cluster
(https://hostname:port).
type: string
required:
- server
type: object
name:
description: Name is the nickname for this Cluster
type: string
required:
- cluster
- name
type: object
type: array
contexts:
description: Contexts is a map of referencable names to context configs
items:
description: NamedContext relates nicknames to context information
properties:
context:
description: Context holds the context information
properties:
cluster:
description: Cluster is the name of the cluster for this
context
type: string
extensions:
description: Extensions holds additional information. This
is useful for extenders so that reads and writes don't
clobber unknown fields
items:
description: NamedExtension relates nicknames to extension
information
properties:
extension:
description: Extension holds the extension information
type: object
name:
description: Name is the nickname for this Extension
type: string
required:
- extension
- name
type: object
type: array
namespace:
description: Namespace is the default namespace to use on
unspecified requests
type: string
user:
description: AuthInfo is the name of the authInfo for this
context
type: string
required:
- cluster
- user
type: object
name:
description: Name is the nickname for this Context
type: string
required:
- context
- name
type: object
type: array
current-context:
description: CurrentContext is the name of the context that you would
like to use by default
type: string
extensions:
description: Extensions holds additional information. This is useful
for extenders so that reads and writes don't clobber unknown fields
items:
description: NamedExtension relates nicknames to extension information
properties:
extension:
description: Extension holds the extension information
type: object
name:
description: Name is the nickname for this Extension
type: string
required:
- extension
- name
type: object
type: array
kind:
description: 'Legacy field from pkg/api/types.go TypeMeta. TODO(jlowdermilk):
remove this after eliminating downstream dependencies.'
type: string
preferences:
description: Preferences holds general information to be use for cli
interactions
properties:
colors:
type: boolean
extensions:
description: Extensions holds additional information. This is
useful for extenders so that reads and writes don't clobber
unknown fields
items:
description: NamedExtension relates nicknames to extension information
properties:
extension:
description: Extension holds the extension information
type: object
name:
description: Name is the nickname for this Extension
type: string
required:
- extension
- name
type: object
type: array
type: object
users:
description: AuthInfos is a map of referencable names to user configs
items:
description: NamedAuthInfo relates nicknames to auth information
properties:
name:
description: Name is the nickname for this AuthInfo
type: string
user:
description: AuthInfo holds the auth information
properties:
as:
description: Impersonate is the username to imperonate. The
name matches the flag.
type: string
as-groups:
description: ImpersonateGroups is the groups to imperonate.
items:
type: string
type: array
as-user-extra:
additionalProperties:
items:
type: string
type: array
description: ImpersonateUserExtra contains additional information
for impersonated user.
type: object
auth-provider:
description: AuthProvider specifies a custom authentication
plugin for the kubernetes cluster.
properties:
config:
additionalProperties:
type: string
type: object
name:
type: string
required:
- config
- name
type: object
client-certificate:
description: ClientCertificate is the path to a client cert
file for TLS.
type: string
client-certificate-data:
description: ClientCertificateData contains PEM-encoded
data from a client cert file for TLS. Overrides ClientCertificate
format: byte
type: string
client-key:
description: ClientKey is the path to a client key file
for TLS.
type: string
client-key-data:
description: ClientKeyData contains PEM-encoded data from
a client key file for TLS. Overrides ClientKey
format: byte
type: string
exec:
description: Exec specifies a custom exec-based authentication
plugin for the kubernetes cluster.
properties:
apiVersion:
description: Preferred input version of the ExecInfo.
The returned ExecCredentials MUST use the same encoding
version as the input.
type: string
args:
description: Arguments to pass to the command when executing
it.
items:
type: string
type: array
command:
description: Command to execute.
type: string
env:
description: Env defines additional environment variables
to expose to the process. These are unioned with the
host's environment, as well as variables client-go
uses to pass argument to the plugin.
items:
description: ExecEnvVar is used for setting environment
variables when executing an exec-based credential
plugin.
properties:
name:
type: string
value:
type: string
required:
- name
- value
type: object
type: array
required:
- command
type: object
extensions:
description: Extensions holds additional information. This
is useful for extenders so that reads and writes don't
clobber unknown fields
items:
description: NamedExtension relates nicknames to extension
information
properties:
extension:
description: Extension holds the extension information
type: object
name:
description: Name is the nickname for this Extension
type: string
required:
- extension
- name
type: object
type: array
password:
description: Password is the password for basic authentication
to the kubernetes cluster.
type: string
token:
description: Token is the bearer token for authentication
to the kubernetes cluster.
type: string
tokenFile:
description: TokenFile is a pointer to a file that contains
a bearer token (as described above). If both Token and
TokenFile are present, Token takes precedence.
type: string
username:
description: Username is the username for basic authentication
to the kubernetes cluster.
type: string
type: object
required:
- name
- user
type: object
type: array
required:
- clusters
- contexts
- current-context
- preferences
- users
type: object
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
type: object
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []