Skip to content

yuruna: a developer toolset for cross-cloud Kubernetes-based applications.

License

Notifications You must be signed in to change notification settings

alissonsol/yuruna

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Yuruna

Deploy containerized applications to Kubernetes across multiple clouds with a single workflow.

Yuruna automates the complexity of provisioning infrastructure, building containers, and deploying to Kubernetes. Write your configuration once, then deploy to localhost, Azure, AWS, or Google Cloud by changing a single parameter.

How It Works

Yuruna uses a three-phase deployment model:

┌─────────────┐     ┌─────────────┐     ┌─────────────┐
│  Resources  │ ──▶ │ Components  │ ──▶ │  Workloads  │
│ (Terraform) │     │  (Docker)   │     │   (Helm)    │
└─────────────┘     └─────────────┘     └─────────────┘
  1. Resources - Provision cloud infrastructure (Kubernetes clusters, container registries, databases) using Terraform
  2. Components - Build Docker images and push them to your container registry
  3. Workloads - Deploy applications to Kubernetes using Helm charts

Each phase reads from YAML configuration files and passes outputs to the next phase.

Quick Start (Localhost)

Deploy a sample .NET website to Docker Desktop Kubernetes in minutes. No cloud account required.

Prerequisites

Install the following tools:

See full requirements for detailed setup instructions.

Deploy the Example Website

# Clone the repository
git clone https://github.com/alissonsol/yuruna.git
cd yuruna

# Add automation folder to your path (or run from automation folder)
$env:PATH += ";$PWD/automation"

# Phase 1: Create local resources (registry, Kubernetes context)
yuruna.ps1 resources website localhost

# Phase 2: Build and push the Docker image
yuruna.ps1 components website localhost

# Phase 3: Deploy to Kubernetes
yuruna.ps1 workloads website localhost

Once complete, visit the URL shown in the output to see your deployed website.

Cloud Deployment

To deploy to a cloud provider instead of localhost, authenticate with your cloud CLI, then replace localhost with your target cloud.

Azure

# Authenticate (once per session)
az login --use-device-code
az account set --subscription <your-subscription-id>  # if you have multiple subscriptions

# Deploy to Azure
yuruna.ps1 resources website azure
yuruna.ps1 components website azure
yuruna.ps1 workloads website azure

AWS

# Authenticate (configure once)
aws configure  # Enter your Access Key ID, Secret Access Key, region, and output format

# Deploy to AWS
yuruna.ps1 resources website aws
yuruna.ps1 components website aws
yuruna.ps1 workloads website aws

Google Cloud

# Authenticate (once per session)
gcloud auth application-default login

# Deploy to GCP
yuruna.ps1 resources website gcp
yuruna.ps1 components website gcp
yuruna.ps1 workloads website gcp

See authentication docs for detailed setup instructions including service accounts and API enablement.

Configuration

Each project has three YAML configuration files in the config/<cloud>/ folder:

File Purpose
resources.yml Infrastructure to create (clusters, registries, IPs)
components.yml Docker images to build and push
workloads.yml Applications to deploy via Helm

See the website example for a complete reference and the syntax documentation for configuration details.

Project Structure

yuruna/
├── automation/          # Core PowerShell scripts (yuruna.ps1)
├── global/resources/    # Terraform templates for each cloud provider
├── examples/            # Example projects (website, template)
└── docs/                # Documentation

Documentation

Important Notes

  • Cost warning: Cloud resources incur charges. Always clean up resources you're not using.
  • Windows users: Set git config --global core.autocrlf input before cloning to avoid line-ending issues with Linux containers.
  • Scripts and examples are provided "as is" without guarantees. See license.

Contributing

Check the contributing guidelines and the list of open tasks.

Thanks to all contributors!

Resources


Copyright (c) 2020-2025 by Alisson Sol et al.

About

yuruna: a developer toolset for cross-cloud Kubernetes-based applications.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •