Skip to content

Commit 406ff0d

Browse files
committed
fix(doc) : grammatical and contextual issues
1 parent 0848943 commit 406ff0d

2 files changed

Lines changed: 88 additions & 102 deletions

File tree

Contributing.md

Lines changed: 38 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
1-
### Contributing Guidelines for Hashicorp Boundary and Vault Stack
1+
# Contributing Guidelines for HashiCorp Boundary and Vault Stack
22

3-
Thank you for considering contributing to the Hashicorp Boundary and Vault Stack project! Contributions help improve the project and are highly appreciated. To ensure smooth collaboration, please follow the guidelines below.
3+
Thank you for considering contributing to the HashiCorp Boundary and Vault Stack project! Your contributions are invaluable to the project's improvement. To ensure smooth collaboration, please follow the guidelines outlined below.
44

55
## Table of Contents
66
- [Getting Started](#getting-started)
77
- [Types of Contributions](#types-of-contributions)
88
- [Reporting Issues](#reporting-issues)
9+
- [Commit Messages](#commit-messages)
910
- [Submitting Pull Requests](#submitting-pull-requests)
1011
- [Code Style and Best Practices](#code-style-and-best-practices)
11-
- [Commit Messages](#commit-messages)
12-
- [Testing](#testing)
1312
- [Guidelines for Specific Tasks](#guidelines-for-specific-tasks)
1413
- [Terraform](#terraform)
1514
- [Ansible](#ansible)
@@ -20,100 +19,94 @@ Thank you for considering contributing to the Hashicorp Boundary and Vault Stack
2019

2120
## Getting Started
2221

23-
1. **Fork the repository**: Start by forking the repository to your GitHub account.
22+
1. **Fork the Repository**: Begin by forking the repository to your GitHub account.
2423

25-
2. **Clone the repository**: Clone your forked repository to your local machine:
24+
2. **Clone the Repository**: Clone your forked repository to your local machine:
2625
```bash
2726
git clone https://github.com/your-username/boundary-vault-stack.git
2827
cd boundary-vault-stack
2928
```
3029

31-
3. **Set up your environment**: Ensure you have the necessary dependencies installed as outlined in the [documentation](./artifacts/wiki.md).
30+
3. **Set Up Your Environment**: Ensure you have the necessary dependencies installed as outlined in the [documentation](./artifacts/wiki.md).
3231

33-
4. **Read the documentation**: Familiarize yourself with the project by thoroughly reading the [documentation](./artifacts/wiki.md) and reviewing the [diagram of the automation workflow](https://linktw.in/PloXtt).
32+
4. **Review the Documentation**: Familiarize yourself with the project by thoroughly reading the [documentation](./artifacts/wiki.md) and reviewing the [automation workflow diagram](https://linktw.in/PloXtt).
3433

3534
## Types of Contributions
3635

3736
### Reporting Issues
3837

3938
If you encounter any bugs, errors, or have suggestions for improvements:
4039

41-
- **Search existing issues**: Before submitting a new issue, please check if it has already been reported.
42-
- **Create a new issue**: If it’s a new issue, create one and provide detailed information such as steps to reproduce, expected and actual results, and any relevant screenshots or logs.
43-
- **Link to related tasks**: If your issue is related to any of the [TODOs](#https://github.com/Shayan-Ghani/boundary-vault-stack/tree/main/#to-do), please reference the corresponding task.
40+
- **Search Existing Issues**: Before submitting a new issue, check if it has already been reported.
41+
- **Create a New Issue**: If it’s a new issue, provide detailed information such as steps to reproduce, expected vs. actual results, and any relevant screenshots or logs.
42+
- **Link to Related Tasks**: If your issue relates to any of the [TODOs](https://github.com/Shayan-Ghani/boundary-vault-stack/tree/main/#to-do), reference the corresponding task.
43+
44+
### Commit Messages
45+
46+
**Use Conventional Commits**: The project follows [semantic versioning](https://semver.org/) to ensure proper releases. Start your commits with a prefix such as `fix:`, `feat:`, `chore:`, or `doc:`.
47+
48+
- **Imperative Mood**: Write commit messages as commands (e.g., "Add Vagrantfile for VM provisioning").
49+
- **Be Concise but Descriptive**: Provide enough detail to understand the change.
50+
- **Commit Message Conventions**: Use `doc:` for any changes related to documentation.
4451

4552
### Submitting Pull Requests
4653

4754
When submitting pull requests (PRs):
4855

49-
1. **Create a branch**: Create a new branch for your feature or bug fix. Avoid working directly on the `main` branch.
56+
1. **Create a Branch**: Create a new branch for your feature or bug fix. Avoid working directly on the `main` branch.
5057
```bash
5158
git checkout -b feature/your-feature-name
5259
```
5360

54-
2. **Make atomic commits**: Ensure each commit is focused and addresses a single change by Conforming to the Commit Messages section.
61+
2. **Make Atomic Commits**: Ensure each commit is focused and addresses a single change, following the Commit Messages section.
5562

56-
3. **Follow the code style guidelines**: Ensure your code adheres to the project's code style and best practices.
63+
3. **Follow Best Practices**: Ensure your code adheres to the project's best practices.
5764
58-
4. **Test your changes**: Run tests and ensure your changes do not break the existing code.
65+
4. **Test Your Changes**: Run tests and ensure your changes do not break existing code.
5966
60-
5. **Update documentation**: If your change requires documentation updates, ensure these are included in your PR.
67+
5. **Update Documentation**: If your change requires documentation updates, include them in your PR. Use the `documentation` label and provide additional context in the PR description.
6168
6269
6. **Submit the PR**: Push your branch to GitHub and open a pull request against the `main` branch. Link the PR to the corresponding issue(s).
6370
6471
### Code Style and Best Practices
6572
66-
- **Use meaningful variable and function names**.
67-
- **Keep functions small and focused**: Each function should perform a single task.
68-
- **DRY (Don’t Repeat Yourself)**: Reuse code where possible.
69-
- **Comment your code**: Provide comments where the code is not self-explanatory.
70-
- **Follow best practices**: For Terraform, Ansible, and Shell Scripting, refer to the [Guidelines for Specific Tasks](#guidelines-for-specific-tasks).
71-
72-
### Commit Messages
73-
74-
- **Use imperative mood**: Write commit messages as if you are commanding the code to do something (e.g., "Add Vagrantfile for VM provisioning").
75-
- **Be concise but descriptive**: Provide enough detail to understand the change.
76-
77-
#### Conventions
78-
- start your commit with `doc:` in case of any change in wiki.
79-
- start your commit with `closes #issue_number :` if your commit closes an issue.
80-
73+
- **Use Meaningful Names**: Choose descriptive names for variables and tasks.
74+
- **Keep Tasks Small and Focused**: Each function should perform a single task.
75+
- **DRY (Don’t Repeat Yourself)**: Reuse code wherever possible.
76+
- **Comment Your Code**: Add comments where the code is not self-explanatory.
77+
- **Adhere to Best Practices**: Refer to the [Guidelines for Specific Tasks](#guidelines-for-specific-tasks) for Terraform, Ansible, and Shell Scripting.
8178
8279
## Guidelines for Specific Tasks
8380
8481
### Terraform
8582
86-
- **State management**: Ensure you properly configure remote state management, especially when working on the tasks related to the remote backend.
87-
- **Output values**: Enhance output values to make them more informative and useful.
83+
- **State Management**: Configure remote state management properly, especially when working with remote backends.
84+
- **Output Values**: Make output values informative and useful.
85+
- **Avoid Unnecessary Loops**: Minimize the use of `foreach` and loops for variables, and avoid hardcoding values.
8886
8987
### Ansible
9088
91-
- **Environment variables**: Use the `environment` attribute for declaring environment variables in roles.
92-
- **Role organization**: Keep roles modular and reusable.
89+
- **Role Organization**: Keep roles modular and reusable.
90+
- **Handlers and Utilities**: Use [handlers](./ansible/handlers/) and [utilities](./ansible/utils/) for frequently repeated tasks.
9391
9492
### Shell Scripting
9593
96-
- **Logging**: Implement a consistent logging mechanism across all shell scripts. Use a custom logger function as outlined in the TODOs.
97-
- **Error handling**: Ensure scripts handle errors gracefully and provide informative messages.
94+
- **Logging**: Implement consistent logging across all shell scripts. Use a custom logger function as outlined in the TODOs.
95+
- **Error Handling**: Ensure scripts handle errors gracefully and provide informative messages.
9896
9997
### CI/CD
10098
10199
- **GitHub Actions**: Contribute to the existing CI/CD pipeline by implementing automated testing, linting, and security scans for pull requests.
102100
103-
### Testing
104-
105-
- **Implement Ansible Molecule test cases**: For Ansible roles, write Molecule test scenarios to ensure your roles work as expected.
106-
- **Automated testing**: Contribute to the CI/CD pipeline by writing GitHub Actions workflows that automate testing.
107-
108101
## Communication
109102
110-
- **Stay updated**: Regularly check for updates on the project and communicate with the maintainers for any significant contributions.
111-
- **Respectful collaboration**: Follow a code of conduct that fosters a respectful and inclusive environment.
103+
- **Stay Updated**: Regularly check for project updates and communicate with maintainers about significant contributions.
104+
- **Respectful Collaboration**: Follow the code of conduct to maintain a respectful and inclusive environment.
112105
113106
## License
114107
115108
By contributing to this project, you agree that your contributions will be licensed under the project's [license](./LICENSE).
116109

117110
---
118111

119-
Thank you for your interest in contributing to the Hashicorp Boundary and Vault Stack! We look forward to your contributions.
112+
Thank you for your interest in contributing to the HashiCorp Boundary and Vault Stack! We look forward to your contributions.

README.md

Lines changed: 50 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -1,82 +1,75 @@
1-
# Hashicorp Boundary and Vault Stack
2-
Deploy Self-Hosted HCP Vault and Boundary using End-To-End automation.
3-
4-
## What This Project Offers
5-
By providing a comprehensive and hands-on experience in Infrastructure as Code (IaC) and Configuration Management along with creating vital deliverables such as documentation and diagrams, this project simulates a real-world infrastructure development that emphasizes End-to-End automation, enabling DevOps Engineers to collaborate and deliver a reliable and production-ready stack to the end-users.
6-
7-
## How To Use
8-
**First, make sure you have [READ THE DOCUMENTATION](./artifacts/wiki.md) for instructions on how the stack and Hashicorp Boundary/Vault work.**
9-
10-
**See a thorough [diagram of the automation workflow big picture](https://linktw.in/nWgoiO).**
1+
# HashiCorp Boundary and Vault Stack
112

3+
Deploy a Self-Hosted HCP Vault and Boundary stack using end-to-end automation.
124

5+
## What This Project Offers
136

14-
1. To begin with, create your own `tfvars` based on the sample provided in [boundary](./boundary/terraform/terraform.tfvars.sample) and [vault](./vault/terraform/terraform.tfvars.sample) or simply remove the leading .sample extension to apply the sample values.
7+
This project provides a comprehensive, hands-on experience in Infrastructure as Code (IaC) and Configuration Management. It simulates a real-world infrastructure environment with a focus on end-to-end automation, enabling DevOps engineers to collaboratively deliver a reliable, production-ready stack. Key deliverables include detailed documentation and diagrams.
158

16-
2. Initialize the process by running `start.sh` script in your desired environment:
17-
```bash
18-
#run in dev:
19-
./start.sh -e development
20-
```
9+
## How to Use
2110

22-
*If you need further assistance on the exit/return code and configurations, check out [ wiki ](./artifacts/wiki.md).*
11+
1. **Read the Documentation**: Before getting started, ensure you have thoroughly reviewed the [project documentation](./artifacts/wiki.md) and the [automation workflow diagram](https://linktw.in/nWgoiO).
2312

24-
3. You'll be prompted to Enter the vault-password to decrypt ansible-vault encrypted files (e.g inventory.ini).
13+
2. **Configure Variables**: Create your own `tfvars` file based on the samples provided in the [Boundary](./boundary/terraform/terraform.tfvars.sample) and [Vault](./vault/terraform/terraform.tfvars.sample) directories. Alternatively, you can remove the `.sample` extension from the provided sample files to use the default values.
2514

26-
**The `ansible-vault-pass` is `BVSTACK`. This is for the sake of simplicity and sample, make sure you use a strong password for your ansible vault encrypted files.**
15+
3. **Run the Start Script**: Begin the setup by running the `start.sh` script in your desired environment:
16+
```bash
17+
# Run in development:
18+
./start.sh -e development
19+
```
2720

28-
## TO-DO
29-
> Terraform ....
21+
For further assistance on exit/return codes and configurations, refer to the [documentation](./artifacts/wiki.md).
3022

31-
> NOTE
32-
> Implement all of the provisioners inside provision Directory and Ansible Role
23+
4. **Enter Vault Password**: You will be prompted to enter the Vault password to decrypt Ansible Vault-encrypted files (e.g., `inventory.ini`).
3324

34-
- [ ] Add a **Vagrantfile** to provision a VM using the **Vagrant** provider of your choice based on [ specs ](./provision/specs.txt) with `Terraform`.
25+
**Note**: The default `ansible-vault-pass` is `BVSTACK`. This is provided for simplicity in the sample; ensure you use a strong password for your Ansible Vault-encrypted files.
3526

36-
- [ ] Using `Terraform` **AWS** provider provision an **EC2** instance based on [ specs ](./provision/specs.txt) + additional required configuration.
27+
## To-Do List
3728

38-
- [ ] Using `Terraform` **Azure** provider provision an Azure VMs instace based on [ specs ](./provision/specs.txt) + additional required configuration.
29+
### Terraform
3930

40-
- [ ] Using `Terraform` **Vsphere** provider, provision a vm on an ESXI server based on [ specs ](./provision/specs.txt).
31+
- [ ] Add a **Vagrantfile** to provision a VM using the **Vagrant** provider of your choice, based on the [specifications](./provision/specs.txt).
32+
- [ ] Provision an **EC2** instance using the **AWS** provider based on the [specifications](./provision/specs.txt) and additional required configurations.
33+
- [ ] Provision an **Azure** VM using the **Azure** provider based on the [specifications](./provision/specs.txt) and additional required configurations.
34+
- [ ] Provision a VM on an ESXi server using the **vSphere** provider based on the [specifications](./provision/specs.txt).
35+
- [ ] Add a remote backend option for Boundary and Vault.
36+
- [ ] Implement additional Vault authentication methods.
37+
- [ ] Enhance Terraform output values for both Boundary and Vault.
38+
- [ ] Implement Policy as Code (PaC) to validate Terraform policies.
4139

40+
### Packer
4241

43-
- [ ] Add `Terraform` Remote Backend option for Boundary and Vault.
44-
- [ ] Add other Vault auth methods using `Terraform`.
45-
- [ ] Enchance `Terraform Output` values for both Boundary and Vault
46-
- [ ] Implement `Policy as Code (PaC)` to validate `Terraform` policies.
42+
- [ ] Add a Packer custom image template for VMware vSphere using the [specifications](./provision/specs.txt).
4743

48-
> Packer ...
44+
### Ansible
4945

50-
- [ ] Add Packer custom image template for VMware Vsphere using [ specs ](./provision/specs.txt).
46+
- [ ] Install and configure Terraform on the **control node** using the `prepare_env` role.
47+
- [ ] Install and configure Docker on **target (managed) nodes** using the `prepare_env` role.
48+
- [ ] Template `tfvars` files to handle specific variables for both Boundary and Vault Terraform providers.
49+
- [ ] Create a well-organized Ansible template for Vault and Boundary configurations.
50+
- [ ] Update environment variable declarations in Ansible roles to use the `environment` attribute instead of inline definitions in the `shell` module.
51+
- [ ] Add proper configurations to serve the stack as a reverse proxy in the `serve` directory (tool optional).
52+
- [ ] Update `boundary.yml` to use environment variables instead of hardcoding, then manage the export of these variables with Ansible.
53+
- [ ] Convert Docker Compose files to corresponding Ansible modules using the `community.docker.docker_container` collection as an optional deployment method.
54+
- [ ] Implement Ansible Molecule scenarios to test different aspects of your roles.
55+
- [ ] Choose which provider to provision based on a user-defined or environment variable when handling provisions with Ansible.
5156

52-
> Ansible ...
57+
### CI/CD
5358

54-
- [ ] Install and configure `Terraform` on the **control node** (`prepare_env` role).
55-
- [ ] Install and configure `Docker` on **target (managed) node(s)** (`prepare_env` role).
56-
- [ ] Optionally, install boundary and vault on **admins** node(s) Based on `STACK_BIN=true/false` Environment variable.
57-
- [ ] Template `tfvars` file to handle specific variables for both boundary and vault terraform providers.
58-
- [ ] Create a well-organized `Ansible` template for Vault and boundary configurations.
59-
- [ ] Update environment variable declaration through `Ansible` roles to use `environment` attribute instead of inline definition in `shell` module.
60-
- [ ] Add proper configurations to serve the stack as a reverse proxy in the `serve` directory(the tool is optional).
61-
- [ ] Update `boundary.yml` to use ENV variables instead of hardcoding then handle the export of the env variables with `Ansible`.
62-
- [ ] Using `Ansible` `community.docker.docker_container` collection, convert docker-compose files to the corresponding `Ansible` module as an optional deployment method.
63-
- [ ] Implement Ansible `Molecule` case scenarios to test different aspects of your roles.
64-
- [ ] When handling Provisions with `Ansible`, Choose which Provider to provision Based on a User-Defined or Environment variable.
59+
- [ ] Implement automated testing using GitHub Actions for pull requests.
6560

66-
> CI/CD ....
61+
### Shell Scripting
6762

68-
- [ ] Implement automated testing using GitHub actions for pull requests.
63+
- [ ] Write a custom logger function and implement it throughout all shell scripts for better error handling and logging (in the `log` directory).
64+
- [ ] Use `case` statements instead of `if` for argument handling in `init.sh`.
65+
- [ ] Update `start.sh` to prompt for the Ansible Vault password once and use it for all operations.
66+
- [ ] Replace sleep commands in `start.sh` with the appropriate Ansible `wait_for` modules.
67+
- [ ] Remove the Vault root token in the `cleanup` script.
6968

70-
> Shell Scripting ...
69+
## Contribution
7170

72-
- [ ] Write a `Custom Logger` function and use it throughout all shell scripts for better error handling and logging (`log` directory).
73-
- [ ] Use `case` instead of if for argument handling in `init.sh`.
74-
- [ ] Make `start.sh` ask for the ansible-vault password once and use it for all.
75-
- [ ] Update the sleep commands in the `start.sh` to use `Ansible` wait_for modules instead.
76-
- [ ] Remove vault root token in `cleanup`.
71+
All contributions are welcome! Please read the [Contributing Guidelines](./CONTRIBUTING.md) for more information.
7772

78-
## Contribution
79-
all types of contribution is welcomed, read [`Contribution.md`](./Contributing.md) for more information.
73+
## Credit and Maintenance
8074

81-
## Credit and Maintainance
82-
**Copyright © 2024 [Shayan Ghani](https://github.com/Shayan-Ghani) shayan.ghani.tech@gmail.com**
75+
**Copyright © 2024 [Shayan Ghani](https://github.com/Shayan-Ghani) - shayan.ghani.tech@gmail.com**

0 commit comments

Comments
 (0)