Installation
Installing Gimlet
On this page you can learn how to install Gimlet on any Kubernetes cluster.
By the end of this tutorial you will access the dashboard with a kubectl port-forward command, later you can move the installation to a real domain and HTTPS.
Pre-requisites
- A Github.com personal or organization account or a Gitlab.com or self-hosted Gitlab account.
- A Kubernetes cluster running on your laptop or on a cloud provider. Gimlet is tested with the following local Kubernetes options:
- k3s / k3d
- Rancher / Docker Desktop
- Minikube
- kind
Start the installer with a oneliner
You install Gimlet with an installer. The installer initiates a gitops environment and puts Gimlet into its gitops repository. This way Gimlet itself is managed by gitops.
The following oneliner kickstarts the Gimlet installer.
curl -L -s https://get.gimlet.io | bash -s trial
Connect with Github or Gitlab
Create a Github Application
First, the installer creates a Github Application to manage all Gimlet access with it.
Install the newly created Github Application and select what repositories Gimlet should have access to. We recommend that first you select only a subset of your repositories and extend the list if you want to roll out Gimlet for more apps.
As a final step, you also need to authorize the newly created application. Keep in mind that you are granting this access to your own Github Application. You are not granting any access to any third-party nor the Gimlet creators.
Gitlab
TODO
Bootstrapping the gitops environment
You have to provide information about the environment you are creating in this step.
You need to name the environment and set the approach to structure gitops resources. By default, Gimlet uses two gitops repositories per environment by convention, one for infrastructure components, one for application deployments.
Kickstarting the gitops automation
Once the boorstrapping is done, you have two new git repositories to store manifests in.
Follow the instructions to kickstart the automation. This will be the last time you have to manually deploy things on your cluster.
Once you performed all the instructions, close the browser tab, and return to the terminal to finalize the install.
The installer script is going to check the gitops automation and if Gimlet is installed yet.
🧐 Waiting for all four gitops kustomizations become ready, ctrl+c to abort
$ kubectl get kustomizations.kustomize.toolkit.fluxcd.io -A
NAMESPACE NAME AGE READY STATUS
flux-system gitops-repo-laszlocph-gitops-minikube-1-apps 31s False dependency 'flux-system/gitops-repo-laszlocph-gitops-minikube-1-apps-dependencies' is not ready
flux-system gitops-repo-laszlocph-gitops-minikube-1-apps-dependencies 31s True Applied revision: main/0195aaac0aa83c5e08c06a8b22c5f3d79ffbad06
flux-system gitops-repo-laszlocph-gitops-minikube-1-infra 53s Unknown reconciliation in progress
flux-system gitops-repo-laszlocph-gitops-minikube-1-infra-dependencies 53s True Applied revision: main/c7310c84029bef0dca8a3c081e5006fb736ad14b
✅ Gitops loop is healthy
🧐 Waiting for Gimlet to start up in the cluster, ctrl+c to abort
$ kubectl get pods -n infrastructure | grep gimlet
NAME READY STATUS RESTARTS AGE
gimlet-agent-848b6f6dd5-t764c 1/1 Running 1 (31s ago) 43s
gimlet-dashboard-855b799c67-fwvjr 0/1 Running 1 (20s ago) 42s
gimletd-79dc5d546c-ksdfn 0/1 Running 1 (15s ago) 42s
postgresql-0 1/1 Running 0 34s
✅ Gimlet is up
Accessing Gimlet
You were accessing the installer on the http://gimlet.trial:9000 address. Now that the installer is stopped, you will reuse this address to access the Gimlet dashboard.
The /etc/hosts
file entry already exists, you only need to port-forward Gimlet to your local port 9000 to make it accessible on http://gimlet.trial:9000.
kubectl port-forward -n infrastructure svc/gimlet 9000:9000
Where to go next
Congratulations, now you have a fully functioning Gimlet dashboard available for evaluation.
If you installed Gimlet on a cloud provider, now you can continue and move the installation to a real domain and HTTPS.
If you installed Gimlet on your laptop, you can still proceed and use a service called Ngrok to expose Gimlet for external parties, like CI platforms.
Should you have any trouble installing or have questions join our community.