From ad7f2977474f340204a4117a36fd147ccfba5adb Mon Sep 17 00:00:00 2001 From: chrislovecnm Date: Tue, 10 Oct 2017 11:22:31 -0600 Subject: [PATCH] Adding API to have shared security groups --- pkg/apis/kops/cluster.go | 11 +++++-- pkg/apis/kops/instancegroup.go | 2 ++ pkg/apis/kops/v1alpha1/cluster.go | 11 +++++-- pkg/apis/kops/v1alpha1/instancegroup.go | 2 ++ .../kops/v1alpha1/zz_generated.conversion.go | 4 +++ .../kops/v1alpha1/zz_generated.deepcopy.go | 30 +++++++++++++++++-- pkg/apis/kops/v1alpha2/cluster.go | 11 +++++-- pkg/apis/kops/v1alpha2/instancegroup.go | 2 ++ .../kops/v1alpha2/zz_generated.conversion.go | 4 +++ .../kops/v1alpha2/zz_generated.deepcopy.go | 30 +++++++++++++++++-- pkg/apis/kops/zz_generated.deepcopy.go | 30 +++++++++++++++++-- .../clientset/scheme/register.go | 3 +- .../internalclientset/scheme/register.go | 3 +- 13 files changed, 124 insertions(+), 19 deletions(-) diff --git a/pkg/apis/kops/cluster.go b/pkg/apis/kops/cluster.go index 586fb7d841650..57143e8be2cb2 100644 --- a/pkg/apis/kops/cluster.go +++ b/pkg/apis/kops/cluster.go @@ -269,9 +269,14 @@ const ( // LoadBalancerAccessSpec provides configuration details related to API LoadBalancer and its access type LoadBalancerAccessSpec struct { - Type LoadBalancerType `json:"type,omitempty"` - IdleTimeoutSeconds *int64 `json:"idleTimeoutSeconds,omitempty"` - AdditionalSecurityGroups []string `json:"additionalSecurityGroups,omitempty"` + // Type may be Public or Internal. + Type LoadBalancerType `json:"type,omitempty"` + // IdleTimeoutSeconds sets the timeout of the api loadbalancer. + IdleTimeoutSeconds *int64 `json:"idleTimeoutSeconds,omitempty"` + // AdditionalSecurityGroups attaches additional security groups (e.g. sg-123456). + AdditionalSecurityGroups []string `json:"additionalSecurityGroups,omitempty"` + // SecurityGroup is the id of the shared security group to use for the InstanceGroupSpec. + SecurityGroup *string `json:"securityGroup,omitempty"` } // KubeDNSConfig defines the kube dns configuration diff --git a/pkg/apis/kops/instancegroup.go b/pkg/apis/kops/instancegroup.go index 7a0cefc1f3253..aa319fb4d60ee 100644 --- a/pkg/apis/kops/instancegroup.go +++ b/pkg/apis/kops/instancegroup.go @@ -114,6 +114,8 @@ type InstanceGroupSpec struct { Taints []string `json:"taints,omitempty"` // AdditionalUserData is any aditional user-data to be passed to the host AdditionalUserData []UserData `json:"additionalUserData,omitempty"` + // SecurityGroup is the id of the shared security group to use. Currently only AWS is supported. + SecurityGroup *string `json:"securityGroup,omitempty"` } // UserData defines a user-data section diff --git a/pkg/apis/kops/v1alpha1/cluster.go b/pkg/apis/kops/v1alpha1/cluster.go index 8ae40130f1b0f..f0a0a0e270d10 100644 --- a/pkg/apis/kops/v1alpha1/cluster.go +++ b/pkg/apis/kops/v1alpha1/cluster.go @@ -268,9 +268,14 @@ const ( // LoadBalancerAccessSpec provides configuration details related to API LoadBalancer and its access type LoadBalancerAccessSpec struct { - Type LoadBalancerType `json:"type,omitempty"` - IdleTimeoutSeconds *int64 `json:"idleTimeoutSeconds,omitempty"` - AdditionalSecurityGroups []string `json:"additionalSecurityGroups,omitempty"` + // Type may be Public or Internal. + Type LoadBalancerType `json:"type,omitempty"` + // IdleTimeoutSeconds sets the timeout of the api loadbalancer. + IdleTimeoutSeconds *int64 `json:"idleTimeoutSeconds,omitempty"` + // AdditionalSecurityGroups attaches additional security groups (e.g. sg-123456). + AdditionalSecurityGroups []string `json:"additionalSecurityGroups,omitempty"` + // SecurityGroup is the id of the shared security group to use for the InstanceGroupSpec. + SecurityGroup *string `json:"securityGroup,omitempty"` } // KubeDNSConfig defines the kube dns configuration diff --git a/pkg/apis/kops/v1alpha1/instancegroup.go b/pkg/apis/kops/v1alpha1/instancegroup.go index 6eef349954b6a..684994097c858 100644 --- a/pkg/apis/kops/v1alpha1/instancegroup.go +++ b/pkg/apis/kops/v1alpha1/instancegroup.go @@ -94,6 +94,8 @@ type InstanceGroupSpec struct { // 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"` + // SecurityGroup is the id of the shared security group to use. Currently only AWS is supported. + SecurityGroup *string `json:"securityGroup,omitempty"` } // UserData defines a user-data section diff --git a/pkg/apis/kops/v1alpha1/zz_generated.conversion.go b/pkg/apis/kops/v1alpha1/zz_generated.conversion.go index 80c63bafec444..713a0d21fedb1 100644 --- a/pkg/apis/kops/v1alpha1/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha1/zz_generated.conversion.go @@ -1719,6 +1719,7 @@ func autoConvert_v1alpha1_InstanceGroupSpec_To_kops_InstanceGroupSpec(in *Instan out.AdditionalUserData = nil } out.Zones = in.Zones + out.SecurityGroup = in.SecurityGroup return nil } @@ -1783,6 +1784,7 @@ func autoConvert_kops_InstanceGroupSpec_To_v1alpha1_InstanceGroupSpec(in *kops.I } else { out.AdditionalUserData = nil } + out.SecurityGroup = in.SecurityGroup return nil } @@ -2312,6 +2314,7 @@ func autoConvert_v1alpha1_LoadBalancerAccessSpec_To_kops_LoadBalancerAccessSpec( out.Type = kops.LoadBalancerType(in.Type) out.IdleTimeoutSeconds = in.IdleTimeoutSeconds out.AdditionalSecurityGroups = in.AdditionalSecurityGroups + out.SecurityGroup = in.SecurityGroup return nil } @@ -2324,6 +2327,7 @@ func autoConvert_kops_LoadBalancerAccessSpec_To_v1alpha1_LoadBalancerAccessSpec( out.Type = LoadBalancerType(in.Type) out.IdleTimeoutSeconds = in.IdleTimeoutSeconds out.AdditionalSecurityGroups = in.AdditionalSecurityGroups + out.SecurityGroup = in.SecurityGroup return nil } diff --git a/pkg/apis/kops/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/kops/v1alpha1/zz_generated.deepcopy.go index 0debf48e1fdf4..570a02c5d1adf 100644 --- a/pkg/apis/kops/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/kops/v1alpha1/zz_generated.deepcopy.go @@ -21,11 +21,10 @@ limitations under the License. package v1alpha1 import ( - reflect "reflect" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" + reflect "reflect" ) func init() { @@ -1820,6 +1819,15 @@ func (in *InstanceGroupSpec) DeepCopyInto(out *InstanceGroupSpec) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.SecurityGroup != nil { + in, out := &in.SecurityGroup, &out.SecurityGroup + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } return } @@ -2525,6 +2533,15 @@ func (in *KubeletConfigSpec) DeepCopyInto(out *KubeletConfigSpec) { **out = **in } } + if in.ImagePullProgressDeadline != nil { + in, out := &in.ImagePullProgressDeadline, &out.ImagePullProgressDeadline + if *in == nil { + *out = nil + } else { + *out = new(v1.Duration) + **out = **in + } + } if in.EvictionHard != nil { in, out := &in.EvictionHard, &out.EvictionHard if *in == nil { @@ -2674,6 +2691,15 @@ func (in *LoadBalancerAccessSpec) DeepCopyInto(out *LoadBalancerAccessSpec) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.SecurityGroup != nil { + in, out := &in.SecurityGroup, &out.SecurityGroup + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } return } diff --git a/pkg/apis/kops/v1alpha2/cluster.go b/pkg/apis/kops/v1alpha2/cluster.go index d4bab81b22225..8271e341a49b9 100644 --- a/pkg/apis/kops/v1alpha2/cluster.go +++ b/pkg/apis/kops/v1alpha2/cluster.go @@ -269,9 +269,14 @@ const ( // LoadBalancerAccessSpec provides configuration details related to API LoadBalancer and its access type LoadBalancerAccessSpec struct { - Type LoadBalancerType `json:"type,omitempty"` - IdleTimeoutSeconds *int64 `json:"idleTimeoutSeconds,omitempty"` - AdditionalSecurityGroups []string `json:"additionalSecurityGroups,omitempty"` + // Type may be Public or Internal. + Type LoadBalancerType `json:"type,omitempty"` + // IdleTimeoutSeconds sets the timeout of the api loadbalancer. + IdleTimeoutSeconds *int64 `json:"idleTimeoutSeconds,omitempty"` + // AdditionalSecurityGroups attaches additional security groups (e.g. sg-123456). + AdditionalSecurityGroups []string `json:"additionalSecurityGroups,omitempty"` + // SecurityGroup is the id of the shared security group to use for the InstanceGroupSpec. + SecurityGroup *string `json:"securityGroup,omitempty"` } type KubeDNSConfig struct { diff --git a/pkg/apis/kops/v1alpha2/instancegroup.go b/pkg/apis/kops/v1alpha2/instancegroup.go index b8101301c98a5..501cc489c8bf1 100644 --- a/pkg/apis/kops/v1alpha2/instancegroup.go +++ b/pkg/apis/kops/v1alpha2/instancegroup.go @@ -103,6 +103,8 @@ type InstanceGroupSpec struct { Taints []string `json:"taints,omitempty"` // AdditionalUserData is any aditional user-data to be passed to the host AdditionalUserData []UserData `json:"additionalUserData,omitempty"` + // SecurityGroup is the id of the shared security group. Currently only AWS is supported. + SecurityGroup *string `json:"securityGroup,omitempty"` } // UserData defines a user-data section diff --git a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go index 8afa438d0d8b8..a6316e84bb7fc 100644 --- a/pkg/apis/kops/v1alpha2/zz_generated.conversion.go +++ b/pkg/apis/kops/v1alpha2/zz_generated.conversion.go @@ -1829,6 +1829,7 @@ func autoConvert_v1alpha2_InstanceGroupSpec_To_kops_InstanceGroupSpec(in *Instan } else { out.AdditionalUserData = nil } + out.SecurityGroup = in.SecurityGroup return nil } @@ -1898,6 +1899,7 @@ func autoConvert_kops_InstanceGroupSpec_To_v1alpha2_InstanceGroupSpec(in *kops.I } else { out.AdditionalUserData = nil } + out.SecurityGroup = in.SecurityGroup return nil } @@ -2574,6 +2576,7 @@ func autoConvert_v1alpha2_LoadBalancerAccessSpec_To_kops_LoadBalancerAccessSpec( out.Type = kops.LoadBalancerType(in.Type) out.IdleTimeoutSeconds = in.IdleTimeoutSeconds out.AdditionalSecurityGroups = in.AdditionalSecurityGroups + out.SecurityGroup = in.SecurityGroup return nil } @@ -2586,6 +2589,7 @@ func autoConvert_kops_LoadBalancerAccessSpec_To_v1alpha2_LoadBalancerAccessSpec( out.Type = LoadBalancerType(in.Type) out.IdleTimeoutSeconds = in.IdleTimeoutSeconds out.AdditionalSecurityGroups = in.AdditionalSecurityGroups + out.SecurityGroup = in.SecurityGroup return nil } diff --git a/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go b/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go index 2cc97a52e9ec6..e2084cd21c772 100644 --- a/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go +++ b/pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go @@ -21,11 +21,10 @@ limitations under the License. package v1alpha2 import ( - reflect "reflect" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" + reflect "reflect" ) func init() { @@ -1835,6 +1834,15 @@ func (in *InstanceGroupSpec) DeepCopyInto(out *InstanceGroupSpec) { *out = make([]UserData, len(*in)) copy(*out, *in) } + if in.SecurityGroup != nil { + in, out := &in.SecurityGroup, &out.SecurityGroup + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } return } @@ -2651,6 +2659,15 @@ func (in *KubeletConfigSpec) DeepCopyInto(out *KubeletConfigSpec) { **out = **in } } + if in.ImagePullProgressDeadline != nil { + in, out := &in.ImagePullProgressDeadline, &out.ImagePullProgressDeadline + if *in == nil { + *out = nil + } else { + *out = new(v1.Duration) + **out = **in + } + } if in.EvictionHard != nil { in, out := &in.EvictionHard, &out.EvictionHard if *in == nil { @@ -2800,6 +2817,15 @@ func (in *LoadBalancerAccessSpec) DeepCopyInto(out *LoadBalancerAccessSpec) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.SecurityGroup != nil { + in, out := &in.SecurityGroup, &out.SecurityGroup + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } return } diff --git a/pkg/apis/kops/zz_generated.deepcopy.go b/pkg/apis/kops/zz_generated.deepcopy.go index 40a59b2777346..ecb36c3909607 100644 --- a/pkg/apis/kops/zz_generated.deepcopy.go +++ b/pkg/apis/kops/zz_generated.deepcopy.go @@ -21,11 +21,10 @@ limitations under the License. package kops import ( - reflect "reflect" - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" conversion "k8s.io/apimachinery/pkg/conversion" runtime "k8s.io/apimachinery/pkg/runtime" + reflect "reflect" ) func init() { @@ -2038,6 +2037,15 @@ func (in *InstanceGroupSpec) DeepCopyInto(out *InstanceGroupSpec) { *out = make([]UserData, len(*in)) copy(*out, *in) } + if in.SecurityGroup != nil { + in, out := &in.SecurityGroup, &out.SecurityGroup + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } return } @@ -2870,6 +2878,15 @@ func (in *KubeletConfigSpec) DeepCopyInto(out *KubeletConfigSpec) { **out = **in } } + if in.ImagePullProgressDeadline != nil { + in, out := &in.ImagePullProgressDeadline, &out.ImagePullProgressDeadline + if *in == nil { + *out = nil + } else { + *out = new(v1.Duration) + **out = **in + } + } if in.EvictionHard != nil { in, out := &in.EvictionHard, &out.EvictionHard if *in == nil { @@ -3035,6 +3052,15 @@ func (in *LoadBalancerAccessSpec) DeepCopyInto(out *LoadBalancerAccessSpec) { *out = make([]string, len(*in)) copy(*out, *in) } + if in.SecurityGroup != nil { + in, out := &in.SecurityGroup, &out.SecurityGroup + if *in == nil { + *out = nil + } else { + *out = new(string) + **out = **in + } + } return } diff --git a/pkg/client/clientset_generated/clientset/scheme/register.go b/pkg/client/clientset_generated/clientset/scheme/register.go index 3284ad953b408..0c46a3329cd2c 100644 --- a/pkg/client/clientset_generated/clientset/scheme/register.go +++ b/pkg/client/clientset_generated/clientset/scheme/register.go @@ -17,8 +17,6 @@ limitations under the License. package scheme import ( - os "os" - announced "k8s.io/apimachinery/pkg/apimachinery/announced" registered "k8s.io/apimachinery/pkg/apimachinery/registered" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -26,6 +24,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" kops "k8s.io/kops/pkg/apis/kops/install" + os "os" ) var Scheme = runtime.NewScheme() diff --git a/pkg/client/clientset_generated/internalclientset/scheme/register.go b/pkg/client/clientset_generated/internalclientset/scheme/register.go index 3284ad953b408..0c46a3329cd2c 100644 --- a/pkg/client/clientset_generated/internalclientset/scheme/register.go +++ b/pkg/client/clientset_generated/internalclientset/scheme/register.go @@ -17,8 +17,6 @@ limitations under the License. package scheme import ( - os "os" - announced "k8s.io/apimachinery/pkg/apimachinery/announced" registered "k8s.io/apimachinery/pkg/apimachinery/registered" v1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -26,6 +24,7 @@ import ( schema "k8s.io/apimachinery/pkg/runtime/schema" serializer "k8s.io/apimachinery/pkg/runtime/serializer" kops "k8s.io/kops/pkg/apis/kops/install" + os "os" ) var Scheme = runtime.NewScheme()