kubecli

package
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Apr 6, 2018 License: Apache-2.0 Imports: 51 Imported by: 0

Documentation

Index

Constants

View Source
const (
	WebsocketMessageBufferSize = 10240
)

Variables

This section is empty.

Functions

func DefaultClientConfig added in v0.4.0

func DefaultClientConfig(flags *pflag.FlagSet) clientcmd.ClientConfig

DefaultClientConfig creates a clientcmd.ClientConfig with the following hierarchy:

  1. Use the kubeconfig builder. The number of merges and overrides here gets a little crazy. Stay with me.

  2. Merge the kubeconfig itself. This is done with the following hierarchy rules:

  3. CommandLineLocation - this parsed from the command line, so it must be late bound. If you specify this, then no other kubeconfig files are merged. This file must exist.

  4. If $KUBECONFIG is set, then it is treated as a list of files that should be merged.

  5. HomeDirectoryLocation Empty filenames are ignored. Files with non-deserializable content produced errors. The first file to set a particular value or map key wins and the value or map key is never changed. This means that the first file to set CurrentContext will have its context preserved. It also means that if two files specify a "red-user", only values from the first file's red-user are used. Even non-conflicting entries from the second file's "red-user" are discarded.

  6. Determine the context to use based on the first hit in this chain

  7. command line argument - again, parsed from the command line, so it must be late bound

  8. CurrentContext from the merged kubeconfig file

  9. Empty is allowed at this stage

  10. Determine the cluster info and auth info to use. At this point, we may or may not have a context. They are built based on the first hit in this chain. (run it twice, once for auth, once for cluster)

  11. command line argument

  12. If context is present, then use the context value

  13. Empty is allowed

  14. Determine the actual cluster info to use. At this point, we may or may not have a cluster info. Build each piece of the cluster info based on the chain:

  15. command line argument

  16. If cluster info is present and a value for the attribute is present, use it.

  17. If you don't have a server location, bail.

  18. Auth info is build using the same rules as cluster info, EXCEPT that you can only have one authentication technique per auth info. The following conditions result in an error:

  19. If there are two conflicting techniques specified from the command line, fail.

  20. If the command line does not specify one, and the auth info has conflicting techniques, fail.

  21. If the command line specifies one and the auth info specifies another, honor the command line technique.

  22. Use default values and potentially prompt for auth information

    However, if it appears that we're running in a kubernetes cluster container environment, then run with the auth info kubernetes mounted for us. Specifically: The env vars KUBERNETES_SERVICE_HOST and KUBERNETES_SERVICE_PORT are set, and the file /var/run/secrets/kubernetes.io/serviceaccount/token exists and is not a directory.

Initially copied from https://github.com/kubernetes/kubernetes/blob/09f321c80bfc9bca63a5530b56d7a1a3ba80ba9b/pkg/kubectl/cmd/util/factory_client_access.go#L174

func GetConfig added in v0.4.0

func GetConfig() (*restclient.Config, error)

func GetKubevirtClientConfig added in v0.0.4

func GetKubevirtClientConfig() (*rest.Config, error)

func RequestFromConfig added in v0.4.0

func RequestFromConfig(config *rest.Config, vm string, namespace string, resource string) (*http.Request, error)

Types

type BinaryReadWriter added in v0.4.0

type BinaryReadWriter struct {
	Conn *websocket.Conn
}

func (*BinaryReadWriter) Read added in v0.4.0

func (s *BinaryReadWriter) Read(p []byte) (int, error)

func (*BinaryReadWriter) Write added in v0.4.0

func (s *BinaryReadWriter) Write(p []byte) (int, error)

type KubevirtClient

type KubevirtClient interface {
	VM(namespace string) VMInterface
	ReplicaSet(namespace string) ReplicaSetInterface
	OfflineVirtualMachine(namespace string) OfflineVirtualMachineInterface
	RestClient() *rest.RESTClient
	kubernetes.Interface
}

func GetKubevirtClient

func GetKubevirtClient() (KubevirtClient, error)

func GetKubevirtClientFromClientConfig added in v0.4.0

func GetKubevirtClientFromClientConfig(cmdConfig clientcmd.ClientConfig) (KubevirtClient, error)

func GetKubevirtClientFromFlags

func GetKubevirtClientFromFlags(master string, kubeconfig string) (KubevirtClient, error)

func GetKubevirtClientFromRESTConfig added in v0.4.0

func GetKubevirtClientFromRESTConfig(config *rest.Config) (KubevirtClient, error)

func GetKubevirtSubresourceClient added in v0.4.0

func GetKubevirtSubresourceClient() (KubevirtClient, error)

func GetKubevirtSubresourceClientFromFlags added in v0.4.0

func GetKubevirtSubresourceClientFromFlags(master string, kubeconfig string) (KubevirtClient, error)

type MockKubevirtClient

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

Mock of KubevirtClient interface

func NewMockKubevirtClient

func NewMockKubevirtClient(ctrl *gomock.Controller) *MockKubevirtClient

func (*MockKubevirtClient) Admissionregistration

func (*MockKubevirtClient) AdmissionregistrationV1alpha1

func (_m *MockKubevirtClient) AdmissionregistrationV1alpha1() v1alpha1.AdmissionregistrationV1alpha1Interface

func (*MockKubevirtClient) AdmissionregistrationV1beta1 added in v0.4.0

func (_m *MockKubevirtClient) AdmissionregistrationV1beta1() v1beta1.AdmissionregistrationV1beta1Interface

func (*MockKubevirtClient) Apps

func (*MockKubevirtClient) AppsV1 added in v0.4.0

func (_m *MockKubevirtClient) AppsV1() v10.AppsV1Interface

func (*MockKubevirtClient) AppsV1beta1

func (*MockKubevirtClient) AppsV1beta2 added in v0.0.3

func (*MockKubevirtClient) Authentication

func (_m *MockKubevirtClient) Authentication() v11.AuthenticationV1Interface

func (*MockKubevirtClient) AuthenticationV1

func (_m *MockKubevirtClient) AuthenticationV1() v11.AuthenticationV1Interface

func (*MockKubevirtClient) AuthenticationV1beta1

func (_m *MockKubevirtClient) AuthenticationV1beta1() v1beta11.AuthenticationV1beta1Interface

func (*MockKubevirtClient) Authorization

func (_m *MockKubevirtClient) Authorization() v12.AuthorizationV1Interface

func (*MockKubevirtClient) AuthorizationV1

func (_m *MockKubevirtClient) AuthorizationV1() v12.AuthorizationV1Interface

func (*MockKubevirtClient) AuthorizationV1beta1

func (_m *MockKubevirtClient) AuthorizationV1beta1() v1beta12.AuthorizationV1beta1Interface

func (*MockKubevirtClient) Autoscaling

func (_m *MockKubevirtClient) Autoscaling() v13.AutoscalingV1Interface

func (*MockKubevirtClient) AutoscalingV1

func (_m *MockKubevirtClient) AutoscalingV1() v13.AutoscalingV1Interface

func (*MockKubevirtClient) AutoscalingV2beta1 added in v0.1.0

func (_m *MockKubevirtClient) AutoscalingV2beta1() v2beta1.AutoscalingV2beta1Interface

func (*MockKubevirtClient) Batch

func (*MockKubevirtClient) BatchV1

func (_m *MockKubevirtClient) BatchV1() v14.BatchV1Interface

func (*MockKubevirtClient) BatchV1beta1 added in v0.0.3

func (*MockKubevirtClient) BatchV2alpha1

func (*MockKubevirtClient) Certificates

func (*MockKubevirtClient) CertificatesV1beta1

func (_m *MockKubevirtClient) CertificatesV1beta1() v1beta14.CertificatesV1beta1Interface

func (*MockKubevirtClient) Core

func (*MockKubevirtClient) CoreV1

func (_m *MockKubevirtClient) CoreV1() v15.CoreV1Interface

func (*MockKubevirtClient) Discovery

func (*MockKubevirtClient) EXPECT

func (_m *MockKubevirtClient) EXPECT() *_MockKubevirtClientRecorder

func (*MockKubevirtClient) Events added in v0.4.0

func (*MockKubevirtClient) EventsV1beta1 added in v0.4.0

func (*MockKubevirtClient) Extensions

func (*MockKubevirtClient) ExtensionsV1beta1

func (_m *MockKubevirtClient) ExtensionsV1beta1() v1beta16.ExtensionsV1beta1Interface

func (*MockKubevirtClient) Networking

func (_m *MockKubevirtClient) Networking() v16.NetworkingV1Interface

func (*MockKubevirtClient) NetworkingV1

func (_m *MockKubevirtClient) NetworkingV1() v16.NetworkingV1Interface

func (*MockKubevirtClient) OfflineVirtualMachine added in v0.3.0

func (_m *MockKubevirtClient) OfflineVirtualMachine(namespace string) OfflineVirtualMachineInterface

