Documentation ¶
Index ¶
- func NewCRDStorage(client ClientInterface) storage.PersistenceLayer
- type Client
- func (c *Client) Create(obj Object) (Object, error)
- func (c *Client) Delete(name string, options *v1.DeleteOptions) error
- func (c *Client) Get(name string) (Object, error)
- func (c *Client) List(opts v1.ListOptions) (Collection, error)
- func (c *Client) NewCollection() Collection
- func (c *Client) NewObject() Object
- func (c *Client) Update(obj Object) (Object, error)
- type ClientInterface
- type Collection
- type Object
- type ResourceCollection
- type ResourceObject
- type ResourceSpec
- type ResourceStatus
- type ResourcesConfigCollection
- type ResourcesConfigObject
- type ResourcesConfigSpec
- type Type
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewCRDStorage ¶
func NewCRDStorage(client ClientInterface) storage.PersistenceLayer
NewCRDStorage creates a Custom Resource Definition persistence layer
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client implements a true CRD rest client
func (*Client) Delete ¶
func (c *Client) Delete(name string, options *v1.DeleteOptions) error
Delete implements ClientInterface
func (*Client) List ¶
func (c *Client) List(opts v1.ListOptions) (Collection, error)
List implements ClientInterface
func (*Client) NewCollection ¶
func (c *Client) NewCollection() Collection
NewCollection implements ClientInterface
type ClientInterface ¶
type ClientInterface interface { // NewObject instantiates a new object of the type supported by the client NewObject() Object // NewCollection instantiates a new collection of the type supported by the client NewCollection() Collection // Create a new object Create(obj Object) (Object, error) // Update an existing object, fails if object does not exist Update(obj Object) (Object, error) // Delete an existing object, fails if objects does not exist Delete(name string, options *v1.DeleteOptions) error // Get an existing object Get(name string) (Object, error) // LIst existing objects List(opts v1.ListOptions) (Collection, error) }
ClientInterface is used for testing.
func NewResourceClient ¶
func NewResourceClient() (ClientInterface, error)
NewResourceClient creates a CRD rest client for common.Resource
func NewResourceConfigClient ¶
func NewResourceConfigClient() (ClientInterface, error)
NewResourceConfigClient creates a CRD rest client for common.Resource
func NewTestResourceClient ¶
func NewTestResourceClient() ClientInterface
NewTestResourceClient creates a fake CRD rest client for common.Resource
func NewTestResourceConfigClient ¶
func NewTestResourceConfigClient() ClientInterface
NewTestResourceConfigClient creates a fake CRD rest client for common.Resource
type Collection ¶
Collection is a list of Object interface.
type Object ¶
type Object interface { runtime.Object GetName() string FromItem(item common.Item) ToItem() common.Item }
Object extends the runtime.Object interface. CRD are just a representation of the actual boskos object which should implements the common.Item interface.
type ResourceCollection ¶
type ResourceCollection struct { v1.TypeMeta `json:",inline"` v1.ListMeta `json:"metadata,omitempty"` Items []*ResourceObject `json:"items"` }
ResourceCollection is the Collection implementation
func (*ResourceCollection) DeepCopyObject ¶
func (in *ResourceCollection) DeepCopyObject() runtime.Object
DeepCopyObject implements Collection interface
func (*ResourceCollection) GetItems ¶
func (in *ResourceCollection) GetItems() []Object
GetItems implements Collection interface
func (*ResourceCollection) SetItems ¶
func (in *ResourceCollection) SetItems(objects []Object)
SetItems implements Collection interface
type ResourceObject ¶
type ResourceObject struct { v1.TypeMeta `json:",inline"` v1.ObjectMeta `json:"metadata,omitempty"` Spec ResourceSpec `json:"spec,omitempty"` Status ResourceStatus `json:"status,omitempty"` }
ResourceObject represents common.ResourceObject. It implements the Object interface.
func (*ResourceObject) DeepCopyObject ¶
func (in *ResourceObject) DeepCopyObject() runtime.Object
DeepCopyObject implements runtime.Object interface
func (*ResourceObject) FromItem ¶
func (in *ResourceObject) FromItem(i common.Item)
FromItem implements Object interface
func (*ResourceObject) GetName ¶
func (in *ResourceObject) GetName() string
GetName returns a unique identifier for a given resource
func (*ResourceObject) ToItem ¶
func (in *ResourceObject) ToItem() common.Item
ToItem implements Object interface
type ResourceSpec ¶
type ResourceSpec struct {
Type string `json:"type"`
}
ResourceSpec holds information that are not likely to change
type ResourceStatus ¶
type ResourceStatus struct { State string `json:"state,omitempty"` Owner string `json:"owner"` LastUpdate time.Time `json:"lastUpdate,omitempty"` UserData *common.UserData `json:"userData,omitempty"` }
ResourceStatus holds information that are likely to change
type ResourcesConfigCollection ¶
type ResourcesConfigCollection struct { v1.TypeMeta `json:",inline"` v1.ListMeta `json:"metadata,omitempty"` Items []*ResourcesConfigObject `json:"items"` }
ResourcesConfigCollection implements the Collections interface
func (*ResourcesConfigCollection) DeepCopyObject ¶
func (in *ResourcesConfigCollection) DeepCopyObject() runtime.Object
DeepCopyObject implements the runtime.Object interface
func (*ResourcesConfigCollection) GetItems ¶
func (in *ResourcesConfigCollection) GetItems() []Object
GetItems implements the Collection interface
func (*ResourcesConfigCollection) SetItems ¶
func (in *ResourcesConfigCollection) SetItems(objects []Object)
SetItems implements the Collection interface
type ResourcesConfigObject ¶
type ResourcesConfigObject struct { v1.TypeMeta `json:",inline"` v1.ObjectMeta `json:"metadata,omitempty"` Spec ResourcesConfigSpec `json:"spec"` }
ResourcesConfigObject holds generalized configuration information about how the resource needs to be created. Some Resource might not have a ResourceConfig (Example Project)
func (*ResourcesConfigObject) DeepCopyObject ¶
func (in *ResourcesConfigObject) DeepCopyObject() runtime.Object
DeepCopyObject implements the runtime.Object interface
func (*ResourcesConfigObject) FromItem ¶
func (in *ResourcesConfigObject) FromItem(i common.Item)
FromItem implements the Object interface
func (*ResourcesConfigObject) GetName ¶
func (in *ResourcesConfigObject) GetName() string
GetName implements the Object interface
func (*ResourcesConfigObject) ToItem ¶
func (in *ResourcesConfigObject) ToItem() common.Item
ToItem implements the Object interface
type ResourcesConfigSpec ¶
type ResourcesConfigSpec struct { Config common.ConfigType `json:"config"` Needs common.ResourceNeeds `json:"needs"` }
ResourcesConfigSpec holds config implementation specific configuration as well as resource needs