UNCLASSIFIED

Commit 5126d320 authored by Micah Nagel's avatar Micah Nagel 💰
Browse files

Network Policies

parent dd8cdf9a
...@@ -4,6 +4,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ...@@ -4,6 +4,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
--- ---
## [0.1.6-bb.1] - 2021-06-01
### Changed
- Moved tests to gluon library
### Added
- Default NetworkPolicies added
## [0.1.6-bb.0] - 2021-05-11 ## [0.1.6-bb.0] - 2021-05-11
### Changed ### Changed
- Migrated Cypress tests to Helm tests - Migrated Cypress tests to Helm tests
......
...@@ -5,8 +5,8 @@ dependencies: ...@@ -5,8 +5,8 @@ dependencies:
- name: minio-instance - name: minio-instance
repository: file://./deps/minio repository: file://./deps/minio
version: 2.0.9-bb.9 version: 2.0.9-bb.9
- name: bb-test-lib - name: gluon
repository: oci://registry.dso.mil/platform-one/big-bang/pipeline-templates/pipeline-templates repository: oci://registry.dso.mil/platform-one/big-bang/apps/library-charts/gluon
version: 0.5.2 version: 0.1.1
digest: sha256:0a15fa5bcd2dafdc621740c7cd177210b2c875337f32fe78755af8806bba735a digest: sha256:d5a1399418dd0d20db43fc884acd0ac51b1f8a3272d81d1e2e4650092ec25d87
generated: "2021-05-13T10:38:37.154607-06:00" generated: "2021-05-28T11:12:03.789056-06:00"
---
apiVersion: v2 apiVersion: v2
name: mattermost name: mattermost
type: application type: application
version: "0.1.6-bb.0" version: "0.1.6-bb.1"
appVersion: "5.34.2" appVersion: "5.34.2"
description: "Deployment of mattermost" description: "Deployment of mattermost"
keywords: keywords:
- Mattermost - Mattermost
- Instance - Instance
kubeVersion: ">=1.12.0-0" kubeVersion: ">=1.12.0-0"
dependencies: dependencies:
- name: postgresql - name: postgresql
version: 10.3.5 version: 10.3.5
...@@ -21,6 +19,6 @@ dependencies: ...@@ -21,6 +19,6 @@ dependencies:
alias: minio alias: minio
condition: minio.install condition: minio.install
repository: file://./deps/minio repository: file://./deps/minio
- name: bb-test-lib - name: gluon
version: 0.5.2 version: 0.1.1
repository: "oci://registry.dso.mil/platform-one/big-bang/pipeline-templates/pipeline-templates" repository: oci://registry.dso.mil/platform-one/big-bang/apps/library-charts/gluon
{{- if and .Values.networkPolicies.enabled .Values.elasticsearch.enabled }}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-elastic-egress
namespace: {{ .Release.Namespace }}
spec:
podSelector:
matchLabels:
app: mattermost
policyTypes:
- Egress
egress:
- to:
- namespaceSelector:
matchLabels:
app.kubernetes.io/name: logging
podSelector:
matchLabels:
common.k8s.elastic.co/type: elasticsearch
ports:
- port: 9200
protocol: TCP
{{- end }}
{{- if and .Values.networkPolicies.enabled (not .Values.minio.install) }}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-external-filestore-egress
namespace: {{ .Release.Namespace }}
spec:
podSelector:
matchLabels:
app: mattermost
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 0.0.0.0/0
# ONLY Block requests to AWS metadata IP
except:
- 169.254.169.254/32
{{- end }}
{{- if and .Values.networkPolicies.enabled (not .Values.postgresql.install) }}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-external-postgres-egress
namespace: {{ .Release.Namespace }}
spec:
podSelector:
matchLabels:
app: mattermost
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 0.0.0.0/0
# ONLY Block requests to AWS metadata IP
except:
- 169.254.169.254/32
{{- end }}
{{- if .Values.networkPolicies.enabled }}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-in-ns
namespace: {{ .Release.Namespace }}
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
ingress:
- from:
- podSelector: {}
egress:
- to:
- podSelector: {}
{{- end }}
{{- if and .Values.networkPolicies.enabled .Values.istio.enabled }}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-istio
namespace: {{ .Release.Namespace }}
spec:
podSelector:
matchLabels:
app: mattermost
policyTypes:
- Ingress
- Egress
ingress:
- from:
- namespaceSelector:
matchLabels:
app.kubernetes.io/name: istio-controlplane
podSelector:
matchLabels:
{{- toYaml .Values.networkPolicies.ingressLabels | nindent 10}}
ports:
- port: 8065
protocol: TCP
egress:
- to:
- namespaceSelector:
matchLabels:
app.kubernetes.io/name: istio-controlplane
podSelector:
matchLabels:
istio: pilot
{{- end }}
{{- if and .Values.networkPolicies.enabled .Values.monitoring.enabled .Values.enterprise.enabled }}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-monitoring-ingress
namespace: {{ .Release.Namespace }}
spec:
podSelector:
matchLabels:
app: mattermost
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
app.kubernetes.io/name: monitoring
podSelector:
matchLabels:
app: prometheus
ports:
- port: 8067
protocol: TCP
{{- end }}
{{- if and .Values.networkPolicies.enabled .Values.sso.enabled }}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-sso-egress
namespace: {{ .Release.Namespace }}
spec:
podSelector:
matchLabels:
app: mattermost
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 0.0.0.0/0
# ONLY Block requests to AWS metadata IP
except:
- 169.254.169.254/32
{{- end }}
{{- $bbtests := .Values.bbtests | default dict -}}
{{- $cypress := $bbtests.cypress | default dict -}}
{{- $enabled := (hasKey $bbtests "enabled") -}}
{{- $artifacts := (hasKey $cypress "artifacts") -}}
{{- if and $enabled $artifacts }}
{{- if and .Values.networkPolicies.enabled .Values.bbtests.enabled .Values.bbtests.cypress.artifacts }}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-test-egress
namespace: {{ .Release.Namespace }}
spec:
podSelector:
matchLabels:
helm-test: enabled
policyTypes:
- Egress
egress:
- to:
- ipBlock:
cidr: 0.0.0.0/0
# ONLY Block requests to AWS metadata IP
except:
- 169.254.169.254/32
{{- end }}
{{- end }}
{{- if .Values.networkPolicies.enabled }}
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny
namespace: {{ .Release.Namespace }}
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
# Deny all ingress
ingress: []
# Deny egress by default
# Allow access to DNS and Kube API
egress:
- to:
- namespaceSelector: {}
ports:
- port: 53
protocol: UDP
{{- end }}
{{- include "bb-test-lib.cypress-configmap.overrides" (list . "mattermost-test.cypress-configmap") }} {{- include "gluon.tests.cypress-configmap.overrides" (list . "mattermost-test.cypress-configmap") }}
{{- define "mattermost-test.cypress-configmap" }} {{- define "mattermost-test.cypress-configmap" }}
metadata: metadata:
labels: labels:
{{ include "mattermost.labels" . | nindent 4 }} {{ include "mattermost.labels" . | nindent 4 }}
{{- end }} {{- end }}
--- ---
{{- include "bb-test-lib.cypress-runner.overrides" (list . "mattermost-test.cypress-runner") -}} {{- include "gluon.tests.cypress-runner.overrides" (list . "mattermost-test.cypress-runner") -}}
{{- define "mattermost-test.cypress-runner" -}} {{- define "mattermost-test.cypress-runner" -}}
metadata: metadata:
labels: labels:
......
...@@ -18,6 +18,12 @@ monitoring: ...@@ -18,6 +18,12 @@ monitoring:
enabled: false enabled: false
namespace: monitoring namespace: monitoring
networkPolicies:
enabled: false
ingressLabels:
app: istio-ingressgateway
istio: ingressgateway
sso: sso:
enabled: false enabled: false
client_id: platform1_a8604cc9-f5e9-4656-802d-d05624370245_bb8-mattermost client_id: platform1_a8604cc9-f5e9-4656-802d-d05624370245_bb8-mattermost
......
...@@ -4,7 +4,11 @@ minio: ...@@ -4,7 +4,11 @@ minio:
postgresql: postgresql:
install: true install: true
networkPolicies:
enabled: true
bbtests: bbtests:
enabled: true
cypress: cypress:
artifacts: true artifacts: true
envs: envs:
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment