Manage runtime plane components

This topic explains how to configure and manage the Apigee hybrid runtime plane components.

About the overrides file

The first time you install the hybrid runtime into a cluster, you must create a configuration overrides file. This file lets you provide required property values needed to install hybrid, such as the name of your Google project, organization name, environment details, certificate files, and so on. You can also override certain default values for most hybrid components in the overrides file. For a complete list of configurable properties, see the Configuration property reference.

The hybrid installation steps walk through the process of creating an overrides file and applying your configuration to a cluster. If you want to change the configuration later, modify the overrides file you created and re-apply it. See Making a configuration change.

Making a configuration change

To make a configuration change to a hybrid runtime plane component, edit your overrides file and apply the changes with apigeectl. For a complete list of configurable properties, see the Configuration property reference.

For example, to enable the logger component, update the overrides file and re-apply it:

  1. Open your overrides file. Be sure to use the same overrides file that was used to install the hybrid runtime into the cluster.
  2. Locate the logger element in the file. For example:
    ...
    logger:
      enabled: false
    ...
  3. Change the property value to true:
    ...
      logger:
      enabled: true
    ...
  4. Use apigeectl to apply the change to the cluster:
    $APIGEECTL_HOME/apigeectl apply -f $HYBRID_FILES/overrides/OVERRIDES.yaml --telemetry

    The --telemetry flag tells apigeectl to only update the logger component. For information about scoping parameters, like --telemetry, see Scopes for applying apigeectl.

Which configuration properties can you modify?

You can find the complete list of configurable properties in the Configuration property reference. The reference only lists the properties you can modify; if you try to modify a property that's not in the reference, the change is ignored.

How to use the configuration reference

The Configuration property reference uses dot notation to describe configuration elements, where the first item is the top-level element name followed by properties and child properties. For example:

authz.image.pullPolicy

In the overrides file, the properties are formatted in proper YAML. For the above example, the top-level authz element is left-indented and sub-element properties are indented under it. Also, YAML requires a colon at the end of each element and sub-element.

For example, to set the authz.image.pullPolicy property to Always, locate this YAML stanza in the overrides file and set it as follows:

authz:
  image:
    pullPolicy: Always

For another example, the property cassandra.auth.admin.password (as it is listed in Configuration property reference) is used to set the Cassandra admin password. To change it, locate the following YAML in the overrides file and set it as follows:

cassandra:
  auth:
    admin:
      password: abc123

Remember, the Configuration property reference describes all of the properties that you can set on hybrid runtime plane components. Follow the pattern explained above to modify these elements in your overrides file before applying the changes to your cluster.

About configuration defaults

Apigee maintains its default component configuration in the file $HYBRID_FILES/config/values.yaml. This file specifies defaults, when possible, for each hybrid component.

Your overrides files follow the same YAML structure as values.yaml; however, an overrides file includes only a subset of the configuration properties found in values.yaml. Remember, not all properties are editable. When you apply a configuration to a cluster, your overrides are merged with the defaults to create the complete Kubernetes cluster configuration.

Using pre-defined sample overrides files

Apigee provides a set of sample overrides files to help guide you in setting up your hybrid deployment. It's a good practice to copy and modify the overrides file that most closely matches your installation requirements.

The following samples are included in the directory $APIGEECTL_HOME/examples:

Sample overrides files Description
overrides-small.yaml This sample is ideal for getting started quickly. It uses the minimum recommended footprint to start the hybrid runtime components. This sample configuration relies as much as possible on default settings and values. All the minimum replicas are set to 1.
overrides-medium.yaml This sample is a good starting point for testing and QA environments. Individual components have been granted a higher level of resources to deal with additional traffic. Cassandra uses SSD disks for performance. In this environment, it is recommended that users install stateful and stateless components on separate nodes. See Configure dedicated nodes.
overrides-large.yaml This sample is a good starting point for high performance environments such as pre-production and production. The sample includes properties for setting encryption keys, passwords, and others. Individual components have a minimum of two replicas.
private-overrides.yaml This sample illustrates how to use images from a private image repository. See Use a private image repository.

Custom annotations

Annotations are key/value maps used to attach metadata to Kubernetes pods. You can create custom annotations for the following hybrid component properties listed in Configuration property reference:

To add a custom name/value pair annotation, open your overrides file and add an annotations stanza for the respective component, then apply the change with apigeectl. For example:

runtime:
  annotations:
    businessunit: "bu1"

Use dry runs to test configuration changes

You can use the --dry-run flag with apigeectl to test your overrides configuration file without actually applying it to your cluster. This option is useful for debugging an installation problem because it shows you exactly what will be applied to the cluster.

In Apigee hybrid, the syntax of the --dry-run flag depends on the version of kubectl you are running. Check the version of kubectl with the following command:

kubectl version

kubectl version 1.17 and older:

$APIGEECTL_HOME/apigeectl init -f $HYBRID_FILES/overrides/OVERRIDES.yaml --dry-run=true

kubectl version 1.18 and newer:

  $APIGEECTL_HOME/apigeectl init -f $HYBRID_FILES/overrides/OVERRIDES.yaml --dry-run=client

Create multiple overrides files as needed

You can create multiple overrides files, where each one serves a specific requirement. For example, you might have an overrides file that tunes your cluster for production, and another for creating a cluster for testing. You can then maintain these files in your source control system.

Use the apigeectl apply command to apply an overrides file to the cluster. For example:

$APIGEECTL_HOME/apigeectl apply  -f $HYBRID_FILES/overrides/test_env_override.yaml

Delete runtime components

The apigeectl delete command provides flags that let you delete all or a subset of the installed hybrid runtime components. For details, on command usage, see the apigeectl reference page. See also Uninstall hybrid runtime.

Delete an environment

To completely delete an environment, you have to remove both the runtime (local) and management (cloud) planes. For details, see Delete environments.