Skip to main content
Version: v0.3.x

Quick Start Guide

Setting up OpenChoreo in a Kubernetes cluster involves multiple steps and tools. This guide provides a fast and simple way to install a fully functional OpenChoreo instance on your local machine with minimal prerequisites and effort by using a pre-configured dev container. This dev container has all the necessary tools installed for setting up OpenChoreo and is ready to be used. Once the installation is complete, you can explore the underlying setup to understand how it works. When you're done, you can fully clean up the set up, leaving your machine clutter-free.

Prerequisites

To get started, you'll need:

  • Docker – Have it installed on your machine, and you're good to go.
    • We recommend using Docker Engine version 26.0+.
    • Allocate at least 4 GB of RAM and 2 CPU cores to Docker (or the VM running Docker).
    • Important for Mac users: We recommend using Colima with VZ Rosetta support for optimal compatibility. Start Colima with: colima start --vm-type=vz --vz-rosetta --cpu 2 --memory 4
      note

      If you encounter issues with other Docker alternatives (Docker Desktop, Rancher Desktop, etc.), please report them on GitHub.

  • 5–10 minutes of your time – Setup is quick and depends on your internet connection speed.

Start the Dev Container

Run the following command to start the dev container and launch a terminal session within it:

docker run --rm -it --name openchoreo-quick-start \
--pull always \
-v /var/run/docker.sock:/var/run/docker.sock \
--network bridge \
-p 8443:8443 \
-p 7007:7007 \
ghcr.io/openchoreo/quick-start:v0.3.2

Install OpenChoreo

This process sets up a KinD (Kubernetes-in-Docker) cluster in your Docker environment and installs OpenChoreo along with its dependencies.

To begin the installation, run:

./install.sh --openchoreo-version 0.3.2
tip

This installation script is idempotent - you can safely run it multiple times without issues. If you exit the dev container or stop the process at any point, simply restart the container and re-run the script to continue where you left off.

Once the installation is complete, you will see the following confirmation message:

======================================================================
OpenChoreo Component Status
======================================================================

+- Networking (Infrastructure) -----------------------------------+
| cilium [READY] |
+-----------------------------------------------------------------+

+- Control Plane (Core) ------------------------------------------+
| cert_manager_cp [READY] |
| controller_manager [READY] |
| api_server [READY] |
+-----------------------------------------------------------------+

+- Data Plane (Core) ---------------------------------------------+
| vault [READY] |
| registry [READY] |
| redis [READY] |
| envoy_gateway [READY] |
| external_gateway [READY] |
| internal_gateway [READY] |
| fluent_bit_dp [READY] |
+-----------------------------------------------------------------+

+- Build Plane (Optional) ----------------------------------------+
| build_plane [READY] |
+-----------------------------------------------------------------+

+- Identity Provider (Optional) ----------------------------------+
| identity_provider [READY] |
+-----------------------------------------------------------------+

+- Observability Plane (Optional) --------------------------------+
| opensearch [NOT_INSTALLED] |
| opensearch_dashboard [NOT_INSTALLED] |
| observer [NOT_INSTALLED] |
+-----------------------------------------------------------------+

+- Backstage Demo (Optional) -------------------------------------+
| backstage [READY] |
+-----------------------------------------------------------------+

======================================================================
note

If you see any components still in the pending state, you can check the status again in a few minutes. Run the following command to check the installation status of components:

./check-status.sh

Accessing the Backstage Developer Portal

The quickstart deployment includes a Backstage instance that provides a unified developer portal for managing and visualizing your OpenChoreo components. Once the installation is complete and the backstage component shows as [READY], you can access it at:

🌐 Backstage Portal URL: http://localhost:7007

The Backstage portal provides:

  • Cell Diagram: View all deployed components and their relationships.
  • Logs: View runtime logs and build logs of each component.
  • Configure and Deploy: Configure, deploy, and promote web applications and services through environments.

The portal will automatically discover and display any components you deploy through OpenChoreo, giving you a centralized view of your entire application ecosystem.

Deploying a Web Application with OpenChoreo

You now have OpenChoreo fully set up in your Docker environment. Next, let's deploy a sample web application by running the following command:

./deploy_web_application.sh

Once the deployment is complete, you will receive the following message together with a URL to access the application:

✅ Endpoint is ready!
🌍 You can now access the Sample Web Application at: https://react-starter-development.choreoapps.localhost:8443

Understanding What Happens Behind the Scenes

By following the install and deploy web application commands, you first set up OpenChoreo and then successfully deployed and accessed a fully functional web application.

1. The Install Command

  • A dev container with all the necessary tools for OpenChoreo to run is set up in a local Docker environment.
  • A KinD Kubernetes cluster is created, where the OpenChoreo IDP and its dependencies are installed using Helm charts.

Foundation Resources Created by OpenChoreo

The installation process, by default, sets up several essential abstractions. These are:

  • Organization
  • Data Plane
  • Build Plane
  • Environments (e.g., Development, Staging, Production)
  • Deployment Pipeline for the environments
  • Project

To access the artifacts created in OpenChoreo you can use kubectl as shown in the following commands:

You can check each resource type

kubectl get organizations
kubectl get dataplanes
kubectl get environments
kubectl get projects

To get more details on any of these abstractions, you can use a similar command to the following command:

kubectl get project default -oyaml

2. The Deploy Web Application Command

The deploy script creates a sample Web Application Component, along with a Deployment for the sample web application.

To inspect these resources in more detail, run the following commands:

kubectl get components
tip

You can try out more samples on this setup. Check out our Samples for more details. The samples are also available in the dev container at /samples.

important

If you try out samples in the dev container, you don't need to expose the OpenChoreo Gateway to your host machine. The OpenChoreo gateway is already exposed to the host machine via dev container port 8443.

Cleaning up

After finishing your work, you have two options:

  1. Exit and return later: If you plan to return, simply exit the dev container by running:
     exit
  2. Full cleanup: To remove all resources and clean up the environment completely, run:
    ./uninstall.sh
    exit

That's it!

Now you understand how OpenChoreo simplifies the deployment and management of cloud-native applications.

Troubleshooting

Docker Environment Resource Issues

If you encounter issues during installation, first check if your Docker environment has sufficient memory and CPU resources:

docker run --rm alpine:latest sh -c "echo 'Memory:'; free -h; echo; echo 'CPU Cores:'; nproc"

Ensure you have at least 4 GB of available memory and 2 CPU cores as outlined in the Prerequisites section.

Port Access Issues (Backstage and External Gateway)

If you're unable to access:

  • Backstage at localhost:7007
  • External Gateway at port 8443

Run the following command inside the dev container to verify that the socat processes are running properly:

ps aux | grep socat

The socat processes are responsible for port forwarding between the dev container and your host machine. If these processes are not running, try running the install command again.

./install.sh --openchoreo-version 0.3.2