best-practice-template/README.md
Markus Brunsch 75c1c5fee4
All checks were successful
CI / Check License Header (push) Successful in 4s
CI / TruffleHog Secrets Scan (push) Successful in 5s
CI / Terraform CI (push) Successful in 8s
Update README.md
2025-10-31 14:09:34 +01:00

113 lines
No EOL
3.4 KiB
Markdown

# [Name of the Best Practice Template]
## Overview
This repository provides a standardized template to solve [specific problem or use case]. It is designed to ensure quality, maintainability, and security for [mention the technology, e.g., Terraform module, CI/CD pipeline, etc.] on **STACKIT**.
The main goal of this Best Practice (BP) is to [briefly describe the primary benefit, e.g., "deploy a secure and cost-effective Kubernetes cluster on STACKIT"].
## License Header
```console
/*
Copyright 2025 STACKIT GmbH & Co. KG <maintainer.email@stackit.cloud>
Use of this source code is governed by an MIT-style
license that can be found in the LICENSE file or at
https://opensource.org/licenses/MIT.
*/
```
## Setup Git GPG Key
1. Generate GPG Key
```console
gpg --full-generate-key
```
1. Configure Git to use the Key
```console
git config --global user.signingkey <GPG KEY ID>
git config --global commit.gpgsign true
```
1. Read GPG Key and add it to STACKIT Git
```console
gpg --armor --export <GPG KEY ID>
```
Copy the Public Key block and add it into your Profile settings on the STACKIT Git instance.
https://docs.codeberg.org/security/gpg-key/
https://gist.github.com/troyfontaine/18c9146295168ee9ca2b30c00bd1b41e
## Prerequisites
Before using this template, ensure you have the following:
* **Tools**:
* [Tool Name, e.g., Terraform] version `x.y.z` or higher
* [Tool Name, e.g., Git]
* **Access & Permissions**:
* [Required access, e.g., Project Member permissions on a STACKIT project]
* STACKIT provider credentials configured
## How to Use
Follow these steps to implement the template:
1. **Clone the repository:**
```bash
git clone [repository-url]
cd [repository-name]
```
2. **Configure the variables:**
* Create a `terraform.tfvars` file or set environment variables as described in the **Configuration** section below.
3. **Initialize and apply:**
```bash
terraform init
terraform plan
terraform apply
```
4. **Verify the deployment:**
* [Provide a simple command or step to check if the deployment was successful].
## Configuration
The following variables can be configured.
| Variable Name | Description | Type | Default Value | Required |
|---------------|---------------------------------------------|----------|---------------|----------|
| `project_id` | The STACKIT project ID. | `string` | `null` | Yes |
| `region` | The region where resources will be created. | `string` | `eu01` | No |
| `...` | ... | `...` | `...` | ... |
## Testing
This repository includes automated and manual testing procedures to ensure quality.
### Automated Tests
* **Validation**: `terraform validate` is automatically executed on every commit via the CI/CD pipeline.
* **Security Scans**: A secret check is performed on every push to the repository.
### Manual Tests
The following aspects should be tested manually after deployment:
* [Manual Test Case 1, e.g., "Verify connectivity to the database instance."]
* [Manual Test Case 2, e.g., "Check permissions for the created service account."]
### Dependencies
This template relies on the following pinned versions:
* **Provider [Provider Name, e.g., STACKIT]**: `~> 0.69.0`
## Changelog
All notable changes to this project are documented in the `CHANGELOG.md` file.