October 29, 2019 By Joshua Packer 4 min read

With version 3.2.1, the application lifecycle capabilities of IBM Multicloud Manager are enhanced to help you maintain the continuous delivery of Helm charts and Kubernetes resources.

These enhanced capabilities include the introduction of channels and subscriptions for orchestrating the management and deployed of charts and resources.

This channel and subscription model for application management provides you with the capability to deliver your applications to your managed clusters similarly to how you receive operating system (OS) package updates. The channel and subscription model also gives you greater flexibility for how you deliver your applications and updates.

Channels are a kind of Kubernetes object that represents the usual places where you would expect to find Helm charts and Kubernetes resources, including templates within Kubernetes namespaces, YAML files within object stores, and Helm charts within Helm repositories. You can populate these channels manually or from your continuous integration systems. With IBM Multicloud Manager 3.2.1, you can subscribe your managed clusters to one or more channels to create a diverse delivery ecosystem.

To help manage the ecosystem, you can propagate subscriptions to managed clusters. These subscriptions are another kind of Kubernetes object that you can use to provide you with flexible controls to specify which versions of specific charts and resources to deliver to clusters from your channel sources.

Sample package

To demonstrate how to get started with channels and subscriptions, a sample package is available that you can download to quickly and easily create and begin using channels and subscriptions. This package is hosted on the IBM GitHub project and is available for download and use with any licensed edition of IBM Multicloud Manager.

With this package in your development environment, you can easily set up a channel that points to the IBM Cloud Charts Helm Repository, which is a repository of IBM and third-party developer edition Helm charts.

As a specific example, this sample project subscribes managed clusters to the Helm chart for IBM MQ Advanced for Developers. This subscription deploys the latest version of the chart and continues to update the deployed chart whenever a new version is published to the repository that is represented by the channel. When you are creating your own subscriptions, you can use the same subscription to target multiple managed clusters so that you can update all clusters that need to include the same chart.

Prerequisites

To use this sample package to create your own channels and subscriptions, ensure that your environment has the following prerequisites:

  • IBM Multicloud Manager hub cluster
  • IBM Multicloud Manager managed cluster
  • IBM MQ Advanced for Developer edition Helm chart
  • Kubernetes secret for the IBM MQ administrator

In addition, you need to clone the sample files from the IBM GitHub project.

Creating the Helm chart channels

These files are the YAML files that you need to create the channels and subscriptions for delivering and configuring resources. One of these YAML files is used to create a namespace type channel and a Helm repository type channel. The namespace type channel is used to hold secrets and configMaps. The HelmRepo channel is used to identify the IBM Developer Edition Helm Chart repository on GitHub. IBM MQ Advanced is one of the charts that IBM makes available in this repository for developers.

Use the following commands to create the channels:

kubectl apply -f ./channels/1-secret-vault-channel.yaml.yaml
kubectl apply -f ./channels/2-ibmcom-helm-channel.yaml

Creating the Helm repository subscription

With the Helm chart channels set up, you can create a subscription to the IBM Cloud Charts Helm Repository to install the latest version of the IBM MQ Advanced for Developers chart. This YAML file is used to create the subscription resource for the Helm chart, an application resource, and a subscription resource to deliver the IBM MQ Administrator secret. The application resource is used to tie one or more subscriptions together for dependencies. This relationship allows the IBM Multicloud Manager management console to display the different resources that are associated with the deployed application:

kubectl apply -f ./subscriptions/3-mqadvanced-subscription.yaml

This command propagates the vault/secret namespace subscription to all of your managed clusters with the label environment: Dev. A second subscription is propagated to all your managed clusters. This second subscription subscribes the clusters to the IBM Developer Edition chart repository. The subscription finds a chart by name and then chooses a version of the chart based on the parameters in the subscription. Once a chart version is located, the subscription on the managed clusters deploys the associated Helm release by creating a HelmRelease resource that orchestrates the deployment.

Verifying the subscription

To make sure that all resources are working, you can complete the following checks:

  1. Check the state of your hub cluster subscriptions with the following command:
    kubectl -n developer-editions describe subscriptions | more

    This command shows whether the subscriptions are successfully propagated to the appropriate managed clusters.

  2. In the IBM Multicloud Manager console, use the Applications dashboard to view the mq-advanced-server-dev application. The application should have two associated resources, the Kubernetes secret subscription and the Helm chart subscription.
  3. On a managed cluster, you can look at the status of the chart by reviewing the subscription status with the following command:
    kubectl -n developer-editions describe subscriptions

    If there is a problem with deploying the chart or creating the secret, the issue is displayed in the command output. Alternately, you can see the results of the IBM MQ Advanced for Developers chart by running the following command:

    kubectl -n developer-editions get all
  4. Within the command output, you see a statefulSet that includes the health of the IBM MQ pods. The following command can also show you the details for the IBM MQ Advanced for Developers pod:
    kubectl -n developer-editions get pods

Conclusion

This example allowed us to deploy the IBM MQ Advanced Server Developer Edition chart to a managed cluster. These Kubernetes resource artifacts can be quickly duplicated to support other IBM Developer Edition charts as well as your own charts.

For IBM Developer Edition charts, you can see the subscriptions in the GitHub repository. By changing the Channel URL, Subscription chart target name and version, and the Subscriptions override for custom values, you can subscribe a cluster to any Helm chart that you choose. This capability brings a new level of continuous delivery to your charts. As updates are published to the Helm Repository, these latest updates can be automatically applied or controlled through versions choices across one or more of your managed clusters.

Resources

Was this article helpful?
YesNo

More from Cloud

The history of the central processing unit (CPU)

10 min read - The central processing unit (CPU) is the computer’s brain. It handles the assignment and processing of tasks, in addition to functions that make a computer run. There’s no way to overstate the importance of the CPU to computing. Virtually all computer systems contain, at the least, some type of basic CPU. Regardless of whether they’re used in personal computers (PCs), laptops, tablets, smartphones or even in supercomputers whose output is so strong it must be measured in floating-point operations per…

A clear path to value: Overcome challenges on your FinOps journey 

3 min read - In recent years, cloud adoption services have accelerated, with companies increasingly moving from traditional on-premises hosting to public cloud solutions. However, the rise of hybrid and multi-cloud patterns has led to challenges in optimizing value and controlling cloud expenditure, resulting in a shift from capital to operational expenses.   According to a Gartner report, cloud operational expenses are expected to surpass traditional IT spending, reflecting the ongoing transformation in expenditure patterns by 2025. FinOps is an evolving cloud financial management discipline…

IBM Power8 end of service: What are my options?

3 min read - IBM Power8® generation of IBM Power Systems was introduced ten years ago and it is now time to retire that generation. The end-of-service (EoS) support for the entire IBM Power8 server line is scheduled for this year, commencing in March 2024 and concluding in October 2024. EoS dates vary by model: 31 March 2024: maintenance expires for Power Systems S812LC, S822, S822L, 822LC, 824 and 824L. 31 May 2024: maintenance expires for Power Systems S812L, S814 and 822LC. 31 October…

IBM Newsletters

Get our newsletters and topic updates that deliver the latest thought leadership and insights on emerging trends.
Subscribe now More newsletters