mirror of https://github.com/kubernetes/kops.git
feat: allow additional security groups on bastion ELB
This commit is contained in:
parent
33c7e22207
commit
89d4fb757e
|
|
@ -20,4 +20,10 @@ type BastionSpec struct {
|
||||||
BastionPublicName string `json:"bastionPublicName,omitempty"`
|
BastionPublicName string `json:"bastionPublicName,omitempty"`
|
||||||
// IdleTimeoutSeconds is the bastion's Loadbalancer idle timeout
|
// IdleTimeoutSeconds is the bastion's Loadbalancer idle timeout
|
||||||
IdleTimeoutSeconds *int64 `json:"idleTimeoutSeconds,omitempty"`
|
IdleTimeoutSeconds *int64 `json:"idleTimeoutSeconds,omitempty"`
|
||||||
|
|
||||||
|
LoadBalancer *BastionLoadBalancerSpec `json:"loadBalancer,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BastionLoadBalancerSpec struct {
|
||||||
|
AdditionalSecurityGroups []string `json:"additionalSecurityGroups,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,5 +19,10 @@ package v1alpha2
|
||||||
type BastionSpec struct {
|
type BastionSpec struct {
|
||||||
BastionPublicName string `json:"bastionPublicName,omitempty"`
|
BastionPublicName string `json:"bastionPublicName,omitempty"`
|
||||||
// IdleTimeoutSeconds is the bastion's Loadbalancer idle timeout
|
// IdleTimeoutSeconds is the bastion's Loadbalancer idle timeout
|
||||||
IdleTimeoutSeconds *int64 `json:"idleTimeoutSeconds,omitempty"`
|
IdleTimeoutSeconds *int64 `json:"idleTimeoutSeconds,omitempty"`
|
||||||
|
LoadBalancer *BastionLoadBalancerSpec `json:"loadBalancer,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type BastionLoadBalancerSpec struct {
|
||||||
|
AdditionalSecurityGroups []string `json:"additionalSecurityGroups,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -244,6 +244,21 @@ func (b *BastionModelBuilder) Build(c *fi.ModelBuilderContext) error {
|
||||||
|
|
||||||
Tags: tags,
|
Tags: tags,
|
||||||
}
|
}
|
||||||
|
// Add additional security groups to the ELB
|
||||||
|
if b.Cluster.Spec.Topology != nil && b.Cluster.Spec.Topology.Bastion != nil && b.Cluster.Spec.Topology.Bastion.LoadBalancer != nil && b.Cluster.Spec.Topology.Bastion.LoadBalancer.AdditionalSecurityGroups != nil {
|
||||||
|
for _, id := range b.Cluster.Spec.Topology.Bastion.LoadBalancer.AdditionalSecurityGroups {
|
||||||
|
t := &awstasks.SecurityGroup{
|
||||||
|
Name: fi.String(id),
|
||||||
|
Lifecycle: b.SecurityLifecycle,
|
||||||
|
ID: fi.String(id),
|
||||||
|
Shared: fi.Bool(true),
|
||||||
|
}
|
||||||
|
if err := c.EnsureTask(t); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
elb.SecurityGroups = append(elb.SecurityGroups, t)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
c.AddTask(elb)
|
c.AddTask(elb)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue