Traefik
Traefik is a modern HTTP reverse proxy and load balancer made to deploy microservices with ease. you can use this addon as a cluster gateway or a microservices gateway.
vela addon enable traefik
Port forward will work as a proxy to allow visiting Traefik dashboard by local port.
vela port-forward -n vela-system addon-traefik
expected output:
Forwarding from 127.0.0.1:9000 -> 9000Forwarding from [::1]:9000 -> 9000Forward successfully! Opening browser ...Handling connection for 9000
You can visiting Traefik dashboard with address http://127.0.0.1:9000/dashboard/.
If your cluster has cloud LoadBalancer available:
vela addon enable traefik serviceType=LoadBalancer
- Configure a HTTP domain for a component.
apiVersion: core.oam.dev/v1beta1kind: Applicationmetadata:name: examplenamespace: e2e-testspec:components:- name: express-servertype: webserviceproperties:image: oamdev/hello-worldports:- port: 8000expose: truetraits:- properties:domains:- example.domain.comrules:- path:type: PathPrefixvalue: /port: 8080type: http-route
- Configure a HTTPS domain for a component.
You should create a secret that includes the certificate first.
apiVersion: v1type: Opaquedata:tls.crt: <BASE64>tls.key: <BASE64>kind: Secretmetadata:annotations:config.oam.dev/alias: ""config.oam.dev/description: ""labels:config.oam.dev/catalog: velacore-configconfig.oam.dev/multi-cluster: "true"config.oam.dev/project: addonsconfig.oam.dev/type: config-tls-certificateworkload.oam.dev/type: config-tls-certificatename: example
The example application configuration:
apiVersion: core.oam.dev/v1beta1kind: Applicationmetadata:name: example-httpsnamespace: e2e-testspec:components:- name: express-servertype: webserviceproperties:image: oamdev/hello-worldports:- port: 8000expose: truetraits:- properties:domains:- example.domain.comrules:- path:type: PathPrefixvalue: /port: 8080secrets:- name: exampletype: https-route
defines HTTP rules for mapping requests from a Gateway to Application.
| Name | Description | Type | Required | Default |
|---|---|---|---|---|
| gatewayName | Specify the gateway name | string | false | traefik-gateway |
| listenerName | Specify the listener name of the gateway | string | false | web |
| domains | Specify some domains, the domain may be prefixed with a wildcard label (*.) | []string | true | |
| rules | Specify some HTTP matchers, filters and actions. | []rules | true |
| Name | Description | Type | Required | Default |
|---|---|---|---|---|
| path | An HTTP request path matcher. If this field is not specified, a default prefix match on the “/“ path is provided. | path | false | |
| headers | Conditions to select a HTTP route by matching HTTP request headers. | []headers | false | |
| serviceName | Specify the service name of component, the default is component name. | string | false | |
| port | Specify the service port of component. | int | true |
| Name | Description | Type | Required | Default |
|---|---|---|---|---|
| name | string | true | ||
| type | string | true | ||
| value | string | true |
| Name | Description | Type | Required | Default |
|---|---|---|---|---|
| type | string | true | PathPrefix | |
| value | string | true | / |
defines HTTPS rules for mapping requests from a Gateway to Application.
| Name | Description | Type | Required | Default |
|---|---|---|---|---|
| secrets | Specify the TLS secrets | []secrets | true | |
| TLSPort | int | true | 443 | |
| domains | Specify some domains, the domain may be prefixed with a wildcard label (*.) | []string | true | |
| rules | Specify some HTTP matchers, filters and actions. | []rules | true |
| Name | Description | Type | Required | Default |
|---|---|---|---|---|
| path | An HTTP request path matcher. If this field is not specified, a default prefix match on the “/“ path is provided. | path | false | |
| port | Specify the service port of component. | int | true | |
| headers | Conditions to select a HTTP route by matching HTTP request headers. | []headers | false | |
| serviceName | Specify the service name of component, the default is component name. | string | false |
| Name | Description | Type | Required | Default |
|---|---|---|---|---|
| name | string | true | ||
| type | string | true | ||
| value | string | true |
| Name | Description | Type | Required | Default |
|---|---|---|---|---|
| type | string | true | PathPrefix | |
| value | string | true | / |
| Name | Description | Type | Required | Default |
|---|---|---|---|---|
| name | string | true | ||
| namespace | string | false |
defines TCP rules for mapping requests from a Gateway to Application.
| Name | Description | Type | Required | Default |
|---|---|---|---|---|
| rules | Specify the TCP matchers | []rules | true |
| Name | Description | Type | Required | Default |
|---|---|---|---|---|
| gatewayPort | Specify the gateway listener port | int | true | |
| port | Specify the service port of component. | int | true | |
| serviceName | Specify the service name of component, the default is component name. | string | false |
This component definition is designed to manage the TLS certificate
| Name | Description | Type | Required | Default |
|---|---|---|---|---|
| cert | the certificate public key encrypted by base64 | string | true | |
| key | the certificate private key encrypted by base64 | string | true |
Last updated on Feb 9, 2023 by dependabot[bot]