Workload Group
WorkloadGroup describes a collection of workload instances. It provides a specification that the workload instances can use to bootstrap their proxies, including the metadata and identity. It is only intended to be used with non-k8s workloads like Virtual Machines, and is meant to mimic the existing sidecar injection and deployment specification model used for Kubernetes workloads to bootstrap Istio proxies.
The following example declares a workload group representing a collection of workloads that will be registered under reviews in namespace bookinfo. The set of labels will be associated with each workload instance during the bootstrap process, and the ports 3550 and 8080 will be associated with the workload group and use service account default. app.kubernetes.io/version is just an arbitrary example of a label.
apiVersion: networking.istio.io/v1 kind: WorkloadGroup metadata: name: reviews namespace: bookinfo spec: metadata: labels: app.kubernetes.io/name: reviews app.kubernetes.io/version: "1.3.4" template: ports: grpc: 3550 http: 8080 serviceAccount: default probe: initialDelaySeconds: 5 timeoutSeconds: 3 periodSeconds: 4 successThreshold: 3 failureThreshold: 3 httpGet: path: /foo/bar host: 127.0.0.1 port: 3100 scheme: HTTPS httpHeaders: - name: Lit-Header value: Im-The-Best WorkloadGroup
WorkloadGroup enables specifying the properties of a single workload for bootstrap and provides a template for WorkloadEntry, similar to how Deployment specifies properties of workloads via Pod templates. A WorkloadGroup can have more than one WorkloadEntry. WorkloadGroup has no relationship to resources which control service registry like ServiceEntry and as such doesn’t configure host name for these workloads.
ObjectMeta
ObjectMeta describes metadata that will be attached to a WorkloadEntry. It is a subset of the supported Kubernetes metadata.