# Configuration and Usage

## Reference Configurations

The source distribution includes a set of example configuration information for each of the major Grey Matter deployment types:

* Service-to-service
* Sidecar Proxy
* Edge Proxy
* Multi-mesh

The goal of this set of example configurations is to demonstrate the full capabilities of Grey Matter in a complex deployment. All features will not be applicable to all use cases. For full documentation see the [configuration reference](https://www.envoyproxy.io/docs/envoy/latest/configuration/configuration#config).

### Configuration Generator

We use [jinja](http://jinja.pocoo.org/) templating to make our configurations easier to create and manage. The source distribution includes a version of the configuration generator that loosely approximates what we use at Lyft. We have also included three example configuration templates for each of the above three scenarios.

* Generator script
* Service to service template
* Sidecar Proxy Template
* Edge Proxy Template
* Multi-mesh Template

To generate the example configurations run the following from the root of the repo:

```
mkdir -p generated/configs
bazel build //configs:example_configs
tar xvf $PWD/bazel-genfiles/configs/example_configs.tar -C generated/configs
```

The previous command will produce three fully expanded configurations using some variables defined inside of this-script. See the comments inside of this-script for detailed information on how the different expansions work.

{% hint style="info" %}
**Notes about the example configurations:**

* An instance of endpoint discovery service is assumed to be running at `discovery.yourcompany.net`
* DNS for `yourcompany.net` is assumed to be setup for various things. Search the configuration templates for different instances of this.
* Tracing is configured for ....  To disable this or enable . ... or .... tracing, delete or change the tracing configuration accordingly.
* The configuration demonstrates the use of a global rate limiting service.To disable this delete the rate limit configuration.
* Route discovery service is configured for the service to service reference configuration and it is assumed to be running at `rds.yourcompany.net`.
* Cluster discovery service is configured for the service to service reference configuration and it is assumed that be running at `cds.yourcompany.net`.
{% endhint %}

## Grey Matter Configuration Topics

* Consul
* Fabric
  * Set Up the Grey Matter CLI
  * Set and Modify Sidecar Filters
  * Configure Audits
  * Use the Catalog API
  * Add and Delete a Service from the Mesh
  * Enable Audits to Be Ingested into Elasticsearch with Kibana
* Mesh Configuration
  * Filters
    * Filters
    * RBAC
  * Networking
    * Host Identification
    * Protocol Switching
  * Routing
    * Multi-Mesh
* More Mesh Configurations
  * Objects
    * Cluster
    * Domain
    * Listener
    * Proxy
    * Route
    * Shared Rules
    * Zone
  * gm-control
  * Discovery
  * Observability
  * L7 Traffic Management
  * Blacklist - Whitelist
  * Develop and Debug
* Traffic Management
* Authentication Policy
* Authorization
* Installation Options
* Policies and Telemetry
* Operator Installation
* Resource Annotations
* Installation Options Changes
* Service Mesh

## Questions?

{% hint style="info" %}
**Configuration Issues?**

Contact us at [Grey Matter Support](https://support.greymatter.io/support/home) to reach our team.
{% endhint %}
