Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/add internal ca #207

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
2 changes: 1 addition & 1 deletion charts/dependency-track/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: |
Dependency-Track is an intelligent Software Supply Chain Component Analysis platform that allows organizations to identify and reduce risk from the use of third-party and open source components. Dependency-Track takes a unique and highly beneficial approach by leveraging the capabilities of Software Bill-of-Materials (SBOM). This approach provides capabilities that traditional Software Composition Analysis (SCA) solutions cannot achieve.
name: dependency-track
home: https://dependencytrack.org/
version: 1.5.4
version: 1.5.5
icon: https://raw.githubusercontent.com/DependencyTrack/branding/master/dt-logo-black-text.svg
keywords:
- security
Expand Down
4 changes: 2 additions & 2 deletions charts/dependency-track/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# dependency-track

![Version: 1.5.2](https://img.shields.io/badge/Version-1.5.2-informational?style=flat-square) ![AppVersion: 4.6.2](https://img.shields.io/badge/AppVersion-4.6.2-informational?style=flat-square)
![Version: 1.5.5](https://img.shields.io/badge/Version-1.5.5-informational?style=flat-square) ![AppVersion: 4.6.2](https://img.shields.io/badge/AppVersion-4.6.2-informational?style=flat-square)

Dependency-Track is an intelligent Software Supply Chain Component Analysis platform that allows organizations to identify and reduce risk from the use of third-party and open source components. Dependency-Track takes a unique and highly beneficial approach by leveraging the capabilities of Software Bill-of-Materials (SBOM). This approach provides capabilities that traditional Software Composition Analysis (SCA) solutions cannot achieve.

Expand Down Expand Up @@ -29,7 +29,7 @@ Dependency-Track is an intelligent Software Supply Chain Component Analysis plat

| Key | Type | Default | Description |
|-----|------|---------|-------------|
| apiserver | object | `{"affinity":{},"emptyDir":{"sizeLimit":"8Gi"},"enabled":true,annotations":{},"env":[],"fullnameOverride":"","image":{"pullPolicy":"IfNotPresent","repository":"dependencytrack/apiserver","tag":"4.6.2"},"initContainers":[],"livenessProbe":{"enabled":true,"failureThreshold":3,"initialDelaySeconds":60,"path":"/api/version","periodSeconds":10,"successThreshold":1,"timeoutSeconds":2},"nameOverride":"","nodeSelector":{},"persistentVolume":{"accessModes":["ReadWriteOnce"],"annotations":{},"enabled":true,"size":"8Gi","storageClass":""},"podSecurityContext":{"fsGroup":1000},"readinessProbe":{"enabled":true,"failureThreshold":3,"initialDelaySeconds":60,"path":"/","periodSeconds":10,"successThreshold":1,"timeoutSeconds":2},"replicaCount":1,"resources":{"limits":{"cpu":4,"memory":"16Gi"},"requests":{"cpu":2,"memory":"4608Mi"}},"securityContext":{"readOnlyRootFilesystem":true,"runAsGroup":1000,"runAsNonRoot":true,"runAsUser":1000},"service":{"annotations":{},"port":80,"type":"ClusterIP"},"serviceAccount":{"annotations":{},"create":true,"name":"apiserver-serviceaccount"},"tolerations":[]}` | config of the apiserver |
| apiserver | object | `{"affinity":{},"emptyDir":{"sizeLimit":"8Gi"},"enabled":true,annotations":{},"env":[],"fullnameOverride":"","image":{"pullPolicy":"IfNotPresent","repository":"dependencytrack/apiserver","tag":"4.6.2"},"initContainers":[],"internalCertificate":{"enabled":false},"livenessProbe":{"enabled":true,"failureThreshold":3,"initialDelaySeconds":60,"path":"/api/version","periodSeconds":10,"successThreshold":1,"timeoutSeconds":2},"nameOverride":"","nodeSelector":{},"persistentVolume":{"accessModes":["ReadWriteOnce"],"annotations":{},"enabled":true,"size":"8Gi","storageClass":""},"podSecurityContext":{"fsGroup":1000},"readinessProbe":{"enabled":true,"failureThreshold":3,"initialDelaySeconds":60,"path":"/","periodSeconds":10,"successThreshold":1,"timeoutSeconds":2},"replicaCount":1,"resources":{"limits":{"cpu":4,"memory":"16Gi"},"requests":{"cpu":2,"memory":"4608Mi"}},"securityContext":{"readOnlyRootFilesystem":true,"runAsGroup":1000,"runAsNonRoot":true,"runAsUser":1000},"service":{"annotations":{},"port":80,"type":"ClusterIP"},"serviceAccount":{"annotations":{},"create":true,"name":"apiserver-serviceaccount"},"tolerations":[]}` | config of the apiserver |
| frontend | object | `{"affinity":{},"emptyDir":{"sizeLimit":"8Gi"},"enabled":true,annotations":{},"env":[{"name":"API_BASE_URL","value":""}],"fullnameOverride":"","image":{"pullPolicy":"IfNotPresent","repository":"dependencytrack/frontend","tag":"4.6.1"},"initContainers":[],"livenessProbe":{"enabled":true,"failureThreshold":3,"initialDelaySeconds":60,"path":"/","periodSeconds":10,"successThreshold":1,"timeoutSeconds":2},"nameOverride":"","nodeSelector":{},"readinessProbe":{"enabled":true,"failureThreshold":3,"initialDelaySeconds":60,"path":"/","periodSeconds":10,"successThreshold":1,"timeoutSeconds":2},"replicaCount":2,"resources":{"limits":{"cpu":1,"memory":"512Mi"},"requests":{"cpu":"100m","memory":"128Mi"}},"securityContext":{"allowPrivilegeEscalation":false,"runAsUser":101},"service":{"annotations":{},"port":80,"type":"ClusterIP"},"serviceAccount":{"annotations":{},"create":true,"name":"frontend-serviceaccount"},"tolerations":[]}` | config of the frontend |
| frontend.env | list | `[{"name":"API_BASE_URL","value":""}]` | See https://docs.dependencytrack.org/getting-started/configuration/ for frontend ENV variables. |
| global | object | `{"imageRegistry":"docker.io"}` | global configuration |
Expand Down
37 changes: 37 additions & 0 deletions charts/dependency-track/ci/withinternalcertificat-values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
postgresql:
enabled: false
apiserver:
resources:
requests:
cpu: 1600m
memory: 5Gi
limits:
cpu: 2
memory: 5Gi
internalCertificate:
enabled: true
keytool:
image:
repository: eclipse-temurin
tag: 11-jre
data:
alias: acme-inc
filename: acme-inc.crt
content: |
-----BEGIN CERTIFICATE-----
MIICEjCCAXsCAg36MA0GCSqGSIb3DQEBBQUAMIGbMQswCQYDVQQGEwJKUDEOMAwG
A1UECBMFVG9reW8xEDAOBgNVBAcTB0NodW8ta3UxETAPBgNVBAoTCEZyYW5rNERE
MRgwFgYDVQQLEw9XZWJDZXJ0IFN1cHBvcnQxGDAWBgNVBAMTD0ZyYW5rNEREIFdl
YiBDQTEjMCEGCSqGSIb3DQEJARYUc3VwcG9ydEBmcmFuazRkZC5jb20wHhcNMTIw
ODIyMDUyNjU0WhcNMTcwODIxMDUyNjU0WjBKMQswCQYDVQQGEwJKUDEOMAwGA1UE
CAwFVG9reW8xETAPBgNVBAoMCEZyYW5rNEREMRgwFgYDVQQDDA93d3cuZXhhbXBs
ZS5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEAm/xmkHmEQrurE/0re/jeFRLl
8ZPjBop7uLHhnia7lQG/5zDtZIUC3RVpqDSwBuw/NTweGyuP+o8AG98HxqxTBwID
AQABMA0GCSqGSIb3DQEBBQUAA4GBABS2TLuBeTPmcaTaUW/LCB2NYOy8GMdzR1mx
8iBIu2H6/E2tiY3RIevV2OW61qY2/XRQg7YPxx3ffeUugX9F4J/iPnnu1zAxxyBy
2VguKv4SWjRFoRkIfIlHX0qVviMhSlNy2ioFLy7JcPZb+v3ftDGywUqcBiVDoea0
Hn+GmxZA
-----END CERTIFICATE-----

frontend:
replicaCount: 1
4 changes: 4 additions & 0 deletions charts/dependency-track/templates/_helpers.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@
{{- include "common.images.image" ( dict "imageRoot" .Values.apiserver.image "global" .Values.global ) -}}
{{- end -}}

{{- define "apiserver.internalCertificate.keytool.image" -}}
{{- include "common.images.image" ( dict "imageRoot" .Values.apiserver.internalCertificate.keytool.image "global" .Values.global ) -}}
{{- end -}}

{{- define "frontend.image" -}}
{{- include "common.images.image" ( dict "imageRoot" .Values.frontend.image "global" .Values.global ) -}}
{{- end -}}
Expand Down
10 changes: 10 additions & 0 deletions charts/dependency-track/templates/backend/cert-configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{{- if .Values.apiserver.internalCertificate.enabled }}
apiVersion: v1
kind: ConfigMap
metadata:
name: cert-{{ include "common.names.fullname" . }}-apiserver
labels: {{- include "backend.labels.standard" . | nindent 4 }}
data:
{{ .Values.apiserver.internalCertificate.data.filename }}: |
{{ .Values.apiserver.internalCertificate.data.content | indent 4 }}
{{- end }}
45 changes: 45 additions & 0 deletions charts/dependency-track/templates/backend/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,39 @@ spec:
{{- with .Values.apiserver.initContainers }}
initContainers: {{- toYaml . | nindent 6 }}
{{- end }}
{{- if .Values.apiserver.internalCertificate.enabled }}
{{- if not .Values.apiserver.initContainers }}
initContainers:
{{- end }}
- name: init-cacerts
image: {{ include "apiserver.image" . }}
securityContext: {{- toYaml .Values.apiserver.securityContext | nindent 12 }}
command:
- bash
- -c
- |
cp -R /opt/java/openjdk/lib/security/* /security/
volumeMounts:
- mountPath: /security
name: security
- name: amend-cacerts
image: {{ include "apiserver.internalCertificate.keytool.image" . }}
securityContext: {{- toYaml .Values.apiserver.securityContext | nindent 12 }}
command:
- bash
- -c
- |
while [ ! –e /security/cacerts ]
do
sleep 1
done
keytool -keystore /security/cacerts -storepass changeit -noprompt -trustcacerts -importcert -alias {{ .Values.apiserver.internalCertificate.data.alias }} -file /work/{{ .Values.apiserver.internalCertificate.data.filename }}
volumeMounts:
- mountPath: /security
name: security
- mountPath: /work
name: cert-{{ include "common.names.fullname" . }}-apiserver-volume
{{- end }}
containers:
- name: {{ .Chart.Name }}-apiserver
securityContext: {{- toYaml .Values.apiserver.securityContext | nindent 12 }}
Expand Down Expand Up @@ -62,6 +95,10 @@ spec:
mountPath: /data
- name: tmp
mountPath: /tmp
{{- if .Values.apiserver.internalCertificate.enabled }}
- name: security
mountPath: /opt/java/openjdk/lib/security
{{- end }}
ports:
- name: api
containerPort: 8080
Expand Down Expand Up @@ -103,6 +140,14 @@ spec:
volumes:
- name: tmp
emptyDir: {}
{{- if .Values.apiserver.internalCertificate.enabled }}
- name: security
emptyDir: {}
- configMap:
name: cert-{{ include "common.names.fullname" . }}-apiserver
defaultMode: 420
name: cert-{{ include "common.names.fullname" . }}-apiserver-volume
{{- end }}
- name: data
{{- if .Values.apiserver.persistentVolume.enabled }}
persistentVolumeClaim:
Expand Down
2 changes: 2 additions & 0 deletions charts/dependency-track/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,8 @@ apiserver:
nameOverride: ""
fullnameOverride: ""
initContainers: []
internalCertificate:
enabled: false
serviceAccount:
# Specifies whether a service account should be created
create: true
Expand Down