Skip to content

Commit 7c80564

Browse files
committed
configure public SSH rules when using bastions
1 parent dbb66c4 commit 7c80564

File tree

1 file changed

+9
-14
lines changed

1 file changed

+9
-14
lines changed

pkg/model/gcemodel/external_access.go

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,12 @@ func (b *ExternalAccessModelBuilder) Build(c *fi.CloudupModelBuilderContext) err
4545
klog.Warningf("SSHAccess is empty")
4646
}
4747

48-
// SSH is open to AdminCIDR set
48+
network, err := b.LinkToNetwork()
49+
if err != nil {
50+
return err
51+
}
52+
4953
if b.UsesSSHBastion() {
50-
// If we are using a bastion, we only access through the bastion
51-
// This is admittedly a little odd... adding a bastion shuts down direct access to the masters/nodes
52-
// But I think we can always add more permissions in this case later, but we can't easily take them away
53-
klog.V(2).Infof("bastion is in use; won't configure SSH access to control-plane / worker node instances")
54-
network, err := b.LinkToNetwork()
55-
if err != nil {
56-
return err
57-
}
5854
b.AddFirewallRulesTasks(c, "ssh-external-to-bastion", &gcetasks.FirewallRule{
5955
Lifecycle: b.Lifecycle,
6056
TargetTags: []string{b.GCETagForRole(kops.InstanceGroupRoleBastion)},
@@ -76,11 +72,10 @@ func (b *ExternalAccessModelBuilder) Build(c *fi.CloudupModelBuilderContext) err
7672
SourceTags: []string{b.GCETagForRole(kops.InstanceGroupRoleBastion)},
7773
Network: network,
7874
})
79-
} else {
80-
network, err := b.LinkToNetwork()
81-
if err != nil {
82-
return err
83-
}
75+
}
76+
77+
// If you specify SSHAccess, we open up SSH to master & nodes regardless of whether a bastion is used or not
78+
if len(b.Cluster.Spec.SSHAccess) > 0 {
8479
b.AddFirewallRulesTasks(c, "ssh-external-to-master", &gcetasks.FirewallRule{
8580
Lifecycle: b.Lifecycle,
8681
TargetTags: []string{b.GCETagForRole(kops.InstanceGroupRoleControlPlane), b.GCETagForRole("Master")},

0 commit comments

Comments
 (0)