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: 34 Imported by: 0

Documentation

Index

Constants

View Source
const CloudConfigFilePath = "/etc/kubernetes/cloud.config"
View Source
const DefaultDockerVersion = "1.12.3"

DefaultDockerVersion is the (legacy) docker version we use if one is not specified in the manifest. We don't change this with each version of kops, we expect newer versions of kops to populate the field.

View Source
const MinimumVersionForVMUUID = "1.5.3"

Required for vSphere CloudProvider

View Source
const PathAuthnConfig = "/etc/kubernetes/authn.config"
View Source
const RoleLabelMaster16 = "node-role.kubernetes.io/master"
View Source
const RoleLabelName15 = "kubernetes.io/role"
View Source
const RoleLabelName16 = "kubernetes.io/role"
View Source
const RoleLabelNode16 = "node-role.kubernetes.io/node"
View Source
const RoleMasterLabelValue15 = "master"
View Source
const RoleNodeLabelValue15 = "node"
View Source
const VM_UUID_FILE_PATH = "/etc/vmware/vm_uuid"

VM UUID is set by cloud-init

Variables

This section is empty.

Functions

This section is empty.

Types

type Architecture

type Architecture string
var (
	ArchitectureAmd64 Architecture = "amd64"
	ArchitectureArm   Architecture = "arm"
)

type CloudConfigBuilder

type CloudConfigBuilder struct {
	*NodeupModelContext
}

CloudConfigBuilder creates the cloud configuration file

func (*CloudConfigBuilder) Build

type DirectoryBuilder

type DirectoryBuilder struct {
	*NodeupModelContext
}

DirectoryBuilder creates required directories

func (*DirectoryBuilder) Build

type DockerBuilder

type DockerBuilder struct {
	*NodeupModelContext
}

DockerBuilder install docker (just the packages at the moment)

func (*DockerBuilder) Build

Build is responsible for configuring the docker daemon

type EtcdBuilder

type EtcdBuilder struct {
	*NodeupModelContext
}

EtcdBuilder installs etcd

func (*EtcdBuilder) Build

func (b *EtcdBuilder) Build(c *fi.ModelBuilderContext) error

Build is responsible for creating the etcd user

type FileAssetsBuilder

type FileAssetsBuilder struct {
	*NodeupModelContext
}

FileAssetsBuilder configures the hooks

func (*FileAssetsBuilder) Build

Build is responsible for writing out the file assets from cluster and instanceGroup

type FirewallBuilder

type FirewallBuilder struct {
	*NodeupModelContext
}

FirewallBuilder configures the firewall (iptables)

func (*FirewallBuilder) Build

Build is responsible for generating any node firewall rules

type HookBuilder

type HookBuilder struct {
	*NodeupModelContext
}

HookBuilder configures the hooks

func (*HookBuilder) Build

func (h *HookBuilder) Build(c *fi.ModelBuilderContext) error

Build is responsible for implementing the cluster hook

type KubeAPIServerBuilder

type KubeAPIServerBuilder struct {
	*NodeupModelContext
}

KubeAPIServerBuilder install kube-apiserver (just the manifest at the moment)

func (*KubeAPIServerBuilder) Build

Build is responsible for generating the configuration for the kube-apiserver

type KubeControllerManagerBuilder

type KubeControllerManagerBuilder struct {
	*NodeupModelContext
}

KubeControllerManagerBuilder install kube-controller-manager (just the manifest at the moment)

func (*KubeControllerManagerBuilder) Build

Build is responsible for configuring the kube-controller-manager

type KubeProxyBuilder

type KubeProxyBuilder struct {
	*NodeupModelContext
}

KubeProxyBuilder installs kube-proxy

func (*KubeProxyBuilder) Build

Build is responsible for building the kube-proxy manifest @TODO we should probaby change this to a daemonset in the future and follow the kubeadm path

type KubeRouterBuilder

type KubeRouterBuilder struct {
	*NodeupModelContext
}

