eindelijk weer eens een push

This commit is contained in:
allard
2026-05-31 16:07:30 +02:00
parent 01cff8e165
commit ff21c258e0
2747 changed files with 302316 additions and 131101 deletions
+2 -2
View File
@@ -1,12 +1,12 @@
#Installatie
kubectl apply -f deptrack.yaml
Opletten dat de API-URL klopt met VIMEXX DNS in stellingen: deptracka.alldcs.nl
Opletten dat de API-URL klopt met VIMEXX DNS in stellingen: deptracka.allarddcs.nl
Dit kun je controleren door te "pingen".
In de yaml moet de setting staan:
- name: API_BASE_URL
value: 'https://deptracka-dev.alldcs.nl'
value: 'https://deptracka-dev.allarddcs.nl'
#configuratie tekton:
+68
View File
@@ -0,0 +1,68 @@
apiVersion: v1
kind: PersistentVolume
metadata:
name: deptrack-data-pv
spec:
storageClassName: ""
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
mountOptions:
- hard
- nfsvers=4.1
nfs:
server: 192.168.2.111
path: /mnt/nfs_share/dev/deptrack/data
readOnly: false
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: deptrack-data-pvc
namespace: deptrack
spec:
storageClassName: ""
volumeName: deptrack-data-pv
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: deptrack-config-pv
spec:
storageClassName: ""
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
mountOptions:
- hard
- nfsvers=4.1
nfs:
server: 192.168.2.111
path: /mnt/nfs_share/dev/deptrack/config
readOnly: false
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: deptrack-config-pvc
namespace: deptrack
spec:
storageClassName: ""
volumeName: deptrack-config-pv
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 1Gi
+179
View File
@@ -0,0 +1,179 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: deptrack-apiserver
namespace: deptrack
labels:
app: deptrack-apiserver
spec:
replicas: 1
selector:
matchLabels:
app: deptrack-apiserver
template:
metadata:
labels:
app: deptrack-apiserver
spec:
containers:
- name: deptrack-apiserver
image: dependencytrack/apiserver
ports:
- containerPort: 8080
env:
- name: ALPINE_DATABASE_MODE
value: 'external'
- name: ALPINE_DATABASE_URL
value: 'jdbc:postgresql://postgres13.deptrack.svc.cluster.local:5432/deptrack'
- name: ALPINE_DATABASE_DRIVER
value: 'org.postgresql.Driver'
- name: ALPINE_DATABASE_USERNAME
value: 'deptrack'
- name: ALPINE_DATABASE_PASSWORD
value: 'deptrack'
- name: ALPINE_DATABASE_POOL_ENABLED
value: 'true'
- name: ALPINE_DATABASE_POOL_MAX_SIZE
value: '20'
- name: ALPINE_DATABASE_POOL_MIN_IDLE
value: '10'
- name: ALPINE_DATABASE_POOL_IDLE_TIMEOUT
value: '300000'
- name: ALPINE_DATABASE_POOL_MAX_LIFETIME
value: '600000'
volumeMounts:
- mountPath: /data
name: data
volumes:
- name: data
persistentVolumeClaim:
claimName: deptrack-data-pvc
---
apiVersion: v1
kind: Service
metadata:
name: deptrack-apiserver
namespace: deptrack
labels:
name: deptrack-apiserver
spec:
type: ClusterIP
ports:
- port: 8080
name: deptrack-apiserver
selector:
app: deptrack-apiserver
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: deptrack-frontend
namespace: deptrack
labels:
app: deptrack-frontend
spec:
replicas: 1
selector:
matchLabels:
app: deptrack-frontend
template:
metadata:
labels:
app: deptrack-frontend
spec:
containers:
- name: deptrack-frontend
image: dependencytrack/frontend
ports:
- containerPort: 8080
env:
- name: API_BASE_URL
value: 'https://deptracka-dev.allarddcs.nl'
volumeMounts:
- name: config
mountPath: /opt/owasp/dependency-track-frontend/static/config.json
subPath: config.json
volumes:
- name: config
persistentVolumeClaim:
claimName: deptrack-config-pvc
---
apiVersion: v1
kind: Service
metadata:
name: deptrack-frontend
namespace: deptrack
labels:
name: deptrack-frontend
spec:
type: ClusterIP
ports:
- port: 8080
name: deptrack-frontend
selector:
app: deptrack-frontend
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: deptrackf-http
namespace: deptrack
spec:
entryPoints:
- web
routes:
- match: Host(`deptrackf-dev.allarddcs.nl`)
kind: Rule
services:
- name: deptrack-frontend
port: 8080
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: deptracka-http
namespace: deptrack
spec:
entryPoints:
- web
routes:
- match: Host(`deptracka-dev.allarddcs.nl`)
kind: Rule
services:
- name: deptrack-apiserver
port: 8080
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: deptrackf-tls
namespace: deptrack
spec:
entryPoints:
- websecure
routes:
- match: Host(`deptrackf-dev.allarddcs.nl`)
kind: Rule
services:
- name: deptrack-frontend
port: 8080
tls:
certResolver: letsencrypt
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: deptracka-tls
namespace: deptrack
spec:
entryPoints:
- websecure
routes:
- match: Host(`deptracka-dev.allarddcs.nl`)
kind: Rule
services:
- name: deptrack-apiserver
port: 8080
tls:
certResolver: letsencrypt
-74
View File
@@ -1,8 +1,3 @@
apiVersion: v1
kind: Namespace
metadata:
name: deptrack
---
apiVersion: apps/v1
kind: Deployment
metadata:
@@ -114,7 +109,6 @@ spec:
echo "Init container starting..."
# Make sure temporary mount exists
mkdir -p /mnt/config
# Copy config.json from image to PVC if it doesn't exist
if [ ! -f /mnt/config/config.json ]; then
echo "Seeding config.json from container image..."
@@ -221,72 +215,4 @@ spec:
port: 8080
tls:
certResolver: letsencrypt
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: deptrack-data-pv
spec:
storageClassName: ""
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
mountOptions:
- hard
- nfsvers=4.1
nfs:
server: 192.168.2.110
path: /mnt/nfs_share/deptrack/data
readOnly: false
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: deptrack-data-pvc
namespace: deptrack
spec:
storageClassName: ""
volumeName: deptrack-data-pv
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: deptrack-config-pv
spec:
storageClassName: ""
capacity:
storage: 1Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
mountOptions:
- hard
- nfsvers=4.1
nfs:
server: 192.168.2.110
path: /mnt/nfs_share/deptrack/config
readOnly: false
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: deptrack-config-pvc
namespace: deptrack
spec:
storageClassName: ""
volumeName: deptrack-config-pv
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 1Gi
+88
View File
@@ -0,0 +1,88 @@
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: postgres13
namespace: deptrack
spec:
serviceName: postgres13
replicas: 1
selector:
matchLabels:
app: postgres13
template:
metadata:
labels:
app: postgres13
spec:
containers:
- name: postgres13
image: postgres:13
# command: ["sh"]
# args: ["-c", "while true; do echo $(date -u) >> /tmp/run.log; sleep 5; done"]
ports:
- containerPort: 5432
env:
- name: POSTGRES_DB
value: deptrack
- name: POSTGRES_USER
value: deptrack
- name: POSTGRES_PASSWORD
value: deptrack
volumeMounts:
- mountPath: /var/lib/postgresql/data
name: postgres
volumes:
- name: postgres
persistentVolumeClaim:
claimName: deptrack-postgres-pvc
nodeSelector:
node.kubernetes.io/microk8s-worker: microk8s-worker
---
apiVersion: v1
kind: Service
metadata:
name: postgres13
namespace: deptrack
labels:
name: postgres13
spec:
type: ClusterIP
ports:
- port: 5432
name: postgres
selector:
app: postgres13
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: deptrack-postgres-pv
spec:
storageClassName: ""
capacity:
storage: 2Gi
accessModes:
- ReadWriteMany
persistentVolumeReclaimPolicy: Retain
mountOptions:
- hard
- nfsvers=4.1
nfs:
server: 192.168.2.111
path: /mnt/nfs_share/dev/deptrack/postgres
readOnly: false
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: deptrack-postgres-pvc
namespace: deptrack
spec:
storageClassName: ""
volumeName: deptrack-postgres-pv
accessModes:
- ReadWriteMany
volumeMode: Filesystem
resources:
requests:
storage: 2Gi
+250
View File
@@ -0,0 +1,250 @@
---
common:
nameOverride: ""
fullnameOverride: ""
image:
registry: docker.io
pullSecrets: []
secretKey:
# -- Whether the chart should generate a secret key upon deployment.
createSecret: false
# -- Use the secret key defined in an existing secret.
existingSecretName: ""
serviceAccount:
# -- Whether the chart should generate a serviceAccount
create: true
annotations: {}
# -- Use the name of the name of the release by default, or specify a custom name.
name: ""
# -- Whether the serviceAccount should mount the token.
automount: false
# -- Whether service links should be added to the Pods
enableServiceLinks: true
apiServer:
# -- The type of deployment. Can be either Deployment or StatefulSet.
deploymentType: StatefulSet
annotations: {}
metrics:
# -- Enable Prometheus scraping annotations on pods
enabled: true
image:
# -- Override common.image.registry for the API server.
registry: ""
repository: dependencytrack/apiserver
# -- Can be a tag name such as "latest", or an image digest
# prefixed with "sha256:". Defaults to AppVersion of the chart.
tag: ""
pullPolicy: IfNotPresent
command: []
args: []
resources:
requests:
cpu: "2"
memory: 5Gi
limits:
memory: 5Gi
# -- Security context of the Pod.
# Aids in preventing permission issues with persistent volumes.
# For OpenShift, explicitly set this to null.
podSecurityContext:
fsGroup: 1000
# -- Security context of the Container.
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
runAsNonRoot: true
readOnlyRootFilesystem: true
seccompProfile:
type: RuntimeDefault
persistentVolume:
enabled: false
className: ""
size: 5Gi
extraEnv:
[]
# - name: "ALPINE_DATABASE_PASSWORD"
# valueFrom:
# secretKeyRef:
# key: db-password
# name: dependencytrack-secrets
# - name: ALPINE_DATABASE_MODE
# value: "external"
extraEnvFrom: []
# -- Additional containers to deploy. Supports templating.
extraContainers: []
extraPodLabels: {}
tolerations: []
probes:
startup:
path: "/health/started"
failureThreshold: 30
initialDelaySeconds: 10
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 5
liveness:
path: "/health/live"
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 15
successThreshold: 1
timeoutSeconds: 5
readiness:
path: "/health/ready"
failureThreshold: 3
initialDelaySeconds: 10
periodSeconds: 15
successThreshold: 1
timeoutSeconds: 5
additionalVolumeMounts: []
# - name: foo
# mountPath: /bar
additionalVolumes:
[]
# - name: foo
# emptyDir: {}
service:
type: ClusterIP
nodePort: ~
annotations: {}
serviceMonitor:
enabled: false
namespace: monitoring
scrapeInterval: 60s
scrapeTimeout: 30s
labels: {}
# -- Additional init containers to deploy. Supports templating.
initContainers: []
# Use the following to fix permissions on the /data volume,
# IF USING podSecurityContext IS NOT POSSIBLE (i.e. for OpenShift).
#
# initContainers:
# - name: fix-permissions
# image: docker.io/library/busybox
# command:
# - sh
# - -c
# - |
# chown -R 1000:1000 /data
# volumeMounts:
# - name: data
# mountPath: /data
# securityContext:
# capabilities:
# add:
# - CHOWN
# runAsNonRoot: false
# runAsUser: 0
# seccompProfile:
# type: RuntimeDefault
nodeSelector: {}
frontend:
replicaCount: 1
annotations: {}
image:
# -- Override common.image.registry for the frontend.
registry: ""
repository: dependencytrack/frontend
# -- Can be a tag name such as "latest", or an image digest
# prefixed with "sha256:". Defaults to AppVersion of the chart.
tag: ""
pullPolicy: IfNotPresent
command: []
args: []
resources:
requests:
cpu: 150m
memory: 64Mi
limits:
memory: 128Mi
# -- Security context of the Pod.
# Aids in preventing permission issues with persistent volumes.
# For OpenShift, explicitly set this to null.
podSecurityContext:
fsGroup: 1000
# -- Security context of the Container.
securityContext:
allowPrivilegeEscalation: false
capabilities:
drop:
- ALL
runAsNonRoot: true
# RO filesystems are not supported by the frontend
readOnlyRootFilesystem: false
seccompProfile:
type: RuntimeDefault
extraEnv: []
extraEnvFrom: []
# -- Additional containers to deploy. Supports templating.
extraContainers: []
extraPodLabels: {}
tolerations: []
probes:
liveness:
failureThreshold: 3
initialDelaySeconds: 5
periodSeconds: 15
successThreshold: 1
timeoutSeconds: 5
readiness:
failureThreshold: 3
initialDelaySeconds: 5
periodSeconds: 15
successThreshold: 1
timeoutSeconds: 5
additionalVolumeMounts:
[]
# - name: foo
# mountPath: /bar
additionalVolumes:
[]
# - name: foo
# emptyDir: {}
service:
type: ClusterIP
nodePort: ~
annotations: {}
apiBaseUrl: ""
# -- Additional init containers to deploy. Supports templating.
initContainers: []
nodeSelector: {}
ingress:
enabled: false
annotations: {}
labels: {}
hostname: "example.com"
ingressClassName: ""
tls: []
# - secretName: dt-tls
# hosts:
# - example.com
httpRoute:
enabled: false
annotations: {}
labels: {}
hostnames:
- "example.com"
parentRefs: []
# - name: my-gateway
# namespace: default
# sectionName: https
# -- Create extra manifests via values.
extraObjects:
[]
# - apiVersion: "kubernetes-client.io/v1"
# kind: ExternalSecret
# metadata:
# name: tempo-secrets
# spec:
# backendType: aws
# data:
# - key: secret-access-key
# name: awssm-secret