Documentation ¶
Overview ¶
+groupName=kops
Index ¶
- Constants
- Variables
- func ParseRawYaml(data []byte, dest interface{}) error
- func PerformAssignmentsInstanceGroups(groups []*InstanceGroup) error
- func RecommendedKubernetesVersion(c *Channel, kopsVersionString string) *semver.Version
- func Resource(resource string) schema.GroupResource
- func ToRawYaml(obj interface{}) ([]byte, error)
- type AccessSpec
- type AddonSpec
- type AlwaysAllowAuthorizationSpec
- type AmazonVPCNetworkingSpec
- type ApiIngressStatus
- type Assets
- type AuthenticationSpec
- type AuthorizationSpec
- type AwsAuthenticationSpec
- type BastionSpec
- type CNINetworkingSpec
- type CalicoNetworkingSpec
- type CanalNetworkingSpec
- type Channel
- type ChannelImageSpec
- type ChannelSpec
- type CiliumNetworkingSpec
- type ClassicNetworkingSpec
- type CloudConfiguration
- type CloudControllerManagerConfig
- type CloudProviderID
- type Cluster
- type ClusterList
- type ClusterSpec
- type ClusterStatus
- type ClusterSubnetSpec
- type DNSAccessSpec
- type DNSSpec
- type DNSType
- type DockerConfig
- type EgressProxySpec
- type EtcdBackupSpec
- type EtcdClusterSpec
- type EtcdClusterStatus
- type EtcdManagerSpec
- type EtcdMemberSpec
- type EtcdMemberStatus
- type EtcdProviderType
- type ExecContainerAction
- type ExternalDNSConfig
- type ExternalNetworkingSpec
- type FileAssetSpec
- type FlannelNetworkingSpec
- type HTTPProxy
- type HookSpec
- type IAMProfileSpec
- type IAMSpec
- type InstanceGroup
- func (g *InstanceGroup) AddInstanceGroupNodeLabel()
- func (in *InstanceGroup) DeepCopy() *InstanceGroup
- func (in *InstanceGroup) DeepCopyInto(out *InstanceGroup)
- func (in *InstanceGroup) DeepCopyObject() runtime.Object
- func (obj *InstanceGroup) GetObjectKind() schema.ObjectKind
- func (g *InstanceGroup) IsBastion() bool
- func (g *InstanceGroup) IsMaster() bool
- type InstanceGroupList
- type InstanceGroupRole
- type InstanceGroupSpec
- type Keyset
- type KeysetItem
- type KeysetList
- type KeysetSpec
- type KeysetType
- type KopeioAuthenticationSpec
- type KopeioNetworkingSpec
- type KopsVersionSpec
- type KubeAPIServerConfig
- type KubeControllerManagerConfig
- type KubeDNSConfig
- type KubeProxyConfig
- type KubeSchedulerConfig
- type KubeletConfigSpec
- type KubenetNetworkingSpec
- type KubernetesVersionSpec
- func (in *KubernetesVersionSpec) DeepCopy() *KubernetesVersionSpec
- func (in *KubernetesVersionSpec) DeepCopyInto(out *KubernetesVersionSpec)
- func (v *KubernetesVersionSpec) FindRecommendedUpgrade(version semver.Version) (*semver.Version, error)
- func (v *KubernetesVersionSpec) IsUpgradeRequired(version semver.Version) (bool, error)
- type KuberouterNetworkingSpec
- type LeaderElectionConfiguration
- type LoadBalancer
- type LoadBalancerAccessSpec
- type LoadBalancerType
- type LyftVPCNetworkingSpec
- type NetworkingSpec
- type NodeAuthorizationSpec
- type NodeAuthorizerSpec
- type NoopStatusStore
- type RBACAuthorizationSpec
- type RomanaNetworkingSpec
- type SSHCredential
- type SSHCredentialList
- type SSHCredentialSpec
- type StatusStore
- type SubnetType
- type TargetSpec
- type TerraformSpec
- type TopologySpec
- type UserData
- type WeaveNetworkingSpec
Constants ¶
const ( TopologyPublic = "public" TopologyPrivate = "private" )
const AlphaChannel = "alpha"
const AnnotationNameManagement = "kops.kubernetes.io/management"
AnnotationNameManagement is the annotation that indicates that a cluster is under external or non-standard management
const AnnotationValueManagementImported = "imported"
AnnotationValueManagementImported is the annotation value that indicates a cluster was imported, typically as part of an upgrade
const CiliumDefaultVersion = "v1.0-stable"
const DefaultChannel = "stable"
const GroupName = "kops"
GroupName is the group name use in this package
const LabelClusterName = "kops.k8s.io/cluster"
const NodeLabelInstanceGroup = "kops.k8s.io/instancegroup"
NodeLabelInstanceGroup is a node label set to the name of the instance group
const TaintNoScheduleMaster15 = "dedicated=master:NoSchedule"
Deprecated - use the new labels & taints node-role.kubernetes.io/master and node-role.kubernetes.io/node
const UpdatePolicyExternal = "external"
UpdatePolicyExternal is a value for ClusterSpec.UpdatePolicy indicating that upgrades are done externally, and we should disable automatic upgrades
Variables ¶
var ( SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) AddToScheme = SchemeBuilder.AddToScheme )
var AllInstanceGroupRoles = []InstanceGroupRole{ InstanceGroupRoleNode, InstanceGroupRoleMaster, InstanceGroupRoleBastion, }
AllInstanceGroupRoles is a slice of all valid InstanceGroupRole values
var DefaultChannelBase = "https://raw.githubusercontent.com/kubernetes/kops/master/channels/"
var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal}
SchemeGroupVersion is the group version used to register these objects
Functions ¶
func ParseRawYaml ¶
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 ¶
RecommendedKubernetesVersion returns the recommended kubernetes version for a version of kops It is used by default when creating a new cluster, for example
func Resource ¶
func Resource(resource string) schema.GroupResource
Resource takes an unqualified resource and returns a Group qualified GroupResource
Types ¶
type AccessSpec ¶
type AccessSpec struct { // DNS will be used to provide config on kube-apiserver elb dns DNS *DNSAccessSpec `json:"dns,omitempty"` // LoadBalancer is the configuration for the kube-apiserver ELB LoadBalancer *LoadBalancerAccessSpec `json:"loadBalancer,omitempty"` }
AccessSpec provides configuration details related to kubeapi dns and ELB access
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 AddonSpec ¶
type AddonSpec struct { // Manifest is a path to the manifest that defines the addon Manifest string `json:"manifest,omitempty"` }
AddonSpec defines an addon that we want to install in the cluster
func (*AddonSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonSpec.
func (*AddonSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AlwaysAllowAuthorizationSpec ¶
type AlwaysAllowAuthorizationSpec struct { }
func (*AlwaysAllowAuthorizationSpec) DeepCopy ¶
func (in *AlwaysAllowAuthorizationSpec) DeepCopy() *AlwaysAllowAuthorizationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlwaysAllowAuthorizationSpec.
func (*AlwaysAllowAuthorizationSpec) DeepCopyInto ¶
func (in *AlwaysAllowAuthorizationSpec) DeepCopyInto(out *AlwaysAllowAuthorizationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type AmazonVPCNetworkingSpec ¶
type AmazonVPCNetworkingSpec struct { // The container image name to use, which by default is: // 602401143452.dkr.ecr.us-west-2.amazonaws.com/amazon-k8s-cni:1.0.0 ImageName string `json:"imageName,omitempty"` }
AmazonVPCNetworkingSpec declares that we want Amazon VPC CNI networking
func (*AmazonVPCNetworkingSpec) DeepCopy ¶
func (in *AmazonVPCNetworkingSpec) DeepCopy() *AmazonVPCNetworkingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AmazonVPCNetworkingSpec.
func (*AmazonVPCNetworkingSpec) DeepCopyInto ¶
func (in *AmazonVPCNetworkingSpec) DeepCopyInto(out *AmazonVPCNetworkingSpec)
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"` }
ApiIngressStatus 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"` // ContainerProxy is a url for a pull-through proxy of a docker registry ContainerProxy *string `json:"containerProxy,omitempty"` }
Assets defines the privately hosted assets
func (*Assets) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Assets.
func (*Assets) DeepCopyInto ¶
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"` Aws *AwsAuthenticationSpec `json:"aws,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 AwsAuthenticationSpec ¶
type AwsAuthenticationSpec struct { }
func (*AwsAuthenticationSpec) DeepCopy ¶
func (in *AwsAuthenticationSpec) DeepCopy() *AwsAuthenticationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AwsAuthenticationSpec.
func (*AwsAuthenticationSpec) DeepCopyInto ¶
func (in *AwsAuthenticationSpec) DeepCopyInto(out *AwsAuthenticationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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 {
UsesSecondaryIP bool `json:"usesSecondaryIP,omitempty"`
}
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 // LogSeverityScreen lets us set the desired log level. (Default: info) LogSeverityScreen string `json:"logSeverityScreen,omitempty"` // MTU to be set in the cni-network-config for calico. MTU *int32 `json:"mtu,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"` // MajorVersion is the version of Calico to use MajorVersion string `json:"majorVersion,omitempty"` }
CalicoNetworkingSpec declares that we want Calico networking
func (*CalicoNetworkingSpec) DeepCopy ¶
func (in *CalicoNetworkingSpec) DeepCopy() *CalicoNetworkingSpec
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 { // 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"` // 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"` // LogSeveritySys the severity to set for logs which are sent to syslog // Default: INFO (other options: DEBUG, WARNING, ERROR, CRITICAL, NONE) LogSeveritySys string `json:"logSeveritySys,omitempty"` // PrometheusGoMetricsEnabled enables Prometheus Go runtime metrics collection PrometheusGoMetricsEnabled bool `json:"prometheusGoMetricsEnabled,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"` // 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 ¶
LoadChannel loads a Channel object from the specified VFS location
func ParseChannel ¶
ParseChannel parses a Channel object
func (*Channel) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Channel.
func (*Channel) DeepCopyInto ¶
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 CiliumNetworkingSpec ¶
type CiliumNetworkingSpec struct { Version string `json:"version,omitempty"` AccessLog string `json:"accessLog,omitempty"` AgentLabels []string `json:"agentLabels,omitempty"` AllowLocalhost string `json:"allowLocalhost,omitempty"` AutoIpv6NodeRoutes bool `json:"autoIpv6NodeRoutes,omitempty"` BPFRoot string `json:"bpfRoot,omitempty"` ContainerRuntime []string `json:"containerRuntime,omitempty"` ContainerRuntimeEndpoint map[string]string `json:"containerRuntimeEndpoint,omitempty"` Debug bool `json:"debug,omitempty"` DebugVerbose []string `json:"debugVerbose,omitempty"` Device string `json:"device,omitempty"` DisableConntrack bool `json:"disableConntrack,omitempty"` DisableIpv4 bool `json:"disableIpv4,omitempty"` DisableK8sServices bool `json:"disableK8sServices,omitempty"` EnablePolicy string `json:"enablePolicy,omitempty"` EnableTracing bool `json:"enableTracing,omitempty"` EnvoyLog string `json:"envoyLog,omitempty"` Ipv4ClusterCIDRMaskSize int `json:"ipv4ClusterCidrMaskSize,omitempty"` Ipv4Node string `json:"ipv4Node,omitempty"` Ipv4Range string `json:"ipv4Range,omitempty"` Ipv4ServiceRange string `json:"ipv4ServiceRange,omitempty"` Ipv6ClusterAllocCidr string `json:"ipv6ClusterAllocCidr,omitempty"` Ipv6Node string `json:"ipv6Node,omitempty"` Ipv6Range string `json:"ipv6Range,omitempty"` Ipv6ServiceRange string `json:"ipv6ServiceRange,omitempty"` K8sAPIServer string `json:"k8sApiServer,omitempty"` K8sKubeconfigPath string `json:"k8sKubeconfigPath,omitempty"` KeepBPFTemplates bool `json:"keepBpfTemplates,omitempty"` KeepConfig bool `json:"keepConfig,omitempty"` LabelPrefixFile string `json:"labelPrefixFile,omitempty"` Labels []string `json:"labels,omitempty"` LB string `json:"lb,omitempty"` LibDir string `json:"libDir,omitempty"` LogDrivers []string `json:"logDriver,omitempty"` LogOpt map[string]string `json:"logOpt,omitempty"` Logstash bool `json:"logstash,omitempty"` LogstashAgent string `json:"logstashAgent,omitempty"` LogstashProbeTimer uint32 `json:"logstashProbeTimer,omitempty"` DisableMasquerade bool `json:"disableMasquerade,omitempty"` Nat46Range string `json:"nat46Range,omitempty"` Pprof bool `json:"pprof,omitempty"` PrefilterDevice string `json:"prefilterDevice,omitempty"` PrometheusServeAddr string `json:"prometheusServeAddr,omitempty"` Restore bool `json:"restore,omitempty"` SingleClusterRoute bool `json:"singleClusterRoute,omitempty"` SocketPath string `json:"socketPath,omitempty"` StateDir string `json:"stateDir,omitempty"` TracePayloadLen int `json:"tracePayloadlen,omitempty"` Tunnel string `json:"tunnel,omitempty"` }
CiliumNetworkingSpec declares that we want Cilium networking
func (*CiliumNetworkingSpec) DeepCopy ¶
func (in *CiliumNetworkingSpec) DeepCopy() *CiliumNetworkingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CiliumNetworkingSpec.
func (*CiliumNetworkingSpec) DeepCopyInto ¶
func (in *CiliumNetworkingSpec) DeepCopyInto(out *CiliumNetworkingSpec)
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 ¶
func (in *ClassicNetworkingSpec) DeepCopy() *ClassicNetworkingSpec
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"` // Spotinst cloud-config specs SpotinstProduct *string `json:"spotinstProduct,omitempty"` SpotinstOrientation *string `json:"spotinstOrientation,omitempty"` }
CloudConfiguration 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"` // CIDRAllocatorType specifies the type of CIDR allocator to use. CIDRAllocatorType *string `json:"cidrAllocatorType,omitempty" flag:"cidr-allocator-type"` // 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"` }
CloudControllerManagerConfig is the configuration of the cloud controller
func (*CloudControllerManagerConfig) DeepCopy ¶
func (in *CloudControllerManagerConfig) DeepCopy() *CloudControllerManagerConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CloudControllerManagerConfig.
func (*CloudControllerManagerConfig) DeepCopyInto ¶
func (in *CloudControllerManagerConfig) DeepCopyInto(out *CloudControllerManagerConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type CloudProviderID ¶
type CloudProviderID string
const ( CloudProviderALI CloudProviderID = "alicloud" CloudProviderAWS CloudProviderID = "aws" CloudProviderBareMetal CloudProviderID = "baremetal" CloudProviderDO CloudProviderID = "digitalocean" CloudProviderGCE CloudProviderID = "gce" CloudProviderOpenstack CloudProviderID = "openstack" 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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Cluster.
func (*Cluster) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Cluster) DeepCopyObject ¶
DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
func (*Cluster) FillDefaults ¶
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
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"` // Additional addons that should be installed on the cluster Addons []AddonSpec `json:"addons,omitempty"` // ConfigBase is the path where we store configuration for the cluster // This might be different than the location where 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"` // AdditionalNetworkCIDRs is a list of additional CIDR used for the AWS VPC // or otherwise allocated to k8s. This is a real CIDR, not the internal k8s network // On AWS, it maps to any additional CIDRs added to a VPC. AdditionalNetworkCIDRs []string `json:"additionalNetworkCIDRs,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"` // NodeAuthorization defined the custom node authorization configuration NodeAuthorization *NodeAuthorizationSpec `json:"nodeAuthorization,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"` // DisableSubnetTags controls if subnets are tagged in AWS DisableSubnetTags bool `json:"disableSubnetTags,omitempty"` // Target allows for us to nest extra config for targets such as terraform Target *TargetSpec `json:"target,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"` // PublicIP to attach to NatGateway PublicIP string `json:"publicIP,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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DNSSpec.
func (*DNSSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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"` // DataRoot is the root directory of persistent docker state (default "/var/lib/docker") DataRoot *string `json:"dataRoot,omitempty" flag:"data-root"` // DefaultUlimit is the ulimits for containers DefaultUlimit []string `json:"defaultUlimit,omitempty" flag:"default-ulimit,repeat"` // ExecRoot is the root directory for execution state files (default "/var/run/docker") ExecRoot *string `json:"execRoot,omitempty" flag:"exec-root"` // Hosts enables you to configure the endpoints the docker daemon listens on i.e tcp://0.0.0.0.2375 or unix:///var/run/docker.sock etc Hosts []string `json:"hosts,omitempty" flag:"host,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"` // LiveRestore enables live restore of docker when containers are still running LiveRestore *bool `json:"liveRestore,omitempty" flag:"live-restore"` // LogDriver is the default 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"` // UserNamespaceRemap sets the user namespace remapping option for the docker daemon UserNamespaceRemap string `json:"userNamespaceRemap,omitempty" flag:"userns-remap"` // 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 EtcdBackupSpec ¶
type EtcdBackupSpec struct { // BackupStore is the VFS path where we will read/write backup data BackupStore string `json:"backupStore,omitempty"` // Image is the etcd backup manager image to use. Setting this will create a sidecar container in the etcd pod with the specified image. Image string `json:"image,omitempty"` }
EtcdBackupSpec describes how we want to do backups of etcd
func (*EtcdBackupSpec) DeepCopy ¶
func (in *EtcdBackupSpec) DeepCopy() *EtcdBackupSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdBackupSpec.
func (*EtcdBackupSpec) DeepCopyInto ¶
func (in *EtcdBackupSpec) DeepCopyInto(out *EtcdBackupSpec)
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"` // Provider is the provider used to run etcd: standalone, manager. // We default to manager for kubernetes 1.11 or if the manager is configured; otherwise standalone. Provider EtcdProviderType `json:"provider,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"` // EnableTLSAuth indicates client and peer TLS auth should be enforced EnableTLSAuth bool `json:"enableTLSAuth,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"` // Image is the etcd docker image to use. Setting this will ignore the Version specified. Image string `json:"image,omitempty"` // Backups describes how we do backups of etcd Backups *EtcdBackupSpec `json:"backups,omitempty"` // Manager describes the manager configuration Manager *EtcdManagerSpec `json:"manager,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"` }
EtcdClusterStatus 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 EtcdManagerSpec ¶
type EtcdManagerSpec struct { // Image is the etcd manager image to use. Image string `json:"image,omitempty"` }
EtcdManagerSpec describes how we configure the etcd manager
func (*EtcdManagerSpec) DeepCopy ¶
func (in *EtcdManagerSpec) DeepCopy() *EtcdManagerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EtcdManagerSpec.
func (*EtcdManagerSpec) DeepCopyInto ¶
func (in *EtcdManagerSpec) DeepCopyInto(out *EtcdManagerSpec)
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"` // If volume type is io1, then we need to specify the number of Iops. VolumeIops *int32 `json:"volumeIops,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 EtcdProviderType ¶ added in v1.11.0
type EtcdProviderType string
EtcdProviderType describes etcd cluster provisioning types (Standalone, Manager)
const ( EtcdProviderTypeManager EtcdProviderType = "Manager" EtcdProviderTypeLegacy EtcdProviderType = "Legacy" )
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 { // Disable indicates we do not wish to run the dns-controller addon Disable bool `json:"disable,omitempty"` // 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, defaults 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 ¶
func (in *ExternalNetworkingSpec) DeepCopy() *ExternalNetworkingSpec
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 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 ¶
func (in *FlannelNetworkingSpec) DeepCopy() *FlannelNetworkingSpec
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 ¶
func (*HTTPProxy) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HTTPProxy.
func (*HTTPProxy) DeepCopyInto ¶
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"` // UseRawManifest indicates that the contents of Manifest should be used as the contents // of the systemd unit, unmodified. Before and Requires are ignored when used together // with this value (and validation shouldn't allow them to be set) UseRawManifest bool `json:"useRawManifest,omitempty"` }
HookSpec is a definition hook
func (*HookSpec) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HookSpec.
func (*HookSpec) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type IAMProfileSpec ¶
type IAMProfileSpec struct { // Profile is the AWS IAM Profile to attach to instances in this instance group. // Specify the ARN for the IAM instance profile. (AWS only) Profile *string `json:"profile,omitempty"` }
IAMProfileSpec is the AWS IAM Profile to attach to instances in this instance group. Specify the ARN for the IAM instance profile (AWS only).
func (*IAMProfileSpec) DeepCopy ¶
func (in *IAMProfileSpec) DeepCopy() *IAMProfileSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IAMProfileSpec.
func (*IAMProfileSpec) DeepCopyInto ¶
func (in *IAMProfileSpec) DeepCopyInto(out *IAMProfileSpec)
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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IAMSpec.
func (*IAMSpec) DeepCopyInto ¶
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) AddInstanceGroupNodeLabel ¶
func (g *InstanceGroup) AddInstanceGroupNodeLabel()
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) IsBastion ¶
func (g *InstanceGroup) IsBastion() bool
IsBastion checks if instanceGroup is a bastion
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 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 (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"` // AdditionalUserData is any additional user-data to be passed to the host AdditionalUserData []UserData `json:"additionalUserData,omitempty"` // SuspendProcesses disables the listed Scaling Policies SuspendProcesses []string `json:"suspendProcesses,omitempty"` // ExternalLoadBalancers define loadbalancers that should be attached to the instancegroup ExternalLoadBalancers []LoadBalancer `json:"externalLoadBalancers,omitempty"` // DetailedInstanceMonitoring defines if detailed-monitoring is enabled (AWS only) DetailedInstanceMonitoring *bool `json:"detailedInstanceMonitoring,omitempty"` // IAMProfileSpec defines the identity of the cloud group iam profile (AWS only). IAM *IAMProfileSpec `json:"iam,omitempty"` // SecurityGroupOverride overrides the default security group created by Kops for this IG (AWS only). SecurityGroupOverride *string `json:"securityGroupOverride,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 ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Keyset.
func (*Keyset) DeepCopyInto ¶
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*Keyset) DeepCopyObject ¶
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 ( SecretTypeKeypair KeysetType = "Keypair" SecretTypeSecret KeysetType = "Secret" )
type KopeioAuthenticationSpec ¶
type KopeioAuthenticationSpec struct { }
func (*KopeioAuthenticationSpec) DeepCopy ¶
func (in *KopeioAuthenticationSpec) DeepCopy() *KopeioAuthenticationSpec
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 ¶
func (in *KopeioNetworkingSpec) DeepCopy() *KopeioNetworkingSpec
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 is the recommended version of kops to use for this Range of kops versions RecommendedVersion string `json:"recommendedVersion,omitempty"` // RequiredVersion is the required version of kops to use for this Range of kops versions, forcing an upgrade RequiredVersion string `json:"requiredVersion,omitempty"` // KubernetesVersion is the default version of kubernetes to use with this kops version e.g. for new clusters 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 ¶
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 used Image string `json:"image,omitempty"` // DisableBasicAuth removes the --basic-auth-file flag DisableBasicAuth bool `json:"disableBasicAuth,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: Deprecated - use insecure-bind-address and bind-address Address string `json:"address,omitempty" flag:"address"` // BindAddress is the binding address for the secure kubernetes API BindAddress string `json:"bindAddress,omitempty" flag:"bind-address"` // InsecureBindAddress is the binding address for the InsecurePort for the insecure kubernetes API InsecureBindAddress string `json:"insecureBindAddress,omitempty" flag:"insecure-bind-address"` // EnableBootstrapAuthToken enables 'bootstrap.kubernetes.io/token' in the 'kube-system' namespace to be used for TLS bootstrapping authentication EnableBootstrapAuthToken *bool `json:"enableBootstrapTokenAuth,omitempty" flag:"enable-bootstrap-token-auth"` // EnableAggregatorRouting enables aggregator routing requests to endpoints IP rather than cluster IP EnableAggregatorRouting *bool `json:"enableAggregatorRouting,omitempty" flag:"enable-aggregator-routing"` // Deprecated: AdmissionControl is a list of admission controllers to use AdmissionControl []string `json:"admissionControl,omitempty" flag:"admission-control"` // EnableAdmissionPlugins is a list of enabled admission plugins EnableAdmissionPlugins []string `json:"enableAdmissionPlugins,omitempty" flag:"enable-admission-plugins"` // DisableAdmissionPlugins is a list of disabled admission plugins DisableAdmissionPlugins []string `json:"disableAdmissionPlugins,omitempty" flag:"disable-admission-plugins"` // 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"` // OIDCUsernameClaim is 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"` // OIDCUsernamePrefix is the prefix prepended to username claims to prevent // clashes with existing names (such as 'system:' users). OIDCUsernamePrefix *string `json:"oidcUsernamePrefix,omitempty" flag:"oidc-username-prefix"` // OIDCGroupsClaim 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"` // OIDCGroupsPrefix is the prefix prepended to group claims to prevent // clashes with existing names (such as 'system:' groups) OIDCGroupsPrefix *string `json:"oidcGroupsPrefix,omitempty" flag:"oidc-groups-prefix"` // OIDCIssuerURL is 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"` // OIDCClientID is 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"` // OIDCCAFile 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"` // AuditLogFormat flag specifies the format type for audit log files. AuditLogFormat *string `json:"auditLogFormat,omitempty" flag:"audit-log-format"` // 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"` // 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"` // MaxRequestsInflight The maximum number of non-mutating requests in flight at a given time. MaxRequestsInflight int32 `json:"maxRequestsInflight,omitempty" flag:"max-requests-inflight" flag-empty:"0"` // MaxMutatingRequestsInflight The maximum number of mutating requests in flight at a given time. Defaults to 200 MaxMutatingRequestsInflight int32 `json:"maxMutatingRequestsInflight,omitempty" flag:"max-mutating-requests-inflight" flag-empty:"0"` // EtcdQuorumRead configures the etcd-quorum-read flag, which forces consistent reads from etcd EtcdQuorumRead *bool `json:"etcdQuorumRead,omitempty" flag:"etcd-quorum-read"` // MinRequestTimeout configures the minimum number of seconds a handler must keep a request open before timing it out. // Currently only honored by the watch request handler MinRequestTimeout *int32 `json:"minRequestTimeout,omitempty" flag:"min-request-timeout"` // Memory limit for apiserver in MB (used to configure sizes of caches, etc.) TargetRamMb int32 `json:"targetRamMb,omitempty" flag:"target-ram-mb" flag-empty:"0"` }
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.
func (*KubeAPIServerConfig) HasAdmissionController ¶
func (c *KubeAPIServerConfig) HasAdmissionController(name string) bool
HasAdmissionController checks if a specific admission controller is enabled
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"` // NodeCIDRMaskSize set the size for the mask of the nodes. NodeCIDRMaskSize *int32 `json:"nodeCIDRMaskSize,omitempty" flag:"node-cidr-mask-size"` // ConfigureCloudRoutes enables CIDRs allocated with to be configured on the cloud provider. ConfigureCloudRoutes *bool `json:"configureCloudRoutes,omitempty" flag:"configure-cloud-routes"` // Controllers is a list of controllers to enable on the controller-manager Controllers []string `json:"controllers,omitempty" flag:"controllers"` // CIDRAllocatorType specifies the type of CIDR allocator to use. CIDRAllocatorType *string `json:"cidrAllocatorType,omitempty" flag:"cidr-allocator-type"` // 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"` // AttachDetachReconcileSyncPeriod 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"` // NodeMonitorPeriod is the period for syncing NodeStatus in NodeController. (default 5s) NodeMonitorPeriod *metav1.Duration `json:"nodeMonitorPeriod,omitempty" flag:"node-monitor-period"` // NodeMonitorGracePeriod is the amount of time which we allow running Node to be unresponsive before marking it unhealthy. (default 40s) // Must be N-1 times more than kubelet's nodeStatusUpdateFrequency, where N means number of retries allowed for kubelet to post node status. NodeMonitorGracePeriod *metav1.Duration `json:"nodeMonitorGracePeriod,omitempty" flag:"node-monitor-grace-period"` // PodEvictionTimeout is the grace period for deleting pods on failed nodes. (default 5m0s) PodEvictionTimeout *metav1.Duration `json:"podEvictionTimeout,omitempty" flag:"pod-eviction-timeout"` // 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"` // HorizontalPodAutoscalerDownscaleDelay is a duration that specifies // how long the autoscaler has to wait before another downscale // operation can be performed after the current one has completed. HorizontalPodAutoscalerDownscaleDelay *metav1.Duration `json:"horizontalPodAutoscalerDownscaleDelay,omitempty" flag:"horizontal-pod-autoscaler-downscale-delay"` // HorizontalPodAutoscalerUpscaleDelay is a duration that specifies how // long the autoscaler has to wait before another upscale operation can // be performed after the current one has completed. HorizontalPodAutoscalerUpscaleDelay *metav1.Duration `json:"horizontalPodAutoscalerUpscaleDelay,omitempty" flag:"horizontal-pod-autoscaler-upscale-delay"` // HorizontalPodAutoscalerUseRestClients determines if the new-style clients // should be used if support for custom metrics is enabled. HorizontalPodAutoscalerUseRestClients *bool `json:"horizontalPodAutoscalerUseRestClients,omitempty" flag:"horizontal-pod-autoscaler-use-rest-clients"` // 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"` }
KubeControllerManagerConfig is the configuration for the controller
func (*KubeControllerManagerConfig) DeepCopy ¶
func (in *KubeControllerManagerConfig) DeepCopy() *KubeControllerManagerConfig
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KubeControllerManagerConfig.
func (*KubeControllerManagerConfig) DeepCopyInto ¶
func (in *KubeControllerManagerConfig) DeepCopyInto(out *KubeControllerManagerConfig)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type KubeDNSConfig ¶
type KubeDNSConfig struct { // CacheMaxSize is the maximum entries to keep in dnsmasq CacheMaxSize int `json:"cacheMaxSize,omitempty"` // CacheMaxConcurrent is the maximum number of concurrent queries for dnsmasq CacheMaxConcurrent int `json:"cacheMaxConcurrent,omitempty"` // Domain is the dns domain Domain string `json:"domain,omitempty"` // 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"` // Provider indicates whether CoreDNS or kube-dns will be the default service discovery. Provider string `json:"provider,omitempty"` // ServerIP is the server ip ServerIP string `json:"serverIP,omitempty"` // StubDomains redirects a domains to another DNS service StubDomains map[string][]string `json:"stubDomains,omitempty"` // UpstreamNameservers sets the upstream nameservers for queries not on the cluster domain UpstreamNameservers []string `json:"upstreamNameservers,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, cpu request compute resource for kube proxy e.g. "20m" CPURequest string `json:"cpuRequest,omitempty"` // CPULimit, cpu limit compute resource for kube proxy e.g. "30m" CPULimit string `json:"cpuLimit,omitempty"` // MemoryRequest, memory request compute resource for kube proxy e.g. "30Mi" MemoryRequest string `json:"memoryRequest,omitempty"` // MemoryLimit, memory limit compute resource for kube proxy e.g. "30Mi" MemoryLimit string `json:"memoryLimit,omitempty"` // 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"` // BindAddress is IP address for the proxy server to serve on BindAddress string `json:"bindAddress,omitempty" flag:"bind-address"` // 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"` // Which proxy mode to use: (userspace, iptables(default), ipvs) ProxyMode string `json:"proxyMode,omitempty" flag:"proxy-mode"` // IPVSExcludeCIDRS is comma-separated list of CIDR's which the ipvs proxier should not touch when cleaning up IPVS rules IPVSExcludeCIDRS []string `json:"ipvsExcludeCidrs,omitempty" flag:"ipvs-exclude-cidrs"` // IPVSMinSyncPeriod is the minimum interval of how often the ipvs rules can be refreshed as endpoints and services change (e.g. '5s', '1m', '2h22m') IPVSMinSyncPeriod *metav1.Duration `json:"ipvsMinSyncPeriod,omitempty" flag:"ipvs-min-sync-period"` // IPVSScheduler is the ipvs scheduler type when proxy mode is ipvs IPVSScheduler *string `json:"ipvsScheduler,omitempty" flag:"ipvs-scheduler"` // IPVSSyncPeriod duration is the maximum interval of how often ipvs rules are refreshed IPVSSyncPeriod *metav1.Duration `json:"ipvsSyncPeriod,omitempty" flag:"ipvs-sync-period"` // FeatureGates is a series of key pairs used to switch on features for the proxy FeatureGates map[string]string `json:"featureGates,omitempty" flag:"feature-gates"` // Maximum number of NAT connections to track per CPU core (default: 131072) ConntrackMaxPerCore *int32 `json:"conntrackMaxPerCore,omitempty" flag:"conntrack-max-per-core"` // Minimum number of conntrack entries to allocate, regardless of conntrack-max-per-core ConntrackMin *int32 `json:"conntrackMin,omitempty" flag:"conntrack-min"` }
KubeProxyConfig defines 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"` // 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"` }
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"` // AuthorizationMode is the authorization mode the kubelet is running in AuthorizationMode string `json:"authorizationMode,omitempty" flag:"authorization-mode"` // BootstrapKubeconfig is the path to a kubeconfig file that will be used to get client certificate for kubelet BootstrapKubeconfig string `json:"bootstrapKubeconfig,omitempty" flag:"bootstrap-kubeconfig"` // ClientCAFile is the path to a CA certificate 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"` // 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"` // NodeStatusUpdateFrequency Specifies how often kubelet posts node status to master (default 10s) // must work with nodeMonitorGracePeriod in KubeControllerManagerConfig. NodeStatusUpdateFrequency *metav1.Duration `json:"nodeStatusUpdateFrequency,omitempty" flag:"node-status-update-frequency"` // 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"` // ImagePullProgressDeadline is the timeout for image pulls // If no pulling progress is made before this deadline, the image pulling will be cancelled. (default 1m0s) ImagePullProgressDeadline *metav1.Duration `json:"imagePullProgressDeadline,omitempty" flag:"image-pull-progress-deadline"` // 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"` // Tells the Kubelet to fail to start if swap is enabled on the node. FailSwapOn *bool `json:"failSwapOn,omitempty" flag:"fail-swap-on"` // ExperimentalAllowedUnsafeSysctls are passed to the kubelet config to whitelist allowable sysctls // Was promoted to beta and renamed. https://github.com/kubernetes/kubernetes/pull/63717 ExperimentalAllowedUnsafeSysctls []string `json:"experimentalAllowedUnsafeSysctls,omitempty" flag:"experimental-allowed-unsafe-sysctls"` // AllowedUnsafeSysctls are passed to the kubelet config to whitelist allowable sysctls AllowedUnsafeSysctls []string `json:"allowedUnsafeSysctls,omitempty" flag:"allowed-unsafe-sysctls"` // StreamingConnectionIdleTimeout is the maximum time a streaming connection can be idle before the connection is automatically closed StreamingConnectionIdleTimeout *metav1.Duration `json:"streamingConnectionIdleTimeout,omitempty" flag:"streaming-connection-idle-timeout"` DockerDisableSharedPID *bool `json:"dockerDisableSharedPID,omitempty" flag:"docker-disable-shared-pid"` // RootDir is the directory path for managing kubelet files (volume mounts,etc) RootDir string `json:"rootDir,omitempty" flag:"root-dir"` // AuthenticationTokenWebhook uses the TokenReview API to determine authentication for bearer tokens. AuthenticationTokenWebhook *bool `json:"authenticationTokenWebhook,omitempty" flag:"authentication-token-webhook"` // AuthenticationTokenWebhook sets 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"` }
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 ¶
func (in *KubenetNetworkingSpec) DeepCopy() *KubenetNetworkingSpec
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 ¶
func (in *KubernetesVersionSpec) DeepCopy() *KubernetesVersionSpec
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 ¶
func (in *KuberouterNetworkingSpec) DeepCopy() *KuberouterNetworkingSpec
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 ¶
func (in *LeaderElectionConfiguration) DeepCopy() *LeaderElectionConfiguration
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LeaderElectionConfiguration.
func (*LeaderElectionConfiguration) DeepCopyInto ¶
func (in *LeaderElectionConfiguration) DeepCopyInto(out *LeaderElectionConfiguration)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoadBalancer ¶
type LoadBalancer struct { // LoadBalancerName to associate with this instance group (AWS ELB) LoadBalancerName *string `json:"loadBalancerName,omitempty"` // TargetGroupARN to associate with this instance group (AWS ALB/NLB) TargetGroupARN *string `json:"targetGroupArn,omitempty"` }
LoadBalancers defines a load balancer
func (*LoadBalancer) DeepCopy ¶
func (in *LoadBalancer) DeepCopy() *LoadBalancer
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoadBalancer.
func (*LoadBalancer) DeepCopyInto ¶
func (in *LoadBalancer) DeepCopyInto(out *LoadBalancer)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type LoadBalancerAccessSpec ¶
type LoadBalancerAccessSpec struct { // Type of load balancer to create may Public or Internal. Type LoadBalancerType `json:"type,omitempty"` // IdleTimeoutSeconds sets the timeout of the api loadbalancer. IdleTimeoutSeconds *int64 `json:"idleTimeoutSeconds,omitempty"` // SecurityGroupOverride overrides the default Kops created SG for the load balancer. SecurityGroupOverride *string `json:"securityGroupOverride,omitempty"` // AdditionalSecurityGroups attaches additional security groups (e.g. sg-123456). AdditionalSecurityGroups []string `json:"additionalSecurityGroups,omitempty"` // UseForInternalApi indicates whether the LB should be used by the kubelet UseForInternalApi bool `json:"useForInternalApi,omitempty"` // SSLCertificate allows you to specify the ACM cert to be used the LB SSLCertificate string `json:"sslCertificate,omitempty"` }
LoadBalancerAccessSpec provides configuration details related to API LoadBalancer and its access
func (*LoadBalancerAccessSpec) DeepCopy ¶
func (in *LoadBalancerAccessSpec) DeepCopy() *LoadBalancerAccessSpec
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 LyftVPCNetworkingSpec ¶ added in v1.11.0
LyftIpVlanNetworkingSpec declares that we want to use the cni-ipvlan-vpc-k8s CNI networking
func (*LyftVPCNetworkingSpec) DeepCopy ¶ added in v1.11.0
func (in *LyftVPCNetworkingSpec) DeepCopy() *LyftVPCNetworkingSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LyftVPCNetworkingSpec.
func (*LyftVPCNetworkingSpec) DeepCopyInto ¶ added in v1.11.0
func (in *LyftVPCNetworkingSpec) DeepCopyInto(out *LyftVPCNetworkingSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
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"` AmazonVPC *AmazonVPCNetworkingSpec `json:"amazonvpc,omitempty"` Cilium *CiliumNetworkingSpec `json:"cilium,omitempty"` LyftVPC *LyftVPCNetworkingSpec `json:"lyftvpc,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 NodeAuthorizationSpec ¶
type NodeAuthorizationSpec struct { // NodeAuthorizer defined the configuration for the node authorizer NodeAuthorizer *NodeAuthorizerSpec `json:"nodeAuthorizer,omitempty"` }
NodeAuthorizationSpec is used to node authorization
func (*NodeAuthorizationSpec) DeepCopy ¶
func (in *NodeAuthorizationSpec) DeepCopy() *NodeAuthorizationSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAuthorizationSpec.
func (*NodeAuthorizationSpec) DeepCopyInto ¶
func (in *NodeAuthorizationSpec) DeepCopyInto(out *NodeAuthorizationSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
type NodeAuthorizerSpec ¶
type NodeAuthorizerSpec struct { // Authorizer is the authorizer to use Authorizer string `json:"authorizer,omitempty"` // Features is a series of authorizer features to enable or disable Features *[]string `json:"features,omitempty"` // Image is the location of container Image string `json:"image,omitempty"` // NodeURL is the node authorization service url NodeURL string `json:"nodeURL,omitempty"` // Port is the port the service is running on the master Port int `json:"port,omitempty"` // Timeout the max time for authorization request Timeout *metav1.Duration `json:"timeout,omitempty"` // TokenTTL is the max ttl for an issued token TokenTTL *metav1.Duration `json:"tokenTTL,omitempty"` }
NodeAuthorizerSpec defines the configuration for a node authorizer
func (*NodeAuthorizerSpec) DeepCopy ¶
func (in *NodeAuthorizerSpec) DeepCopy() *NodeAuthorizerSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeAuthorizerSpec.
func (*NodeAuthorizerSpec) DeepCopyInto ¶
func (in *NodeAuthorizerSpec) DeepCopyInto(out *NodeAuthorizerSpec)
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 ¶
func (in *RBACAuthorizationSpec) DeepCopy() *RBACAuthorizationSpec
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 ¶
func (in *RomanaNetworkingSpec) DeepCopy() *RomanaNetworkingSpec
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 represents 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 TargetSpec ¶
type TargetSpec struct {
Terraform *TerraformSpec `json:"terraform,omitempty"`
}
TargetSpec allows for specifying target config in an extensible way
func (*TargetSpec) DeepCopy ¶
func (in *TargetSpec) DeepCopy() *TargetSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TargetSpec.
func (*TargetSpec) DeepCopyInto ¶
func (in *TargetSpec) DeepCopyInto(out *TargetSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TargetSpec) IsEmpty ¶
func (t *TargetSpec) IsEmpty() bool
type TerraformSpec ¶
type TerraformSpec struct { // ProviderExtraConfig contains key/value pairs to add to the rendered terraform "provider" block ProviderExtraConfig *map[string]string `json:"providerExtraConfig,omitempty"` }
TerraformSpec allows us to specify terraform config in an extensible way
func (*TerraformSpec) DeepCopy ¶
func (in *TerraformSpec) DeepCopy() *TerraformSpec
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TerraformSpec.
func (*TerraformSpec) DeepCopyInto ¶
func (in *TerraformSpec) DeepCopyInto(out *TerraformSpec)
DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (*TerraformSpec) IsEmpty ¶
func (t *TerraformSpec) IsEmpty() bool
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 UserData ¶
type UserData struct { // Name is the name of the user-data Name string `json:"name,omitempty"` // Type is the type of user-data Type string `json:"type,omitempty"` // Content is the user-data content Content string `json:"content,omitempty"` }
UserData defines a user-data section
func (*UserData) DeepCopy ¶
DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserData.
func (*UserData) DeepCopyInto ¶
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"` ConnLimit *int32 `json:"connLimit,omitempty"` NoMasqLocal *int32 `json:"noMasqLocal,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.
Source Files ¶
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 |