Documentation
¶
Overview ¶
Package client is a Go client for Ignite resources.
For example, to list running VMs (the equivalent of "ignite vm ls"), and update the VM with a new IP address:
package main
import (
"context"
"fmt"
"net"
"github.com/weaveworks/ignite/pkg/client"
)
func main() {
// List VMs managed by Ignite
vmList, err := client.VMs().List()
if err != nil {
panic(err)
}
for _, vm := range vmList {
// Modify the object
vm.Status.IPAddresses = append(vm.Status.IPAddresses, net.IP{127,0,0,1})
// Save the new VM state
if err := client.VMs().Set(vm); err != nil {
panic(err)
}
}
// Get a specific image, and print its size
myImage, err := client.Images().Get("my-image")
if err != nil {
panic(err)
}
fmt.Printf("Image my-vm size: %s\n", myImage.Spec.Source.Size.String())
// Use the dynamic client
myVM, err := client.Dynamic("VM").Get("my-vm")
if err != nil {
panic(err)
}
fmt.Printf("VM my-vm cpus: %d\n", myVM.Spec.CPUs)
}
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct {
*IgniteInternalClient
}
Client is a struct providing high-level access to objects in a storage The resource-specific client interfaces are automatically generated based off client_resource_template.go. The auto-generation can be done with hack/client.sh At the moment IgniteInternalClient is the default client. If more than this client is created in the future, the IgniteInternalClient will be accessible under Client.IgniteInternal() instead.
type DynamicClient ¶
type DynamicClient interface {
// New returns a new Object of its kind
New() runtime.Object
// Get returns an Object matching the UID from the storage
Get(runtime.UID) (runtime.Object, error)
// Set saves an Object into the persistent storage
Set(runtime.Object) error
// Patch performs a strategic merge patch on the object with
// the given UID, using the byte-encoded patch given
Patch(runtime.UID, []byte) error
// Find returns an Object based on the given filter, filters can
// match e.g. the Object's Name, UID or a specific property
Find(filter filterer.BaseFilter) (runtime.Object, error)
// FindAll returns multiple Objects based on the given filter, filters can
// match e.g. the Object's Name, UID or a specific property
FindAll(filter filterer.BaseFilter) ([]runtime.Object, error)
// Delete deletes an Object from the storage
Delete(uid runtime.UID) error
// List returns a list of all Objects available
List() ([]runtime.Object, error)
}
DynamicClient is an interface for accessing API types generically
type IgniteInternalClient ¶ added in v0.5.0
type IgniteInternalClient struct {
// contains filtered or unexported fields
}
func NewIgniteInternalClient ¶ added in v0.5.0
func NewIgniteInternalClient(s storage.Storage) *IgniteInternalClient
func (*IgniteInternalClient) Dynamic ¶ added in v0.5.0
func (c *IgniteInternalClient) Dynamic(kind runtime.Kind) (dc DynamicClient)
Dynamic returns the DynamicClient for the Client instance, for the specific kind
func (*IgniteInternalClient) Images ¶ added in v0.5.0
func (c *IgniteInternalClient) Images() ImageClient
Images returns the ImageClient for the IgniteInternalClient instance
func (*IgniteInternalClient) Kernels ¶ added in v0.5.0
func (c *IgniteInternalClient) Kernels() KernelClient
Kernels returns the KernelClient for the IgniteInternalClient instance
func (*IgniteInternalClient) VMs ¶ added in v0.5.0
func (c *IgniteInternalClient) VMs() VMClient
VMs returns the VMClient for the IgniteInternalClient instance
type ImageClient ¶
type ImageClient interface {
// New returns a new Image
New() *api.Image
// Get returns the Image matching given UID from the storage
Get(runtime.UID) (*api.Image, error)
// Set saves the given Image into persistent storage
Set(*api.Image) error
// Patch performs a strategic merge patch on the object with
// the given UID, using the byte-encoded patch given
Patch(runtime.UID, []byte) error
// Find returns the Image matching the given filter, filters can
// match e.g. the Object's Name, UID or a specific property
Find(filter filterer.BaseFilter) (*api.Image, error)
// FindAll returns multiple Images matching the given filter, filters can
// match e.g. the Object's Name, UID or a specific property
FindAll(filter filterer.BaseFilter) ([]*api.Image, error)
// Delete deletes the Image with the given UID from the storage
Delete(uid runtime.UID) error
// List returns a list of all Images available
List() ([]*api.Image, error)
}
ImageClient is an interface for accessing Image-specific API objects
type KernelClient ¶
type KernelClient interface {
// New returns a new Kernel
New() *api.Kernel
// Get returns the Kernel matching given UID from the storage
Get(runtime.UID) (*api.Kernel, error)
// Set saves the given Kernel into persistent storage
Set(*api.Kernel) error
// Patch performs a strategic merge patch on the object with
// the given UID, using the byte-encoded patch given
Patch(runtime.UID, []byte) error
// Find returns the Kernel matching the given filter, filters can
// match e.g. the Object's Name, UID or a specific property
Find(filter filterer.BaseFilter) (*api.Kernel, error)
// FindAll returns multiple Kernels matching the given filter, filters can
// match e.g. the Object's Name, UID or a specific property
FindAll(filter filterer.BaseFilter) ([]*api.Kernel, error)
// Delete deletes the Kernel with the given UID from the storage
Delete(uid runtime.UID) error
// List returns a list of all Kernels available
List() ([]*api.Kernel, error)
}
KernelClient is an interface for accessing Kernel-specific API objects
type VMClient ¶
type VMClient interface {
// New returns a new VM
New() *api.VM
// Get returns the VM matching given UID from the storage
Get(runtime.UID) (*api.VM, error)
// Set saves the given VM into persistent storage
Set(*api.VM) error
// Patch performs a strategic merge patch on the object with
// the given UID, using the byte-encoded patch given
Patch(runtime.UID, []byte) error
// Find returns the VM matching the given filter, filters can
// match e.g. the Object's Name, UID or a specific property
Find(filter filterer.BaseFilter) (*api.VM, error)
// FindAll returns multiple VMs matching the given filter, filters can
// match e.g. the Object's Name, UID or a specific property
FindAll(filter filterer.BaseFilter) ([]*api.VM, error)
// Delete deletes the VM with the given UID from the storage
Delete(uid runtime.UID) error
// List returns a list of all VMs available
List() ([]*api.VM, error)
}
VMClient is an interface for accessing VM-specific API objects