Documentation
¶
Index ¶
- Constants
- Variables
- func PrintDeps() error
- func PrintDepsAsFile()
- func UpdateRoleForResource(r *Resource, absProjectPath string) error
- type AddController
- type AddToScheme
- type Apis
- type Cmd
- type Controller
- type ControllerKind
- type Cr
- type Crd
- type CustomRenderer
- type Doc
- type Dockerfile
- type Gitignore
- type GoTestScript
- type GopkgToml
- type Operator
- type Register
- type Resource
- type Role
- type RoleBinding
- type Scaffold
- type ServiceAccount
- type TestFrameworkDockerfile
- type TestPod
- type Types
- type Version
Constants ¶
const ( // dirs CmdDir = "cmd" ManagerDir = CmdDir + filePathSep + "manager" PkgDir = "pkg" ApisDir = PkgDir + filePathSep + "apis" ControllerDir = PkgDir + filePathSep + "controller" BuildDir = "build" BuildTestDir = BuildDir + filePathSep + "test-framework" BuildBinDir = BuildDir + filePathSep + "_output" + filePathSep + "bin" DeployDir = "deploy" OlmCatalogDir = DeployDir + filePathSep + "olm-catalog" CrdsDir = DeployDir + filePathSep + "crds" VersionDir = "version" )
const ApisFile = "apis.go"
const CmdFile = "main.go"
const ControllerFile = "controller.go"
const DocFile = "doc.go"
const DockerfileFile = "Dockerfile"
const GitignoreFile = ".gitignore"
const GoTestScriptFile = "go-test.sh"
const GopkgTomlFile = "Gopkg.toml"
const OperatorYamlFile = "operator.yaml"
const RegisterFile = "register.go"
const RoleBindingYamlFile = "role_binding.yaml"
const RoleYamlFile = "role.yaml"
const ServiceAccountYamlFile = "service_account.yaml"
const TestPodYamlFile = "test-pod.yaml"
const VersionFile = "version.go"
Variables ¶
var ( // ResourceVersionRegexp matches Kubernetes API versions. // See https://kubernetes.io/docs/concepts/overview/kubernetes-api/#api-versioning ResourceVersionRegexp = regexp.MustCompile("^v[1-9][0-9]*((alpha|beta)[1-9][0-9]*)?$") // ResourceKindRegexp matches Kubernetes API Kind's. ResourceKindRegexp = regexp.MustCompile("^[A-Z]{1}[a-zA-Z0-9]+$") )
Functions ¶
func PrintDepsAsFile ¶ added in v0.2.0
func PrintDepsAsFile()
func UpdateRoleForResource ¶
Types ¶
type AddController ¶
type AddController struct {
input.Input
// Resource defines the inputs for the controller's primary resource
Resource *Resource
}
AddController is the input needed to generate a pkg/controller/add_<kind>.go file
type AddToScheme ¶
type AddToScheme struct {
input.Input
// Resource defines the inputs for the new api
Resource *Resource
}
AddToScheme is the input needed to generate an addtoscheme_<group>_<version>.go file
type Controller ¶
type ControllerKind ¶
type ControllerKind struct {
input.Input
// Resource defines the inputs for the controller's primary resource
Resource *Resource
}
ControllerKind is the input needed to generate a pkg/controller/<kind>/<kind>_controller.go file
type Cr ¶
type Cr struct {
input.Input
// Resource defines the inputs for the new custom resource
Resource *Resource
}
Cr is the input needed to generate a deploy/crds/<group>_<version>_<kind>_cr.yaml file
type Crd ¶
type Crd struct {
input.Input
// Resource defines the inputs for the new custom resource definition
Resource *Resource
}
Crd is the input needed to generate a deploy/crds/<group>_<version>_<kind>_crd.yaml file
type CustomRenderer ¶ added in v0.4.0
CustomRenderer is the interface for writing any scaffold file that does not use a template.
type Doc ¶
type Doc struct {
input.Input
// Resource defines the inputs for the new doc file
Resource *Resource
}
Doc is the input needed to generate a pkg/apis/<group>/<version>/doc.go file
type Dockerfile ¶
type GoTestScript ¶
type Register ¶
type Register struct {
input.Input
// Resource defines the inputs for the new custom resource definition
Resource *Resource
}
Register is the input needed to generate a pkg/apis/<group>/<version>/register.go file
type Resource ¶
type Resource struct {
// APIVersion is the complete group-subdomain/version e.g app.example.com/v1alpha1
APIVersion string
// Kind is the API Kind e.g AppService
Kind string
// FullGroup is the complete group name with subdomain e.g app.example.com
// Parsed from APIVersion
FullGroup string
// Group is the API Group. Does not contain the sub-domain. e.g app
// Parsed from APIVersion
Group string
// Version is the API version - e.g. v1alpha1
// Parsed from APIVersion
Version string
// Resource is the API Resource i.e plural(lowercased(Kind)) e.g appservices
Resource string
// LowerKind is lowercased(Kind) e.g appservice
LowerKind string
}
Resource contains the information required to scaffold files for a resource.
func NewResource ¶
type RoleBinding ¶
type Scaffold ¶
type Scaffold struct {
// Repo is the go project package
Repo string
// AbsProjectPath is the absolute path to the project root, including the project directory.
AbsProjectPath string
// ProjectName is the operator's name, ex. app-operator
ProjectName string
GetWriter func(path string, mode os.FileMode) (io.Writer, error)
}
Scaffold writes Templates to scaffold new files
type ServiceAccount ¶
type TestFrameworkDockerfile ¶
type TestPod ¶
Source Files
¶
- add_controller.go
- addtoscheme.go
- apis.go
- build_dockerfile.go
- cmd.go
- constants.go
- controller.go
- controller_kind.go
- cr.go
- crd.go
- customrender.go
- doc.go
- gitignore.go
- go_test_script.go
- gopkgtoml.go
- operator.go
- register.go
- resource.go
- role.go
- rolebinding.go
- scaffold.go
- service_account.go
- test_framework_dockerfile.go
- test_pod.go
- test_setup.go
- types.go
- version.go