You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/launch-platform/self-hosted/installation-guide/platform-installation.md
+189Lines changed: 189 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -466,6 +466,195 @@ Verify all pods are running and ready.
466
466
467
467
Once all pods are running, access the platform at `https://<your-domain>`.
468
468
469
+
### 6. Target Clusters Configuration
470
+
471
+
The platform supports deploying blockchain nodes and applications to multiple target clusters across different cloud providers and regions. This section explains how to configure target clusters in your values file.
472
+
473
+
#### Target Structure
474
+
The targets configuration uses a simple 2-level hierarchy:
475
+
-**Target** (top level grouping)
476
+
-**Clusters** (individual Kubernetes clusters)
477
+
478
+
#### Basic Configuration Example
479
+
```yaml
480
+
features:
481
+
deploymentEngine:
482
+
targets:
483
+
- id: GROUP1
484
+
name: First Group
485
+
icon: cloud
486
+
clusters:
487
+
- id: CLUSTER1
488
+
name: Primary Cluster
489
+
icon: kubernetes
490
+
location:
491
+
lat: 50.8505
492
+
lon: 4.3488
493
+
namespace:
494
+
multiple:
495
+
enabled: true
496
+
prefix: "sm"
497
+
connection:
498
+
kubeconfig:
499
+
enabled: true
500
+
domains:
501
+
service:
502
+
tls: true
503
+
hostname: "cluster1.example.com"
504
+
storage:
505
+
storageClass: "standard"
506
+
ingress:
507
+
ingressClass: "nginx"
508
+
capabilities:
509
+
mixedLoadBalancers: false
510
+
nodePorts:
511
+
enabled: true
512
+
range:
513
+
min: 30000
514
+
max: 32767
515
+
- id: GROUP2
516
+
name: Second Group
517
+
icon: cloud
518
+
clusters:
519
+
- id: CLUSTER2
520
+
name: Secondary Cluster
521
+
icon: kubernetes
522
+
location:
523
+
lat: 1.3521
524
+
lon: 103.8198
525
+
namespace:
526
+
multiple:
527
+
enabled: true
528
+
prefix: "prod"
529
+
connection:
530
+
kubeconfig:
531
+
enabled: true
532
+
domains:
533
+
service:
534
+
tls: true
535
+
hostname: "cluster2.example.com"
536
+
storage:
537
+
storageClass: "standard"
538
+
ingress:
539
+
ingressClass: "nginx"
540
+
capabilities:
541
+
mixedLoadBalancers: true
542
+
nodePorts:
543
+
enabled: true
544
+
range:
545
+
min: 30000
546
+
max: 32767
547
+
```
548
+
549
+
#### Configuration Options
550
+
551
+
##### Target Level
552
+
- `id`: Unique identifier for the target group
553
+
- `name`: Display name
554
+
- `icon`: Icon identifier for the UI
555
+
556
+
##### Cluster Level
557
+
- `id`: Unique identifier for the cluster
558
+
- `name`: Display name for the region/location
559
+
- `icon`: Icon identifier for the UI
560
+
- `disabled`: (Optional) Set to true to disable this cluster
561
+
- `location`: Geographic coordinates for visualization
562
+
- `lat`: Latitude
563
+
- `lon`: Longitude
564
+
565
+
##### Namespace Configuration
566
+
```yaml
567
+
namespace:
568
+
single:
569
+
enabled: false # Use for single namespace deployments
570
+
name: deployments
571
+
runAsUser: 2024
572
+
fsGroup: 2024
573
+
multiple:
574
+
enabled: true # Use for multiple namespace deployments
575
+
prefix: "sm" # Prefix for created namespaces
576
+
```
577
+
578
+
##### Connection Settings
579
+
```yaml
580
+
connection:
581
+
sameCluster:
582
+
enabled: false
583
+
kubeconfig:
584
+
enabled: true
585
+
```
586
+
587
+
##### Domain Configuration
588
+
```yaml
589
+
domains:
590
+
service:
591
+
tls: true # Enable TLS for the domain
592
+
hostname: "cluster.example.com" # Domain for accessing services
593
+
```
594
+
595
+
The domain configuration determines how services in the cluster will be accessed. Each cluster needs a unique domain that resolves to its ingress controller.
596
+
597
+
##### Storage Configuration
598
+
```yaml
599
+
storage:
600
+
storageClass: "standard" # Default storage class for the cluster
601
+
```
602
+
603
+
Storage class recommendations per cloud provider:
604
+
- GKE: Use `"standard"` for general purpose or `"premium-rwo"` for better performance
605
+
- EKS: Use `"gp3"` for general purpose or `"io1"` for high-performance workloads
606
+
- AKS: Use `"managed-premium"` for production or `"default"` for development
607
+
608
+
##### Ingress Configuration
609
+
```yaml
610
+
ingress:
611
+
ingressClass: "nginx" # Ingress controller class name
612
+
```
613
+
614
+
The ingress class should match your installed ingress controller. Common options:
mixedLoadBalancers: false # Support for mixed LoadBalancer services
623
+
nodePorts:
624
+
enabled: true # Enable NodePort service type
625
+
range: # Port range for NodePort services
626
+
min: 30000
627
+
max: 32767
628
+
```
629
+
630
+
Capabilities determine what features are available in the cluster:
631
+
- `mixedLoadBalancers`: Enable if your cluster supports both internal and external load balancers
632
+
- `nodePorts`: Configure if you need to expose services using NodePort type
633
+
- The port range should be within Kubernetes defaults (30000-32767)
634
+
- Ensure the range doesn't conflict with other services
635
+
636
+
#### Important Considerations
637
+
638
+
1. **Domain Names**
639
+
- Each cluster must have a unique domain name
640
+
- Domains should be properly configured in your DNS provider
641
+
- TLS certificates will be automatically managed if cert-manager is configured
642
+
643
+
2. **Storage Classes**
644
+
- Verify the storage class exists in your cluster before using it
645
+
- Consider performance requirements when selecting storage classes
646
+
- Some features may require specific storage capabilities (e.g., RWX support)
647
+
648
+
3. **Network Capabilities**
649
+
- `mixedLoadBalancers`should match your cloud provider's capabilities
650
+
- NodePort ranges should not conflict with other services
651
+
- Ensure network policies allow required communication
652
+
653
+
:::tip
654
+
When setting up a new cluster, start with the basic configuration and gradually enable additional capabilities as needed. This approach helps in identifying potential issues early in the deployment process.
0 commit comments