Skip to content

Commit af0e3f8

Browse files
Merge pull request #586 from vshn/hotfix/stackgres_netpol
Add missing network policy for stackgres operator
2 parents 9e029a0 + d363b97 commit af0e3f8

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed

pkg/comp-functions/functions/vshnpostgres/postgresql_deploy.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,19 @@ func DeployPostgreSQL(ctx context.Context, comp *vshnv1.VSHNPostgreSQL, svc *run
100100
return runtime.NewWarningResult(fmt.Errorf("cannot create copyJob object: %w", err).Error())
101101
}
102102
}
103+
104+
l.Info("Create NetworkPolicy for Stackgres Operator access")
105+
106+
sgNamespace := svc.Config.Data["sgNamespace"]
107+
108+
if sgNamespace == "" {
109+
return runtime.NewFatalResult(fmt.Errorf("\"sgNamespace\" parameter missing or empty. Ensure it's set correctly"))
110+
}
111+
112+
err = common.CustomCreateNetworkPolicy([]string{sgNamespace}, comp.GetInstanceNamespace(), "allow-stackgres-operator", comp.GetName()+"-sg-netpol", false, svc)
113+
if err != nil {
114+
return runtime.NewWarningResult(fmt.Errorf("cannot create NetworkPolicy object: %w", err).Error())
115+
}
103116
return nil
104117
}
105118

pkg/comp-functions/functions/vshnpostgres/postgresql_deploy_test.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"github.com/vshn/appcat/v4/pkg/comp-functions/runtime"
1818
batchv1 "k8s.io/api/batch/v1"
1919
corev1 "k8s.io/api/core/v1"
20+
netv1 "k8s.io/api/networking/v1"
2021
rbacv1 "k8s.io/api/rbac/v1"
2122
)
2223

@@ -93,6 +94,11 @@ func TestPostgreSqlDeploy(t *testing.T) {
9394
assert.Equal(t, comp.GetName(), podMonitor.Spec.Selector.MatchLabels["stackgres.io/cluster-name"])
9495
assert.Equal(t, "pgexporter", podMonitor.Spec.PodMetricsEndpoints[0].Port)
9596

97+
netPol := &netv1.NetworkPolicy{}
98+
assert.NoError(t, svc.GetDesiredKubeObject(netPol, comp.GetName()+"-sg-netpol"))
99+
assert.Contains(t, netPol.Spec.Ingress[0].From[0].NamespaceSelector.MatchLabels, "kubernetes.io/metadata.name")
100+
assert.Equal(t, netPol.Spec.Ingress[0].From[0].NamespaceSelector.MatchLabels["kubernetes.io/metadata.name"], svc.Config.Data["sgNamespace"])
101+
96102
}
97103

98104
func TestPostgreSqlDeployWithPgConfig(t *testing.T) {

0 commit comments

Comments
 (0)