model

package
v1.24.0 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2022 License: Apache-2.0 Imports: 58 Imported by: 26

Documentation

Index

Constants

View Source
const (
	CloudConfigFilePath       = "/etc/kubernetes/cloud.config"
	InTreeCloudConfigFilePath = "/etc/kubernetes/in-tree-cloud.config"

	// VM UUID is set by cloud-init
	VM_UUID_FILE_PATH = "/etc/vmware/vm_uuid"
)
View Source
const (
	ConfigurationModeWarming string = "Warming"
)
View Source
const PathAuthnConfig = "/etc/kubernetes/authn.config"

PathAuthnConfig is the path to the custom webhook authentication config.

Variables

This section is empty.

Functions

This section is empty.

Types

type Architecture

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

type BootstrapClientBuilder added in v1.19.0

type BootstrapClientBuilder struct {
	*NodeupModelContext
}

BootstrapClientBuilder calls kops-controller to bootstrap the node.

func (BootstrapClientBuilder) Build added in v1.19.0

type ClientConnectionConfig added in v1.18.0

type ClientConnectionConfig struct {
	Burst      int32    `json:"burst,omitempty"`
	Kubeconfig string   `json:"kubeconfig"`
	QPS        *float64 `json:"qps,omitempty"`
}

ClientConnectionConfig is used by kube-scheduler to talk to the api server

type CloudConfigBuilder

type CloudConfigBuilder struct {
	*NodeupModelContext
}

CloudConfigBuilder creates the cloud configuration file

func (*CloudConfigBuilder) Build

type ContainerdBuilder added in v1.18.0

type ContainerdBuilder struct {
	*NodeupModelContext
}

ContainerdBuilder install containerd (just the packages at the moment)

func (*ContainerdBuilder) Build added in v1.18.0

Build is responsible for configuring the containerd daemon

type DirectoryBuilder

type DirectoryBuilder struct {
	*NodeupModelContext
}

DirectoryBuilder creates required directories

func (*DirectoryBuilder) Build

Build is responsible for specific directories are created - os dependent

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 EtcdManagerTLSBuilder added in v1.15.1

type EtcdManagerTLSBuilder struct {
	*NodeupModelContext
}

EtcdManagerTLSBuilder configures TLS support for etcd-manager

func (*EtcdManagerTLSBuilder) Build added in v1.15.1

Build is responsible for TLS configuration for etcd-manager

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 KopsControllerBuilder added in v1.19.0

type KopsControllerBuilder struct {
	*NodeupModelContext
}

KopsControllerBuilder installs the keys for a kops-controller.

func (*KopsControllerBuilder) Build added in v1.19.0

Build is responsible for configuring keys that will be used by kops-controller (via hostPath)

type KubeAPIServerBuilder

type KubeAPIServerBuilder struct {
	*NodeupModelContext
}

KubeAPIServerBuilder installs kube-apiserver.

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 probably change this to a daemonset in the future and follow the kubeadm path

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

Build is responsible for configuring logrotate

type ManifestsBuilder

type ManifestsBuilder struct {
	*NodeupModelContext
}

ManifestsBuilder copies manifests from the store (e.g. etcdmanager)

func (*ManifestsBuilder) Build

Build creates tasks for copying the manifests

type MiscUtilsBuilder added in v1.15.1

type MiscUtilsBuilder struct {
	*NodeupModelContext
}

MiscUtilsBuilder ensures that some system packages that are required for kubernetes are installed (e.g. socat)

func (*MiscUtilsBuilder) Build added in v1.15.1

Build is responsible for configuring the miscellaneous packages we want installed

type NTPBuilder added in v1.15.1

type NTPBuilder struct {
	*NodeupModelContext
}

NTPBuilder installs and starts NTP, to ensure accurate clock times. As well as general log confusion, clock-skew of more than 5 minutes causes AWS API calls to fail

func (*NTPBuilder) Build added in v1.15.1

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

Build is responsible for configuring NTP

type NodeupModelContext

type NodeupModelContext struct {
	Cloud        fi.Cloud
	Architecture architectures.Architecture
	GPUVendor    architectures.GPUVendor
	Assets       *fi.AssetStore
	Cluster      *kops.Cluster
	ConfigBase   vfs.Path
	Distribution distributions.Distribution
	KeyStore     fi.Keystore
	BootConfig   *nodeup.BootConfig
	NodeupConfig *nodeup.Config
	SecretStore  fi.SecretStore

	// IsMaster is true if the InstanceGroup has a role of master (populated by Init)
	IsMaster bool

	// HasAPIServer is true if the InstanceGroup has a role of master or apiserver (pupulated by Init)
	HasAPIServer bool

	// ConfigurationMode determines if we are prewarming an instance or running it live
	ConfigurationMode string
	InstanceID        string
	MachineType       string

	CloudProvider kops.CloudProviderID
	// contains filtered or unexported fields
}

NodeupModelContext is the context supplied the nodeup tasks

func (*NodeupModelContext) AddCNIBinAssets added in v1.19.0

func (b *NodeupModelContext) AddCNIBinAssets(c *fi.ModelBuilderContext, assetNames []string) error

