IBM Cloud Docs
Deploying apps to clusters with Satellite Config

Deploying apps to clusters with Satellite Config

Set up a Satellite configuration to automatically deploy your Kubernetes resources to multiple clusters.

Objectives

With Satellite Config UI or CLI, you create a configuration that specifies which Kubernetes resources you want to deploy to a cluster group. Then, the system can automatically deploy these resources across the clusters.

In this tutorial, you create a configuration to deploy a food ordering app, which includes several micro services such as front end, back end, route, and database. After you deploy the version 1 of the food delivery app, you then create a version of app which changes the appearance to use a dark theme.

Audience

This tutorial is for Location administrators who are using Satellite Config to deploy resources for the first time.

Prerequisites

Before you start this tutorial, make sure that you have the following resources in place.

  • A Satellite location for deploying the resources.

  • A Satellite cluster or a Red Hat® OpenShift® cluster on IBM Cloud that is registered with your Satellite location.

  • A Satellite cluster group that contains the clusters you want to deploy resources to.

  • Make sure that Satellite Config has admin access to your clusters. You can either enable admin access when creating the cluster or grant Satellite Config access to your clusters after you create the cluster.

Beginner tutorial: Deploying a hello world app

Follow these steps if you are new to Satellite Config and want to try out the process by deploying some sample resources in an existing IBM Git repo to your clusters.

  1. Log in to the Satellite Config UI with your IBM Cloud credentials.

  2. Click Create configuration.

  3. Select the GitOps - Sample application template and follow the prompts.

Advanced tutorial: Deploying an app and updating it with new versions

Before you begin, delete the subscription created previously in the Beginner tutorial.

  1. Log in to GitHub and fork https://github.com/IBM/satellite-config-example including all branches. Make sure the Copy the main branch only option is not selected when you create the fork.

  2. Log in to the Satellite Config UI with your IBM Cloud credentials.

  3. Click Create configuration.

  4. Select the GitOps template.

  5. On the Configuration page:

    1. Enter hello-world-gitops as the configuration name

    2. Select GitHub as the provider.

    3. Click Next.

  6. On the Subscription page:

    1. For repository URL, enter the URL of your fork.

    2. For Git ref type, select Branch.

    3. For branch name, enter config-sample-prod.

    4. For path, enter deployments/*.yaml.

    5. Select a cluster group or groups to deploy to.

    6. Click Next.

  7. On the Summary page, confirm that the displayed information is correct and then click Complete.

  8. Observe the hello world sample version 1.0 being deployed to the clusters. You can click the configuration name to see the rollout status. This sample creates a Hello world app in the satellite-config-sample namespace, which serves a simple web page with the current version of the app. Browse to the route of the app to see Hello world 1.0!. You can get the URL of the app from the OpenShift web console or by using the following command.

    oc get routes helloworld-route -n satellite-config-sample -o go-template --template='http://{{.spec.host}}{{.spec.path}}{{println}}'`.
    
  9. In GitHub, create a pull request from branch config-sample-dev to config-sample-prod.

  10. Merge the pull request created in the previous step.

  11. In a few minutes, observe the hello world sample version 1.1 being deployed to the clusters.