# Dependency Track
# Namespace
$ kubectl create namespace devops
# PV 和 PVC
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: dtrack-pv
spec:
capacity:
storage: 15Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
path: /backup/data/dtrack
server: 10.16.16.41
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: dependency-track-data
namespace: devops
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 15Gi
设置挂载目录权限
chown -R 1000:1000 /backup/data/dtrack
# Deployment
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: dependency-track-bundled
namespace: devops
spec:
replicas: 1
selector:
matchLabels:
app: dependency-track-bundled
template:
metadata:
labels:
app: dependency-track-bundled
spec:
securityContext:
fsGroup: 1000
containers:
- name: dependency-track-bundled
image: dependencytrack/bundled:4.10.0
imagePullPolicy: IfNotPresent
securityContext:
readOnlyRootFilesystem: true
runAsNonRoot: true
runAsUser: 1000
runAsGroup: 1000
env:
# https://docs.dependencytrack.org/getting-started/database-support/
# 数据库连接相关信息
- name: ALPINE_DATABASE_MODE
value: external
- name: ALPINE_DATABASE_URL
value: jdbc:postgresql://pgsql:5432/dtrack
- name: ALPINE_DATABASE_DRIVER
value: org.postgresql.Driver
- name: ALPINE_DATABASE_USERNAME
value: dtrack
- name: ALPINE_DATABASE_PASSWORD
value: password
- name: TZ
value: Asia/Shanghai
ports:
- name: api
containerPort: 8080
protocol: TCP
livenessProbe:
httpGet:
port: api
path: "/api/version"
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 2
successThreshold: 1
failureThreshold: 3
readinessProbe:
httpGet:
port: api
path: "/"
initialDelaySeconds: 60
periodSeconds: 10
timeoutSeconds: 2
successThreshold: 1
failureThreshold: 3
resources:
# https://docs.dependencytrack.org/getting-started/deploy-docker/
limits:
cpu: 4
memory: 16Gi
requests:
cpu: 2
memory: 4608Mi
volumeMounts:
- name: data
mountPath: /data
- name: tmp
mountPath: /tmp
volumes:
- name: data
persistentVolumeClaim:
claimName: dependency-track-data
- name: tmp
emptyDir: {}
# Service
---
apiVersion: v1
kind: Service
metadata:
name: dependency-track-bundled
namespace: devops
labels:
app: dependency-track-bundled
spec:
selector:
app: dependency-track-bundled
type: NodePort
ports:
- name: api
port: 80
targetPort: api
nodePort: 32571