func (*NodeupModelContext) BuildBootstrapKubeconfig added in v1.19.0

func (c *NodeupModelContext) BuildBootstrapKubeconfig(name string, ctx *fi.ModelBuilderContext) (fi.Resource, error)

BuildBootstrapKubeconfig generates a kubeconfig with a client certificate from either kops-controller or the state store.

func (*NodeupModelContext) BuildCertificatePairTask

func (c *NodeupModelContext) BuildCertificatePairTask(ctx *fi.ModelBuilderContext, name, path, filename string, owner *string, beforeServices []string) error

BuildCertificatePairTask creates the tasks to create the certificate and private key files.

func (*NodeupModelContext) BuildCertificateTask

func (c *NodeupModelContext) BuildCertificateTask(ctx *fi.ModelBuilderContext, name, filename string, owner *string) error

BuildCertificateTask builds a task to create a certificate file.

func (*NodeupModelContext) BuildIssuedKubeconfig added in v1.19.0

func (c *NodeupModelContext) BuildIssuedKubeconfig(name string, subject nodetasks.PKIXName, ctx *fi.ModelBuilderContext) *fi.TaskDependentResource

BuildIssuedKubeconfig generates a kubeconfig with a locally issued client certificate.

func (*NodeupModelContext) BuildLegacyPrivateKeyTask added in v1.21.3

func (c *NodeupModelContext) BuildLegacyPrivateKeyTask(ctx *fi.ModelBuilderContext, name, filename string, owner *string) error

BuildLegacyPrivateKeyTask builds a task to create a private key file.

func (*NodeupModelContext) BuildPrivateKeyTask

func (c *NodeupModelContext) BuildPrivateKeyTask(ctx *fi.ModelBuilderContext, name, path, filename string, owner *string, beforeServices []string) error

BuildPrivateKeyTask builds a task to create the private key file.

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) EnsureDirectory added in v1.15.1

func (c *NodeupModelContext) EnsureDirectory(path string) error

EnsureDirectory ensures the directory exists or creates it

func (*NodeupModelContext) EnsureSystemdSuffix added in v1.15.1

func (c *NodeupModelContext) EnsureSystemdSuffix(name string) string

EnsureSystemdSuffix ensures that the hook name ends with a valid systemd unit file extension. If it doesn't, it adds ".service" for backwards-compatibility with older versions of Kops

func (*NodeupModelContext) FileAssetsDefaultPath

func (c *NodeupModelContext) FileAssetsDefaultPath() string

FileAssetsDefaultPath is the default location for assets which have no path

func (*NodeupModelContext) GetBootstrapCert added in v1.19.0

func (c *NodeupModelContext) GetBootstrapCert(name string, signer string) (cert, key fi.Resource, err error)

GetBootstrapCert requests a certificate keypair from kops-controller.

func (*NodeupModelContext) GetMetadataLocalIP added in v1.24.0

func (c *NodeupModelContext) GetMetadataLocalIP() (string, error)

GetMetadataLocalIP returns the local IP address read from metadata

func (*NodeupModelContext) Init

func (c *NodeupModelContext) Init() error

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

func (*NodeupModelContext) InstallNvidiaRuntime added in v1.21.3

func (c *NodeupModelContext) InstallNvidiaRuntime() bool

func (*NodeupModelContext) IsKubernetesGTE

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

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

func (*NodeupModelContext) IsKubernetesLT added in v1.18.0

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

IsKubernetesLT checks if the version is less-than

func (*NodeupModelContext) IsMounted added in v1.15.1

func (c *NodeupModelContext) IsMounted(m mount.Interface, device, path string) (bool, error)

IsMounted checks if the device is mount

func (*NodeupModelContext) KubectlPath

func (c *NodeupModelContext) KubectlPath() string

KubectlPath returns distro based path for kubectl

func (*NodeupModelContext) KubeletBootstrapKubeconfig

func (c *NodeupModelContext) KubeletBootstrapKubeconfig() string

KubeletBootstrapKubeconfig is the path the bootstrap config file

func (*NodeupModelContext) KubeletKubeConfig

func (c *NodeupModelContext) KubeletKubeConfig() string

KubeletKubeConfig is the path of the kubelet kubeconfig file

func (*NodeupModelContext) NodeName

func (c *NodeupModelContext) NodeName() (string, error)

NodeName returns the name of the local Node, as it will be created in k8s

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 SSH proxy

func (*NodeupModelContext) RunningOnGCE added in v1.21.3

func (c *NodeupModelContext) RunningOnGCE() bool

RunningOnGCE returns true if we are running on GCE

func (*NodeupModelContext) SSLHostPaths

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

SSLHostPaths returns the TLS paths for the distribution

func (*NodeupModelContext) UseBootstrapTokens

func (c *NodeupModelContext) UseBootstrapTokens() bool

UseBootstrapTokens checks if we are using bootstrap tokens

func (*NodeupModelContext) UseKopsControllerForNodeBootstrap added in v1.19.0

func (c *NodeupModelContext) UseKopsControllerForNodeBootstrap() bool

UseKopsControllerForNodeBootstrap checks if nodeup should use kops-controller to bootstrap.

