Primaza Multi Cluster Environment Setup

When Sapiens is successfully on-boarded, a pipeline is run for creating and setting up their tenant.

The Automation makes use of primazactl for creating the new Tenant. primazactl is a command line tool, developed for making the Tenant management as easy as possible.

image

Demo Output

❯ ./bin/main --env-setup
Create Multi-Cluster environment with Kind
==========================================

# Create a Primaza Tenant on cluster 'main' [1/4]:

> ./bin/primazactl create tenant primaza-mytenant --version latest --context kind-main
Primaza main installed

# Join a worker cluster to Tenant 'primaza-mytenant' [2/4]:

> ./bin/primazactl join cluster  \
    --version latest \
    --tenant primaza-mytenant \
    --cluster-environment worker \
    --environment demo \
    --context kind-worker \
    --tenant-context kind-main
Install and configure worker completed

# Create an Application Namespace on joined cluster 'worker' [3/4]:

> ./bin/primazactl create application-namespace applications \
    --version latest \
    --tenant primaza-mytenant \
    --cluster-environment worker \
    --context kind-worker \
    --tenant-context kind-main
application namespace primaza-application was successfully created

# Create a Service Namespace on joined cluster 'worker' [4/4]:

> ./bin/primazactl create service-namespace services \
    --version latest \
    --tenant primaza-mytenant \
    --cluster-environment worker \
    --context kind-worker \
    --tenant-context kind-main
service namespace primaza-service was successfully created

As a result, among the other resources, the following deployment are created:

> kubectl get deployment --context kind-main --namespace primaza-mytenant
NAME                                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/primaza-controller-manager   1/1     1            1           18m

❯ kubectl get deployment --context kind-worker --namespace applications
NAME                               READY   UP-TO-DATE   AVAILABLE   AGE
argocd-applicationset-controller   1/1     1            1           18m
argocd-dex-server                  1/1     1            1           18m
argocd-notifications-controller    1/1     1            1           18m
argocd-redis                       1/1     1            1           18m
argocd-repo-server                 1/1     1            1           18m
argocd-server                      1/1     1            1           18m
ingress-nginx-controller           1/1     1            1           18m
primaza-app-agent                  1/1     1            1           9m

❯ kubectl get deployment --context kind-worker --namespace services
NAME                           READY   UP-TO-DATE   AVAILABLE   AGE
ack-sqs-controller-sqs-chart   1/1     1            1           18m
primaza-svc-agent              1/1     1            1           10m