Documentation ¶
Index ¶
Constants ¶
View Source
const ProjectConfigFilename = "solo-kit.json"
Variables ¶
This section is empty.
Functions ¶
func GetGVForProject ¶ added in v0.19.0
func GetGVForProject(project *Project) kubeschema.GroupVersion
Types ¶
type CustomResourceConfig ¶
type CustomResourceConfig struct { // the import path for the Go Type Package string `json:"package"` // the name of the Go Type Type string `json:"type"` PluralName string `json:"plural_name"` ShortName string `json:"short_name"` ClusterScoped bool `json:"cluster_scoped"` SkipHashingAnnotations bool `json:"skip_hashing_annotations"` SpecHasHash bool `json:"spec_has_hash"` // set by load Imported bool }
Create a Solo-Kit backed resource from a Go Type that implements the Resource Interface
type DescriptorWithPath ¶ added in v0.11.2
type DescriptorWithPath struct { *descriptor.FileDescriptorProto ProtoFilePath string }
type Field ¶
type Field struct { Name string TypeName string IsOneof bool // we ignore oneof fields in test generation SkipHashing bool // skip this field when hashing the resource Original *descriptor.FieldDescriptorProto }
type Project ¶
type Project struct { ProjectConfig ProjectConfig ProtoPackage string Resources []*Resource ResourceGroups []*ResourceGroup XDSResources []*XDSResource Request *plugin_go.CodeGeneratorRequest // generated by calling protokit.ParseCodeGenRequest on the request field Descriptors []*protokit.FileDescriptor }
type ProjectConfig ¶
type ProjectConfig struct { Title string `json:"title"` Description string `json:"description"` Name string `json:"name"` Version string `json:"version"` DocsDir string `json:"docs_dir"` ResourceGroups map[string][]ResourceConfig `json:"resource_groups"` // if set, this group will override the proto package typically used // as the api group for the crd CrdGroupOverride string `json:"crd_group_override"` // imported solokit projects Imports []string `json:"imports"` // define custom resources here CustomResources []CustomResourceConfig `json:"custom_resources"` // set by load if not specified GoPackage string `json:"go_package"` // Generate Kube clientset & types GenKubeTypes bool `json:"gen_kube_types"` // Generate Kube validation schemas GenKubeValidationSchemas bool `json:"gen_kube_validation_schemas"` // set by load ProjectFile string ProjectProtos []string }
func LoadProjectConfig ¶
func LoadProjectConfig(path string) (ProjectConfig, error)
func (ProjectConfig) IsOurProto ¶
func (p ProjectConfig) IsOurProto(protoFile string) bool
type Resource ¶
type Resource struct { Name string PluralName string ShortName string ProtoPackage string // eg. gloo.solo.io // ImportPrefix will equal ProtoPackage+"." if the resource does not belong to the project // else it will be empty string. used in event loop files ImportPrefix string // empty unless resource is external // format "github.com/solo-io/solo-kit/foo/bar" GoPackage string HasStatus bool ClusterScoped bool // the resource lives at the cluster level, namespace is ignored SkipDocsGen bool // if true, no docs will be generated for the proto file where this resource is defined IsCustom bool // if true, this will be treated as a custom resource without a proto file behind it CustomResource CustomResourceConfig // this struct will be empty unless IsCustom is true CustomImportPrefix string // import prefix for the struct type the generated wrapper will wrap SkipHashingAnnotations bool // if true, zero out annotations in the generated hash func SpecHasHash bool Fields []*Field Oneofs []*Oneof // resource groups i belong to ResourceGroups []*ResourceGroup // project i belong to Project *Project Filename string // the proto file where this resource is contained Version string // set during parsing from this resource's solo-kit.json // TODO (ilackarms): change to use descriptor.DescriptorProto Original *protokit.Descriptor }
type ResourceConfig ¶
type ResourceConfig struct { ResourceName string `json:"name"` ResourcePackage string `json:"package"` // resource package doubles as the proto package or the go import package ResourceVersion string `json:"version"` // version of the resource, used to distinguish when multiple versions of a resource exist }
type ResourceGroup ¶
Click to show internal directories.
Click to hide internal directories.