{"id":24283607,"url":"https://github.com/containercraft/kargo","last_synced_at":"2025-09-25T03:30:45.545Z","repository":{"id":218401990,"uuid":"746307762","full_name":"ContainerCraft/Kargo","owner":"ContainerCraft","description":"ContainerCraft Kubevirt PaaS Undercloud","archived":false,"fork":false,"pushed_at":"2024-05-15T22:48:19.000Z","size":41694,"stargazers_count":52,"open_issues_count":20,"forks_count":5,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-05-20T12:11:01.715Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ContainerCraft.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-01-21T17:23:01.000Z","updated_at":"2024-05-29T23:37:33.699Z","dependencies_parsed_at":"2024-01-21T19:22:41.530Z","dependency_job_id":"c02e3692-615c-4b36-924a-afb363610e49","html_url":"https://github.com/ContainerCraft/Kargo","commit_stats":null,"previous_names":["containercraft/kargo4.0","containercraft/kargo4"],"tags_count":0,"template":false,"template_full_name":"ContainerCraft/Konductor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContainerCraft%2FKargo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContainerCraft%2FKargo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContainerCraft%2FKargo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ContainerCraft%2FKargo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ContainerCraft","download_url":"https://codeload.github.com/ContainerCraft/Kargo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234147906,"owners_count":18786934,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-16T04:16:56.835Z","updated_at":"2025-09-25T03:30:45.539Z","avatar_url":"https://github.com/ContainerCraft.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\ncwd: /workspaces/Kargo\nrunme:\n  version: \"3\"\nskipPrompts: false\n---\n\n# Kargo - The Cloud-Native ESXi Replacement\n\n[![Quickstart Test](https://github.com/ContainerCraft/Kargo/actions/workflows/readme.yaml/badge.svg)](https://github.com/ContainerCraft/Kargo/actions/workflows/readme.yaml)\n\n## Overview\n\nKargo 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.\n\nJoin Kargo users and contributors in the [ContainerCraft Community Discord](https://discord.gg/Jb5jgDCksX)!\n\n![Kargo in Konductor Github CodeSpaces Devcontainer](.github/images/kargo-in-codespaces.png?raw=false \"Kargo Konductor Codespaces\")\n\n\u003e **Note:** Kargo is in early development. Checkout [@usrbinkat](https://twitter.com/usrbinkat)'s [inaugural Twitter/X Thread](https://x.com/usrbinkat/status/1749186949590794551) to see how it all started.\n\n## Project Goals\n\n- Simplify Kubernetes skills development\n- Accelerate project ideation and innovation\n- Build a shared platform for community collaboration\n- Develop an enterprise-grade hyperconverged compute platform\n- Foster community equity through a reliable and inclusive platform\n- Bring the power of cloud native to homelabs and students\n\n## Getting Started\n\nTry Kargo with just a browser to get started with [GitHub Codespaces](https://github.com/features/codespaces) following the steps below.\n\n### Prerequisites\n\nEnsure you have the following tools and accounts:\n\n1. [GitHub](https://github.com)\n2. [Pulumi Cloud](https://app.pulumi.com/signup)\n3. [Microsoft Edge](https://www.microsoft.com/en-us/edge) or [Google Chrome](https://www.google.com/chrome)\n\n### Quickstart\n\nCheck out the video to see Kargo deploy for yourself, or try it in your browser with the steps below.\n\n#### Step-by-Step Instructions\n\n1. **Log in to GitHub.**\n2. **Launch Kargo in GitHub Codespaces:**\n\n   - Use the [Launch Kargo](https://bit.ly/launch-kargo-kubevirt-paas-in-github-codespaces) link directly or use the green `Code` button above to start a new Codespace.\n   - Create a new Codespace with the following options:\n      - **Branch:** `main`\n      - **Dev Container Configuration:** `konductor`\n      - **Region:** Your choice\n      - **Machine Type:** 4 cores, 16 GB RAM, or better\n\n3. **Open the VSCode Integrated Terminal:**\n\n   - Use key combination `[ Ctrl + ` ]` to open the terminal.\n\n4. **Authenticate Credentials**\n\nLogin to Pulumi Cloud and other services.\n\n```bash {\"excludeFromRunAll\":\"false\",\"name\":\"login\",\"terminalRows\":\"15\"}\ntask login\n```\n\n5. **Configure:**\n\nConfigure the Pulumi IaC Stack parameters.\n\n```bash {\"excludeFromRunAll\":\"false\",\"name\":\"configure\",\"terminalRows\":\"10\"}\n# confirm Pulumi stack\nexport ORGANIZATION=\"${GITHUB_USER:-${GITHUB_REPOSITORY_OWNER:-}}\"\nexport DEPLOYMENT=\"${RepositoryName:-}\"\ntask configure\necho \"Configured Pulumi stack: ci\"\n```\n\n6. **Deploy Kubernetes:**\n\nDeploy Kubernetes using Talos.\n\n```bash {\"excludeFromRunAll\":\"true\",\"name\":\"deploy-kubernetes\",\"terminalRows\":\"30\"}\ntask kubernetes\n```\n\n7. **Deploy Platform:**\n\nDeploy the Kubevirt PaaS IaC to Kubernetes.\n\n```bash {\"excludeFromRunAll\":\"true\",\"name\":\"deploy\",\"terminalRows\":\"128\"}\ntask deploy\n```\n\n8. **Deploy a Virtual Machine:**\n\nDeploy an Ubuntu Virtual Machine on the platform using Kubevirt.\n\n\u003e **Note:** Run this step manually via integrated terminal.\n\n```bash {\"excludeFromRunAll\":\"false\",\"name\":\"deploy-virtual-machine\",\"terminalRows\":\"40\"}\n# Purge old known host fingerprints\ntask ssh-clean\n\n# Enable the VM instance\npulumi config set --path vm.enabled true\n\n# Deploy the Kubevirt VM instance\npulumi up --skip-preview --refresh=false\n```\n\n9. **SSH to the new VM Instance:**\n\nAccess the VM via SSH using a Kubernetes NodePort service.\n\n```bash {\"excludeFromRunAll\":\"false\",\"name\":\"ssh-cmd-vm-screenfetch\",\"terminalRows\":\"38\"}\nssh -p 30590 -i ~/.ssh/id_rsa -o UserKnownHostsFile=/dev/null kc2@localhost screenfetch\n```\n\n10. **Virtctl SSH:**\n\nUse `virtctl` to access the VM via SSH without a NodePort service.\n\n```bash {\"excludeFromRunAll\":\"true\",\"name\":\"virtctl-ssh\",\"terminalRows\":\"48\"}\n# SSH using virtctl\nvirtctl ssh kc2@ubuntu\n```\n\n11. **Virtctl Serial Console:**\n\nUse `virtctl` to access the serial console of the VM.\n\n```bash {\"excludeFromRunAll\":\"true\",\"name\":\"virtctl-console\",\"terminalRows\":\"48\"}\n# Serial console access\nvirtctl console ubuntu\n```\n\n\u003e **Tip:** To exit the serial console, press `Ctrl + ]` or close the terminal.\n\n12. **Cleanup:**\n\nClean up all Kubernetes and Pulumi resources.\n\n```bash {\"excludeFromRunAll\":\"true\",\"name\":\"clean-all\",\"terminalRows\":\"15\"}\ntask clean-all\n```\n\n## Contributing\n\nKargo thrives on community contributions. Learn how to get involved by reading our [CONTRIBUTING.md](https://github.com/ContainerCraft/Kargo/issues/22).\n\n### Developing Kargo\n\nUse our GitHub Actions integration and the `act` tool to test CI pipelines locally before pushing your changes.\n\nTo test Kargo CI locally:\n\n```bash {\"excludeFromRunAll\":\"true\"}\ntask act\n```\n\n## Join the Community + Learn More\n\nFor more discussion, support, and contribution, join our [ContainerCraft Community Discord Kargo Channel](https://discord.gg/Jb5jgDCksX).\n\nFor more information, explore the [Kargo Project FAQ](FAQ.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontainercraft%2Fkargo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcontainercraft%2Fkargo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcontainercraft%2Fkargo/lists"}