Skip to content

Use this page to understand certificate, proxy, and ingress fields for Ripple Custody. The example shows one possible networking shape; your certificates, DNS records, ingress controller, proxy, and TLS policy depend on your deployment.

This page applies to on-premise deployments only. For current defaults and the full supported schema, use the configuration packaged with your release.

For networking design, see Networking planning. For service URL fields, see URL configuration.

What this config controls

Networking configuration covers:

  • Root CA and component certificates.
  • Additional trusted certificates mounted into components.
  • HTTP proxy settings for outbound traffic.
  • Ingress settings for externally exposed services.

Database SSL and message-broker TLS are covered separately in PostgreSQL configuration and AMQP configuration.

Root CA certificate

Location: harmonize.certificates.rootCA

ParameterTypeDefaultDescription
enabledbooleantrueEnables root CA certificate configuration.
certificatestringDemo certificatePEM-encoded root CA certificate.

The root CA certificate is stored in a ConfigMap, mounted into components at /app/rootCA.crt, and used through the NODE_EXTRA_CA_CERTS environment variable.

The default certificate is for demonstration purposes only. Replace it with the certificate required by your deployment.

Component certificates

Location: harmonize.certificates.<component>

ParameterTypeDescription
enabledbooleanEnables TLS certificate configuration for this component.
existingSecretstringReference to an existing Kubernetes TLS secret.
privateKeystringPEM-encoded private key.
certificatestringPEM-encoded X.509 certificate.

Supported certificate formats documented in this reference include PEM, PKCS#12, and PKCS#8.

Existing TLS secret

When existingSecret is used, the referenced Kubernetes TLS secret must contain:

Secret keyDescription
tls.crtBase64-encoded certificate.
tls.keyBase64-encoded private key.

Example secret shape:

apiVersion: v1
kind: Secret
metadata:
  name: frontend-tls-secret
type: kubernetes.io/tls
data:
  tls.crt: <base64-encoded-certificate>
  tls.key: <base64-encoded-private-key>

Certificate inheritance

Most component certificates inherit from the frontend certificate by default. Override a component certificate only when that component needs a different certificate than the default frontend certificate.

harmonize:
  certificates:
    frontend:
      enabled: true
      existingSecret: "wildcard-tls"
    keycloak:
      existingSecret: "wildcard-tls"
    oauth:
      existingSecret: "wildcard-tls"

Additional certificates

To mount additional CA certificates or custom certificates into components, use common.persistence:

common:
  persistence:
    myCert:
      enabled: true
      name: my-certificate
      type: configMap
      mountPath: /etc/ssl/certs/myCert.crt
      subPath: myCert.crt

HTTP proxy

Location: harmonize.httpProxy

ParameterTypeDefaultDescription
enabledbooleanfalseEnables HTTP proxy configuration.
protocolstring"https"Proxy protocol. Possible values: http, https.
hoststring""Proxy server hostname.
portinteger-Proxy server port.
usernamestring""Proxy authentication username.
passwordstring""Proxy authentication password.
indexersarray[]Indexers that use the proxy.

The proxy URL is constructed from the proxy fields:

{protocol}://{username}:{password}@{host}:{port}

When proxy configuration is applied to an indexer, the deployment sets HTTP_PROXY and HTTPS_PROXY for that indexer.

Ingress

Global URL settings are configured under harmonize.urls. Component ingress settings are configured under components.<component>.ingress.

Global URL fields

ParameterTypeDefaultDescription
harmonize.urls.tlsbooleanfalseEnables TLS for ingress endpoints.
harmonize.urls.basestringSee release valuesBase URL for service subdomains.

Component ingress fields

ParameterTypeDescription
enabledbooleanEnables ingress for this component.
classNamestringIngress class name.
annotationsobjectIngress annotations.
hostsarrayHostname and path rules.
tlsarrayTLS secret and hostname mappings.

Example

This example shows root CA, component certificate, proxy, and ingress fields together:

harmonize:
  urls:
    base: "custody.example.com"
    tls: true

  certificates:
    rootCA:
      enabled: true
      certificate: |-
        -----BEGIN CERTIFICATE-----
        <root-ca-certificate>
        -----END CERTIFICATE-----
    frontend:
      enabled: true
      existingSecret: "frontend-tls"

  httpProxy:
    enabled: true
    protocol: "https"
    host: "proxy.example.com"
    port: 8080
    username: "<proxy-user>"
    password: "<proxy-password>"
    indexers:
      - nbxplorer
      - eth-indexer

components:
  frontend:
    ingress:
      enabled: true
      className: "nginx"
      hosts:
        - host: "app.custody.example.com"
          paths:
            - path: /
              pathType: Prefix
      tls:
        - secretName: frontend-tls
          hosts:
            - app.custody.example.com