Documentation ¶
Index ¶
- type CoderVersionRequirement
- type KubernetesChecker
- func (k *KubernetesChecker) CheckRBAC(ctx context.Context) []*api.CheckResult
- func (k *KubernetesChecker) CheckResources(_ context.Context) []*api.CheckResult
- func (k *KubernetesChecker) CheckVersion(ctx context.Context) *api.CheckResult
- func (k *KubernetesChecker) Run(ctx context.Context) error
- func (k *KubernetesChecker) Validate() error
- type Option
- type ResourceRequirement
- type ResourceVerbs
- type VersionedResourceRequirements
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) Validate ¶
func (k *KubernetesChecker) Validate() error
type Option ¶
type Option func(k *KubernetesChecker)
func WithCoderVersion ¶
func WithCoderVersion(version *semver.Version) Option
func WithLogger ¶
func WithNamespace ¶
func WithWriter ¶
func WithWriter(writer api.ResultWriter) Option
type ResourceRequirement ¶
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.