- adding the api components to define a additional volume spec

This commit is contained in:
Rohith 2018-10-02 17:38:34 +01:00
parent 64e9192fcb
commit 8236b7089f
6 changed files with 483 additions and 6 deletions

View File

@ -44,6 +44,7 @@ type InstanceGroup struct {
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// InstanceGroupList is a collection in instancegroups
type InstanceGroupList struct { type InstanceGroupList struct {
metav1.TypeMeta `json:",inline"` metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"` metav1.ListMeta `json:"metadata,omitempty"`
@ -55,8 +56,11 @@ type InstanceGroupList struct {
type InstanceGroupRole string type InstanceGroupRole string
const ( const (
// InstanceGroupRoleMaster defines the node as a master
InstanceGroupRoleMaster InstanceGroupRole = "Master" InstanceGroupRoleMaster InstanceGroupRole = "Master"
// InstanceGroupRoleNode defines the node as a worker
InstanceGroupRoleNode InstanceGroupRole = "Node" InstanceGroupRoleNode InstanceGroupRole = "Node"
// InstanceGroupRoleBastion defines the node as a bastion host
InstanceGroupRoleBastion InstanceGroupRole = "Bastion" InstanceGroupRoleBastion InstanceGroupRole = "Bastion"
) )
@ -87,6 +91,8 @@ type InstanceGroupSpec struct {
RootVolumeIops *int32 `json:"rootVolumeIops,omitempty"` RootVolumeIops *int32 `json:"rootVolumeIops,omitempty"`
// RootVolumeOptimization enables EBS optimization for an instance // RootVolumeOptimization enables EBS optimization for an instance
RootVolumeOptimization *bool `json:"rootVolumeOptimization,omitempty"` RootVolumeOptimization *bool `json:"rootVolumeOptimization,omitempty"`
// Volumes is a collection of additional volumes to create for instances within this InstanceGroup
Volumes []*InstanceGroupVolumeSpec `json:"volumes,omitempty"`
// Subnets is the names of the Subnets (as specified in the Cluster) where machines in this instance group should be placed // 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"` Subnets []string `json:"subnets,omitempty"`
// Zones is the names of the Zones where machines in this instance group should be placed // Zones is the names of the Zones where machines in this instance group should be placed
@ -137,6 +143,33 @@ type UserData struct {
Content string `json:"content,omitempty"` Content string `json:"content,omitempty"`
} }
// InstanceGroupVolumeSpec defined the spec for an additional volume attached to the instance group
type InstanceGroupVolumeSpec struct {
// DeviceName is an optional device name of the block device
DeviceName *string `json:"deviceName,omitempty"`
// Encrypted indicates you want to encrypt the volume
Encrypted *bool `json:"encrypted,omitempty"`
// Filesystem is the type of filesystem to create on the device
Filesystem *InstanceGroupVolumeFilesystemSpec `json:"filesystem,omitempty"`
// Iops is the provision iops for this iops (think io1 in aws)
Iops *int64 `json:"iops,omitempty"`
// Size is the size of the volume in GB
Size *int64 `json:"size,omitempty"`
// Type is the type of volume to create and is cloud specific
Type *string `json:"type,omitempty"`
}
// InstanceGroupVolumeFilesystemSpec defines a specification for creating a filesystem
type InstanceGroupVolumeFilesystemSpec struct {
// Ext4 is the specification for a ext4 filesystem
Ext4 *Ext4FileSystemSpec `json:"ext4,omitempty"`
// Path is the location to mount the volume
Path string `json:"mountPath,omitempty"`
}
// Ext4FileSystemSpec defines a specification for a ext4 filesystem on a instancegroup volume
type Ext4FileSystemSpec struct{}
// IAMProfileSpec is the AWS IAM Profile to attach to instances in this instance // IAMProfileSpec is the AWS IAM Profile to attach to instances in this instance
// group. Specify the ARN for the IAM instance profile (AWS only). // group. Specify the ARN for the IAM instance profile (AWS only).
type IAMProfileSpec struct { type IAMProfileSpec struct {

View File

@ -33,6 +33,7 @@ type InstanceGroup struct {
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// InstanceGroupList is a collection in instancegroups
type InstanceGroupList struct { type InstanceGroupList struct {
metav1.TypeMeta `json:",inline"` metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"` metav1.ListMeta `json:"metadata,omitempty"`
@ -44,10 +45,21 @@ type InstanceGroupList struct {
type InstanceGroupRole string type InstanceGroupRole string
const ( const (
// InstanceGroupRoleMaster defines the node as a master
InstanceGroupRoleMaster InstanceGroupRole = "Master" InstanceGroupRoleMaster InstanceGroupRole = "Master"
// InstanceGroupRoleNode defines the node as a worker
InstanceGroupRoleNode InstanceGroupRole = "Node" InstanceGroupRoleNode InstanceGroupRole = "Node"
// InstanceGroupRoleBastion defines the node as a bastion host
InstanceGroupRoleBastion InstanceGroupRole = "Bastion"
) )
// AllInstanceGroupRoles is a slice of all valid InstanceGroupRole values
var AllInstanceGroupRoles = []InstanceGroupRole{
InstanceGroupRoleNode,
InstanceGroupRoleMaster,
InstanceGroupRoleBastion,
}
// InstanceGroupSpec is the specification for a instanceGroup // InstanceGroupSpec is the specification for a instanceGroup
type InstanceGroupSpec struct { type InstanceGroupSpec struct {
// Type determines the role of instances in this group: masters or nodes // Type determines the role of instances in this group: masters or nodes
@ -68,6 +80,8 @@ type InstanceGroupSpec struct {
RootVolumeIops *int32 `json:"rootVolumeIops,omitempty"` RootVolumeIops *int32 `json:"rootVolumeIops,omitempty"`
// RootVolumeOptimization enables EBS optimization for an instance // RootVolumeOptimization enables EBS optimization for an instance
RootVolumeOptimization *bool `json:"rootVolumeOptimization,omitempty"` RootVolumeOptimization *bool `json:"rootVolumeOptimization,omitempty"`
// Volumes is a collection of additional volumes to create for instances within this InstanceGroup
Volumes []*InstanceGroupVolumeSpec `json:"volumes,omitempty"`
// Hooks is a list of hooks for this instanceGroup, note: these can override the cluster wide ones if required // Hooks is a list of hooks for this instanceGroup, note: these can override the cluster wide ones if required
Hooks []HookSpec `json:"hooks,omitempty"` Hooks []HookSpec `json:"hooks,omitempty"`
// MaxPrice indicates this is a spot-pricing group, with the specified value as our max-price bid // MaxPrice indicates this is a spot-pricing group, with the specified value as our max-price bid
@ -124,7 +138,34 @@ type UserData struct {
Content string `json:"content,omitempty"` Content string `json:"content,omitempty"`
} }
// LoadBalancers defines a load balancer // InstanceGroupVolumeSpec defined the spec for an additional volume attached to the instance group
type InstanceGroupVolumeSpec struct {
// DeviceName is an optional device name of the block device
DeviceName *string `json:"deviceName,omitempty"`
// Encrypted indicates you want to encrypt the volume
Encrypted *bool `json:"encrypted,omitempty"`
// Filesystem is the type of filesystem to create on the device
Filesystem *InstanceGroupVolumeFilesystemSpec `json:"filesystem,omitempty"`
// Iops is the provision iops for this iops (think io1 in aws)
Iops *int32 `json:"iops,omitempty"`
// Size is the size of the volume in GB
Size *int32 `json:"size,omitempty"`
// Type is the type of volume to create and is cloud specific
Type *string `json:"type,omitempty"`
}
// InstanceGroupVolumeFilesystemSpec defines a specification for creating a filesystem
type InstanceGroupVolumeFilesystemSpec struct {
// Ext4 is the specification for a ext4 filesystem
Ext4 *Ext4FileSystemSpec `json:"ext4,omitempty"`
// Path is the location to mount the volume
Path string `json:"mountPath,omitempty"`
}
// Ext4FileSystemSpec defines a specification for a ext4 filesystem on a instancegroup volume
type Ext4FileSystemSpec struct{}
// LoadBalancer defines a load balancer
type LoadBalancer struct { type LoadBalancer struct {
// LoadBalancerName to associate with this instance group (AWS ELB) // LoadBalancerName to associate with this instance group (AWS ELB)
LoadBalancerName *string `json:"loadBalancerName,omitempty"` LoadBalancerName *string `json:"loadBalancerName,omitempty"`

View File

@ -1110,6 +1110,22 @@ func (in *ExecContainerAction) DeepCopy() *ExecContainerAction {
return out return out
} }
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Ext4FileSystemSpec) DeepCopyInto(out *Ext4FileSystemSpec) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ext4FileSystemSpec.
func (in *Ext4FileSystemSpec) DeepCopy() *Ext4FileSystemSpec {
if in == nil {
return nil
}
out := new(Ext4FileSystemSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ExternalDNSConfig) DeepCopyInto(out *ExternalDNSConfig) { func (in *ExternalDNSConfig) DeepCopyInto(out *ExternalDNSConfig) {
*out = *in *out = *in
@ -1366,6 +1382,18 @@ func (in *InstanceGroupSpec) DeepCopyInto(out *InstanceGroupSpec) {
*out = new(bool) *out = new(bool)
**out = **in **out = **in
} }
if in.Volumes != nil {
in, out := &in.Volumes, &out.Volumes
*out = make([]*InstanceGroupVolumeSpec, len(*in))
for i := range *in {
if (*in)[i] == nil {
(*out)[i] = nil
} else {
(*out)[i] = new(InstanceGroupVolumeSpec)
(*in)[i].DeepCopyInto((*out)[i])
}
}
}
if in.Hooks != nil { if in.Hooks != nil {
in, out := &in.Hooks, &out.Hooks in, out := &in.Hooks, &out.Hooks
*out = make([]HookSpec, len(*in)) *out = make([]HookSpec, len(*in))
@ -1469,6 +1497,101 @@ func (in *InstanceGroupSpec) DeepCopy() *InstanceGroupSpec {
return out return out
} }
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *InstanceGroupVolumeFilesystemSpec) DeepCopyInto(out *InstanceGroupVolumeFilesystemSpec) {
*out = *in
if in.Ext4 != nil {
in, out := &in.Ext4, &out.Ext4
if *in == nil {
*out = nil
} else {
*out = new(Ext4FileSystemSpec)
**out = **in
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceGroupVolumeFilesystemSpec.
func (in *InstanceGroupVolumeFilesystemSpec) DeepCopy() *InstanceGroupVolumeFilesystemSpec {
if in == nil {
return nil
}
out := new(InstanceGroupVolumeFilesystemSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *InstanceGroupVolumeSpec) DeepCopyInto(out *InstanceGroupVolumeSpec) {
*out = *in
if in.DeviceName != nil {
in, out := &in.DeviceName, &out.DeviceName
if *in == nil {
*out = nil
} else {
*out = new(string)
**out = **in
}
}
if in.Encrypted != nil {
in, out := &in.Encrypted, &out.Encrypted
if *in == nil {
*out = nil
} else {
*out = new(bool)
**out = **in
}
}
if in.Filesystem != nil {
in, out := &in.Filesystem, &out.Filesystem
if *in == nil {
*out = nil
} else {
*out = new(InstanceGroupVolumeFilesystemSpec)
(*in).DeepCopyInto(*out)
}
}
if in.Iops != nil {
in, out := &in.Iops, &out.Iops
if *in == nil {
*out = nil
} else {
*out = new(int32)
**out = **in
}
}
if in.Size != nil {
in, out := &in.Size, &out.Size
if *in == nil {
*out = nil
} else {
*out = new(int32)
**out = **in
}
}
if in.Type != nil {
in, out := &in.Type, &out.Type
if *in == nil {
*out = nil
} else {
*out = new(string)
**out = **in
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceGroupVolumeSpec.
func (in *InstanceGroupVolumeSpec) DeepCopy() *InstanceGroupVolumeSpec {
if in == nil {
return nil
}
out := new(InstanceGroupVolumeSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *KopeioAuthenticationSpec) DeepCopyInto(out *KopeioAuthenticationSpec) { func (in *KopeioAuthenticationSpec) DeepCopyInto(out *KopeioAuthenticationSpec) {
*out = *in *out = *in

View File

@ -33,6 +33,7 @@ type InstanceGroup struct {
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// InstanceGroupList is a collection of instancegroups
type InstanceGroupList struct { type InstanceGroupList struct {
metav1.TypeMeta `json:",inline"` metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"` metav1.ListMeta `json:"metadata,omitempty"`
@ -44,11 +45,15 @@ type InstanceGroupList struct {
type InstanceGroupRole string type InstanceGroupRole string
const ( const (
// InstanceGroupRoleMaster defines the node as a master
InstanceGroupRoleMaster InstanceGroupRole = "Master" InstanceGroupRoleMaster InstanceGroupRole = "Master"
// InstanceGroupRoleNode defines the node as a worker
InstanceGroupRoleNode InstanceGroupRole = "Node" InstanceGroupRoleNode InstanceGroupRole = "Node"
// InstanceGroupRoleBastion defines the node as a bastion host
InstanceGroupRoleBastion InstanceGroupRole = "Bastion" InstanceGroupRoleBastion InstanceGroupRole = "Bastion"
) )
// AllInstanceGroupRoles is a slice of all valid InstanceGroupRole values
var AllInstanceGroupRoles = []InstanceGroupRole{ var AllInstanceGroupRoles = []InstanceGroupRole{
InstanceGroupRoleNode, InstanceGroupRoleNode,
InstanceGroupRoleMaster, InstanceGroupRoleMaster,
@ -75,6 +80,8 @@ type InstanceGroupSpec struct {
RootVolumeIops *int32 `json:"rootVolumeIops,omitempty"` RootVolumeIops *int32 `json:"rootVolumeIops,omitempty"`
// RootVolumeOptimization enables EBS optimization for an instance // RootVolumeOptimization enables EBS optimization for an instance
RootVolumeOptimization *bool `json:"rootVolumeOptimization,omitempty"` RootVolumeOptimization *bool `json:"rootVolumeOptimization,omitempty"`
// Volumes is a collection of additional volumes to create for instances within this InstanceGroup
Volumes []*InstanceGroupVolumeSpec `json:"volumes,omitempty"`
// Subnets is the names of the Subnets (as specified in the Cluster) where machines in this instance group should be placed // 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"` Subnets []string `json:"subnets,omitempty"`
// Zones is the names of the Zones where machines in this instance group should be placed // Zones is the names of the Zones where machines in this instance group should be placed
@ -125,6 +132,33 @@ type UserData struct {
Content string `json:"content,omitempty"` Content string `json:"content,omitempty"`
} }
// InstanceGroupVolumeSpec defined the spec for an additional volume attached to the instance group
type InstanceGroupVolumeSpec struct {
// DeviceName is an optional device name of the block device
DeviceName *string `json:"deviceName,omitempty"`
// Encrypted indicates you want to encrypt the volume
Encrypted *bool `json:"encrypted,omitempty"`
// Filesystem is the type of filesystem to create on the device
Filesystem *InstanceGroupVolumeFilesystemSpec `json:"filesystem,omitempty"`
// Iops is the provision iops for this iops (think io1 in aws)
Iops *int64 `json:"iops,omitempty"`
// Size is the size of the volume in GB
Size *int64 `json:"size,omitempty"`
// Type is the type of volume to create and is cloud specific
Type *string `json:"type,omitempty"`
}
// InstanceGroupVolumeFilesystemSpec defines a specification for creating a filesystem
type InstanceGroupVolumeFilesystemSpec struct {
// Ext4 is the specification for a ext4 filesystem
Ext4 *Ext4FileSystemSpec `json:"ext4,omitempty"`
// Path is the location to mount the volume
Path string `json:"mountPath,omitempty"`
}
// Ext4FileSystemSpec defines a specification for a ext4 filesystem on a instancegroup volume
type Ext4FileSystemSpec struct{}
// IAMProfileSpec is the AWS IAM Profile to attach to instances in this instance // IAMProfileSpec is the AWS IAM Profile to attach to instances in this instance
// group. Specify the ARN for the IAM instance profile (AWS only). // group. Specify the ARN for the IAM instance profile (AWS only).
type IAMProfileSpec struct { type IAMProfileSpec struct {

View File

@ -1083,6 +1083,22 @@ func (in *ExecContainerAction) DeepCopy() *ExecContainerAction {
return out return out
} }
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Ext4FileSystemSpec) DeepCopyInto(out *Ext4FileSystemSpec) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ext4FileSystemSpec.
func (in *Ext4FileSystemSpec) DeepCopy() *Ext4FileSystemSpec {
if in == nil {
return nil
}
out := new(Ext4FileSystemSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ExternalDNSConfig) DeepCopyInto(out *ExternalDNSConfig) { func (in *ExternalDNSConfig) DeepCopyInto(out *ExternalDNSConfig) {
*out = *in *out = *in
@ -1339,6 +1355,18 @@ func (in *InstanceGroupSpec) DeepCopyInto(out *InstanceGroupSpec) {
*out = new(bool) *out = new(bool)
**out = **in **out = **in
} }
if in.Volumes != nil {
in, out := &in.Volumes, &out.Volumes
*out = make([]*InstanceGroupVolumeSpec, len(*in))
for i := range *in {
if (*in)[i] == nil {
(*out)[i] = nil
} else {
(*out)[i] = new(InstanceGroupVolumeSpec)
(*in)[i].DeepCopyInto((*out)[i])
}
}
}
if in.Subnets != nil { if in.Subnets != nil {
in, out := &in.Subnets, &out.Subnets in, out := &in.Subnets, &out.Subnets
*out = make([]string, len(*in)) *out = make([]string, len(*in))
@ -1447,6 +1475,101 @@ func (in *InstanceGroupSpec) DeepCopy() *InstanceGroupSpec {
return out return out
} }
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *InstanceGroupVolumeFilesystemSpec) DeepCopyInto(out *InstanceGroupVolumeFilesystemSpec) {
*out = *in
if in.Ext4 != nil {
in, out := &in.Ext4, &out.Ext4
if *in == nil {
*out = nil
} else {
*out = new(Ext4FileSystemSpec)
**out = **in
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceGroupVolumeFilesystemSpec.
func (in *InstanceGroupVolumeFilesystemSpec) DeepCopy() *InstanceGroupVolumeFilesystemSpec {
if in == nil {
return nil
}
out := new(InstanceGroupVolumeFilesystemSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *InstanceGroupVolumeSpec) DeepCopyInto(out *InstanceGroupVolumeSpec) {
*out = *in
if in.DeviceName != nil {
in, out := &in.DeviceName, &out.DeviceName
if *in == nil {
*out = nil
} else {
*out = new(string)
**out = **in
}
}
if in.Encrypted != nil {
in, out := &in.Encrypted, &out.Encrypted
if *in == nil {
*out = nil
} else {
*out = new(bool)
**out = **in
}
}
if in.Filesystem != nil {
in, out := &in.Filesystem, &out.Filesystem
if *in == nil {
*out = nil
} else {
*out = new(InstanceGroupVolumeFilesystemSpec)
(*in).DeepCopyInto(*out)
}
}
if in.Iops != nil {
in, out := &in.Iops, &out.Iops
if *in == nil {
*out = nil
} else {
*out = new(int64)
**out = **in
}
}
if in.Size != nil {
in, out := &in.Size, &out.Size
if *in == nil {
*out = nil
} else {
*out = new(int64)
**out = **in
}
}
if in.Type != nil {
in, out := &in.Type, &out.Type
if *in == nil {
*out = nil
} else {
*out = new(string)
**out = **in
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceGroupVolumeSpec.
func (in *InstanceGroupVolumeSpec) DeepCopy() *InstanceGroupVolumeSpec {
if in == nil {
return nil
}
out := new(InstanceGroupVolumeSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Keyset) DeepCopyInto(out *Keyset) { func (in *Keyset) DeepCopyInto(out *Keyset) {
*out = *in *out = *in

View File

@ -1249,6 +1249,22 @@ func (in *ExecContainerAction) DeepCopy() *ExecContainerAction {
return out return out
} }
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Ext4FileSystemSpec) DeepCopyInto(out *Ext4FileSystemSpec) {
*out = *in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ext4FileSystemSpec.
func (in *Ext4FileSystemSpec) DeepCopy() *Ext4FileSystemSpec {
if in == nil {
return nil
}
out := new(Ext4FileSystemSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *ExternalDNSConfig) DeepCopyInto(out *ExternalDNSConfig) { func (in *ExternalDNSConfig) DeepCopyInto(out *ExternalDNSConfig) {
*out = *in *out = *in
@ -1505,6 +1521,18 @@ func (in *InstanceGroupSpec) DeepCopyInto(out *InstanceGroupSpec) {
*out = new(bool) *out = new(bool)
**out = **in **out = **in
} }
if in.Volumes != nil {
in, out := &in.Volumes, &out.Volumes
*out = make([]*InstanceGroupVolumeSpec, len(*in))
for i := range *in {
if (*in)[i] == nil {
(*out)[i] = nil
} else {
(*out)[i] = new(InstanceGroupVolumeSpec)
(*in)[i].DeepCopyInto((*out)[i])
}
}
}
if in.Subnets != nil { if in.Subnets != nil {
in, out := &in.Subnets, &out.Subnets in, out := &in.Subnets, &out.Subnets
*out = make([]string, len(*in)) *out = make([]string, len(*in))
@ -1613,6 +1641,101 @@ func (in *InstanceGroupSpec) DeepCopy() *InstanceGroupSpec {
return out return out
} }
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *InstanceGroupVolumeFilesystemSpec) DeepCopyInto(out *InstanceGroupVolumeFilesystemSpec) {
*out = *in
if in.Ext4 != nil {
in, out := &in.Ext4, &out.Ext4
if *in == nil {
*out = nil
} else {
*out = new(Ext4FileSystemSpec)
**out = **in
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceGroupVolumeFilesystemSpec.
func (in *InstanceGroupVolumeFilesystemSpec) DeepCopy() *InstanceGroupVolumeFilesystemSpec {
if in == nil {
return nil
}
out := new(InstanceGroupVolumeFilesystemSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *InstanceGroupVolumeSpec) DeepCopyInto(out *InstanceGroupVolumeSpec) {
*out = *in
if in.DeviceName != nil {
in, out := &in.DeviceName, &out.DeviceName
if *in == nil {
*out = nil
} else {
*out = new(string)
**out = **in
}
}
if in.Encrypted != nil {
in, out := &in.Encrypted, &out.Encrypted
if *in == nil {
*out = nil
} else {
*out = new(bool)
**out = **in
}
}
if in.Filesystem != nil {
in, out := &in.Filesystem, &out.Filesystem
if *in == nil {
*out = nil
} else {
*out = new(InstanceGroupVolumeFilesystemSpec)
(*in).DeepCopyInto(*out)
}
}
if in.Iops != nil {
in, out := &in.Iops, &out.Iops
if *in == nil {
*out = nil
} else {
*out = new(int64)
**out = **in
}
}
if in.Size != nil {
in, out := &in.Size, &out.Size
if *in == nil {
*out = nil
} else {
*out = new(int64)
**out = **in
}
}
if in.Type != nil {
in, out := &in.Type, &out.Type
if *in == nil {
*out = nil
} else {
*out = new(string)
**out = **in
}
}
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceGroupVolumeSpec.
func (in *InstanceGroupVolumeSpec) DeepCopy() *InstanceGroupVolumeSpec {
if in == nil {
return nil
}
out := new(InstanceGroupVolumeSpec)
in.DeepCopyInto(out)
return out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func (in *Keyset) DeepCopyInto(out *Keyset) { func (in *Keyset) DeepCopyInto(out *Keyset) {
*out = *in *out = *in