Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type APIResourceProperties ¶ added in v0.14.0
type APIResourceProperties struct { Group string `json:"group"` Scope string `json:"scope"` Validation KindAdmissionCapability `json:"validation"` Mutation KindAdmissionCapability `json:"mutation"` Conversion bool `json:"conversion"` }
APIResourceProperties contains information about a Kind expressible as a kubernetes API resource
type AdditionalPrinterColumn ¶ added in v0.21.0
type AnyKind ¶ added in v0.14.0
type AnyKind struct { Props KindProperties AllVersions []KindVersion }
AnyKind is a simple implementation of Kind
func (*AnyKind) Properties ¶ added in v0.14.0
func (a *AnyKind) Properties() KindProperties
func (*AnyKind) Version ¶ added in v0.14.0
func (a *AnyKind) Version(v string) *KindVersion
func (*AnyKind) Versions ¶ added in v0.14.0
func (a *AnyKind) Versions() []KindVersion
type Generator ¶
type Generator[T any] struct { // contains filtered or unexported fields }
func NewGenerator ¶ added in v0.14.0
func (*Generator[T]) FilteredGenerate ¶ added in v0.14.0
type Kind ¶ added in v0.14.0
type Kind interface { Name() string Properties() KindProperties Versions() []KindVersion Version(version string) *KindVersion }
Kind is a common interface declaration for code generation. Any type parser should be able to parse a kind into this definition to supply to various common Jennies in the codegen package.
type KindAdmissionCapability ¶ added in v0.20.0
type KindAdmissionCapability struct {
Operations []KindAdmissionCapabilityOperation `json:"operations"`
}
type KindAdmissionCapabilityOperation ¶ added in v0.20.0
type KindAdmissionCapabilityOperation string
const ( AdmissionCapabilityOperationCreate KindAdmissionCapabilityOperation = "CREATE" AdmissionCapabilityOperationUpdate KindAdmissionCapabilityOperation = "UPDATE" AdmissionCapabilityOperationDelete KindAdmissionCapabilityOperation = "DELETE" AdmissionCapabilityOperationConnect KindAdmissionCapabilityOperation = "CONNECT" AdmissionCapabilityOperationAny KindAdmissionCapabilityOperation = "*" )
type KindCodegenProperties ¶ added in v0.14.0
KindCodegenProperties contains code generation directives for a Kind or KindVersion
type KindProperties ¶ added in v0.14.0
type KindProperties struct { // Kind is the unique-within-the-group name of the kind Kind string `json:"kind"` // Group is the group the Kind is a part of Group string `json:"group"` // MachineName is the machine version of the Kind, which follows the regex: /^[a-z]+[a-z0-9]*$/ MachineName string `json:"machineName"` // PluralMachineName is the plural of the MachineName PluralMachineName string `json:"pluralMachineName"` // PluralName is the plural of the Kind PluralName string `json:"pluralName"` // Current is the version string of the version considered to be "current". // This does not have to be the latest, but determines preference when generating code. Current string `json:"current"` // APIResource is an optional field which, if present, indicates that the Kind is expressible as a kubernetes API resource, // and contains attributes which allow identification as such. APIResource *APIResourceProperties `json:"apiResource"` // Codegen contains code-generation directives for the codegen pipeline Codegen KindCodegenProperties `json:"codegen"` }
KindProperties is the collection of properties for a Kind which are used for code generation
type KindVersion ¶ added in v0.14.0
type KindVersion struct { Version string `json:"version"` // Schema is the CUE schema for the version // This should eventually be changed to JSONSchema/OpenAPI(/AST?) Schema cue.Value `json:"schema"` // TODO: this should eventually be OpenAPI/JSONSchema (ast or bytes?) Codegen KindCodegenProperties `json:"codegen"` Served bool `json:"served"` SelectableFields []string `json:"selectableFields"` Validation KindAdmissionCapability `json:"validation"` Mutation KindAdmissionCapability `json:"mutation"` AdditionalPrinterColumns []AdditionalPrinterColumn `json:"additionalPrinterColumns"` }
Click to show internal directories.
Click to hide internal directories.