Skip to content

ContainerCraft/Konductor

Repository files navigation

Konductor DevOps Template Repository

Overview

This repository serves as a comprehensive template for starting new DevOps projects from scratch. It is designed to be cloned as a GitHub template repository, providing a fully-configured environment for deploying and managing cloud-native infrastructure using VSCode with Kubernetes and Pulumi boilerplate as a starting line.

Whether you're building for on-premises, cloud, or local environments, this template streamlines the setup and deployment processes, enabling you to focus on building and innovating.

Join the community in the ContainerCraft Community Discord to discuss, collaborate, and contribute!

Features

  • Kubernetes Deployment: Automated Kubernetes cluster setup using Talos.
  • Pulumi IaC Integration: Infrastructure as Code management with Pulumi.
  • Runme Integration: Execute documented tasks directly from the README.md.
  • GitHub Actions Support: CI/CD pipelines configured for automated testing and deployment.

Using This Template to Start a New Project

This repository is designed as a template, allowing you to quickly bootstrap new DevOps projects with a fully-configured environment. Follow the steps below to create a new project from this template.

Step 1: Create a New Repository from the Template

  1. Navigate to the Template Repository:

    Visit the Konductor DevOps Template Repository on GitHub.

  2. Use the "Use this template" Button:

    • Click the green Use this template button located at the top-right of the repository page.
    • In the form that appears, provide a name for your new repository and decide if it should be public or private.
    • Click Create repository from template to generate your new repository.

Step 2: Clone Your New Repository

  1. Clone the Repository to Your Local Machine:

    Once your new repository is created, clone it to your local machine using Git.

    git clone https://github.com/YourUsername/YourNewRepoName.git
    cd YourNewRepoName
  2. Initialize the Development Environment:

    If you're using GitHub Codespaces or a local development environment with Docker, you can launch directly into the pre-configured environment.

    • GitHub Codespaces: Click the Code button and select Open with Codespaces, or follow the instructions in the Quickstart section of this README.
    • Local Development: Follow the instructions in the Getting Started section to set up your local environment.

Step 3: Customize the Configuration

  1. Update Configuration Files:

    • Customize the .env file with your project-specific environment variables.
    • Modify the Taskfile.yaml to include tasks specific to your project.
    • Adjust the Pulumi configuration files under .pulumi to match your cloud and infrastructure setup.
  2. Set Up Your Pulumi Stack:

    Configure your Pulumi stack settings to match your project environment by following the steps in the Getting Started section.

Step 4: Start Developing

  1. Deploy the Infrastructure:

    Use the pre-configured tasks to deploy your infrastructure, as detailed in the Quickstart section.

    task kubernetes
    task deploy
  2. Build and Iterate:

    With your infrastructure deployed, you can now focus on developing your application, iterating on your DevOps processes, and refining your setup.

Step 5: Push Your Changes

  1. Commit and Push:

    After making changes, commit them to your repository.

    git add .
    git commit -m "Initial setup and configuration"
    git push origin main
  2. Collaborate and Contribute:

    Share your repository with your team, collaborate on features, and contribute back to the original template if you make improvements that could benefit others.

Tips for Success

  • Keep your dependencies up to date: Regularly update the tools and libraries used in your project.
  • Document your changes: Update the README and other documentation as your project evolves.
  • Engage with the community: Join the ContainerCraft Community Discord to get support and share your experiences.

How-To (Boilerplate Instructions)

This repository is designed to be used as a template for new DevOps projects. Follow the steps below to clone and configure your environment.

Prerequisites

Ensure you have the following tools and accounts:

  1. GitHub
  2. Pulumi Cloud
  3. Microsoft Edge or Google Chrome

Quickstart

Follow these steps to get your environment up and running:

  1. Clone the Repository:

    Clone this repository to your GitHub account using the "Use this template" button.

  2. Launch in GitHub Codespaces:

    Start a new GitHub Codespace with the following options:

    • Branch: main
    • Dev Container Configuration: konductor
    • Region: Your choice
    • Machine Type: 4 cores, 16 GB RAM, or better
  3. Open the Integrated Terminal:

    Use Ctrl + ` to open the VSCode integrated terminal.

  4. Authenticate Credentials:

    Login to Pulumi Cloud and other required services.

    task login
  5. Configure the Pulumi Stack:

    Set up Pulumi stack parameters.

    export ORGANIZATION="${GITHUB_USER:-${GITHUB_REPOSITORY_OWNER:-}}"
    export DEPLOYMENT="${RepositoryName:-}"
    task configure
  6. Deploy Kubernetes:

    Deploy Kubernetes using Talos.

    task kubernetes
  7. Deploy the Platform:

    Deploy the KubeVirt PaaS infrastructure.

    task deploy
  8. Cleanup:

    Clean up all Kubernetes and Pulumi resources when you're done.

    task clean-all

Contributing

Contributions are welcome! This template is intended to evolve with the needs of the community. Learn how to contribute by reading our CONTRIBUTING.md.

Developing and Testing

Use the act tool to test GitHub Actions locally before pushing your changes.

task act

Community and Support

Join our community to discuss, learn, and contribute: