kutil

package
v1.4.4 Latest Latest
Warning

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

Go to latest
Published: Dec 21, 2016 License: Apache-2.0 Imports: 34 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TypeAutoscalingLaunchConfig = "autoscaling-config"
)

Variables

This section is empty.

Functions

func AddSSHIdentity

func AddSSHIdentity(sshConfig *ssh.ClientConfig, p string) error

func DeleteAutoScalingGroup

func DeleteAutoScalingGroup(cloud fi.Cloud, r *ResourceTracker) error

func DeleteAutoscalingLaunchConfiguration

func DeleteAutoscalingLaunchConfiguration(cloud fi.Cloud, r *ResourceTracker) error

func DeleteDhcpOptions

func DeleteDhcpOptions(cloud fi.Cloud, r *ResourceTracker) error

func DeleteELB

func DeleteELB(cloud fi.Cloud, r *ResourceTracker) error

func DeleteElasticIP

func DeleteElasticIP(cloud fi.Cloud, t *ResourceTracker) error

func DeleteIAMInstanceProfile

func DeleteIAMInstanceProfile(cloud fi.Cloud, r *ResourceTracker) error

func DeleteIAMRole

func DeleteIAMRole(cloud fi.Cloud, r *ResourceTracker) error

func DeleteInstance

func DeleteInstance(cloud fi.Cloud, t *ResourceTracker) error

func DeleteInternetGateway

func DeleteInternetGateway(cloud fi.Cloud, r *ResourceTracker) error

func DeleteKeypair

func DeleteKeypair(cloud fi.Cloud, r *ResourceTracker) error

func DeleteRouteTable

func DeleteRouteTable(cloud fi.Cloud, r *ResourceTracker) error

func DeleteSecurityGroup

func DeleteSecurityGroup(cloud fi.Cloud, t *ResourceTracker) error

func DeleteSubnet

func DeleteSubnet(cloud fi.Cloud, tracker *ResourceTracker) error

func DeleteVPC

func DeleteVPC(cloud fi.Cloud, r *ResourceTracker) error

func DeleteVolume

func DeleteVolume(cloud fi.Cloud, r *ResourceTracker) error

func DescribeDhcpOptions

func DescribeDhcpOptions(cloud fi.Cloud) ([]*ec2.DhcpOptions, error)

func DescribeELBs

func DescribeELBs(cloud fi.Cloud) ([]*elb.LoadBalancerDescription, map[string][]*elb.Tag, error)

func DescribeInternetGateways

func DescribeInternetGateways(cloud fi.Cloud) ([]*ec2.InternetGateway, error)

func DescribeInternetGatewaysIgnoreTags

func DescribeInternetGatewaysIgnoreTags(cloud fi.Cloud) ([]*ec2.InternetGateway, error)

DescribeInternetGatewaysIgnoreTags returns all ec2.InternetGateways, ignoring tags (gateways were not always tagged in kube-up)

func DescribeSecurityGroups

func DescribeSecurityGroups(cloud fi.Cloud) ([]*ec2.SecurityGroup, error)

func DescribeSubnets

func DescribeSubnets(cloud fi.Cloud) ([]*ec2.Subnet, error)

func DescribeVolumes

func DescribeVolumes(cloud fi.Cloud) ([]*ec2.Volume, error)

func FindASGName

func FindASGName(tags []*autoscaling.TagDescription) string

func FindCloudInstanceGroups

func FindCloudInstanceGroups(cloud fi.Cloud, cluster *api.Cluster, instancegroups []*api.InstanceGroup, warnUnmatched bool, nodes []v1.Node) (map[string]*CloudInstanceGroup, error)

func FindELBName

func FindELBName(tags []*elb.Tag) string

func FindName

func FindName(tags []*ec2.Tag) string

func GetInstanceUserData

func GetInstanceUserData(cloud awsup.AWSCloud, instanceID string) ([]byte, error)

Fetch instance UserData

func IsDependencyViolation

func IsDependencyViolation(err error) bool

func UserDataToString

func UserDataToString(userData []byte) (string, error)

Types

type CloudInstanceGroup

type CloudInstanceGroup struct {
	InstanceGroup *api.InstanceGroup
	ASGName       string
	Status        string
	Ready         []*CloudInstanceGroupInstance
	NeedUpdate    []*CloudInstanceGroupInstance
	// contains filtered or unexported fields
}

