Documentation ¶
Index ¶
- type AdditionalPrinterColumn
- type AnyKind
- type AppManifest
- type AppManifestKindPermission
- type AppManifestProperties
- type AppManifestPropertiesExtraPermissions
- type ConversionWebhookProperties
- type Generator
- type JennyList
- type Kind
- type KindAdmissionCapability
- type KindAdmissionCapabilityOperation
- type KindCodegenProperties
- type KindProperties
- type KindVersion
- type Parser
- type SimpleManifest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
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 AppManifest ¶ added in v0.27.0
type AppManifest interface { Name() string Kinds() []Kind Properties() AppManifestProperties }
type AppManifestKindPermission ¶ added in v0.27.0
type AppManifestProperties ¶ added in v0.27.0
type AppManifestProperties struct { AppName string `json:"appName"` Group string `json:"group"` FullGroup string `json:"fullGroup"` ExtraPermissions AppManifestPropertiesExtraPermissions `json:"extraPermissions"` }
type AppManifestPropertiesExtraPermissions ¶ added in v0.27.0
type AppManifestPropertiesExtraPermissions struct {
AccessKinds []AppManifestKindPermission `json:"accessKinds,omitempty"`
}
type ConversionWebhookProperties ¶ added in v0.26.0
type ConversionWebhookProperties struct {
URL string `json:"url"`
}
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"` // ManifestGroup is the group shortname used by the AppManifest this Kind belongs to ManifestGroup string `json:"manifestGroup"` // 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"` Scope string `json:"scope"` Validation KindAdmissionCapability `json:"validation"` Mutation KindAdmissionCapability `json:"mutation"` Conversion bool `json:"conversion"` ConversionWebhookProps ConversionWebhookProperties `json:"conversionWebhookProps"` // 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"` }
type SimpleManifest ¶ added in v0.27.0
type SimpleManifest struct { Props AppManifestProperties AllKinds []Kind }
func (*SimpleManifest) Kinds ¶ added in v0.27.0
func (m *SimpleManifest) Kinds() []Kind
func (*SimpleManifest) Name ¶ added in v0.27.0
func (m *SimpleManifest) Name() string
func (*SimpleManifest) Properties ¶ added in v0.27.0
func (m *SimpleManifest) Properties() AppManifestProperties
Click to show internal directories.
Click to hide internal directories.