mirror of
https://github.com/kyverno/policy-reporter.git
synced 2024-12-14 11:57:32 +00:00
Add static install manifests (#38)
* Add static install manifests * Remove unused value
This commit is contained in:
parent
af1285c08f
commit
ea0d079d01
17 changed files with 785 additions and 18 deletions
|
@ -1,5 +1,9 @@
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
# 1.6.1
|
||||||
|
* Add .global.fullnameOverride as new configuration for Policy Reporter Helm Chart
|
||||||
|
* Add static manifests to install Policy Reporter without Helm or Kustomize
|
||||||
|
|
||||||
# 1.6.0
|
# 1.6.0
|
||||||
* Internal refactoring
|
* Internal refactoring
|
||||||
* Unification of PolicyReports and ClusterPolicyReports processing, APIs still stable
|
* Unification of PolicyReports and ClusterPolicyReports processing, APIs still stable
|
||||||
|
|
|
@ -30,6 +30,10 @@ helm repo update
|
||||||
helm install policy-reporter policy-reporter/policy-reporter -n policy-reporter --create-namespace
|
helm install policy-reporter policy-reporter/policy-reporter -n policy-reporter --create-namespace
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Installation without Helm or Kustomize
|
||||||
|
|
||||||
|
To install Policy Reporter without Helm or Kustomize have a look at [manifests](https://github.com/fjogeleit/policy-reporter/tree/main/manifest).
|
||||||
|
|
||||||
## Policy Reporter UI
|
## Policy Reporter UI
|
||||||
|
|
||||||
You can use the Policy Reporter as standalone Application along with the optional UI SubChart.
|
You can use the Policy Reporter as standalone Application along with the optional UI SubChart.
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: monitoring
|
- name: monitoring
|
||||||
repository: ""
|
repository: ""
|
||||||
version: 1.1.0
|
version: 1.2.0
|
||||||
- name: ui
|
- name: ui
|
||||||
repository: ""
|
repository: ""
|
||||||
version: 1.5.0
|
version: 1.6.0
|
||||||
- name: kyvernoPlugin
|
- name: kyvernoPlugin
|
||||||
repository: ""
|
repository: ""
|
||||||
version: 0.1.1
|
version: 0.2.0
|
||||||
digest: sha256:a80a1c39cbd48116dca9d4d70da23d00456c4e523914a176355c36f0d73ecd1b
|
digest: sha256:c32c38e295ebe08651a81937858ba920212bd075aa7605189919c20820067e85
|
||||||
generated: "2021-05-12T10:32:58.510553+02:00"
|
generated: "2021-05-21T10:53:50.045598+02:00"
|
||||||
|
|
|
@ -5,19 +5,19 @@ description: |
|
||||||
It creates Prometheus Metrics and can send rule validation events to different targets like Loki, Elasticsearch, Slack or Discord
|
It creates Prometheus Metrics and can send rule validation events to different targets like Loki, Elasticsearch, Slack or Discord
|
||||||
|
|
||||||
type: application
|
type: application
|
||||||
version: 1.6.0
|
version: 1.6.1
|
||||||
appVersion: 1.6.0
|
appVersion: 1.6.0
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
- name: monitoring
|
- name: monitoring
|
||||||
condition: monitoring.enabled
|
condition: monitoring.enabled
|
||||||
repository: ""
|
repository: ""
|
||||||
version: "1.1.0"
|
version: "1.2.0"
|
||||||
- name: ui
|
- name: ui
|
||||||
condition: ui.enabled
|
condition: ui.enabled
|
||||||
repository: ""
|
repository: ""
|
||||||
version: "1.5.0"
|
version: "1.6.0"
|
||||||
- name: kyvernoPlugin
|
- name: kyvernoPlugin
|
||||||
condition: kyvernoPlugin.enabled
|
condition: kyvernoPlugin.enabled
|
||||||
repository: ""
|
repository: ""
|
||||||
version: "0.1.1"
|
version: "0.2.0"
|
||||||
|
|
|
@ -3,5 +3,5 @@ name: kyvernoPlugin
|
||||||
description: Policy Reporter Kyverno Plugin
|
description: Policy Reporter Kyverno Plugin
|
||||||
|
|
||||||
type: application
|
type: application
|
||||||
version: 0.1.1
|
version: 0.2.0
|
||||||
appVersion: 0.1.1
|
appVersion: 0.1.1
|
|
@ -5,7 +5,9 @@ If release name contains chart name it will be used as a full name.
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "kyvernoplugin.fullname" -}}
|
{{- define "kyvernoplugin.fullname" -}}
|
||||||
{{- $name := "kyverno-plugin" }}
|
{{- $name := "kyverno-plugin" }}
|
||||||
{{- if contains $name .Release.Name }}
|
{{- if .Values.global.fullnameOverride }}
|
||||||
|
{{- printf "%s-%s" .Values.global.fullnameOverride $name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- else if contains $name .Release.Name }}
|
||||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||||
|
|
|
@ -3,5 +3,5 @@ name: monitoring
|
||||||
description: Policy Reporter Monitoring with predefined ServiceMonitor and Grafana Dashboards
|
description: Policy Reporter Monitoring with predefined ServiceMonitor and Grafana Dashboards
|
||||||
|
|
||||||
type: application
|
type: application
|
||||||
version: 1.1.0
|
version: 1.2.0
|
||||||
appVersion: 0.0.0
|
appVersion: 0.0.0
|
||||||
|
|
|
@ -5,7 +5,9 @@ If release name contains chart name it will be used as a full name.
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "monitoring.fullname" -}}
|
{{- define "monitoring.fullname" -}}
|
||||||
{{- $name := .Chart.Name }}
|
{{- $name := .Chart.Name }}
|
||||||
{{- if contains $name .Release.Name }}
|
{{- if .Values.global.fullnameOverride }}
|
||||||
|
{{- printf "%s-%s" .Values.global.fullnameOverride $name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- else if contains $name .Release.Name }}
|
||||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||||
|
|
|
@ -3,5 +3,5 @@ name: ui
|
||||||
description: Policy Reporter UI
|
description: Policy Reporter UI
|
||||||
|
|
||||||
type: application
|
type: application
|
||||||
version: 1.5.0
|
version: 1.6.0
|
||||||
appVersion: 0.10.2
|
appVersion: 0.10.2
|
||||||
|
|
|
@ -5,7 +5,9 @@ If release name contains chart name it will be used as a full name.
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "ui.fullname" -}}
|
{{- define "ui.fullname" -}}
|
||||||
{{- $name := .Chart.Name }}
|
{{- $name := .Chart.Name }}
|
||||||
{{- if contains $name .Release.Name }}
|
{{- if .Values.global.fullnameOverride }}
|
||||||
|
{{- printf "%s-%s" .Values.global.fullnameOverride $name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- else if contains $name .Release.Name }}
|
||||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||||
|
@ -53,3 +55,23 @@ Create the name of the service account to use
|
||||||
{{- default "default" .Values.serviceAccount.name }}
|
{{- default "default" .Values.serviceAccount.name }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|
||||||
|
{{- define "ui.kyvernoPluginServiceName" -}}
|
||||||
|
{{- $name := "kyverno-plugin" }}
|
||||||
|
{{- if .Values.global.fullnameOverride }}
|
||||||
|
{{- printf "%s-%s" .Values.global.fullnameOverride $name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- else if contains $name .Release.Name }}
|
||||||
|
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- else }}
|
||||||
|
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- define "ui.policyReportServiceName" -}}
|
||||||
|
{{- $name := .Chart.Name }}
|
||||||
|
{{- if .Values.global.fullnameOverride }}
|
||||||
|
{{- .Values.global.fullnameOverride }}
|
||||||
|
{{- else }}
|
||||||
|
{{- .Values.global.backend }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
|
|
@ -42,10 +42,10 @@ spec:
|
||||||
{{- toYaml .Values.securityContext | nindent 12 }}
|
{{- toYaml .Values.securityContext | nindent 12 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
args:
|
args:
|
||||||
- -backend=http://{{ .Values.global.backend }}:{{ .Values.global.port }}
|
- -backend=http://{{ include "ui.policyReportServiceName" . }}:{{ .Values.global.port }}
|
||||||
- -log-size={{ .Values.log.size }}
|
- -log-size={{ .Values.log.size }}
|
||||||
{{- if or .Values.plugins.kyverno .Values.global.plugins.kyverno }}
|
{{- if or .Values.plugins.kyverno .Values.global.plugins.kyverno }}
|
||||||
- -kyverno-plugin=http://policy-reporter-kyverno-plugin:8080
|
- -kyverno-plugin=http://{{ include "ui.kyvernoPluginServiceName" . }}:8080
|
||||||
{{- end }}
|
{{- end }}
|
||||||
ports:
|
ports:
|
||||||
- name: http
|
- name: http
|
||||||
|
|
|
@ -9,7 +9,9 @@ If release name contains chart name it will be used as a full name.
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "policyreporter.fullname" -}}
|
{{- define "policyreporter.fullname" -}}
|
||||||
{{- $name := .Chart.Name }}
|
{{- $name := .Chart.Name }}
|
||||||
{{- if contains $name .Release.Name }}
|
{{- if .Values.global.fullnameOverride }}
|
||||||
|
{{- .Values.global.fullnameOverride }}
|
||||||
|
{{- else if contains $name .Release.Name }}
|
||||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||||
{{- else }}
|
{{- else }}
|
||||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||||
|
|
|
@ -92,6 +92,7 @@ global:
|
||||||
backend: policy-reporter
|
backend: policy-reporter
|
||||||
# Service Port number
|
# Service Port number
|
||||||
port: 8080
|
port: 8080
|
||||||
|
fullnameOverride: ""
|
||||||
|
|
||||||
# DEPRECTED - Can be removed
|
# DEPRECTED - Can be removed
|
||||||
# Policy Reporter watches now for both existing versions by default
|
# Policy Reporter watches now for both existing versions by default
|
||||||
|
|
50
manifest/README.md
Normal file
50
manifest/README.md
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
# Installation Manifests for Policy Reporter
|
||||||
|
|
||||||
|
You can use this manifests to install Policy Reporter without additional tools like Helm or Kustomize. The manifests are structured into three installations.
|
||||||
|
|
||||||
|
The installation requires a `policy-reporter` namespace. Because the installation includes RBAC resources which requires a serviceAccountName and a namespace configuration. The default namespace is `policy-reporter`. If this namespace will be created if it does not exist.
|
||||||
|
|
||||||
|
## Policy Reporter
|
||||||
|
|
||||||
|
The `policy-reporter` folder is the basic installation for Policy Reporter without the UI. Includes a basic Configuration Secret `policy-reporter-targets`, empty by default and the `http://policy-reporter:2112/metrics` Endpoint.
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl apply -f ./manifest/policy-reporter/install.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
## Default Policy Reporter UI
|
||||||
|
|
||||||
|
The `default-policy-reporter-ui` folder is the extended Policy Reporter and the default Policy Reporter UI installation.
|
||||||
|
|
||||||
|
Enables:
|
||||||
|
* Policy Reporter REST API (`http://policy-reporter:8080`)
|
||||||
|
* Policy Reporter UI Endpoint (`http://policy-reporter-ui:8080`).
|
||||||
|
|
||||||
|
Configures Policy Reporter UI as Target for Policy Reporter.
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl apply -f ./manifest/default-policy-reporter-ui/install.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
## Kyverno Policy Reporter UI
|
||||||
|
|
||||||
|
The `default-policy-reporter-ui` folder is the extended Policy Reporter, Policy Reporter Kyverno Plugin and the extended Policy Reporter UI installation.
|
||||||
|
|
||||||
|
Enables:
|
||||||
|
* Policy Reporter REST API (`http://policy-reporter:8080`)
|
||||||
|
* Policy Reporter Metrics API (`http://policy-reporter:2112/metrics`)
|
||||||
|
* Kyverno Plugin Rest API (`http://policy-reporter-kyverno-plugin:2112/policies`)
|
||||||
|
* Kyverno Plugin Metrics API (`http://policy-reporter-kyverno-plugin:2113/metrics`)
|
||||||
|
* Policy Reporter UI Endpoint (`http://policy-reporter-ui:8080`).
|
||||||
|
|
||||||
|
Configures Policy Reporter UI as Target for Policy Reporter and enables the Kyverno Dashboard.
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl apply -f ./manifest/kyverno-policy-reporter-ui/install.yaml
|
||||||
|
```
|
211
manifest/default-policy-reporter-ui/install.yaml
Normal file
211
manifest/default-policy-reporter-ui/install.yaml
Normal file
|
@ -0,0 +1,211 @@
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
spec: {}
|
||||||
|
status: {}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
rbac.authorization.k8s.io/aggregate-to-admin: "true"
|
||||||
|
name: policy-reporter
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- '*'
|
||||||
|
resources:
|
||||||
|
- policyreports
|
||||||
|
- policyreports/status
|
||||||
|
- clusterpolicyreports
|
||||||
|
- clusterpolicyreports/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
roleRef:
|
||||||
|
kind: ClusterRole
|
||||||
|
name: policy-reporter
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
subjects:
|
||||||
|
- kind: "ServiceAccount"
|
||||||
|
name: policy-reporter
|
||||||
|
namespace: policy-reporter
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter-targets
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
config.yaml: bG9raToKICBob3N0OiAiIgogIG1pbmltdW1Qcmlvcml0eTogIiIKICBza2lwRXhpc3RpbmdPblN0YXJ0dXA6IHRydWUKCmVsYXN0aWNzZWFyY2g6CiAgaG9zdDogIiIKICBpbmRleDogInBvbGljeS1yZXBvcnRlciIKICByb3RhdGlvbjogImRheWxpIgogIG1pbmltdW1Qcmlvcml0eTogIiIKICBza2lwRXhpc3RpbmdPblN0YXJ0dXA6IHRydWUKCnNsYWNrOgogIHdlYmhvb2s6ICIiCiAgbWluaW11bVByaW9yaXR5OiAiIgogIHNraXBFeGlzdGluZ09uU3RhcnR1cDogdHJ1ZQoKZGlzY29yZDoKICB3ZWJob29rOiAiIgogIG1pbmltdW1Qcmlvcml0eTogIiIKICBza2lwRXhpc3RpbmdPblN0YXJ0dXA6IHRydWUKCnRlYW1zOgogIHdlYmhvb2s6ICIiCiAgbWluaW11bVByaW9yaXR5OiAiIgogIHNraXBFeGlzdGluZ09uU3RhcnR1cDogdHJ1ZQoKdWk6CiAgaG9zdDogaHR0cDovL3BvbGljeS1yZXBvcnRlci11aTo4MDgwCiAgbWluaW11bVByaW9yaXR5OiAid2FybmluZyIKICBza2lwRXhpc3RpbmdPblN0YXJ0dXA6IHRydWUK
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter-ui
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter-ui
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 8080
|
||||||
|
targetPort: http
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: policy-reporter-ui
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 2112
|
||||||
|
targetPort: http
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
- port: 8080
|
||||||
|
targetPort: rest
|
||||||
|
protocol: TCP
|
||||||
|
name: rest
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter-ui
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter-ui
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: policy-reporter-ui
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter-ui
|
||||||
|
spec:
|
||||||
|
automountServiceAccountToken: false
|
||||||
|
containers:
|
||||||
|
- name: ui
|
||||||
|
image: "fjogeleit/policy-reporter-ui:0.10.2"
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- all
|
||||||
|
privileged: false
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1234
|
||||||
|
args:
|
||||||
|
- -backend=http://policy-reporter:8080
|
||||||
|
- -log-size=200
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: http
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: http
|
||||||
|
resources:
|
||||||
|
{}
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
app.kubernetes.io/instance: policy-reporter
|
||||||
|
spec:
|
||||||
|
serviceAccountName: policy-reporter
|
||||||
|
automountServiceAccountToken: true
|
||||||
|
containers:
|
||||||
|
- name: policy-reporter
|
||||||
|
image: "fjogeleit/policy-reporter:1.6.0"
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- all
|
||||||
|
privileged: false
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1234
|
||||||
|
args:
|
||||||
|
- --config=/app/config.yaml
|
||||||
|
- --apiPort=8080
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 2112
|
||||||
|
protocol: TCP
|
||||||
|
- name: rest
|
||||||
|
containerPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /metrics
|
||||||
|
port: http
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /metrics
|
||||||
|
port: http
|
||||||
|
resources:
|
||||||
|
{}
|
||||||
|
volumeMounts:
|
||||||
|
- name: config-file
|
||||||
|
mountPath: /app/config.yaml
|
||||||
|
subPath: config.yaml
|
||||||
|
env:
|
||||||
|
- name: NAMESPACE
|
||||||
|
value: policy-reporter
|
||||||
|
volumes:
|
||||||
|
- name: config-file
|
||||||
|
secret:
|
||||||
|
secretName: policy-reporter-targets
|
||||||
|
optional: true
|
333
manifest/kyverno-policy-reporter-ui/install.yaml
Normal file
333
manifest/kyverno-policy-reporter-ui/install.yaml
Normal file
|
@ -0,0 +1,333 @@
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
spec: {}
|
||||||
|
status: {}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
rbac.authorization.k8s.io/aggregate-to-admin: "true"
|
||||||
|
name: policy-reporter
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- '*'
|
||||||
|
resources:
|
||||||
|
- policyreports
|
||||||
|
- policyreports/status
|
||||||
|
- clusterpolicyreports
|
||||||
|
- clusterpolicyreports/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
roleRef:
|
||||||
|
kind: ClusterRole
|
||||||
|
name: policy-reporter
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
subjects:
|
||||||
|
- kind: "ServiceAccount"
|
||||||
|
name: policy-reporter
|
||||||
|
namespace: policy-reporter
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter-kyverno-plugin
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: kyverno-plugin
|
||||||
|
app.kubernetes.io/instance: policy-reporter
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter-targets
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
helm.sh/chart: policy-reporter-1.6.0
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
app.kubernetes.io/instance: policy-reporter
|
||||||
|
app.kubernetes.io/version: "1.6.0"
|
||||||
|
app.kubernetes.io/managed-by: Helm
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
config.yaml: bG9raToKICBob3N0OiAiIgogIG1pbmltdW1Qcmlvcml0eTogIiIKICBza2lwRXhpc3RpbmdPblN0YXJ0dXA6IHRydWUKCmVsYXN0aWNzZWFyY2g6CiAgaG9zdDogIiIKICBpbmRleDogInBvbGljeS1yZXBvcnRlciIKICByb3RhdGlvbjogImRheWxpIgogIG1pbmltdW1Qcmlvcml0eTogIiIKICBza2lwRXhpc3RpbmdPblN0YXJ0dXA6IHRydWUKCnNsYWNrOgogIHdlYmhvb2s6ICIiCiAgbWluaW11bVByaW9yaXR5OiAiIgogIHNraXBFeGlzdGluZ09uU3RhcnR1cDogdHJ1ZQoKZGlzY29yZDoKICB3ZWJob29rOiAiIgogIG1pbmltdW1Qcmlvcml0eTogIiIKICBza2lwRXhpc3RpbmdPblN0YXJ0dXA6IHRydWUKCnRlYW1zOgogIHdlYmhvb2s6ICIiCiAgbWluaW11bVByaW9yaXR5OiAiIgogIHNraXBFeGlzdGluZ09uU3RhcnR1cDogdHJ1ZQoKdWk6CiAgaG9zdDogaHR0cDovL3BvbGljeS1yZXBvcnRlci11aTo4MDgwCiAgbWluaW11bVByaW9yaXR5OiAid2FybmluZyIKICBza2lwRXhpc3RpbmdPblN0YXJ0dXA6IHRydWUK
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
rbac.authorization.k8s.io/aggregate-to-admin: "true"
|
||||||
|
name: policy-reporter-kyverno-plugin
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- '*'
|
||||||
|
resources:
|
||||||
|
- policies
|
||||||
|
- policies/status
|
||||||
|
- clusterpolicies
|
||||||
|
- clusterpolicies/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter-kyverno-plugin
|
||||||
|
roleRef:
|
||||||
|
kind: ClusterRole
|
||||||
|
name: policy-reporter-kyverno-plugin
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
subjects:
|
||||||
|
- kind: "ServiceAccount"
|
||||||
|
name: policy-reporter-kyverno-plugin
|
||||||
|
namespace: policy-reporter
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter-kyverno-plugin
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: kyverno-plugin
|
||||||
|
app.kubernetes.io/instance: policy-reporter
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 2113
|
||||||
|
targetPort: http
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
- port: 8080
|
||||||
|
targetPort: rest
|
||||||
|
protocol: TCP
|
||||||
|
name: rest
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: kyverno-plugin
|
||||||
|
app.kubernetes.io/instance: policy-reporter
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter-ui
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter-ui
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 8080
|
||||||
|
targetPort: http
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: policy-reporter-ui
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 2112
|
||||||
|
targetPort: http
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
- port: 8080
|
||||||
|
targetPort: rest
|
||||||
|
protocol: TCP
|
||||||
|
name: rest
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter-kyverno-plugin
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: kyverno-plugin
|
||||||
|
app.kubernetes.io/instance: policy-reporter
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: kyverno-plugin
|
||||||
|
app.kubernetes.io/instance: policy-reporter
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: kyverno-plugin
|
||||||
|
app.kubernetes.io/instance: policy-reporter
|
||||||
|
spec:
|
||||||
|
serviceAccountName: policy-reporter-kyverno-plugin
|
||||||
|
automountServiceAccountToken: true
|
||||||
|
containers:
|
||||||
|
- name: "kyverno-plugin"
|
||||||
|
image: "fjogeleit/policy-reporter-kyverno-plugin:0.1.1"
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- all
|
||||||
|
privileged: false
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1234
|
||||||
|
args:
|
||||||
|
- --apiPort=8080
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 2113
|
||||||
|
protocol: TCP
|
||||||
|
- name: rest
|
||||||
|
containerPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /policies
|
||||||
|
port: rest
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /policies
|
||||||
|
port: rest
|
||||||
|
resources:
|
||||||
|
{}
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter-ui
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter-ui
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: policy-reporter-ui
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter-ui
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- name: ui
|
||||||
|
image: "fjogeleit/policy-reporter-ui:0.10.2"
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- all
|
||||||
|
privileged: false
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1234
|
||||||
|
args:
|
||||||
|
- -backend=http://policy-reporter:8080
|
||||||
|
- -log-size=200
|
||||||
|
- -kyverno-plugin=http://policy-reporter-kyverno-plugin:8080
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: http
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /
|
||||||
|
port: http
|
||||||
|
resources:
|
||||||
|
{}
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
spec:
|
||||||
|
serviceAccountName: policy-reporter
|
||||||
|
automountServiceAccountToken: true
|
||||||
|
containers:
|
||||||
|
- name: policy-reporter
|
||||||
|
image: "fjogeleit/policy-reporter:1.6.0"
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- all
|
||||||
|
privileged: false
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1234
|
||||||
|
args:
|
||||||
|
- --config=/app/config.yaml
|
||||||
|
- --apiPort=8080
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 2112
|
||||||
|
protocol: TCP
|
||||||
|
- name: rest
|
||||||
|
containerPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /metrics
|
||||||
|
port: http
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /metrics
|
||||||
|
port: http
|
||||||
|
resources:
|
||||||
|
{}
|
||||||
|
volumeMounts:
|
||||||
|
- name: config-file
|
||||||
|
mountPath: /app/config.yaml
|
||||||
|
subPath: config.yaml
|
||||||
|
env:
|
||||||
|
- name: NAMESPACE
|
||||||
|
value: policy-reporter
|
||||||
|
volumes:
|
||||||
|
- name: config-file
|
||||||
|
secret:
|
||||||
|
secretName: policy-reporter-targets
|
||||||
|
optional: true
|
136
manifest/policy-reporter/install.yaml
Normal file
136
manifest/policy-reporter/install.yaml
Normal file
|
@ -0,0 +1,136 @@
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
spec: {}
|
||||||
|
status: {}
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ServiceAccount
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter-targets
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
config.yaml: bG9raToKICBob3N0OiAiIgogIG1pbmltdW1Qcmlvcml0eTogIiIKICBza2lwRXhpc3RpbmdPblN0YXJ0dXA6IHRydWUKCmVsYXN0aWNzZWFyY2g6CiAgaG9zdDogIiIKICBpbmRleDogInBvbGljeS1yZXBvcnRlciIKICByb3RhdGlvbjogImRheWxpIgogIG1pbmltdW1Qcmlvcml0eTogIiIKICBza2lwRXhpc3RpbmdPblN0YXJ0dXA6IHRydWUKCnNsYWNrOgogIHdlYmhvb2s6ICIiCiAgbWluaW11bVByaW9yaXR5OiAiIgogIHNraXBFeGlzdGluZ09uU3RhcnR1cDogdHJ1ZQoKZGlzY29yZDoKICB3ZWJob29rOiAiIgogIG1pbmltdW1Qcmlvcml0eTogIiIKICBza2lwRXhpc3RpbmdPblN0YXJ0dXA6IHRydWUKCnRlYW1zOgogIHdlYmhvb2s6ICIiCiAgbWluaW11bVByaW9yaXR5OiAiIgogIHNraXBFeGlzdGluZ09uU3RhcnR1cDogdHJ1ZQoKdWk6CiAgaG9zdDogCiAgbWluaW11bVByaW9yaXR5OiAid2FybmluZyIKICBza2lwRXhpc3RpbmdPblN0YXJ0dXA6IHRydWUK
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRole
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
rbac.authorization.k8s.io/aggregate-to-admin: "true"
|
||||||
|
name: policy-reporter
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- '*'
|
||||||
|
resources:
|
||||||
|
- policyreports
|
||||||
|
- policyreports/status
|
||||||
|
- clusterpolicyreports
|
||||||
|
- clusterpolicyreports/status
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: ClusterRoleBinding
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
roleRef:
|
||||||
|
kind: ClusterRole
|
||||||
|
name: policy-reporter
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
subjects:
|
||||||
|
- kind: "ServiceAccount"
|
||||||
|
name: policy-reporter
|
||||||
|
namespace: policy-reporter
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 2112
|
||||||
|
targetPort: http
|
||||||
|
protocol: TCP
|
||||||
|
name: http
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: policy-reporter
|
||||||
|
namespace: policy-reporter
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: policy-reporter
|
||||||
|
spec:
|
||||||
|
serviceAccountName: policy-reporter
|
||||||
|
automountServiceAccountToken: true
|
||||||
|
containers:
|
||||||
|
- name: policy-reporter
|
||||||
|
image: "fjogeleit/policy-reporter:1.6.0"
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
securityContext:
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
capabilities:
|
||||||
|
drop:
|
||||||
|
- all
|
||||||
|
privileged: false
|
||||||
|
readOnlyRootFilesystem: true
|
||||||
|
runAsNonRoot: true
|
||||||
|
runAsUser: 1234
|
||||||
|
args:
|
||||||
|
- --config=/app/config.yaml
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 2112
|
||||||
|
protocol: TCP
|
||||||
|
livenessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /metrics
|
||||||
|
port: http
|
||||||
|
readinessProbe:
|
||||||
|
httpGet:
|
||||||
|
path: /metrics
|
||||||
|
port: http
|
||||||
|
resources:
|
||||||
|
{}
|
||||||
|
volumeMounts:
|
||||||
|
- name: config-file
|
||||||
|
mountPath: /app/config.yaml
|
||||||
|
subPath: config.yaml
|
||||||
|
env:
|
||||||
|
- name: NAMESPACE
|
||||||
|
value: policy-reporter
|
||||||
|
volumes:
|
||||||
|
- name: config-file
|
||||||
|
secret:
|
||||||
|
secretName: policy-reporter-targets
|
||||||
|
optional: true
|
Loading…
Reference in a new issue