Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
slashexx authored Dec 17, 2024
1 parent 38787e7 commit 8fe03a3
Showing 1 changed file with 131 additions and 2 deletions.
133 changes: 131 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,132 @@
# codebrewery-infra
![Terraform](https://img.shields.io/badge/Terraform-v1.4+-blue)
![Kubernetes](https://img.shields.io/badge/Kubernetes-v1.25+-blue)
![GitOps](https://img.shields.io/badge/GitOps-enabled-green)

# CodeBrewery Infra

This repository contains all the **infrastructure as code (IaC)** files, Kubernetes manifests, and other configurations required to manage the infrastructure for **CodeBrewery**. The application follows a **GitOps** approach to infrastructure management.

---

## Table of Contents

- [Overview](#overview)
- [Repository Structure](#repository-structure)
- [Technologies Used](#technologies-used)
- [Getting Started](#getting-started)
- [Prerequisites](#prerequisites)
- [Setting Up](#setting-up)
- [Contributing](#contributing)
- [License](#license)

---

## Overview

CodeBrewery Infra provides all the scripts and manifests to define and manage the infrastructure for CodeBrewery. The repository leverages **Terraform** for cloud resource provisioning and **Kubernetes** for application orchestration.

It follows a **GitOps** model, ensuring infrastructure is declaratively managed, version-controlled, and easily reproducible.

---

## Repository Structure

The repository is organized as follows:

```plaintext
codebrewery-infra/
├── k8s/ # Kubernetes manifests for CodeBrewery services
│ ├── deployments/ # Deployment manifests
│ ├── services/ # Service definitions
│ └── configmaps/ # Configuration files for Kubernetes
├── terraform/ # Terraform scripts for cloud resource provisioning
│ ├── modules/ # Reusable Terraform modules
│ ├── variables.tf # Terraform input variables
│ └── main.tf # Main Terraform configuration
├── CONTRIBUTING.md # Contribution guidelines
└── README.md # Documentation
```

---

## Technologies Used

- **Terraform**: Infrastructure as Code (IaC) to provision cloud resources.
- **Kubernetes**: For container orchestration.
- **GitOps**: Version-controlled infrastructure management.
- **HCL**: HashiCorp Configuration Language (used with Terraform).

---

## Getting Started

### Prerequisites

Make sure you have the following tools installed:

- **Terraform** (v1.4+)
- **Kubectl** (v1.25+)
- **Kubernetes Cluster** (Minikube, k3s, or cloud-managed clusters)
- **Git**

### Setting Up

1. **Clone the repository**:
```bash
git clone https://github.com/slashexx/codebrewery-infra.git
cd codebrewery-infra
```

2. **Provision infrastructure with Terraform**:
Navigate to the `terraform/` directory and initialize Terraform:
```bash
cd terraform
terraform init
terraform plan
terraform apply
```

3. **Deploy Kubernetes manifests**:
Navigate to the `k8s/` directory:
```bash
kubectl apply -f k8s/deployments/
kubectl apply -f k8s/services/
```

4. **Verify the deployment**:
```bash
kubectl get pods
kubectl get services
```

---

## Contributing

We welcome contributions! 🎉

To get started, check out the [CONTRIBUTING.md](CONTRIBUTING.md) file for details on how to:

- Report issues and suggest new features
- Contribute code
- Follow coding style and guidelines

---

## License

Distributed under the **MIT License**. See [LICENSE](LICENSE) for more information.

---

## Questions or Help?

If you have any questions or issues, feel free to open a discussion or raise an issue in this repository.

Let’s build CodeBrewery together! 🚀

---

This repo contains the infrastructure files for [CodeBrewery](https://github.com/slashexx/codebrewery) since the application follows a GitOps infrastructure.

0 comments on commit 8fe03a3

Please sign in to comment.