From 4f18562459559c357d9e78759369cbe770d1dde4 Mon Sep 17 00:00:00 2001 From: ducoterra Date: Mon, 20 Apr 2020 09:45:29 -0400 Subject: [PATCH] add custom --- custom/deploy.yaml | 59 +++++++++++++++++++ custom/middlewares.yaml | 9 +++ custom/rbac.yaml | 59 +++++++++++++++++++ custom/resourcedefinition.yaml | 104 +++++++++++++++++++++++++++++++++ 4 files changed, 231 insertions(+) create mode 100644 custom/deploy.yaml create mode 100644 custom/middlewares.yaml create mode 100644 custom/rbac.yaml create mode 100644 custom/resourcedefinition.yaml diff --git a/custom/deploy.yaml b/custom/deploy.yaml new file mode 100644 index 0000000..90ca4ee --- /dev/null +++ b/custom/deploy.yaml @@ -0,0 +1,59 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: traefik-custom-controller + +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: traefik + labels: + app: traefik + +spec: + replicas: 1 + selector: + matchLabels: + app: traefik + template: + metadata: + labels: + app: traefik + spec: + serviceAccountName: traefik-custom-controller + containers: + - name: traefik + image: traefik:v2.2 + args: + - --log.level=DEBUG + - --api + - --api.insecure + - --entrypoints.web.address=:9080 + - --entrypoints.websecure.address=:9443 + - --entrypoints.websecure.http.tls=true + - --providers.kubernetescrd + ports: + - name: web + containerPort: 9080 + - name: tcpep + containerPort: 9443 + +--- +apiVersion: v1 +kind: Service +metadata: + name: traefik +spec: + type: LoadBalancer + selector: + app: traefik + ports: + - protocol: TCP + port: 9080 + name: web + targetPort: 9080 + - protocol: TCP + port: 9443 + name: websecure + targetPort: 9443 \ No newline at end of file diff --git a/custom/middlewares.yaml b/custom/middlewares.yaml new file mode 100644 index 0000000..43c9d34 --- /dev/null +++ b/custom/middlewares.yaml @@ -0,0 +1,9 @@ +# Redirect to https +apiVersion: traefik.containo.us/v1alpha1 +kind: Middleware +metadata: + name: test-redirectscheme +spec: + redirectScheme: + scheme: https + permanent: true \ No newline at end of file diff --git a/custom/rbac.yaml b/custom/rbac.yaml new file mode 100644 index 0000000..337f1ff --- /dev/null +++ b/custom/rbac.yaml @@ -0,0 +1,59 @@ +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1beta1 +metadata: + name: traefik-custom-controller + +rules: + - apiGroups: + - "" + resources: + - services + - endpoints + - secrets + verbs: + - get + - list + - watch + - apiGroups: + - extensions + resources: + - ingresses + verbs: + - get + - list + - watch + - apiGroups: + - extensions + resources: + - ingresses/status + verbs: + - update + - apiGroups: + - traefik.containo.us + resources: + - middlewares + - ingressroutes + - traefikservices + - ingressroutetcps + - ingressrouteudps + - tlsoptions + - tlsstores + verbs: + - get + - list + - watch + +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1beta1 +metadata: + name: traefik-custom-controller + +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: traefik-custom-controller +subjects: + - kind: ServiceAccount + name: traefik-custom-controller + namespace: default \ No newline at end of file diff --git a/custom/resourcedefinition.yaml b/custom/resourcedefinition.yaml new file mode 100644 index 0000000..0c52d1c --- /dev/null +++ b/custom/resourcedefinition.yaml @@ -0,0 +1,104 @@ +# All resources definition must be declared +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: ingressroutes.traefik.containo.us + +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: IngressRoute + plural: ingressroutes + singular: ingressroute + scope: Namespaced + +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: middlewares.traefik.containo.us + +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: Middleware + plural: middlewares + singular: middleware + scope: Namespaced + +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: ingressroutetcps.traefik.containo.us + +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: IngressRouteTCP + plural: ingressroutetcps + singular: ingressroutetcp + scope: Namespaced + +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: ingressrouteudps.traefik.containo.us + +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: IngressRouteUDP + plural: ingressrouteudps + singular: ingressrouteudp + scope: Namespaced + +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: tlsoptions.traefik.containo.us + +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: TLSOption + plural: tlsoptions + singular: tlsoption + scope: Namespaced + +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: tlsstores.traefik.containo.us + +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: TLSStore + plural: tlsstores + singular: tlsstore + scope: Namespaced + +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: traefikservices.traefik.containo.us + +spec: + group: traefik.containo.us + version: v1alpha1 + names: + kind: TraefikService + plural: traefikservices + singular: traefikservice + scope: Namespaced \ No newline at end of file