Documentation
      ¶
    
    
  
    
  
    Overview ¶
Package rbac contain libraries for generating RBAC manifests from RBAC markers in Go source files.
The markers take the form:
+kubebuilder:rbac:groups=<groups>,resources=<resources>,resourceNames=<resource names>,verbs=<verbs>,urls=<non resource urls>
Index ¶
Constants ¶
This section is empty.
Variables ¶
      View Source
      
  
var ( // RuleDefinition is a marker for defining RBAC rules. // Call ToRule on the value to get a Kubernetes RBAC policy rule. RuleDefinition = markers.Must(markers.MakeDefinition("kubebuilder:rbac", markers.DescribesPackage, Rule{})) )
Functions ¶
func GenerateRoles ¶ added in v0.4.3
func GenerateRoles(ctx *genall.GenerationContext, roleName string) ([]interface{}, error)
GenerateRoles generate a slice of objs representing either a ClusterRole or a Role object The order of the objs in the returned slice is stable and determined by their namespaces.
Types ¶
type Generator ¶ added in v0.4.3
type Generator struct {
	// RoleName sets the name of the generated ClusterRole.
	RoleName string
}
    Generator generates ClusterRole objects.
func (Generator) Generate ¶ added in v0.4.3
func (g Generator) Generate(ctx *genall.GenerationContext) error
func (Generator) Help ¶ added in v0.4.3
func (Generator) Help() *markers.DefinitionHelp
type Rule ¶ added in v0.4.3
type Rule struct {
	// Groups specifies the API groups that this rule encompasses.
	Groups []string `marker:",optional"`
	// Resources specifies the API resources that this rule encompasses.
	Resources []string `marker:",optional"`
	// ResourceNames specifies the names of the API resources that this rule encompasses.
	//
	// Create requests cannot be restricted by resourcename, as the object's name
	// is not known at authorization time.
	ResourceNames []string `marker:",optional"`
	// Verbs specifies the (lowercase) kubernetes API verbs that this rule encompasses.
	Verbs []string
	// URL specifies the non-resource URLs that this rule encompasses.
	URLs []string `marker:"urls,optional"`
	// Namespace specifies the scope of the Rule.
	// If not set, the Rule belongs to the generated ClusterRole.
	// If set, the Rule belongs to a Role, whose namespace is specified by this field.
	Namespace string `marker:",optional"`
}
    Rule specifies an RBAC rule to all access to some resources or non-resource URLs.
func (Rule) Help ¶ added in v0.4.3
func (Rule) Help() *markers.DefinitionHelp
func (*Rule) ToRule ¶ added in v0.4.3
func (r *Rule) ToRule() rbacv1.PolicyRule
ToRule converts this rule to its Kubernetes API form.
 Click to show internal directories. 
   Click to hide internal directories.