Skip to content

Manage service

The catalog manages service-operators on a shoot clusters with catalogs.catalog.sws.osc.t-systems.com CRD. This CRD has cluster scope and only one relation between the CR and the CRD can exist on a shoot cluster with hardcoded name catalog. CR with different name isn't possible to create.

Service Operation

Installation

You can install a required service-operator by creating or editing of catalog CR on your shoot cluster, if you set the attribute enabled of a particular service-operator to true. For more details, see the example below and workflow: Enabling a service in the Catalog CR.

Example:

apiVersion: catalog.sws.osc.t-systems.com/v1alpha1
kind: Catalog
metadata:
  # name has to be always catalog
  name: catalog
spec:
  kafka:
    # kafka-service-operator won't be installed. It will be uninstalled, if it is installed
    enabled: false
    # releaseChannel can be use for installation different version of services.
    # e.g.:
    # - last stable release (stable)
    # - release candidate (beta channel)
    # - current development version (alpha),
    # releaseChannel is not required to be set. If it isn't defined, it is set to stable
    releaseChannel: stable
    # if you don't want to use latest version in channel, you can set useDeprecatedVersion to true for use of previous version.
    useDeprecatedVersion: false
    # nodeSelector specify nodes labels where pods of service will run.
    # it serve for set specific nodes where service pod can run.
    # kubectl get nodes --show-labels (get labels of nodes)
    nodeSelector:
      # this is default node selector, it cannot be changed.
      kubernetes.io/os: linux
  kyma:
    # kyma-service-operator will be installed.
    enabled: true
    # releaseChannel is stable, if it isn't defiend
  postgreSQL:
    enabled: false
    releaseChannel: beta
  kyverno:
    enabled: false
    releaseChannel: stable
  scone:
    enabled: false

Uninstallation

The service can be uninstalled by setting the field enabled to false in path spec.[service].enabled. For more details see workflow: Disabling a service in the Catalog CR.

Note: Currently the catalog does not check running service instances. You should be sure you really want to uninstall a service operator, since running instances will also be deleted.

Delete

CR catalog cannot be deleted, if any service is installed. You have to uninstall all services before deleting catalog CR. Please see workflow: Deleting Catalog CR

Upgrade

The service cannot be upgraded directly; the upgrade of the service to newer version is automatizated and it will cycle few hours after release.

You can upgrade to the latest version by setting the value of the field spec.[service].useDeprecatedVersion form true to false only.

You can downgrade to the previous version by setting the value of the field spec.[service].useDeprecatedVersion to true.

Change of spec.[operator].releaseChannel field will upgrade the service to required version.

Warning: \ Functionality of service can be affected during upgrade.

Status

Status contains the current state of catalog CR. More information you can find below:

status:
  # lastDeployedSpec contains last successfully deployed specification.
  # It has same structure as specification.
  # This state is changed after successful updating or creating phase.
  lastDeployedSpec:
    kafka:
      quota: {}
      # enabled set to true, represent that service was successfully installed.
      # this has to be gone (enabled: false) for each service, if you want to delete catalog CR.
      enabled: true
      # release channel which was use for last deploy of service.
      releaseChannel: stable
      # if it is set to true, previous version of service is deployed.
      useDeprecatedVersion: false
      # nodeSelector contains latest applied nodes labels where pods of service will run.
      nodeSelector:
        kubernetes.io/os: linux
    kyma:
      quota: {}
      releaseChannel: stable
    kyverno:
      quota: {}
      releaseChannel: stable
    postgreSQL:
      quota: {}
      releaseChannel: stable
    scone:
      quota: {}
      releaseChannel: stable
  # previous successful phase
  lastSuccessPhase: Creating
  # processed generation of specification
  observedGeneration: 1
  # current phase
  # - "" (empty) it is default phase after creating of new CR
  # - Creating # can do first installation of services
  # - Running # desired state of CR
  # - Deleting # deleting process of CR is running
  # - Updating # updating process of CR is running (change of release channel, upgrade of version, install/uninstall of services)
  # - Error # previous phase failed
  phase: Running

WebUI

Catalog CR can be managed with busola dashboard page. The CR should be visible on the left menu as an item Catalog, within OSC Category.