jedi4ever / agentic-devops

Agentic DevOps is a powerful, interactive Command-Line Interface (CLI) designed to streamline and automate the development, deployment, and management of applications on various Cloud Providers.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

        ___                    __  _         ____                            
       /   | ____ ____  ____  / /_(______   / __ \___ _   ______  ____  _____
      / /| |/ __ `/ _ \/ __ \/ __/ / ___/  / / / / _ | | / / __ \/ __ \/ ___/
     / ___ / /_/ /  __/ / / / /_/ / /__   / /_/ /  __| |/ / /_/ / /_/ (__  ) 
    /_/  |_\__, /\___/_/ /_/\__/_/\___/  /_____/\___/|___/\____/ .___/____/  
          /____/                                              /_/            

    Welcome to Wizard of DevOps! Let's get started with your DevOps tasks.

Agentic DevOps

Agentic Engineering

Introduction

The Agentic DevOps tool is designed to streamline and automate various DevOps tasks and configurations. This versatile tool supports both a command-line interface (CLI) and a web-based user interface (WebUI), making it accessible for both terminal enthusiasts and those who prefer a graphical interface.

What It Does

Agentic DevOps automates the creation of essential DevOps artifacts such as Dockerfiles, Bash scripts, Kubernetes configurations, CI/CD pipelines, and cloud configurations for major providers like Azure, AWS, GCP, Firebase, Supabase, and Cloudflare. It also supports different development architectures, including microservices, serverless, monolithic, event-driven, and API-first development.

Why It's Useful

By automating repetitive and complex tasks, Agentic DevOps helps reduce human error, speed up deployment processes, and ensure consistent configurations across different environments. It's particularly useful for teams practicing continuous integration and continuous deployment (CI/CD), enabling faster and more reliable software delivery.

Key Features

  • Multi-platform Support: Automates configurations for Azure, AWS, GCP, Firebase, Supabase, and Cloudflare.
  • Versatile Development Approaches: Supports microservices, serverless, monolithic, event-driven, and API-first architectures.
  • Comprehensive Artifact Generation: Creates Dockerfiles, Bash scripts, Kubernetes configurations, and CI/CD pipelines.
  • User-friendly Interfaces: Accessible via both CLI and WebUI.
  • Customizable: Easily extendable to include new modules and configurations.
  • Environment Management: Helps manage environment variables and secrets.

Agentic Engineering

Agentic Engineering is a modern approach to software development that integrates artificial intelligence and automation to streamline engineering processes. This methodology enhances efficiency by automating routine tasks, optimizing resource allocation, and providing intelligent insights to support decision-making. By leveraging AI, Agentic Engineering helps development teams achieve higher productivity, better code quality, and faster time-to-market, making it an invaluable tool in today's fast-paced technology landscape.

Installation

To install the Agentic DevOps tool, follow these steps:

  1. Clone the repository:

    git clone https://github.com/ruvnet/agentic-devops.git
  2. Navigate to the project directory:

    cd agentic-devops
  3. Create and activate a virtual environment (optional but recommended):

    python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
  4. Install the required dependencies:

    pip install -e .
  5. Set up the necessary environment variables (see the "Environment Secrets" section below).

Environment Secrets

The Agentic DevOps tool requires certain environment variables to be set for authentication and configuration purposes. Make sure to set the following environment variables:

  • AZURE_CLIENT_ID: Your Azure client ID.
  • AZURE_CLIENT_SECRET: Your Azure client secret.
  • AZURE_APP_CONFIG_CON_STR: Your Azure App Configuration connection string.
  • AWS_ACCESS_KEY_ID: Your AWS access key ID.
  • AWS_SECRET_ACCESS_KEY: Your AWS secret access key.
  • GCP_PROJECT_ID: Your GCP project ID.
  • GCP_SERVICE_ACCOUNT_KEY: Your GCP service account key.
  • FIREBASE_API_KEY: Your Firebase API key.
  • SUPABASE_URL: Your Supabase project URL.
  • SUPABASE_KEY: Your Supabase project API key.
  • CLOUDFLARE_API_KEY: Your Cloudflare API key.

You can set these environment variables either in your system environment or by creating a .env file in the project root directory. Here is an example of a .env file:

AZURE_CLIENT_ID=your-azure-client-id
AZURE_CLIENT_SECRET=your-azure-client-secret
AZURE_APP_CONFIG_CON_STR=your-azure-app-config-connection-string
AWS_ACCESS_KEY_ID=your-aws-access-key-id
AWS_SECRET_ACCESS_KEY=your-aws-secret-access-key
GCP_PROJECT_ID=your-gcp-project-id
GCP_SERVICE_ACCOUNT_KEY=your-gcp-service-account-key
FIREBASE_API_KEY=your-firebase-api-key
SUPABASE_URL=your-supabase-url
SUPABASE_KEY=your-supabase-key
CLOUDFLARE_API_KEY=your-cloudflare-api-key
  1. Run the App:
    agentic-devops

Menu

The Agentic DevOps tool provides an interactive menu-based interface for navigating and selecting different features. Here is an outline of the CLI menu options:

Main Menu

πŸ“‹ Main Menu
1. πŸ“„ Agentic DevOps
2. πŸš€ Agentic Deployment
3. ❓ Help
4. πŸ”₯ Exit
Enter your choice: 

Agentic DevOps Menu

πŸ“‹ Agentic DevOps Menu
1.    Start Agentic DevOps WebUI
2.    Create Dockerfile
3.    Create Bash Script
4.    Create Kubernetes Configuration
5.    Create CI/CD Pipeline
6.    Azure Configuration
7.    AWS Configuration
8.    GCP Configuration
9.    Firebase Configuration
10.   Developer Configuration
11.   Settings
12.   Back to Main Menu
Enter your choice: 

Agentic Deployment Menu

πŸš€ Agentic Deployment
1. πŸ“ƒ List Deployments
2. πŸ› οΈ Setup Deployment
3. πŸš€ Create Deployment
4. πŸ”„ Update Deployment
5. ❌ Remove Deployment
6. πŸ”™ Return to Main Menu
Enter your choice: 

Usage

To use the Agentic DevOps tool, follow these steps:

  1. Run the Agentic DevOps tool:

    agentic-devops
  2. Navigate through the menu options to select the desired feature. For example, to create a Dockerfile, select "Create Dockerfile" from the menu.

  3. Follow the prompts to provide necessary inputs and configurations. For instance, you might be asked to specify the base image and packages to install for the Dockerfile.

  4. Generated files or configurations will be saved in the specified output directory. You can then use these files as needed in your projects.

Example: Creating a Dockerfile

  1. Run the tool:

    agentic-devops
  2. Select "Create Dockerfile" from the menu.

  3. Follow the prompts to specify the base image and any additional packages or configurations.

  4. The generated Dockerfile will be saved in your project directory.

Example: Setting Up a CI/CD Pipeline

  1. Run the tool:

    agentic-devops
  2. Select "Create CI/CD Pipeline" from the menu.

  3. Choose your CI/CD provider (e.g., GitHub Actions, GitLab CI, etc.).

  4. Define the stages for your pipeline (e.g., build, test, deploy).

  5. The generated CI/CD pipeline configuration file will be saved in your project directory.

WebUI

The Agentic DevOps tool also provides a web-based user interface (WebUI) for a more intuitive and visual experience. The WebUI uses the same menu structure as the CLI, making it easy to switch between the two interfaces.

Start the WebUI

To start the WebUI, select "Start Agentic DevOps WebUI" from the Agentic DevOps menu.

Access the WebUI

Open a web browser and navigate to http://localhost:8501.

WebUI Options

  • Agentic Development: Choose from different development approaches like microservices, serverless, monolithic, event-driven, API-first, and more.
  • Create Dockerfile: Input base image, packages to install, and generate a Dockerfile.
  • Create Bash Script: Define the script purpose and include necessary commands.
  • Create Kubernetes Configuration: Provide deployment name, container image, cluster name, and namespaces.
  • Create CI/CD Pipeline: Select a CI/CD provider and define stages for the pipeline.
  • Azure Configuration: Configure Azure services such as hosting, networking, IAM, database, storage, DevOps, AI & ML, monitoring, and security.
  • AWS Configuration: Configure AWS services like hosting, networking, IAM, and database.
  • GCP Configuration: Configure GCP services including hosting, networking, IAM, and database.
  • Firebase Configuration: Enable Firebase features for your project.
  • Supabase Configuration: Configure Supabase services such as hosting, authentication, storage, and database.
  • Cloudflare Configuration: Set up Cloudflare services for DNS, security, and workers.
  • Developer Configuration: Set up development environments for languages like Python, Node.js, Java, Rust, Go, C#, Ruby, PHP, and C++.

WebUI

Agentic Engineering

The Agentic DevOps tool also provides a web-based user interface (WebUI) for a more intuitive and visual experience. The WebUI uses the same menu structure as the CLI, making it easy to switch between the two interfaces.

Start the WebUI

To start the WebUI, select "Start Agentic DevOps WebUI" from the Agentic DevOps menu.

Access the WebUI

Open a web browser and navigate to http://localhost:8501.

WebUI Options

  • Agentic Development: Choose from different development approaches like microservices, serverless, monolithic, event-driven, API-first, and more.
  • Create Dockerfile: Input base image, packages to install, and generate a Dockerfile.
  • Create Bash Script: Define the script purpose and include necessary commands.
  • Create Kubernetes Configuration: Provide deployment name, container image, cluster name, and namespaces.
  • Create CI/CD Pipeline: Select a CI/CD provider and define stages for the pipeline.
  • Azure Configuration: Configure Azure services such as hosting, networking, IAM, database, storage, DevOps, AI & ML, monitoring, and security.
  • AWS Configuration: Configure AWS services like hosting, networking, IAM, and database.
  • GCP Configuration: Configure GCP services including hosting, networking, IAM, and database.
  • Firebase Configuration: Enable Firebase features for your project.
  • Supabase Configuration: Configure Supabase services such as hosting, authentication, storage, and database.
  • Cloudflare Configuration: Set up Cloudflare services for DNS, security, and workers.
  • Developer Configuration: Set up development environments for languages like Python, Node.js, Java, Rust, Go, C#, Ruby, PHP, and C++.

Advanced Usage

For advanced users, the Agentic DevOps tool offers additional features and customization options:

Custom Scripts

Add custom scripts and configurations in the ./modules directory. Ensure they follow the same structure and import necessary modules.

Integration with CI/CD

Integrate the tool with external CI/CD pipelines by including it in your build scripts and using its CLI commands.

Extending Functionality

Extend the functionality by adding new modules and commands in coder.py and updating main.py to include these new commands.

Contributing

Contributions to the Agentic DevOps tool are welcome! If you find any issues or have suggestions for improvements, please open an issue or submit a pull request on the GitHub repository.

License

The Agentic DevOps tool is open-source software licensed under the MIT License.

About

Agentic DevOps is a powerful, interactive Command-Line Interface (CLI) designed to streamline and automate the development, deployment, and management of applications on various Cloud Providers.

License:MIT License


Languages

Language:Python 97.1%Language:Scheme 2.9%