func (*MockKubevirtClient) Policy

func (*MockKubevirtClient) PolicyV1beta1

func (*MockKubevirtClient) Rbac

func (*MockKubevirtClient) RbacV1 added in v0.0.3

func (_m *MockKubevirtClient) RbacV1() v17.RbacV1Interface

func (*MockKubevirtClient) RbacV1alpha1

func (*MockKubevirtClient) RbacV1beta1

func (*MockKubevirtClient) ReplicaSet added in v0.0.3

func (_m *MockKubevirtClient) ReplicaSet(namespace string) ReplicaSetInterface

func (*MockKubevirtClient) RestClient

func (_m *MockKubevirtClient) RestClient() *rest.RESTClient

func (*MockKubevirtClient) Scheduling added in v0.0.3

func (*MockKubevirtClient) SchedulingV1alpha1 added in v0.0.3

func (_m *MockKubevirtClient) SchedulingV1alpha1() v1alpha11.SchedulingV1alpha1Interface

func (*MockKubevirtClient) Settings

func (*MockKubevirtClient) SettingsV1alpha1

func (*MockKubevirtClient) Storage

func (*MockKubevirtClient) StorageV1

func (_m *MockKubevirtClient) StorageV1() v18.StorageV1Interface

func (*MockKubevirtClient) StorageV1alpha1 added in v0.4.0

func (*MockKubevirtClient) StorageV1beta1

func (*MockKubevirtClient) VM

func (_m *MockKubevirtClient) VM(namespace string) VMInterface

type MockOfflineVirtualMachineInterface added in v0.3.0

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

Mock of OfflineVirtualMachineInterface interface

func NewMockOfflineVirtualMachineInterface added in v0.3.0

func NewMockOfflineVirtualMachineInterface(ctrl *gomock.Controller) *MockOfflineVirtualMachineInterface

func (*MockOfflineVirtualMachineInterface) Create added in v0.3.0

func (*MockOfflineVirtualMachineInterface) Delete added in v0.3.0

func (_m *MockOfflineVirtualMachineInterface) Delete(name string, options *v1.DeleteOptions) error

func (*MockOfflineVirtualMachineInterface) EXPECT added in v0.3.0

func (_m *MockOfflineVirtualMachineInterface) EXPECT() *_MockOfflineVirtualMachineInterfaceRecorder

func (*MockOfflineVirtualMachineInterface) Get added in v0.3.0

func (*MockOfflineVirtualMachineInterface) List added in v0.3.0

func (*MockOfflineVirtualMachineInterface) Update added in v0.3.0

type MockReplicaSetInterface added in v0.0.3

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

Mock of ReplicaSetInterface interface

func NewMockReplicaSetInterface added in v0.0.3

func NewMockReplicaSetInterface(ctrl *gomock.Controller) *MockReplicaSetInterface

func (*MockReplicaSetInterface) Create added in v0.0.3

func (*MockReplicaSetInterface) Delete added in v0.0.3

func (_m *MockReplicaSetInterface) Delete(name string, options *v1.DeleteOptions) error

func (*MockReplicaSetInterface) EXPECT added in v0.0.3

func (_m *MockReplicaSetInterface) EXPECT() *_MockReplicaSetInterfaceRecorder

func (*MockReplicaSetInterface) Get added in v0.0.3

func (*MockReplicaSetInterface) List added in v0.0.3

func (*MockReplicaSetInterface) Update added in v0.0.3

type MockVMInterface

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

Mock of VMInterface interface

func NewMockVMInterface

func NewMockVMInterface(ctrl *gomock.Controller) *MockVMInterface

func (*MockVMInterface) Create

func (_m *MockVMInterface) Create(_param0 *v19.VirtualMachine) (*v19.VirtualMachine, error)

func (*MockVMInterface) Delete

func (_m *MockVMInterface) Delete(name string, options *v1.DeleteOptions) error

func (*MockVMInterface) EXPECT

func (_m *MockVMInterface) EXPECT() *_MockVMInterfaceRecorder

func (*MockVMInterface) Get

func (_m *MockVMInterface) Get(name string, options v1.GetOptions) (*v19.VirtualMachine, error)

func (*MockVMInterface) List

func (*MockVMInterface) Patch added in v0.1.0

func (_m *MockVMInterface) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (*v19.VirtualMachine, error)

func (*MockVMInterface) SerialConsole added in v0.2.0

func (_m *MockVMInterface) SerialConsole(name string, in io.Reader, out io.Writer) error

func (*MockVMInterface) Update

func (_m *MockVMInterface) Update(_param0 *v19.VirtualMachine) (*v19.VirtualMachine, error)

func (*MockVMInterface) VNC added in v0.2.0

func (_m *MockVMInterface) VNC(name string, in io.Reader, out io.Writer) error

type MockVMPresetInterface added in v0.3.0

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

Mock of VMPresetInterface interface

func NewMockVMPresetInterface added in v0.3.0

func NewMockVMPresetInterface(ctrl *gomock.Controller) *MockVMPresetInterface

func (*MockVMPresetInterface) Create added in v0.3.0

func (*MockVMPresetInterface) Delete added in v0.3.0

func (_m *MockVMPresetInterface) Delete(name string, options *v1.DeleteOptions) error

func (*MockVMPresetInterface) EXPECT added in v0.3.0

func (_m *MockVMPresetInterface) EXPECT() *_MockVMPresetInterfaceRecorder

func (*MockVMPresetInterface) Get added in v0.3.0

func (*MockVMPresetInterface) List added in v0.3.0

func (*MockVMPresetInterface) Patch added in v0.3.0

func (_m *MockVMPresetInterface) Patch(name string, pt types.PatchType, data []byte, subresources ...string) (*v19.VirtualMachinePreset, error)

func (*MockVMPresetInterface) Update added in v0.3.0

type OfflineVirtualMachineInterface added in v0.3.0

type OfflineVirtualMachineInterface interface {
	Get(name string, options *k8smetav1.GetOptions) (*v1.OfflineVirtualMachine, error)
	List(opts *k8smetav1.ListOptions) (*v1.OfflineVirtualMachineList, error)
	Create(*v1.OfflineVirtualMachine) (*v1.OfflineVirtualMachine, error)
	Update(*v1.OfflineVirtualMachine) (*v1.OfflineVirtualMachine, error)
	Delete(name string, options *k8smetav1.DeleteOptions) error
}

OfflineVirtualMachineInterface provides convenience methods to work with offline virtual machines inside the cluster

type RoundTripCallback added in v0.4.0

type RoundTripCallback func(conn *websocket.Conn, resp *http.Response, err error) error

type VMInterface

type VMInterface interface {
	Get(name string, options k8smetav1.GetOptions) (*v1.VirtualMachine, error)
	List(opts k8smetav1.ListOptions) (*v1.VirtualMachineList, error)
	Create(*v1.VirtualMachine) (*v1.VirtualMachine, error)
	Update(*v1.VirtualMachine) (*v1.VirtualMachine, error)
	Delete(name string, options *k8smetav1.DeleteOptions) error
	Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.VirtualMachine, err error)
	SerialConsole(name string, in io.Reader, out io.Writer) error
	VNC(name string, in io.Reader, out io.Writer) error
}

type VMPresetInterface added in v0.3.0

type VMPresetInterface interface {
	Get(name string, options k8smetav1.GetOptions) (*v1.VirtualMachinePreset, error)
	List(opts k8smetav1.ListOptions) (*v1.VirtualMachinePresetList, error)
	Create(*v1.VirtualMachinePreset) (*v1.VirtualMachinePreset, error)
	Update(*v1.VirtualMachinePreset) (*v1.VirtualMachinePreset, error)
	Delete(name string, options *k8smetav1.DeleteOptions) error
	Patch(name string, pt types.PatchType, data []byte, subresources ...string) (result *v1.VirtualMachinePreset, err error)
}

type VirtHandlerClient added in v0.0.3

type VirtHandlerClient interface {
	ForNode(nodeName string) VirtHandlerConn
}

func NewVirtHandlerClient added in v0.0.3

func NewVirtHandlerClient(client KubevirtClient) VirtHandlerClient

type VirtHandlerConn added in v0.0.3

type VirtHandlerConn interface {
	ConnectionDetails() (ip string, port string, err error)
	ConsoleURI(vm *virtv1.VirtualMachine) (*url.URL, error)
	Pod() (pod *v1.Pod, err error)
}

type WebsocketRoundTripper added in v0.4.0

type WebsocketRoundTripper struct {
	Dialer *websocket.Dialer
	Do     RoundTripCallback
}

func (*WebsocketRoundTripper) RoundTrip added in v0.4.0

func (d *WebsocketRoundTripper) RoundTrip(r *http.Request) (*http.Response, error)

Jump to

Keyboard shortcuts

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