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(context.TODO(), serviceClient, createOpts).Extract()
if err != nil {
	panic(err)
}
Example to Delete Cluster Template
clusterTemplateID := "dc6d336e3fc4c0a951b5698cd1236ee"
err := clustertemplates.Delete(context.TODO(), 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(context.TODO())
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(context.TODO(), 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"`
	Hidden              bool               `json:"hidden"`
}
    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"`
	Hidden              *bool             `json:"hidden,omitempty"`
}
    CreateOpts params
func (CreateOpts) ToClusterCreateMap ¶
func (opts CreateOpts) ToClusterCreateMap() (map[string]any, 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(ctx context.Context, 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.
type GetResult ¶
type GetResult struct {
	// contains filtered or unexported fields
}
    GetResult is the response of a Get operations.
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 any      `json:"value,omitempty"`
}
    func (UpdateOpts) ToClusterTemplateUpdateMap ¶
func (opts UpdateOpts) ToClusterTemplateUpdateMap() (map[string]any, 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[T UpdateOptsBuilder](ctx context.Context, client *gophercloud.ServiceClient, id string, opts []T) (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.