[{"data":1,"prerenderedAt":1411},["ShallowReactive",2],{"navigation_docs_en":3,"-en-local-environments-colima":175,"-en-local-environments-colima-surround":1406},[4,35,64,86,108,135,150],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Quick Start",false,"/en/quick-start","en/1.quick-start",[10,15,20,25,30],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","/en/quick-start/introduction","en/1.quick-start/1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","/en/quick-start/installation","en/1.quick-start/2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Getting Started","/en/quick-start/getting-started","en/1.quick-start/3.getting-started","i-lucide-rocket",{"title":26,"path":27,"stem":28,"icon":29},"Docker Desktop Extension","/en/quick-start/docker-desktop-extension","en/1.quick-start/4.docker-desktop-extension","i-simple-icons-docker",{"title":31,"path":32,"stem":33,"icon":34},"CLI","/en/quick-start/cli","en/1.quick-start/5.cli","i-lucide-square-terminal",{"title":36,"path":37,"stem":38,"children":39,"page":6},"Local Environments","/en/local-environments","en/2.local-environments",[40,43,48,52,56,60],{"title":21,"path":41,"stem":42,"icon":24},"/en/local-environments/getting-started","en/2.local-environments/1.getting-started",{"title":44,"path":45,"stem":46,"icon":47},"Colima Kubernetes","/en/local-environments/colima","en/2.local-environments/2.colima","i-simple-icons-kubernetes",{"title":49,"path":50,"stem":51,"icon":29},"Docker Desktop Kubernetes (OSX)","/en/local-environments/docker-desktop-osx","en/2.local-environments/3.docker-desktop-osx",{"title":53,"path":54,"stem":55},"k3d","/en/local-environments/k3d","en/2.local-environments/4.k3d",{"title":57,"path":58,"stem":59},"kind","/en/local-environments/kind","en/2.local-environments/5.kind",{"title":61,"path":62,"stem":63},"minikube","/en/local-environments/minikube","en/2.local-environments/5.minikube",{"title":65,"path":66,"stem":67,"children":68,"page":6},"Shared Environments","/en/shared-environments","en/3.shared-environments",[69,72,76,81],{"title":21,"path":70,"stem":71,"icon":24},"/en/shared-environments/getting-started","en/3.shared-environments/1.getting-started",{"title":73,"path":74,"stem":75,"icon":19},"Installing Gefyra in a Cluster","/en/shared-environments/installation","en/3.shared-environments/2.installation",{"title":77,"path":78,"stem":79,"icon":80},"Managing Gefyra Clients","/en/shared-environments/clients","en/3.shared-environments/3.clients","i-lucide-computer",{"title":82,"path":83,"stem":84,"icon":85},"Connecting to Gefyra","/en/shared-environments/connecting","en/3.shared-environments/4.connecting","i-lucide-link",{"title":87,"path":88,"stem":89,"children":90,"page":6},"Remote K8s","/en/remote-k8s","en/4.remote-k8s",[91,94,99,104],{"title":21,"path":92,"stem":93,"icon":24},"/en/remote-k8s/getting-started","en/4.remote-k8s/1.getting-started",{"title":95,"path":96,"stem":97,"icon":98},"Google Cloud Platform (GCP)","/en/remote-k8s/gcp","en/4.remote-k8s/2.gcp","i-material-icon-theme:gcp",{"title":100,"path":101,"stem":102,"icon":103},"Elastic Kubernetes Service (EKS)","/en/remote-k8s/eks","en/4.remote-k8s/3.eks","i-simple-icons-amazoneks",{"title":105,"path":106,"stem":107,"icon":47},"SysEleven MetaKubde Kubernetes","/en/remote-k8s/sys11","en/4.remote-k8s/4.sys11",{"title":109,"path":110,"stem":111,"children":112,"page":6},"Use Cases and Demos","/en/usecases-and-demos","en/5.usecases-and-demos",[113,116,121,126,130],{"title":21,"path":114,"stem":115,"icon":24},"/en/usecases-and-demos/getting-started","en/5.usecases-and-demos/1.getting-started",{"title":117,"path":118,"stem":119,"icon":120},"Developing Go Applications with Gefyra","/en/usecases-and-demos/golang","en/5.usecases-and-demos/2.golang","i-simple-icons-go",{"title":122,"path":123,"stem":124,"icon":125},"OAuth2 Demo with a Sidecar","/en/usecases-and-demos/oauth2-demo","en/5.usecases-and-demos/3.oauth2-demo","i-devicon-plain:oauth",{"title":127,"path":128,"stem":129,"icon":98},"Remote Development on Google Kubernetes Engine","/en/usecases-and-demos/remote-gke","en/5.usecases-and-demos/4.remote-gke",{"title":131,"path":132,"stem":133,"icon":134},"Run an Ubuntu Container instance","/en/usecases-and-demos/ubuntu-in-namespace","en/5.usecases-and-demos/5.ubuntu-in-namespace","i-simple-icons-ubuntu",{"title":136,"path":137,"stem":138,"children":139,"page":6},"Technical Details","/en/technical-details","en/6.technical-details",[140,145],{"title":141,"path":142,"stem":143,"icon":144},"Architecture","/en/technical-details/architecture","en/6.technical-details/1.architecture","i-lucide-square-chevron-right",{"title":146,"path":147,"stem":148,"icon":149},"What is Gefyra?","/en/technical-details/what-is-gefyra","en/6.technical-details/2.what-is-gefyra","i-lucide-circle-question-mark",{"title":151,"path":152,"stem":153,"children":154,"page":6},"Information","/en/information","en/7.information",[155,160,165,170],{"title":156,"path":157,"stem":158,"icon":159},"Run vs. Bridge","/en/information/run-vs-bridge","en/7.information/1.run-vs-bridge","i-lucide-git-compare-arrows",{"title":161,"path":162,"stem":163,"icon":164},"What changed in Gefyra 2?","/en/information/v1-vs-v2","en/7.information/2.v1-vs-v2","i-lucide-history",{"title":166,"path":167,"stem":168,"icon":169},"Media","/en/information/media","en/7.information/3.media","i-lucide-play",{"title":171,"path":172,"stem":173,"icon":174},"About","/en/information/about","en/7.information/4.about","i-lucide-info",{"id":176,"title":177,"body":178,"description":1399,"extension":1400,"links":1401,"meta":1402,"navigation":1403,"path":45,"seo":1404,"stem":46,"__hash__":1405},"docs_en/en/2.local-environments/2.colima.md","Getting started with Gefyra and Colima Kubernetes",{"type":179,"value":180,"toc":1377},"minimark",[181,186,209,213,222,249,253,327,331,350,354,378,386,390,394,407,414,418,423,471,1107,1115,1119,1152,1171,1180,1201,1217,1224,1228,1261,1268,1275,1278,1293,1296,1304,1319,1322,1326,1331,1343,1348,1360,1373],[182,183,185],"h2",{"id":184},"prerequisites","Prerequisites",[187,188,189,202],"ol",{},[190,191,192,193,201],"li",{},"Colima is ",[194,195,200],"a",{"href":196,"rel":197,"target":199},"https://github.com/abiosoft/colima",[198],"nofollow","_blank","available"," (at least in version v0.5.5)",[190,203,204,205,208],{},"Gefyra is ",[194,206,200],{"href":207},"/en/quick-start/installation/"," (at least in version 2.0.0)",[182,210,212],{"id":211},"creating-a-local-kubernetes-cluster","Creating a local Kubernetes cluster",[214,215,217,218],"h3",{"id":216},"_1-creating-a-local-kubernetes-cluster-with-colima","1. Creating a local Kubernetes cluster with ",[219,220,221],"code",{},"colima",[223,224,229],"pre",{"className":225,"code":226,"language":227,"meta":228,"style":228},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","colima start --kubernetes --network-address\n","sh","",[219,230,231],{"__ignoreMap":228},[232,233,236,239,243,246],"span",{"class":234,"line":235},"line",1,[232,237,221],{"class":238},"sBMFI",[232,240,242],{"class":241},"sfazB"," start",[232,244,245],{"class":241}," --kubernetes",[232,247,248],{"class":241}," --network-address\n",[214,250,252],{"id":251},"_2-find-out-the-network-address-of-your-vm","2. Find out the network address of your VM:",[223,254,256],{"className":225,"code":255,"language":227,"meta":228,"style":228},"colima list\n\nPROFILE    STATUS     ARCH      CPUS    MEMORY    DISK     RUNTIME       ADDRESS\ndefault    Running    x86_64    2       2GiB      60GiB    docker+k3s    192.168.106.2\n",[219,257,258,265,272,299],{"__ignoreMap":228},[232,259,260,262],{"class":234,"line":235},[232,261,221],{"class":238},[232,263,264],{"class":241}," list\n",[232,266,268],{"class":234,"line":267},2,[232,269,271],{"emptyLinePlaceholder":270},true,"\n",[232,273,275,278,281,284,287,290,293,296],{"class":234,"line":274},3,[232,276,277],{"class":238},"PROFILE",[232,279,280],{"class":241},"    STATUS",[232,282,283],{"class":241},"     ARCH",[232,285,286],{"class":241},"      CPUS",[232,288,289],{"class":241},"    MEMORY",[232,291,292],{"class":241},"    DISK",[232,294,295],{"class":241},"     RUNTIME",[232,297,298],{"class":241},"       ADDRESS\n",[232,300,302,305,308,311,315,318,321,324],{"class":234,"line":301},4,[232,303,304],{"class":238},"default",[232,306,307],{"class":241},"    Running",[232,309,310],{"class":241},"    x86_64",[232,312,314],{"class":313},"sbssI","    2",[232,316,317],{"class":241},"       2GiB",[232,319,320],{"class":241},"      60GiB",[232,322,323],{"class":241},"    docker+k3s",[232,325,326],{"class":313},"    192.168.106.2\n",[214,328,330],{"id":329},"_3-apply-some-workload-for-example-from-the-testing-directory-of-this-repo","3. Apply some workload, for example from the testing directory of this repo:",[223,332,334],{"className":225,"code":333,"language":227,"meta":228,"style":228},"kubectl apply -f https://raw.githubusercontent.com/gefyrahq/gefyra/main/testing/workloads/hello.yaml\n",[219,335,336],{"__ignoreMap":228},[232,337,338,341,344,347],{"class":234,"line":235},[232,339,340],{"class":238},"kubectl",[232,342,343],{"class":241}," apply",[232,345,346],{"class":241}," -f",[232,348,349],{"class":241}," https://raw.githubusercontent.com/gefyrahq/gefyra/main/testing/workloads/hello.yaml\n",[214,351,353],{"id":352},"_4-check-the-output-of-the-deployed-app-with","4. Check the output of the deployed app with:",[223,355,357],{"className":225,"code":356,"language":227,"meta":228,"style":228},"kubectl expose deployment hello-nginxdemo --type=LoadBalancer --port=80\n",[219,358,359],{"__ignoreMap":228},[232,360,361,363,366,369,372,375],{"class":234,"line":235},[232,362,340],{"class":238},[232,364,365],{"class":241}," expose",[232,367,368],{"class":241}," deployment",[232,370,371],{"class":241}," hello-nginxdemo",[232,373,374],{"class":241}," --type=LoadBalancer",[232,376,377],{"class":241}," --port=80\n",[379,380,381,382],"p",{},"Check out this workload running under: ",[194,383,384],{"href":384,"rel":385,"target":199},"http://hello.127.0.0.1.nip.io/",[198],[182,387,389],{"id":388},"running-gefyra","Running Gefyra",[214,391,393],{"id":392},"_1-set-up-gefyra-with-your-colima-cluster","1. Set up Gefyra with your Colima cluster:",[223,395,397],{"className":225,"code":396,"language":227,"meta":228,"style":228},"gefyra up\n",[219,398,399],{"__ignoreMap":228},[232,400,401,404],{"class":234,"line":235},[232,402,403],{"class":238},"gefyra",[232,405,406],{"class":241}," up\n",[379,408,409,413],{},[410,411,412],"strong",{},"Important",":",[214,415,417],{"id":416},"_2-run-a-local-docker-container-with-gefyra-in-order-to-connect-it-with-the-cluster","2. Run a local Docker container with Gefyra in order to connect it with the cluster.",[419,420,422],"h4",{"id":421},"_21-build-a-simple-docker-image-with-a-local-tag-save-the-following-two-files-in-a-directory-on-your-disk","2.1 Build a simple Docker image with a local tag. Save the following two files in a directory on your disk.",[223,424,429],{"className":425,"code":426,"filename":427,"language":428,"meta":228,"style":228},"language-dockerfile shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","FROM ubuntu\n# run a server on port 8000\nRUN apt update && apt install -y iproute2 iputils-ping python3 traceroute wget curl\nCOPY local.py local.py\nCMD python3 local.py\n","Dockerfile","dockerfile",[219,430,431,440,446,454,462],{"__ignoreMap":228},[232,432,433,436],{"class":234,"line":235},[232,434,435],{"class":313},"FROM",[232,437,439],{"class":438},"sTEyZ"," ubuntu\n",[232,441,442],{"class":234,"line":267},[232,443,445],{"class":444},"sHwdD","# run a server on port 8000\n",[232,447,448,451],{"class":234,"line":274},[232,449,450],{"class":313},"RUN",[232,452,453],{"class":438}," apt update && apt install -y iproute2 iputils-ping python3 traceroute wget curl\n",[232,455,456,459],{"class":234,"line":301},[232,457,458],{"class":313},"COPY",[232,460,461],{"class":438}," local.py local.py\n",[232,463,465,468],{"class":234,"line":464},5,[232,466,467],{"class":313},"CMD",[232,469,470],{"class":438}," python3 local.py\n",[472,473,474],"code-collapse",{},[223,475,480],{"className":476,"code":477,"filename":478,"language":479,"meta":228,"style":228},"language-py shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import http.server\nimport signal\nimport socket\nimport socketserver\nimport sys\nfrom datetime import datetime\n\nif sys.argv[1:]:\n   port = int(sys.argv[1])\nelse:\n   port = 8000\n\nclass MyHttpRequestHandler(http.server.SimpleHTTPRequestHandler):\n   def do_GET(self):\n      self.send_response(200)\n      self.send_header(\"Content-type\", \"text/html\")\n      self.end_headers()\n      hostname = socket.gethostname()\n      now = datetime.utcnow()\n      self.wfile.write(\n            bytes(\n               f\"\u003Chtml>\u003Cbody>\u003Ch1>Hello from Gefyra. It is {now} on\"\n               f\" {hostname}.\u003C/h1>\u003C/body>\u003C/html>\".encode(\"utf-8\")\n            )\n      )\n\nmy_handler = MyHttpRequestHandler\nserver = socketserver.ThreadingTCPServer((\"\", port), my_handler)\n\ndef signal_handler(signal, frame):\n   try:\n      if server:\n            server.server_close()\n   finally:\n      sys.exit(0)\n\nsignal.signal(signal.SIGINT, signal_handler)\ntry:\n   while True:\n      sys.stdout.flush()\n      server.serve_forever()\nexcept KeyboardInterrupt:\n   pass\n\nserver.server_close()\n","local.py","py",[219,481,482,499,506,513,520,527,541,546,569,599,608,618,623,651,668,687,720,733,751,769,787,795,816,850,856,862,867,878,913,918,940,948,959,972,980,998,1003,1027,1035,1044,1061,1074,1085,1091,1096],{"__ignoreMap":228},[232,483,484,488,491,495],{"class":234,"line":235},[232,485,487],{"class":486},"s7zQu","import",[232,489,490],{"class":438}," http",[232,492,494],{"class":493},"sMK4o",".",[232,496,498],{"class":497},"swJcz","server\n",[232,500,501,503],{"class":234,"line":267},[232,502,487],{"class":486},[232,504,505],{"class":438}," signal\n",[232,507,508,510],{"class":234,"line":274},[232,509,487],{"class":486},[232,511,512],{"class":438}," socket\n",[232,514,515,517],{"class":234,"line":301},[232,516,487],{"class":486},[232,518,519],{"class":438}," socketserver\n",[232,521,522,524],{"class":234,"line":464},[232,523,487],{"class":486},[232,525,526],{"class":438}," sys\n",[232,528,530,533,536,538],{"class":234,"line":529},6,[232,531,532],{"class":486},"from",[232,534,535],{"class":438}," datetime ",[232,537,487],{"class":486},[232,539,540],{"class":438}," datetime\n",[232,542,544],{"class":234,"line":543},7,[232,545,271],{"emptyLinePlaceholder":270},[232,547,549,552,555,557,560,563,566],{"class":234,"line":548},8,[232,550,551],{"class":486},"if",[232,553,554],{"class":438}," sys",[232,556,494],{"class":493},[232,558,559],{"class":497},"argv",[232,561,562],{"class":493},"[",[232,564,565],{"class":313},"1",[232,567,568],{"class":493},":]:\n",[232,570,572,575,578,581,584,588,590,592,594,596],{"class":234,"line":571},9,[232,573,574],{"class":438},"   port ",[232,576,577],{"class":493},"=",[232,579,580],{"class":238}," int",[232,582,583],{"class":493},"(",[232,585,587],{"class":586},"s2Zo4","sys",[232,589,494],{"class":493},[232,591,559],{"class":497},[232,593,562],{"class":493},[232,595,565],{"class":313},[232,597,598],{"class":493},"])\n",[232,600,602,605],{"class":234,"line":601},10,[232,603,604],{"class":486},"else",[232,606,607],{"class":493},":\n",[232,609,611,613,615],{"class":234,"line":610},11,[232,612,574],{"class":438},[232,614,577],{"class":493},[232,616,617],{"class":313}," 8000\n",[232,619,621],{"class":234,"line":620},12,[232,622,271],{"emptyLinePlaceholder":270},[232,624,626,630,633,635,638,640,643,645,648],{"class":234,"line":625},13,[232,627,629],{"class":628},"spNyl","class",[232,631,632],{"class":238}," MyHttpRequestHandler",[232,634,583],{"class":493},[232,636,637],{"class":238},"http",[232,639,494],{"class":493},[232,641,642],{"class":238},"server",[232,644,494],{"class":493},[232,646,647],{"class":238},"SimpleHTTPRequestHandler",[232,649,650],{"class":493},"):\n",[232,652,654,657,660,662,666],{"class":234,"line":653},14,[232,655,656],{"class":628},"   def",[232,658,659],{"class":586}," do_GET",[232,661,583],{"class":493},[232,663,665],{"class":664},"s5tWE","self",[232,667,650],{"class":493},[232,669,671,674,676,679,681,684],{"class":234,"line":670},15,[232,672,673],{"class":438},"      self",[232,675,494],{"class":493},[232,677,678],{"class":586},"send_response",[232,680,583],{"class":493},[232,682,683],{"class":313},"200",[232,685,686],{"class":493},")\n",[232,688,690,692,694,697,699,702,705,707,710,713,716,718],{"class":234,"line":689},16,[232,691,673],{"class":438},[232,693,494],{"class":493},[232,695,696],{"class":586},"send_header",[232,698,583],{"class":493},[232,700,701],{"class":493},"\"",[232,703,704],{"class":241},"Content-type",[232,706,701],{"class":493},[232,708,709],{"class":493},",",[232,711,712],{"class":493}," \"",[232,714,715],{"class":241},"text/html",[232,717,701],{"class":493},[232,719,686],{"class":493},[232,721,723,725,727,730],{"class":234,"line":722},17,[232,724,673],{"class":438},[232,726,494],{"class":493},[232,728,729],{"class":586},"end_headers",[232,731,732],{"class":493},"()\n",[232,734,736,739,741,744,746,749],{"class":234,"line":735},18,[232,737,738],{"class":438},"      hostname ",[232,740,577],{"class":493},[232,742,743],{"class":438}," socket",[232,745,494],{"class":493},[232,747,748],{"class":586},"gethostname",[232,750,732],{"class":493},[232,752,754,757,759,762,764,767],{"class":234,"line":753},19,[232,755,756],{"class":438},"      now ",[232,758,577],{"class":493},[232,760,761],{"class":438}," datetime",[232,763,494],{"class":493},[232,765,766],{"class":586},"utcnow",[232,768,732],{"class":493},[232,770,772,774,776,779,781,784],{"class":234,"line":771},20,[232,773,673],{"class":438},[232,775,494],{"class":493},[232,777,778],{"class":497},"wfile",[232,780,494],{"class":493},[232,782,783],{"class":586},"write",[232,785,786],{"class":493},"(\n",[232,788,790,793],{"class":234,"line":789},21,[232,791,792],{"class":238},"            bytes",[232,794,786],{"class":493},[232,796,798,801,804,807,810,813],{"class":234,"line":797},22,[232,799,800],{"class":628},"               f",[232,802,803],{"class":241},"\"\u003Chtml>\u003Cbody>\u003Ch1>Hello from Gefyra. It is ",[232,805,806],{"class":313},"{",[232,808,809],{"class":586},"now",[232,811,812],{"class":313},"}",[232,814,815],{"class":241}," on\"\n",[232,817,819,821,824,826,829,831,834,836,839,841,843,846,848],{"class":234,"line":818},23,[232,820,800],{"class":628},[232,822,823],{"class":241},"\" ",[232,825,806],{"class":313},[232,827,828],{"class":586},"hostname",[232,830,812],{"class":313},[232,832,833],{"class":241},".\u003C/h1>\u003C/body>\u003C/html>\"",[232,835,494],{"class":493},[232,837,838],{"class":586},"encode",[232,840,583],{"class":493},[232,842,701],{"class":493},[232,844,845],{"class":241},"utf-8",[232,847,701],{"class":493},[232,849,686],{"class":493},[232,851,853],{"class":234,"line":852},24,[232,854,855],{"class":493},"            )\n",[232,857,859],{"class":234,"line":858},25,[232,860,861],{"class":493},"      )\n",[232,863,865],{"class":234,"line":864},26,[232,866,271],{"emptyLinePlaceholder":270},[232,868,870,873,875],{"class":234,"line":869},27,[232,871,872],{"class":438},"my_handler ",[232,874,577],{"class":493},[232,876,877],{"class":438}," MyHttpRequestHandler\n",[232,879,881,884,886,889,891,894,897,900,902,905,908,911],{"class":234,"line":880},28,[232,882,883],{"class":438},"server ",[232,885,577],{"class":493},[232,887,888],{"class":438}," socketserver",[232,890,494],{"class":493},[232,892,893],{"class":586},"ThreadingTCPServer",[232,895,896],{"class":493},"((",[232,898,899],{"class":493},"\"\"",[232,901,709],{"class":493},[232,903,904],{"class":586}," port",[232,906,907],{"class":493},"),",[232,909,910],{"class":586}," my_handler",[232,912,686],{"class":493},[232,914,916],{"class":234,"line":915},29,[232,917,271],{"emptyLinePlaceholder":270},[232,919,921,924,927,929,933,935,938],{"class":234,"line":920},30,[232,922,923],{"class":628},"def",[232,925,926],{"class":586}," signal_handler",[232,928,583],{"class":493},[232,930,932],{"class":931},"sHdIc","signal",[232,934,709],{"class":493},[232,936,937],{"class":931}," frame",[232,939,650],{"class":493},[232,941,943,946],{"class":234,"line":942},31,[232,944,945],{"class":486},"   try",[232,947,607],{"class":493},[232,949,951,954,957],{"class":234,"line":950},32,[232,952,953],{"class":486},"      if",[232,955,956],{"class":438}," server",[232,958,607],{"class":493},[232,960,962,965,967,970],{"class":234,"line":961},33,[232,963,964],{"class":438},"            server",[232,966,494],{"class":493},[232,968,969],{"class":586},"server_close",[232,971,732],{"class":493},[232,973,975,978],{"class":234,"line":974},34,[232,976,977],{"class":486},"   finally",[232,979,607],{"class":493},[232,981,983,986,988,991,993,996],{"class":234,"line":982},35,[232,984,985],{"class":438},"      sys",[232,987,494],{"class":493},[232,989,990],{"class":586},"exit",[232,992,583],{"class":493},[232,994,995],{"class":313},"0",[232,997,686],{"class":493},[232,999,1001],{"class":234,"line":1000},36,[232,1002,271],{"emptyLinePlaceholder":270},[232,1004,1006,1008,1010,1012,1014,1016,1018,1021,1023,1025],{"class":234,"line":1005},37,[232,1007,932],{"class":438},[232,1009,494],{"class":493},[232,1011,932],{"class":586},[232,1013,583],{"class":493},[232,1015,932],{"class":586},[232,1017,494],{"class":493},[232,1019,1020],{"class":497},"SIGINT",[232,1022,709],{"class":493},[232,1024,926],{"class":586},[232,1026,686],{"class":493},[232,1028,1030,1033],{"class":234,"line":1029},38,[232,1031,1032],{"class":486},"try",[232,1034,607],{"class":493},[232,1036,1038,1041],{"class":234,"line":1037},39,[232,1039,1040],{"class":486},"   while",[232,1042,1043],{"class":493}," True:\n",[232,1045,1047,1049,1051,1054,1056,1059],{"class":234,"line":1046},40,[232,1048,985],{"class":438},[232,1050,494],{"class":493},[232,1052,1053],{"class":497},"stdout",[232,1055,494],{"class":493},[232,1057,1058],{"class":586},"flush",[232,1060,732],{"class":493},[232,1062,1064,1067,1069,1072],{"class":234,"line":1063},41,[232,1065,1066],{"class":438},"      server",[232,1068,494],{"class":493},[232,1070,1071],{"class":586},"serve_forever",[232,1073,732],{"class":493},[232,1075,1077,1080,1083],{"class":234,"line":1076},42,[232,1078,1079],{"class":486},"except",[232,1081,1082],{"class":238}," KeyboardInterrupt",[232,1084,607],{"class":493},[232,1086,1088],{"class":234,"line":1087},43,[232,1089,1090],{"class":486},"   pass\n",[232,1092,1094],{"class":234,"line":1093},44,[232,1095,271],{"emptyLinePlaceholder":270},[232,1097,1099,1101,1103,1105],{"class":234,"line":1098},45,[232,1100,642],{"class":438},[232,1102,494],{"class":493},[232,1104,969],{"class":586},[232,1106,732],{"class":493},[419,1108,1110,1111,1114],{"id":1109},"_22-build-it-by-running-docker-build-f-dockerfile-t-pyserver-in-your-directory","2.2 Build it by running ",[219,1112,1113],{},"docker build -f Dockerfile . -t pyserver"," in your directory.",[419,1116,1118],{"id":1117},"_23-execute-gefyras-run-command","2.3 Execute Gefyra's run command:",[223,1120,1122],{"className":225,"code":1121,"language":227,"meta":228,"style":228},"gefyra run -d -i pyserver -N mypyserver -n default\n",[219,1123,1124],{"__ignoreMap":228},[232,1125,1126,1128,1131,1134,1137,1140,1143,1146,1149],{"class":234,"line":235},[232,1127,403],{"class":238},[232,1129,1130],{"class":241}," run",[232,1132,1133],{"class":241}," -d",[232,1135,1136],{"class":241}," -i",[232,1138,1139],{"class":241}," pyserver",[232,1141,1142],{"class":241}," -N",[232,1144,1145],{"class":241}," mypyserver",[232,1147,1148],{"class":241}," -n",[232,1150,1151],{"class":241}," default\n",[379,1153,1154,1156,1157,1160,1161,1164,1165],{},[410,1155,412],{},": ",[219,1158,1159],{},"gefyra run"," is just a wrapper for ",[219,1162,1163],{},"docker run"," (with additional flags), yet it also applies Gefyra's networking configuration to connect the container with Kubernetes. Check out ",[194,1166,1168,1169],{"href":1167},"/en/quick-start/cli#run","the docs for ",[219,1170,1159],{},[214,1172,1174,1175,1179],{"id":1173},"_3-exec-into-the-running-container-and-look-around-you-will-find-the-container-to-run-within-your-kubernetes-cluster","3. ",[1176,1177,1178],"em",{},"Exec"," into the running container and look around. You will find the container to run within your Kubernetes cluster.",[223,1181,1183],{"className":225,"code":1182,"language":227,"meta":228,"style":228},"docker exec -it mypyserver bash\n",[219,1184,1185],{"__ignoreMap":228},[232,1186,1187,1190,1193,1196,1198],{"class":234,"line":235},[232,1188,1189],{"class":238},"docker",[232,1191,1192],{"class":241}," exec",[232,1194,1195],{"class":241}," -it",[232,1197,1145],{"class":241},[232,1199,1200],{"class":241}," bash\n",[223,1202,1204],{"className":225,"code":1203,"language":227,"meta":228,"style":228},"wget -O- hello-nginx\n",[219,1205,1206],{"__ignoreMap":228},[232,1207,1208,1211,1214],{"class":234,"line":235},[232,1209,1210],{"class":238},"wget",[232,1212,1213],{"class":241}," -O-",[232,1215,1216],{"class":241}," hello-nginx\n",[379,1218,1219,1220,1223],{},"will print out the website of the cluster service ",[1176,1221,1222],{},"hello-nginx"," from within the cluster. 🚀",[214,1225,1227],{"id":1226},"_4-create-a-bridge-to-redirect-the-traffic-from-the-cluster-application-to-the-one-running-locally","4. Create a bridge to redirect the traffic from the cluster application to the one running locally:",[223,1229,1231],{"className":225,"code":1230,"language":227,"meta":228,"style":228},"gefyra bridge -N mypyserver -n default --ports 80:8000 --target deploy/hello-nginxdemo/hello-nginx\n",[219,1232,1233],{"__ignoreMap":228},[232,1234,1235,1237,1240,1242,1244,1246,1249,1252,1255,1258],{"class":234,"line":235},[232,1236,403],{"class":238},[232,1238,1239],{"class":241}," bridge",[232,1241,1142],{"class":241},[232,1243,1145],{"class":241},[232,1245,1148],{"class":241},[232,1247,1248],{"class":241}," default",[232,1250,1251],{"class":241}," --ports",[232,1253,1254],{"class":241}," 80:8000",[232,1256,1257],{"class":241}," --target",[232,1259,1260],{"class":241}," deploy/hello-nginxdemo/hello-nginx\n",[379,1262,1263,1264,1267],{},"Check out the locally running server serving the cluster by refreshing the address from the service in Kubernetes.\nIt shows you a different message: ",[219,1265,1266],{},"Hello from Gefyra. It is ...",". Yes, that is really coming from your local container! 😎",[214,1269,1271,1272,413],{"id":1270},"_5-list-all-running-bridges","5. List all running ",[1176,1273,1274],{},"bridges",[379,1276,1277],{},"You can list all currently active bridges with:",[223,1279,1281],{"className":225,"code":1280,"language":227,"meta":228,"style":228},"gefyra list --bridges\n",[219,1282,1283],{"__ignoreMap":228},[232,1284,1285,1287,1290],{"class":234,"line":235},[232,1286,403],{"class":238},[232,1288,1289],{"class":241}," list",[232,1291,1292],{"class":241}," --bridges\n",[379,1294,1295],{},"You will find all local containers that are currently linked into the cluster serving requests.",[214,1297,1299,1300,1303],{"id":1298},"_6-unbridge-the-local-container-and-reset-the-cluster-to-its-original-state","6. ",[1176,1301,1302],{},"Unbridge"," the local container and reset the cluster to its original state:",[223,1305,1307],{"className":225,"code":1306,"language":227,"meta":228,"style":228},"gefyra unbridge --all\n",[219,1308,1309],{"__ignoreMap":228},[232,1310,1311,1313,1316],{"class":234,"line":235},[232,1312,403],{"class":238},[232,1314,1315],{"class":241}," unbridge",[232,1317,1318],{"class":241}," --all\n",[379,1320,1321],{},"Check out the original response from the service. The cluster is now reset to its inital state again.",[182,1323,1325],{"id":1324},"cleaning-up","Cleaning up",[187,1327,1328],{},[190,1329,1330],{},"Remove Gefyra's components from the cluster and your local Docker host with:",[223,1332,1334],{"className":225,"code":1333,"language":227,"meta":228,"style":228},"gefyra down\n",[219,1335,1336],{"__ignoreMap":228},[232,1337,1338,1340],{"class":234,"line":235},[232,1339,403],{"class":238},[232,1341,1342],{"class":241}," down\n",[187,1344,1345],{"start":267},[190,1346,1347],{},"Remove the locally running Kubernetes cluster with",[223,1349,1351],{"className":225,"code":1350,"language":227,"meta":228,"style":228},"colima delete\n",[219,1352,1353],{"__ignoreMap":228},[232,1354,1355,1357],{"class":234,"line":235},[232,1356,221],{"class":238},[232,1358,1359],{"class":241}," delete\n",[1361,1362,1363,1367,1368,494],"card",{},[1364,1365,1366],"template",{"v-slot:title":228},"Please provide us with your feedback","Did everything work as expected? How was the experience of using Gefyra? We'd appreciate if you could take 2 minutes of your time to fill out our ",[194,1369,1372],{"href":1370,"rel":1371,"target":199},"https://forms.gle/AWT9NparpTVk8E978",[198],"feedback form",[1374,1375,1376],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s5tWE, html code.shiki .s5tWE{--shiki-light:#E53935;--shiki-light-font-style:italic;--shiki-default:#F07178;--shiki-default-font-style:italic;--shiki-dark:#F07178;--shiki-dark-font-style:italic}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}",{"title":228,"searchDepth":267,"depth":267,"links":1378},[1379,1380,1387,1398],{"id":184,"depth":267,"text":185},{"id":211,"depth":267,"text":212,"children":1381},[1382,1384,1385,1386],{"id":216,"depth":274,"text":1383},"1. Creating a local Kubernetes cluster with colima",{"id":251,"depth":274,"text":252},{"id":329,"depth":274,"text":330},{"id":352,"depth":274,"text":353},{"id":388,"depth":267,"text":389,"children":1388},[1389,1390,1391,1393,1394,1396],{"id":392,"depth":274,"text":393},{"id":416,"depth":274,"text":417},{"id":1173,"depth":274,"text":1392},"3. Exec into the running container and look around. You will find the container to run within your Kubernetes cluster.",{"id":1226,"depth":274,"text":1227},{"id":1270,"depth":274,"text":1395},"5. List all running bridges:",{"id":1298,"depth":274,"text":1397},"6. Unbridge the local container and reset the cluster to its original state:",{"id":1324,"depth":267,"text":1325},"This guide will show you how to use Gefyra for the local development of a Kubernetes application running in Colima Kubernetes.","md",null,{},{"title":44,"icon":47},{"title":177,"description":1399},"nW8xtU_stez6PIwHc6sRSUrfNTlzLyeyqFMdrmxbxPA",[1407,1409],{"title":21,"path":41,"stem":42,"description":1408,"icon":24,"children":-1},"This chapter contains guides on how to get started with Gefyra and different local Kubernetes solutions. These guides are for a single user on a local machine.",{"title":49,"path":50,"stem":51,"description":1410,"icon":29,"children":-1},"This example is really similar to the k3d getting started guide. However, Docker Desktop's Kubernetes comes with some specialities which must be taken care of to make this guide work.",1775752109073]