KubeProxyBuilder installs kube-proxy

func (*KubeRouterBuilder) Build

type KubeSchedulerBuilder

type KubeSchedulerBuilder struct {
	*NodeupModelContext
}

KubeSchedulerBuilder install kube-scheduler

func (*KubeSchedulerBuilder) Build

Build is responsible for building the manifest for the kube-scheduler

type KubectlBuilder

type KubectlBuilder struct {
	*NodeupModelContext
}

KubectlBuilder install kubectl

func (*KubectlBuilder) Build

Build is responsible for managing the kubectl on the nodes

type KubeletBuilder

type KubeletBuilder struct {
	*NodeupModelContext
}

KubeletBuilder installs kubelet

func (*KubeletBuilder) Build

Build is responsible for building the kubelet configuration

type LogrotateBuilder

type LogrotateBuilder struct {
	*NodeupModelContext
}

LogrotateBuilder installs logrotate.d and configures log rotation for kubernetes logs

func (*LogrotateBuilder) Build

type NetworkBuilder

type NetworkBuilder struct {
	*NodeupModelContext
}

NetworkBuilder writes CNI assets

func (*NetworkBuilder) Build

type NodeupModelContext

type NodeupModelContext struct {
	Architecture  Architecture
	Assets        *fi.AssetStore
	Cluster       *kops.Cluster
	Distribution  distros.Distribution
	InstanceGroup *kops.InstanceGroup
	IsMaster      bool
	KeyStore      fi.CAStore
	NodeupConfig  *nodeup.Config
	SecretStore   fi.SecretStore
	// contains filtered or unexported fields
}

NodeupModelContext is the context supplied the nodeup tasks

func (*NodeupModelContext) CNIBinDir

func (c *NodeupModelContext) CNIBinDir() string

CNIBinDir returns the path for the CNI binaries

func (*NodeupModelContext) CNIConfDir

func (c *NodeupModelContext) CNIConfDir() string

CNIConfDir returns the CNI directory

func (*NodeupModelContext) FileAssetsDefaultPath

func (c *NodeupModelContext) FileAssetsDefaultPath() string

FileAssetsDefaultPath is the default location for assets which have no path

func (*NodeupModelContext) Init

func (c *NodeupModelContext) Init() error

Init completes initialization of the object, for example pre-parsing the kubernetes version

func (*NodeupModelContext) IsKubernetesGTE

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

IsKubernetesGTE checks if the version is greater-than-or-equal

func (*NodeupModelContext) KubectlPath

func (c *NodeupModelContext) KubectlPath() string

KubectlPath returns distro based path for kubectl

func (*NodeupModelContext) PathSrvKubernetes

func (c *NodeupModelContext) PathSrvKubernetes() string

PathSrvKubernetes returns the path for the kubernetes service files

func (*NodeupModelContext) PathSrvSshproxy

func (c *NodeupModelContext) PathSrvSshproxy() string

PathSrvSshproxy returns the path for the SSL proxy

func (*NodeupModelContext) SSLHostPaths

func (c *NodeupModelContext) SSLHostPaths() []string

SSLHostPaths returns the TLS paths for the distribution

func (*NodeupModelContext) UseEtcdTLS

func (c *NodeupModelContext) UseEtcdTLS() bool

UseEtcdTLS checks if the etcd cluster has TLS enabled bool

func (*NodeupModelContext) UseSecureKubelet

func (c *NodeupModelContext) UseSecureKubelet() bool

UseSecureKubelet checks if the kubelet api should be protected by a client certificate. Note: the settings are be in one of three section, master specific kubelet, cluster wide kubelet or the InstanceGroup. Though arguably is doesn't make much sense to unset this on a per InstanceGroup level, but hey :)

func (*NodeupModelContext) UsesCNI

func (c *NodeupModelContext) UsesCNI() bool

UsesCNI checks if the cluster has CNI configured

type PackagesBuilder

