I hereby claim:
- I am richarddli on github.
- I am rdli (https://keybase.io/rdli) on keybase.
- I have a public key ASCD076t7iqb_iTFcNhFWeWN8l8Q5Pac6JNoNBQKehk60go
To claim this, I am signing this object:
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: quote | |
spec: | |
ports: | |
- name: http | |
port: 80 | |
targetPort: 8080 |
--- | |
apiVersion: extensions/v1beta1 | |
kind: Deployment | |
metadata: | |
name: ambassador | |
spec: | |
replicas: 1 | |
template: | |
metadata: | |
annotations: |
I hereby claim:
To claim this, I am signing this object:
Ambassador operates by reading its configuration resources and constructing an intermediate representation (IR), which is used to build the Envoy configuration. The IR dates pretty far back in Ambassador's life, and largely grew up under the demands of quickly supporting Ambassador's ability to group Mappings to handle the various types of deployments, so it’s emphatically not pretty, and we’re at the point now where it costs us development velocity. It needs a lot of improving.
We’re going to get together as a group and discuss what kind of improvements to make and how to go about them, and you’re invited to participate. We'll be dealing more in terms of concepts and structure than literal code, so we expect to be talking more about data structures and objects, less about syntax and formatting.
You’ll need to have a handle on how Ambassador works with the IR for this, so you’ll need to start by grabbing and building the Ambassador source code:
git clone [email protected]:datawire/ambassador.git
cd ambass
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: httpbin | |
annotations: | |
getambassador.io/config: | | |
--- | |
apiVersion: ambassador/v0 | |
kind: Mapping | |
name: httpbin_mapping |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: prometheus | |
spec: | |
type: NodePort | |
ports: | |
- name: web | |
port: 9090 | |
protocol: TCP |
apiVersion: monitoring.coreos.com/v1 | |
kind: Prometheus | |
metadata: | |
name: prometheus | |
spec: | |
serviceAccountName: prometheus | |
serviceMonitorSelector: | |
matchLabels: | |
ambassador: monitoring | |
resources: |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
name: ambassador-monitor | |
labels: | |
service: ambassador-monitor | |
spec: | |
selector: | |
service: ambassador |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
labels: | |
service: ambassador | |
name: ambassador | |
spec: | |
type: LoadBalancer | |
ports: |
--- | |
apiVersion: v1 | |
kind: Service | |
metadata: | |
labels: | |
service: ambassador-admin | |
name: ambassador-admin | |
spec: | |
type: NodePort | |
ports: |