---
name: satellite-begin-sat-config-tutorial
title: Deploying apps to clusters with Satellite Config
description: Set up a Satellite configuration to automatically deploy your Kubernetes resources to multiple clusters.
last-updated: 2026-04-07
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/satellite?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

# Deploying apps to clusters with Satellite Config
{: #begin-sat-config-tutorial}
{: toc-content-type="tutorial"}
{: toc-services="satellite"}
{: toc-completion-time="30m"}

Set up a Satellite configuration to automatically deploy your Kubernetes resources to multiple clusters.
{: shortdesc}

## Objectives
{: #begin-sat-config-tutorial-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
{: #begin-sat-config-tutorial-audience}

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

## Prerequisites
{: #begin-sat-config-tutorial-prereq}

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&reg; OpenShift&reg; 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](https://cloud.ibm.com/docs/satellite?topic=satellite-setup-clusters-satconfig&format=markdown) after you create the cluster.



## Beginner tutorial: Deploying a hello world app
{: #begin-sat-config-tutorial-deploy-app-ui}
{: ui}

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 repository to your clusters.

1. Log in to the [Satellite Config UI](https://cloud.ibm.com/satellite/configuration) with your IBM Cloud credentials.

1. Click **Create configuration**.

1. Select the **GitOps - Sample application** template and follow the prompts.

## Advanced tutorial: Deploying an app and updating it with new versions
{: #begin-sat-config-tutorial-advanced-helloworld-ui}
{: ui}

Before you begin, delete the subscription created previously in the [Beginner tutorial](https://cloud.ibm.com/docs/satellite?topic=satellite-begin-sat-config-tutorial&interface=ui&format=markdown#begin-sat-config-tutorial-deploy-app-ui).

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.

1. Log in to the [Satellite Config UI](https://cloud.ibm.com/satellite/configuration){: external} with your IBM Cloud credentials.

1. Click **Create configuration**.

1. Select the **GitOps** template.

1. On the **Configuration** page:

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

    1. Select `GitHub` as the provider.

    1. Click **Next**.

1. On the **Subscription** page:

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

    1. For Git ref type, select `Branch`.

    1. For branch name, enter `config-sample-prod`.

    1. For path, enter `deployments/*.yaml`.

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

    1. Click **Next**.

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

1. 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.
    ```sh
    oc get routes helloworld-route -n satellite-config-sample -o go-template --template='http://{{.spec.host}}{{.spec.path}}{{println}}'`.
    ```
    {: pre}

1. In GitHub, create a pull request from branch `config-sample-dev` to `config-sample-prod`.

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

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