package kube
import "github.com/oslokommune/okctl/pkg/kube"
Package kube implements a kubernetes client Parts of this file have been stolen from: - https://github.com/helm/helm/blob/master/pkg/kube/wait.go
Index ¶
- Variables
- type Applier
- type ApplyFn
- type ClientSetProvider
- func NewFromEKSCluster(clusterName, region string, provider v1alpha1.CloudProvider, auth awsauth.Authenticator) ClientSetProvider
- func NewFromKubeConfig(kubeConfigPath string) ClientSetProvider
- type Kube
- func New(provider ClientSetProvider) (*Kube, error)
- func (k *Kube) Apply(fns ...Applier) ([]interface{}, error)
- func (k *Kube) Debug(namespace string) (map[string][]string, error)
- func (k *Kube) Watch(resources []interface{}, timeout time.Duration) error
- func (k *Kube) WatchDeployment(deployment *appsv1.Deployment, timeout time.Duration) error
- func (k *Kube) WithLogger(log *logrus.Logger) *Kube
- type Kuber
Variables ¶
ErrClusterNotFound represents the specified cluster is missing
Types ¶
type Applier ¶
Applier wraps the function to be applied with a brief description
type ApplyFn ¶
type ApplyFn func(clientSet kubernetes.Interface, config *rest.Config) (interface{}, error)
ApplyFn defines the signature of a function that applies some operation to the kubernetes cluster
type ClientSetProvider ¶
type ClientSetProvider interface { Get() (*kubernetes.Clientset, *rest.Config, error) }
ClientSetProvider defines how a Kubernetes clientset may be retrieved
func NewFromEKSCluster ¶
func NewFromEKSCluster(clusterName, region string, provider v1alpha1.CloudProvider, auth awsauth.Authenticator) ClientSetProvider
NewFromEKSCluster returns a client set provider that uses a EKS cluster description to build the client set
func NewFromKubeConfig ¶
func NewFromKubeConfig(kubeConfigPath string) ClientSetProvider
NewFromKubeConfig returns a client set provider that uses a kubeconfig to build the client set
type Kube ¶
type Kube struct { Provider ClientSetProvider ClientSet *kubernetes.Clientset RestConfig *rest.Config Ctx context.Context Log *logrus.Logger }
Kube contains state for communicating with a kubernetes cluster
func New ¶
func New(provider ClientSetProvider) (*Kube, error)
New returns an initialised kubernetes client
func (*Kube) Apply ¶
Apply all the functions to the cluster
func (*Kube) Debug ¶
Debug a namespace
func (*Kube) Watch ¶
Watch a set of resources
func (*Kube) WatchDeployment ¶
WatchDeployment and wait until it is ready or we hit the timeout most of this code, together with deploymentReady is taken from: - https://github.com/helm/helm
Luckily we have control over the types of resources we want to watch, so we can simplify a little.
func (*Kube) WithLogger ¶
WithLogger sets a logger
type Kuber ¶
Kuber provides the methods that are available by a concrete implementation
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
pkg/kube/attach | Package attach knows how to interact with a running pod |
pkg/kube/externalsecret | |
pkg/kube/externalsecret/api | |
pkg/kube/externalsecret/api/types | |
pkg/kube/externalsecret/api/types/v1 | nolint |
pkg/kube/externalsecret/clientset | |
pkg/kube/externalsecret/clientset/v1 | nolint |
pkg/kube/forward | Package forward is based on, with some modifications here and there: - https://github.com/gianarb/kube-port-forward |
pkg/kube/manifests | |
pkg/kube/manifests/awsnode | Package awsnode performs operations on the aws-node daemonset |
pkg/kube/manifests/configmap | Package configmap provides a configmap creator and applier |
pkg/kube/manifests/echoserver | Package echoserver provides a simple echoserver |
pkg/kube/manifests/externaldns | Package externaldns provides kubernetes manifests for deploy external dns |
pkg/kube/manifests/externalsecret | Package externalsecret implements a manifest builder and applyer |
pkg/kube/manifests/namespace | Package namespace provides a namespace creator and applier |
pkg/kube/manifests/pgbouncer | Package pgbouncer knows how to deploy PgBouncer to the Kubernetes cluster: - https://www.pgbouncer.org |
pkg/kube/manifests/scale | Package scale knows how to scale a deployment in Kubernetes |
pkg/kube/manifests/securitygrouppolicy | Package securitygrouppolicy provides a convenient way of interacting with the SecurityGroupPolicy CRD |
pkg/kube/manifests/storageclass | Package storageclass provides a storage class creator and applier |
pkg/kube/pod | Package pod provides some reusable functions for interacting with the kubernetes pod API |
pkg/kube/securitygrouppolicy | |
pkg/kube/securitygrouppolicy/api | |
pkg/kube/securitygrouppolicy/api/types | |
pkg/kube/securitygrouppolicy/api/types/v1beta1 | Package v1beta1 implements the types for security group policy provided by AWS EKS CRD nolint: gochecknoglobals |
pkg/kube/securitygrouppolicy/clientset | |
pkg/kube/securitygrouppolicy/clientset/v1beta1 | Package v1beta1 implements the client for the AWS EKS CRD SecurityGroupPolicy |
- Version
- v0.0.106 (latest)
- Published
- Oct 21, 2022
- Platform
- linux/amd64
- Imports
- 24 packages
- Last checked
- 5 days ago –
Tools for package owners.