Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions certs/all-in-one.conf
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,6 @@ DNS.11 = log-api
DNS.12 = log-cache
DNS.13 = log_cache
DNS.14 = reverse-log-proxy
DNS.15 = credhub

IP.1 = 127.0.0.1
7 changes: 6 additions & 1 deletion docker-bake.hcl
Original file line number Diff line number Diff line change
Expand Up @@ -210,9 +210,14 @@ variable "CREDHUB_RELEASE_VERSION" {
}

target "credhub" {
dockerfile = "releases/credhub/credhub.Dockerfile"

tags = [ "${REGISTRY_PREFIX}credhub:latest", "${REGISTRY_PREFIX}credhub:${CREDHUB_RELEASE_VERSION}" ]

context = "https://github.com/pivotal/credhub-release.git#${CREDHUB_RELEASE_VERSION}:src/credhub"
contexts = {
src = "https://github.com/pivotal/credhub-release.git#${CREDHUB_RELEASE_VERSION}:src/credhub"
"files" = "releases/credhub/files"
}
}

variable "CFLINUXFS4_VERSION" {
Expand Down
2 changes: 1 addition & 1 deletion helmfile.yaml.gotmpl
Original file line number Diff line number Diff line change
Expand Up @@ -253,7 +253,7 @@ releases:
- postgresql
values:
- dbPassword: {{ .Values.secrets.dbPassword }}
- caCertificateSecret: instance-identity
- certificateSecret: all-in-one-tls

- name: locket
namespace: default
Expand Down
18 changes: 18 additions & 0 deletions releases/credhub/credhub.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Build image
FROM --platform=$BUILDPLATFORM bellsoft/liberica-openjdk-debian:21 AS builder

WORKDIR /app
COPY --from=src . .

RUN ./gradlew bootJar -x test -x check

# Runtime image
FROM bellsoft/liberica-openjre-debian:21

WORKDIR /app

COPY --from=files --chmod=0755 /entrypoint.sh /entrypoint.sh
COPY --from=builder /app/applications/credhub-api/build/libs/credhub.jar .

EXPOSE 9000
ENTRYPOINT ["/entrypoint.sh"]
23 changes: 23 additions & 0 deletions releases/credhub/files/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/bin/sh

APPLICATION_YAML=${APPLICATION_YAML:-/application.yml}

if [ ! -f "/ssl/trust_store.jks" ]; then
echo "Creating trust store from CA certificate"
keytool -import -noprompt -trustcacerts -alias uaa_ca -file /ssl/ca.crt -keystore /tmp/trust_store.jks -storepass ${TRUST_STORE_PASSWORD}
export TRUST_STORE_PATH=/tmp/trust_store.jks
fi

JAVA_OPTS="-Djava.security.egd=file:/dev/urandom"
JAVA_OPTS="$JAVA_OPTS -Djdk.tls.ephemeralDHKeySize=4096"
JAVA_OPTS="$JAVA_OPTS -Djdk.tls.namedGroups=\"secp384r1\""
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=${TRUST_STORE_PATH}"
JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStorePassword=${TRUST_STORE_PASSWORD}"
JAVA_OPTS="$JAVA_OPTS -Dspring.config.location=${APPLICATION_YAML}"

trap 'kill -TERM "$java_pid"' TERM INT

java $JAVA_OPTS -ea -jar /app/credhub.jar --management.server.port=9001 &
java_pid=$!

wait "$java_pid"
35 changes: 26 additions & 9 deletions releases/credhub/helm/files/credhub.yaml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{{ $_ := required ".Values.dbPassword must be provided" .Values.dbPassword }}
auth-server:
url: {{ .Values.uaa.address }}
trust_store: /app/stores/trust_store.jks
trust_store_password: changeit
trust_store: ${TRUST_STORE_PATH}
trust_store_password: ${TRUST_STORE_PASSWORD}
encryption:
key_creation_enabled: true
providers:
Expand Down Expand Up @@ -46,17 +46,34 @@ server:
port: 8844
ssl:
enabled: true
key_store: /app/stores/key_store.jks
key_store_password: changeit
key_password: changeit
key_alias: cert
bundle: credhub
ciphers: TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384
client_auth: want
trust_store: /app/stores/trust_store.jks
trust_store_password: changeit
trust_store_type: JKS
enabled_protocols: TLSv1.2,TLSv1.3
tomcat:
accesslog:
enabled: true
pattern: '%h %l %u %t "%r" %s %b %D'
directory: /dev
prefix: stdout
suffix:
file-date-format:
buffered: false
rotate: false
spring:
ssl:
bundle:
pem:
credhub:
reload-on-update: true
keystore:
certificate: file:/ssl/tls.crt
private-key: file:/ssl/tls.key
truststore:
certificate: file:/ssl/ca.crt
watch:
file:
quiet-period: 1s
flyway:
enabled: true
locations:
Expand Down
31 changes: 12 additions & 19 deletions releases/credhub/helm/templates/credhub.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,25 +36,16 @@ spec:
env:
- name: TRUST_STORE_PASSWORD
value: changeit
- name: KEY_STORE_PASSWORD
value: changeit
- name: ENCRYPTION_PASSWORD
value: changeit
- name: SERVER_CA_PRIVATE_KEY_PATH
value: /etc/ssl/ca/tls.key
- name: SERVER_CA_CERT_PATH
value: /etc/ssl/ca/tls.crt
- name: UAA_CA_PATH
value: /etc/ssl/ca/tls.crt
- name: UAA_URL
value: https://uaa.{{ .Release.Namespace }}.svc.cluster.local
- name: SUBJECT_ALTERNATIVE_NAMES
value: "DNS:{{ .Values.hostname }},DNS:credhub.{{ .Release.Namespace }}.svc.cluster.local,DNS:credhub.{{ .Release.Namespace }}.svc,DNS:credhub.{{ .Release.Namespace }},DNS:credhub"
- name: TRUST_STORE_PATH
value: /ssl/trust_store.jks
volumeMounts:
- name: config
mountPath: /app/config
- name: ca
mountPath: /etc/ssl/ca
mountPath: /application.yml
subPath: application.yml
- name: ssl
mountPath: /ssl
- name: tmp
mountPath: /tmp
{{- if .Values.nodeSelector }}
nodeSelector:
{{- toYaml .Values.nodeSelector | nindent 8 }}
Expand All @@ -67,9 +58,11 @@ spec:
- name: config
configMap:
name: credhub-config
- name: ca
- name: tmp
emptyDir: {}
- name: ssl
secret:
secretName: {{ required "caCertificateSecret is required" .Values.caCertificateSecret }}
secretName: {{ required "certificateSecret is required" .Values.certificateSecret }}
---
apiVersion: v1
kind: Service
Expand Down
2 changes: 1 addition & 1 deletion releases/credhub/helm/values.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"caCertificateSecret": {
"certificateSecret": {
"type": "string"
},
"dbPassword": {
Expand Down
2 changes: 1 addition & 1 deletion releases/credhub/helm/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ tolerations: ~

dbPassword: ~

caCertificateSecret: ""
certificateSecret: ""
Loading