Configure Traffic Management Using a Service Mesh
Before you begin
-
You are familiar Traffic Management Using a Service Mesh.
-
In your target Kubernetes cluster, you must install a service mesh that complies with the Service Mesh Interface (SMI) spec. See the list of supported service mesh products that have been tested with Armory CD-as-a-Service.
CD-as-a-Service does not configure proxy sidecar injection.
Configure traffic management
Add a top-level trafficManagement
section to your deployment file.
trafficManagement:
- targets: ["<target>"]
smi:
- rootServiceName: "<rootServiceName>"
canaryServiceName: "<rootServiceName>-canary"
trafficSplitName: "<rootServiceName>"
kubernetes:
- activeService: "<activeServiceName>"
previewService: "<previewServiceName>"
targets
: (Optional) comma-delimited list of deployment targets; if omitted, CD-as-a-Service applies the traffic management configuration to all targets.
smi.rootServiceName
: (Required if configuring an smi
block) the name of a Kubernetes Service
. Its service selector should target a Kubernetes Deployment
resource in your deployment’s manifests. The SMI TrafficSplit
spec defines a root service as the fully qualified domain name (FQDN) used by clients to communicate with your application. The Service
should exist at the time of deployment.
smi.canaryServiceName
: (Optional)(Canary) the name of a Kubernetes Service
. Its service selector should target a Kubernetes Deployment
resource in your deployment’s manifests.
- If you provide a
canaryServiceName
, CD-as-a-Service assumes theService
already exists and uses it for deployment. - If you don’t provide a
canaryServiceName
, CD-as-a-Service creates aService
object and gives it the name of the root service with “-canary” appended to it. For example, if your root service is “myRootService”, then the canary service name would be “myRootService-canary”.
smi.trafficSplitName
: (Optional) CD-as-a-Service uses the provided name when creating an SMI TrafficSplit
.
kubernetes.activeService
: (Required if configuring a kubernetes
block)(Blue/Green) the name of a Kubernetes Service
. Its service selector should target a Kubernetes Deployment
resource in your deployment’s manifests. The Service
should exist at the time of deployment.
kubernetes.previewService
: (Optional)(Blue/Green) the name of a Kubernetes Service
. Its service selector should target a Kubernetes Deployment
resource in your deployment’s manifests. The Service
should exist at the time of deployment.
Feedback
Was this page helpful?
Thank you for letting us know!
Sorry to hear that. Please tell us how we can improve.
Last modified May 29, 2022: (975089c8)