Skip to content

Instantly share code, notes, and snippets.

@akhenakh
Last active March 23, 2020 05:27
Show Gist options
  • Select an option

  • Save akhenakh/56f922f39f7b8b212e3f878f91a00b10 to your computer and use it in GitHub Desktop.

Select an option

Save akhenakh/56f922f39f7b8b212e3f878f91a00b10 to your computer and use it in GitHub Desktop.

Revisions

  1. akhenakh revised this gist Sep 18, 2019. 1 changed file with 3 additions and 0 deletions.
    3 changes: 3 additions & 0 deletions traefik.yaml
    Original file line number Diff line number Diff line change
    @@ -154,12 +154,15 @@ spec:
    - protocol: TCP
    name: web
    port: 8000
    targetPort: 8000
    - protocol: TCP
    name: admin
    port: 8080
    targetPort: 8080
    - protocol: TCP
    name: websecure
    port: 4443
    targetPort: 4443
    selector:
    app: traefik
    ---
  2. akhenakh revised this gist Sep 17, 2019. No changes.
  3. akhenakh revised this gist Sep 17, 2019. 1 changed file with 0 additions and 17 deletions.
    17 changes: 0 additions & 17 deletions traefik.yaml
    Original file line number Diff line number Diff line change
    @@ -137,23 +137,6 @@ subjects:
    namespace: default
    ---
    apiVersion: v1
    kind: Service
    metadata:
    name: traefik-dashboard
    labels:
    app: traefik
    annotations:
    spec:
    type: ClusterIP
    selector:
    app: traefik
    release: traefik
    ports:
    - name: dashboard-http
    port: 80
    targetPort: 8080
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    namespace: default
  4. akhenakh revised this gist Sep 17, 2019. 1 changed file with 2 additions and 2 deletions.
    4 changes: 2 additions & 2 deletions traefik.yaml
    Original file line number Diff line number Diff line change
    @@ -205,8 +205,8 @@ spec:
    args:
    - --api.insecure
    - --accesslog
    - --entrypoints.web.Address=:8000
    - --entrypoints.websecure.Address=:4443
    - --entrypoints.web.address=:8000
    - --entrypoints.websecure.address=:4443
    - --api.dashboard=true
    - --providers.kubernetescrd
    - --certificatesresolvers.default.acme.tlschallenge
  5. akhenakh revised this gist Sep 17, 2019. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions traefik.yaml
    Original file line number Diff line number Diff line change
    @@ -207,6 +207,7 @@ spec:
    - --accesslog
    - --entrypoints.web.Address=:8000
    - --entrypoints.websecure.Address=:4443
    - --api.dashboard=true
    - --providers.kubernetescrd
    - --certificatesresolvers.default.acme.tlschallenge
    - [email protected]
  6. akhenakh revised this gist Sep 17, 2019. 1 changed file with 17 additions and 0 deletions.
    17 changes: 17 additions & 0 deletions traefik.yaml
    Original file line number Diff line number Diff line change
    @@ -137,6 +137,23 @@ subjects:
    namespace: default
    ---
    apiVersion: v1
    kind: Service
    metadata:
    name: traefik-dashboard
    labels:
    app: traefik
    annotations:
    spec:
    type: ClusterIP
    selector:
    app: traefik
    release: traefik
    ports:
    - name: dashboard-http
    port: 80
    targetPort: 8080
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    namespace: default
  7. akhenakh revised this gist Sep 17, 2019. 1 changed file with 2 additions and 0 deletions.
    2 changes: 2 additions & 0 deletions traefik.yaml
    Original file line number Diff line number Diff line change
    @@ -148,6 +148,8 @@ metadata:
    name: traefik

    spec:
    type: NodePort
    externalTrafficPolicy: Cluster
    ports:
    - protocol: TCP
    name: web
  8. akhenakh created this gist Sep 17, 2019.
    201 changes: 201 additions & 0 deletions traefik.yaml
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,201 @@
    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: 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: 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: tlsoptions.traefik.containo.us

    spec:
    group: traefik.containo.us
    version: v1alpha1
    names:
    kind: TLSOption
    plural: tlsoptions
    singular: tlsoption
    scope: Namespaced

    ---
    kind: ClusterRole
    apiVersion: rbac.authorization.k8s.io/v1beta1
    metadata:
    name: traefik-ingress-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
    verbs:
    - get
    - list
    - watch
    - apiGroups:
    - traefik.containo.us
    resources:
    - ingressroutes
    verbs:
    - get
    - list
    - watch
    - apiGroups:
    - traefik.containo.us
    resources:
    - ingressroutetcps
    verbs:
    - get
    - list
    - watch
    - apiGroups:
    - traefik.containo.us
    resources:
    - tlsoptions
    verbs:
    - get
    - list
    - watch

    ---
    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1beta1
    metadata:
    name: traefik-ingress-controller

    roleRef:
    apiGroup: rbac.authorization.k8s.io
    kind: ClusterRole
    name: traefik-ingress-controller
    subjects:
    - kind: ServiceAccount
    name: traefik-ingress-controller
    namespace: default
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
    namespace: default
    name: traefik-ingress-controller
    ---
    apiVersion: v1
    kind: Service
    metadata:
    name: traefik

    spec:
    ports:
    - protocol: TCP
    name: web
    port: 8000
    - protocol: TCP
    name: admin
    port: 8080
    - protocol: TCP
    name: websecure
    port: 4443
    selector:
    app: traefik
    ---
    kind: Deployment
    apiVersion: extensions/v1beta1
    metadata:
    namespace: default
    name: traefik
    labels:
    app: traefik

    spec:
    replicas: 1
    selector:
    matchLabels:
    app: traefik
    template:
    metadata:
    labels:
    app: traefik
    spec:
    serviceAccountName: traefik-ingress-controller
    containers:
    - name: traefik
    image: traefik:v2.0
    args:
    - --api.insecure
    - --accesslog
    - --entrypoints.web.Address=:8000
    - --entrypoints.websecure.Address=:4443
    - --providers.kubernetescrd
    - --certificatesresolvers.default.acme.tlschallenge
    - [email protected]
    - --certificatesresolvers.default.acme.storage=acme.json
    ports:
    - name: web
    containerPort: 8000
    - name: websecure
    containerPort: 4443
    - name: admin
    containerPort: 8080