Initial commit
Some checks failed
Tests / Run on Ubuntu (push) Has been cancelled
E2E Tests / Run on Ubuntu (push) Has been cancelled
Lint / Run on Ubuntu (push) Failing after 23m29s

This commit is contained in:
Jonas Kaninda
2024-11-27 08:29:51 +01:00
commit 59e2f0164b
73 changed files with 8334 additions and 0 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,67 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
name: middlewares.gomaproj.github.io
spec:
group: gomaproj.github.io
names:
kind: Middleware
listKind: MiddlewareList
plural: middlewares
singular: middleware
scope: Namespaced
versions:
- name: v1beta1
schema:
openAPIV3Schema:
description: Middleware is the Schema for the middlewares API.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: MiddlewareSpec defines the desired state of Middleware.
properties:
paths:
items:
type: string
type: array
rule:
description: Rule contains rule type of
type: object
x-kubernetes-preserve-unknown-fields: true
type:
description: |-
Type contains authentication types
basic, jwt, auth0, rateLimit, access
type: string
required:
- paths
- type
type: object
status:
description: MiddlewareStatus defines the observed state of Middleware.
type: object
type: object
served: true
storage: true
subresources:
status: {}

View File

@@ -0,0 +1,139 @@
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.16.4
name: routes.gomaproj.github.io
spec:
group: gomaproj.github.io
names:
kind: Route
listKind: RouteList
plural: routes
singular: route
scope: Namespaced
versions:
- name: v1beta1
schema:
openAPIV3Schema:
description: Route is the Schema for the routes API.
properties:
apiVersion:
description: |-
APIVersion defines the versioned schema of this representation of an object.
Servers should convert recognized schemas to the latest internal value, and
may reject unrecognized values.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
type: string
kind:
description: |-
Kind is a string value representing the REST resource this object represents.
Servers may infer this from the endpoint the client submits requests to.
Cannot be updated.
In CamelCase.
More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
type: string
metadata:
type: object
spec:
description: RouteSpec defines the desired state of Route.
properties:
gateway:
type: string
routes:
items:
properties:
backends:
items:
type: string
type: array
blockCommonExploits:
description: BlockCommonExploits enable, disable block common
exploits
type: boolean
cors:
description: Cors contains the route cors headers
properties:
headers:
additionalProperties:
type: string
description: Headers contains custom headers
type: object
origins:
description: Cors contains Allowed origins,
items:
type: string
type: array
type: object
destination:
description: Destination Defines backend URL
type: string
disableHostFording:
description: DisableHostFording Disable host forwarding.
type: boolean
healthCheck:
description: HealthCheck Defines the backend is health
properties:
healthyStatuses:
items:
type: integer
type: array
interval:
type: string
path:
type: string
timeout:
type: string
type: object
hosts:
description: Hosts Domains/hosts based request routing
items:
type: string
type: array
insecureSkipVerify:
type: boolean
interceptErrors:
description: InterceptErrors intercepts backend errors based
on the status codes
items:
type: integer
type: array
methods:
description: Methods allowed method
items:
type: string
type: array
middlewares:
description: Middlewares Defines route middleware
items:
type: string
type: array
name:
description: Name defines route name
type: string
path:
description: Path defines route path
type: string
rateLimit:
type: integer
rewrite:
description: Rewrite rewrites route path to desired path
type: string
required:
- name
- path
type: object
type: array
required:
- gateway
- routes
type: object
status:
description: RouteStatus defines the observed state of Route.
type: object
type: object
served: true
storage: true
subresources:
status: {}

View File

@@ -0,0 +1,22 @@
# This kustomization.yaml is not intended to be run by itself,
# since it depends on service name and namespace that are out of this kustomize package.
# It should be run by config/default
resources:
- bases/gomaproj.github.io_gateways.yaml
- bases/gomaproj.github.io_routes.yaml
- bases/gomaproj.github.io_middlewares.yaml
# +kubebuilder:scaffold:crdkustomizeresource
patches:
# [WEBHOOK] To enable webhook, uncomment all the sections with [WEBHOOK] prefix.
# patches here are for enabling the conversion webhook for each CRD
# +kubebuilder:scaffold:crdkustomizewebhookpatch
# [CERTMANAGER] To enable cert-manager, uncomment all the sections with [CERTMANAGER] prefix.
# patches here are for enabling the CA injection for each CRD
# +kubebuilder:scaffold:crdkustomizecainjectionpatch
# [WEBHOOK] To enable webhook, uncomment the following section
# the following config is for teaching kustomize how to do kustomization for CRDs.
#configurations:
#- kustomizeconfig.yaml

View File

@@ -0,0 +1,19 @@
# This file is for teaching kustomize how to substitute name and namespace reference in CRD
nameReference:
- kind: Service
version: v1
fieldSpecs:
- kind: CustomResourceDefinition
version: v1
group: apiextensions.k8s.io
path: spec/conversion/webhook/clientConfig/service/name
namespace:
- kind: CustomResourceDefinition
version: v1
group: apiextensions.k8s.io
path: spec/conversion/webhook/clientConfig/service/namespace
create: false
varReference:
- path: metadata/annotations