Platform Installation Guide
Overview
This guide walks you through installing the SettleMint Platform using Helm, providing a command-line based installation method with full control over the deployment process.
Prerequisites
Before starting the installation, ensure you have:
- Completed all prerequisite services setup
- Collected all required information from the prerequisite guides
- Met all infrastructure requirements
- Helm 3.x installed
- kubectl access to your cluster
- Admin permissions
Installation Steps
1. Sign in to the SettleMint Helm Registry
helm registry login harbor.settlemint.com --username <username> --password <password>
Replace <username>
and <password>
with your provided credentials.
2. Review Configuration Options
View all available configuration options:
helm show values oci://registry.settlemint.com/settlemint-platform/settlemint --version 7.0.0
3. Install the Platform
Create a values file (values.yaml) with your configuration:
ingress:
enabled: true
className: nginx
host: "<your-domain>"
annotations:
cert-manager.io/cluster-issuer: "letsencrypt"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
tls:
- secretName: "blockchaintransformationplatform"
hosts:
- "<your-domain>"
- "*.<your-domain>"
redis:
host: "<redis-host>"
password: "<redis-password>"
port: "<redis-port>"
tls: true
postgresql:
host: "<postgresql-host>"
port: "<postgresql-port>"
user: "<postgresql-user>"
password: "<postgresql-password>"
database: "<postgresql-database>"
sslMode: require
auth:
jwtSigningKey: "<jwt-signing-key>"
providers:
google:
enabled: true
clientID: "<google-client-id>"
clientSecret: "<google-client-secret>"
vault:
address: "<vault-address>"
namespace: "admin"
roleId: "<vault-role-id>"
secretId: "<vault-secret-id>"
features:
observability:
metrics:
enabled: true
apiUrl: "<prometheus-url>"
logs:
enabled: true
apiUrl: "<loki-url>"
deploymentEngine:
platform:
domain:
hostname: "<your-domain>"
clusterManager:
domain:
hostname: "<your-domain>"
state:
s3ConnectionUrl: "<s3-connection-url>"
credentials:
encryptionKey: "<encryption-key>"
aws:
accessKeyId: "<aws-access-key>"
secretAccessKey: "<aws-secret-key>"
region: "<aws-region>"
Click to see a complete example values file
ingress:
enabled: true
className: nginx
host: "sandbox-demo.blockchaintransformationplatform.com"
annotations:
cert-manager.io/cluster-issuer: "letsencrypt"
nginx.ingress.kubernetes.io/ssl-redirect: "true"
tls:
- secretName: "blockchaintransformationplatform"
hosts:
- "sandbox-demo.blockchaintransformationplatform.com"
- "*.sandbox-demo.blockchaintransformationplatform.com"
redis:
host: redis-17220.c250.eu-central-1-1.ec2.cloud.redislabs.com
password: supersecretredispassword
port: 17220
tls: true
postgresql:
host: ep-morning-moon-a20p0s24-pooler.eu-central-1.aws.neon.tech
port: 5432
user: sandbox-demo_owner
password: mysupersecretpsqlpassword
database: sandbox-demo
sslMode: require
auth:
jwtSigningKey: "HamMmiYGP+sBClp0tWbhlg8I5+k/OOoM+/7rNOLpHtI="
providers:
google:
enabled: true
clientID: "123456789-abcdefghijklmnopqrstuvwxyz.apps.googleusercontent.com"
clientSecret: "GOCSPX-abcdefghijklmnopqrstuvwxyz"
vault:
address: "https://sandbox-demo-public-vault-975715c8.ba526938.z1.hashicorp.cloud:8200"
namespace: "admin"
roleId: "12345678-90ab-cdef-ghij-klmnopqrstuv"
secretId: "12345678-90ab-cdef-ghij-klmnopqrstuv"
features:
observability:
metrics:
enabled: true
apiUrl: "http://victoria-metrics-victoria-metrics-single-server.observability.svc.cluster.local:8428/prometheus/api/v1"
logs:
enabled: true
apiUrl: "http://loki-gateway.observability.svc.cluster.local/loki/api/v1"
deploymentEngine:
platform:
domain:
hostname: "sandbox-demo.blockchaintransformationplatform.com"
clusterManager:
domain:
hostname: "sandbox-demo.blockchaintransformationplatform.com"
state:
s3ConnectionUrl: "s3://sandbox-demo-bucket?region=eu-central-1"
credentials:
encryptionKey: "r532kL19Jrp8Fnql43ScR4UhN46Sh1QmgbJXjkPC2YI="
aws:
accessKeyId: "AKIAIOSFODNN7EXAMPLE"
secretAccessKey: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
region: "eu-central-1"
app:
replicaCount: 2
api:
replicaCount: 2
job:
replicaCount: 2
resources:
requests:
cpu: 100m
memory: 512Mi
autoscaling:
enabled: true
deployWorker:
replicaCount: 2
resources:
requests:
cpu: 100m
memory: 512Mi
autoscaling:
enabled: true
clusterManager:
replicaCount: 2
docs:
replicaCount: 2
Install the platform:
helm upgrade --install settlemint oci://registry.settlemint.com/settlemint-platform/settlemint \
--namespace settlemint \
--version 7.0.0 \
--create-namespace \
--values values.yaml
4. Verify Installation
Check the deployment status:
kubectl get pods -n settlemint
Verify all pods are running and ready.
5. Access the Platform
Once all pods are running, access the platform at https://<your-domain>
.
Troubleshooting
If you encounter issues during installation:
- Debug the installation:
helm upgrade --install --debug --dry-run settlemint oci://registry.settlemint.com/settlemint-platform/settlemint \
--namespace settlemint \
--values values.yaml
- Check pod logs:
kubectl logs -n settlemint <pod-name>
- Generate a support bundle:
# Install support bundle plugin
curl https://krew.sh/support-bundle | bash
# Generate bundle
kubectl support-bundle --load-cluster-specs
Send the generated support bundle to [email protected] for assistance.
Uninstalling
To remove the platform:
helm delete settlemint --namespace settlemint
Note: This will not delete persistent volumes or other resources outside of Helm's control. You may need to clean these up manually.