Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/devopshobbies/devops-gpt
An AI-powered assistant that simplifies DevOps tasks with intelligent prompts, reducing repetitive work and enhancing productivity
https://github.com/devopshobbies/devops-gpt
ansible chatbot llmops llms prompt-engineering terraform
Last synced: 7 days ago
JSON representation
An AI-powered assistant that simplifies DevOps tasks with intelligent prompts, reducing repetitive work and enhancing productivity
- Host: GitHub
- URL: https://github.com/devopshobbies/devops-gpt
- Owner: devopshobbies
- Created: 2024-10-20T13:35:00.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2024-12-17T13:14:18.000Z (9 days ago)
- Last Synced: 2024-12-17T14:23:30.905Z (9 days ago)
- Topics: ansible, chatbot, llmops, llms, prompt-engineering, terraform
- Language: Python
- Homepage:
- Size: 7.16 MB
- Stars: 47
- Watchers: 1
- Forks: 17
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
Awesome Lists containing this project
README
[![devopsgpt demo](devopsgpt.jpg)](https://youtu.be/b9KPfWTY24U?si=fPtLhW4D-lgXTp0S)
# DevOps-GPT
This project helps you to balance your daily work as a DevOps engineer, from simple bug fixes to project template generation. you don't need to search on Google for some routine jobs and it helps you with a robust prompt to simplify your career.
## Run DevOpsGPT
Builds and starts the Docker Compose stack:
make
Stops and removes the Docker Compose stack:make down
Installs the Helm chart for the devopsgpt app on a Kubernetes cluster:
make helm-install
Uninstalls the Helm chart for the devopsgpt app:
make helm-uninstall
You can override the release name and namespace for Helm commands by running:
make [helm-install|helm-uninstall] namespace=NAMESPACE releaseName=RELEASENAME
The default namespace is `default` and the default release name is `devopsgpt`.
## Running Tests
To run tests, run the following command
```
cd app && pytest tests/
```## Environment Variables
To run this project, you will need to add the following environment variables to your .env file
`KEY` (OpenAI API Key)
## API Reference
#### Download the generated projects
```
GET /download-folder{folder_name}/{source}
```| Parameter | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `folder_name` | `string` | **Required** |
| `source` | `string` | **Required** |#### Post terraform basic questions
```
POST /IaC-basic/
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `max_tokens` | `int` | **Required** |
| `min_tokens` | `int` | **Required** |
| `service` | `string` | **Required** |
| `input` | `string` | **Required** |#### Post terraform bugfix
```
POST /IaC-bugfix/
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `max_tokens` | `int` | **Required** |
| `min_tokens` | `int` | **Required** |
| `service` | `string` | **Required** |
| `bug_description` | `string` | **Required** |
| `version` | `string` | **Required** |#### Post terraform installation
```
POST /IaC-install/
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `os` | `string` | **Required** |
| `service` | `string` | **Required** |#### Post terraform template generation of docker resources
```
POST /IaC-template/docker
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `docker_image` | `boolean` | **Required** |
| `docker_container` | `boolean` | **Required** |#### Post terraform template generation of Ec2 resources
```
POST /IaC-template/aws/ec2
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `key_pair` | `boolean` | **Required** |
| `security_group` | `boolean` | **Required** |
| `aws_instance` | `boolean` | **Required** |
| `ami_from_instance` | `boolean` | **Required** |#### Post terraform template generation of S3 resources
```
POST /IaC-template/aws/s3
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `s3_bucket` | `boolean` | **Required** |
| `s3_bucket_versioning` | `boolean` | **Required** |#### Post terraform template generation of IAM resources
```
POST /IaC-template/aws/iam
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `iam_user` | `boolean` | **Required** |
| `iam_group` | `boolean` | **Required** |#### Post terraform template generation of ELB resources
```
POST /IaC-template/aws/elb
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `security_group` | `boolean` | **Required** |
| `lb_target_group` | `boolean` | **Required** |
| `lb` | `boolean` | **Required** |
| `lb_listener_rule` | `boolean` | **Required** |
| `key_pair` | `boolean` | **Required** |
| `launch_configuration` | `boolean` | **Required** |
| `autoscaling_group` | `boolean` | **Required** |
| `autoscaling_attachment` | `boolean` | **Required** |
| `autoscaling_policy` | `boolean` | **Required** |#### Post terraform template generation of EFS resources
```
POST /IaC-template/aws/efs
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `efs_file_system` | `boolean` | **Required** |
| `efs_mount_target` | `boolean` | **Required** |
| `efs_backup_policy` | `boolean` | **Required** |#### Post terraform template generation of ArgoCD resources
```
POST /IaC-template/aws/argocd
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `argocd_applicatio.sync_policy.auto_prune` | `boolean` | **No-Required** |
| `argocd_applicatio.sync_policy.self_heal` | `boolean` | **No-Required** |
| `argocd_applicatio.sync_policy.argocd_repository` | `boolean` | **Required** |
| `argocd_applicatio.sync_policy.application_depends_repository` | `boolean` | **Required** |#### Post Helm template generation
```
POST /Helm-template
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `api_version` | `integer` | **Required** |
| `pods.name` | `string` | **Required** |
| `pods.image` | `string` | **Required** |
| `pods.target_port` | `integer` | **Required** |
| `pods.replicas` | `integer` | **Required** |
| `pods.persistance` | `dict` | **Required** |
| `pods.environment` | `list(dict)` | **Required** |
| `pods.stateless` | `boolean` | **Required** |
| `pods.ingress` | `dict` | **Required** |#### Post Ansible install Nginx
```
POST /ansible-install/nginx
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `ansible_user` | `string` | **Required** |
| `ansible_port` | `string` | **Required** |
| `os` | `string` | **Required** |
| `hosts` | `list` | **Required** |
| `version` | `string` | **Required** |#### Post Ansible install Docker
```
POST /ansible-install/docker
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `ansible_user` | `string` | **Required** |
| `ansible_port` | `string` | **Required** |
| `os` | `string` | **Required** |
| `hosts` | `list` | **Required** |#### Post Ansible install Kubernetes
```
POST /ansible-install/kuber
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `ansible_user` | `string` | **Required** |
| `ansible_port` | `string` | **Required** |
| `os` | `string` | **Required** |
| `hosts` | `list` | **Required** |
| `version` | `string` | **Required** |
| `k8s_worker_nodes` | `list` | **Required** |
| `k8s_master_nodes` | `list` | **Required** |#### Post docker compose generation
```
POST /docker-compose
```| Request Body | Type | Description |
| :-------- | :------- | :-------------------------------- |
| `networks.app_network.driver` | `string` | **Required** |
| `version` | `string` | **Required** |
| `services` | `list` | **Required** |## Tech Stack
**Client:** React + TypeScript + Vite
**Server:** Python + FastAPI
**Containerization:** Docker + Kubernetes
**CI/CD**: Github Actions
## Contributing
Contributions are always welcome!
See [CONTRIBUTING.md](CONTRIBUTING.md) for ways to get started.
# Maintenance
** [Abolfazl Andalib](https://github.com/abolfazl8131) - [email protected] **
** [Mohammad Madanipour](https://github.com/mohammadll) - [email protected] **