kube

package
v0.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 22, 2021 License: GPL-3.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CoderVersionRequirement

type CoderVersionRequirement struct {
	CoderVersion         *semver.Version
	KubernetesVersionMin *semver.Version
	KubernetesVersionMax *semver.Version
}

type KubernetesChecker

type KubernetesChecker struct {
	// contains filtered or unexported fields
}

func NewKubernetesChecker

func NewKubernetesChecker(client kubernetes.Interface, opts ...Option) *KubernetesChecker

func (*KubernetesChecker) CheckRBAC

func (k *KubernetesChecker) CheckRBAC(ctx context.Context) []*api.CheckResult

CheckRBAC checks the cluster for the RBAC permissions required by Coder. It will attempt to first use a SelfSubjectRulesReview to determine the capabilities of the user. If this fails (notably on GKE), fall back to using SelfSubjectAccessRequests which is slower but is more likely to work.

func (*KubernetesChecker) CheckResources

func (k *KubernetesChecker) CheckResources(_ context.Context) []*api.CheckResult

func (*KubernetesChecker) CheckVersion

func (k *KubernetesChecker) CheckVersion(ctx context.Context) *api.CheckResult

func (*KubernetesChecker) Run

func (k *KubernetesChecker) Run(ctx context.Context) error

func (*KubernetesChecker) Validate

func (k *KubernetesChecker) Validate() error

type Option

type Option func(k *KubernetesChecker)

func WithCoderVersion

func WithCoderVersion(version *semver.Version) Option

func WithLogger

func WithLogger(log slog.Logger) Option

func WithNamespace

func WithNamespace(ns string) Option

func WithWriter

func WithWriter(writer api.ResultWriter) Option

type ResourceRequirement

type ResourceRequirement struct {
	Group    string
	Resource string
	Version  string
}

ResourceRequirement describes a set of requirements on a specific version of a resource: whether it exists with that specific version, and what verbs the current user is permitted to perform on the resource.

func NewResourceRequirement

func NewResourceRequirement(apiGroup, version, resource string) *ResourceRequirement

NewResourceRequirement is just a convenience function for creating ResourceRequirements for which the resource type must exist.

type ResourceVerbs

type ResourceVerbs []string

type VersionedResourceRequirements

type VersionedResourceRequirements struct {
	VersionConstraints   *semver.Constraints
	ResourceRequirements map[*ResourceRequirement]ResourceVerbs
	// These are only required because the role in the Helm chart specifies broad swathes of permissions that
	// don't necessarily exist in the real world.
	RoleOnlyResourceRequirements map[*ResourceRequirement]ResourceVerbs
}

VersionedResourceRequirements is a set of ResourceRequirements for a specific version of Coder.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL