Documentation
¶
Index ¶
- Constants
- Variables
- func BuildCloud(cluster *api.Cluster) (fi.Cloud, error)
- func ChannelForCluster(c *api.Cluster) (*api.Channel, error)
- func PopulateClusterSpec(cluster *api.Cluster) (*api.Cluster, error)
- func PopulateInstanceGroupSpec(cluster *api.Cluster, input *api.InstanceGroup, channel *api.Channel) (*api.InstanceGroup, error)
- type ApplyClusterCmd
- type IAMPolicy
- type IAMPolicyBuilder
- type IAMStatement
- type IAMStatementEffect
- type Loader
- type SpecBuilder
- type TemplateFunctions
- func (tf *TemplateFunctions) APIServerCount() int
- func (tf *TemplateFunctions) AddTo(dest template.FuncMap)
- func (tf *TemplateFunctions) AdminCIDR() (string, error)
- func (tf *TemplateFunctions) CloudTags(ig *api.InstanceGroup) (map[string]string, error)
- func (tf *TemplateFunctions) DnsControllerArgv() ([]string, error)
- func (tf *TemplateFunctions) EtcdClusterMemberTags(etcd *api.EtcdClusterSpec, m *api.EtcdMemberSpec) map[string]string
- func (tf *TemplateFunctions) GetInstanceGroup(name string) (*api.InstanceGroup, error)
- func (tf *TemplateFunctions) HasTag(tag string) bool
- func (tf *TemplateFunctions) IAMServiceEC2() string
- func (tf *TemplateFunctions) Image(component string) (string, error)
- func (tf *TemplateFunctions) SharedVPC() bool
- func (tf *TemplateFunctions) SharedZone(zone *api.ClusterZoneSpec) bool
- func (tf *TemplateFunctions) WellKnownServiceIP(id int) (net.IP, error)
Constants ¶
const (
KEY_NAME = "name"
KEY_TYPE = "_type"
)
const DefaultMasterMachineTypeAWS = "m3.medium"
const DefaultMasterMachineTypeGCE = "n1-standard-1"
const DefaultNodeMachineTypeAWS = "t2.medium"
const DefaultNodeMachineTypeGCE = "n1-standard-2"
const IAMPolicyDefaultVersion = "2012-10-17"
const MaxAttemptsWithNoProgress = 3
const (
NodeUpVersion = "1.4.3"
)
const TargetDirect = "direct"
const TargetDryRun = "dryrun"
const TargetTerraform = "terraform"
Variables ¶
var CloudupModels = []string{"config", "proto", "cloudup"}
var EtcdClusters = []string{"main", "events"}
Functions ¶
func BuildCloud ¶
func BuildCloud(cluster *api.Cluster) (fi.Cloud, error)
func ChannelForCluster ¶
func ChannelForCluster(c *api.Cluster) (*api.Channel, error)
func PopulateClusterSpec ¶
func PopulateClusterSpec(cluster *api.Cluster) (*api.Cluster, error)
PopulateClusterSpec takes a user-specified cluster spec, and computes the full specification that should be set on the cluster. We do this so that we don't need any real "brains" on the node side.
func PopulateInstanceGroupSpec ¶
func PopulateInstanceGroupSpec(cluster *api.Cluster, input *api.InstanceGroup, channel *api.Channel) (*api.InstanceGroup, error)
PopulateInstanceGroupSpec sets default values in the InstanceGroup The InstanceGroup is simpler than the cluster spec, so we just populate in place (like the rest of k8s)
Types ¶
type ApplyClusterCmd ¶
type ApplyClusterCmd struct {
Cluster *api.Cluster
InstanceGroups []*api.InstanceGroup
// NodeUpSource is the location from which we download nodeup
NodeUpSource string
// Models is a list of cloudup models to apply
Models []string
// TargetName specifies how we are operating e.g. direct to GCE, or AWS, or dry-run, or terraform
TargetName string
// Target is the fi.Target we will operate against
Target fi.Target
// OutDir is a local directory in which we place output, can cache files etc
OutDir string
// Assets is a list of sources for files (primarily when not using everything containerized)
// Formats:
// raw url: http://... or https://...
// url with hash: <hex>@http://... or <hex>@https://...
Assets []string
Clientset simple.Clientset
// DryRun is true if this is only a dry run
DryRun bool
}
type IAMPolicyBuilder ¶
type IAMPolicyBuilder struct {
Cluster *api.Cluster
Role api.InstanceGroupRole
Region string
}
func (*IAMPolicyBuilder) BuildAWSIAMPolicy ¶
func (b *IAMPolicyBuilder) BuildAWSIAMPolicy() (*IAMPolicy, error)
type IAMStatement ¶
type IAMStatement struct {
Effect IAMStatementEffect
Action []string
Resource []string
}
type IAMStatementEffect ¶
type IAMStatementEffect string
const IAMStatementEffectAllow IAMStatementEffect = "Allow"
type Loader ¶
type Loader struct {
Cluster *api.Cluster
WorkDir string
ModelStore vfs.Path
Tags map[string]struct{}
TemplateFunctions template.FuncMap
Resources map[string]fi.Resource
// contains filtered or unexported fields
}
func (*Loader) BuildTasks ¶
func (l *Loader) BuildTasks(modelStore vfs.Path, models []string) (map[string]fi.Task, error)
type SpecBuilder ¶
type SpecBuilder struct {
OptionsLoader *loader.OptionsLoader
Tags map[string]struct{}
}
func (*SpecBuilder) BuildCompleteSpec ¶
func (l *SpecBuilder) BuildCompleteSpec(clusterSpec *api.ClusterSpec, modelStore vfs.Path, models []string) (*api.ClusterSpec, error)
type TemplateFunctions ¶
type TemplateFunctions struct {
// contains filtered or unexported fields
}
func (*TemplateFunctions) APIServerCount ¶
func (tf *TemplateFunctions) APIServerCount() int
APIServerCount returns the value for the apiserver --apiserver-count flag
func (*TemplateFunctions) AdminCIDR ¶
func (tf *TemplateFunctions) AdminCIDR() (string, error)
AdminCIDR returns the single CIDR that is allowed access to the admin ports of the cluster (22, 443 on master)
func (*TemplateFunctions) CloudTags ¶
func (tf *TemplateFunctions) CloudTags(ig *api.InstanceGroup) (map[string]string, error)
CloudTags computes the tags to apply to instances in the specified InstanceGroup
func (*TemplateFunctions) DnsControllerArgv ¶ added in v1.4.1
func (tf *TemplateFunctions) DnsControllerArgv() ([]string, error)
func (*TemplateFunctions) EtcdClusterMemberTags ¶
func (tf *TemplateFunctions) EtcdClusterMemberTags(etcd *api.EtcdClusterSpec, m *api.EtcdMemberSpec) map[string]string
func (*TemplateFunctions) GetInstanceGroup ¶
func (tf *TemplateFunctions) GetInstanceGroup(name string) (*api.InstanceGroup, error)
GetInstanceGroup returns the instance group with the specified name
func (*TemplateFunctions) HasTag ¶
func (tf *TemplateFunctions) HasTag(tag string) bool
HasTag returns true if the specified tag is set
func (*TemplateFunctions) IAMServiceEC2 ¶
func (tf *TemplateFunctions) IAMServiceEC2() string
IAMServiceEC2 returns the name of the IAM service for EC2 in the current region it is ec2.amazonaws.com everywhere but in cn-north, where it is ec2.amazonaws.com.cn
func (*TemplateFunctions) Image ¶
func (tf *TemplateFunctions) Image(component string) (string, error)
Image returns the docker image name for the specified component
func (*TemplateFunctions) SharedVPC ¶
func (tf *TemplateFunctions) SharedVPC() bool
SharedVPC is a simple helper function which makes the templates for a shared VPC clearer
func (*TemplateFunctions) SharedZone ¶
func (tf *TemplateFunctions) SharedZone(zone *api.ClusterZoneSpec) bool
SharedZone is a simple helper function which makes the templates for a shared Zone clearer
func (*TemplateFunctions) WellKnownServiceIP ¶
func (tf *TemplateFunctions) WellKnownServiceIP(id int) (net.IP, error)