This tutorial is the quickest time to value that I have found to stand up applications on IBM Cloud Satellite.

This is a technical tutorial. If you would like greater context into what IBM Cloud Satellite is, please read this article as a preamble to the tutorial.

The end game for this tutorial is to have a hello-world application running live on a Red Hat OpenShift Kubernetes cluster on an IBM Cloud Satellite location. Cloud Satellite allows for the containerized application to run anywhere it geographically needs to be located.

Prerequisites

Steps

  1. Create a Cloud Satellite location and attach hosts.
  2. Provision an OpenShift cluster on IBM Cloud.
  3. Setup the Continuous Delivery Toolchain.
  4. Deployment of the application.

Note: If you are trying to deploy in a private network using IBM Cloud Continuous Delivery, please configure IBM Cloud Continuous Delivery private workers for the CI/CD pipeline using the documented steps here.

1. Create a Cloud Satellite location and attach hosts

Follow this link to create an IBM Cloud Satellite location:

Click the big blue button to set up the location:

Click Edit to create a new name for the location and pick the region from which the location will be managed.

IBM Cloud Satellite has Site Reliability Engineering [SRE] teams assigned to manage the stability of the infrastructure provisioned upon the use of a Cloud Satellite location.

This Managed from field is the IBM Cloud region from which the IBM SRE teams will manage the Satellite location. I named my Satellite location “May3rd.”

Click Create location.

Give the location ~10 minutes to provision:

Once the Cloud Satellite location has finished provisioning, click on your new Satellite location to go into the landing page for your instance.

Click on Attach hosts to your location within the Getting Started tab. Then, click Download the shell script to save this script locally. Use this script to attach hosts to the Cloud Satellite location:

Now, follow the documentation through Step 1–3 of the prerequisites. There are choices to make here on where you want to have your Cloud Satellite hosts in order to have a healthy location set up. The hosts can be physical or virtual. It might be easiest for this walkthrough to use virtual machines as the hosts. You can host Cloud Satellite from any public cloud hyperscaler, so you can decide to provision virtual machines on Google Cloud, AWS, Microsoft Azure, IBM Cloud or other providers.

This will lead you through the commands to assign and attach hosts to your Satellite location, as well.

Quick list of terminal commands to attach hosts to IBM Cloud Satellite:

I used IBM Cloud virtual machines for this example:

ibmcloud login 

ibmcloud sl vs list ibmcloud sl vs credentials [HOST ID]scp attachHost-locationName.sh root@[HOST IP]:/tmp/attach.sh

ssh root@[HOST IP]

subscription-manager refresh

subscription-manager repos --enable=*

sudo nohup bash /tmp/attach.sh

journalctl -f -u ibm-host-attach

Follow the minimum system requirements for IBM Cloud Satellite hosts. You’ll need to have at least three hosts at a minimum for the Satellite location’s control plane and two to three hosts in this example available for attaching those hosts to the OpenShift cluster on Cloud Satellite.

2. Create the OpenShift cluster on IBM Cloud

Do you have extra hosts that are unassigned for your Cloud Satellite location? Good. Now we can create an OpenShift cluster.

Here is a link to the Red Hat OpenShift cluster service.

Create the Red Hat OpenShift cluster using the Satellite infrastructure with the Satellite location you created. This will make the cluster available for Cloud Satellite hosts:

Assign what you would like for your Worker pools (you don’t have to follow what I did in lowering the worker nodes per Satellite zones).

Create a name for the cluster and hit Create to provision it.

Wait another few minutes for that cluster to provision.

If you now go back to the Cloud Satellite landing page and look under Hosts, you should see some “Unassigned” hosts available to assign. Click the ellipsis for the Unassigned host and assign the host to your OpenShift cluster on Cloud Satellite.

Keep doing this for the unassigned hosts you created for the OpenShift cluster:

3. Set up the Continuous Delivery Toolchain

Now that we have the foundational aspects of the tutorial done, we can deploy the example application.

Click on the hamburger menu for the left-side navigation of IBM Cloud and then click on DevOps:

From here, you can choose any Kubernetes toolchain, but the easiest one for me with the least errors was the Develop a Kubernetes app with Razee. Razee is a continuous delivery tool for Kubernetes:

Choose to deploy using the Kubernetes-native Tekton pipeline over the classic pipeline.

Generate an IBM Cloud API key if you do not have one yet.

Once you generate your IBM Cloud API key and input it, this will populate your clusters in the drop-down depending on the Cluster Region. Cluster Region shows the clusters deployed in each region.

Your cluster for Cloud Satellite will be in the Washington D.C. or London region as of May 3, 2021. With more regions rolling out for Cloud Satellite, this list for what region your cluster likely is within will increase, as well. So, if you don’t see your cluster in Washington D.C. or London, check other regions.

Once you found the cluster name that is on your Cloud Satellite location, select it and press Create. This will launch the toolchain:

4. Deploy the application

From here, you can consult this tutorial that will successfully lead you through the Delivery Pipeline in order to launch your live application:

Once all stages of the deployment pass, you can then go into the Setup Cluster with Razee stage and click on the subtask Setup App with Razee.

Scroll all the way down the logs to find the link to the live URL where your application is running. 

Congrats, You have your first containerized application running on IBM Cloud Satellite!

Learn more about IBM Cloud Satellite.

Categories

Cloud  |  devops  |  compute  | 

More from Cloud

Kubernetes version 1.28 now available in IBM Cloud Kubernetes Service

2 min read - We are excited to announce the availability of Kubernetes version 1.28 for your clusters that are running in IBM Cloud Kubernetes Service. This is our 23rd release of Kubernetes. With our Kubernetes service, you can easily upgrade your clusters without the need for deep Kubernetes knowledge. When you deploy new clusters, the default Kubernetes version remains 1.27 (soon to be 1.28); you can also choose to immediately deploy version 1.28. Learn more about deploying clusters here. Kubernetes version 1.28 In…

Temenos brings innovative payments capabilities to IBM Cloud to help banks transform

3 min read - The payments ecosystem is at an inflection point for transformation, and we believe now is the time for change. As banks look to modernize their payments journeys, Temenos Payments Hub has become the first dedicated payments solution to deliver innovative payments capabilities on the IBM Cloud for Financial Services®—an industry-specific platform designed to accelerate financial institutions' digital transformations with security at the forefront. This is the latest initiative in our long history together helping clients transform. With the Temenos Payments…

Foundational models at the edge

7 min read - Foundational models (FMs) are marking the beginning of a new era in machine learning (ML) and artificial intelligence (AI), which is leading to faster development of AI that can be adapted to a wide range of downstream tasks and fine-tuned for an array of applications.  With the increasing importance of processing data where work is being performed, serving AI models at the enterprise edge enables near-real-time predictions, while abiding by data sovereignty and privacy requirements. By combining the IBM watsonx data…

The next wave of payments modernization: Minimizing complexity to elevate customer experience

3 min read - The payments ecosystem is at an inflection point for transformation, especially as we see the rise of disruptive digital entrants who are introducing new payment methods, such as cryptocurrency and central bank digital currencies (CDBC). With more choices for customers, capturing share of wallet is becoming more competitive for traditional banks. This is just one of many examples that show how the payments space has evolved. At the same time, we are increasingly seeing regulators more closely monitor the industry’s…