Kratix Documentation

repository·main·Indexed 20 days ago

https://github.com/syntasso/kratix

An open-source platform framework designed to provide the flexibility of a custom-built platform with the self-service capabilities of public clouds. The framework utilizes a Promise model to deliver capabilities, including support for compound Promises, pipeline execution, and resource requests. Documentation covers the Kratix controller configuration via ConfigMap and CLI flags, the kratix-pipeline-debugger utility, and various sample Promise implementations such as NGINX Ingress and PostgreSQL.

Tokens
10.1K
Snippets
38
Records
63
Agent score
73%

What's inside Kratix

  1. Install the NGINX Ingress Promise

    main

    The NGINX Ingress Promise provides access to the NGINX Ingress Controller (NIC) in the global deployment configuration. Note that this Promise installs NGINX directly as part of the installation process; it is not provided 'as-a-Service', so there is no need to submit individual Resource Requests after installation.

    To install, run the following command targeting your Platform cluster:

    kubectl apply -f https://raw.githubusercontent.com/syntasso/kratix-marketplace/main/nginx-ingress/promise.yaml
  2. Get started with Kratix

    main

    To begin using Kratix, follow the official quick start guide to set up your environment and get the platform running. Detailed instructions are available at the Kratix documentation site.

    https://docs.kratix.io/main/quick-start
  3. Debug a Promise pipeline using the kratix-pipeline-debugger image

    main

    The kratix-pipeline-debugger image is a utility designed to pause a Promise pipeline execution. It waits for the presence of the file /tmp/continue before exiting with code 0. This allows you to SSH into the running container to perform manual troubleshooting, inspection, or debugging steps. Once you have completed your manual tasks, you can trigger the pipeline to proceed by creating the /tmp/continue file inside the container.

    To use it, insert the debugger image as a step in your Promise pipeline definition.

    - image: ghcr.io/syntasso/kratix-pipeline-debugger:v0.0.1
      name: manual-debug
  4. Use the Paved Path Demo Compound Promise

    main

    The Paved Path Demo is a Compound Promise designed to demonstrate how Kratix can encapsulate multiple resources into a single request. This specific Promise bundles Knative and PostgreSQL together. When a user sends a resource request to this Promise, Kratix automatically provisions both a new Knative Serving instance and a new PostgreSQL instance on the registered Destination.

    Prerequisite: To use this Promise, the Kubernetes cluster where the resources should be deployed must be registered as a Destination within Kratix. If your cluster is not registered, refer to the Compound Promises guide in the official Kratix documentation to set up your platform.

  5. Install the App as a Service Promise

    main

    To install the 'App as a Service' Paved-Path Promise, apply the following YAML definition to your cluster.

    Prerequisite: The Kubernetes cluster running Kratix must be registered as a Destination. If you haven't configured this, refer to the Kratix documentation on Compound Promises.

    This is a compound Promise that orchestrates the installation of:

    • Nginx-ingress
    • Postgres
    • A Deployment (which deploys the sample application to the Destination using the configured ingress)
    kubectl create -f https://raw.githubusercontent.com/syntasso/kratix/main/samples/paved-path-nginx/promise.yaml
  6. Request an App as a Service resource

    main

    Once the Promise is installed, you can make a resource request to deploy the sample application. This request deploys a sample Golang application to the configured Destination.

    To make the request, apply the following resource request YAML:

    kubectl apply -f https://raw.githubusercontent.com/syntasso/kratix/main/samples/paved-path-nginx/resource-request.yaml