1
0
Fork 0

Update gateway api provider to v1alpha2

Co-authored-by: Tom Moulard <tom.moulard@traefik.io>
This commit is contained in:
Kevin Pollet 2021-11-09 11:34:06 +01:00 committed by GitHub
parent e10a82a501
commit 8e32d1913b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
102 changed files with 10330 additions and 7789 deletions

View file

@ -16,9 +16,9 @@ import (
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
"sigs.k8s.io/gateway-api/apis/v1alpha1"
"sigs.k8s.io/gateway-api/pkg/client/clientset/versioned"
"sigs.k8s.io/gateway-api/pkg/client/informers/externalversions"
"sigs.k8s.io/gateway-api/apis/v1alpha2"
"sigs.k8s.io/gateway-api/pkg/client/clientset/gateway/versioned"
"sigs.k8s.io/gateway-api/pkg/client/informers/gateway/externalversions"
)
const resyncPeriod = 10 * time.Minute
@ -33,7 +33,7 @@ func (reh *resourceEventHandler) OnAdd(obj interface{}) {
func (reh *resourceEventHandler) OnUpdate(oldObj, newObj interface{}) {
switch oldObj.(type) {
case *v1alpha1.GatewayClass:
case *v1alpha2.GatewayClass:
// Skip update for gateway classes. We only manage addition or deletion for this cluster-wide resource.
return
default:
@ -51,13 +51,13 @@ func (reh *resourceEventHandler) OnDelete(obj interface{}) {
type Client interface {
WatchAll(namespaces []string, stopCh <-chan struct{}) (<-chan interface{}, error)
GetGatewayClasses() ([]*v1alpha1.GatewayClass, error)
UpdateGatewayStatus(gateway *v1alpha1.Gateway, gatewayStatus v1alpha1.GatewayStatus) error
UpdateGatewayClassStatus(gatewayClass *v1alpha1.GatewayClass, condition metav1.Condition) error
GetGateways() []*v1alpha1.Gateway
GetHTTPRoutes(namespaces []string, selector labels.Selector) ([]*v1alpha1.HTTPRoute, error)
GetTCPRoutes(namespaces []string, selector labels.Selector) ([]*v1alpha1.TCPRoute, error)
GetTLSRoutes(namespaces []string, selector labels.Selector) ([]*v1alpha1.TLSRoute, error)
GetGatewayClasses() ([]*v1alpha2.GatewayClass, error)
UpdateGatewayStatus(gateway *v1alpha2.Gateway, gatewayStatus v1alpha2.GatewayStatus) error
UpdateGatewayClassStatus(gatewayClass *v1alpha2.GatewayClass, condition metav1.Condition) error
GetGateways() []*v1alpha2.Gateway
GetHTTPRoutes(namespaces []string) ([]*v1alpha2.HTTPRoute, error)
GetTCPRoutes(namespaces []string) ([]*v1alpha2.TCPRoute, error)
GetTLSRoutes(namespaces []string) ([]*v1alpha2.TLSRoute, error)
GetService(namespace, name string) (*corev1.Service, bool, error)
GetSecret(namespace, name string) (*corev1.Secret, bool, error)
@ -177,14 +177,17 @@ func (c *clientWrapper) WatchAll(namespaces []string, stopCh <-chan struct{}) (<
c.factoryNamespace.Core().V1().Namespaces().Informer().AddEventHandler(eventHandler)
c.factoryGatewayClass = externalversions.NewSharedInformerFactoryWithOptions(c.csGateway, resyncPeriod, externalversions.WithTweakListOptions(labelSelectorOptions))
c.factoryGatewayClass.Networking().V1alpha1().GatewayClasses().Informer().AddEventHandler(eventHandler)
c.factoryGatewayClass.Gateway().V1alpha2().GatewayClasses().Informer().AddEventHandler(eventHandler)
// TODO manage Reference Policy
// https://gateway-api.sigs.k8s.io/v1alpha2/references/spec/#gateway.networking.k8s.io/v1alpha2.ReferencePolicy
for _, ns := range namespaces {
factoryGateway := externalversions.NewSharedInformerFactoryWithOptions(c.csGateway, resyncPeriod, externalversions.WithNamespace(ns))
factoryGateway.Networking().V1alpha1().Gateways().Informer().AddEventHandler(eventHandler)
factoryGateway.Networking().V1alpha1().HTTPRoutes().Informer().AddEventHandler(eventHandler)
factoryGateway.Networking().V1alpha1().TCPRoutes().Informer().AddEventHandler(eventHandler)
factoryGateway.Networking().V1alpha1().TLSRoutes().Informer().AddEventHandler(eventHandler)
factoryGateway.Gateway().V1alpha2().Gateways().Informer().AddEventHandler(eventHandler)
factoryGateway.Gateway().V1alpha2().HTTPRoutes().Informer().AddEventHandler(eventHandler)
factoryGateway.Gateway().V1alpha2().TCPRoutes().Informer().AddEventHandler(eventHandler)
factoryGateway.Gateway().V1alpha2().TLSRoutes().Informer().AddEventHandler(eventHandler)
factoryKube := informers.NewSharedInformerFactoryWithOptions(c.csKube, resyncPeriod, informers.WithNamespace(ns))
factoryKube.Core().V1().Services().Informer().AddEventHandler(eventHandler)
@ -259,21 +262,21 @@ func (c *clientWrapper) GetNamespaces(selector labels.Selector) ([]string, error
return namespaces, nil
}
func (c *clientWrapper) GetHTTPRoutes(namespaces []string, selector labels.Selector) ([]*v1alpha1.HTTPRoute, error) {
var httpRoutes []*v1alpha1.HTTPRoute
func (c *clientWrapper) GetHTTPRoutes(namespaces []string) ([]*v1alpha2.HTTPRoute, error) {
var httpRoutes []*v1alpha2.HTTPRoute
for _, namespace := range namespaces {
if !c.isWatchedNamespace(namespace) {
log.WithoutContext().Warnf("Failed to get HTTPRoutes with labels selector %s: %q is not within watched namespaces", selector, namespace)
log.WithoutContext().Warnf("Failed to get HTTPRoutes: %q is not within watched namespaces", namespace)
continue
}
routes, err := c.factoriesGateway[c.lookupNamespace(namespace)].Networking().V1alpha1().HTTPRoutes().Lister().HTTPRoutes(namespace).List(selector)
routes, err := c.factoriesGateway[c.lookupNamespace(namespace)].Gateway().V1alpha2().HTTPRoutes().Lister().HTTPRoutes(namespace).List(labels.Everything())
if err != nil {
return nil, err
}
if len(routes) == 0 {
log.WithoutContext().Debugf("No HTTPRoutes found in %q namespace with labels selector %s", namespace, selector)
log.WithoutContext().Debugf("No HTTPRoutes found in namespace %q", namespace)
continue
}
@ -283,21 +286,21 @@ func (c *clientWrapper) GetHTTPRoutes(namespaces []string, selector labels.Selec
return httpRoutes, nil
}
func (c *clientWrapper) GetTCPRoutes(namespaces []string, selector labels.Selector) ([]*v1alpha1.TCPRoute, error) {
var tcpRoutes []*v1alpha1.TCPRoute
func (c *clientWrapper) GetTCPRoutes(namespaces []string) ([]*v1alpha2.TCPRoute, error) {
var tcpRoutes []*v1alpha2.TCPRoute
for _, namespace := range namespaces {
if !c.isWatchedNamespace(namespace) {
log.WithoutContext().Warnf("Failed to get TCPRoutes with labels selector %s: %q is not within watched namespaces", selector, namespace)
log.WithoutContext().Warnf("Failed to get TCPRoutes: %q is not within watched namespaces", namespace)
continue
}
routes, err := c.factoriesGateway[c.lookupNamespace(namespace)].Networking().V1alpha1().TCPRoutes().Lister().TCPRoutes(namespace).List(selector)
routes, err := c.factoriesGateway[c.lookupNamespace(namespace)].Gateway().V1alpha2().TCPRoutes().Lister().TCPRoutes(namespace).List(labels.Everything())
if err != nil {
return nil, err
}
if len(routes) == 0 {
log.WithoutContext().Debugf("No TCPRoutes found in %q namespace with labels selector %s", namespace, selector)
log.WithoutContext().Debugf("No TCPRoutes found in namespace %q", namespace)
continue
}
@ -306,21 +309,21 @@ func (c *clientWrapper) GetTCPRoutes(namespaces []string, selector labels.Select
return tcpRoutes, nil
}
func (c *clientWrapper) GetTLSRoutes(namespaces []string, selector labels.Selector) ([]*v1alpha1.TLSRoute, error) {
var tlsRoutes []*v1alpha1.TLSRoute
func (c *clientWrapper) GetTLSRoutes(namespaces []string) ([]*v1alpha2.TLSRoute, error) {
var tlsRoutes []*v1alpha2.TLSRoute
for _, namespace := range namespaces {
if !c.isWatchedNamespace(namespace) {
log.WithoutContext().Warnf("Failed to get TLSRoutes with labels selector %s: %q is not within watched namespaces", selector, namespace)
log.WithoutContext().Warnf("Failed to get TLSRoutes: %q is not within watched namespaces", namespace)
continue
}
routes, err := c.factoriesGateway[c.lookupNamespace(namespace)].Networking().V1alpha1().TLSRoutes().Lister().TLSRoutes(namespace).List(selector)
routes, err := c.factoriesGateway[c.lookupNamespace(namespace)].Gateway().V1alpha2().TLSRoutes().Lister().TLSRoutes(namespace).List(labels.Everything())
if err != nil {
return nil, err
}
if len(routes) == 0 {
log.WithoutContext().Debugf("No TLSRoutes found in %q namespace with labels selector %s", namespace, selector)
log.WithoutContext().Debugf("No TLSRoutes found in namespace %q", namespace)
continue
}
@ -329,11 +332,11 @@ func (c *clientWrapper) GetTLSRoutes(namespaces []string, selector labels.Select
return tlsRoutes, nil
}
func (c *clientWrapper) GetGateways() []*v1alpha1.Gateway {
var result []*v1alpha1.Gateway
func (c *clientWrapper) GetGateways() []*v1alpha2.Gateway {
var result []*v1alpha2.Gateway
for ns, factory := range c.factoriesGateway {
gateways, err := factory.Networking().V1alpha1().Gateways().Lister().List(labels.Everything())
gateways, err := factory.Gateway().V1alpha2().Gateways().Lister().List(labels.Everything())
if err != nil {
log.WithoutContext().Errorf("Failed to list Gateways in namespace %s: %v", ns, err)
continue
@ -344,11 +347,11 @@ func (c *clientWrapper) GetGateways() []*v1alpha1.Gateway {
return result
}
func (c *clientWrapper) GetGatewayClasses() ([]*v1alpha1.GatewayClass, error) {
return c.factoryGatewayClass.Networking().V1alpha1().GatewayClasses().Lister().List(labels.Everything())
func (c *clientWrapper) GetGatewayClasses() ([]*v1alpha2.GatewayClass, error) {
return c.factoryGatewayClass.Gateway().V1alpha2().GatewayClasses().Lister().List(labels.Everything())
}
func (c *clientWrapper) UpdateGatewayClassStatus(gatewayClass *v1alpha1.GatewayClass, condition metav1.Condition) error {
func (c *clientWrapper) UpdateGatewayClassStatus(gatewayClass *v1alpha2.GatewayClass, condition metav1.Condition) error {
gc := gatewayClass.DeepCopy()
var newConditions []metav1.Condition
@ -371,7 +374,7 @@ func (c *clientWrapper) UpdateGatewayClassStatus(gatewayClass *v1alpha1.GatewayC
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
_, err := c.csGateway.NetworkingV1alpha1().GatewayClasses().UpdateStatus(ctx, gc, metav1.UpdateOptions{})
_, err := c.csGateway.GatewayV1alpha2().GatewayClasses().UpdateStatus(ctx, gc, metav1.UpdateOptions{})
if err != nil {
return fmt.Errorf("failed to update GatewayClass %q status: %w", gatewayClass.Name, err)
}
@ -379,7 +382,7 @@ func (c *clientWrapper) UpdateGatewayClassStatus(gatewayClass *v1alpha1.GatewayC
return nil
}
func (c *clientWrapper) UpdateGatewayStatus(gateway *v1alpha1.Gateway, gatewayStatus v1alpha1.GatewayStatus) error {
func (c *clientWrapper) UpdateGatewayStatus(gateway *v1alpha2.Gateway, gatewayStatus v1alpha2.GatewayStatus) error {
if !c.isWatchedNamespace(gateway.Namespace) {
return fmt.Errorf("cannot update Gateway status %s/%s: namespace is not within watched namespaces", gateway.Namespace, gateway.Name)
}
@ -394,7 +397,7 @@ func (c *clientWrapper) UpdateGatewayStatus(gateway *v1alpha1.Gateway, gatewaySt
ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()
_, err := c.csGateway.NetworkingV1alpha1().Gateways(gateway.Namespace).UpdateStatus(ctx, g, metav1.UpdateOptions{})
_, err := c.csGateway.GatewayV1alpha2().Gateways(gateway.Namespace).UpdateStatus(ctx, g, metav1.UpdateOptions{})
if err != nil {
return fmt.Errorf("failed to update Gateway %q status: %w", gateway.Name, err)
}
@ -402,7 +405,7 @@ func (c *clientWrapper) UpdateGatewayStatus(gateway *v1alpha1.Gateway, gatewaySt
return nil
}
func statusEquals(oldStatus, newStatus v1alpha1.GatewayStatus) bool {
func statusEquals(oldStatus, newStatus v1alpha2.GatewayStatus) bool {
if len(oldStatus.Listeners) != len(newStatus.Listeners) {
return false
}
@ -414,7 +417,7 @@ func statusEquals(oldStatus, newStatus v1alpha1.GatewayStatus) bool {
listenerMatches := 0
for _, newListener := range newStatus.Listeners {
for _, oldListener := range oldStatus.Listeners {
if newListener.Port == oldListener.Port {
if newListener.Name == oldListener.Name {
if !conditionsEquals(newListener.Conditions, oldListener.Conditions) {
return false
}

View file

@ -10,14 +10,14 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/client-go/kubernetes/scheme"
"sigs.k8s.io/gateway-api/apis/v1alpha1"
"sigs.k8s.io/gateway-api/apis/v1alpha2"
)
var _ Client = (*clientMock)(nil)
func init() {
// required by k8s.MustParseYaml
err := v1alpha1.AddToScheme(scheme.Scheme)
err := v1alpha2.AddToScheme(scheme.Scheme)
if err != nil {
panic(err)
}
@ -33,11 +33,11 @@ type clientMock struct {
apiSecretError error
apiEndpointsError error
gatewayClasses []*v1alpha1.GatewayClass
gateways []*v1alpha1.Gateway
httpRoutes []*v1alpha1.HTTPRoute
tcpRoutes []*v1alpha1.TCPRoute
tlsRoutes []*v1alpha1.TLSRoute
gatewayClasses []*v1alpha2.GatewayClass
gateways []*v1alpha2.Gateway
httpRoutes []*v1alpha2.HTTPRoute
tcpRoutes []*v1alpha2.TCPRoute
tlsRoutes []*v1alpha2.TLSRoute
watchChan chan interface{}
}
@ -62,15 +62,15 @@ func newClientMock(paths ...string) clientMock {
c.namespaces = append(c.namespaces, o)
case *corev1.Endpoints:
c.endpoints = append(c.endpoints, o)
case *v1alpha1.GatewayClass:
case *v1alpha2.GatewayClass:
c.gatewayClasses = append(c.gatewayClasses, o)
case *v1alpha1.Gateway:
case *v1alpha2.Gateway:
c.gateways = append(c.gateways, o)
case *v1alpha1.HTTPRoute:
case *v1alpha2.HTTPRoute:
c.httpRoutes = append(c.httpRoutes, o)
case *v1alpha1.TCPRoute:
case *v1alpha2.TCPRoute:
c.tcpRoutes = append(c.tcpRoutes, o)
case *v1alpha1.TLSRoute:
case *v1alpha2.TLSRoute:
c.tlsRoutes = append(c.tlsRoutes, o)
default:
panic(fmt.Sprintf("Unknown runtime object %+v %T", o, o))
@ -81,7 +81,7 @@ func newClientMock(paths ...string) clientMock {
return c
}
func (c clientMock) UpdateGatewayStatus(gateway *v1alpha1.Gateway, gatewayStatus v1alpha1.GatewayStatus) error {
func (c clientMock) UpdateGatewayStatus(gateway *v1alpha2.Gateway, gatewayStatus v1alpha2.GatewayStatus) error {
for _, g := range c.gateways {
if g.Name == gateway.Name {
if !statusEquals(g.Status, gatewayStatus) {
@ -94,7 +94,7 @@ func (c clientMock) UpdateGatewayStatus(gateway *v1alpha1.Gateway, gatewayStatus
return nil
}
func (c clientMock) UpdateGatewayClassStatus(gatewayClass *v1alpha1.GatewayClass, condition metav1.Condition) error {
func (c clientMock) UpdateGatewayClassStatus(gatewayClass *v1alpha2.GatewayClass, condition metav1.Condition) error {
for _, gc := range c.gatewayClasses {
if gc.Name == gatewayClass.Name {
for _, c := range gc.Status.Conditions {
@ -110,7 +110,7 @@ func (c clientMock) UpdateGatewayClassStatus(gatewayClass *v1alpha1.GatewayClass
return nil
}
func (c clientMock) UpdateGatewayStatusConditions(gateway *v1alpha1.Gateway, condition metav1.Condition) error {
func (c clientMock) UpdateGatewayStatusConditions(gateway *v1alpha2.Gateway, condition metav1.Condition) error {
for _, g := range c.gatewayClasses {
if g.Name == gateway.Name {
for _, c := range g.Status.Conditions {
@ -126,11 +126,11 @@ func (c clientMock) UpdateGatewayStatusConditions(gateway *v1alpha1.Gateway, con
return nil
}
func (c clientMock) GetGatewayClasses() ([]*v1alpha1.GatewayClass, error) {
func (c clientMock) GetGatewayClasses() ([]*v1alpha2.GatewayClass, error) {
return c.gatewayClasses, nil
}
func (c clientMock) GetGateways() []*v1alpha1.Gateway {
func (c clientMock) GetGateways() []*v1alpha2.Gateway {
return c.gateways
}
@ -148,11 +148,11 @@ func (c clientMock) GetNamespaces(selector labels.Selector) ([]string, error) {
return ns, nil
}
func (c clientMock) GetHTTPRoutes(namespaces []string, selector labels.Selector) ([]*v1alpha1.HTTPRoute, error) {
var httpRoutes []*v1alpha1.HTTPRoute
func (c clientMock) GetHTTPRoutes(namespaces []string) ([]*v1alpha2.HTTPRoute, error) {
var httpRoutes []*v1alpha2.HTTPRoute
for _, namespace := range namespaces {
for _, httpRoute := range c.httpRoutes {
if inNamespace(httpRoute.ObjectMeta, namespace) && selector.Matches(labels.Set(httpRoute.Labels)) {
if inNamespace(httpRoute.ObjectMeta, namespace) {
httpRoutes = append(httpRoutes, httpRoute)
}
}
@ -160,11 +160,11 @@ func (c clientMock) GetHTTPRoutes(namespaces []string, selector labels.Selector)
return httpRoutes, nil
}
func (c clientMock) GetTCPRoutes(namespaces []string, selector labels.Selector) ([]*v1alpha1.TCPRoute, error) {
var tcpRoutes []*v1alpha1.TCPRoute
func (c clientMock) GetTCPRoutes(namespaces []string) ([]*v1alpha2.TCPRoute, error) {
var tcpRoutes []*v1alpha2.TCPRoute
for _, namespace := range namespaces {
for _, tcpRoute := range c.tcpRoutes {
if inNamespace(tcpRoute.ObjectMeta, namespace) && selector.Matches(labels.Set(tcpRoute.Labels)) {
if inNamespace(tcpRoute.ObjectMeta, namespace) {
tcpRoutes = append(tcpRoutes, tcpRoute)
}
}
@ -172,11 +172,11 @@ func (c clientMock) GetTCPRoutes(namespaces []string, selector labels.Selector)
return tcpRoutes, nil
}
func (c clientMock) GetTLSRoutes(namespaces []string, selector labels.Selector) ([]*v1alpha1.TLSRoute, error) {
var tlsRoutes []*v1alpha1.TLSRoute
func (c clientMock) GetTLSRoutes(namespaces []string) ([]*v1alpha2.TLSRoute, error) {
var tlsRoutes []*v1alpha2.TLSRoute
for _, namespace := range namespaces {
for _, tlsRoute := range c.tlsRoutes {
if inNamespace(tlsRoute.ObjectMeta, namespace) && selector.Matches(labels.Set(tlsRoute.Labels)) {
if inNamespace(tlsRoute.ObjectMeta, namespace) {
tlsRoutes = append(tlsRoutes, tlsRoute)
}
}

View file

@ -5,34 +5,34 @@ import (
"github.com/stretchr/testify/assert"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/gateway-api/apis/v1alpha1"
"sigs.k8s.io/gateway-api/apis/v1alpha2"
)
func TestStatusEquals(t *testing.T) {
testCases := []struct {
desc string
statusA v1alpha1.GatewayStatus
statusB v1alpha1.GatewayStatus
statusA v1alpha2.GatewayStatus
statusB v1alpha2.GatewayStatus
expected bool
}{
{
desc: "Empty",
statusA: v1alpha1.GatewayStatus{},
statusB: v1alpha1.GatewayStatus{},
statusA: v1alpha2.GatewayStatus{},
statusB: v1alpha2.GatewayStatus{},
expected: true,
},
{
desc: "Same status",
statusA: v1alpha1.GatewayStatus{
statusA: v1alpha2.GatewayStatus{
Conditions: []metav1.Condition{
{
Type: "foobar",
Reason: "foobar",
},
},
Listeners: []v1alpha1.ListenerStatus{
Listeners: []v1alpha2.ListenerStatus{
{
Port: 80,
Name: "foo",
Conditions: []metav1.Condition{
{
Type: "foobar",
@ -42,16 +42,16 @@ func TestStatusEquals(t *testing.T) {
},
},
},
statusB: v1alpha1.GatewayStatus{
statusB: v1alpha2.GatewayStatus{
Conditions: []metav1.Condition{
{
Type: "foobar",
Reason: "foobar",
},
},
Listeners: []v1alpha1.ListenerStatus{
Listeners: []v1alpha2.ListenerStatus{
{
Port: 80,
Name: "foo",
Conditions: []metav1.Condition{
{
Type: "foobar",
@ -65,11 +65,11 @@ func TestStatusEquals(t *testing.T) {
},
{
desc: "Listeners length not equal",
statusA: v1alpha1.GatewayStatus{
Listeners: []v1alpha1.ListenerStatus{},
statusA: v1alpha2.GatewayStatus{
Listeners: []v1alpha2.ListenerStatus{},
},
statusB: v1alpha1.GatewayStatus{
Listeners: []v1alpha1.ListenerStatus{
statusB: v1alpha2.GatewayStatus{
Listeners: []v1alpha2.ListenerStatus{
{},
},
},
@ -77,10 +77,10 @@ func TestStatusEquals(t *testing.T) {
},
{
desc: "Gateway conditions length not equal",
statusA: v1alpha1.GatewayStatus{
statusA: v1alpha2.GatewayStatus{
Conditions: []metav1.Condition{},
},
statusB: v1alpha1.GatewayStatus{
statusB: v1alpha2.GatewayStatus{
Conditions: []metav1.Condition{
{},
},
@ -89,14 +89,14 @@ func TestStatusEquals(t *testing.T) {
},
{
desc: "Gateway conditions different types",
statusA: v1alpha1.GatewayStatus{
statusA: v1alpha2.GatewayStatus{
Conditions: []metav1.Condition{
{
Type: "foobar",
},
},
},
statusB: v1alpha1.GatewayStatus{
statusB: v1alpha2.GatewayStatus{
Conditions: []metav1.Condition{
{
Type: "foobir",
@ -107,14 +107,14 @@ func TestStatusEquals(t *testing.T) {
},
{
desc: "Gateway conditions same types but different reason",
statusA: v1alpha1.GatewayStatus{
statusA: v1alpha2.GatewayStatus{
Conditions: []metav1.Condition{
{
Type: "foobar",
},
},
},
statusB: v1alpha1.GatewayStatus{
statusB: v1alpha2.GatewayStatus{
Conditions: []metav1.Condition{
{
Type: "foobar",
@ -126,18 +126,18 @@ func TestStatusEquals(t *testing.T) {
},
{
desc: "Gateway listeners conditions length",
statusA: v1alpha1.GatewayStatus{
Listeners: []v1alpha1.ListenerStatus{
statusA: v1alpha2.GatewayStatus{
Listeners: []v1alpha2.ListenerStatus{
{
Port: 80,
Name: "foo",
Conditions: []metav1.Condition{},
},
},
},
statusB: v1alpha1.GatewayStatus{
Listeners: []v1alpha1.ListenerStatus{
statusB: v1alpha2.GatewayStatus{
Listeners: []v1alpha2.ListenerStatus{
{
Port: 80,
Name: "foo",
Conditions: []metav1.Condition{
{},
},
@ -148,8 +148,8 @@ func TestStatusEquals(t *testing.T) {
},
{
desc: "Gateway listeners conditions same types but different status",
statusA: v1alpha1.GatewayStatus{
Listeners: []v1alpha1.ListenerStatus{
statusA: v1alpha2.GatewayStatus{
Listeners: []v1alpha2.ListenerStatus{
{
Conditions: []metav1.Condition{
{
@ -159,8 +159,8 @@ func TestStatusEquals(t *testing.T) {
},
},
},
statusB: v1alpha1.GatewayStatus{
Listeners: []v1alpha1.ListenerStatus{
statusB: v1alpha2.GatewayStatus{
Listeners: []v1alpha2.ListenerStatus{
{
Conditions: []metav1.Condition{
{
@ -175,8 +175,8 @@ func TestStatusEquals(t *testing.T) {
},
{
desc: "Gateway listeners conditions same types but different message",
statusA: v1alpha1.GatewayStatus{
Listeners: []v1alpha1.ListenerStatus{
statusA: v1alpha2.GatewayStatus{
Listeners: []v1alpha2.ListenerStatus{
{
Conditions: []metav1.Condition{
{
@ -186,8 +186,8 @@ func TestStatusEquals(t *testing.T) {
},
},
},
statusB: v1alpha1.GatewayStatus{
Listeners: []v1alpha1.ListenerStatus{
statusB: v1alpha2.GatewayStatus{
Listeners: []v1alpha2.ListenerStatus{
{
Conditions: []metav1.Condition{
{
@ -201,11 +201,11 @@ func TestStatusEquals(t *testing.T) {
expected: false,
},
{
desc: "Gateway listeners conditions same types/reason but different ports",
statusA: v1alpha1.GatewayStatus{
Listeners: []v1alpha1.ListenerStatus{
desc: "Gateway listeners conditions same types/reason but different names",
statusA: v1alpha2.GatewayStatus{
Listeners: []v1alpha2.ListenerStatus{
{
Port: 80,
Name: "foo",
Conditions: []metav1.Condition{
{
Type: "foobar",
@ -215,10 +215,10 @@ func TestStatusEquals(t *testing.T) {
},
},
},
statusB: v1alpha1.GatewayStatus{
Listeners: []v1alpha1.ListenerStatus{
statusB: v1alpha2.GatewayStatus{
Listeners: []v1alpha2.ListenerStatus{
{
Port: 443,
Name: "bar",
Conditions: []metav1.Condition{
{
Type: "foobar",

View file

@ -1,38 +1,33 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: unkown.io/gateway-controller
controllerName: unkown.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
hostnames:
- "foo.com"
@ -41,7 +36,7 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1

View file

@ -1,39 +1,38 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
@ -41,10 +40,14 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1
- serviceName: whoami2
kind: Service
group: ""
- name: whoami2
port: 8080
weight: 1
kind: Service
group: ""

View file

@ -1,39 +1,41 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
@ -41,7 +43,9 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""

View file

@ -1,39 +1,38 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
@ -41,13 +40,15 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
backendRefs:
- weight: 1
backendRef:
group: traefik.containo.us
kind: TraefikService
name: service@file
group: traefik.containo.us
kind: TraefikService
name: service@file
port: 80
- serviceName: whoami
- name: whoami
port: 80
weight: 1
group: ""
kind: Service

View file

@ -1,39 +1,38 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
@ -41,10 +40,9 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
backendRefs:
- weight: 1
backendRef:
group: traefik.containo.us
kind: TraefikService
name: api@internal
group: traefik.containo.us
kind: TraefikService
name: api@internal
port: 80

View file

@ -1,47 +1,46 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
- matches:
- path:
type: ImplementationSpecific
type: PathPrefix
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1

View file

@ -1,39 +1,38 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 443
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
@ -41,7 +40,7 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1

View file

@ -1,39 +1,38 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
@ -41,15 +40,19 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""
- matches:
- path:
type: Exact
value: /bir
forwardTo:
- serviceName: whoami2
backendRefs:
- name: whoami2
port: 8080
weight: 1
kind: Service
group: ""

View file

@ -1,44 +1,45 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
- "bar.com"
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""

View file

@ -1,39 +1,38 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: All
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-default
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
@ -41,20 +40,25 @@ spec:
- path:
type: Exact
value: /foo
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-bar
namespace: bar
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
namespace: default
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "bar.com"
rules:
@ -62,7 +66,9 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami-bar
backendRefs:
- name: whoami-bar
port: 80
weight: 1
kind: Service
group: ""

View file

@ -1,39 +1,38 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-default
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
@ -41,19 +40,19 @@ spec:
- path:
type: Exact
value: /foo
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-bar
namespace: bar
labels:
app: foo
spec:
hostnames:
- "bar.com"
@ -62,7 +61,9 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami-bar
backendRefs:
- name: whoami-bar
port: 80
weight: 1
kind: Service
group: ""

View file

@ -8,43 +8,42 @@ metadata:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Selector
selector:
matchLabels:
foo: bar
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-default
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
@ -52,20 +51,25 @@ spec:
- path:
type: Exact
value: /foo
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-bar
namespace: bar
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
namespace: default
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "bar.com"
rules:
@ -73,7 +77,9 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami-bar
backendRefs:
- name: whoami-bar
port: 80
weight: 1
kind: Service
group: ""

View file

@ -11,45 +11,44 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTPS
listeners: # Use GatewayClass defaults for listener definition.
- name: https
protocol: HTTPS
port: 443
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: HTTPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
@ -57,7 +56,9 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""

View file

@ -11,45 +11,39 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTPS
listeners: # Use GatewayClass defaults for listener definition.
- name: https
protocol: HTTPS
port: 443
tls:
mode: Passthrough
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: HTTPRoute
certificateRefs:
- kind: Secret
name: supersecret
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
hostnames:
- "foo.com"
@ -58,7 +52,7 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1

View file

@ -1,38 +1,33 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTPS
listeners: # Use GatewayClass defaults for listener definition.
- name: https
protocol: HTTPS
port: 443
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
hostnames:
- "foo.com"
@ -41,7 +36,7 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1

View file

@ -1,38 +1,33 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TCP
listeners: # Use GatewayClass defaults for listener definition.
- name: tcp
protocol: TCP
port: 443
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
hostnames:
- "foo.com"
@ -41,7 +36,7 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1

View file

@ -11,45 +11,39 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 443
tls:
mode: Terminate
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: HTTPRoute
certificateRefs:
- kind: Secret
name: supersecret
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
hostnames:
- "foo.com"
@ -58,7 +52,7 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1

View file

@ -1,65 +1,70 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
- matches:
- path:
type: Prefix
type: PathPrefix
value: /bar
headers:
type: Exact
values:
my-header: foo
my-header2: bar
forwardTo:
- serviceName: whoami
- name: my-header
type: Exact
value: foo
- name: my-header2
type: Exact
value: bar
backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""
- matches:
- path:
type: Exact
value: /bar
headers:
type: Exact
values:
my-header: bar
forwardTo:
- serviceName: whoami
- name: my-header
type: Exact
value: bar
backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""

View file

@ -0,0 +1,24 @@
---
kind: GatewayClass
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
tls: { }
allowedRoutes:
namespaces:
from: Same

View file

@ -11,64 +11,63 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-https
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTPS
listeners: # Use GatewayClass defaults for listener definition.
- name: https
protocol: HTTPS
port: 443
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: HTTPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-http
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway-http
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway-https
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
@ -76,7 +75,9 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""

View file

@ -11,54 +11,51 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTPS
listeners: # Use GatewayClass defaults for listener definition.
- name: https
protocol: HTTPS
port: 443
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: HTTPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
- protocol: HTTP
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
@ -66,7 +63,9 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""

View file

@ -1,39 +1,38 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
rules:
@ -41,7 +40,7 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
weight: 1
port: 9000

View file

@ -1,30 +1,25 @@
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
hostnames:
- "foo.com"
@ -33,7 +28,7 @@ spec:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoami
backendRefs:
- name: whoami
port: 80
weight: 1

View file

@ -1,26 +1,20 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
namespaces:
from: Same
selector:
matchLabels:
app: foo

View file

@ -11,122 +11,149 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 9080
routes:
kind: HTTPRoute
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: http-app
- protocol: HTTPS
- name: https
protocol: HTTPS
port: 9443
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: HTTPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: http-app
- protocol: TCP
- name: tcp
protocol: TCP
port: 9000
routes:
kind: TCPRoute
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tcp-app
- protocol: TLS
- name: tls-10000
protocol: TLS
port: 10000
hostname: tls.foo.example.com
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TCPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tcp-app
- protocol: TLS
- name: tls-11000
protocol: TLS
port: 11000
hostname: pass.tls.foo.example.com
tls:
mode: Passthrough
routes:
kind: TLSRoute
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tls-app
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: http-app
spec:
parentRefs:
- name: my-gateway
sectionName: http
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway
sectionName: https
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-1
namespace: default
labels:
app: tcp-app
spec:
parentRefs:
- name: my-gateway
sectionName: tcp
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway
sectionName: tls-10000
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-1
namespace: default
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
sectionName: tls-11000
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -1,41 +1,41 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners:
- protocol: UNKNOWN
- name: unknown
protocol: UNKNOWN
port: 9080
routes:
kind: HTTPRoute
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: http-app
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: http-app
spec:
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""

View file

@ -1,41 +1,41 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners:
- protocol: HTTP
- name: http
protocol: HTTP
port: 9080
routes:
kind: UnknownRoute
allowedRoutes:
kinds:
- kind: UnknownRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: http-app
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: http-app
spec:
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""

View file

@ -0,0 +1,135 @@
---
apiVersion: v1
kind: Secret
metadata:
name: supersecret
namespace: default
data:
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0=
---
kind: GatewayClass
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 9080
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
- name: https
protocol: HTTPS
port: 9443
tls:
certificateRefs:
- kind: Secret
name: supersecret
group: "core"
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
- name: tcp
protocol: TCP
port: 9000
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
- name: tls
protocol: TLS
port: 10000
hostname: tls.foo.example.com
tls:
certificateRefs:
- kind: Secret
name: supersecret
group: "core"
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
---
kind: HTTPRoute
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-default
namespace: default
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: core
---
kind: TCPRoute
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-default
namespace: default
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: core
---
kind: TLSRoute
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-default
namespace: default
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: core

View file

@ -1,41 +1,41 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners:
- protocol: TLS
- name: tls
protocol: TLS
port: 9080
routes:
kind: HTTPRoute
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: http-app
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: http-app
spec:
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""

View file

@ -11,130 +11,130 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http1
protocol: HTTP
port: 9080
routes:
kind: HTTPRoute
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: http-app-1
- protocol: HTTP
- name: http2
protocol: HTTP
port: 9080
routes:
kind: HTTPRoute
allowedRoutes:
kinds:
- kind: HTTPRoute
namespaces:
from: Same
selector:
matchLabels:
app: http-app-2
- protocol: TCP
- name: tcp
protocol: TCP
port: 9000
routes:
kind: TCPRoute
allowedRoutes:
kinds:
- kind: TCPRoute
namespaces:
from: Same
selector:
matchLabels:
app: tcp-app
- protocol: TLS
- name: tls
protocol: TLS
port: 9000
tls:
mode: Passthrough
routes:
kind: TLSRoute
allowedRoutes:
kinds:
- kind: TLSRoute
namespaces:
from: Same
selector:
matchLabels:
app: tls-app
- protocol: TLS
- name: tls2
protocol: TLS
port: 9000
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TCPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: TCPRoute
namespaces:
from: Same
selector:
matchLabels:
app: tcp-app
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: http-app
spec:
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-2
namespace: default
labels:
app: http-app
spec:
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-1
namespace: default
labels:
app: tcp-app
spec:
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-1
namespace: default
labels:
app: tls-app
spec:
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -11,167 +11,222 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 9080
routes:
kind: HTTPRoute
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: All
selector:
matchLabels:
app: http-app
- protocol: HTTPS
- name: https
protocol: HTTPS
port: 9443
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: HTTPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: All
selector:
matchLabels:
app: http-app
- protocol: TCP
- name: tcp
protocol: TCP
port: 9000
routes:
kind: TCPRoute
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: All
selector:
matchLabels:
app: tcp-app
- protocol: TLS
- name: tls-10000
protocol: TLS
port: 10000
hostname: tls.foo.example.com
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TCPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: All
selector:
matchLabels:
app: tcp-app
- protocol: TLS
- name: tls-11000
protocol: TLS
port: 11000
hostname: pass.tls.foo.example.com
tls:
mode: Passthrough
routes:
kind: TLSRoute
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tls-app
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-default
namespace: default
labels:
app: http-app
spec:
parentRefs:
- name: my-gateway
sectionName: http
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway
sectionName: https
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-default
namespace: default
labels:
app: tcp-app
spec:
parentRefs:
- name: my-gateway
sectionName: tcp
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway
sectionName: tls-10000
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-default
namespace: default
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
sectionName: tls-11000
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-bar
namespace: bar
labels:
app: http-app
spec:
parentRefs:
- name: my-gateway
namespace: default
sectionName: http
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway
namespace: default
sectionName: https
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoami-bar
- backendRefs:
- name: whoami-bar
port: 80
weight: 1
kind: Service
group: ""
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-bar
namespace: bar
labels:
app: tcp-app
spec:
parentRefs:
- name: my-gateway
namespace: default
sectionName: tcp
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway
namespace: default
sectionName: tls-10000
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp-bar
- backendRefs:
- name: whoamitcp-bar
port: 9000
weight: 1
kind: Service
group: ""
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-bar
namespace: bar
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
namespace: default
sectionName: tls-11000
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp-bar
- backendRefs:
- name: whoamitcp-bar
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -11,167 +11,222 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 9080
routes:
kind: HTTPRoute
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: http-app
- protocol: HTTPS
- name: https
protocol: HTTPS
port: 9443
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: HTTPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: http-app
- protocol: TCP
- name: tcp
protocol: TCP
port: 9000
routes:
kind: TCPRoute
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tcp-app
- protocol: TLS
- name: tls
protocol: TLS
port: 10000
hostname: tls.foo.example.com
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TCPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tcp-app
- protocol: TLS
- name: tls2
protocol: TLS
port: 11000
hostname: pass.tls.foo.example.com
tls:
mode: Passthrough
routes:
kind: TLSRoute
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tls-app
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-default
namespace: default
labels:
app: http-app
spec:
parentRefs:
- name: my-gateway
sectionName: http
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway
sectionName: https
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-default
namespace: default
labels:
app: tcp-app
spec:
parentRefs:
- name: my-gateway
sectionName: tcp
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway
sectionName: tls
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-default
namespace: default
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
sectionName: tls2
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-bar
namespace: bar
labels:
app: http-app
spec:
parentRefs:
- name: my-gateway
namespace: default
sectionName: http
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway
namespace: default
sectionName: https
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoami-bar
- backendRefs:
- name: whoami-bar
port: 80
weight: 1
kind: Service
group: ""
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-bar
namespace: bar
labels:
app: tcp-app
spec:
parentRefs:
- name: my-gateway
namespace: default
sectionName: tcp
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway
namespace: default
sectionName: tls
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp-bar
- backendRefs:
- name: whoamitcp-bar
port: 9000
weight: 1
kind: Service
group: ""
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-bar
namespace: bar
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
namespace: default
sectionName: tls2
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp-bar
- backendRefs:
- name: whoamitcp-bar
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -17,185 +17,250 @@ data:
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0=
---
apiVersion: v1
kind: Secret
metadata:
name: supersecret
namespace: default
data:
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0=
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 9080
routes:
kind: HTTPRoute
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: Selector
selector:
matchLabels:
foo: bar
selector:
matchLabels:
app: http-app
- protocol: HTTPS
- name: https
protocol: HTTPS
port: 9443
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: HTTPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: Selector
selector:
matchLabels:
foo: bar
selector:
matchLabels:
app: http-app
- protocol: TCP
- name: tcp
protocol: TCP
port: 9000
routes:
kind: TCPRoute
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Selector
selector:
matchLabels:
foo: bar
selector:
matchLabels:
app: tcp-app
- protocol: TLS
- name: tls
protocol: TLS
port: 10000
hostname: tls.foo.example.com
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TCPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Selector
selector:
matchLabels:
foo: bar
selector:
matchLabels:
app: tcp-app
- protocol: TLS
- name: tls2
protocol: TLS
port: 11000
hostname: pass.tls.foo.example.com
tls:
mode: Passthrough
routes:
kind: TLSRoute
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Selector
selector:
matchLabels:
foo: bar
selector:
matchLabels:
app: tls-app
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-default
namespace: default
labels:
app: http-app
spec:
parentRefs:
- name: my-gateway
sectionName: http
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway
sectionName: https
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-default
namespace: default
labels:
app: tcp-app
spec:
parentRefs:
- name: my-gateway
sectionName: tcp
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway
sectionName: tls
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-default
namespace: default
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
sectionName: tls2
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-bar
namespace: bar
labels:
app: http-app
spec:
parentRefs:
- name: my-gateway
namespace: default
sectionName: http
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway
namespace: default
sectionName: https
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoami-bar
- backendRefs:
- name: whoami-bar
port: 80
weight: 1
kind: Service
group: ""
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-bar
namespace: bar
labels:
app: tcp-app
spec:
parentRefs:
- name: my-gateway
namespace: default
sectionName: tcp
kind: Gateway
group: gateway.networking.k8s.io
- name: my-gateway
namespace: default
sectionName: tls
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp-bar
- backendRefs:
- name: whoamitcp-bar
port: 9000
weight: 1
kind: Service
group: ""
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-bar
namespace: bar
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
namespace: default
sectionName: tls2
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp-bar
- backendRefs:
- name: whoamitcp-bar
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -1,75 +1,99 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
namespace: default
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-mixed-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
selector:
matchLabels:
app: label-tls-app-1
- protocol: TCP
allowedRoutes:
kinds:
- kind: HTTPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
- name: tcp
protocol: TCP
port: 9000
routes:
kind: TCPRoute
selector:
matchLabels:
app: label-tls-app-1
- protocol: TLS
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
- name: tls
protocol: TLS
port: 9443
tls:
mode: Passthrough
routes:
kind: TLSRoute
selector:
matchLabels:
app: label-http-app-1
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-1
namespace: default
labels:
app: label-tls-app-1
spec:
parentRefs:
- name: my-mixed-gateway
sectionName: http
kind: Gateway
group: gateway.networking.k8s.io
- name: my-mixed-gateway
sectionName: tcp
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: label-http-app-1
spec:
parentRefs:
- name: my-mixed-gateway
sectionName: tls
kind: Gateway
group: gateway.networking.k8s.io
rules:
- matches:
- path:
type: Exact
value: /bar
forwardTo:
- serviceName: whoamitcp
backendRefs:
- name: whoamitcp
port: 80
weight: 1
kind: Service
group: ""

View file

@ -1,41 +1,41 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: unkown.io/gateway-controller
controllerName: unkown.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TCP
listeners: # Use GatewayClass defaults for listener definition.
- name: tcp
protocol: TCP
port: 8080
routes:
kind: TCPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: TCP-app-1
namespace: default
labels:
app: foo
spec:
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""

View file

@ -1,40 +1,46 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
namespace: default
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-tcp-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TCP
listeners: # Use GatewayClass defaults for listener definition.
- name: tcp
protocol: TCP
port: 9000
routes:
kind: TCPRoute
selector:
matchLabels:
app: whoamitcp
allowedRoutes:
namespaces:
from: Same
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-1
namespace: default
labels:
app: whoamitcp
spec:
parentRefs:
- name: my-tcp-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -1,47 +1,50 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TCP
listeners: # Use GatewayClass defaults for listener definition.
- name: tcp
protocol: TCP
port: 9000
routes:
kind: TCPRoute
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tcp-app
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-1
namespace: default
labels:
app: tcp-app
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- backendRefs:
- weight: 1
backendRef:
group: traefik.containo.us
kind: TraefikService
name: service@file
group: traefik.containo.us
kind: TraefikService
name: service@file
port: 9000
- serviceName: whoamitcp
- name: whoamitcp
port: 9000
weight: 1
group: ""
kind: Service

View file

@ -1,62 +1,77 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
namespace: default
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-tcp-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TCP
listeners: # Use GatewayClass defaults for listener definition.
- name: tcp-app-1
protocol: TCP
port: 9000
routes:
kind: TCPRoute
selector:
matchLabels:
app: label-tcp-app-1
- protocol: TCP
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
- name: tcp-app-2
protocol: TCP
port: 10000
routes:
kind: TCPRoute
selector:
matchLabels:
app: label-tcp-app-2
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-1
namespace: default
labels:
app: label-tcp-app-1
spec:
parentRefs:
- name: my-tcp-gateway
sectionName: tcp-app-1
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-2
namespace: default
labels:
app: label-tcp-app-2
spec:
parentRefs:
- name: my-tcp-gateway
sectionName: tcp-app-2
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 10000
weight: 1
kind: Service
group: ""

View file

@ -1,44 +1,52 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
namespace: default
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-tcp-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TCP
listeners: # Use GatewayClass defaults for listener definition.
- name: tcp
protocol: TCP
port: 9000
routes:
kind: TCPRoute
selector:
matchLabels:
app: label-tcp-app
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app
namespace: default
labels:
app: label-tcp-app
spec:
parentRefs:
- name: my-tcp-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
- forwardTo:
- serviceName: whoamitcp
kind: Service
group: ""
- backendRefs:
- name: whoamitcp
port: 10000
weight: 1
kind: Service
group: ""

View file

@ -1,57 +1,66 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
namespace: default
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-tcp-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TCP
listeners: # Use GatewayClass defaults for listener definition.
- name: tcp
protocol: TCP
port: 9000
routes:
kind: TCPRoute
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: All
selector:
matchLabels:
app: whoamitcp
from: All
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-default
namespace: default
labels:
app: whoamitcp
spec:
parentRefs:
- name: my-tcp-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-bar
namespace: bar
labels:
app: whoamitcp
spec:
parentRefs:
- name: my-tcp-gateway
namespace: default
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp-bar
- backendRefs:
- name: whoamitcp-bar
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -1,57 +1,66 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
namespace: default
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-tcp-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TCP
listeners: # Use GatewayClass defaults for listener definition.
- name: tcp
protocol: TCP
port: 9000
routes:
kind: TCPRoute
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: whoamitcp
from: Same
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-default
namespace: default
labels:
app: whoamitcp
spec:
parentRefs:
- name: my-tcp-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-bar
namespace: bar
labels:
app: whoamitcp
spec:
parentRefs:
- name: my-tcp-gateway
namespace: default
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp-bar
- backendRefs:
- name: whoamitcp-bar
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -8,61 +8,70 @@ metadata:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
namespace: default
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-tcp-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TCP
listeners: # Use GatewayClass defaults for listener definition.
- name: tcp
protocol: TCP
port: 9000
routes:
kind: TCPRoute
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Selector
selector:
matchLabels:
foo: bar
selector:
matchLabels:
app: whoamitcp
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-default
namespace: default
labels:
app: whoamitcp
spec:
parentRefs:
- name: my-tcp-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-bar
namespace: bar
labels:
app: whoamitcp
spec:
parentRefs:
- name: my-tcp-gateway
namespace: default
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp-bar
- backendRefs:
- name: whoamitcp-bar
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -1,42 +1,37 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 9000
hostname: foo.example.com
routes:
kind: TCPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: tcp-app
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-1
namespace: default
labels:
app: tcp-app
spec:
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1

View file

@ -11,49 +11,43 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTPS
listeners: # Use GatewayClass defaults for listener definition.
- name: https
protocol: HTTPS
port: 9000
hostname: foo.example.com
tls:
mode: Terminate # Default mode
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TCPRoute
certificateRefs:
- kind: Secret
name: supersecret
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: tcp-app
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-1
namespace: default
labels:
app: tcp-app
spec:
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1

View file

@ -11,49 +11,53 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 9000
hostname: foo.example.com
tls:
mode: Terminate # Default mode
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TCPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tcp-app
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-1
namespace: default
labels:
app: tcp-app
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -0,0 +1,26 @@
---
kind: GatewayClass
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: TCP
port: 8080
tls: { }
allowedRoutes:
namespaces:
from: Same
kinds:
- kind: TCPRoute

View file

@ -1,41 +1,41 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TCP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: TCP
port: 8080
routes:
kind: TCPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: TCP-app-1
namespace: default
labels:
app: foo
spec:
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
weight: 1
port: 9000
kind: Service
group: ""

View file

@ -1,33 +1,33 @@
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TCP
listeners: # Use GatewayClass defaults for listener definition.
- name: tcp
protocol: TCP
port: 8080
routes:
kind: TCPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: TCP-app-1
namespace: default
labels:
app: foo
spec:
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""

View file

@ -1,26 +1,26 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TCP
listeners: # Use GatewayClass defaults for listener definition.
- name: tcp
protocol: TCP
port: 8080
routes:
kind: TCPRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io

View file

@ -11,33 +11,29 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 8080
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TCPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: foo

View file

@ -11,47 +11,47 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: unkown.io/gateway-controller
controllerName: unkown.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
certificateRefs:
- kind: Secret
name: supersecret
group: ""
port: 8080
routes:
kind: TCPRoute
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-1
namespace: default
labels:
app: foo
spec:
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 80
weight: 1
kind: Service
group: ""

View file

@ -11,47 +11,53 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
namespace: default
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-tls-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
hostname: foo.example.com
port: 9000
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TCPRoute
selector:
matchLabels:
app: whoamitcp
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-1
namespace: default
labels:
app: whoamitcp
spec:
parentRefs:
- name: my-tls-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -0,0 +1,49 @@
---
kind: GatewayClass
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
namespace: default
spec:
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-tls-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
hostname: foo.example.com
port: 9000
tls:
mode: Passthrough
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
---
kind: TCPRoute
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-1
namespace: default
spec:
parentRefs:
- name: my-tls-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -1,57 +0,0 @@
---
apiVersion: v1
kind: Secret
metadata:
name: supersecret
namespace: default
data:
tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=
tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCi0tLS0tRU5EIFBSSVZBVEUgS0VZLS0tLS0=
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
metadata:
name: my-gateway-class
namespace: default
spec:
controller: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
metadata:
name: my-tls-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
hostname: foo.example.com
port: 9000
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TLSRoute
selector:
matchLabels:
app: whoamitls
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
metadata:
name: tls-app-1
namespace: default
labels:
app: whoamitls
spec:
rules:
- forwardTo:
- serviceName: whoamitcp
port: 9000
weight: 1

View file

@ -11,44 +11,50 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
namespace: default
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-tls-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
hostname: foo.example.com
port: 9000
tls:
mode: Passthrough
routes:
kind: TLSRoute
selector:
matchLabels:
app: whoamitcp
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-1
namespace: default
labels:
app: whoamitcp
spec:
parentRefs:
- name: my-tls-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -11,53 +11,56 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 9000
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TCPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tcp-app
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-1
namespace: default
labels:
app: tcp-app
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- backendRefs:
- weight: 1
backendRef:
group: traefik.containo.us
kind: TraefikService
name: service@file
group: traefik.containo.us
kind: TraefikService
name: service@file
port: 9000
- serviceName: whoamitcp
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -1,48 +1,50 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 9001
hostname: foo.example.com
hostname: "*.example.com"
tls:
mode: Passthrough
routes:
kind: TLSRoute
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tls-app
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-1
namespace: default
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- foo.example.com
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
matches:
- snis:
- foo.bar
kind: Service
group: ""

View file

@ -1,49 +1,49 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 9001
hostname: foo.example.com
tls:
mode: Passthrough
routes:
kind: TLSRoute
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tls-app
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-1
namespace: default
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "*.foo.bar"
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
matches:
- snis:
- foo.bar
- "*"
kind: Service
group: ""

View file

@ -1,49 +1,51 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 9001
hostname: foo.example.com
hostname: "*.example.com"
tls:
mode: Passthrough
routes:
kind: TLSRoute
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tls-app
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-1
namespace: default
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- foo.example.com
- bar.example.com
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
matches:
- snis:
- foo.bar
- fiz.baz
kind: Service
group: ""

View file

@ -11,71 +11,84 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
namespace: default
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-tls-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls-9000
protocol: TLS
hostname: foo.example.com
port: 9000
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TCPRoute
selector:
matchLabels:
app: label-tcp-app-1
- protocol: TLS
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
- name: tls-10000
protocol: TLS
port: 10000
tls:
mode: Passthrough
routes:
kind: TLSRoute
selector:
matchLabels:
app: label-tls-app-1
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-1
namespace: default
labels:
app: label-tcp-app-1
spec:
parentRefs:
- name: my-tls-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-1
namespace: default
labels:
app: label-tls-app-1
spec:
parentRefs:
- name: my-tls-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 10000
weight: 1
kind: Service
group: ""

View file

@ -0,0 +1,54 @@
---
kind: GatewayClass
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
namespace: default
spec:
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 9000
tls:
mode: Passthrough
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
---
kind: TLSRoute
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app
namespace: default
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""
- backendRefs:
- name: whoamitcp
port: 10000
weight: 1
kind: Service
group: ""

View file

@ -1,66 +1,71 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 9001
hostname: foo.example.com
tls:
mode: Passthrough
routes:
kind: TLSRoute
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: All
selector:
matchLabels:
app: tls-app
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-default
namespace: default
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- foo.default
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
matches:
- snis:
- foo.default
kind: Service
group: ""
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-bar
namespace: bar
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
namespace: default
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- foo.bar
rules:
- forwardTo:
- serviceName: whoamitcp-bar
- backendRefs:
- name: whoamitcp-bar
port: 9000
weight: 1
matches:
- snis:
- foo.bar
kind: Service
group: ""

View file

@ -1,65 +1,70 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 9001
hostname: foo.example.com
tls:
mode: Passthrough
routes:
kind: TLSRoute
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tls-app
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-default
namespace: default
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- foo.default
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
matches:
- snis:
- foo.default
kind: Service
group: ""
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-bar
namespace: bar
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- foo.bar
rules:
- forwardTo:
- serviceName: whoamitcp-bar
- backendRefs:
- name: whoamitcp-bar
port: 9000
weight: 1
matches:
- snis:
- foo.bar
kind: Service
group: ""

View file

@ -8,69 +8,75 @@ metadata:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 9001
hostname: foo.example.com
tls:
mode: Passthrough
routes:
kind: TLSRoute
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Selector
selector:
matchLabels:
foo: bar
selector:
matchLabels:
app: tls-app
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-default
namespace: default
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- foo.default
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
matches:
- snis:
- foo.default
kind: Service
group: ""
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-bar
namespace: bar
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
namespace: default
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- foo.bar
rules:
- forwardTo:
- serviceName: whoamitcp-bar
- backendRefs:
- name: whoamitcp-bar
port: 9000
weight: 1
matches:
- snis:
- foo.bar
kind: Service
group: ""

View file

@ -1,44 +1,48 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 9001
hostname: foo.example.com
tls:
mode: Passthrough
routes:
kind: TLSRoute
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tls-app
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-1
namespace: default
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -11,50 +11,54 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 9001
hostname: foo.example.com
tls:
mode: Passthrough
# certificateRef is ignored with mode "Passthrough"
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TLSRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: tls-app
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-1
namespace: default
labels:
app: tls-app
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1
kind: Service
group: ""

View file

@ -1,42 +1,37 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 9001
hostname: foo.example.com
routes:
kind: TLSRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: tls-app
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-1
namespace: default
labels:
app: tls-app
spec:
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1

View file

@ -11,49 +11,43 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTPS
listeners: # Use GatewayClass defaults for listener definition.
- name: https
protocol: HTTPS
port: 9001
hostname: foo.example.com
tls:
mode: Terminate # Default mode
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TLSRoute
certificateRefs:
- kind: Secret
name: supersecret
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: tls-app
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-1
namespace: default
labels:
app: tls-app
spec:
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1

View file

@ -1,42 +1,37 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TCP
listeners: # Use GatewayClass defaults for listener definition.
- name: tcp
protocol: TCP
port: 9001
hostname: foo.example.com
routes:
kind: TLSRoute
allowedRoutes:
namespaces:
from: Same
selector:
matchLabels:
app: tls-app
---
kind: TLSRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tls-app-1
namespace: default
labels:
app: tls-app
spec:
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 9000
weight: 1

View file

@ -11,47 +11,51 @@ data:
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 8080
tls:
certificateRef:
kind: Secret
name: supersecret
group: core
routes:
kind: TCPRoute
certificateRefs:
- kind: Secret
name: supersecret
group: ""
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
weight: 1
port: 9001
kind: Service
group: ""

View file

@ -1,33 +1,33 @@
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 8080
routes:
kind: TCPRoute
allowedRoutes:
kinds:
- kind: TCPRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: foo
---
kind: TCPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: tcp-app-1
namespace: default
labels:
app: foo
spec:
rules:
- forwardTo:
- serviceName: whoamitcp
- backendRefs:
- name: whoamitcp
port: 8080
weight: 1
kind: Service
group: ""

View file

@ -1,28 +1,28 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: TLS
listeners: # Use GatewayClass defaults for listener definition.
- name: tls
protocol: TLS
port: 8080
tls:
mode: Passthrough
routes:
kind: TLSRoutes
allowedRoutes:
kinds:
- kind: TLSRoute
group: gateway.networking.k8s.io
namespaces:
from: Same
selector:
matchLabels:
app: foo

View file

@ -1,43 +1,45 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
- "*.bar.com"
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""

View file

@ -1,43 +1,45 @@
---
kind: GatewayClass
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway-class
spec:
controller: traefik.io/gateway-controller
controllerName: traefik.io/gateway-controller
---
kind: Gateway
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: my-gateway
namespace: default
spec:
gatewayClassName: my-gateway-class
listeners: # Use GatewayClass defaults for listener definition.
- protocol: HTTP
listeners: # Use GatewayClass defaults for listener definition.
- name: http
protocol: HTTP
port: 80
routes:
kind: HTTPRoute
allowedRoutes:
namespaces:
from: Same
selector:
app: foo
---
kind: HTTPRoute
apiVersion: networking.x-k8s.io/v1alpha1
apiVersion: gateway.networking.k8s.io/v1alpha2
metadata:
name: http-app-1
namespace: default
labels:
app: foo
spec:
parentRefs:
- name: my-gateway
kind: Gateway
group: gateway.networking.k8s.io
hostnames:
- "foo.com"
- "*"
- "*.foo.com"
rules:
- forwardTo:
- serviceName: whoami
- backendRefs:
- name: whoami
port: 80
weight: 1
kind: Service
group: ""

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff