/
NUI_Managing Secrets

NUI_Managing Secrets

In PoC secenarios all secrets are generated from the data of the values file. In production environments, this is not recommended, since ther should not be any confidential data in the values file. Therefore the Kubernetes secrets have to be created beforhand, manually or ideally from a vault. The Smartfacts and OSLC Adapter charts support the use of pre-installed Kubernetes secrets.

Secret Templates

Most secrets, except the tls secret, are opaque secets. You can use the following template to construct the secrets:

Opaque secrets

apiVersion: v1 data: <Secret Field Name 1>: <base64 encoded secret data 1> <Secret Field Name 2>: <base64 encoded secret data 2> ... kind: Secret metadata: name: <Name of the secret in Kubernets> type: Opaque

TLS Secrets

apiVersion: v1 data: tls.crt: <Complete certificate chain in PEM format, encoded as base64> tls.key: <certificate key in PEM format, encoded as base64> kind: Secret metadata: name: <Name of the secret in Kubernets> type: kubernetes.io/tls

Docker config json Secrets

To generate the value to insert in the secret, fill in the "..." placeholder with your username and password for the docker image registry, replace the retistry name ā€œrepo.mid.deā€ with your own registry if needed.

{ "auths": { "repo.mid.de" : { "username":"...", "password":"..." } } }

Encode the whole json as base64 with padding and insert the base64 string in the secret template:

List of Secrets

Ā 

Secret purpose

default secret name

Secret type

name of property to override default secret name

secret data property name

content (All contens have to be base64 encoded!)

Secret necessary when ā€¦

Secret purpose

default secret name

Secret type

name of property to override default secret name

secret data property name

content (All contens have to be base64 encoded!)

Secret necessary when ā€¦

TLS certificates for ingresses

smartfacts-certs

kubernets.io/tls

global.cert.crtFullChain

tls.crt

The Server cetificate

Ingress is terminating tls

global.cert.key

tls.key

The key for the server certificate

Username and Password of the Administration user in Keycloak

smartfacts-keycloak-admin-secret

Opaque

Ā 

KEYCLOAK_PASSWORD

The password for the keycloak administrator

Keycloak.enabled is set to true in values file

Ā 

KEYCLOAK_USER

The username of the keycloak administrator. By default this is ā€œkeycloak-adminā€.

Data for connecting to the OIDC provider

smartfacts-oidc-secrets

Opaque

global.secrets.oidcSecretName

campId

ID of camp client in OIDC issuer

Connecting to an OIDC provider

camSecret

Secret of camp client in OIDC issuer

smartfactsId

ID of smartfacts client in OIDC issuer

smartfactsSecret

Secret of smartfacts client in OIDC issuer

Username and password of the postgresql database used for Keycloak

smartfacts-postgresql

Opaque

Ā 

password

Ā 

Keycloak.enabled is set to true in values file

Ā 

postgres-password

Ā 

The Java truststore used by the Smartfacts platform and genoslc toolservice

smartfacts-truststore

Opaque

Ā 

truststore.jks

Ā 

property truststoreEnabled: true

is set in values file or if the property is not present (default is ā€œtrueā€)

Ā 

smartfacts-truststore-password

Opaque

Ā 

password

The password of the truststore.

Ā 

regcred

kubernetes.io/dockerconfigjson

global.imagePullSecrets[]

.dockerconfigjson

Ā 

Docker Image Registry needs a login

Ā 

smartfacts-mongodb-connection-secret

Opaque

Ā 

connection-string

The Connection string to the mongodb in the format for Java drivers. The Connection string will contain the username and password of the mongodb user.

Always

Ā 

smartfacts-oauth10a-encryption-key-secret

Opaque

Ā 

ENCRYPTION_KEY

A random string, that should never change again. It is used as secret to encrypt and decrypt the oauth10a configuration data in the mongodb.

Always

Ā 

smartfacts-oslc-technical-user-secret

Opaque

env.tool.adaptedToolTechnicalUserAuthorizationHeader

adaptedToolTechnicalUserAuthorizationHeader

ā€œBasic <credentials as base64>ā€, with the placeholder <credentials as base64> replaced with the base64 encoded string of ā€œusername:passwordā€ of the user. (Yes, at the end username:password is twice encoded with base64)

OSLC Connectors are used

Ā 

Related content

NUI_PoC Deployment on Kubernetes with use of Keycloak as OIDC provider
NUI_PoC Deployment on Kubernetes with use of Keycloak as OIDC provider
More like this
PoC Deployment on Kubernetes with use of Keycloak as OIDC provider
PoC Deployment on Kubernetes with use of Keycloak as OIDC provider
More like this
NUI_Upgrading Smartfacts
NUI_Upgrading Smartfacts
More like this
NUI_Deployment on OpenShift with Internet Connection
NUI_Deployment on OpenShift with Internet Connection
More like this
OSLC connector for PREEvision
OSLC connector for PREEvision
More like this