model

package
v0.0.0-...-7a4df5e Latest Latest
Warning

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

Go to latest
Published: Dec 1, 2017 License: Apache-2.0 Imports: 40 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultEtcdVolumeSize    = 20
	DefaultAWSEtcdVolumeType = "gp2"
	DefaultGCEEtcdVolumeType = "pd-ssd"
)
View Source
const BastionELBDefaultIdleTimeout = 5 * time.Minute
View Source
const BastionELBSecurityGroupPrefix = "bastion"
View Source
const RolePolicyTemplate = `` /* 177-byte string literal not displayed */

Variables

View Source
var UseLegacyELBName = featureflag.New("UseLegacyELBName", featureflag.Bool(false))

Functions

func NewTemplateResource

func NewTemplateResource(key string, definition string, functions template.FuncMap, context interface{}) (*templateResource, error)

Types

type BastionModelBuilder

type BastionModelBuilder struct {
	*KopsModelContext
	Lifecycle         *fi.Lifecycle
	SecurityLifecycle *fi.Lifecycle
}

func (*BastionModelBuilder) Build

type BootstrapScript

type BootstrapScript struct {
	NodeUpSource        string
	NodeUpSourceHash    string
	NodeUpConfigBuilder func(ig *kops.InstanceGroup) (*nodeup.Config, error)
}

BootstrapScript creates the bootstrap script

func (*BootstrapScript) ResourceNodeUp

func (b *BootstrapScript) ResourceNodeUp(ig *kops.InstanceGroup, cs *kops.ClusterSpec) (*fi.ResourceHolder, error)

ResourceNodeUp generates and returns a nodeup (bootstrap) script from a template file, substituting in specific env vars & cluster spec configuration

type DNSModelBuilder

type DNSModelBuilder struct {
	*KopsModelContext
	Lifecycle *fi.Lifecycle
}

DNSModelBuilder builds DNS related model objects

func (*DNSModelBuilder) Build

type ExternalAccessModelBuilder

type ExternalAccessModelBuilder struct {
	*KopsModelContext
	Lifecycle *fi.Lifecycle
}

ExternalAccessModelBuilder configures security group rules for external access (SSHAccess, KubernetesAPIAccess)

func (*ExternalAccessModelBuilder) Build

type FirewallModelBuilder

type FirewallModelBuilder struct {
	*KopsModelContext
	Lifecycle *fi.Lifecycle
}

FirewallModelBuilder configures firewall network objects

func (*FirewallModelBuilder) Build

type IAMModelBuilder

type IAMModelBuilder struct {
	*KopsModelContext

	Lifecycle *fi.Lifecycle
}

IAMModelBuilder configures IAM objects

func (*IAMModelBuilder) Build

type KopsModelContext

type KopsModelContext struct {
	Cluster *kops.Cluster

	Region         string
	InstanceGroups []*kops.InstanceGroup

	SSHPublicKeys [][]byte
}

func (*KopsModelContext) AutoscalingGroupName

func (b *KopsModelContext) AutoscalingGroupName(ig *kops.InstanceGroup) string

func (*KopsModelContext) CloudTags

func (m *KopsModelContext) CloudTags(name string, shared bool) map[string]string

CloudTags computes the tags to apply to a normal cloud resource with the specified name

func (*KopsModelContext) CloudTagsForInstanceGroup

func (m *KopsModelContext) CloudTagsForInstanceGroup(ig *kops.InstanceGroup) (map[string]string, error)

CloudTagsForInstanceGroup computes the tags to apply to instances in the specified InstanceGroup

func (*KopsModelContext) ClusterName

func (m *KopsModelContext) ClusterName() string

func (*KopsModelContext) ELBName

func (b *KopsModelContext) ELBName(prefix string) string

func (*KopsModelContext) ELBSecurityGroupName

func (b *KopsModelContext) ELBSecurityGroupName(prefix string) string

func (*KopsModelContext) FindInstanceGroup

func (m *KopsModelContext) FindInstanceGroup(name string) *kops.InstanceGroup

FindInstanceGroup returns the instance group with the matching Name (or nil if not found)

func (*KopsModelContext) FindSubnet

func (m *KopsModelContext) FindSubnet(name string) *kops.ClusterSubnetSpec

FindSubnet returns the subnet with the matching Name (or nil if not found)

func (*KopsModelContext) FindZonesForInstanceGroup

func (m *KopsModelContext) FindZonesForInstanceGroup(ig *kops.InstanceGroup) ([]string, error)

FindZonesForInstanceGroup finds the zones for an InstanceGroup

func (*KopsModelContext) GatherSubnets

func (m *KopsModelContext) GatherSubnets(ig *kops.InstanceGroup) ([]*kops.ClusterSubnetSpec, error)

GatherSubnets maps the subnet names in an InstanceGroup to the ClusterSubnetSpec objects (which are stored on the Cluster)

func (*KopsModelContext) GetELBName32

func (m *KopsModelContext) GetELBName32(prefix string) string

Will attempt to calculate a meaningful name for an ELB given a prefix Will never return a string longer than 32 chars Note this is _not_ the primary identifier for the ELB - we use the Name tag for that.

func (*KopsModelContext) IAMName

func (b *KopsModelContext) IAMName(role kops.InstanceGroupRole) string

func (*KopsModelContext) InstanceName

func (b *KopsModelContext) InstanceName(ig *kops.InstanceGroup, suffix string) string

func (*KopsModelContext) IsKubernetesGTE

func (c *KopsModelContext) IsKubernetesGTE(version string) bool

