Kargo replaces traditional hypervisors with a cloud-native container and virtualization platform. Kargo works seamlessly in on-prem, cloud, and local environments, leveraging Kubernetes to create a robust and scalable platform for modern compute and platform as a service use cases.
Join Kargo users and contributors in the ContainerCraft Community Discord!
Note: Kargo is in early development. Checkout @usrbinkat's inaugural Twitter/X Thread to see how it all started.
- Simplify Kubernetes skills development
- Accelerate project ideation and innovation
- Build a shared platform for community collaboration
- Develop an enterprise-grade hyperconverged compute platform
- Foster community equity through a reliable and inclusive platform
- Bring the power of cloud native to homelabs and students
Try Kargo with just a browser to get started with GitHub Codespaces following the steps below.
Ensure you have the following tools and accounts:
Check out the video to see Kargo deploy for yourself, or try it in your browser with the steps below.
-
Log in to GitHub.
-
Launch Kargo in GitHub Codespaces:
- Use the Launch Kargo link directly or use the green
Code
button above to start a new Codespace. - Create a new Codespace with the following options:
- Branch:
main
- Dev Container Configuration:
konductor
- Region: Your choice
- Machine Type: 4 cores, 16 GB RAM, or better
- Branch:
- Use the Launch Kargo link directly or use the green
-
Open the VSCode Integrated Terminal:
- Use key combination
[ Ctrl +
]` to open the terminal.
- Use key combination
-
Authenticate Credentials
Login to Pulumi Cloud and other services.
task login
- Configure:
Configure the Pulumi IaC Stack parameters.
# confirm Pulumi stack
export ORGANIZATION="${GITHUB_USER:-${GITHUB_REPOSITORY_OWNER:-}}"
export DEPLOYMENT="${RepositoryName:-}"
task configure
- Deploy Kubernetes:
Deploy Kubernetes using Talos.
task kubernetes
- Deploy Platform:
Deploy the Kubevirt PaaS IaC to Kubernetes.
task deploy
- Deploy a Virtual Machine:
Deploy an Ubuntu Virtual Machine on the platform using Kubevirt.
Note: Run this step manually via integrated terminal.
# Purge old known host fingerprints
task ssh-clean
# Enable the VM instance
pulumi config set --path vm.enabled true
# Deploy the Kubevirt VM instance
pulumi up --skip-preview --refresh=false
- SSH to the new VM Instance:
Access the VM via SSH using a Kubernetes NodePort service.
ssh -p 30590 -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no kc2@localhost screenfetch
- Virtctl SSH:
Use virtctl
to access the VM via SSH without a NodePort service.
# SSH using virtctl
virtctl ssh kc2@ubuntu
- Virtctl Serial Console:
Use virtctl
to access the serial console of the VM.
# Serial console access
virtctl console ubuntu
Tip: To exit the serial console, press
Ctrl + ]
or close the terminal.
- Cleanup:
Clean up all Kubernetes and Pulumi resources.
task clean-all
Kargo thrives on community contributions. Learn how to get involved by reading our CONTRIBUTING.md.
Use our GitHub Actions integration and the act
tool to test CI pipelines locally before pushing your changes.
To test Kargo CI locally:
task act
For more discussion, support, and contribution, join our ContainerCraft Community Discord Kargo Channel.
For more information, explore the Kargo Project FAQ.