Skip to main content

Platform Application Deployment Tutorial

This tutorial guides you through deploying applications using PlatformApplications on platforms powered by Ybor. It covers the essential features and best practices for deploying containerized applications with ease.

This tutorial uses the simple application, mendhak/http-https-echo (GitHub) which echoes the HTTP(s) requests it receives, to show how any container can be deployed.

What is a Platform Application?

A Platform Application is a Kubernetes Custom Resource Definition (CRD) that provides a simplified, declarative way to deploy and manage applications. It abstracts away the complexity of Kubernetes resources and cloud provider configurations.

Why Platform Applications?

Instead of managing multiple Kubernetes resources manually:

• Deployment
• Service
• Ingress/Gateway
• ConfigMap
• Secret
• ExternalSecret
• HTTPRoute / VirtualService
• ServiceAccount
• IAM roles
• etc.
The Platform Application Operator Handles It All

You define a single PlatformApplication resource, and the Platform Application Operator creates and manages all necessary resources automatically.

What Does the Platform Application Operator Do?

The Platform Application Operator runs in your Kubernetes cluster and continuously reconciles the desired state defined in Platform Application resources. It:

  1. Watches for Platform Application resources
  2. Creates Kubernetes resources (Deployments, Services, Ingress, etc.)
  3. Configures cloud resources and IAM permissions
  4. Syncs secrets from cloud secret stores
  5. Monitors health and updates status
  6. Cleans up all resources when the Platform Application is deleted

For more information about the general Kubernetes Operator pattern, check out the official Kubernetes Operator documentation.


Prerequisites

Required Access & Tools

  • For secrets: Access to your Cloud Secret Store (AWS Secrets Manager, Azure Key Vault, GCP Secret Manager) to create secrets the Platform Application Operator will sync to the cluster
  • Access to your ArgoCD instance to view the deployed Applications
  • A Git repository to host your manifests
    • This should be in the same organization your ArgoCD instance has access to
    • Check out the argocd tutorial for how to setup a repository

Tutorial Lessons