Skip to main content
Version: 0.9.x

VM Service Registry

A custom TSB ServiceDefinition CRD must be created for each VM service (workload) in the same namespace where tcc-gateway ingress gateway is deployed, that routes traffic to VM workloads. Create one custom TSB ServiceDefinition for each such VM service.

Setting up TSB ServiceDefinition CRD

Following example declares a VM service called details in the bookinfo Kubernetes namespace. The service has no sidecars and requires a simple TLS connection. Services in bookinfo namespace can now access the details service as detailsvm.prod.internal.company.com. The VM service is expected to receive traffic from the tcc-gateway ingress gateway.

Note that, this ingress gateway can be dedicated to VM workloads, or shared for routing across Kubernetes and virtual machines.

cat <<EOF | kubectl apply -f - <<
apiVersion: registry.tetrate.io/v1alpha1
kind: ServiceDefinition
metadata:
name: details
namespace: bookinfo
spec:
hostname: detailsvm.prod.internal.company.com
ports:
- number: 80
name: http
protocol: HTTP
- number: 443
name: https
protocol: HTTPS
sidecarsPresent: false
externalServiceTlsSettings:
tlsMode: SIMPLE
caCertificates: /path/to/ca/cert/to/verify/server/cert
endpointSource:
manual:
values:
- address: 1.1.1.1
- address: 2.2.2.2
EOF
Field NameDescription
hostnameHost string by which this service will be accessed. For instance, while choosing route destination. This is not a routable FQDN.
ports[]A list of ports/protocols associated with this service
sidecarsPresentBoolean, true or false. If true, it would entail more sidecar settings (see next section): sidecarSettings: usingIptablesCapture: false egressHttpProxyPort: 15080 Note: only usingIptablesCapture: false settings (i.e. no iptables) is supported today.
externalServiceTlsSettingsTLS mode and certificates for this VM service.
endpointSourceSource of endpoints. Only manual with values is supported today. Represents the service endpoints.