Skip to content

Commit

Permalink
Adding API to have shared security groups
Browse files Browse the repository at this point in the history
  • Loading branch information
chrislovecnm committed Jan 7, 2018
1 parent feec27d commit ad7f297
Show file tree
Hide file tree
Showing 13 changed files with 124 additions and 19 deletions.
11 changes: 8 additions & 3 deletions pkg/apis/kops/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions pkg/apis/kops/instancegroup.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
11 changes: 8 additions & 3 deletions pkg/apis/kops/v1alpha1/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 2 additions & 0 deletions pkg/apis/kops/v1alpha1/instancegroup.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions pkg/apis/kops/v1alpha1/zz_generated.conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down Expand Up @@ -1783,6 +1784,7 @@ func autoConvert_kops_InstanceGroupSpec_To_v1alpha1_InstanceGroupSpec(in *kops.I
} else {
out.AdditionalUserData = nil
}
out.SecurityGroup = in.SecurityGroup
return nil
}

Expand Down Expand Up @@ -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
}

Expand All @@ -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
}

Expand Down
30 changes: 28 additions & 2 deletions pkg/apis/kops/v1alpha1/zz_generated.deepcopy.go
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down Expand Up @@ -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
}

Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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
}

Expand Down
11 changes: 8 additions & 3 deletions pkg/apis/kops/v1alpha2/cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
2 changes: 2 additions & 0 deletions pkg/apis/kops/v1alpha2/instancegroup.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions pkg/apis/kops/v1alpha2/zz_generated.conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -1829,6 +1829,7 @@ func autoConvert_v1alpha2_InstanceGroupSpec_To_kops_InstanceGroupSpec(in *Instan
} else {
out.AdditionalUserData = nil
}
out.SecurityGroup = in.SecurityGroup
return nil
}

Expand Down Expand Up @@ -1898,6 +1899,7 @@ func autoConvert_kops_InstanceGroupSpec_To_v1alpha2_InstanceGroupSpec(in *kops.I
} else {
out.AdditionalUserData = nil
}
out.SecurityGroup = in.SecurityGroup
return nil
}

Expand Down Expand Up @@ -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
}

Expand All @@ -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
}

Expand Down
30 changes: 28 additions & 2 deletions pkg/apis/kops/v1alpha2/zz_generated.deepcopy.go
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down Expand Up @@ -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
}

Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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
}

Expand Down
30 changes: 28 additions & 2 deletions pkg/apis/kops/zz_generated.deepcopy.go
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down Expand Up @@ -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
}

Expand Down Expand Up @@ -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 {
Expand Down Expand Up @@ -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
}

Expand Down
3 changes: 1 addition & 2 deletions pkg/client/clientset_generated/clientset/scheme/register.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,14 @@ 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"
runtime "k8s.io/apimachinery/pkg/runtime"
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()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,14 @@ 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"
runtime "k8s.io/apimachinery/pkg/runtime"
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()
Expand Down

0 comments on commit ad7f297

Please sign in to comment.