PageSourceSearch

https://docs-spectrocloud.netlify.app/assets/js/1baf0c83.8152177b.js

js docs-spectrocloud.netlify.app collected 2026-10-03 10:43:25 UTC 6,707 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkspectro_cloud_docs=self.webpackChunkspectro_cloud_docs||[]).push([["15236"],{869538:function(e,n,r){r.r(n),r.d(n,{frontMatter:()=>i,toc:()=>l,default:()=>g,metadata:()=>t,assets:()=>c,contentTitle:()=>a});var t=JSON.parse('{"id":"integrations/ngrok-ingress-controller","title":"ngrok","description":"Learn about using ngrok Kubernetes Ingress to access applications in Palette.","source":"@site/docs/docs-content/integrations/ngrok-ingress-controller.mdx","sourceDirName":"integrations","slug":"/integrations/ngrok-ingress-controller","permalink":"/integrations/ngrok-ingress-controller","draft":false,"unlisted":false,"editUrl":"https://github.com/spectrocloud/librarium/blob/master/docs/docs-content/integrations/ngrok-ingress-controller.mdx","tags":[{"inline":true,"label":"packs","permalink":"/tags/packs"},{"inline":true,"label":"ngrok","permalink":"/tags/ngrok"},{"inline":true,"label":"network","permalink":"/tags/network"},{"inline":true,"label":"kubernetes","permalink":"/tags/kubernetes"}],"version":"current","lastUpdatedAt":1777826507000,"frontMatter":{"sidebar_label":"ngrok","title":"ngrok","description":"Learn about using ngrok Kubernetes Ingress to access applications in Palette.","hide_table_of_contents":true,"type":"integration","category":["ingress","amd64","community"],"sidebar_class_name":"hide-from-sidebar","logoUrl":"https://registry.spectrocloud.com/v1/ngrok-ingress-controller/blobs/sha256:a723399d53d716c5441d57d021a7975d961e5b7db79ccb2bc10f7524ba7e67c1?type=image.webp","tags":["packs","ngrok","network","kubernetes"]},"sidebar":"docSidebar","previous":{"title":"Nginx","permalink":"/integrations/nginx"},"next":{"title":"Nutanix CSI","permalink":"/integrations/nutanix-csi"}}'),o=r(474848),s=r(884429);let i={sidebar_label:"ngrok",title:"ngrok",description:"Learn about using ngrok Kubernetes Ingress to access applications in Palette.",hide_table_of_contents:!0,type:"integration",category:["ingress","amd64","community"],sidebar_class_name:"hide-from-sidebar",logoUrl:"https://registry.spectrocloud.com/v1/ngrok-ingress-controller/blobs/sha256:a723399d53d716c5441d57d021a7975d961e5b7db79ccb2bc10f7524ba7e67c1?type=image.webp",tags:["packs","ngrok","network","kubernetes"]},a,c={},l=[{value:"Versions Supported",id:"versions-supported",level:2},{value:"Configure Ingress Service Definition",id:"configure-ingress-service-definition",level:2},{value:"Terraform",id:"terraform",level:2}];function d(e){let n={a:"a",admonition:"admonition",code:"code",h2:"h2",p:"p",pre:"pre",strong:"strong",...(0,s.R)(),...e.components},{RedirectPackPage:r,TabItem:t,Tabs:i}=n;return r||p("RedirectPackPage",!0),t||p("TabItem",!0),i||p("Tabs",!0),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(r,{packName:"ngrok-ingress-controller"}),"\n",(0,o.jsx)(n.h2,{id:"versions-supported",children:"Versions Supported"}),"\n",(0,o.jsx)(i,{queryString:"parent",children:(0,o.jsxs)(t,{label:"0.9.x",value:"0.9.x",children:[(0,o.jsx)(n.h2,{id:"configure-ingress-service-definition",children:"Configure Ingress Service Definition"}),(0,o.jsxs)(n.p,{children:["To use the ngrok Ingress Controller pack, first create a new\n",(0,o.jsx)(n.a,{href:"/profiles/cluster-profiles/create-cluster-profiles/create-addon-profile/",children:"add-on cluster profile"}),",\nsearch for the ",(0,o.jsx)(n.strong,{children:"ngrok Ingress Controller"})," pack, and overwrite the default pack configuration with your API key and\nauthentication token like the following example YAML content:"]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:"charts:\n  kubernetes-ingress-controller:\n    ...\n    credentials:\n      apiKey: API_KEY\n      authtoken: AUTHTOKEN\n"})}),(0,o.jsxs)(n.p,{children:["Next, you must create an ingress service definition for your application, which requires a new manifest layer. Click on\nthe ",(0,o.jsx)(n.strong,{children:"Add Manifest"})," button to create a new manifest layer."]}),(0,o.jsxs)(n.p,{children:["The following YAML content demonstrates an example ingress service where the ngrok Ingress Controller creates a new edge\nto route traffic on your ngrok subdomain ",(0,o.jsx)(n.code,{children:"example.com"})," to an existing ",(0,o.jsx)(n.code,{children:"example-app"})," deployed on your Kubernetes cluster\nin Palette."]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:"apiVersion: networking.k8s.io/v1\nkind: Ingress\nmetadata:\n  name: example-ingress\n  namespace: ngrok-ingress-controller\nspec:\n  ingressClassName: ngrok\n  rules:\n    - host: example.com\n      http:\n        paths:\n          - path: /\n            pathType: Prefix\n            backend:\n              service:\n                name: example-app\n                port:\n                  number: 80\n"})}),(0,o.jsx)(n.p,{children:"Once you have defined the ngrok Ingress Controller pack, you can add it to an existing cluster profile, as an add-on\nprofile, or as a new add-on layer to a deployed cluster."}),(0,o.jsxs)(n.admonition,{type:"warning",children:[(0,o.jsxs)(n.p,{children:["If you have a free ngrok account, you can only have one ngrok agent active at a time. This means that you will need to\nset the number of replicas to ",(0,o.jsx)(n.code,{children:"1"})," to ensure that your ngrok agent operates properly."]}),(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-yaml",children:"charts:\n  kubernetes-ingress-controller:\n    replicaCount: 1\n"})})]})]})}),"\n",(0,o.jsx)(n.h2,{id:"terraform",children:"Terraform"}),"\n",(0,o.jsx)(n.p,{children:"You can reference the ngrok Ingress Controller pack in Terraform with a data resource."}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-hcl",children:'data "spectrocloud_registry" "public_registry" {\n  name = "Public Repo"\n}\ndata "spectrocloud_pack_simple" "ngrok-ingress" {\n  name    = "ngrok-ingress-controller"\n  version = "0.9.0"\n  type = "operator-instance"\n  registry_uid = data.spectrocloud_registry.public_registry.id\n}\n'})})]})}function g(e={}){let{wrapper:n}={...(0,s.R)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}function p(e,n){throw Error("Expected "+(n?"component":"object")+" `"+e+"` to be defined: you likely forgot to import, pass, or provide it.")}},884429:function(e,n,r){r.d(n,{R:()=>i,x:()=>a});var t=r(296540);let o={},s=t.createContext(o);function i(e){let n=t.useContext(s);return t.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),t.createElement(s.Provider,{value:n},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.