openstack

package
v1.20.3 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2021 License: Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ProviderName            = "openstack"
	ClusterAutoHealingLabel = "auto_healing_enabled"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type OpenStackCloudProvider

type OpenStackCloudProvider struct {
	KubeClient           kubernetes.Interface
	Nova                 *gophercloud.ServiceClient
	Heat                 *gophercloud.ServiceClient
	Magnum               *gophercloud.ServiceClient
	Cinder               *gophercloud.ServiceClient
	Config               config.Config
	ResourceStackMapping map[string]ResourceStackRelationship
}

OpenStack is an implementation of cloud provider Interface for OpenStack.

func (OpenStackCloudProvider) Enabled

func (provider OpenStackCloudProvider) Enabled() bool

Enabled decides if the repair should be triggered. There are two conditions that we disable the repair: - The cluster admin disables the auto healing via OpenStack API. - The Magnum cluster is not in stable status.

func (OpenStackCloudProvider) GetName

func (provider OpenStackCloudProvider) GetName() string

func (OpenStackCloudProvider) Repair

func (provider OpenStackCloudProvider) Repair(nodes []healthcheck.NodeInfo) error

Repair For master nodes: detach etcd and docker volumes, find the root

        volume, then shutdown the VM, marks the both the VM and the root
        volume (heat resource) as "unhealthy" then trigger Heat stack update
        in order to rebuild the node. The information this function needs:
        - Nova VM ID
        - Root volume ID
	       - Heat stack ID and resource ID.

For worker nodes: Call Magnum resize API directly.

func (OpenStackCloudProvider) UpdateHealthStatus added in v1.19.0

func (provider OpenStackCloudProvider) UpdateHealthStatus(masters []healthcheck.NodeInfo, workers []healthcheck.NodeInfo) error

UpdateHealthStatus can update the cluster health status to reflect the real-time health status of the k8s cluster.

type ResourceStackRelationship

type ResourceStackRelationship struct {
	ResourceID   string
	ResourceName string
	StackID      string
	StackName    string
}

Jump to

Keyboard shortcuts

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