* Fix NPM port rules

* Add port entry logic for ipblock, namespace, and pod selector; Fix tests.

* removing unnecessary hops between chains
This commit is contained in:
jaer-tsun 2019-12-17 15:45:28 -08:00 коммит произвёл GitHub
Родитель b4f9840815
Коммит 8ae2c0a3a2
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 934 добавлений и 557 удалений

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -97,7 +97,7 @@ func TestCraftPartialIptablesCommentFromPort(t *testing.T) {
}
comment = craftPartialIptablesCommentFromPort(portRule, util.IptablesDstPortFlag)
expectedComment = "TCP-OF-"
expectedComment = "TCP"
if !reflect.DeepEqual(comment, expectedComment) {
t.Errorf("TestCraftPartialIptablesCommentFromPort failed @ tcp comment comparison")
@ -111,7 +111,7 @@ func TestCraftPartialIptablesCommentFromPort(t *testing.T) {
}
comment = craftPartialIptablesCommentFromPort(portRule, util.IptablesDstPortFlag)
expectedComment = "PORT-8000-OF-"
expectedComment = "PORT-8000"
if !reflect.DeepEqual(comment, expectedComment) {
t.Errorf("TestCraftPartialIptablesCommentFromPort failed @ port 8000 comment comparison")
@ -125,7 +125,7 @@ func TestCraftPartialIptablesCommentFromPort(t *testing.T) {
}
comment = craftPartialIptablesCommentFromPort(portRule, util.IptablesDstPortFlag)
expectedComment = "TCP-PORT-8000-OF-"
expectedComment = "TCP-PORT-8000"
if !reflect.DeepEqual(comment, expectedComment) {
t.Errorf("TestCraftPartialIptablesCommentFromPort failed @ tcp port 8000 comment comparison")
@ -603,7 +603,7 @@ func TestTranslateIngress(t *testing.T) {
}
util.IsNewNwPolicyVerFlag = true
sets, lists, iptEntries, _ := translateIngress(ns, targetSelector, rules)
sets, lists, iptEntries := translateIngress(ns, targetSelector, rules)
expectedSets := []string{
"context:dev",
"testNotIn:frontend",
@ -634,8 +634,19 @@ func TestTranslateIngress(t *testing.T) {
expectedIptEntries := []*iptm.IptEntry{
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Chain: util.IptablesAzureIngressPortChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("context:dev"),
util.IptablesDstFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesNotFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("testNotIn:frontend"),
util.IptablesDstFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
@ -646,6 +657,21 @@ func TestTranslateIngress(t *testing.T) {
util.IptablesMatchSetFlag,
util.GetHashedName("testIn:frontend"),
util.IptablesSrcFlag,
util.IptablesProtFlag,
string(v1.ProtocolTCP),
util.IptablesDstPortFlag,
"6783",
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-app:db-AND-testIn:frontend-AND-TCP-PORT-6783-TO-context:dev-AND-!testNotIn:frontend",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressPortChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
@ -657,17 +683,6 @@ func TestTranslateIngress(t *testing.T) {
util.IptablesMatchSetFlag,
util.GetHashedName("testNotIn:frontend"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-app:db-AND-testIn:frontend-TO-context:dev-AND-!testNotIn:frontend",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
@ -678,27 +693,20 @@ func TestTranslateIngress(t *testing.T) {
util.IptablesMatchSetFlag,
util.GetHashedName("ns-testIn:frontendns"),
util.IptablesSrcFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("context:dev"),
util.IptablesDstFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesNotFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("testNotIn:frontend"),
util.IptablesDstFlag,
util.IptablesProtFlag,
string(v1.ProtocolTCP),
util.IptablesDstPortFlag,
"6783",
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ns-ns:dev-AND-ns-testIn:frontendns-TO-context:dev-AND-!testNotIn:frontend",
"ALLOW-ns-ns:dev-AND-ns-testIn:frontendns-AND-TCP-PORT-6783-TO-context:dev-AND-!testNotIn:frontend",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Chain: util.IptablesAzureIngressPortChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
@ -732,21 +740,21 @@ func TestTranslateIngress(t *testing.T) {
util.IptablesMatchSetFlag,
util.GetHashedName("testNotIn:frontend"),
util.IptablesDstFlag,
util.IptablesProtFlag,
string(v1.ProtocolTCP),
util.IptablesDstPortFlag,
"6783",
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ns-planet:earth-AND-ns-keyExists-AND-region:northpole-AND-!k-TO-context:dev-AND-!testNotIn:frontend",
"ALLOW-ns-planet:earth-AND-ns-keyExists-AND-region:northpole-AND-!k-AND-TCP-PORT-6783-TO-context:dev-AND-!testNotIn:frontend",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressPortChain,
Specs: []string{
util.IptablesProtFlag,
string(v1.ProtocolTCP),
util.IptablesDstPortFlag,
"6783",
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
@ -759,34 +767,11 @@ func TestTranslateIngress(t *testing.T) {
util.GetHashedName("testNotIn:frontend"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAzureIngressFromChain,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-TO-TCP-PORT-6783-OF-context:dev-AND-!testNotIn:frontend-TO-JUMP-TO-" +
util.IptablesAzureIngressFromChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("context:dev"),
util.IptablesDstFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesNotFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("testNotIn:frontend"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesDrop,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"DROP-ALL-TO-context:dev-AND-!testNotIn:frontend",
"ALLOW-ALL-TO-context:dev-AND-!testNotIn:frontend-TO-JUMP-TO-AZURE-NPM-TARGET-SETS",
},
},
}
@ -895,7 +880,7 @@ func TestTranslateEgress(t *testing.T) {
}
util.IsNewNwPolicyVerFlag = true
sets, lists, iptEntries, _ := translateEgress(ns, targetSelector, rules)
sets, lists, iptEntries := translateEgress(ns, targetSelector, rules)
expectedSets := []string{
"context:dev",
"testNotIn:frontend",
@ -926,19 +911,8 @@ func TestTranslateEgress(t *testing.T) {
expectedIptEntries := []*iptm.IptEntry{
&iptm.IptEntry{
Chain: util.IptablesAzureEgressToChain,
Chain: util.IptablesAzureEgressPortChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("context:dev"),
util.IptablesSrcFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesNotFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("testNotIn:frontend"),
util.IptablesSrcFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
@ -949,17 +923,10 @@ func TestTranslateEgress(t *testing.T) {
util.IptablesMatchSetFlag,
util.GetHashedName("testIn:frontend"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-context:dev-AND-!testNotIn:frontend-TO-app:db-AND-testIn:frontend",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureEgressToChain,
Specs: []string{
util.IptablesProtFlag,
string(v1.ProtocolTCP),
util.IptablesDstPortFlag,
"6783",
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
@ -971,6 +938,17 @@ func TestTranslateEgress(t *testing.T) {
util.IptablesMatchSetFlag,
util.GetHashedName("testNotIn:frontend"),
util.IptablesSrcFlag,
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-app:db-AND-testIn:frontend-AND-TCP-PORT-6783-FROM-context:dev-AND-!testNotIn:frontend",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureEgressPortChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
@ -981,16 +959,31 @@ func TestTranslateEgress(t *testing.T) {
util.IptablesMatchSetFlag,
util.GetHashedName("ns-testIn:frontendns"),
util.IptablesDstFlag,
util.IptablesProtFlag,
string(v1.ProtocolTCP),
util.IptablesDstPortFlag,
"6783",
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("context:dev"),
util.IptablesSrcFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesNotFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("testNotIn:frontend"),
util.IptablesSrcFlag,
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-context:dev-AND-!testNotIn:frontend-TO-ns-ns:dev-AND-ns-testIn:frontendns",
"ALLOW-ns-ns:dev-AND-ns-testIn:frontendns-AND-TCP-PORT-6783-FROM-context:dev-AND-!testNotIn:frontend",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureEgressToChain,
Chain: util.IptablesAzureEgressPortChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
@ -1024,21 +1017,21 @@ func TestTranslateEgress(t *testing.T) {
util.IptablesMatchSetFlag,
util.GetHashedName("k"),
util.IptablesDstFlag,
util.IptablesProtFlag,
string(v1.ProtocolTCP),
util.IptablesDstPortFlag,
"6783",
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-context:dev-AND-!testNotIn:frontend-TO-ns-planet:earth-AND-ns-keyExists-AND-region:northpole-AND-!k",
"ALLOW-context:dev-AND-!testNotIn:frontend-TO-ns-planet:earth-AND-ns-keyExists-AND-region:northpole-AND-!k-AND-TCP-PORT-6783",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureEgressPortChain,
Specs: []string{
util.IptablesProtFlag,
string(v1.ProtocolTCP),
util.IptablesDstPortFlag,
"6783",
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
@ -1051,34 +1044,11 @@ func TestTranslateEgress(t *testing.T) {
util.GetHashedName("testNotIn:frontend"),
util.IptablesSrcFlag,
util.IptablesJumpFlag,
util.IptablesAzureEgressToChain,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-FROM-TCP-PORT-6783-OF-context:dev-AND-!testNotIn:frontend-TO-JUMP-TO-" +
util.IptablesAzureEgressToChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureEgressToChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("context:dev"),
util.IptablesSrcFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesNotFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("testNotIn:frontend"),
util.IptablesSrcFlag,
util.IptablesJumpFlag,
util.IptablesDrop,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"DROP-ALL-FROM-context:dev-AND-!testNotIn:frontend",
"ALLOW-ALL-FROM-context:dev-AND-!testNotIn:frontend-TO-JUMP-TO-AZURE-NPM-TARGET-SETS",
},
},
}
@ -1227,6 +1197,23 @@ func TestTranslatePolicy(t *testing.T) {
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:backend"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-TO-app:backend-TO-JUMP-TO-" +
util.IptablesAzureTargetSetsChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureTargetSetsChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
@ -1462,6 +1449,23 @@ func TestTranslatePolicy(t *testing.T) {
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:frontend"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-TO-app:frontend-TO-JUMP-TO-" +
util.IptablesAzureTargetSetsChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureTargetSetsChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
@ -1575,6 +1579,23 @@ func TestTranslatePolicy(t *testing.T) {
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:frontend"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-TO-app:frontend-TO-JUMP-TO-" +
util.IptablesAzureTargetSetsChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureTargetSetsChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
@ -1717,6 +1738,23 @@ func TestTranslatePolicy(t *testing.T) {
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:frontend"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-TO-app:frontend-TO-JUMP-TO-" +
util.IptablesAzureTargetSetsChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureTargetSetsChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
@ -1877,6 +1915,39 @@ func TestTranslatePolicy(t *testing.T) {
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:frontend"),
util.IptablesDstFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesNotFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("k0"),
util.IptablesDstFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("k1:v0"),
util.IptablesDstFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("k1:v1"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-TO-app:frontend-AND-!k0-AND-k1:v0-AND-k1:v1-TO-JUMP-TO-" +
util.IptablesAzureTargetSetsChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureTargetSetsChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
@ -1982,6 +2053,11 @@ func TestTranslatePolicy(t *testing.T) {
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:frontend"),
util.IptablesDstFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
@ -1992,11 +2068,6 @@ func TestTranslatePolicy(t *testing.T) {
util.IptablesMatchSetFlag,
util.GetHashedName("app:backend"),
util.IptablesSrcFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:frontend"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
@ -2024,6 +2095,23 @@ func TestTranslatePolicy(t *testing.T) {
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:frontend"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-TO-app:frontend-TO-JUMP-TO-" +
util.IptablesAzureTargetSetsChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureTargetSetsChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
@ -2095,23 +2183,6 @@ func TestTranslatePolicy(t *testing.T) {
nonKubeSystemEntries = []*iptm.IptEntry{
&iptm.IptEntry{
Chain: util.IptablesAzureIngressPortChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:backdoor"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAzureIngressFromChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-TO-app:backdoor-TO-JUMP-TO-" +
util.IptablesAzureIngressFromChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
@ -2198,47 +2269,46 @@ func TestTranslatePolicy(t *testing.T) {
expectedIptEntries = []*iptm.IptEntry{}
nonKubeSystemEntries = []*iptm.IptEntry{
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Chain: util.IptablesAzureIngressPortChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:frontend"),
util.IptablesDstFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:backend"),
util.IptablesSrcFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:frontend"),
util.IptablesDstFlag,
util.IptablesDstPortFlag,
"8000",
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-app:backend-TO-app:frontend",
"ALLOW-app:backend-AND-PORT-8000-TO-app:frontend",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressPortChain,
Specs: []string{
util.IptablesDstPortFlag,
"8000",
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:frontend"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAzureIngressFromChain,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-TO-PORT-8000-OF-app:frontend-TO-JUMP-TO-" +
util.IptablesAzureIngressFromChain,
"ALLOW-ALL-TO-app:frontend-TO-JUMP-TO-"+util.IptablesAzureTargetSetsChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Chain: util.IptablesAzureTargetSetsChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
@ -2417,6 +2487,27 @@ func TestTranslatePolicy(t *testing.T) {
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:k8s"),
util.IptablesDstFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("team:aks"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-TO-app:k8s-AND-team:aks-TO-JUMP-TO-"+util.IptablesAzureTargetSetsChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureTargetSetsChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
@ -2696,7 +2787,7 @@ func TestTranslatePolicy(t *testing.T) {
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-FROM-TCP-PORT-53-OF-app:frontend",
"ALLOW-ALL-TO-TCP-PORT-53-FROM-app:frontend",
},
},
&iptm.IptEntry{
@ -2716,7 +2807,7 @@ func TestTranslatePolicy(t *testing.T) {
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-FROM-UDP-PORT-53-OF-app:frontend",
"ALLOW-ALL-TO-UDP-PORT-53-FROM-app:frontend",
},
},
&iptm.IptEntry{
@ -2760,6 +2851,22 @@ func TestTranslatePolicy(t *testing.T) {
},
&iptm.IptEntry{
Chain: util.IptablesAzureEgressToChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:frontend"),
util.IptablesSrcFlag,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-FROM-app:frontend-TO-JUMP-TO-"+util.IptablesAzureTargetSetsChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureTargetSetsChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
@ -2900,72 +3007,80 @@ func TestTranslatePolicy(t *testing.T) {
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Chain: util.IptablesAzureIngressPortChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("role:db"),
util.IptablesDstFlag,
util.IptablesSFlag,
"172.17.0.0/16",
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("role:db"),
util.IptablesDstFlag,
util.IptablesProtFlag,
"TCP",
util.IptablesDstPortFlag,
"6379",
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-172.17.0.0/16-TO-role:db",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("ns-project:myproject"),
util.IptablesSrcFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("role:db"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ns-project:myproject-TO-role:db",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("role:frontend"),
util.IptablesSrcFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("role:db"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-role:frontend-TO-role:db",
"ALLOW-172.17.0.0/16-:-TCP-PORT-6379-TO-role:db",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressPortChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("role:db"),
util.IptablesDstFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("ns-project:myproject"),
util.IptablesSrcFlag,
util.IptablesProtFlag,
"TCP",
util.IptablesDstPortFlag,
"6379",
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ns-project:myproject-AND-TCP-PORT-6379-TO-role:db",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressPortChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("role:db"),
util.IptablesDstFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("role:frontend"),
util.IptablesSrcFlag,
util.IptablesProtFlag,
"TCP",
util.IptablesDstPortFlag,
"6379",
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-role:frontend-AND-TCP-PORT-6379-TO-role:db",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressPortChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
@ -2976,12 +3091,65 @@ func TestTranslatePolicy(t *testing.T) {
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-TO-TCP-PORT-6379-OF-role:db-TO-JUMP-TO-" +
util.IptablesAzureIngressFromChain,
"ALLOW-ALL-TO-role:db-TO-JUMP-TO-"+util.IptablesAzureIngressFromChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureIngressFromChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("role:db"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-TO-role:db-TO-JUMP-TO-"+util.IptablesAzureTargetSetsChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureEgressPortChain,
Specs: []string{
util.IptablesProtFlag,
"TCP",
util.IptablesDstPortFlag,
"5978",
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("role:db"),
util.IptablesSrcFlag,
util.IptablesDFlag,
"10.0.0.0/24",
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-10.0.0.0/24-:-TCP-PORT-5978-FROM-role:db",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureEgressPortChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("role:db"),
util.IptablesSrcFlag,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-FROM-role:db-TO-JUMP-TO-"+util.IptablesAzureTargetSetsChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureTargetSetsChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
@ -2997,46 +3165,7 @@ func TestTranslatePolicy(t *testing.T) {
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureEgressToChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("role:db"),
util.IptablesSrcFlag,
util.IptablesDFlag,
"10.0.0.0/24",
util.IptablesJumpFlag,
util.IptablesAccept,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-10.0.0.0/24-FROM-role:db",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureEgressPortChain,
Specs: []string{
util.IptablesProtFlag,
"TCP",
util.IptablesDstPortFlag,
"5978",
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("role:db"),
util.IptablesSrcFlag,
util.IptablesJumpFlag,
util.IptablesAzureEgressToChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-FROM-TCP-PORT-5978-OF-role:db-TO-JUMP-TO-" +
util.IptablesAzureEgressToChain,
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureEgressToChain,
Chain: util.IptablesAzureTargetSetsChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
@ -3311,11 +3440,11 @@ func TestDropPrecedenceOverAllow(t *testing.T) {
util.GetHashedName("testIn:pod-A"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesDrop,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"DROP-ALL-TO-app:test-AND-testIn:pod-A",
"ALLOW-ALL-TO-app:test-AND-testIn:pod-A-TO-JUMP-TO-AZURE-NPM-TARGET-SETS",
},
},
&iptm.IptEntry{
@ -3368,6 +3497,48 @@ func TestDropPrecedenceOverAllow(t *testing.T) {
},
&iptm.IptEntry{
Chain: util.IptablesAzureEgressToChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:test"),
util.IptablesSrcFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("testIn:pod-A"),
util.IptablesSrcFlag,
util.IptablesJumpFlag,
util.IptablesAzureTargetSetsChain,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"ALLOW-ALL-FROM-app:test-AND-testIn:pod-A-TO-JUMP-TO-AZURE-NPM-TARGET-SETS",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureTargetSetsChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("app:test"),
util.IptablesDstFlag,
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,
util.IptablesMatchSetFlag,
util.GetHashedName("testIn:pod-A"),
util.IptablesDstFlag,
util.IptablesJumpFlag,
util.IptablesDrop,
util.IptablesModuleFlag,
util.IptablesCommentModuleFlag,
util.IptablesCommentFlag,
"DROP-ALL-TO-app:test-AND-testIn:pod-A",
},
},
&iptm.IptEntry{
Chain: util.IptablesAzureTargetSetsChain,
Specs: []string{
util.IptablesModuleFlag,
util.IptablesSetModuleFlag,