Tetrate Istio Subscription Plus (TIS Plus) templates

Overview

Tetrate Istio Subscription Plus (TIS Plus) templates enable deployment of TIS Plus as Kosmos applications.

A template is a reusable resource that defines:

  • Application configurations
  • Container images
  • Deployment structure

Available templates

There are two templates:

  1. Management plane template
  2. Control plane template

Supported versions of TIS Plus

  • 1.12.6
  • 1.14.0

References


Management plane template

The ManagementPlane resource provides the configuration required to install the Istio Subscription Plus management plane on a cluster.

The installation API follows an override model, meaning any optional fields that are not explicitly set will automatically use sensible default values.

Prerequisites

Before starting, ensure you have:

  • Tetrate repository account credentials
  • Verified installation requirements
  • Installed:
  • Installed TCTL (must match TIS Plus version)
  • Logged into your private Docker registry

Sync the TIS Plus images for management plane installation

tctl install image-sync \
  --username <user-name> \
  --apikey <api-key> \
  --registry <registry-location>

Note:

  • Credentials (username and apikey) arguments must hold the Tetrate repository account details provided by Tetrate to enable the download of the container images
  • Registry must point to your private Docker registry

Parameters

Required parameters

NameTypeRequiredCreated by Kosmos ControllerDescriptionExample / Default Value
TIS_PLUS_VERSIONstringTIS Plus version to install1.14.0
REGISTRY_LOCATIONstringLocation of the private registryregistry.example.com
ORGANIZATIONstringOrganization name for TIS Plus installationjoyent
TIS_PLUS_ADMIN_PASSWORDstringPassword for the TIS Plus admin userpassword123

Optional parameters

NameTypeRequiredCreated by Kosmos ControllerDescriptionExample / Default Value
MANAGEMENT_PLANE_REPLICASintNumber of management plane replicas1
ELASTIC_HOSTstringElasticsearch host (uses embedded store if not set)
ELASTIC_PORTstringElasticsearch port
ELASTICSEARCH_USERNAMEstringElasticsearch username
ELASTICSEARCH_PASSWORDstringElasticsearch password
ELASTICSEARCH_CACERTstringCA certificate for Elasticsearch TLS
identityProvider_oidc_scopesstringSpecifies the scopes sent to the OIDC provider during authentication.
The required openid scope is included by default, and any additional scopes are appended.

In many cases, extra scopes such as profile or email are needed when user records in TSB cannot be uniquely identified using only the sub claim from the ID token.
identityProvider_oidc_redirectUristringSpecifies the public URI where TSB is accessed.

This is the redirect URI used by the OIDC provider after successful authentication and must be registered with the provider.
The URI must include the path: /iam/v2/oidc/callback

Example:

If TSB is accessible at https://example.com, then the redirect URI must be:
https://example.com/iam/v2/oidc/callback
Ensure that this value exactly matches the redirect URI configured in the OIDC provider application settings.
https://example.com/iam/v2/oidc/callback
identityProvider_oidc_providerConfig_dynamic_configurationUristringSpecifies the OIDC provider’s well-known configuraation URI.

When provided, TSB automatically discovers and configures the OIDC client settings, including:

* Authorization endpoint
* Token endpoint
* JWKS URI

This eliminates the need to manually configure these endpoints

Install TIS Plus Management Plane

Method 1: Using Kosmos UI

  1. Log in to Kosmos

    Kosmos Login

  2. Select the cluster to deploy your application.

  3. Click Install App

    Install App

  4. Fill required fields Note: If using a Fleet cluster to install the application, make sure to create a namespace and a ClusterRoleBinding that grants the service account sufficient permissions to create required resources.

kubectl create namespace <namespace-name>
kubectl create clusterrolebinding <clusterrolebinding-name> \
  --clusterrole=cluster-admin \
  --serviceaccount=<namespace>:job-tetrate-istio-subscription-plus-management-plane

Configuration setup
Select TIS plus version
5. Click Install On successful creation of the management plane app, you will see the screen below.
validate-installation

Method 2: Using Kosmos CLI

Run command kosmos install app [flags] to install the TIS PLUS Management Plane components.

kosmos install app \
  --name tetrate-istio-subscription-plus-management-plane \
  --fleet <fleet-name> \
  --target-cluster <cluster-name> \
  --parameter-file <path-to-parameters-yaml-file> \
  --target-namespace <namespace-name>

Sample parameter YAML file content

TIS_PLUS_VERSION: <tis-plus-version>
REGISTRY_LOCATION: <registry-location>
ORGANIZATION: <organization>
TIS_PLUS_ADMIN_PASSWORD: <tis-plus-admin-password>
MANAGEMENT_PLANE_REPLICAS: <management-plane-replicas>

cli-install

Access management plane

You can now obtain the URL to access the TIS Plus Management Plane. This is the IP address or Hostname of the Front Envoy service that can be obtained by running command.