IsKubernetesGTE checks if the kubernetes version is at least version, ignoring prereleases / patches

func (*KopsModelContext) KubernetesVersion

func (c *KopsModelContext) KubernetesVersion() semver.Version

KubernetesVersion parses the semver version of kubernetes, from the cluster spec

func (*KopsModelContext) LinkToAutoscalingGroup

func (b *KopsModelContext) LinkToAutoscalingGroup(ig *kops.InstanceGroup) *awstasks.AutoscalingGroup

func (*KopsModelContext) LinkToDNSZone

func (b *KopsModelContext) LinkToDNSZone() *awstasks.DNSZone

func (*KopsModelContext) LinkToELB

func (b *KopsModelContext) LinkToELB(prefix string) *awstasks.LoadBalancer

func (*KopsModelContext) LinkToELBSecurityGroup

func (b *KopsModelContext) LinkToELBSecurityGroup(prefix string) *awstasks.SecurityGroup

func (*KopsModelContext) LinkToIAMInstanceProfile

func (b *KopsModelContext) LinkToIAMInstanceProfile(ig *kops.InstanceGroup) *awstasks.IAMInstanceProfile

func (*KopsModelContext) LinkToPrivateRouteTableInZone

func (b *KopsModelContext) LinkToPrivateRouteTableInZone(zoneName string) *awstasks.RouteTable

func (*KopsModelContext) LinkToPublicSubnetInZone

func (b *KopsModelContext) LinkToPublicSubnetInZone(zoneName string) (*awstasks.Subnet, error)

func (*KopsModelContext) LinkToSSHKey

func (b *KopsModelContext) LinkToSSHKey() (*awstasks.SSHKey, error)

func (*KopsModelContext) LinkToSecurityGroup

func (b *KopsModelContext) LinkToSecurityGroup(role kops.InstanceGroupRole) *awstasks.SecurityGroup

func (*KopsModelContext) LinkToSubnet

func (b *KopsModelContext) LinkToSubnet(z *kops.ClusterSubnetSpec) *awstasks.Subnet

func (*KopsModelContext) LinkToUtilitySubnetInZone

func (b *KopsModelContext) LinkToUtilitySubnetInZone(zoneName string) (*awstasks.Subnet, error)

func (*KopsModelContext) LinkToVPC

func (b *KopsModelContext) LinkToVPC() *awstasks.VPC

func (*KopsModelContext) MasterInstanceGroups

func (m *KopsModelContext) MasterInstanceGroups() []*kops.InstanceGroup

MasterInstanceGroups returns InstanceGroups with the master role

func (*KopsModelContext) NameForDNSZone

func (b *KopsModelContext) NameForDNSZone() string

func (*KopsModelContext) NamePrivateRouteTableInZone

func (b *KopsModelContext) NamePrivateRouteTableInZone(zoneName string) string

func (*KopsModelContext) NodeInstanceGroups

func (m *KopsModelContext) NodeInstanceGroups() []*kops.InstanceGroup

NodeInstanceGroups returns InstanceGroups with the node role

func (*KopsModelContext) NodePortRange

func (c *KopsModelContext) NodePortRange() (utilnet.PortRange, error)

NodePortRange returns the range of ports allocated to NodePorts

func (*KopsModelContext) SSHKeyName

func (c *KopsModelContext) SSHKeyName() (string, error)

SSHKeyName computes a unique SSH key name, combining the cluster name and the SSH public key fingerprint. If an SSH key name is provided in the cluster configuration, it will use that instead.

func (*KopsModelContext) SecurityGroupName

func (b *KopsModelContext) SecurityGroupName(role kops.InstanceGroupRole) string

func (*KopsModelContext) UseEtcdTLS

func (c *KopsModelContext) UseEtcdTLS() bool

UseEtcdTLS checks to see if etcd tls is enabled

func (*KopsModelContext) UseLoadBalancerForAPI

func (m *KopsModelContext) UseLoadBalancerForAPI() bool

func (*KopsModelContext) UsePrivateDNS

func (m *KopsModelContext) UsePrivateDNS() bool

func (*KopsModelContext) UsesBastionDns

func (m *KopsModelContext) UsesBastionDns() bool

func (*KopsModelContext) UsesSSHBastion

func (m *KopsModelContext) UsesSSHBastion() bool

func (*KopsModelContext) WellKnownServiceIP

func (c *KopsModelContext) WellKnownServiceIP(id int) (net.IP, error)

type MasterVolumeBuilder

type MasterVolumeBuilder struct {
	*KopsModelContext
	Lifecycle *fi.Lifecycle
}

MasterVolumeBuilder builds master EBS volumes

func (*MasterVolumeBuilder) Build

type NetworkModelBuilder

type NetworkModelBuilder struct {
	*KopsModelContext
	Lifecycle *fi.Lifecycle
}

NetworkModelBuilder configures network objects

func (*NetworkModelBuilder) Build

type PKIModelBuilder

type PKIModelBuilder struct {
	*KopsModelContext
	Lifecycle *fi.Lifecycle
}

PKIModelBuilder configures PKI keypairs, as well as tokens

func (*PKIModelBuilder) Build

Build is responsible for generating the various pki assets

type Protocol

type Protocol int
const (
	ProtocolIPIP Protocol = 4
)

type SSHKeyModelBuilder

type SSHKeyModelBuilder struct {
	*KopsModelContext
	Lifecycle *fi.Lifecycle
}

SSHKeyModelBuilder configures SSH objects

func (*SSHKeyModelBuilder) Build

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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