This tutorial is the quickest time to value that I have found to stand up applications on IBM Cloud Satellite.
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.
- Set up an IBM Cloud account if you do not have one already.
- Set up IBM Cloud CLI or know how to use the IBM Cloud Shell: This is where the IBM Cloud Shell is on your IBM Cloud account.
- Create a Cloud Satellite location and attach hosts.
- Provision an OpenShift cluster on IBM Cloud.
- Setup the Continuous Delivery Toolchain.
- 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:
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!