CloudInstanceGroup is the AWS ASG backing an InstanceGroup

func (*CloudInstanceGroup) Delete

func (g *CloudInstanceGroup) Delete(cloud fi.Cloud) error

func (*CloudInstanceGroup) MaxSize

func (c *CloudInstanceGroup) MaxSize() int

func (*CloudInstanceGroup) MinSize

func (c *CloudInstanceGroup) MinSize() int

func (*CloudInstanceGroup) RollingUpdate

func (n *CloudInstanceGroup) RollingUpdate(cloud fi.Cloud, force bool, interval time.Duration, k8sClient *release_1_3.Clientset) error

func (*CloudInstanceGroup) String

func (n *CloudInstanceGroup) String() string

type CloudInstanceGroupInstance

type CloudInstanceGroupInstance struct {
	ASGInstance *autoscaling.Instance
	Node        *v1.Node
}

CloudInstanceGroupInstance describes an instance in an autoscaling group

type ConvertKubeupCluster

type ConvertKubeupCluster struct {
	OldClusterName string
	NewClusterName string
	Cloud          fi.Cloud

	Clientset simple.Clientset

	ClusterConfig  *api.Cluster
	InstanceGroups []*api.InstanceGroup

	// Channel is the channel that we are upgrading to
	Channel *api.Channel
}

ConvertKubeupCluster performs a conversion of a cluster that was imported from kube-up

func (*ConvertKubeupCluster) Upgrade

func (x *ConvertKubeupCluster) Upgrade() error

type CreateKubecfg

type CreateKubecfg struct {
	ClusterName      string
	KeyStore         fi.CAStore
	SecretStore      fi.SecretStore
	MasterPublicName string
	// contains filtered or unexported fields
}

func (*CreateKubecfg) Close

func (c *CreateKubecfg) Close()

func (*CreateKubecfg) WriteKubecfg

func (c *CreateKubecfg) WriteKubecfg() error

type DeleteCluster

type DeleteCluster struct {
	ClusterName string
	Cloud       fi.Cloud
}

DeleteCluster implements deletion of cluster cloud resources The algorithm is pretty simple: it discovers all the resources it can (primary using tags), and then it repeatedly attempts to delete them all until they are all deleted. There are a few tweaks to that approach, like choosing a default ordering, but it is not much smarter. Cluster deletion is a fairly rare operation anyway, and also some dependencies are invisible (e.g. ELB dependencies).

func (*DeleteCluster) DeleteResources

func (c *DeleteCluster) DeleteResources(resources map[string]*ResourceTracker) error

func (*DeleteCluster) ListResources

func (c *DeleteCluster) ListResources() (map[string]*ResourceTracker, error)

type DeleteInstanceGroup

type DeleteInstanceGroup struct {
	Cluster   *api.Cluster
	Cloud     fi.Cloud
	Clientset simple.Clientset
}

DeleteInstanceGroup removes the cloud resources for an InstanceGroup

func (*DeleteInstanceGroup) DeleteInstanceGroup

func (c *DeleteInstanceGroup) DeleteInstanceGroup(group *api.InstanceGroup) error

type ImportCluster

type ImportCluster struct {
	ClusterName string
	Cloud       fi.Cloud

	Clientset simple.Clientset
}

ImportCluster tries to reverse engineer an existing k8s cluster, adding it to the cluster registry

func (*ImportCluster) ImportAWSCluster

func (x *ImportCluster) ImportAWSCluster() error

type KubeconfigBuilder

type KubeconfigBuilder struct {
	KubectlPath    string
	KubeconfigPath string

	KubeMasterIP string

	Context string

	KubeBearerToken string
	KubeUser        string
	KubePassword    string

	CACert      string
	KubecfgCert string
	KubecfgKey  string
}

KubeconfigBuilder builds a kubecfg file This logic previously lives in the bash scripts (create-kubeconfig in cluster/common.sh)

func (*KubeconfigBuilder) Init

func (c *KubeconfigBuilder) Init()

func (*KubeconfigBuilder) WriteKubecfg

func (c *KubeconfigBuilder) WriteKubecfg() error

type Kubectl

