Applications in Advanced Cluster Management for Kubernetes (Part 2)

Welcome to part 2 of the ACM blog series.

The next section of ACM that will be covered are applications.  When going to the "Applications" link on the left-side of the ACM screen, you will be taken to the following screen.

In the overview tab, a list of current applications will be shown (and status information if applicable).  There is nothing setup on the cluster just yet but this will change shortly.

Let's go over some of the terminology associated with applications in ACM.

Channels- Channels are the source of the Kubernetes objects that will be created in the managed cluster(s).  The sources can be Git repositories, Helm charts, object storage locations, or namespaces on the ACM hub cluster.

One concept that is important to note (it was for me) is that the channels are references to object definitions/YAML (not application source-code).  

Subscriptions- Subscriptions can have a one-one relationship to a channel or multiple subscriptions can be tied to a single channel.

Let's use a Git repo as an example.  A channel can be created based on the location of a Git repo (main branch).

A subscription can also be used to reference other branches, commits, or tags in that channel.

Placement Rules -  When clusters are provisions or imported within ACM, default labels are added (you can add your own custom labels as well).  Some common labels are name, openshiftversion, local-cluster(true/false), vendor.

A placement rules tie a specific subscription to a cluster (or group of clusters) based on a label.

After clicking the "Create Application" button in the upper-right hand corner, a wizard screen will appear.

For example purposes, we are going to use a Git repo for our source.  The Git repo is located at https://github.com/open-cluster-management/ and a guestbook app will be deployed.  This GIT repo is just a collection of OCP/Kubernetes object definitions that get consumed and deployed as an application in ACM.

Provide the following answers to each prompt:

Name: guestbook
Namespace: default
Expand Repository Location for Resources and use "Git"
URL: https://github.com/open-cluster-management/deploy/
The branch and path fields should populate a drop-down menu.
Branch: master
Path: resources/guestbook

See the screenshot below for reference



Check the box that says "deploy to local-cluster"

Click "Save"

You will be taken back to the "application topology" screen

Click on the route and then "Launch Route URL"

This will bring up the guestbook application