kubectl get svc -n tsb envoy \
  --output jsonpath='{.status.loadBalancer.ingress[0]}'

Access the management plane :

https://<management-plane-url>:<port>

Please note: The default port is 8443, unless the Front Envoy port has been changed during installation.

Tetrate service bridge

Configure tctl

Run the following commands to configure tctl with your credentials

tctl config clusters set helm \
  --bridge-address ${FRONT_ENVOY_ADDRESS}:8443 \
  --tls-insecure

tctl config users set helm \
  --username admin \
  --password ${TIS_PLUS_ADMIN_PASSWORD} \
  --org ${ORG}

tctl config profiles set helm \
  --cluster helm \
  --username helm

tctl config profiles set-current helm

Verify configuration

tctl config view

Onboarding cluster to TIS Plus

Setup pull secrets

To set up pull secrets in the TIS Plus namespacs, run the following commands

kubectl get namespace tis-plus-system || kubectl create namespace tis-plus-system

kubectl create secret docker-registry tis-plus-pull-secret \
  --docker-server=<your-registry-server> \
  --docker-username=<your-username> \
  --docker-password=<your-password> \
  --docker-email=<your-email> \
  -n tis-plus-system

Register workload cluster

cat <<EOF > cluster-config.yaml
apiVersion: api.tsb.tetrate.io/v2
kind: Cluster
metadata:
  name: cluster-1
  organization: <organization-name>
EOF

tctl apply -f cluster-config.yaml

tctl x cluster-install-template cluster-1 > cluster-1-values.yaml

Verify registration

tctl get cluster

You can also validate the registered cluster from Management console

Registered clusters


Tetrate Istio Subscription Plus (TIS Plus) Control Plane template

The ControlPlane resource defines the configuration required to install the Istio Subscription Plus control plane on a cluster.

The installation API uses an override model, so any optional fields that are not explicitly specified will automatically fall back to sensible default values.

Prerequisites

Before you begin, ensure the following requirements are met:

  • Acquired Tetrate repository account credentials

  • Verified installation requirements

  • Installed supported versions of:

    for additional details see supported platforms

  • Installed TCTL

    • The TCTL version must match the TIS Plus version being installed
  • Istio is installed and running.

    helm repo add istio https://istio-release.storage.googleapis.com/charts
    helm repo update
    kubectl create namespace istio-system
    helm install istiod istio/istiod -n istio-system --wait
    
  • Logged into your private Docker registry

Sync images

Run the following command to sync TIS Plus images for control plane installation:

tctl install image-sync \
  --mode observe \
  --username <user-name> \
  --apikey <api-key> \
  --registry <registry-location>

Note:

  • username and apikey must be your Tetrate repository credentials
  • registry must point to your private Docker registry

Encode cluster configuration

Before proceeding with the template, encode the cluster values file:

base64 < cluster-1-values.yaml
  • This command generates a base64-encoded string
  • The encoded output will be used as input for the template in subsequent steps

Parameters

NameTypeRequiredCreated by Kosmos ControllerDescriptionExample / Default Value
REGISTRY_LOCATIONstringLocation of the private registry containing TIS Plus imagesregistry.example.com
TIS_PLUS_VERSIONstringTIS Plus version to install1.12.6
CONTROL_PLANE_REPLICASintNumber of replicas of TIS Plus control plane operator1
CLUSTER_VALUES_ENCODEDstringBase64-encoded contents of the cluster values YAML file

Install TIS plus control plane

Method 1: Using Kosmos UI

  1. Log in to Kosmos

  2. Select your cluster

  3. Click Install App

  4. Fill required fields

Note: If using a Fleet cluster to install the application, make sure to create a namespace and a ClusterRoleBinding that grants the service account sufficient permissions to create required resources.

kubectl create clusterrolebinding <clusterrolebinding-name> \
  --clusterrole=cluster-admin \
  --serviceaccount=<namespace>:job-tetrate-istio-subscription-plus-control-plane

TIS plus installation
5. Click Install
Validate TIS installation

Method 2: Using Kosmos CLI

kosmos install app [flags]

Example

kosmos install app \
  --name tetrate-istio-subscription-plus-control-plane \
  --fleet <fleet-name> \
  --target-cluster <cluster-name> \
  --parameter-file <path-to-parameters-yaml-file> \
  --target-namespace <namespace-name>

Sample parameter YAML file content

CLUSTER_VALUES_ENCODED: <cluster-values-encoded>
REGISTRY_LOCATION: <registry-location>
TIS_PLUS_VERSION: <tis-plus-version>
CONTROL_PLANE_REPLICAS: <control-plane-replicas>

After the Control plane is installed, review the pods

kubectl get pods -n tis-plus-system

Control plane is installed
Control plane validate

Installing Bookinfo Example

Create Tenant

Create Tenant

Create Workspace

Create Workspace

Bookinfo Example reference

Edit this page on GitHub