NGINX Plus Ingress Controller & NGINX Service Mesh Sandbox - Fresh Config
Ahhhh yes, I love the smell of a fresh config doc in the morning. After almost two decades of IT under my belt, I am no stranger to reading the bleeping manuals and as a senior engineer like to exhaust all of my options before asking for help.
Those options often lie in RTMA (read the manual again), try it and see what happens, and/or highly caffenated search engine queries for keyword phrases around the issue/s I am facing. Often, I find I am not the first to have hit said issue, but at the speed IT moves, inevitably at some point, you will be the first no matter what.
Fortunately, at F5 we have an very extensive bench of mega-rockstars in just about every technology there is, so a little help is often just a PM away. Once in awhile I get lucky with my search fu and find a well written step by step guide without a bunch of fluff that saves me a ton of time and PM's. That is what this guide aims to be and will hopefully do the same for you.
After several hours of RTMA of several products, a bit of trial and error, and a few PM's, I have created a step-by-step guide for installing NGINX Service Mesh v1.4.1 and NGINX Plus Ingress Controller v2.2.2 on a multi-node Kubernetes (K8s) environment v1.22.1 provided by Minikube v1.26.0 which is running on a free Multipass v1.9.1 Ubuntu VM v20.0.4. Thats a mouthful and quite a list of version dependencies which have all been vetted for this environment. This config will give you a completely free and highly reproducable but "version dependent" sandbox environment, which is very important, especially with troubleshooting.
With just K8's alone there are a lot of moving parts and adding in a Service Mesh and Ingress Controllers only extends that list of dependencies and parts. Eliminating system level variables as much as possible helps everyone when trying to configure, troubleshoot or repro a complex environment.
These build instructions are intended for someone with intermediate level K8's knowledge although you could probably just copy pasta most of it and be fine. Inevitably at some point though, you will need to understand what these commands are actually doing and if they look like they're written in some alien language, then that's your homework....just start your research there. Just studying for my CKA has allowed me to get this far and will get back to that soon, but this was way more fun to produce in the interim, since it's real world stuff.
Prereqs:
You will need to sign up for a free 30 day NGINX Plus Eval license. https://www.nginx.com/free-trial-request/
You will be sent instructions for accessing your NGINX Cert, Key and JWT token. These credentials are used to access the build servers for the NGINX Plus images, although in this environment, you will only be using the JWT token to create a secret for the NGINX Plus+ deployment manifest. NGINX Service Mesh is free but if you want to expose it to the outside world, you will need an NGINX Plus license for the Ingress controllers.
The Setup:
You can find the walkthrough (Instructions.txt) and associated files here: https://github.com/f5devcentral/NIC-SM-Sandbox---Fresh-Config
Issues
Please file any issues here: https://github.com/f5devcentral/NIC-SM-Sandbox---Fresh-Config/issues