Skip to main content
logoTetrate Istio SubscriptionVersion: Next

Installation

Following are the steps to install the TIS Workload Onboarding Operator.

Prerequisites

  • Helm is installed
  • Acquired credentials from Tetrate to access the TIS add-ons repository.
tip

Tetrate uses the same credentials for FIPS and add-on repositories. If you have already acquired credentials for the FIPS repository, you can use the same credentials to access the TIS add-on repository.

Installation

Before installing Workload Onboarding Operator, you need to add the TIS Helm repository to your Helm client:

helm repo add tis-addons https://tis.tetrate.io/charts
helm repo update

Set the required variables for TIS credentials:

export TIS_USER="<tis-username>"
export TIS_PASS="<tis-password>"

Then create a secret for the TIS add-ons repository. This will be used later to pull the Workload Onboarding Operator image from the TIS add-ons repository.

kubectl create secret docker-registry tetrate-addons-creds \
--docker-server="addon-containers.istio.tetratelabs.com" \
--docker-username=${TIS_USER} \
--docker-password=${TIS_PASS} \
--docker-email="${USER}@" \
-n tis

Create a values file for the Onboarding Operator with the required values. Please note that the repository.onboardingPackageIstioSidecar.tag value should be aligned with the TID version installed in the Kubernetes cluster.

cat <<EOF > onboarding-operator-values.yaml
image:
pullSecrets:
- name: tetrate-addons-creds # (1) REQUIRED
repository:
onboardingPackageIstioSidecar:
tag: 1.24.3-tetrate3 # (2) REQUIRED
onboarding:
endpoint:
host: onboarding-endpoint.example # (3) REQUIRED
tlsSecretName: onboarding-endpoint-tls-cert # (4) REQUIRED
EOF
  1. You must provide the secret name created in the previous step.
  2. You must provide the TID version installed in the Kubernetes cluster.
  3. You must provide a DNS name for the Workload Onboarding Endpoint, e.g. onboarding-endpoint.your-company.corp.
  4. You must provide the name of the Kubernetes Secret that holds the TLS certificate for the Workload Onboarding Endpoint.

Install the Onboarding Operator:

helm install onboarding-operator tis-addons/onboarding-operator \
--namespace istio-system \
--values onboarding-operator-values.yaml \
--version 0.1.0

Note: The currently supported TID versions are: 1.24.3-tetrate0, 1.24.3-tetrate1, 1.24.3-tetrate2, 1.24.3-tetrate3. More versions will be supported in the future.

Workload Onboarding Endpoint

The Workload Onboarding Endpoint is the component that the individual Workload Onboarding Agent(s) connect to join the mesh.

In production scenarios, the Workload Onboarding Endpoint must be highly available, have a stable address, and enforce TLS on incoming connections.

For that reason, the DNS name and TLS certificate are mandatory parameters for enabling Workload Onboarding.

DNS name

You can choose any DNS name for the Workload Onboarding Endpoint.

That name must be associated with the address of the Kubernetes Service vmgateway from the istio-system namespace.

In production scenarios, you can achieve that by using external-dns.

TLS certificate

To provide a certificate for the Workload Onboarding Endpoint, you need to create a Kubernetes secret of type TLS in the istio-system namespace.

You have several options:

  • Either create a Kubernetes secret from an X509 cert and a private key procured out-of-band
  • Or you can use cert-manager to automate provisioning of the TLS cert

TLS certificate procured out-of-band

To provide a TLS certificate procured out-of-band, use:

kubectl create secret tls <onboarding-endpoint-tls-cert> \
-n istio-system \
--cert=<path/to/cert/file> \
--key=<path/to/key/file>

TLS certificate procured by cert-manager

To automate the provisioning of the TLS certificate, you can use cert-manager.

For example, you can procure a free TLS certificate signed by a trusted CA, such as Let's Encrypt.

In this case, your configuration will look similar to:

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: <onboarding-endpoint-tls-cert>
namespace: istio-system
spec:
secretName: <onboarding-endpoint-tls-cert>
duration: 2160h # 90d
renewBefore: 360h # 15d
usages:
- server auth
dnsNames:
- <onboarding-endpoint-dns-name>
issuerRef:
name: <your-issuer>
kind: ClusterIssuer

Refer to the cert-manager documentation for further details.

Uninstallation

First, delete the onboarding-operator deployment, the Onboarding Operator is watching the deletion of this deployment, and it will remove all the resources created by the itself.

kubectl -n istio-system delete deploy onboarding-operator

Then, you can uninstall the helm chart with:

helm -n istio-system uninstall onboarding-operator

Helm Configuration

The following table lists the configurable parameters of the Workload Onboarding Operator chart and their default values.

KeyTypeDefaultDescription
image.repositorystring"addon-containers.istio.tetratelabs.com"Image repository from where download the onboarding images
image.tagstring"0.1.0-onboarding"Onboarding image tag to be used
image.pullSecretslist[]Image pull secrets to be used to pull the onboarding images
image.pullPolicystring"IfNotPresent"
repository.onboardingPackageIstioSidecar.tagstring"1.24.3-tetrate3"Istio sidecar tag to be used for the onboarding workloads
onboarding.endpoint.hoststring"onboarding-endpoint.example"Hostname for the onboarding endpoint
onboarding.endpoint.tlsSecretNamestring"onboarding-endpoint-tls-cert"Secret name for the onboarding endpoint TLS certificate

To view all support configuration options and documentation, run:

helm show values tetratelabs/onboarding-operator