Installing Korifi locally

In this exercise, you will install Korifi locally on kind using a locally deployed container registry. To install Korifi on another Kubernetes provider, see the installation documentation in GitHub.

Prerequisites

You will need the following prerequisites to use Korifi locally. If you are a Kubernetes user, you likely already have most of these tools installed.

Follow the instructions below to install the prerequisites.

  • Docker Desktop: Kind uses Docker to run Kubernetes container nodes. Install Docker Desktop according to the instructions.

  • kind: kind is a tool for running local Kubernetes clusters using Docker container “nodes”. Install kind by following the directions. You only need to install kind; you do not need to create a cluster yet.

  • Helm: Helm is a package manager for Kubernetes. Helm is used to install Korifi on a Kubernetes cluster. Install Helm according to the instructions.

  • kubectl: kubectl is the the Kubernetes command-line tool, allowing you to run commands against Kubernetes clusters. Install kubectl according to the instructions.

  • cf: cf is the Cloud Foundry command-line tool. Install the latest version of the Cloud Foundry CLI according to the instructions.

Installation Overview

The Korifi development team maintains an installation job to install Korifi locally. It installs the Kubernetes ecosystem dependencies outlined below and a local container registry. We will use this job to install Korifi. If you prefer, you can follow the installation instructions on GitHub to install Korifi manually.

The run the job does the following:

Installing Korifi

While you can install all of the above manually, it is far easier to use the installer job.

Please note the installer job would install Korifi with the experimental managed services support turned on.

Running the installer job is documented in the Korifi’s kind install guide.

Note, below we assume korifi to be the name of the cluster you would deploy to. You can use any name you would like.

Deploying an Application

We have provided a sample application you can deploy to your Korifi instance. However, before deploying, we need to set up our Cloud Foundry instance a bit by doing the following:

  • Target the Cloud Foundry instance: cf api https://localhost --skip-ssl-validation
  • Authenticate: cf auth kind-korifi
  • Create an Org: cf create-org tutorial
  • Create a Space: cf create-space -o tutorial dev
  • Target the Org and Space you created: cf target -o tutorial -s dev

Now you are ready to deploy the application:

  • Clone the sample application: git clone https://github.com/cloudfoundry-tutorials/korifi-sample-app.git
  • Change the application directory: cd korifi-sample-app
  • Deploy the application: cf push

At a high level, the following happens:

  • The cf command line interface uploads the application bits
  • Korifi uses kpack and Paketo buildpacks to build a container image for the application
  • The container image is stored in the local Docker registry
  • The container image is deployed to Kubernetes
  • Ingress traffic will be mapped to the application using Contour

You will see an output that ends with something similar to the following. If you copy the route, you should be able to open the application in a browser.

requested state:   started
routes:            sample-app.apps-127-0-0-1.nip.io
last uploaded:     Thu 09 Feb 11:02:52 MST 2023
stack:             io.buildpacks.stacks.bionic
buildpacks:        

type:            web
sidecars:        
instances:       1/1
memory usage:    32M
start command:   sh "/workspace/start.sh"
     state     since                  cpu    memory   disk     logging      details
#0   running   2023-02-09T18:03:43Z   0.0%   0 of 0   0 of 0   0/s of 0/s   

In the next section, we will look at Korifi and the deployed application using kubectl.