type PackagesBuilder struct {
	*NodeupModelContext
}

PackagesBuilder adds miscellaneous OS packages that we need

func (*PackagesBuilder) Build

type ProtokubeBuilder

type ProtokubeBuilder struct {
	*NodeupModelContext
}

ProtokubeBuilder configures protokube

func (*ProtokubeBuilder) Build

Build is responsible for generating the options for protokube

func (*ProtokubeBuilder) ProtokubeEnvironmentVariables

func (t *ProtokubeBuilder) ProtokubeEnvironmentVariables() string

ProtokubeEnvironmentVariables generates the environments variables for docker

func (*ProtokubeBuilder) ProtokubeFlags

func (t *ProtokubeBuilder) ProtokubeFlags(k8sVersion semver.Version) (*ProtokubeFlags, error)

ProtokubeFlags is responsible for building the command line flags for protokube

func (*ProtokubeBuilder) ProtokubeImageName

func (t *ProtokubeBuilder) ProtokubeImageName() string

ProtokubeImageName returns the docker image for protokube

func (*ProtokubeBuilder) ProtokubeImagePullCommand

func (t *ProtokubeBuilder) ProtokubeImagePullCommand() string

ProtokubeImagePullCommand returns the command to pull the image

type ProtokubeFlags

type ProtokubeFlags struct {
	ApplyTaints *bool    `json:"applyTaints,omitempty" flag:"apply-taints"`
	Channels    []string `json:"channels,omitempty" flag:"channels"`
	Cloud       *string  `json:"cloud,omitempty" flag:"cloud"`
	// ClusterID flag is required only for vSphere cloud type, to pass cluster id information to protokube. AWS and GCE workflows ignore this flag.
	ClusterID                 *string  `json:"cluster-id,omitempty" flag:"cluster-id"`
	Containerized             *bool    `json:"containerized,omitempty" flag:"containerized"`
	DNSInternalSuffix         *string  `json:"dnsInternalSuffix,omitempty" flag:"dns-internal-suffix"`
	DNSProvider               *string  `json:"dnsProvider,omitempty" flag:"dns"`
	DNSServer                 *string  `json:"dns-server,omitempty" flag:"dns-server"`
	EtcdImage                 *string  `json:"etcd-image,omitempty" flag:"etcd-image"`
	EtcdLeaderElectionTimeout *string  `json:"etcd-election-timeout,omitempty" flag:"etcd-election-timeout"`
	EtcdHearbeatInterval      *string  `json:"etcd-heartbeat-interval,omitempty" flag:"etcd-heartbeat-interval"`
	InitializeRBAC            *bool    `json:"initializeRBAC,omitempty" flag:"initialize-rbac"`
	LogLevel                  *int32   `json:"logLevel,omitempty" flag:"v"`
	Master                    *bool    `json:"master,omitempty" flag:"master"`
	PeerTLSCaFile             *string  `json:"peer-ca,omitempty" flag:"peer-ca"`
	PeerTLSCertFile           *string  `json:"peer-cert,omitempty" flag:"peer-cert"`
	PeerTLSKeyFile            *string  `json:"peer-key,omitempty" flag:"peer-key"`
	TLSCAFile                 *string  `json:"tls-ca,omitempty" flag:"tls-ca"`
	TLSCertFile               *string  `json:"tls-cert,omitempty" flag:"tls-cert"`
	TLSKeyFile                *string  `json:"tls-key,omitempty" flag:"tls-key"`
	Zone                      []string `json:"zone,omitempty" flag:"zone"`
}

ProtokubeFlags are the flags for protokube

type SecretBuilder

type SecretBuilder struct {
	*NodeupModelContext
}

SecretBuilder writes secrets

func (*SecretBuilder) Build

Build is responsible for pulling down the secrets

type SysctlBuilder

type SysctlBuilder struct {
	*NodeupModelContext
}

SysctlBuilder set up our sysctls

func (*SysctlBuilder) Build

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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