-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #3 from ferricoxide/Issue_2
Provide a set of issue and PR templates
- Loading branch information
Showing
11 changed files
with
319 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
--- | ||
name: Bug Report | ||
about: Report problems encountered with this project's functional content | ||
title: "[BUG]" | ||
labels: bug | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Describe the bug** | ||
<!-- A clear and concise description of what the bug is. --> | ||
|
||
**Severity** | ||
<!-- | ||
Give a rough estimate of how broken things seem to be | ||
* Completely Broken (No work-around evident) | ||
* Severely Broken (Work-around possible but difficult) | ||
* Moderately Broken (Trivial work-around) | ||
* Nuisance (Functions but untrapped errors can slip through) | ||
--> | ||
|
||
**To Reproduce** | ||
Steps to reproduce the behavior: | ||
1. Go to '...' | ||
2. Click on '....' | ||
3. Scroll down to '....' | ||
4. See error | ||
<!-- If error is transient, provide rough estimation of how frequently it occurs --> | ||
|
||
**Expected behavior** | ||
<!-- A clear and concise description of what you expected to happen. --> | ||
|
||
**Deviance Description** | ||
<!-- How does the behavior deviate from your expectations --> | ||
|
||
**Screenshots** | ||
<!-- If applicable, add screenshots to help explain your problem. --> | ||
|
||
**Additional context** | ||
<!-- Add any other context about the problem here. --> | ||
|
||
**Fix Suggestions** | ||
<!-- | ||
Manual steps to take to work around the problem | ||
Note: if submitting a PR, ensure to reference this issue | ||
--> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
--- | ||
name: Documentation Error | ||
about: Report problems with existing documentation | ||
title: "[Documentation Bug]" | ||
labels: bug, documentation | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Nature of documentation error** | ||
|
||
<!-- | ||
* Typographical or Grammar Errors | ||
* Vague | ||
* Misleading/Counter-intuitive | ||
* Wholly Incorrect | ||
* Missing Document (e.g., broken link-text) | ||
--> | ||
|
||
**Document Location** | ||
|
||
<!-- Provide name of faulty document and location within the project --> | ||
|
||
**Proposed Fix** | ||
<!-- | ||
* For small fixes - like spelling or grammar errors - sketch/list erroneous content | ||
* For one or two passage-level fixes, supply the current content to be replaced and proposed replacement - or create a pull request | ||
* For wholesale changes, please create a pull request | ||
--> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
--- | ||
name: Documentation Request | ||
about: Request new documentation or improvements documentation | ||
title: "[Documentation]" | ||
labels: documentation, enhancement | ||
assignees: '' | ||
|
||
--- | ||
|
||
**New doc or update?** | ||
|
||
<!-- | ||
What is the request-type | ||
* New documentation | ||
* Clarify existing documentation | ||
--> | ||
|
||
**Documentation blurb** | ||
|
||
<!-- Provide summary of desired documentation content (open PR if wishing to supply a document --> | ||
|
||
**Relevance** | ||
|
||
<!-- | ||
Describe how requested documentation: | ||
- fits into project | ||
- addresses gaps in existing documentation | ||
- where documentation should go | ||
--> | ||
|
||
- Document Name (Existing or Proposed) | ||
- Document Location (Path within project, etc.) | ||
- Current Location | ||
- Requested Location (if different from current) | ||
- Associated Feature | ||
- Overview/Description | ||
- Use cases |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
name: Feature request | ||
about: Suggest an idea for this project | ||
title: "[Feature Request]" | ||
labels: enhancement | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Is your feature request related to a problem? Please describe.** | ||
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] --> | ||
|
||
**Describe the solution you'd like** | ||
<!-- A clear and concise description of what you want to happen. --> | ||
|
||
**Describe alternatives you've considered** | ||
<!-- A clear and concise description of any alternative solutions or features you've considered. --> | ||
|
||
**Additional context** | ||
<!-- Add any other context or screenshots about the feature request here. --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
name: Pull Request - Bug-Fix | ||
about: Fixes functionality error in project | ||
title: '[Big-Fix]' | ||
labels: bug | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Description:** | ||
|
||
<!-- In this block, describe what the pull request does. Nuke this text --> | ||
|
||
**Rationale:** | ||
|
||
<!-- Brief description of why you're submitting this PR --> | ||
|
||
**Reference Issue:** | ||
|
||
<!-- Link to any previously opened issue(s) this PR addresses -> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
name: Pull Request - Documentation Fix | ||
about: Improve existin documentation | ||
title: '[Document Fix]' | ||
labels: documentation | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Description:** | ||
|
||
<!-- In this block, describe what the pull request does. Nuke this text --> | ||
|
||
**Rationale:** | ||
|
||
<!-- Brief description of why you're submitting this PR --> | ||
|
||
**Reference Issue:** | ||
|
||
<!-- Link to any previously opened issue(s) this PR addresses -> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
name: Pull Request - Documentation Fix | ||
about: Improve existin documentation | ||
title: '[Document Fix]' | ||
labels: documentation | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Description:** | ||
|
||
<!-- In this block, describe what the pull request does. Nuke this text --> | ||
|
||
**Rationale:** | ||
|
||
<!-- Brief description of why you're submitting this PR --> | ||
|
||
**Reference Issue:** | ||
|
||
<!-- Link to any previously opened issue(s) this PR addresses -> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
--- | ||
name: Pull Request - Generic | ||
about: Uncategorized modification to project-content | ||
title: '' | ||
labels: '' | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Description:** | ||
|
||
<!-- In this block, describe what the pull request does. Nuke this text --> | ||
|
||
**Rationale:** | ||
|
||
<!-- Brief description of why you're submitting this PR --> | ||
|
||
**Reference Issue:** | ||
|
||
<!-- Link to any previously opened issue(s) this PR addresses -> | ||
**Suggested Category, Labels, Etc.** | ||
<!-- Suggest a category name/type to be used for future PRs similar to this one --> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
--- | ||
name: Pull Request - New Feature | ||
about: Provide new code to enhance project | ||
title: '[Feature Addition]' | ||
labels: enhancement | ||
assignees: '' | ||
|
||
--- | ||
|
||
**Description:** | ||
|
||
<!-- In this block, describe what the pull request does. Nuke this text --> | ||
|
||
**Rationale:** | ||
|
||
<!-- Brief description of why you're submitting this PR --> | ||
|
||
**Reference Issue:** | ||
|
||
<!-- Link to any previously opened issue(s) this PR addresses -> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
# Background | ||
|
||
This project originated as a simple toolkit to help automate the creation of generic Enterprise Linux AMIs. The resultant AMIs were necessary to support a larger automation project that spanned multiple AWS regions - commercial and GovCloud. | ||
|
||
At the project's origination, there was a particular lack of AMI uniformity across the offerings from Red Hat and CentOS.org. These tools ensure that resultant Red Hat and CentOS AMIs are 99% identical from an RPM-manifest, AWS-toolset, partitioning and initial-user perspective. Primary differences between the Red Hat and CentOS AMIs are resultant of concessions to leveraging the RHUI RPM repositories. | ||
|
||
The overarching automation project was focused on implementing DISA STIGs within VMs deployed to AWS environment(s). At the time the project came into existence, there were not AMIs that could check off the various STIG boxes for "<DIRECTORY> must be on its own filesystem". This project sought to address that. | ||
|
||
The overarching automation project also included a mandate for the inclusion of anti-virus (A/V) scanners in all production-ready systems. Most of the A/V scanners exacted a heavy system impact when the /tmp filesystem was hosted on HDD-backed storage. As a result, the produced AMIs have /tmp on tmpfs. | ||
|
||
Lastly, ext4 was chosen over XFS for flexibility reasons: you can't shrink XFS filesystems. Yes, root-filesystems hosted on AWS-hosted VMs are mostly not practical to attempt to shrink. However, use of ext4 enables this use-case for determined system owners. | ||
|
||
# How to Contribute | ||
|
||
Because of the above background, specific design decisions were made. Further, because this project had an organic origination (read: "there was no originally-specified demand for this particular project; however, the realities of the overarching project effectively demanded its existence"). As a result the implementation was done with no pre-allocated time for doing so. | ||
|
||
It would be great if users of this project could help by identifying gaps that our specific use-cases have not uncovered. In an ideal world, that help would come in the form of code-contributions (via pull-requests). Next-best option is submitting Issues identifying gaps with as great of detail as possible - preferably inclusive of suggestions for mitigating those gaps. | ||
|
||
Because of the aforementioned time-constraints, we are already aware that the project's scripts contain a higher-than-desired degree of "brittleness". Some of this is hidden by another project. However, because that other project acts as an overlay to this project, contributions that help address the current brittleness would be greatly appreciated. | ||
|
||
Similarly, we are aware that, while the tools _can_ be used to produce unpartitioned AMIs (we use them to produce "recovery" AMIs), those funtionalities are even more brittle and apt to lead to wailing and gnashing-of-teeth than the specifially-designed-for functionalities. Please feel free to improve those functionalities or even just provide further "how not to blow yourself up" documentation. | ||
|
||
Otherwise, in the interest of full disclosure, the fruits of this automation-effort are openly provided on a wholly "as-is" basis. Individuals who have stumbled on this project and find deficiencies in it are invited to help us enhance the project for broader usability (as described above). | ||
|
||
## Testing | ||
|
||
This project leverages a fairly bare-bones test-suite performed through Travis CI's [online testing framework](https://travis-ci.org/). As of this contribution-guideline document's last edit date, the only things being tested for are de-linting for shell (BASH) style and syntax checking via the shellchecker utility. Shell style- and syntax-checking are done via [Koalaman's shellcheck utilities](https://github.com/koalaman/shellcheck) (functionality which is also available via copy/paste at https://www.shellcheck.net/). The current test "recipies" are found in the `.travis.yml` file found in the project's root directory. | ||
|
||
## Submitting Changes | ||
|
||
In general, we prefer changes be offered in the form of tested pull-requests. Prior to opening a pull-request, we also prefer that an associated issue be opened - you can request that you be assigned or otherwise granted ownership in that issue. The submitted pull-request should reference the previously-opened issue. The pull-request should include a clear list of what changes are being offered (read more about [pull requests](http://help.github.com/pull-requests/)). The received PR should show green in Travis (see the above "Testing" section). If the received PR doesn't show green in Travis, it will be rejected. It is, therefore, recommended that prior to submitting a pull request, Travis will have been leveraged to pre-validate changes in the submitter's fork. | ||
|
||
Feel free to enhance the Travis-based checks as desired. Modifications to the `.travis.yml` received via a PR will be evaluated for inclusion as necessary. If other testing frameworks are preferred, please feel free to add them via a PR ...ensuring that the overall PR still passes the existing Travis CI framework. Any way you slice it, improvements in testing are great. We would be very glad of receiving and evaluating any testing-enhancements offered. | ||
|
||
Please ensure that commits included in the PR are performed with both clear and concise commit messages. One-line messages are fine for small changes. However, bigger changes should look like this: | ||
|
||
$ git commit -m "A brief summary of the commit | ||
> | ||
> A paragraph describing what changed and its impact." | ||
|
||
## Coding conventions | ||
|
||
Start by reading the existing code. Things are fairly straight-forward - or at least as straight-forward as BASH can be fore certain types of tasks. We optimize for narrower terminal widths - typically 80-characters (the individual who originated the project has some ooooold habits) but sometimes 120-character widths may be found. We also optimize for UNIX-style end-of-line. Please ensure that your contributions line-ends use just a line-feed (lf) rather than a Windows-style carriage-return/line-feed (crlf) end-of-line. Note that the project-provided `.editorconfig` file should help ensure this behavior. | ||
|
||
Overall, shell script conventions are fairly minimal | ||
* Pass the shellchecker validity tests | ||
* Use three-space indent-increments for basic indenting | ||
* If breaking across lines, indent following lines by two-spaces (to better differentiate from standard indent-blocks) - obviously, this can be ignored for here-documents.. | ||
* Code should be liberally-commented. | ||
* Use "# " or "## " to prepend. | ||
* Indent comment-lines/blocks to line up with the blocks of code being commented | ||
* Anything not otherwise specified - either explicitly as above or implicitly via pre-existing code - pick an element-style and be consistent with it. | ||
|
||
## Additonal Notes | ||
|
||
As indicated previously, this project serves an overaching goal of fostering STIG compliance. As such, the resultant AMIs strive for as close to an @core type of installation as possible. If desired/offered changes require additional RPMs be added to what's already in the project, please justify their inclusion (that is, answer the question "what value do these provide that offsets the potential increase in attack-surface or otherwise causing an IA accreditor to raise an eyebrow"). |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
### Problem Description: | ||
|
||
Include a general description of the problem. | ||
|
||
|
||
### Expected Behavior: | ||
|
||
Detail what the (apparent) expected behavior is. | ||
|
||
|
||
|
||
### Actual Behavior: | ||
|
||
Detail what the encountered behavior is. | ||
|
||
|
||
### (Detailed) Steps to reproduce: | ||
|
||
Detail the steps to reproduce | ||
|
||
|
||
### (Optional) Fix recommendation: | ||
|
||
Either submit a PR or describe, in as great of detail possible, how to fix the problem. | ||
|