type Kubectl struct {
	KubectlPath string
}

func (*Kubectl) GetConfig

func (k *Kubectl) GetConfig(minify bool) (*KubectlConfig, error)

func (*Kubectl) GetCurrentContext

func (k *Kubectl) GetCurrentContext() (string, error)

type KubectlCluster

type KubectlCluster struct {
	Server string `json:"server"`
}

type KubectlClusterWithName

type KubectlClusterWithName struct {
	Name    string         `json:"name"`
	Cluster KubectlCluster `json:"cluster"`
}

type KubectlConfig

type KubectlConfig struct {
	Kind           string                    `json:"kind"`
	ApiVersion     string                    `json:"apiVersion"`
	CurrentContext string                    `json:"current-context"`
	Clusters       []*KubectlClusterWithName `json:"clusters"`
	Contexts       []*KubectlContextWithName `json:"contexts"`
	Users          []*KubectlUserWithName    `json:"users"`
}

type KubectlContext

type KubectlContext struct {
	Cluster string `json:"cluster"`
	User    string `json:"user"`
}

type KubectlContextWithName

type KubectlContextWithName struct {
	Name    string         `json:"name"`
	Context KubectlContext `json:"context"`
}

type KubectlUser

type KubectlUser struct {
	ClientCertificateData string `json:"client-certificate-data"`
	ClientKeyData         string `json:"client-key-data"`
	Password              string `json:"password"`
	Username              string `json:"username"`
}

type KubectlUserWithName

type KubectlUserWithName struct {
	Name string      `json:"name"`
	User KubectlUser `json:"user"`
}

type NodeSSH

type NodeSSH struct {
	Hostname  string
	SSHConfig ssh.ClientConfig
	// contains filtered or unexported fields
}

func (*NodeSSH) GetSSHClient

func (m *NodeSSH) GetSSHClient() (*ssh.Client, error)

func (*NodeSSH) Root

func (m *NodeSSH) Root() (*vfs.SSHPath, error)

type ResourceTracker

type ResourceTracker struct {
	Name string
	Type string
	ID   string
	// contains filtered or unexported fields
}

func ListAutoScalingGroups

func ListAutoScalingGroups(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

func ListAutoScalingLaunchConfigurations

func ListAutoScalingLaunchConfigurations(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

func ListDhcpOptions

func ListDhcpOptions(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

func ListELBs

func ListELBs(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

func ListIAMInstanceProfiles

func ListIAMInstanceProfiles(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

func ListIAMRoles

func ListIAMRoles(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

func ListInstances

func ListInstances(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

func ListInternetGateways

func ListInternetGateways(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

func ListKeypairs

func ListKeypairs(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

func ListRoute53Records

func ListRoute53Records(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

func ListRouteTables

func ListRouteTables(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

func ListSecurityGroups

func ListSecurityGroups(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

func ListSubnets

func ListSubnets(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

func ListVPCs

func ListVPCs(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

func ListVolumes

func ListVolumes(cloud fi.Cloud, clusterName string) ([]*ResourceTracker, error)

type RollingUpdateCluster

type RollingUpdateCluster struct {
	Cloud fi.Cloud

	MasterInterval time.Duration
	NodeInterval   time.Duration

	Force bool
}

RollingUpdateCluster restarts cluster nodes

func (*RollingUpdateCluster) RollingUpdate

func (c *RollingUpdateCluster) RollingUpdate(groups map[string]*CloudInstanceGroup, k8sClient *release_1_3.Clientset) error

type UserDataConfiguration

type UserDataConfiguration struct {
	Version  string
	Settings map[string]string
}

func ParseUserDataConfiguration

func ParseUserDataConfiguration(raw []byte) (*UserDataConfiguration, error)

func (*UserDataConfiguration) ParseBool

func (u *UserDataConfiguration) ParseBool(key string) *bool

func (*UserDataConfiguration) ParseCert

func (u *UserDataConfiguration) ParseCert(key string) (*fi.Certificate, error)

func (*UserDataConfiguration) ParseInt

func (u *UserDataConfiguration) ParseInt(key string) (*int, error)

func (*UserDataConfiguration) ParseKey

func (u *UserDataConfiguration) ParseKey(key string) (*fi.PrivateKey, error)

Jump to

Keyboard shortcuts

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