Alternative 2: Ansible - Step-by-Step

Step-by-step deployment option uses kubectl and Helm commands to facilitate a more customized deployment plan

Why do we have a step-by-step deployment alternative?

While it is possible to automate all the deployment steps listed in this section, since one of core propositions of Rierino is an open architecture, we provide our clients full transparency over the list of activities that are happening.

This approach also allows customization of each step based on performance and cost optimization decisions.

Set-up the Deployer

Rierino platform uses a central deployment coordinator, facilitated through Kubernetes jobs and services. As the first step for deployment, this coordinator should be configured.

kubectl create namespace deployment
kubectl create serviceaccount --namespace=deployment deployer-sa
kubectl create clusterrole deployer-admin --verb=* --resource=*
kubectl create clusterrolebinding deployer-admin:deployment:deployer-sa --clusterrole=deployer-admin --serviceaccount=deployment:deployer-sa --namespace=deployment
helm upgrade --install global-deployment https://rierino-open.github.io/helm-charts/unit/global --namespace=deployment

Add your provided Rierino username and password for the Maven repository:

Add your provided Rierino token for Git repositoryd including Ansible playbooks:

Add your provided Rierino token for Git repository including deployment assets:

Add your provided Rierino username and password for the Docker repository:

If you are using AWS as the cloud provider, add your AWS credentials:

If you are using GCP as the cloud provider, add your service account file:

Other cloud providers may require additional credentials as well as customization of ansible inventory files.

You can also provide all these secrets during initial installation of the deployment global helm chart using sourceEncoded variable.

Now, you can start deploying Rierino workloads and services using the deployer job and deployer api service.

Deployer jobs use Ansible playbooks, which in turn install helm charts, for service deployments. While it is possible to use helm charts directly for service deployments instead, this approach allows centralized management of asset credentials, as well as more structured utilization of deployment asset files to set details of chart parameters.

Populate Assets

Rierino deployment requires various configurations on prerequisite systems, which are executed using initialization playbooks.

You can add --set values.mongodb_uri=[MONGODB_URI] parameter if MongoDB servers are not already tagged and can be discovered by Ansible inventory plugin.

You can add --set values.kafkaServers=[KAFKA_SERVERS] parameter if Kafka servers are not already tagged and can be discovered by Ansible inventory plugin.

You can add --set values.kc_api_uri=[KEYCLOAK_URI] parameter if Keycloak server is not already tagged and can be discovered by Ansible inventory plugin.

If additional systems will be utilized, you can use related deployment assets (e.g. Elasticsearch, Druid imports) as well.

Deploy Admin Core Runners

The first set of Rierino services provide the admin core runners, which can be utilized afterwards to deploy additional services through the admin UI itself.

Prepare Namespace

Depending on your MongoDB, Kafka, Keycloak configurations as well as your cloud service provider, you may need to override parameters in Global Helm playbook.

Deploy Core Runners

Deploy Authentication Runner

Deploy Admin Gateway Services

Next set of Rierino services provide the admin gateway and authentication services, which expose backend runners to outside the cluster.

Prepare Namespace

Add secrets required by admin gateway:

Where properties should include:

Deploy API Gateway

Deploy Admin UI

Last component to deploy for initialization of Rierino core platform is the admin UI, which allows user interaction with backend services.

Prepare Namespace

Deploy Front-end

Last updated