mesh.proto

Package: supergloo.solo.io

Types:

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
"smiEnabled": bool
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
smiEnabled bool whether or not to use SMI to configure this mesh

DiscoveryMetadata

Generic discovery data shared between different meshes

"enableAutoInject": bool
"upstreams": []core.solo.io.ResourceRef
"mtlsConfig": .supergloo.solo.io.MtlsConfig
Field Type Description Default
enableAutoInject bool Whether or not auto-injection is enabled for a given mesh
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