/operand-deployment-lifecycle-manager

Managing the lifecycle for a group of operands

Primary LanguageGoApache License 2.0Apache-2.0

Docker Repository on Quay License Go Report Card

Operand Deployment Lifecycle Manager (ODLM)

Overview

Note: Documents in this repo are in active development. For the official documentation, see IBM Knowledge Center.

Operand Deployment Lifecycle Manager is used to manage the lifecycle of a group of operands. Check the design document here.

Operand Deployment Lifecycle Manager has four CRDs:

Resource Short Name Description
OperandRequest opreq It defines which operator/operand want to be installed in the cluster
OperandRegistry opreg It defines the OLM information, like channel and catalog source, for each operator
OperandConfig opcon It defines the parameters that should be used to install the operator's operand
OperandBindInfo opbi It identifies secrets and/or configmaps that should be shared with requests

Supported platforms

You can install the Operand Deployment Lifecycle Manager on Linux® x86_64 with Red Hat® OpenShift® Container Platform version 4.3+.

Prerequisites

  • operator-sdk version v1.3.0.
  • go version 1.15.7+
  • oc version v3.11+ or kubectl v1.11.3+
  • Access to an Openshift v4.3+ cluster

Documentation

Developer guide

Cloning the repository

Checkout this Operand Deployment Lifecycle Manager repository

# git clone https://github.com/IBM/operand-deployment-lifecycle-manager.git
# cd operand-deployment-lifecycle-manager

Building the operator

Build the odlm image and push it to a public registry, such as quay.io:

# make build
# make images

Installing

Run make install to install the operator. Check that the operator is running in the cluster, also check that the common service was deployed.

Following the expected result.

# kubectl get all -n ibm-common-services
NAME                                           READY   STATUS    RESTARTS   AGE
pod/operand-deployment-lifecycle-manager-786d699956-z7k4n   1/1     Running   0          21s

NAME                                      READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/operand-deployment-lifecycle-manager   1/1     1            1           22s

NAME                                                 DESIRED   CURRENT   READY   AGE
replicaset.apps/operand-deployment-lifecycle-manager-786d699956   1         1         1       22s

Uninstalling

To uninstall all that was performed in the above step run make uninstall.

Troubleshooting

Use the following command to check the operator logs.

# kubectl logs deployment.apps/operand-deployment-lifecycle-manager -n ibm-common-services

Running Tests

Development

When the API or CRD changed, run make code-dev re-generate the code.

SecurityContextConstraints Requirements

The Operand Deployment Lifecycle Manager supports running under the OpenShift Container Platform default restricted security context constraints.