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 theServicealready exists and uses it for deployment. - If you don’t provide a
canaryServiceName, CD-as-a-Service creates aServiceobject 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)