Documentation
¶
Overview ¶
Package clustertemplates contains functionality for working with Magnum Cluster Templates resources.
Package clustertemplates provides information and interaction with the cluster-templates through the OpenStack Container Infra service.
Example to Create Cluster Template
boolFalse := false
boolTrue := true
createOpts := clustertemplates.CreateOpts{
Name: "test-cluster-template",
Labels: map[string]string{},
FixedSubnet: "",
MasterFlavorID: "",
NoProxy: "10.0.0.0/8,172.0.0.0/8,192.0.0.0/8,localhost",
HTTPSProxy: "http://10.164.177.169:8080",
TLSDisabled: &boolFalse,
KeyPairID: "kp",
Public: &boolFalse,
HTTPProxy: "http://10.164.177.169:8080",
ServerType: "vm",
ExternalNetworkID: "public",
ImageID: "fedora-atomic-latest",
VolumeDriver: "cinder",
RegistryEnabled: &boolFalse,
DockerStorageDriver: "devicemapper",
NetworkDriver: "flannel",
FixedNetwork: "",
COE: "kubernetes",
FlavorID: "m1.small",
MasterLBEnabled: &boolTrue,
DNSNameServer: "8.8.8.8",
}
clustertemplate, err := clustertemplates.Create(serviceClient, createOpts).Extract()
if err != nil {
panic(err)
}
Example to Delete Cluster Template
clusterTemplateID := "dc6d336e3fc4c0a951b5698cd1236ee"
err := clustertemplates.Delete(serviceClient, clusterTemplateID).ExtractErr()
if err != nil {
panic(err)
}
Example to List Clusters Templates
listOpts := clustertemplates.ListOpts{
Limit: 20,
}
allPages, err := clustertemplates.List(serviceClient, listOpts).AllPages()
if err != nil {
panic(err)
}
allClusterTemplates, err := clusters.ExtractClusterTemplates(allPages)
if err != nil {
panic(err)
}
for _, clusterTemplate := range allClusterTemplates {
fmt.Printf("%+v\n", clusterTemplate)
}
Example to Update Cluster Template
updateOpts := []clustertemplates.UpdateOptsBuilder{
clustertemplates.UpdateOpts{
Op: clustertemplates.ReplaceOp,
Path: "/master_lb_enabled",
Value: "True",
},
clustertemplates.UpdateOpts{
Op: clustertemplates.ReplaceOp,
Path: "/registry_enabled",
Value: "True",
},
}
clustertemplate, err := clustertemplates.Update(serviceClient, updateOpts).Extract()
if err != nil {
panic(err)
}
Index ¶
- func List(client *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager
- type ClusterTemplate
- type ClusterTemplatePage
- type CreateOpts
- type CreateOptsBuilder
- type CreateResult
- type DeleteResult
- type GetResult
- type ListOpts
- type ListOptsBuilder
- type UpdateOp
- type UpdateOpts
- type UpdateOptsBuilder
- type UpdateResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func List ¶
func List(client *gophercloud.ServiceClient, opts ListOptsBuilder) pagination.Pager
List returns a Pager which allows you to iterate over a collection of cluster-templates. It accepts a ListOptsBuilder, which allows you to sort the returned collection for greater efficiency.
Types ¶
type ClusterTemplate ¶
type ClusterTemplate struct {
APIServerPort int `json:"apiserver_port"`
COE string `json:"coe"`
ClusterDistro string `json:"cluster_distro"`
CreatedAt time.Time `json:"created_at"`
DNSNameServer string `json:"dns_nameserver"`
DockerStorageDriver string `json:"docker_storage_driver"`
DockerVolumeSize int `json:"docker_volume_size"`
ExternalNetworkID string `json:"external_network_id"`
FixedNetwork string `json:"fixed_network"`
FixedSubnet string `json:"fixed_subnet"`
FlavorID string `json:"flavor_id"`
FloatingIPEnabled bool `json:"floating_ip_enabled"`
HTTPProxy string `json:"http_proxy"`
HTTPSProxy string `json:"https_proxy"`
ImageID string `json:"image_id"`
InsecureRegistry string `json:"insecure_registry"`
KeyPairID string `json:"keypair_id"`
Labels map[string]string `json:"labels"`
Links []gophercloud.Link `json:"links"`
MasterFlavorID string `json:"master_flavor_id"`
MasterLBEnabled bool `json:"master_lb_enabled"`
Name string `json:"name"`
NetworkDriver string `json:"network_driver"`
NoProxy string `json:"no_proxy"`
ProjectID string `json:"project_id"`
Public bool `json:"public"`
RegistryEnabled bool `json:"registry_enabled"`
ServerType string `json:"server_type"`
TLSDisabled bool `json:"tls_disabled"`
UUID string `json:"uuid"`
UpdatedAt time.Time `json:"updated_at"`
UserID string `json:"user_id"`
VolumeDriver string `json:"volume_driver"`
}
Represents a template for a Cluster Template
func ExtractClusterTemplates ¶
func ExtractClusterTemplates(r pagination.Page) ([]ClusterTemplate, error)
ExtractClusterTemplates accepts a Page struct, specifically a ClusterTemplatePage struct, and extracts the elements into a slice of cluster templates structs. In other words, a generic collection is mapped into a relevant slice.
type ClusterTemplatePage ¶
type ClusterTemplatePage struct {
pagination.LinkedPageBase
}
ClusterTemplatePage is the page returned by a pager when traversing over a collection of cluster-templates.
func (ClusterTemplatePage) IsEmpty ¶
func (r ClusterTemplatePage) IsEmpty() (bool, error)
IsEmpty checks whether a ClusterTemplatePage struct is empty.
func (ClusterTemplatePage) NextPageURL ¶
func (r ClusterTemplatePage) NextPageURL() (string, error)
NextPageURL is invoked when a paginated collection of cluster template has reached the end of a page and the pager seeks to traverse over a new one. In order to do this, it needs to construct the next page's URL.
type CreateOpts ¶
type CreateOpts struct {
APIServerPort *int `json:"apiserver_port,omitempty"`
COE string `json:"coe" required:"true"`
DNSNameServer string `json:"dns_nameserver,omitempty"`
DockerStorageDriver string `json:"docker_storage_driver,omitempty"`
DockerVolumeSize *int `json:"docker_volume_size,omitempty"`
ExternalNetworkID string `json:"external_network_id,omitempty"`
FixedNetwork string `json:"fixed_network,omitempty"`
FixedSubnet string `json:"fixed_subnet,omitempty"`
FlavorID string `json:"flavor_id,omitempty"`
FloatingIPEnabled *bool `json:"floating_ip_enabled,omitempty"`
HTTPProxy string `json:"http_proxy,omitempty"`
HTTPSProxy string `json:"https_proxy,omitempty"`
ImageID string `json:"image_id" required:"true"`
InsecureRegistry string `json:"insecure_registry,omitempty"`
KeyPairID string `json:"keypair_id,omitempty"`
Labels map[string]string `json:"labels,omitempty"`
MasterFlavorID string `json:"master_flavor_id,omitempty"`
MasterLBEnabled *bool `json:"master_lb_enabled,omitempty"`
Name string `json:"name,omitempty"`
NetworkDriver string `json:"network_driver,omitempty"`
NoProxy string `json:"no_proxy,omitempty"`
Public *bool `json:"public,omitempty"`
RegistryEnabled *bool `json:"registry_enabled,omitempty"`
ServerType string `json:"server_type,omitempty"`
TLSDisabled *bool `json:"tls_disabled,omitempty"`
VolumeDriver string `json:"volume_driver,omitempty"`
}
CreateOpts params
func (CreateOpts) ToClusterCreateMap ¶
func (opts CreateOpts) ToClusterCreateMap() (map[string]interface{}, error)
ToClusterCreateMap constructs a request body from CreateOpts.
type CreateOptsBuilder ¶
CreateOptsBuilder Builder.
type CreateResult ¶
type CreateResult struct {
// contains filtered or unexported fields
}
CreateResult is the response of a Create operations.
func Create ¶
func Create(client *gophercloud.ServiceClient, opts CreateOptsBuilder) (r CreateResult)
Create requests the creation of a new cluster.
func (CreateResult) Extract ¶
func (r CreateResult) Extract() (*ClusterTemplate, error)
Extract is a function that accepts a result and extracts a cluster-template resource.
type DeleteResult ¶
type DeleteResult struct {
gophercloud.ErrResult
}
DeleteResult is the result from a Delete operation. Call its ExtractErr method to determine if the call succeeded or failed.
func Delete ¶
func Delete(client *gophercloud.ServiceClient, id string) (r DeleteResult)
Delete deletes the specified cluster ID.
type GetResult ¶
type GetResult struct {
// contains filtered or unexported fields
}
GetResult is the response of a Get operations.
func Get ¶
func Get(client *gophercloud.ServiceClient, id string) (r GetResult)
Get retrieves a specific cluster-template based on its unique ID.
func (GetResult) Extract ¶
func (r GetResult) Extract() (*ClusterTemplate, error)
Extract is a function that accepts a result and extracts a cluster-template resource.
type ListOpts ¶
type ListOpts struct {
Marker string `q:"marker"`
Limit int `q:"limit"`
SortKey string `q:"sort_key"`
SortDir string `q:"sort_dir"`
}
ListOpts allows the sorting of paginated collections through the API. SortKey allows you to sort by a particular cluster templates attribute. SortDir sets the direction, and is either `asc' or `desc'. Marker and Limit are used for pagination.
func (ListOpts) ToClusterTemplateListQuery ¶
ToClusterTemplateListQuery formats a ListOpts into a query string.
type ListOptsBuilder ¶
ListOptsBuilder allows extensions to add additional parameters to the List request.
type UpdateOpts ¶
type UpdateOpts struct {
Op UpdateOp `json:"op" required:"true"`
Path string `json:"path" required:"true"`
Value interface{} `json:"value,omitempty"`
}
func (UpdateOpts) ToClusterTemplateUpdateMap ¶
func (opts UpdateOpts) ToClusterTemplateUpdateMap() (map[string]interface{}, error)
ToClusterUpdateMap assembles a request body based on the contents of UpdateOpts.
type UpdateOptsBuilder ¶
UpdateOptsBuilder allows extensions to add additional parameters to the Update request.
type UpdateResult ¶
type UpdateResult struct {
// contains filtered or unexported fields
}
UpdateResult is the response of a Update operations.
func Update ¶
func Update(client *gophercloud.ServiceClient, id string, opts []UpdateOptsBuilder) (r UpdateResult)
Update implements cluster updated request.
func (UpdateResult) Extract ¶
func (r UpdateResult) Extract() (*ClusterTemplate, error)
Extract is a function that accepts a result and extracts a cluster-template resource.