Generate v1 CRDs

This commit is contained in:
Peter Rifel 2020-04-08 15:21:18 -05:00
parent 6ed48c1349
commit 10e4fb499a
6 changed files with 4236 additions and 4093 deletions

View File

@ -868,7 +868,7 @@ dev-upload: dev-upload-nodeup dev-upload-protokube dev-upload-dns-controller dev
.PHONY: crds
crds:
go run vendor/sigs.k8s.io/controller-tools/cmd/controller-gen/main.go crd paths=k8s.io/kops/pkg/apis/kops/v1alpha2 output:dir=k8s/crds/
go run vendor/sigs.k8s.io/controller-tools/cmd/controller-gen/main.go crd paths=k8s.io/kops/pkg/apis/kops/v1alpha2 output:dir=k8s/crds/ crd:crdVersions=v1
#------------------------------------------------------
# kops-controller

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +1,13 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: instancegroups.kops.k8s.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.role
description: Role
name: role
type: string
- JSONPath: .spec.machineType
description: Machine Type
name: machineType
type: string
- JSONPath: .spec.minSize
description: Min
name: min
type: integer
- JSONPath: .spec.maxSize
description: Max
name: max
type: integer
- JSONPath: .spec.zones
description: Zones
name: zones
type: string
group: kops.k8s.io
names:
kind: InstanceGroup
@ -36,8 +17,30 @@ spec:
- ig
singular: instancegroup
scope: Namespaced
subresources: {}
validation:
versions:
- additionalPrinterColumns:
- description: Role
jsonPath: .spec.role
name: role
type: string
- description: Machine Type
jsonPath: .spec.machineType
name: machineType
type: string
- description: Min
jsonPath: .spec.minSize
name: min
type: integer
- description: Max
jsonPath: .spec.maxSize
name: max
type: integer
- description: Zones
jsonPath: .spec.zones
name: zones
type: string
name: v1alpha2
schema:
openAPIV3Schema:
description: InstanceGroup represents a group of instances (either nodes or
masters) with the same configuration
@ -58,14 +61,14 @@ spec:
description: InstanceGroupSpec is the specification for an instanceGroup
properties:
additionalSecurityGroups:
description: AdditionalSecurityGroups attaches additional security groups
(e.g. i-123456)
description: AdditionalSecurityGroups attaches additional security
groups (e.g. i-123456)
items:
type: string
type: array
additionalUserData:
description: AdditionalUserData is any additional user-data to be passed
to the host
description: AdditionalUserData is any additional user-data to be
passed to the host
items:
description: UserData defines a user-data section
properties:
@ -105,8 +108,8 @@ spec:
group (AWS ELB)
type: string
targetGroupArn:
description: TargetGroupARN to associate with this instance group
(AWS ALB/NLB)
description: TargetGroupARN to associate with this instance
group (AWS ALB/NLB)
type: string
type: object
type: array
@ -129,11 +132,11 @@ spec:
description: Path is the location this file should reside
type: string
roles:
description: Roles is a list of roles the file asset should be
applied, defaults to all
description: Roles is a list of roles the file asset should
be applied, defaults to all
items:
description: InstanceGroupRole string describes the roles of
the nodes in this InstanceGroup (master or nodes)
description: InstanceGroupRole string describes the roles
of the nodes in this InstanceGroup (master or nodes)
type: string
type: array
type: object
@ -145,8 +148,8 @@ spec:
description: HookSpec is a definition hook
properties:
before:
description: Before is a series of systemd units which this hook
must run before
description: Before is a series of systemd units which this
hook must run before
items:
type: string
type: array
@ -190,8 +193,8 @@ spec:
description: Roles is an optional list of roles the hook should
be rolled out to, defaults to all
items:
description: InstanceGroupRole string describes the roles of
the nodes in this InstanceGroup (master or nodes)
description: InstanceGroupRole string describes the roles
of the nodes in this InstanceGroup (master or nodes)
type: string
type: array
useRawManifest:
@ -232,8 +235,8 @@ spec:
type: string
type: array
anonymousAuth:
description: AnonymousAuth permits you to control auth to the kubelet
api
description: AnonymousAuth permits you to control auth to the
kubelet api
type: boolean
apiServers:
description: APIServers is not used for clusters version 1.6 and
@ -253,8 +256,8 @@ spec:
is running in
type: string
babysitDaemons:
description: The node has babysitter process monitoring docker and
kubelet. Removed as of 1.7
description: The node has babysitter process monitoring docker
and kubelet. Removed as of 1.7
type: boolean
bootstrapKubeconfig:
description: BootstrapKubeconfig is the path to a kubeconfig file
@ -281,16 +284,16 @@ spec:
based on Node.Spec.PodCIDR.
type: boolean
cpuCFSQuota:
description: CPUCFSQuota enables CPU CFS quota enforcement for containers
that specify CPU limits
description: CPUCFSQuota enables CPU CFS quota enforcement for
containers that specify CPU limits
type: boolean
cpuCFSQuotaPeriod:
description: CPUCFSQuotaPeriod sets CPU CFS quota period value,
cpu.cfs_period_us, defaults to Linux Kernel default
type: string
cpuManagerPolicy:
description: CpuManagerPolicy allows for changing the default policy
of None to static
description: CpuManagerPolicy allows for changing the default
policy of None to static
type: string
dockerDisableSharedPID:
description: DockerDisableSharedPID uses a shared PID namespace
@ -300,8 +303,8 @@ spec:
description: Enable gathering custom metrics.
type: boolean
enableDebuggingHandlers:
description: EnableDebuggingHandlers enables server endpoints for
log collection and local running of containers and commands
description: EnableDebuggingHandlers enables server endpoints
for log collection and local running of containers and commands
type: boolean
enforceNodeAllocatable:
description: Enforce Allocatable across pods whenever the overall
@ -312,9 +315,9 @@ spec:
example, 'memory.available<300Mi'.
type: string
evictionMaxPodGracePeriod:
description: Maximum allowed grace period (in seconds) to use when
terminating pods in response to a soft eviction threshold being
met.
description: Maximum allowed grace period (in seconds) to use
when terminating pods in response to a soft eviction threshold
being met.
format: int32
type: integer
evictionMinimumReclaim:
@ -324,8 +327,8 @@ spec:
pressure.
type: string
evictionPressureTransitionPeriod:
description: Duration for which the kubelet has to wait before transitioning
out of an eviction pressure condition.
description: Duration for which the kubelet has to wait before
transitioning out of an eviction pressure condition.
type: string
evictionSoft:
description: Comma-delimited list of soft eviction expressions. For
@ -354,18 +357,18 @@ spec:
type: object
hairpinMode:
description: '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.'
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.'
type: string
hostnameOverride:
description: HostnameOverride is the hostname used to identify the
kubelet instead of the actual hostname.
description: HostnameOverride is the hostname used to identify
the kubelet instead of the actual hostname.
type: string
imageGCHighThresholdPercent:
description: ImageGCHighThresholdPercent is the percent of disk
@ -373,9 +376,9 @@ spec:
format: int32
type: integer
imageGCLowThresholdPercent:
description: ImageGCLowThresholdPercent is the percent of disk usage
before which image garbage collection is never run. Lowest disk
usage to garbage collect to.
description: ImageGCLowThresholdPercent is the percent of disk
usage before which image garbage collection is never run. Lowest
disk usage to garbage collect to.
format: int32
type: integer
imagePullProgressDeadline:
@ -387,17 +390,19 @@ spec:
additionalProperties:
type: string
description: Resource reservation for kubernetes system daemons
like the kubelet, container runtime, node problem detector, etc.
like the kubelet, container runtime, node problem detector,
etc.
type: object
kubeReservedCgroup:
description: Control group for kube daemons.
type: string
kubeconfigPath:
description: KubeconfigPath is the path of kubeconfig for the kubelet
description: KubeconfigPath is the path of kubeconfig for the
kubelet
type: string
kubeletCgroups:
description: KubeletCgroups is the absolute name of cgroups to isolate
the kubelet in.
description: KubeletCgroups is the absolute name of cgroups to
isolate the kubelet in.
type: string
logLevel:
description: LogLevel is the logging level of the kubelet
@ -434,14 +439,14 @@ spec:
to IPs outside this range will use IP masquerade.'
type: string
nvidiaGPUs:
description: NvidiaGPUs is the number of NVIDIA GPU devices on this
node.
description: NvidiaGPUs is the number of NVIDIA GPU devices on
this node.
format: int32
type: integer
podCIDR:
description: PodCIDR is the CIDR to use for pod IP addresses, only
used in standalone mode. In cluster mode, this is obtained from
the master.
description: PodCIDR is the CIDR to use for pod IP addresses,
only used in standalone mode. In cluster mode, this is obtained
from the master.
type: string
podInfraContainerImage:
description: PodInfraContainerImage is the image whose network/ipc
@ -452,8 +457,8 @@ spec:
of files
type: string
readOnlyPort:
description: ReadOnlyPort is the port used by the kubelet api for
read-only access (default 10255)
description: ReadOnlyPort is the port used by the kubelet api
for read-only access (default 10255)
format: int32
type: integer
reconcileCIDR:
@ -462,12 +467,12 @@ spec:
is false.
type: boolean
registerNode:
description: RegisterNode enables automatic registration with the
apiserver.
description: RegisterNode enables automatic registration with
the apiserver.
type: boolean
registerSchedulable:
description: registerSchedulable tells the kubelet to register the
node as schedulable. No-op if register-node is false.
description: registerSchedulable tells the kubelet to register
the node as schedulable. No-op if register-node is false.
type: boolean
registryBurst:
description: RegistryBurst Maximum size of a bursty pulls, temporarily
@ -484,8 +489,8 @@ spec:
description: RequireKubeconfig indicates a kubeconfig is required
type: boolean
resolvConf:
description: ResolverConfig is the resolver configuration file used
as the basis for the container DNS resolution configuration."),
description: ResolverConfig is the resolver configuration file
used as the basis for the container DNS resolution configuration."),
[]
type: string
rootDir:
@ -496,8 +501,8 @@ spec:
description: rotateCertificates enables client certificate rotation.
type: boolean
runtimeCgroups:
description: Cgroups that container runtime is expected to be isolated
in.
description: Cgroups that container runtime is expected to be
isolated in.
type: string
runtimeRequestTimeout:
description: RuntimeRequestTimeout is timeout for runtime requests
@ -509,19 +514,20 @@ spec:
type: string
serializeImagePulls:
description: '// 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 <
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.'
type: boolean
streamingConnectionIdleTimeout:
description: StreamingConnectionIdleTimeout is the maximum time
a streaming connection can be idle before the connection is automatically
closed
a streaming connection can be idle before the connection is
automatically closed
type: string
systemCgroups:
description: 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.
to place all non-kernel processes that are not already in a
container. Empty for no container. Rolling back the flag requires
a reboot.
type: string
systemReserved:
additionalProperties:
@ -541,7 +547,8 @@ spec:
description: 'TODO: Remove unused TLSCertFile'
type: string
tlsCipherSuites:
description: TLSCipherSuites indicates the allowed TLS cipher suite
description: TLSCipherSuites indicates the allowed TLS cipher
suite
items:
type: string
type: array
@ -556,21 +563,22 @@ spec:
for the topology manager.
type: string
volumePluginDirectory:
description: The full path of the directory in which to search for
additional third party volume plugins (this path must be writeable,
dependent on your choice of OS)
description: The full path of the directory in which to search
for additional third party volume plugins (this path must be
writeable, dependent on your choice of OS)
type: string
volumeStatsAggPeriod:
description: VolumeStatsAggPeriod is the interval for kubelet to
calculate and cache the volume disk usage for all pods and volumes
description: VolumeStatsAggPeriod is the interval for kubelet
to calculate and cache the volume disk usage for all pods and
volumes
type: string
type: object
machineType:
description: MachineType is the instance class
type: string
maxPrice:
description: MaxPrice indicates this is a spot-pricing group, with the
specified value as our max-price bid
description: MaxPrice indicates this is a spot-pricing group, with
the specified value as our max-price bid
type: string
maxSize:
description: MaxSize is the maximum size of the pool
@ -581,8 +589,8 @@ spec:
format: int32
type: integer
mixedInstancesPolicy:
description: MixedInstancesPolicy defined a optional backing of an AWS
ASG by a EC2 Fleet (AWS Only)
description: MixedInstancesPolicy defined a optional backing of an
AWS ASG by a EC2 Fleet (AWS Only)
properties:
instances:
description: Instances is a list of instance types which we are
@ -593,9 +601,9 @@ spec:
onDemandAboveBase:
description: OnDemandAboveBase controls the percentages of On-Demand
Instances and Spot Instances for your additional capacity beyond
OnDemandBase. The range is 0100. The default value is 100. If
you leave this parameter set to 100, the percentages are 100%
for On-Demand Instances and 0% for Spot Instances.
OnDemandBase. The range is 0100. The default value is 100.
If you leave this parameter set to 100, the percentages are
100% for On-Demand Instances and 0% for Spot Instances.
format: int64
type: integer
onDemandAllocationStrategy:
@ -615,29 +623,30 @@ spec:
types to choose from.
type: string
spotInstancePools:
description: SpotInstancePools is the number of Spot pools to use
to allocate your Spot capacity (defaults to 2) pools are determined
from the different instance types in the Overrides array of LaunchTemplate
description: SpotInstancePools is the number of Spot pools to
use to allocate your Spot capacity (defaults to 2) pools are
determined from the different instance types in the Overrides
array of LaunchTemplate
format: int64
type: integer
type: object
nodeLabels:
additionalProperties:
type: string
description: NodeLabels indicates the kubernetes labels for nodes in
this group
description: NodeLabels indicates the kubernetes labels for nodes
in this group
type: object
role:
description: 'Type determines the role of instances in this group: masters
or nodes'
description: 'Type determines the role of instances in this group:
masters or nodes'
type: string
rollingUpdate:
description: RollingUpdate defines the rolling-update behavior
properties:
maxSurge:
anyOf:
- type: string
- type: integer
- type: string
description: 'MaxSurge is the maximum number of extra nodes that
can be created during the update. The value can be an absolute
number (for example 5) or a percentage of desired machines (for
@ -648,28 +657,30 @@ spec:
this is set to 30%, the InstanceGroup can be scaled up immediately
when the rolling update starts, such that the total number of
old and new nodes do not exceed 130% of desired nodes.'
x-kubernetes-int-or-string: true
maxUnavailable:
anyOf:
- type: string
- type: integer
- type: string
description: 'MaxUnavailable is the maximum number of nodes that
can be unavailable during the update. The value can be an absolute
number (for example 5) or a percentage of desired nodes (for example
10%). The absolute number is calculated from a percentage by rounding
down. A value of 0 for both this and MaxSurge disables rolling
updates. Defaults to 1 if MaxSurge is 0, otherwise defaults to
0. Example: when this is set to 30%, the InstanceGroup can be
scaled down to 70% of desired nodes immediately when the rolling
update starts. Once new nodes are ready, more old nodes can be
drained, ensuring that the total number of nodes available at
all times during the update is at least 70% of desired nodes.'
number (for example 5) or a percentage of desired nodes (for
example 10%). The absolute number is calculated from a percentage
by rounding down. A value of 0 for both this and MaxSurge disables
rolling updates. Defaults to 1 if MaxSurge is 0, otherwise defaults
to 0. Example: when this is set to 30%, the InstanceGroup can
be scaled down to 70% of desired nodes immediately when the
rolling update starts. Once new nodes are ready, more old nodes
can be drained, ensuring that the total number of nodes available
at all times during the update is at least 70% of desired nodes.'
x-kubernetes-int-or-string: true
type: object
rootVolumeDeleteOnTermination:
description: 'RootVolumeDeleteOnTermination configures root volume retention
policy upon instance termination. The root volume is deleted by default.
Cluster deletion does not remove retained root volumes. NOTE: This
setting applies only to the Launch Configuration and does not affect
Launch Templates.'
description: 'RootVolumeDeleteOnTermination configures root volume
retention policy upon instance termination. The root volume is deleted
by default. Cluster deletion does not remove retained root volumes.
NOTE: This setting applies only to the Launch Configuration and
does not affect Launch Templates.'
type: boolean
rootVolumeIops:
description: If volume type is io1, then we need to specify the number
@ -681,26 +692,26 @@ spec:
instance
type: boolean
rootVolumeSize:
description: RootVolumeSize is the size of the EBS root volume to use,
in GB
description: RootVolumeSize is the size of the EBS root volume to
use, in GB
format: int32
type: integer
rootVolumeType:
description: RootVolumeType is the type of the EBS root volume to use
(e.g. gp2)
description: RootVolumeType is the type of the EBS root volume to
use (e.g. gp2)
type: string
securityGroupOverride:
description: SecurityGroupOverride overrides the default security group
created by Kops for this IG (AWS only).
description: SecurityGroupOverride overrides the default security
group created by Kops for this IG (AWS only).
type: string
spotDurationInMinutes:
description: SpotDurationInMinutes indicates this is a spot-block group,
with the specified value as the spot reservation time
description: SpotDurationInMinutes indicates this is a spot-block
group, with the specified value as the spot reservation time
format: int64
type: integer
subnets:
description: Subnets is the names of the Subnets (as specified in the
Cluster) where machines in this instance group should be placed
description: Subnets is the names of the Subnets (as specified in
the Cluster) where machines in this instance group should be placed
items:
type: string
type: array
@ -739,8 +750,8 @@ spec:
description: Filesystem is the filesystem to mount
type: string
formatOptions:
description: FormatOptions is a collection of options passed when
formatting the device
description: FormatOptions is a collection of options passed
when formatting the device
items:
type: string
type: array
@ -763,20 +774,21 @@ spec:
properties:
deleteOnTermination:
description: 'DeleteOnTermination configures volume retention
policy upon instance termination. The volume is deleted by default.
Cluster deletion does not remove retained volumes. NOTE: This
setting applies only to the Launch Configuration and does not
affect Launch Templates.'
policy upon instance termination. The volume is deleted by
default. Cluster deletion does not remove retained volumes.
NOTE: This setting applies only to the Launch Configuration
and does not affect Launch Templates.'
type: boolean
device:
description: Device is an optional device name of the block device
description: Device is an optional device name of the block
device
type: string
encrypted:
description: Encrypted indicates you want to encrypt the volume
type: boolean
iops:
description: Iops is the provision iops for this iops (think io1
in aws)
description: Iops is the provision iops for this iops (think
io1 in aws)
format: int64
type: integer
size:
@ -798,11 +810,9 @@ spec:
type: array
type: object
type: object
version: v1alpha2
versions:
- name: v1alpha2
served: true
storage: true
subresources: {}
status:
acceptedNames:
kind: ""

View File

@ -1,8 +1,10 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: keysets.kops.k8s.io
spec:
@ -12,11 +14,13 @@ spec:
listKind: KeysetList
plural: keysets
singular: keyset
scope: ""
validation:
scope: Namespaced
versions:
- name: v1alpha2
schema:
openAPIV3Schema:
description: Keyset is a set of system keypairs, or other secret material. It
is a set to support credential rotation etc.
description: Keyset is a set of system keypairs, or other secret material.
It is a set to support credential rotation etc.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation
@ -40,7 +44,8 @@ spec:
in a Keyset
properties:
id:
description: Id is the unique identifier for this key in the keyset
description: Id is the unique identifier for this key in the
keyset
type: string
privateMaterial:
description: PrivateMaterial holds secret material (e.g. a private
@ -48,8 +53,8 @@ spec:
format: byte
type: string
publicMaterial:
description: PublicMaterial holds non-secret material (e.g. a
certificate)
description: PublicMaterial holds non-secret material (e.g.
a certificate)
format: byte
type: string
type: object
@ -60,9 +65,6 @@ spec:
type: string
type: object
type: object
version: v1alpha2
versions:
- name: v1alpha2
served: true
storage: true
status:

View File

@ -1,8 +1,10 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: (devel)
creationTimestamp: null
name: sshcredentials.kops.k8s.io
spec:
@ -12,8 +14,10 @@ spec:
listKind: SSHCredentialList
plural: sshcredentials
singular: sshcredential
scope: ""
validation:
scope: Namespaced
versions:
- name: v1alpha2
schema:
openAPIV3Schema:
description: SSHCredential represent a set of kops secrets
properties:
@ -35,9 +39,6 @@ spec:
type: string
type: object
type: object
version: v1alpha2
versions:
- name: v1alpha2
served: true
storage: true
status:

View File

@ -20,4 +20,5 @@ limitations under the License.
// +k8s:defaulter-gen=TypeMeta
// +groupName=kops.k8s.io
// +versionName=v1alpha2
package v1alpha2 // import "k8s.io/kops/pkg/apis/kops/v1alpha2"