feat: allow additional security groups on bastion ELB

This commit is contained in:
Nicolas Vanheuverzwijn 2020-04-15 18:55:53 -04:00
parent 33c7e22207
commit 89d4fb757e
3 changed files with 27 additions and 1 deletions

View File

@ -20,4 +20,10 @@ type BastionSpec struct {
BastionPublicName string `json:"bastionPublicName,omitempty"`
// IdleTimeoutSeconds is the bastion's Loadbalancer idle timeout
IdleTimeoutSeconds *int64 `json:"idleTimeoutSeconds,omitempty"`
LoadBalancer *BastionLoadBalancerSpec `json:"loadBalancer,omitempty"`
}
type BastionLoadBalancerSpec struct {
AdditionalSecurityGroups []string `json:"additionalSecurityGroups,omitempty"`
}

View File

@ -19,5 +19,10 @@ package v1alpha2
type BastionSpec struct {
BastionPublicName string `json:"bastionPublicName,omitempty"`
// 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"`
}

View File

@ -244,6 +244,21 @@ func (b *BastionModelBuilder) Build(c *fi.ModelBuilderContext) error {
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)
}