mesh.proto
Package: supergloo.solo.io
Types:
- Mesh Top-Level Resource
- DiscoveryMetadata
- IstioMesh
- AwsAppMesh
- LinkerdMesh
- MtlsConfig
- MonitoringConfig
- MeshGroup Top-Level Resource
Source File: github.com/solo-io/supergloo/api/v1/mesh.proto
Mesh
Meshes represent a currently registered service mesh.
"status": .core.solo.io.Status
"metadata": .core.solo.io.Metadata
"istio": .supergloo.solo.io.IstioMesh
"awsAppMesh": .supergloo.solo.io.AwsAppMesh
"linkerd": .supergloo.solo.io.LinkerdMesh
"mtlsConfig": .supergloo.solo.io.MtlsConfig
"monitoringConfig": .supergloo.solo.io.MonitoringConfig
"discoveryMetadata": .supergloo.solo.io.DiscoveryMetadata
Field | Type | Description | Default |
---|---|---|---|
status |
.core.solo.io.Status | Status indicates the validation status of this resource. Status is read-only by clients, and set by supergloo during validation | |
metadata |
.core.solo.io.Metadata | Metadata contains the object metadata for this resource | |
istio |
.supergloo.solo.io.IstioMesh | ||
awsAppMesh |
.supergloo.solo.io.AwsAppMesh | ||
linkerd |
.supergloo.solo.io.LinkerdMesh | ||
mtlsConfig |
.supergloo.solo.io.MtlsConfig | mtls config specifies configuration options for enabling mutual tls between pods in this mesh | |
monitoringConfig |
.supergloo.solo.io.MonitoringConfig | configuration for propagating stats and metrics from mesh controllers and sidecars to a centralized datastore such as prometheus | |
discoveryMetadata |
.supergloo.solo.io.DiscoveryMetadata | object which represents the data mesh discovery finds about a given mesh |
DiscoveryMetadata
Generic discovery data shared between different meshes
"injectedNamespaceLabel": string
"enableAutoInject": bool
"meshVersion": string
"installationNamespace": string
"upstreams": []core.solo.io.ResourceRef
"mtlsConfig": .supergloo.solo.io.MtlsConfig
Field | Type | Description | Default |
---|---|---|---|
injectedNamespaceLabel |
string |
list of namespaces which we know are being injected by a given mesh | |
enableAutoInject |
bool |
Whether or not auto-injection is enabled for a given mesh | |
meshVersion |
string |
version of the mesh which is installed | |
installationNamespace |
string |
namespace which the mesh is installed into | |
upstreams |
[]core.solo.io.ResourceRef | upstreams which point to injected pods in the mesh | |
mtlsConfig |
.supergloo.solo.io.MtlsConfig | discovered mtls config of the given mesh |
IstioMesh
Mesh object representing an installed Istio control plane
"installationNamespace": string
"version": string
Field | Type | Description | Default |
---|---|---|---|
installationNamespace |
string |
where the istio control plane has been installed | |
version |
string |
version of istio which has been installed |
AwsAppMesh
Mesh object representing AWS App Mesh
"awsSecret": .core.solo.io.ResourceRef
"region": string
"enableAutoInject": bool
"injectionSelector": .supergloo.solo.io.PodSelector
"virtualNodeLabel": string
"sidecarPatchConfigMap": .core.solo.io.ResourceRef
Field | Type | Description | Default |
---|---|---|---|
awsSecret |
.core.solo.io.ResourceRef | Reference to the secret that holds the AWS credentials that will be used to access the AWS App Mesh service. | |
region |
string |
The AWS region the AWS App Mesh control plane resources (Virtual Nodes, Virtual Routers, etc.) will be created in. | |
enableAutoInject |
bool |
Determines whether pods will be automatically injected with the AWS App Mesh Envoy sidecar proxy. If set to true, supergloo will ensure that a MutatingAdmissionWebhook server with the injection logic is deployed to the cluster and that it has been registered with the Kubernetes API server via a MutatingWebhookConfiguration. This will cause the webhook to be invoked on each pod creation event. | |
injectionSelector |
.supergloo.solo.io.PodSelector | Pods matching this selector will be injected with the sidecar proxy at creation time. NOTE: the sidecar injector webhook currently supports only the NamespaceSelector and LabelSelector | |
virtualNodeLabel |
string |
If auto-injection is enabled, the value of the pod label with this key will be used to calculate the value of APPMESH_VIRTUAL_NODE_NAME environment variable that is set on the injected sidecar proxy container. | |
sidecarPatchConfigMap |
.core.solo.io.ResourceRef | Reference to the config map that contains the patch that will be applied to the spec of the pods matching the injection_selector. |
LinkerdMesh
Mesh object representing an installed Linkerd control plane
"installationNamespace": string
"version": string
Field | Type | Description | Default |
---|---|---|---|
installationNamespace |
string |
where the Linkerd control plane has been installed | |
version |
string |
version of istio which has been installed |
MtlsConfig
the encryption configuration that will be applied by the role
"mtlsEnabled": bool
"rootCertificate": .core.solo.io.ResourceRef
Field | Type | Description | Default |
---|---|---|---|
mtlsEnabled |
bool |
whether or not mutual TLS should be enabled between pods in this mesh | |
rootCertificate |
.core.solo.io.ResourceRef | if set, rootCertificate will override the root certificate used by the mesh to encrypt mtls connections. The structure of the secret must be a standard kubernetes TLS secret such as can be created via kubectl create secret tls if mtlsEnabled is false, this field is ignored If deploying to Consul, Consul Connect requires that the cert and key are generated using ec, not rsa. |
MonitoringConfig
Contains configuration options for monitoring a mesh Currently MonitoringConfig only contains options for configuring an in-cluster Prometheus instance to scrape a mesh for metrics
"prometheusConfigmaps": []core.solo.io.ResourceRef
Field | Type | Description | Default |
---|---|---|---|
prometheusConfigmaps |
[]core.solo.io.ResourceRef | indicates to supergloo that metrics should be propagated to one or more instances of prometheus. add a core.solo.io.ResourceRef for each NAMESPACE.NAME of the configmap used to configure each prometheus instance. assumes that the configmap contains a key named prometheus.yml or prometheus.yaml whose value is the prometheus yaml config as an inline string |
MeshGroup
"status": .core.solo.io.Status
"metadata": .core.solo.io.Metadata
"meshes": []core.solo.io.ResourceRef
Field | Type | Description | Default |
---|---|---|---|
status |
.core.solo.io.Status | Status indicates the validation status of this resource. Status is read-only by clients, and set by supergloo during validation | |
metadata |
.core.solo.io.Metadata | Metadata contains the object metadata for this resource | |
meshes |
[]core.solo.io.ResourceRef | the meshes contained in this group |