Skip to content

Productize an easier way to create access to the k8s api endpoint #372

@ctindel

Description

@ctindel

Description

Users want a way to expose the k8s api via an ngrok endpoint. Sometimes this would be via a whitelabeled reserved domain, some users would probably be fine with an ngrok.app or other ngrok domain.

Ideally this would be done via some parameters set at helm install time, to be able to configure what domain name to use for the ngrok edge, and any relevant authentication information (mtls etc) to layer on top of the edge.

I wonder also if it makes sense to create a new CRD for accomplishing this directly in a manifest file too?

Below is a manifest file that works but is a bit complicated for users to implement.

apiVersion: ingress.k8s.ngrok.com/v1alpha1
kind: HTTPSEdge
metadata:
  name: kube-api-example-config
  generation: 1
spec:
  description: Proxy kube-api-example
  hostports:
  - k8s.edges.example.com:443
  metadata: '{"owned-by":"kubernetes-ingress-controller"}'
  routes:
  - backend:
      description: Created by kubernetes-ingress-controller
      labels:
        a: "b"
      metadata: '{"owned-by":"kubernetes-ingress-controller"}'
    compression:
      enabled: true
    description: Created by kubernetes-ingress-controller
    match: /
    matchType: path_prefix
    metadata: '{"owned-by":"kubernetes-ingress-controller"}'
---
apiVersion: ingress.k8s.ngrok.com/v1alpha1
kind: Tunnel
metadata:
  name: k8s-api-test
spec:
  appProtocol: http2
  backend:
    protocol: HTTPS
  forwardsTo: kubernetes.default.svc:443
  labels:
    a: "b"
---
apiVersion: ingress.k8s.ngrok.com/v1alpha1
kind: Domain
metadata:
  name: reserved-domain
spec:
  description: Reserved for test
  domain: k8s.edges.example.com

Use Case

No response

Related issues

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestneeds-triageIssues that need triagequestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions