kops

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

Documentation

Overview

+groupName=kops

Index

Constants

View Source
const (
	TopologyPublic  = "public"
	TopologyPrivate = "private"
)
View Source
const AlphaChannel = "alpha"
View Source
const AnnotationNameManagement = "kops.kubernetes.io/management"

AnnotationNameManagement is the annotation that indicates that a cluster is under external or non-standard management

View Source
const AnnotationValueManagementImported = "imported"

AnnotationValueManagementImported is the annotation value that indicates a cluster was imported, typically as part of an upgrade

View Source
const DefaultChannel = "stable"
View Source
const GroupName = "kops"

GroupName is the group name use in this package

View Source
const LabelClusterName = "kops.k8s.io/cluster"
View Source
const TaintNoScheduleMaster15 = "dedicated=master:NoSchedule"

Deprecated - use the new labels & taints node-role.kubernetes.io/master and node-role.kubernetes.io/node

View Source
const UpdatePolicyExternal = "external"

UpdatePolicyExternal is a value for ClusterSpec.UpdatePolicy indicating that upgrades are done externally, and we should disable automatic upgrades

Variables

View Source
var (
	SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes)
	AddToScheme   = SchemeBuilder.AddToScheme
)
View Source
var DefaultChannelBase = "https://raw.githubusercontent.com/kubernetes/kops/master/channels/"
View Source
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}

SchemeGroupVersion is group version used to register these objects

Functions

func ParseRawYaml

func ParseRawYaml(data []byte, dest interface{}) error

ParseRawYaml parses an object just using yaml, without the full api machinery Deprecated: prefer using the API machinery

func PerformAssignmentsInstanceGroups

func PerformAssignmentsInstanceGroups(groups []*InstanceGroup) error

PerformAssignmentsInstanceGroups populates InstanceGroups with default values

func RecommendedKubernetesVersion

func RecommendedKubernetesVersion(c *Channel, kopsVersionString string) *semver.Version

func RegisterDeepCopies deprecated

func RegisterDeepCopies(scheme *runtime.Scheme) error

RegisterDeepCopies adds deep-copy functions to the given scheme. Public to allow building arbitrary schemes.

Deprecated: deepcopy registration will go away when static deepcopy is fully implemented.

func Resource

func Resource(resource string) schema.GroupResource

Resource takes an unqualified resource and returns a Group qualified GroupResource

func ToRawYaml

func ToRawYaml(obj interface{}) ([]byte, error)

ToRawYaml marshals an object to yaml, without the full api machinery Deprecated: prefer using the API machinery

Types

type AccessSpec

type AccessSpec struct {
	DNS          *DNSAccessSpec          `json:"dns,omitempty"`
	LoadBalancer *LoadBalancerAccessSpec `json:"loadBalancer,omitempty"`
}

func (*AccessSpec) DeepCopy

func (in *AccessSpec) DeepCopy() *AccessSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessSpec.

func (*AccessSpec) DeepCopyInto

func (in *AccessSpec) DeepCopyInto(out *AccessSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AccessSpec) IsEmpty

func (s *AccessSpec) IsEmpty() bool

type AlwaysAllowAuthorizationSpec

type AlwaysAllowAuthorizationSpec struct {
}

func (*AlwaysAllowAuthorizationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlwaysAllowAuthorizationSpec.

func (*AlwaysAllowAuthorizationSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ApiIngressStatus

type ApiIngressStatus struct {
	// IP is set for load-balancer ingress points that are IP based
	// (typically GCE or OpenStack load-balancers)
	// +optional
	IP string `json:"ip,omitempty" protobuf:"bytes,1,opt,name=ip"`

	// Hostname is set for load-balancer ingress points that are DNS based
	// (typically AWS load-balancers)
	// +optional
	Hostname string `json:"hostname,omitempty" protobuf:"bytes,2,opt,name=hostname"`
}

ApiIngress represents the status of an ingress point: traffic intended for the service should be sent to an ingress point.

func (*ApiIngressStatus) DeepCopy

func (in *ApiIngressStatus) DeepCopy() *ApiIngressStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ApiIngressStatus.

func (*ApiIngressStatus) DeepCopyInto

func (in *ApiIngressStatus) DeepCopyInto(out *ApiIngressStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Assets

type Assets struct {
	// ContainerRegistry is a url for to a docker registry
	ContainerRegistry *string `json:"containerRegistry,omitempty"`
	// FileRepository is the url for a private file serving repository
	FileRepository *string `json:"fileRepository,omitempty"`
}

Assets defined the privately hosted assets

func (*Assets) DeepCopy

func (in *Assets) DeepCopy() *Assets

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Assets.

func (*Assets) DeepCopyInto

func (in *Assets) DeepCopyInto(out *Assets)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type AuthenticationSpec

type AuthenticationSpec struct {
	Kopeio *KopeioAuthenticationSpec `json:"kopeio,omitempty"`
}

func (*AuthenticationSpec) DeepCopy

func (in *AuthenticationSpec) DeepCopy() *AuthenticationSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthenticationSpec.

func (*AuthenticationSpec) DeepCopyInto

func (in *AuthenticationSpec) DeepCopyInto(out *AuthenticationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AuthenticationSpec) IsEmpty

func (s *AuthenticationSpec) IsEmpty() bool

type AuthorizationSpec

type AuthorizationSpec struct {
	AlwaysAllow *AlwaysAllowAuthorizationSpec `json:"alwaysAllow,omitempty"`
	RBAC        *RBACAuthorizationSpec        `json:"rbac,omitempty"`
}

func (*AuthorizationSpec) DeepCopy

func (in *AuthorizationSpec) DeepCopy() *AuthorizationSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthorizationSpec.

func (*AuthorizationSpec) DeepCopyInto

func (in *AuthorizationSpec) DeepCopyInto(out *AuthorizationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*AuthorizationSpec) IsEmpty

func (s *AuthorizationSpec) IsEmpty() bool

type BastionSpec

type BastionSpec struct {
	BastionPublicName string `json:"bastionPublicName,omitempty"`
	// IdleTimeoutSeconds is the bastion's Loadbalancer idle timeout
	IdleTimeoutSeconds *int64 `json:"idleTimeoutSeconds,omitempty"`
}

func (*BastionSpec) DeepCopy

func (in *BastionSpec) DeepCopy() *BastionSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BastionSpec.

func (*BastionSpec) DeepCopyInto

func (in *BastionSpec) DeepCopyInto(out *BastionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CNINetworkingSpec

type CNINetworkingSpec struct {
}

CNINetworkingSpec is the specification for networking that is implemented by a Daemonset Networking is not managed by kops - we can create options here that directly configure e.g. weave but this is useful for arbitrary network modes or for modes that don't need additional configuration.

func (*CNINetworkingSpec) DeepCopy

func (in *CNINetworkingSpec) DeepCopy() *CNINetworkingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CNINetworkingSpec.

func (*CNINetworkingSpec) DeepCopyInto

func (in *CNINetworkingSpec) DeepCopyInto(out *CNINetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CalicoNetworkingSpec

type CalicoNetworkingSpec struct {
	CrossSubnet bool `json:"crossSubnet,omitempty"` // Enables Calico's cross-subnet mode when set to true
}

CalicoNetworkingSpec declares that we want Calico networking

func (*CalicoNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CalicoNetworkingSpec.

func (*CalicoNetworkingSpec) DeepCopyInto

func (in *CalicoNetworkingSpec) DeepCopyInto(out *CalicoNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CanalNetworkingSpec

type CanalNetworkingSpec struct {
	// DefaultEndpointToHostAction allows users to configure the default behaviour
	// for traffic between pod to host after calico rules have been processed.
	// Default: ACCEPT (other options: DROP, RETURN)
	DefaultEndpointToHostAction string `json:"defaultEndpointToHostAction,omitempty"`
	// ChainInsertMode controls whether Felix inserts rules to the top of iptables chains, or
	// appends to the bottom. Leaving the default option is safest to prevent accidentally
	// breaking connectivity. Default: 'insert' (other options: 'append')
	ChainInsertMode string `json:"chainInsertMode,omitempty"`
	// PrometheusMetricsEnabled can be set to enable the experimental Prometheus
	// metrics server (default: false)
	PrometheusMetricsEnabled bool `json:"prometheusMetricsEnabled,omitempty"`
	// PrometheusMetricsPort is the TCP port that the experimental Prometheus
	// metrics server should bind to (default: 9091)
	PrometheusMetricsPort int32 `json:"prometheusMetricsPort,omitempty"`
	// PrometheusGoMetricsEnabled enables Prometheus Go runtime metrics collection
	PrometheusGoMetricsEnabled bool `json:"prometheusGoMetricsEnabled,omitempty"`
	// PrometheusProcessMetricsEnabled enables Prometheus process metrics collection
	PrometheusProcessMetricsEnabled bool `json:"prometheusProcessMetricsEnabled,omitempty"`
}

CanalNetworkingSpec declares that we want Canal networking

func (*CanalNetworkingSpec) DeepCopy

func (in *CanalNetworkingSpec) DeepCopy() *CanalNetworkingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CanalNetworkingSpec.

func (*CanalNetworkingSpec) DeepCopyInto

func (in *CanalNetworkingSpec) DeepCopyInto(out *CanalNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Channel

type Channel struct {
	v1.TypeMeta `json:",inline"`
	ObjectMeta  metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec ChannelSpec `json:"spec,omitempty"`
}

func LoadChannel

func LoadChannel(location string) (*Channel, error)

LoadChannel loads a Channel object from the specified VFS location

func ParseChannel

func ParseChannel(channelBytes []byte) (*Channel, error)

ParseChannel parses a Channel object

func (*Channel) DeepCopy

func (in *Channel) DeepCopy() *Channel

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Channel.

func (*Channel) DeepCopyInto

func (in *Channel) DeepCopyInto(out *Channel)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Channel) FindImage

func (c *Channel) FindImage(provider CloudProviderID, kubernetesVersion semver.Version) *ChannelImageSpec

FindImage returns the image for the cloudprovider, or nil if none found

type ChannelImageSpec

type ChannelImageSpec struct {
	Labels map[string]string `json:"labels,omitempty"`

	ProviderID string `json:"providerID,omitempty"`

	Name string `json:"name,omitempty"`

	KubernetesVersion string `json:"kubernetesVersion,omitempty"`
}

func (*ChannelImageSpec) DeepCopy

func (in *ChannelImageSpec) DeepCopy() *ChannelImageSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChannelImageSpec.

func (*ChannelImageSpec) DeepCopyInto

func (in *ChannelImageSpec) DeepCopyInto(out *ChannelImageSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ChannelSpec

type ChannelSpec struct {
	Images []*ChannelImageSpec `json:"images,omitempty"`

	Cluster *ClusterSpec `json:"cluster,omitempty"`

	// KopsVersions allows us to recommend/require kops versions
	KopsVersions []KopsVersionSpec `json:"kopsVersions,omitempty"`

	// KubernetesVersions allows us to recommend/requires kubernetes versions
	KubernetesVersions []KubernetesVersionSpec `json:"kubernetesVersions,omitempty"`
}

func (*ChannelSpec) DeepCopy

func (in *ChannelSpec) DeepCopy() *ChannelSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ChannelSpec.

func (*ChannelSpec) DeepCopyInto

func (in *ChannelSpec) DeepCopyInto(out *ChannelSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClassicNetworkingSpec

type ClassicNetworkingSpec struct {
}

ClassicNetworkingSpec is the specification of classic networking mode, integrated into kubernetes

func (*ClassicNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClassicNetworkingSpec.

func (*ClassicNetworkingSpec) DeepCopyInto

func (in *ClassicNetworkingSpec) DeepCopyInto(out *ClassicNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CloudConfiguration

type CloudConfiguration struct {
	// GCE cloud-config options
	Multizone          *bool   `json:"multizone,omitempty"`
	NodeTags           *string `json:"nodeTags,omitempty"`
	NodeInstancePrefix *string `json:"nodeInstancePrefix,omitempty"`
	// AWS cloud-config options
	DisableSecurityGroupIngress *bool   `json:"disableSecurityGroupIngress,omitempty"`
	ElbSecurityGroup            *string `json:"elbSecurityGroup,omitempty"`
	// vSphere cloud-config specs
	VSphereUsername      *string `json:"vSphereUsername,omitempty"`
	VSpherePassword      *string `json:"vSpherePassword,omitempty"`
	VSphereServer        *string `json:"vSphereServer,omitempty"`
	VSphereDatacenter    *string `json:"vSphereDatacenter,omitempty"`
	VSphereResourcePool  *string `json:"vSphereResourcePool,omitempty"`
	VSphereDatastore     *string `json:"vSphereDatastore,omitempty"`
	VSphereCoreDNSServer *string `json:"vSphereCoreDNSServer,omitempty"`
}

CloudConfiguration is defines the cloud provider configuration

func (*CloudConfiguration) DeepCopy

func (in *CloudConfiguration) DeepCopy() *CloudConfiguration

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudConfiguration.

func (*CloudConfiguration) DeepCopyInto

func (in *CloudConfiguration) DeepCopyInto(out *CloudConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CloudControllerManagerConfig

type CloudControllerManagerConfig struct {
	// Master is the url for the kube api master.
	Master string `json:"master,omitempty" flag:"master"`
	// LogLevel is the verbosity of the logs.
	LogLevel int32 `json:"logLevel,omitempty" flag:"v" flag-empty:"0"`
	// Image is the OCI image of the cloud controller manager.
	Image string `json:"image,omitempty"`
	// CloudProvider is the provider for cloud services.
	CloudProvider string `json:"cloudProvider,omitempty" flag:"cloud-provider"`
	// ClusterName is the instance prefix for the cluster.
	ClusterName string `json:"clusterName,omitempty" flag:"cluster-name"`
	// ClusterCIDR is CIDR Range for Pods in cluster.
	ClusterCIDR string `json:"clusterCIDR,omitempty" flag:"cluster-cidr"`
	// AllocateNodeCIDRs enables CIDRs for Pods to be allocated and, if
	// ConfigureCloudRoutes is true, to be set on the cloud provider.
	AllocateNodeCIDRs *bool `json:"allocateNodeCIDRs,omitempty" flag:"allocate-node-cidrs"`
	// ConfigureCloudRoutes enables CIDRs allocated with to be configured on the cloud provider.
	ConfigureCloudRoutes *bool `json:"configureCloudRoutes,omitempty" flag:"configure-cloud-routes"`
	// LeaderElection defines the configuration of leader election client.
	LeaderElection *LeaderElectionConfiguration `json:"leaderElection,omitempty"`
	// UseServiceAccountCredentials controls whether we use individual service account credentials for each controller.
	UseServiceAccountCredentials *bool `json:"useServiceAccountCredentials,omitempty" flag:"use-service-account-credentials"`
}

func (*CloudControllerManagerConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudControllerManagerConfig.

func (*CloudControllerManagerConfig) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type CloudProviderID

type CloudProviderID string
const CloudProviderAWS CloudProviderID = "aws"
const CloudProviderBareMetal CloudProviderID = "baremetal"
const CloudProviderDO CloudProviderID = "digitalocean"
const CloudProviderGCE CloudProviderID = "gce"
const CloudProviderVSphere CloudProviderID = "vsphere"

type Cluster

type Cluster struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec ClusterSpec `json:"spec,omitempty"`
}

Cluster is a specific cluster wrapper

func (*Cluster) DeepCopy

func (in *Cluster) DeepCopy() *Cluster

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.

func (*Cluster) DeepCopyInto

func (in *Cluster) DeepCopyInto(out *Cluster)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Cluster) DeepCopyObject

func (in *Cluster) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Cluster) FillDefaults

func (c *Cluster) FillDefaults() error

FillDefaults populates default values. This is different from PerformAssignments, because these values are changeable, and thus we don't need to store them (i.e. we don't need to 'lock them')

func (*Cluster) GetObjectKind

func (obj *Cluster) GetObjectKind() schema.ObjectKind

func (*Cluster) SharedVPC

func (c *Cluster) SharedVPC() bool

SharedVPC is a simple helper function which makes the templates for a shared VPC clearer

type ClusterList

type ClusterList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []Cluster `json:"items"`
}

ClusterList is a list of clusters

func (*ClusterList) DeepCopy

func (in *ClusterList) DeepCopy() *ClusterList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterList.

func (*ClusterList) DeepCopyInto

func (in *ClusterList) DeepCopyInto(out *ClusterList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*ClusterList) DeepCopyObject

func (in *ClusterList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type ClusterSpec

type ClusterSpec struct {
	// The Channel we are following
	Channel string `json:"channel,omitempty"`
	// ConfigBase is the path where we store configuration for the cluster
	// This might be different that the location when the cluster spec itself is stored,
	// both because this must be accessible to the cluster,
	// and because it might be on a different cloud or storage system (etcd vs S3)
	ConfigBase string `json:"configBase,omitempty"`
	// The CloudProvider to use (aws or gce)
	CloudProvider string `json:"cloudProvider,omitempty"`
	// The version of kubernetes to install (optional, and can be a "spec" like stable)
	KubernetesVersion string `json:"kubernetesVersion,omitempty"`
	// Configuration of subnets we are targeting
	Subnets []ClusterSubnetSpec `json:"subnets,omitempty"`
	// Project is the cloud project we should use, required on GCE
	Project string `json:"project,omitempty"`
	// MasterPublicName is the external DNS name for the master nodes
	MasterPublicName string `json:"masterPublicName,omitempty"`
	// MasterInternalName is the internal DNS name for the master nodes
	MasterInternalName string `json:"masterInternalName,omitempty"`
	// NetworkCIDR is the CIDR used for the AWS VPC / GCE Network, or otherwise allocated to k8s
	// This is a real CIDR, not the internal k8s network
	// On AWS, it maps to the VPC CIDR.  It is not required on GCE.
	NetworkCIDR string `json:"networkCIDR,omitempty"`
	// NetworkID is an identifier of a network, if we want to reuse/share an existing network (e.g. an AWS VPC)
	NetworkID string `json:"networkID,omitempty"`
	// Topology defines the type of network topology to use on the cluster - default public
	// This is heavily weighted towards AWS for the time being, but should also be agnostic enough
	// to port out to GCE later if needed
	Topology *TopologySpec `json:"topology,omitempty"`
	// SecretStore is the VFS path to where secrets are stored
	SecretStore string `json:"secretStore,omitempty"`
	// KeyStore is the VFS path to where SSL keys and certificates are stored
	KeyStore string `json:"keyStore,omitempty"`
	// ConfigStore is the VFS path to where the configuration (Cluster, InstanceGroups etc) is stored
	ConfigStore string `json:"configStore,omitempty"`
	// DNSZone is the DNS zone we should use when configuring DNS
	// This is because some clouds let us define a managed zone foo.bar, and then have
	// kubernetes.dev.foo.bar, without needing to define dev.foo.bar as a hosted zone.
	// DNSZone will probably be a suffix of the MasterPublicName and MasterInternalName
	// Note that DNSZone can either by the host name of the zone (containing dots),
	// or can be an identifier for the zone.
	DNSZone string `json:"dnsZone,omitempty"`
	// AdditionalSANs adds additional Subject Alternate Names to apiserver cert that kops generates
	AdditionalSANs []string `json:"additionalSans,omitempty"`
	// ClusterDNSDomain is the suffix we use for internal DNS names (normally cluster.local)
	ClusterDNSDomain string `json:"clusterDNSDomain,omitempty"`
	// ServiceClusterIPRange is the CIDR, from the internal network, where we allocate IPs for services
	ServiceClusterIPRange string `json:"serviceClusterIPRange,omitempty"`
	// NonMasqueradeCIDR is the CIDR for the internal k8s network (on which pods & services live)
	// It cannot overlap ServiceClusterIPRange
	NonMasqueradeCIDR string `json:"nonMasqueradeCIDR,omitempty"`
	// SSHAccess is a list of the CIDRs that can access SSH.
	SSHAccess []string `json:"sshAccess,omitempty"`
	// NodePortAccess is a list of the CIDRs that can access the node ports range (30000-32767).
	NodePortAccess []string `json:"nodePortAccess,omitempty"`
	// HTTPProxy defines connection information to support use of a private cluster behind an forward HTTP Proxy
	EgressProxy *EgressProxySpec `json:"egressProxy,omitempty"`
	// SSHKeyName specifies a preexisting SSH key to use
	SSHKeyName string `json:"sshKeyName,omitempty"`
	// KubernetesAPIAccess is a list of the CIDRs that can access the Kubernetes API endpoint (master HTTPS)
	KubernetesAPIAccess []string `json:"kubernetesApiAccess,omitempty"`
	// IsolatesMasters determines whether we should lock down masters so that they are not on the pod network.
	// true is the kube-up behaviour, but it is very surprising: it means that daemonsets only work on the master
	// if they have hostNetwork=true.
	// false is now the default, and it will:
	//  * give the master a normal PodCIDR
	//  * run kube-proxy on the master
	//  * enable debugging handlers on the master, so kubectl logs works
	IsolateMasters *bool `json:"isolateMasters,omitempty"`
	// UpdatePolicy determines the policy for applying upgrades automatically.
	// Valid values:
	//   'external' do not apply updates automatically - they are applied manually or by an external system
	//   missing: default policy (currently OS security upgrades that do not require a reboot)
	UpdatePolicy *string `json:"updatePolicy,omitempty"`
	// Additional policies to add for roles
	AdditionalPolicies *map[string]string `json:"additionalPolicies,omitempty"`
	// A collection of files assets for deployed cluster wide
	FileAssets []FileAssetSpec `json:"fileAssets,omitempty"`
	// EtcdClusters stores the configuration for each cluster
	EtcdClusters []*EtcdClusterSpec `json:"etcdClusters,omitempty"`
	// Component configurations
	Docker                         *DockerConfig                 `json:"docker,omitempty"`
	KubeDNS                        *KubeDNSConfig                `json:"kubeDNS,omitempty"`
	KubeAPIServer                  *KubeAPIServerConfig          `json:"kubeAPIServer,omitempty"`
	KubeControllerManager          *KubeControllerManagerConfig  `json:"kubeControllerManager,omitempty"`
	ExternalCloudControllerManager *CloudControllerManagerConfig `json:"cloudControllerManager,omitempty"`
	KubeScheduler                  *KubeSchedulerConfig          `json:"kubeScheduler,omitempty"`
	KubeProxy                      *KubeProxyConfig              `json:"kubeProxy,omitempty"`
	Kubelet                        *KubeletConfigSpec            `json:"kubelet,omitempty"`
	MasterKubelet                  *KubeletConfigSpec            `json:"masterKubelet,omitempty"`
	CloudConfig                    *CloudConfiguration           `json:"cloudConfig,omitempty"`
	ExternalDNS                    *ExternalDNSConfig            `json:"externalDns,omitempty"`

	// Networking configuration
	Networking *NetworkingSpec `json:"networking,omitempty"`
	// API field controls how the API is exposed outside the cluster
	API *AccessSpec `json:"api,omitempty"`
	// Authentication field controls how the cluster is configured for authentication
	Authentication *AuthenticationSpec `json:"authentication,omitempty"`
	// Authorization field controls how the cluster is configured for authorization
	Authorization *AuthorizationSpec `json:"authorization,omitempty"`
	// Tags for AWS instance groups
	CloudLabels map[string]string `json:"cloudLabels,omitempty"`
	// Hooks for custom actions e.g. on first installation
	Hooks []HookSpec `json:"hooks,omitempty"`
	// Assets is alternative locations for files and containers; the API under construction, will remove this comment once this API is fully functional.
	Assets *Assets `json:"assets,omitempty"`
	// IAM field adds control over the IAM security policies applied to resources
	IAM *IAMSpec `json:"iam,omitempty"`
	// EncryptionConfig controls if encryption is enabled
	EncryptionConfig *bool `json:"encryptionConfig,omitempty"`
}

ClusterSpec defines the configuration for a cluster

func (*ClusterSpec) DeepCopy

func (in *ClusterSpec) DeepCopy() *ClusterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSpec.

func (*ClusterSpec) DeepCopyInto

func (in *ClusterSpec) DeepCopyInto(out *ClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterStatus

type ClusterStatus struct {
	// EtcdClusters stores the status for each cluster
	EtcdClusters []EtcdClusterStatus `json:"etcdClusters,omitempty"`
}

func (*ClusterStatus) DeepCopy

func (in *ClusterStatus) DeepCopy() *ClusterStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterStatus.

func (*ClusterStatus) DeepCopyInto

func (in *ClusterStatus) DeepCopyInto(out *ClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ClusterSubnetSpec

type ClusterSubnetSpec struct {
	// Name is the name of the subnet
	Name string `json:"name,omitempty"`
	// CIDR is the network cidr of the subnet
	CIDR string `json:"cidr,omitempty"`
	// Zone is the zone the subnet is in, set for subnets that are zonally scoped
	Zone string `json:"zone,omitempty"`
	// Region is the region the subnet is in, set for subnets that are regionally scoped
	Region string `json:"region,omitempty"`
	// ProviderID is the cloud provider id for the objects associated with the zone (the subnet on AWS)
	ProviderID string `json:"id,omitempty"`
	// Egress defines the method of traffic egress for this subnet
	Egress string `json:"egress,omitempty"`
	// Type define which one if the internal types (public, utility, private) the network is
	Type SubnetType `json:"type,omitempty"`
}

ClusterSubnetSpec defines a subnet

func (*ClusterSubnetSpec) DeepCopy

func (in *ClusterSubnetSpec) DeepCopy() *ClusterSubnetSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterSubnetSpec.

func (*ClusterSubnetSpec) DeepCopyInto

func (in *ClusterSubnetSpec) DeepCopyInto(out *ClusterSubnetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DNSAccessSpec

type DNSAccessSpec struct {
}

func (*DNSAccessSpec) DeepCopy

func (in *DNSAccessSpec) DeepCopy() *DNSAccessSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSAccessSpec.

func (*DNSAccessSpec) DeepCopyInto

func (in *DNSAccessSpec) DeepCopyInto(out *DNSAccessSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DNSSpec

type DNSSpec struct {
	Type DNSType `json:"type,omitempty"`
}

func (*DNSSpec) DeepCopy

func (in *DNSSpec) DeepCopy() *DNSSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSSpec.

func (*DNSSpec) DeepCopyInto

func (in *DNSSpec) DeepCopyInto(out *DNSSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type DNSType

type DNSType string
const (
	DNSTypePublic  DNSType = "Public"
	DNSTypePrivate DNSType = "Private"
)

type DockerConfig

type DockerConfig struct {
	// AuthorizationPlugins is a list of authorization plugins
	AuthorizationPlugins []string `json:"authorizationPlugins,omitempty" flag:"authorization-plugin,repeat"`
	// Bridge is the network interface containers should bind onto
	Bridge *string `json:"bridge,omitempty" flag:"bridge"`
	// BridgeIP is a specific IP address and netmask for the docker0 bridge, using standard CIDR notation
	BridgeIP *string `json:"bridgeIP,omitempty" flag:"bip"`
	// DefaultUlimit is the ulimits for containers
	DefaultUlimit []string `json:"defaultUlimit,omitempty" flag:"default-ulimit,repeat"`
	// IPMasq enables ip masquerading for containers
	IPMasq *bool `json:"ipMasq,omitempty" flag:"ip-masq"`
	// IPtables enables addition of iptables rules
	IPTables *bool `json:"ipTables,omitempty" flag:"iptables"`
	// InsecureRegistry enable insecure registry communication @question according to dockers this a list??
	InsecureRegistry *string `json:"insecureRegistry,omitempty" flag:"insecure-registry"`
	// LogDriver is the defailt driver for container logs (default "json-file")
	LogDriver string `json:"logDriver,omitempty" flag:"log-driver"`
	// LogLevel is the logging level ("debug", "info", "warn", "error", "fatal") (default "info")
	LogLevel *string `json:"logLevel,omitempty" flag:"log-level"`
	// Logopt is a series of options given to the log driver options for containers
	LogOpt []string `json:"logOpt,omitempty" flag:"log-opt,repeat"`
	// MTU is the containers network MTU
	MTU *int32 `json:"mtu,omitempty" flag:"mtu"`
	// RegistryMirrors is a referred list of docker registry mirror
	RegistryMirrors []string `json:"registryMirrors,omitempty" flag:"registry-mirror,repeat"`
	// Storage is the docker storage driver to use
	Storage *string `json:"storage,omitempty" flag:"storage-driver"`
	// StorageOpts is a series of options passed to the storage driver
	StorageOpts []string `json:"storageOpts,omitempty" flag:"storage-opt,repeat"`
	// Version is consumed by the nodeup and used to pick the docker version
	Version *string `json:"version,omitempty"`
}

DockerConfig is the configuration for docker

func (*DockerConfig) DeepCopy

func (in *DockerConfig) DeepCopy() *DockerConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DockerConfig.

func (*DockerConfig) DeepCopyInto

func (in *DockerConfig) DeepCopyInto(out *DockerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EgressProxySpec

type EgressProxySpec struct {
	HTTPProxy     HTTPProxy `json:"httpProxy,omitempty"`
	ProxyExcludes string    `json:"excludes,omitempty"`
}

func (*EgressProxySpec) DeepCopy

func (in *EgressProxySpec) DeepCopy() *EgressProxySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EgressProxySpec.

func (*EgressProxySpec) DeepCopyInto

func (in *EgressProxySpec) DeepCopyInto(out *EgressProxySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdClusterSpec

type EtcdClusterSpec struct {
	// Name is the name of the etcd cluster (main, events etc)
	Name string `json:"name,omitempty"`
	// Members stores the configurations for each member of the cluster (including the data volume)
	Members []*EtcdMemberSpec `json:"etcdMembers,omitempty"`
	// EnableEtcdTLS indicates the etcd service should use TLS between peers and clients
	EnableEtcdTLS bool `json:"enableEtcdTLS,omitempty"`
	// Version is the version of etcd to run i.e. 2.1.2, 3.0.17 etcd
	Version string `json:"version,omitempty"`
	// LeaderElectionTimeout is the time (in milliseconds) for an etcd leader election timeout
	LeaderElectionTimeout *metav1.Duration `json:"leaderElectionTimeout,omitempty"`
	// HeartbeatInterval is the time (in milliseconds) for an etcd heartbeat interval
	HeartbeatInterval *metav1.Duration `json:"heartbeatInterval,omitempty"`
}

EtcdClusterSpec is the etcd cluster specification

func (*EtcdClusterSpec) DeepCopy

func (in *EtcdClusterSpec) DeepCopy() *EtcdClusterSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdClusterSpec.

func (*EtcdClusterSpec) DeepCopyInto

func (in *EtcdClusterSpec) DeepCopyInto(out *EtcdClusterSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdClusterStatus

type EtcdClusterStatus struct {
	// Name is the name of the etcd cluster (main, events etc)
	Name string `json:"name,omitempty"`
	// EtcdMember stores the configurations for each member of the cluster (including the data volume)
	Members []*EtcdMemberStatus `json:"etcdMembers,omitempty"`
}

EtcdStatus represents the status of etcd: because etcd only allows limited reconfiguration, we have to block changes once etcd has been initialized.

func (*EtcdClusterStatus) DeepCopy

func (in *EtcdClusterStatus) DeepCopy() *EtcdClusterStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdClusterStatus.

func (*EtcdClusterStatus) DeepCopyInto

func (in *EtcdClusterStatus) DeepCopyInto(out *EtcdClusterStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdMemberSpec

type EtcdMemberSpec struct {
	// Name is the name of the member within the etcd cluster
	Name string `json:"name,omitempty"`
	// InstanceGroup is the instanceGroup this volume is associated
	InstanceGroup *string `json:"instanceGroup,omitempty"`
	// VolumeType is the underlining cloud storage class
	VolumeType *string `json:"volumeType,omitempty"`
	// VolumeSize is the underlining cloud volume size
	VolumeSize *int32 `json:"volumeSize,omitempty"`
	// KmsKeyId is a AWS KMS ID used to encrypt the volume
	KmsKeyId *string `json:"kmsKeyId,omitempty"`
	// EncryptedVolume indicates you want to encrypt the volume
	EncryptedVolume *bool `json:"encryptedVolume,omitempty"`
}

EtcdMemberSpec is a specification for a etcd member

func (*EtcdMemberSpec) DeepCopy

func (in *EtcdMemberSpec) DeepCopy() *EtcdMemberSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdMemberSpec.

func (*EtcdMemberSpec) DeepCopyInto

func (in *EtcdMemberSpec) DeepCopyInto(out *EtcdMemberSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type EtcdMemberStatus

type EtcdMemberStatus struct {
	// Name is the name of the member within the etcd cluster
	Name string `json:"name,omitempty"`

	// volumeId is the id of the cloud volume (e.g. the AWS volume id)
	VolumeId string `json:"volumeId,omitempty"`
}

func (*EtcdMemberStatus) DeepCopy

func (in *EtcdMemberStatus) DeepCopy() *EtcdMemberStatus

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdMemberStatus.

func (*EtcdMemberStatus) DeepCopyInto

func (in *EtcdMemberStatus) DeepCopyInto(out *EtcdMemberStatus)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExecContainerAction

type ExecContainerAction struct {
	// Image is the docker image
	Image string `json:"image,omitempty"`
	// Command is the command supplied to the above image
	Command []string `json:"command,omitempty"`
	// Environment is a map of environment variables added to the hook
	Environment map[string]string `json:"environment,omitempty"`
}

ExecContainerAction defines an hood action

func (*ExecContainerAction) DeepCopy

func (in *ExecContainerAction) DeepCopy() *ExecContainerAction

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExecContainerAction.

func (*ExecContainerAction) DeepCopyInto

func (in *ExecContainerAction) DeepCopyInto(out *ExecContainerAction)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalDNSConfig

type ExternalDNSConfig struct {
	// WatchIngress indicates you want the dns-controller to watch and create dns entries for ingress resources
	WatchIngress *bool `json:"watchIngress,omitempty"`
	// WatchNamespace is namespace to watch, detaults to all (use to control whom can creates dns entries)
	WatchNamespace string `json:"watchNamespace,omitempty"`
}

ExternalDNSConfig are options of the dns-controller

func (*ExternalDNSConfig) DeepCopy

func (in *ExternalDNSConfig) DeepCopy() *ExternalDNSConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalDNSConfig.

func (*ExternalDNSConfig) DeepCopyInto

func (in *ExternalDNSConfig) DeepCopyInto(out *ExternalDNSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type ExternalNetworkingSpec

type ExternalNetworkingSpec struct {
}

ExternalNetworkingSpec is the specification for networking that is implemented by a Daemonset It also uses kubenet

func (*ExternalNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExternalNetworkingSpec.

func (*ExternalNetworkingSpec) DeepCopyInto

func (in *ExternalNetworkingSpec) DeepCopyInto(out *ExternalNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Federation

type Federation struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec FederationSpec `json:"spec,omitempty"`
}

Federation represents a federated set of kubernetes clusters

func (*Federation) DeepCopy

func (in *Federation) DeepCopy() *Federation

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Federation.

func (*Federation) DeepCopyInto

func (in *Federation) DeepCopyInto(out *Federation)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Federation) DeepCopyObject

func (in *Federation) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Federation) GetObjectKind

func (obj *Federation) GetObjectKind() schema.ObjectKind

type FederationList

type FederationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []Federation `json:"items"`
}

func (*FederationList) DeepCopy

func (in *FederationList) DeepCopy() *FederationList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FederationList.

func (*FederationList) DeepCopyInto

func (in *FederationList) DeepCopyInto(out *FederationList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FederationList) DeepCopyObject

func (in *FederationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FederationSpec

type FederationSpec struct {
	Controllers []string `json:"controllers,omitempty"`
	Members     []string `json:"members,omitempty"`

	DNSName string `json:"dnsName,omitempty"`
}

func (*FederationSpec) DeepCopy

func (in *FederationSpec) DeepCopy() *FederationSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FederationSpec.

func (*FederationSpec) DeepCopyInto

func (in *FederationSpec) DeepCopyInto(out *FederationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FileAssetSpec

type FileAssetSpec struct {
	// Name is a shortened reference to the asset
	Name string `json:"name,omitempty"`
	// Path is the location this file should reside
	Path string `json:"path,omitempty"`
	// Roles is a list of roles the file asset should be applied, defaults to all
	Roles []InstanceGroupRole `json:"roles,omitempty"`
	// Content is the contents of the file
	Content string `json:"content,omitempty"`
	// IsBase64 indicates the contents is base64 encoded
	IsBase64 bool `json:"isBase64,omitempty"`
}

FileAssetSpec defines the structure for a file asset

func (*FileAssetSpec) DeepCopy

func (in *FileAssetSpec) DeepCopy() *FileAssetSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileAssetSpec.

func (*FileAssetSpec) DeepCopyInto

func (in *FileAssetSpec) DeepCopyInto(out *FileAssetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FlannelNetworkingSpec

type FlannelNetworkingSpec struct {
	// Backend is the backend overlay type we want to use (vxlan or udp)
	Backend string `json:"backend,omitempty"`
}

FlannelNetworkingSpec declares that we want Flannel networking

func (*FlannelNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlannelNetworkingSpec.

func (*FlannelNetworkingSpec) DeepCopyInto

func (in *FlannelNetworkingSpec) DeepCopyInto(out *FlannelNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HTTPProxy

type HTTPProxy struct {
	Host string `json:"host,omitempty"`
	Port int    `json:"port,omitempty"`
}

func (*HTTPProxy) DeepCopy

func (in *HTTPProxy) DeepCopy() *HTTPProxy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPProxy.

func (*HTTPProxy) DeepCopyInto

func (in *HTTPProxy) DeepCopyInto(out *HTTPProxy)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HookSpec

type HookSpec struct {
	// Name is an optional name for the hook, otherwise the name is kops-hook-<index>
	Name string `json:"name,omitempty"`
	// Disabled indicates if you want the unit switched off
	Disabled bool `json:"disabled,omitempty"`
	// Roles is an optional list of roles the hook should be rolled out to, defaults to all
	Roles []InstanceGroupRole `json:"roles,omitempty"`
	// Requires is a series of systemd units the action requires
	Requires []string `json:"requires,omitempty"`
	// Before is a series of systemd units which this hook must run before
	Before []string `json:"before,omitempty"`
	// ExecContainer is the image itself
	ExecContainer *ExecContainerAction `json:"execContainer,omitempty"`
	// Manifest is a raw systemd unit file
	Manifest string `json:"manifest,omitempty"`
}

HookSpec is a definition hook

func (*HookSpec) DeepCopy

func (in *HookSpec) DeepCopy() *HookSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HookSpec.

func (*HookSpec) DeepCopyInto

func (in *HookSpec) DeepCopyInto(out *HookSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type IAMSpec

type IAMSpec struct {
	Legacy                 bool `json:"legacy"`
	AllowContainerRegistry bool `json:"allowContainerRegistry,omitempty"`
}

IAMSpec adds control over the IAM security policies applied to resources

func (*IAMSpec) DeepCopy

func (in *IAMSpec) DeepCopy() *IAMSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IAMSpec.

func (*IAMSpec) DeepCopyInto

func (in *IAMSpec) DeepCopyInto(out *IAMSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type InstanceGroup

type InstanceGroup struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec InstanceGroupSpec `json:"spec,omitempty"`
}

InstanceGroup represents a group of instances (either nodes or masters) with the same configuration

func (*InstanceGroup) DeepCopy

func (in *InstanceGroup) DeepCopy() *InstanceGroup

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceGroup.

func (*InstanceGroup) DeepCopyInto

func (in *InstanceGroup) DeepCopyInto(out *InstanceGroup)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*InstanceGroup) DeepCopyObject

func (in *InstanceGroup) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*InstanceGroup) GetObjectKind

func (obj *InstanceGroup) GetObjectKind() schema.ObjectKind

func (*InstanceGroup) IsMaster

func (g *InstanceGroup) IsMaster() bool

IsMaster checks if instanceGroup is a master

type InstanceGroupList

type InstanceGroupList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []InstanceGroup `json:"items"`
}

func (*InstanceGroupList) DeepCopy

func (in *InstanceGroupList) DeepCopy() *InstanceGroupList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceGroupList.

func (*InstanceGroupList) DeepCopyInto

func (in *InstanceGroupList) DeepCopyInto(out *InstanceGroupList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*InstanceGroupList) DeepCopyObject

func (in *InstanceGroupList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type InstanceGroupRole

type InstanceGroupRole string

InstanceGroupRole string describes the roles of the nodes in this InstanceGroup (master or nodes)

const (
	InstanceGroupRoleMaster  InstanceGroupRole = "Master"
	InstanceGroupRoleNode    InstanceGroupRole = "Node"
	InstanceGroupRoleBastion InstanceGroupRole = "Bastion"
)

func ParseInstanceGroupRole

func ParseInstanceGroupRole(input string, lenient bool) (InstanceGroupRole, bool)

ParseInstanceGroupRole converts a string to an InstanceGroupRole

type InstanceGroupSpec

type InstanceGroupSpec struct {
	// Type determines the role of instances in this group: masters or nodes
	Role InstanceGroupRole `json:"role,omitempty"`
	// Image is the instance instance (ami etc) we should use
	Image string `json:"image,omitempty"`
	// MinSize is the minimum size of the pool
	MinSize *int32 `json:"minSize,omitempty"`
	// MaxSize is the maximum size of the pool
	MaxSize *int32 `json:"maxSize,omitempty"`
	// MachineType is the instance class
	MachineType string `json:"machineType,omitempty"`
	// RootVolumeSize is the size of the EBS root volume to use, in GB
	RootVolumeSize *int32 `json:"rootVolumeSize,omitempty"`
	// RootVolumeType is the type of the EBS root volume to use (e.g. gp2)
	RootVolumeType *string `json:"rootVolumeType,omitempty"`
	// If volume type is io1, then we need to specify the number of Iops.
	RootVolumeIops *int32 `json:"rootVolumeIops,omitempty"`
	// RootVolumeOptimization enables EBS optimization for an instance
	RootVolumeOptimization *bool `json:"rootVolumeOptimization,omitempty"`
	// Subnets is the names of the Subnets (as specified in the Cluster) where machines in this instance group should be placed
	Subnets []string `json:"subnets,omitempty"`
	// Zones is the names of the Zones where machines in this instance group should be placed
	// This is needed for regional subnets (e.g. GCE), to restrict placement to particular zones
	Zones []string `json:"zones,omitempty"`
	// Hooks is a list of hooks for this instanceGroup, note: these can override the cluster wide ones if required
	Hooks []HookSpec `json:"hooks,omitempty"`
	// MaxPrice indicates this is a spot-pricing group, with the specified value as our max-price bid
	MaxPrice *string `json:"maxPrice,omitempty"`
	// AssociatePublicIP is true if we want instances to have a public IP
	AssociatePublicIP *bool `json:"associatePublicIp,omitempty"`
	// AdditionalSecurityGroups attaches additional security groups (e.g. i-123456)
	AdditionalSecurityGroups []string `json:"additionalSecurityGroups,omitempty"`
	// CloudLabels indicates the labels for instances in this group, at the AWS level
	CloudLabels map[string]string `json:"cloudLabels,omitempty"`
	// NodeLabels indicates the kubernetes labels for nodes in this group
	NodeLabels map[string]string `json:"nodeLabels,omitempty"`
	// FileAssets is a collection of file assets for this instance group
	FileAssets []FileAssetSpec `json:"fileAssets,omitempty"`
	// Describes the tenancy of the instance group. Can be either default or dedicated.
	// Currently only applies to AWS.
	Tenancy string `json:"tenancy,omitempty"`
	// Kubelet overrides kubelet config from the ClusterSpec
	Kubelet *KubeletConfigSpec `json:"kubelet,omitempty"`
	// Taints indicates the kubernetes taints for nodes in this group
	Taints []string `json:"taints,omitempty"`
}

InstanceGroupSpec is the specification for a instanceGroup

func (*InstanceGroupSpec) DeepCopy

func (in *InstanceGroupSpec) DeepCopy() *InstanceGroupSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceGroupSpec.

func (*InstanceGroupSpec) DeepCopyInto

func (in *InstanceGroupSpec) DeepCopyInto(out *InstanceGroupSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Keyset

type Keyset struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec KeysetSpec `json:"spec,omitempty"`
}

Keyset is a set of system keypairs, or other secret material. It is a set to support credential rotation etc.

func (*Keyset) DeepCopy

func (in *Keyset) DeepCopy() *Keyset

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Keyset.

func (*Keyset) DeepCopyInto

func (in *Keyset) DeepCopyInto(out *Keyset)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*Keyset) DeepCopyObject

func (in *Keyset) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*Keyset) GetObjectKind

func (obj *Keyset) GetObjectKind() schema.ObjectKind

type KeysetItem

type KeysetItem struct {
	// Id is the unique identifier for this key in the keyset
	Id string `json:"id,omitempty"`

	// PublicMaterial holds non-secret material (e.g. a certificate)
	PublicMaterial []byte `json:"publicMaterial,omitempty"`

	// PrivateMaterial holds secret material (e.g. a private key, or symmetric token)
	PrivateMaterial []byte `json:"privateMaterial,omitempty"`
}

KeysetItem is an item (keypair or other secret material) in a Keyset

func (*KeysetItem) DeepCopy

func (in *KeysetItem) DeepCopy() *KeysetItem

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeysetItem.

func (*KeysetItem) DeepCopyInto

func (in *KeysetItem) DeepCopyInto(out *KeysetItem)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeysetList

type KeysetList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []Keyset `json:"items"`
}

KeysetList is a list of Keysets

func (*KeysetList) DeepCopy

func (in *KeysetList) DeepCopy() *KeysetList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeysetList.

func (*KeysetList) DeepCopyInto

func (in *KeysetList) DeepCopyInto(out *KeysetList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KeysetList) DeepCopyObject

func (in *KeysetList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type KeysetSpec

type KeysetSpec struct {
	// Type is the type of the Keyset (PKI keypair, or secret token)
	Type KeysetType `json:"type,omitempty"`

	// Keys is the set of keys that make up the keyset
	Keys []KeysetItem `json:"keys,omitempty"`
}

KeysetSpec is the spec for a Keyset

func (*KeysetSpec) DeepCopy

func (in *KeysetSpec) DeepCopy() *KeysetSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeysetSpec.

func (*KeysetSpec) DeepCopyInto

func (in *KeysetSpec) DeepCopyInto(out *KeysetSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KeysetType

type KeysetType string

KeysetType describes the type of keys in a KeySet

const (
	// TODO: Move CA to use these values
	SecretTypeKeypair KeysetType = "Keypair"
	SecretTypeSecret  KeysetType = "Secret"
)

type KopeioAuthenticationSpec

type KopeioAuthenticationSpec struct {
}

func (*KopeioAuthenticationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KopeioAuthenticationSpec.

func (*KopeioAuthenticationSpec) DeepCopyInto

func (in *KopeioAuthenticationSpec) DeepCopyInto(out *KopeioAuthenticationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KopeioNetworkingSpec

type KopeioNetworkingSpec struct {
}

KopeioNetworkingSpec declares that we want Kopeio networking

func (*KopeioNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KopeioNetworkingSpec.

func (*KopeioNetworkingSpec) DeepCopyInto

func (in *KopeioNetworkingSpec) DeepCopyInto(out *KopeioNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KopsVersionSpec

type KopsVersionSpec struct {
	Range string `json:"range,omitempty"`

	RecommendedVersion string `json:"recommendedVersion,omitempty"`
	RequiredVersion    string `json:"requiredVersion,omitempty"`

	KubernetesVersion string `json:"kubernetesVersion,omitempty"`
}

func FindKopsVersionSpec

func FindKopsVersionSpec(versions []KopsVersionSpec, version semver.Version) *KopsVersionSpec

FindKopsVersionSpec returns a KopsVersionSpec for the current version

func (*KopsVersionSpec) DeepCopy

func (in *KopsVersionSpec) DeepCopy() *KopsVersionSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KopsVersionSpec.

func (*KopsVersionSpec) DeepCopyInto

func (in *KopsVersionSpec) DeepCopyInto(out *KopsVersionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KopsVersionSpec) FindRecommendedUpgrade

func (v *KopsVersionSpec) FindRecommendedUpgrade(version semver.Version) (*semver.Version, error)

FindRecommendedUpgrade returns a string with a new version, if the current version is out of date

func (*KopsVersionSpec) IsUpgradeRequired

func (v *KopsVersionSpec) IsUpgradeRequired(version semver.Version) (bool, error)

IsUpgradeRequired returns true if the current version is not acceptable

type KubeAPIServerConfig

type KubeAPIServerConfig struct {
	// Image is the docker container usedrun
	Image string `json:"image,omitempty"`
	// LogLevel is the logging level of the api
	LogLevel int32 `json:"logLevel,omitempty" flag:"v" flag-empty:"0"`
	// CloudProvider is the name of the cloudProvider we are using, aws, gce etcd
	CloudProvider string `json:"cloudProvider,omitempty" flag:"cloud-provider"`
	// SecurePort is the port the kube runs on
	SecurePort int32 `json:"securePort,omitempty" flag:"secure-port"`
	// InsecurePort is the port the insecure api runs
	InsecurePort int32 `json:"insecurePort,omitempty" flag:"insecure-port"`
	// Address is the binding address for the kube api
	Address string `json:"address,omitempty" flag:"address"`
	// AdmissionControl is a list of admission controllers to user
	AdmissionControl []string `json:"admissionControl,omitempty" flag:"admission-control"`
	// ServiceClusterIPRange is the service address range
	ServiceClusterIPRange string `json:"serviceClusterIPRange,omitempty" flag:"service-cluster-ip-range"`
	// Passed as --service-node-port-range to kube-apiserver. Expects 'startPort-endPort' format. Eg. 30000-33000
	ServiceNodePortRange string `json:"serviceNodePortRange,omitempty" flag:"service-node-port-range"`
	// EtcdServers is a list of the etcd service to connect
	EtcdServers []string `json:"etcdServers,omitempty" flag:"etcd-servers"`
	// EtcdServersOverrides is per-resource etcd servers overrides, comma separated. The individual override format: group/resource#servers, where servers are http://ip:port, semicolon separated
	EtcdServersOverrides []string `json:"etcdServersOverrides,omitempty" flag:"etcd-servers-overrides"`
	// EtcdCAFile is the path to a ca certificate
	EtcdCAFile string `json:"etcdCaFile,omitempty" flag:"etcd-cafile"`
	// EtcdCertFile is the path to a certificate
	EtcdCertFile string `json:"etcdCertFile,omitempty" flag:"etcd-certfile"`
	// EtcdKeyFile is the path to a private key
	EtcdKeyFile string `json:"etcdKeyFile,omitempty" flag:"etcd-keyfile"`
	// TODO: Remove unused BasicAuthFile
	BasicAuthFile string `json:"basicAuthFile,omitempty" flag:"basic-auth-file"`
	// TODO: Remove unused ClientCAFile
	ClientCAFile string `json:"clientCAFile,omitempty" flag:"client-ca-file"`
	// TODO: Remove unused TLSCertFile
	TLSCertFile string `json:"tlsCertFile,omitempty" flag:"tls-cert-file"`
	// TODO: Remove unused TLSPrivateKeyFile
	TLSPrivateKeyFile string `json:"tlsPrivateKeyFile,omitempty" flag:"tls-private-key-file"`
	// TODO: Remove unused TokenAuthFile
	TokenAuthFile string `json:"tokenAuthFile,omitempty" flag:"token-auth-file"`
	// AllowPrivileged indicates if we can run privileged containers
	AllowPrivileged *bool `json:"allowPrivileged,omitempty" flag:"allow-privileged"`
	// APIServerCount is the number of api servers
	APIServerCount *int32 `json:"apiServerCount,omitempty" flag:"apiserver-count"`
	// RuntimeConfig is a series of keys/values are parsed into the `--runtime-config` parameters
	RuntimeConfig map[string]string `json:"runtimeConfig,omitempty" flag:"runtime-config"`
	// KubeletClientCertificate is the path of a certificate for secure communication between api and kubelet
	KubeletClientCertificate string `json:"kubeletClientCertificate,omitempty" flag:"kubelet-client-certificate"`
	// KubeletClientKey is the path of a private to secure communication between api and kubelet
	KubeletClientKey string `json:"kubeletClientKey,omitempty" flag:"kubelet-client-key"`
	// AnonymousAuth indicates if anonymous authentication is permitted
	AnonymousAuth *bool `json:"anonymousAuth,omitempty" flag:"anonymous-auth"`
	// KubeletPreferredAddressTypes is a list of the preferred NodeAddressTypes to use for kubelet connections
	KubeletPreferredAddressTypes []string `json:"kubeletPreferredAddressTypes,omitempty" flag:"kubelet-preferred-address-types"`
	// StorageBackend is the backend storage
	StorageBackend *string `json:"storageBackend,omitempty" flag:"storage-backend"`
	// The OpenID claim to use as the user name.
	// Note that claims other than the default ('sub') is not guaranteed to be unique and immutable.
	OIDCUsernameClaim *string `json:"oidcUsernameClaim,omitempty" flag:"oidc-username-claim"`
	// If provided, the name of a custom OpenID Connect claim for specifying user groups.
	// The claim value is expected to be a string or array of strings.
	OIDCGroupsClaim *string `json:"oidcGroupsClaim,omitempty" flag:"oidc-groups-claim"`
	// The URL of the OpenID issuer, only HTTPS scheme will be accepted.
	// If set, it will be used to verify the OIDC JSON Web Token (JWT).
	OIDCIssuerURL *string `json:"oidcIssuerURL,omitempty" flag:"oidc-issuer-url"`
	// The client ID for the OpenID Connect client, must be set if oidc-issuer-url is set.
	OIDCClientID *string `json:"oidcClientID,omitempty" flag:"oidc-client-id"`
	// If set, the OpenID server's certificate will be verified by one of the authorities in the oidc-ca-file
	OIDCCAFile *string `json:"oidcCAFile,omitempty" flag:"oidc-ca-file"`
	// The apiserver's client certificate used for outbound requests.
	ProxyClientCertFile *string `json:"proxyClientCertFile,omitempty" flag:"proxy-client-cert-file"`
	// The apiserver's client key used for outbound requests.
	ProxyClientKeyFile *string `json:"proxyClientKeyFile,omitempty" flag:"proxy-client-key-file"`
	// If set, all requests coming to the apiserver will be logged to this file.
	AuditLogPath *string `json:"auditLogPath,omitempty" flag:"audit-log-path"`
	// The maximum number of days to retain old audit log files based on the timestamp encoded in their filename.
	AuditLogMaxAge *int32 `json:"auditLogMaxAge,omitempty" flag:"audit-log-maxage"`
	// The maximum number of old audit log files to retain.
	AuditLogMaxBackups *int32 `json:"auditLogMaxBackups,omitempty" flag:"audit-log-maxbackup"`
	// The maximum size in megabytes of the audit log file before it gets rotated. Defaults to 100MB.
	AuditLogMaxSize *int32 `json:"auditLogMaxSize,omitempty" flag:"audit-log-maxsize"`
	// AuditPolicyFile is the full path to a advanced audit configuration file a.g. /srv/kubernetes/audit.conf
	AuditPolicyFile string `json:"auditPolicyFile,omitempty" flag:"audit-policy-file"`
	// File with webhook configuration for token authentication in kubeconfig format. The API server will query the remote service to determine authentication for bearer tokens.
	AuthenticationTokenWebhookConfigFile *string `json:"authenticationTokenWebhookConfigFile,omitempty" flag:"authentication-token-webhook-config-file"`
	// The duration to cache responses from the webhook token authenticator. Default is 2m. (default 2m0s)
	AuthenticationTokenWebhookCacheTTL *metav1.Duration `json:"authenticationTokenWebhookCacheTtl,omitempty" flag:"authentication-token-webhook-cache-ttl"`
	// AuthorizationMode is the authorization mode the kubeapi is running in
	AuthorizationMode *string `json:"authorizationMode,omitempty" flag:"authorization-mode"`
	// AuthorizationRBACSuperUser is the name of the superuser for default rbac
	AuthorizationRBACSuperUser *string `json:"authorizationRbacSuperUser,omitempty" flag:"authorization-rbac-super-user"`
	// ExperimentalEncryptionProviderConfig enables encryption at rest for secrets.
	ExperimentalEncryptionProviderConfig *string `json:"experimentalEncryptionProviderConfig,omitempty" flag:"experimental-encryption-provider-config"`

	// List of request headers to inspect for usernames. X-Remote-User is common.
	RequestheaderUsernameHeaders []string `json:"requestheaderUsernameHeaders,omitempty" flag:"requestheader-username-headers"`
	// List of request headers to inspect for groups. X-Remote-Group is suggested.
	RequestheaderGroupHeaders []string `json:"requestheaderGroupHeaders,omitempty" flag:"requestheader-group-headers"`
	// List of request header prefixes to inspect. X-Remote-Extra- is suggested.
	RequestheaderExtraHeaderPrefixes []string `json:"requestheaderExtraHeaderPrefixes,omitempty" flag:"requestheader-extra-headers-prefix"`
	//Root certificate bundle to use to verify client certificates on incoming requests before trusting usernames in headers specified by --requestheader-username-headers
	RequestheaderClientCAFile string `json:"requestheaderClientCAFile,omitempty" flag:"requestheader-client-ca-file"`
	// List of client certificate common names to allow to provide usernames in headers specified by --requestheader-username-headers. If empty, any client certificate validated by the authorities in --requestheader-client-ca-file is allowed.
	RequestheaderAllowedNames []string `json:"requestheaderAllowedNames,omitempty" flag:"requestheader-allowed-names"`
}

KubeAPIServerConfig defines the configuration for the kube api

func (*KubeAPIServerConfig) DeepCopy

func (in *KubeAPIServerConfig) DeepCopy() *KubeAPIServerConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeAPIServerConfig.

func (*KubeAPIServerConfig) DeepCopyInto

func (in *KubeAPIServerConfig) DeepCopyInto(out *KubeAPIServerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeControllerManagerConfig

type KubeControllerManagerConfig struct {
	// Master is the url for the kube api master
	Master string `json:"master,omitempty" flag:"master"`
	// LogLevel is the defined logLevel
	LogLevel int32 `json:"logLevel,omitempty" flag:"v" flag-empty:"0"`
	// ServiceAccountPrivateKeyFile the location for a certificate for service account signing
	ServiceAccountPrivateKeyFile string `json:"serviceAccountPrivateKeyFile,omitempty" flag:"service-account-private-key-file"`
	// Image is the docker image to use
	Image string `json:"image,omitempty"`
	// CloudProvider is the provider for cloud services.
	CloudProvider string `json:"cloudProvider,omitempty" flag:"cloud-provider"`
	// ClusterName is the instance prefix for the cluster.
	ClusterName string `json:"clusterName,omitempty" flag:"cluster-name"`
	// ClusterCIDR is CIDR Range for Pods in cluster.
	ClusterCIDR string `json:"clusterCIDR,omitempty" flag:"cluster-cidr"`
	// AllocateNodeCIDRs enables CIDRs for Pods to be allocated and, if
	// ConfigureCloudRoutes is true, to be set on the cloud provider.
	AllocateNodeCIDRs *bool `json:"allocateNodeCIDRs,omitempty" flag:"allocate-node-cidrs"`
	// ConfigureCloudRoutes enables CIDRs allocated with to be configured on the cloud provider.
	ConfigureCloudRoutes *bool `json:"configureCloudRoutes,omitempty" flag:"configure-cloud-routes"`
	// rootCAFile is the root certificate authority will be included in service account's token secret. This must be a valid PEM-encoded CA bundle.
	RootCAFile string `json:"rootCAFile,omitempty" flag:"root-ca-file"`
	// LeaderElection defines the configuration of leader election client.
	LeaderElection *LeaderElectionConfiguration `json:"leaderElection,omitempty"`
	// ReconcilerSyncLoopPeriod is the amount of time the reconciler sync states loop
	// wait between successive executions. Is set to 1 min by kops by default
	AttachDetachReconcileSyncPeriod *metav1.Duration `json:"attachDetachReconcileSyncPeriod,omitempty" flag:"attach-detach-reconcile-sync-period"`
	// TerminatedPodGCThreshold is the number of terminated pods that can exist
	// before the terminated pod garbage collector starts deleting terminated pods.
	// If <= 0, the terminated pod garbage collector is disabled.
	TerminatedPodGCThreshold *int32 `json:"terminatedPodGCThreshold,omitempty" flag:"terminated-pod-gc-threshold"`
	// UseServiceAccountCredentials controls whether we use individual service account credentials for each controller.
	UseServiceAccountCredentials *bool `json:"useServiceAccountCredentials,omitempty" flag:"use-service-account-credentials"`
	// HorizontalPodAutoscalerSyncPeriod is the amount of time between syncs
	// During each period, the controller manager queries the resource utilization
	// against the metrics specified in each HorizontalPodAutoscaler definition
	HorizontalPodAutoscalerSyncPeriod *metav1.Duration `json:"horizontalPodAutoscalerSyncPeriod,omitempty" flag:"horizontal-pod-autoscaler-sync-period"`
}

KubeControllerManagerConfig is the configuration for the controller

func (*KubeControllerManagerConfig) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeControllerManagerConfig.

func (*KubeControllerManagerConfig) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeDNSConfig

type KubeDNSConfig struct {
	// Image is the name of the docker image to run
	// Deprecated as this is now in the addon
	Image string `json:"image,omitempty"`
	// Replicas is the number of pod replicas
	// Deprecated as this is now in the addon, and controlled by autoscaler
	Replicas int `json:"replicas,omitempty"`
	// Domain is the dns domain
	Domain string `json:"domain,omitempty"`
	// ServerIP is the server ip
	ServerIP string `json:"serverIP,omitempty"`
}

KubeDNSConfig defines the kube dns configuration

func (*KubeDNSConfig) DeepCopy

func (in *KubeDNSConfig) DeepCopy() *KubeDNSConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeDNSConfig.

func (*KubeDNSConfig) DeepCopyInto

func (in *KubeDNSConfig) DeepCopyInto(out *KubeDNSConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeProxyConfig

type KubeProxyConfig struct {
	Image string `json:"image,omitempty"`
	// TODO: Better type ?
	CPURequest string `json:"cpuRequest,omitempty"` // e.g. "20m"
	// LogLevel is the logging level of the proxy
	LogLevel int32 `json:"logLevel,omitempty" flag:"v"`
	// ClusterCIDR is the CIDR range of the pods in the cluster
	ClusterCIDR string `json:"clusterCIDR,omitempty" flag:"cluster-cidr"`
	// HostnameOverride, if non-empty, will be used as the identity instead of the actual hostname.
	HostnameOverride string `json:"hostnameOverride,omitempty" flag:"hostname-override"`
	// Master is the address of the Kubernetes API server (overrides any value in kubeconfig)
	Master string `json:"master,omitempty" flag:"master"`
	// Enabled allows enabling or disabling kube-proxy
	Enabled *bool `json:"enabled,omitempty"`
	// FeatureGates is a series of key pairs used to switch on features for the proxy
	FeatureGates map[string]string `json:"featureGates" flag:"feature-gates"`
}

KubeProxyConfig defined the configuration for a proxy

func (*KubeProxyConfig) DeepCopy

func (in *KubeProxyConfig) DeepCopy() *KubeProxyConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeProxyConfig.

func (*KubeProxyConfig) DeepCopyInto

func (in *KubeProxyConfig) DeepCopyInto(out *KubeProxyConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeSchedulerConfig

type KubeSchedulerConfig struct {
	// Master is a url to the kube master
	Master string `json:"master,omitempty" flag:"master"`
	// LogLevel is the logging level
	LogLevel int32 `json:"logLevel,omitempty" flag:"v"`
	// Image is the docker image to use
	Image string `json:"image,omitempty"`
	// LeaderElection defines the configuration of leader election client.
	LeaderElection *LeaderElectionConfiguration `json:"leaderElection,omitempty"`
	// UsePolicyConfigMap enable setting the scheduler policy from a configmap
	UsePolicyConfigMap *bool `json:"usePolicyConfigMap,omitempty"`
}

KubeSchedulerConfig is the configuration for the kube-scheduler

func (*KubeSchedulerConfig) DeepCopy

func (in *KubeSchedulerConfig) DeepCopy() *KubeSchedulerConfig

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeSchedulerConfig.

func (*KubeSchedulerConfig) DeepCopyInto

func (in *KubeSchedulerConfig) DeepCopyInto(out *KubeSchedulerConfig)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubeletConfigSpec

type KubeletConfigSpec struct {
	// APIServers is not used for clusters version 1.6 and later - flag removed
	APIServers string `json:"apiServers,omitempty" flag:"api-servers"`
	// AnonymousAuth permits you to control auth to the kubelet api
	AnonymousAuth *bool `json:"anonymousAuth,omitempty" flag:"anonymous-auth"`
	// ClientCAFile is the path to a CA certificate
	ClientCAFile string `json:"clientCaFile,omitempty" flag:"client-ca-file"`
	// KubeconfigPath is the path of kubeconfig for the kubelet
	KubeconfigPath string `json:"kubeconfigPath,omitempty" flag:"kubeconfig"`
	// RequireKubeconfig indicates a kubeconfig is required
	RequireKubeconfig *bool `json:"requireKubeconfig,omitempty" flag:"require-kubeconfig"`
	// LogLevel is the logging level of the kubelet
	LogLevel *int32 `json:"logLevel,omitempty" flag:"v" flag-empty:"0"`
	// config is the path to the config file or directory of files
	PodManifestPath string `json:"podManifestPath,omitempty" flag:"pod-manifest-path"`
	// HostnameOverride is the hostname used to identify the kubelet instead of the actual hostname.
	HostnameOverride string `json:"hostnameOverride,omitempty" flag:"hostname-override"`
	// PodInfraContainerImage is the image whose network/ipc containers in each pod will use.
	PodInfraContainerImage string `json:"podInfraContainerImage,omitempty" flag:"pod-infra-container-image"`
	// SeccompProfileRoot is the directory path for seccomp profiles.
	SeccompProfileRoot *string `json:"seccompProfileRoot,omitempty" flag:"seccomp-profile-root"`
	// AllowPrivileged enables containers to request privileged mode (defaults to false)
	AllowPrivileged *bool `json:"allowPrivileged,omitempty" flag:"allow-privileged"`
	// EnableDebuggingHandlers enables server endpoints for log collection and local running of containers and commands
	EnableDebuggingHandlers *bool `json:"enableDebuggingHandlers,omitempty" flag:"enable-debugging-handlers"`
	// RegisterNode enables automatic registration with the apiserver.
	RegisterNode *bool `json:"registerNode,omitempty" flag:"register-node"`
	// ClusterDomain is the DNS domain for this cluster
	ClusterDomain string `json:"clusterDomain,omitempty" flag:"cluster-domain"`
	// ClusterDNS is the IP address for a cluster DNS server
	ClusterDNS string `json:"clusterDNS,omitempty" flag:"cluster-dns"`
	// NetworkPluginName is the name of the network plugin to be invoked for various events in kubelet/pod lifecycle
	NetworkPluginName string `json:"networkPluginName,omitempty" flag:"network-plugin"`
	// CloudProvider is the provider for cloud services.
	CloudProvider string `json:"cloudProvider,omitempty" flag:"cloud-provider"`
	// KubeletCgroups is the absolute name of cgroups to isolate the kubelet in.
	KubeletCgroups string `json:"kubeletCgroups,omitempty" flag:"kubelet-cgroups"`
	// Cgroups that container runtime is expected to be isolated in.
	RuntimeCgroups string `json:"runtimeCgroups,omitempty" flag:"runtime-cgroups"`
	// ReadOnlyPort is the port used by the kubelet api for read-only access (default 10255)
	ReadOnlyPort *int32 `json:"readOnlyPort,omitempty" flag:"read-only-port"`
	// SystemCgroups is absolute name of cgroups in which to place
	// all non-kernel processes that are not already in a container. Empty
	// for no container. Rolling back the flag requires a reboot.
	SystemCgroups string `json:"systemCgroups,omitempty" flag:"system-cgroups"`
	// cgroupRoot is the root cgroup to use for pods. This is handled by the container runtime on a best effort basis.
	CgroupRoot string `json:"cgroupRoot,omitempty" flag:"cgroup-root"`
	// configureCBR0 enables the kublet to configure cbr0 based on Node.Spec.PodCIDR.
	ConfigureCBR0 *bool `json:"configureCbr0,omitempty" flag:"configure-cbr0"`
	// How should the kubelet configure the container bridge for hairpin packets.
	// Setting this flag allows endpoints in a Service to loadbalance back to
	// themselves if they should try to access their own Service. Values:
	//   "promiscuous-bridge": make the container bridge promiscuous.
	//   "hairpin-veth":       set the hairpin flag on container veth interfaces.
	//   "none":               do nothing.
	// Setting --configure-cbr0 to false implies that to achieve hairpin NAT
	// one must set --hairpin-mode=veth-flag, because bridge assumes the
	// existence of a container bridge named cbr0.
	HairpinMode string `json:"hairpinMode,omitempty" flag:"hairpin-mode"`
	// The node has babysitter process monitoring docker and kubelet. Removed as of 1.7
	BabysitDaemons *bool `json:"babysitDaemons,omitempty" flag:"babysit-daemons"`
	// MaxPods is the number of pods that can run on this Kubelet.
	MaxPods *int32 `json:"maxPods,omitempty" flag:"max-pods"`
	// NvidiaGPUs is the number of NVIDIA GPU devices on this node.
	NvidiaGPUs int32 `json:"nvidiaGPUs,omitempty" flag:"experimental-nvidia-gpus" flag-empty:"0"`
	// PodCIDR is the CIDR to use for pod IP addresses, only used in standalone mode.
	// In cluster mode, this is obtained from the master.
	PodCIDR string `json:"podCIDR,omitempty" flag:"pod-cidr"`
	// ResolverConfig is the resolver configuration file used as the basis for the container DNS resolution configuration."), []
	ResolverConfig *string `json:"resolvConf,omitempty" flag:"resolv-conf" flag-include-empty:"true"`
	// ReconcileCIDR is Reconcile node CIDR with the CIDR specified by the
	// API server. No-op if register-node or configure-cbr0 is false.
	ReconcileCIDR *bool `json:"reconcileCIDR,omitempty" flag:"reconcile-cidr"`
	// registerSchedulable tells the kubelet to register the node as schedulable. No-op if register-node is false.
	RegisterSchedulable *bool `json:"registerSchedulable,omitempty" flag:"register-schedulable"`
	//// SerializeImagePulls when enabled, tells the Kubelet to pull images one
	//// at a time. We recommend *not* changing the default value on nodes that
	//// run docker daemon with version  < 1.9 or an Aufs storage backend.
	//// Issue #10959 has more details.
	SerializeImagePulls *bool `json:"serializeImagePulls,omitempty" flag:"serialize-image-pulls"`
	// NodeLabels to add when registering the node in the cluster.
	NodeLabels map[string]string `json:"nodeLabels,omitempty" flag:"node-labels"`
	// NonMasqueradeCIDR configures masquerading: traffic to IPs outside this range will use IP masquerade.
	NonMasqueradeCIDR string `json:"nonMasqueradeCIDR,omitempty" flag:"non-masquerade-cidr"`
	// Enable gathering custom metrics.
	EnableCustomMetrics *bool `json:"enableCustomMetrics,omitempty" flag:"enable-custom-metrics"`
	// NetworkPluginMTU is the MTU to be passed to the network plugin,
	// and overrides the default MTU for cases where it cannot be automatically
	// computed (such as IPSEC).
	NetworkPluginMTU *int32 `json:"networkPluginMTU,omitempty" flag:"network-plugin-mtu"`
	// ImageGCHighThresholdPercent is the percent of disk usage after which
	// image garbage collection is always run.
	ImageGCHighThresholdPercent *int32 `json:"imageGCHighThresholdPercent,omitempty" flag:"image-gc-high-threshold"`
	// ImageGCLowThresholdPercent is the percent of disk usage before which
	// image garbage collection is never run. Lowest disk usage to garbage
	// collect to.
	ImageGCLowThresholdPercent *int32 `json:"imageGCLowThresholdPercent,omitempty" flag:"image-gc-low-threshold"`
	// Comma-delimited list of hard eviction expressions.  For example, 'memory.available<300Mi'.
	EvictionHard *string `json:"evictionHard,omitempty" flag:"eviction-hard"`
	// Comma-delimited list of soft eviction expressions.  For example, 'memory.available<300Mi'.
	EvictionSoft string `json:"evictionSoft,omitempty" flag:"eviction-soft"`
	// Comma-delimited list of grace periods for each soft eviction signal.  For example, 'memory.available=30s'.
	EvictionSoftGracePeriod string `json:"evictionSoftGracePeriod,omitempty" flag:"eviction-soft-grace-period"`
	// Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition.
	EvictionPressureTransitionPeriod *metav1.Duration `json:"evictionPressureTransitionPeriod,omitempty" flag:"eviction-pressure-transition-period" flag-empty:"0s"`
	// Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met.
	EvictionMaxPodGracePeriod int32 `json:"evictionMaxPodGracePeriod,omitempty" flag:"eviction-max-pod-grace-period" flag-empty:"0"`
	// Comma-delimited list of minimum reclaims (e.g. imagefs.available=2Gi) that describes the minimum amount of resource the kubelet will reclaim when performing a pod eviction if that resource is under pressure.
	EvictionMinimumReclaim string `json:"evictionMinimumReclaim,omitempty" flag:"eviction-minimum-reclaim"`
	// The full path of the directory in which to search for additional third party volume plugins
	VolumePluginDirectory string `json:"volumePluginDirectory,omitempty" flag:"volume-plugin-dir"`
	// Taints to add when registering a node in the cluster
	Taints []string `json:"taints,omitempty" flag:"register-with-taints"`
	// FeatureGates is set of key=value pairs that describe feature gates for alpha/experimental features.
	FeatureGates map[string]string `json:"featureGates,omitempty" flag:"feature-gates"`
	// Resource reservation for kubernetes system daemons like the kubelet, container runtime, node problem detector, etc.
	KubeReserved map[string]string `json:"kubeReserved,omitempty" flag:"kube-reserved"`
	// Control group for kube daemons.
	KubeReservedCgroup string `json:"kubeReservedCgroup,omitempty" flag:"kube-reserved-cgroup"`
	// Capture resource reservation for OS system daemons like sshd, udev, etc.
	SystemReserved map[string]string `json:"systemReserved,omitempty" flag:"system-reserved"`
	// Parent control group for OS system daemons.
	SystemReservedCgroup string `json:"systemReservedCgroup,omitempty" flag:"system-reserved-cgroup"`
	// Enforce Allocatable across pods whenever the overall usage across all pods exceeds Allocatable.
	EnforceNodeAllocatable string `json:"enforceNodeAllocatable,omitempty" flag:"enforce-node-allocatable"`
	// RuntimeRequestTimeout is timeout for runtime requests on - pull, logs, exec and attach
	RuntimeRequestTimeout *metav1.Duration `json:"runtimeRequestTimeout,omitempty" flag:"runtime-request-timeout"`
	// VolumeStatsAggPeriod is the interval for kubelet to calculate and cache the volume disk usage for all pods and volumes
	VolumeStatsAggPeriod *metav1.Duration `json:"volumeStatsAggPeriod,omitempty" flag:"volume-stats-agg-period"`
}

KubeletConfigSpec defines the kubelet configuration

func (*KubeletConfigSpec) DeepCopy

func (in *KubeletConfigSpec) DeepCopy() *KubeletConfigSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeletConfigSpec.

func (*KubeletConfigSpec) DeepCopyInto

func (in *KubeletConfigSpec) DeepCopyInto(out *KubeletConfigSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubenetNetworkingSpec

type KubenetNetworkingSpec struct {
}

KubenetNetworkingSpec is the specification for kubenet networking, largely integrated but intended to replace classic

func (*KubenetNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubenetNetworkingSpec.

func (*KubenetNetworkingSpec) DeepCopyInto

func (in *KubenetNetworkingSpec) DeepCopyInto(out *KubenetNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type KubernetesVersionSpec

type KubernetesVersionSpec struct {
	Range string `json:"range,omitempty"`

	RecommendedVersion string `json:"recommendedVersion,omitempty"`
	RequiredVersion    string `json:"requiredVersion,omitempty"`
}

func FindKubernetesVersionSpec

func FindKubernetesVersionSpec(versions []KubernetesVersionSpec, version semver.Version) *KubernetesVersionSpec

FindKubernetesVersionSpec returns a KubernetesVersionSpec for the current version

func (*KubernetesVersionSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubernetesVersionSpec.

func (*KubernetesVersionSpec) DeepCopyInto

func (in *KubernetesVersionSpec) DeepCopyInto(out *KubernetesVersionSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*KubernetesVersionSpec) FindRecommendedUpgrade

func (v *KubernetesVersionSpec) FindRecommendedUpgrade(version semver.Version) (*semver.Version, error)

FindRecommendedUpgrade returns a string with a new version, if the current version is out of date

func (*KubernetesVersionSpec) IsUpgradeRequired

func (v *KubernetesVersionSpec) IsUpgradeRequired(version semver.Version) (bool, error)

IsUpgradeRequired returns true if the current version is not acceptable

type KuberouterNetworkingSpec

type KuberouterNetworkingSpec struct {
}

KuberouterNetworkingSpec declares that we want Kube-router networking

func (*KuberouterNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KuberouterNetworkingSpec.

func (*KuberouterNetworkingSpec) DeepCopyInto

func (in *KuberouterNetworkingSpec) DeepCopyInto(out *KuberouterNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LeaderElectionConfiguration

type LeaderElectionConfiguration struct {
	// leaderElect enables a leader election client to gain leadership
	// before executing the main loop. Enable this when running replicated
	// components for high availability.
	LeaderElect *bool `json:"leaderElect,omitempty" flag:"leader-elect"`
}

LeaderElectionConfiguration defines the configuration of leader election clients for components that can run with leader election enabled.

func (*LeaderElectionConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaderElectionConfiguration.

func (*LeaderElectionConfiguration) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LoadBalancerAccessSpec

type LoadBalancerAccessSpec struct {
	Type               LoadBalancerType `json:"type,omitempty"`
	IdleTimeoutSeconds *int64           `json:"idleTimeoutSeconds,omitempty"`
}

func (*LoadBalancerAccessSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancerAccessSpec.

func (*LoadBalancerAccessSpec) DeepCopyInto

func (in *LoadBalancerAccessSpec) DeepCopyInto(out *LoadBalancerAccessSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type LoadBalancerType

type LoadBalancerType string

LoadBalancerType string describes LoadBalancer types (public, internal)

const (
	LoadBalancerTypePublic   LoadBalancerType = "Public"
	LoadBalancerTypeInternal LoadBalancerType = "Internal"
)

type NetworkingSpec

type NetworkingSpec struct {
	Classic    *ClassicNetworkingSpec    `json:"classic,omitempty"`
	Kubenet    *KubenetNetworkingSpec    `json:"kubenet,omitempty"`
	External   *ExternalNetworkingSpec   `json:"external,omitempty"`
	CNI        *CNINetworkingSpec        `json:"cni,omitempty"`
	Kopeio     *KopeioNetworkingSpec     `json:"kopeio,omitempty"`
	Weave      *WeaveNetworkingSpec      `json:"weave,omitempty"`
	Flannel    *FlannelNetworkingSpec    `json:"flannel,omitempty"`
	Calico     *CalicoNetworkingSpec     `json:"calico,omitempty"`
	Canal      *CanalNetworkingSpec      `json:"canal,omitempty"`
	Kuberouter *KuberouterNetworkingSpec `json:"kuberouter,omitempty"`
	Romana     *RomanaNetworkingSpec     `json:"romana,omitempty"`
}

NetworkingSpec allows selection and configuration of a networking plugin

func (*NetworkingSpec) DeepCopy

func (in *NetworkingSpec) DeepCopy() *NetworkingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkingSpec.

func (*NetworkingSpec) DeepCopyInto

func (in *NetworkingSpec) DeepCopyInto(out *NetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type NoopStatusStore

type NoopStatusStore struct {
}

NoopStatusStore is a stub implementation that returns empty status It is a temporary hackaround while we introduce status

func (*NoopStatusStore) DeepCopy

func (in *NoopStatusStore) DeepCopy() *NoopStatusStore

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NoopStatusStore.

func (*NoopStatusStore) DeepCopyInto

func (in *NoopStatusStore) DeepCopyInto(out *NoopStatusStore)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*NoopStatusStore) FindClusterStatus

func (s *NoopStatusStore) FindClusterStatus(cluster *Cluster) (*ClusterStatus, error)

FindClusterStatus discovers the status of the cluster, by inspecting the cloud objects

func (*NoopStatusStore) GetApiIngressStatus

func (s *NoopStatusStore) GetApiIngressStatus(cluster *Cluster) ([]ApiIngressStatus, error)

type RBACAuthorizationSpec

type RBACAuthorizationSpec struct {
}

func (*RBACAuthorizationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RBACAuthorizationSpec.

func (*RBACAuthorizationSpec) DeepCopyInto

func (in *RBACAuthorizationSpec) DeepCopyInto(out *RBACAuthorizationSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type RomanaNetworkingSpec

type RomanaNetworkingSpec struct {
	// DaemonServiceIP is the Kubernetes Service IP for the romana-daemon pod
	DaemonServiceIP string `json:"daemonServiceIP,omitempty"`
	// EtcdServiceIP is the Kubernetes Service IP for the etcd backend used by Romana
	EtcdServiceIP string `json:"etcdServiceIP,omitempty"`
}

RomanaNetworkingSpec declares that we want Romana networking

func (*RomanaNetworkingSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RomanaNetworkingSpec.

func (*RomanaNetworkingSpec) DeepCopyInto

func (in *RomanaNetworkingSpec) DeepCopyInto(out *RomanaNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SSHCredential

type SSHCredential struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec SSHCredentialSpec `json:"spec,omitempty"`
}

SSHCredential represent a set of kops secrets

func (*SSHCredential) DeepCopy

func (in *SSHCredential) DeepCopy() *SSHCredential

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHCredential.

func (*SSHCredential) DeepCopyInto

func (in *SSHCredential) DeepCopyInto(out *SSHCredential)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SSHCredential) DeepCopyObject

func (in *SSHCredential) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*SSHCredential) GetObjectKind

func (obj *SSHCredential) GetObjectKind() schema.ObjectKind

type SSHCredentialList

type SSHCredentialList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	Items []SSHCredential `json:"items"`
}

func (*SSHCredentialList) DeepCopy

func (in *SSHCredentialList) DeepCopy() *SSHCredentialList

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHCredentialList.

func (*SSHCredentialList) DeepCopyInto

func (in *SSHCredentialList) DeepCopyInto(out *SSHCredentialList)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*SSHCredentialList) DeepCopyObject

func (in *SSHCredentialList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type SSHCredentialSpec

type SSHCredentialSpec struct {
	PublicKey string `json:"publicKey,omitempty"`
}

func (*SSHCredentialSpec) DeepCopy

func (in *SSHCredentialSpec) DeepCopy() *SSHCredentialSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SSHCredentialSpec.

func (*SSHCredentialSpec) DeepCopyInto

func (in *SSHCredentialSpec) DeepCopyInto(out *SSHCredentialSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type StatusStore

type StatusStore interface {
	// FindClusterStatus discovers the status of the cluster, by inspecting the cloud objects
	FindClusterStatus(cluster *Cluster) (*ClusterStatus, error)

	GetApiIngressStatus(cluster *Cluster) ([]ApiIngressStatus, error)
}

StatusStore abstracts the key status functions; and lets us introduce status gradually

type SubnetType

type SubnetType string

SubnetType string describes subnet types (public, private, utility)

const (
	// SubnetTypePublic means the subnet is public
	SubnetTypePublic SubnetType = "Public"
	// SubnetTypePrivate means the subnet has no public address or is natted
	SubnetTypePrivate SubnetType = "Private"
	// SubnetTypeUtility mean the subnet is used for utility services, such as the bastion
	SubnetTypeUtility SubnetType = "Utility"
)

type TopologySpec

type TopologySpec struct {
	// The environment to launch the Kubernetes masters in public|private
	Masters string `json:"masters,omitempty"`

	// The environment to launch the Kubernetes nodes in public|private
	Nodes string `json:"nodes,omitempty"`

	// Bastion provide an external facing point of entry into a network
	// containing private network instances. This host can provide a single
	// point of fortification or audit and can be started and stopped to enable
	// or disable inbound SSH communication from the Internet, some call bastion
	// as the "jump server".
	Bastion *BastionSpec `json:"bastion,omitempty"`

	// DNS configures options relating to DNS, in particular whether we use a public or a private hosted zone
	DNS *DNSSpec `json:"dns,omitempty"`
}

func (*TopologySpec) DeepCopy

func (in *TopologySpec) DeepCopy() *TopologySpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopologySpec.

func (*TopologySpec) DeepCopyInto

func (in *TopologySpec) DeepCopyInto(out *TopologySpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type WeaveNetworkingSpec

type WeaveNetworkingSpec struct {
	MTU *int32 `json:"mtu,omitempty"`
}

WeaveNetworkingSpec declares that we want Weave networking

func (*WeaveNetworkingSpec) DeepCopy

func (in *WeaveNetworkingSpec) DeepCopy() *WeaveNetworkingSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WeaveNetworkingSpec.

func (*WeaveNetworkingSpec) DeepCopyInto

func (in *WeaveNetworkingSpec) DeepCopyInto(out *WeaveNetworkingSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

Directories

Path Synopsis
Package install installs the kops API group, making it available as an option to all of the API encoding/decoding machinery.
Package install installs the kops API group, making it available as an option to all of the API encoding/decoding machinery.
+groupName=kops
+groupName=kops
+groupName=kops
+groupName=kops

Jump to

Keyboard shortcuts

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