Install Convention Service

This document describes how to install convention controller from the Tanzu Application Platform package repository. Convention controller is a primary component of Convention Service.

Note: Use the instructions on this page if you do not want to use a profile to install packages. Both the full and light profiles include convention controller. For more information about profiles, see Installing the Tanzu Application Platform Package and Profiles.

Convention Service allows app operators to enrich Pod Template Specs with operational knowledge based on specific conventions they define. It includes the following components:

  • Convention controller: Provides metadata to the convention server. Implements update requests from the convention server.
  • Convention server: Receives and evaluates metadata associated with a workload from convention controller. Requests updates to the Pod Template Spec associated with that workload. There can be one or more convention servers for a single convention controller instance.

In the following procedure, you install convention controller. You install convention servers as part of separate installation procedures. For example, you install an app-live-view convention server as part of the app-live-view installation.


Before installing convention controller:

  • Complete all prerequisites to install Tanzu Application Platform. For more information, see Prerequisites.
  • Install cert-manager on the cluster. For more information, see Install cert-manager.


To install convention controller:

  1. List version information for the package by running:

    tanzu package available list --namespace tap-install

    For example:

    $ tanzu package available list --namespace tap-install
    - Retrieving package versions for
      NAME                                          VERSION  RELEASED-AT  0.6.3    2022-03-08T00:00:00Z
  2. (Optional) Gather values schema:

    tanzu package available get --values-schema --namespace tap-install

    Where VERSION-NUMBER is the version of the package listed in step 1.

    For example:

    $ tanzu package available get --values-schema --namespace tap-install
    KEY           DEFAULT  TYPE    DESCRIPTION                                                                   
    ca_cert_data           string  Optional: PEM Encoded certificate data for image registries with private CA.  
  3. (Optional) Enable Convention Controller to connect to image registries that use self-signed or private certificate authorities. If a certificate error x509: certificate signed by unknown authority occurs, this option can be used to trust additional certificate authorities.

    To provide custom cert, create a file named convention-controller-values.yaml that includes the PEM-encoded CA cert data.

    For example:

    ca_cert_data: |
      -----BEGIN CERTIFICATE-----
      -----END CERTIFICATE-----
  4. Install the package by running:

    tanzu package install convention-controller -p -v VERSION-NUMBER -f VALUES-FILE -n tap-install


    • VERSION-NUMBER is the version of the package listed in the earlier step.
    • VALUES-FILE is the path to the file created in the earlier step.

    For example:

    tanzu package install convention-controller -p -v 0.6.3 -f VALUES-FILE convention-controller-values.yaml -n tap-install
    / Installing package ''
    | Getting namespace 'tap-install'
    - Getting package metadata for ''
    | Creating service account 'convention-controller-tap-install-sa'
    | Creating cluster admin role 'convention-controller-tap-install-cluster-role'
    | Creating cluster role binding 'convention-controller-tap-install-cluster-rolebinding'
    \ Creating package resource
    | Package install status: Reconciling
    Added installed package 'convention-controller' in namespace 'tap-install'
  5. Verify the package install by running:

    tanzu package installed get conventions-controller -n tap-install

    For example:

    tanzu package installed get conventions-controller -n tap-install
    Retrieving installation details for conventions-controller...
    NAME:                    conventions-controller
    PACKAGE-VERSION:         0.6.3
    STATUS:                  Reconcile succeeded
    CONDITIONS:              [{ReconcileSucceeded True  }]

    Verify that STATUS is Reconcile succeeded:

    kubectl get pods -n conventions-system

    For example:

    $ kubectl get pods -n conventions-system
    NAME                                             READY   STATUS    RESTARTS   AGE
    conventions-controller-manager-596c65f75-j9dmn   1/1     Running   0          72s

    Verify that STATUS is Running.

check-circle-line exclamation-circle-line close-line
Scroll to top icon