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:
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:
- Watches for Platform Application resources
- Creates Kubernetes resources (Deployments, Services, Ingress, etc.)
- Configures cloud resources and IAM permissions
- Syncs secrets from cloud secret stores
- Monitors health and updates status
- 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
- ArgoCD
- kubectl
- 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
kubectlaccess to a cluster with the Platform Application Operator installed- Check here for installation instructions
- Kubernetes RBAC permissions to create
NamespacesandPlatformApplications
Recommended Knowledge
- Basic Kubernetes concepts (Pods, Services, Deployments)
- To learn more about basic Kubernetes concepts check out these picture books from the Cloud Native Computing Foundation (CNCF): The Illustrated Children's Guide to Kubernetes and also Phippy Goes to the Zoo. Honestly, they do a great job explaining the fundamentals.
- YAML syntax
- Familiarity with your chosen toolset: ArgoCD, kubectl
Tutorial Lessons
📄️ ArgoCD Deployments
Deploy Platform Applications using ArgoCD for GitOps-based continuous deployment.
🗃️ Full Walkthrough
5 items
📄️ Platform Folder Anatomy
Application Repository Platform folder structure
📄️ Platform Dispatch Action
The Platform Application Manifest Dispatch GitHub Action structures the workflow dispatch your .platform repository makes available for updating application images and configurations.
📄️ Platform Repository Anatomy
The .platform repository contains Kustomize references for your application per environment, it has this structure:
📄️ Troubleshooting
This guide covers common issues when working with Platform Applications and how to resolve them.