Enable to sidecar_service for macOS, Windows and Qemu VMs.
- Dominant language
- Go
- Stars
- 17k
- Forks
- 2.1k
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 105
Description
### Proposal
Support defining a `sidecar_service` stanza without this spinning up the associated Consul Envoy proxy. For example by specifying no driver for the task:
```
connect {
sidecar_service {}
sidecar_task {
driver = false
}
}
```
### Use-cases
The use case I'm trying to solve is two-fold:
1. Support macOS and Window. Using the `sidecar_service` does not work on macOS or windows because it requires CNI bridge networking. If it's possible to disable the `sidecar_task`, this also might drop the need for the bridge networking constraint. That way the config for Linux and macOS/Windows work the same and does not require configuring Consul manually.
2. Ability to run the Consul Envoy proxy in a Nomad managed Qemu VM, to enable Consul connect there as well! If the Consul Envoy proxy is running outside the Qemu VM, then Envoy cannot forward traffic to a local service without port-forwarding the necessary port in the VM, defeating the purpose having Consul connect setup in the first place as folks will be able to access the VM port from the host.
### Attempted Solutions
This is an example of a kubernetes master and worker setup using Nomad Qemu jobs where the master can access the worker through a Consul Envoy proxy running inside the Qemu VM. If this proposal would be implemented the `register-proxy` and `deregister-proxy` tasks would not be necessary making the setup a lot cleaner.
**example.nomad**
```
job "kubernetes" {
datacenters = ["dc1"]
type = "service"
group "master" {
count = 1
network {
port "ssh" {
}
port "sidecar" {
}
}
service {
name = "kubernetes-master"
}
task "register-proxy" {
lifecycle {
hook = "prestart"
}
template {
data = <
Contributor guide
No contributing guide indexed for this repository
Research direction
No source files or tests are named. Start with the `sidecar_service` stanza and the `example.nomad` configuration, then determine how the requested behavior should apply on macOS, Windows, and Qemu VMs; done means those environments can use the stanza without the associated Envoy proxy being started.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- devops, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100