KoalaOps currently supports GKE (Google Cloud) and EKS (AWS). We assume that your clusters (or at least one cluster) are already configured and operational. If you need help provisioning a new cluster, please contact us and we’ll be happy to assist. To use KoalaOps, you are required to connect every k8s cluster you intend to use.

KoalaOps pulls information from the cluster using our agent, configures your code (k8s manifests, CI/CD etc), and performs operations (via CLI or agent) according to the clusters configured for the organization and for each service.

Cluster requirements

Koala currently requires two extremely common tools to be installed in the cluster. Please make sure your cluster has them installed (or let us know if you need us to support alternatives). You can use Helm or direct kubectl installation.

  • Nginx ingress controller (instructions)
  • cert-manager (instructions)
    • cert-manager needs an “Issuer” to generate new certificates. You can install a basic configuration using Let’s Encrypt by applying the following to your cluster (replace the email address with your own):

      kubectl apply -f - <<EOF
      apiVersion: cert-manager.io/v1
      kind: ClusterIssuer
      metadata:
          name: letsencrypt
          namespace: cert-manager
      spec:
          acme:
              # You must replace this email address with your own.
              # Let's Encrypt will use this to contact you about expiring
              # certificates, and issues related to your account.
              email: user@example.com
              server: https://acme-v02.api.letsencrypt.org/directory
              privateKeySecretRef:
              # Secret resource that will be used to store the account's private key.
                  name: letsencrypt
              # Add a single challenge solver, HTTP01 using nginx
              solvers:
              - http01:
                  ingress:
                      class: nginx
      EOF
      

Make sure you’re authenticated to your cloud provider’s cluster

The Koala Agent installation requires your to be authenticated to your cluster. See more details on how to do so in the Koala Agent Requirements section.

Connect a Cluster

You will need the following information about the cluster:

  • Cluster name (The exact name of your cluster as in GCP console)
  • GCP project ID (for example: koala-ops-123)
  • Zone (for example me-west1-a)

Here is an example of how to extract those values from the GCP console:

You can register the cluster using either the Google Web App or the Koala CLI. Find the instructions for both options below.

Step 1: Register Cluster

Open the web app and on the left side menu click Clusters -> Connect. Fill in:

  • Cloud Provider: GCP
  • Cluster name
  • GCP project ID
  • Zone

Click the ‘Register’ button.

Step 2: Install Agent

Install the agent using helm: copy the command that was generated after clicking on Register into your terminal:

You can always fetch this command in the future from the clusters list section.

Configure DNS via k8s Ingress

Kubernetes Ingress is an API object that provides routing rules to manage access to services within a Kubernetes cluster. It acts as a single entry point for external traffic to your Kubernetes services, making it easier to manage and expose your applications to the world.

To enable ingress for your services in the cluster, you should configure the DNS for your domain to point to the cluster. This should be done in your DNS provider.

If a service is deployed in a single cluster, you can directly point the DNS to the cluster’s external IP address. You can see it in your cloud provider’s console, or in the cluster list in app.koalaops.com.

If you’re using a load balancer across clusters, we will soon add support for that, but for now you’ll need to continue to manage that manually. Please continue with the configuration as you would without KoalaOps.