func (*NodeupModelContext) UseVolumeMounts added in v1.15.1

func (c *NodeupModelContext) UseVolumeMounts() bool

UseVolumeMounts is used to check if we have volume mounts enabled as we need to insert requires and afters in various places

func (*NodeupModelContext) UsesCNI

func (c *NodeupModelContext) UsesCNI() bool

UsesCNI checks if the cluster has CNI configured

func (*NodeupModelContext) UsesSecondaryIP

func (c *NodeupModelContext) UsesSecondaryIP() bool

UsesSecondaryIP checks if the CNI in use attaches secondary interfaces to the host.

func (*NodeupModelContext) VolumesServiceName added in v1.15.1

func (c *NodeupModelContext) VolumesServiceName() string

VolumesServiceName is the name of the service which is downstream of any volume mounts

type NvidiaBuilder added in v1.21.3

type NvidiaBuilder struct {
	*NodeupModelContext
}

NvidiaBuilder installs the Nvidia driver and runtime.

func (*NvidiaBuilder) Build added in v1.21.3

Build is responsible for installing packages.

type PackagesBuilder

type PackagesBuilder struct {
	*NodeupModelContext
}

PackagesBuilder adds miscellaneous OS packages that we need

func (*PackagesBuilder) Build

Build is responsible for installing packages

type PrefixBuilder added in v1.23.0

type PrefixBuilder struct {
	*NodeupModelContext
}

func (*PrefixBuilder) Build added in v1.23.0

type ProtokubeBuilder

type ProtokubeBuilder struct {
	*NodeupModelContext
}

ProtokubeBuilder configures protokube

func (*ProtokubeBuilder) Build

Build is responsible for generating the options for protokube

func (*ProtokubeBuilder) ProtokubeFlags

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

ProtokubeFlags is responsible for building the command line flags for protokube

type ProtokubeFlags

type ProtokubeFlags struct {
	ClusterID         *string  `json:"clusterID,omitempty" flag:"cluster-id"`
	Channels          []string `json:"channels,omitempty" flag:"channels"`
	Cloud             *string  `json:"cloud,omitempty" flag:"cloud"`
	Containerized     *bool    `json:"containerized,omitempty" flag:"containerized"`
	DNSInternalSuffix *string  `json:"dnsInternalSuffix,omitempty" flag:"dns-internal-suffix"`
	Gossip            *bool    `json:"gossip,omitempty" flag:"gossip"`
	LogLevel          *int32   `json:"logLevel,omitempty" flag:"v"`
	Master            *bool    `json:"master,omitempty" flag:"master"`
	Zone              []string `json:"zone,omitempty" flag:"zone"`

	// BootstrapMasterNodeLabels applies the critical node-role labels to our node,
	// which lets us bring up the controllers that can only run on masters, which are then
	// responsible for node labels.  The node is specified by NodeName
	BootstrapMasterNodeLabels bool `json:"bootstrapMasterNodeLabels,omitempty" flag:"bootstrap-master-node-labels"`

	// NodeName is the name of the node as will be created in kubernetes.  Primarily used by BootstrapMasterNodeLabels.
	NodeName string `json:"nodeName,omitempty" flag:"node-name"`

	GossipProtocol *string `json:"gossip-protocol" flag:"gossip-protocol"`
	GossipListen   *string `json:"gossip-listen" flag:"gossip-listen"`
	GossipSecret   *string `json:"gossip-secret" flag:"gossip-secret"`

	GossipProtocolSecondary *string `json:"gossip-protocol-secondary" flag:"gossip-protocol-secondary" flag-include-empty:"true"`
	GossipListenSecondary   *string `json:"gossip-listen-secondary" flag:"gossip-listen-secondary"`
	GossipSecretSecondary   *string `json:"gossip-secret-secondary" flag:"gossip-secret-secondary"`
}

ProtokubeFlags are the flags for protokube

type SchedulerConfig added in v1.18.0

type SchedulerConfig struct {
	APIVersion       string                 `json:"apiVersion"`
	Kind             string                 `json:"kind"`
	ClientConnection ClientConnectionConfig `json:"clientConnection,omitempty"`
}

SchedulerConfig is used to generate the config file

func NewSchedulerConfig added in v1.18.0

func NewSchedulerConfig(apiVersion string) *SchedulerConfig

NewSchedulerConfig initializes a new kube-scheduler config file

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

Build is responsible for configuring sysctl settings

type UpdateServiceBuilder

type UpdateServiceBuilder struct {
	*NodeupModelContext
}

UpdateServiceBuilder enables/disables the OS automatic updates.

func (*UpdateServiceBuilder) Build

Build is responsible for configuring automatic updates based on the OS.

type VolumesBuilder added in v1.15.1

type VolumesBuilder struct {
	*NodeupModelContext
}

VolumesBuilder maintains the volume mounting

func (*VolumesBuilder) Build added in v1.15.1

Build is responsible for handling the mounting additional volumes onto the instance

type WarmPoolBuilder added in v1.21.3

type WarmPoolBuilder struct {
	*NodeupModelContext
}

func (*WarmPoolBuilder) Build added in v1.21.3

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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