Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions _docs-sources/guides/build-it-yourself/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
import Card from "/src/components/Card"
import Grid from "/src/components/Grid"

# Build Your Own Architecture

The Gruntwork IaC library empowers you to construct your own bespoke architecture in record time. By mix-and-matching our modules and services you can quickly define a custom architecture to suit your needs, all with the confidence of having world-class, battle-tested code running under the hood. This series of guides aims to teach you how to configure and deploy some of our most popular services. Additional guides will be added over time, but the principles covered extend to the rest of the IaC library. If you have trouble, don’t hesitate to ask questions via our [support channels](/docs/guides/support).

## Follow Our Deployment Guides

<Grid cols={2}>
<Card
title="Set Up Your AWS Accounts"
href="/docs/guides/build-it-yourself/landing-zone"
>
Set up a multi-account structure using Gruntwork Landing Zone.
</Card>
<Card
title="Configure a CI/CD Pipeline"
href="/docs/guides/build-it-yourself/pipelines"
>
Implement continuous deployment for your infrastructure code with Gruntwork
Pipelines.
</Card>
<Card
title="Deploy a VPC"
href="/docs/guides/build-it-yourself/vpc"
>
Set up your network according to industry best practices using our VPC service.
</Card>
<Card
title="Deploy a Kubernetes Cluster"
href="/docs/guides/build-it-yourself/kubernetes-cluster"
>
Deploy a Kubernetes Cluster to host all of your apps and services.
</Card>
<Card
title="Acheive Compliance"
href="/docs/guides/build-it-yourself/achieve-compliance"
>
Make your infrastructure compliant with the CIS AWS Foundations Benchmark.
</Card>
</Grid>

## Dig Into the Code

<Grid cols={2}>
<Card title="Browse Services" href="/docs/reference/services/intro">
View the API reference for our entire service catalog to learn what’s
available.
</Card>
<Card
title="View the Code in GitHub"
href="https://github.com/orgs/gruntwork-io/repositories"
>
If you're the type who likes to jump straight to the source, this is for
you.
</Card>
</Grid>
131 changes: 14 additions & 117 deletions _docs-sources/guides/index.md
Original file line number Diff line number Diff line change
@@ -1,124 +1,21 @@
---
sidebar_label: "Introduction"
sidebar_position": 1
hide_table_of_contents: true
hide_title: true
---

import Card from "/src/components/Card"
import Grid from "/src/components/Grid"
import CenterLayout from "/src/components/CenterLayout"

<CenterLayout>
import CardGroup from "/src/components/CardGroup"

# Gruntwork Guides

As a Gruntwork subscriber, you have two primary ways to engage with our library. Whichever approach you choose, our guides provide step-by-step instructions to help you deploy your infrastructure with confidence. We also offer detailed upgrade guides to ensure that your infrastructure remains up-to-date with the latest security patches, compliance requirements, and DevOps best practices.

<Grid cols={2}>
<Card
title="Set Up Your Reference Architecture"
href="/docs/guides/reference-architecture"
>
Learn how to use and administer a Reference Architecture which Gruntwork has
deployed for you.
</Card>
<Card
title="Build Your Own Architecture"
href="#build-your-own-architecture"
>
Learn how to utilize our service modules to construct a world-class
architecture on your own.
</Card>
</Grid>

## Build Your Own Architecture

The Gruntwork IaC library empowers you to construct your own bespoke architecture in record time. By mix-and-matching our modules and services you can quickly define a custom architecture to suit your needs, all with the confidence of having world-class, battle-tested code running under the hood. This series of guides aims to teach you how to configure and deploy some of our most popular services. Additional guides will be added over time, but the principles covered extend to the rest of the IaC library. If you have trouble, don’t hesitate to ask questions via our [support channels](/docs/guides/support).

### Follow Our Step-By-Step Guides

<Grid>
<Card
title="Set Up Your AWS Accounts"
href="/docs/guides/build-it-yourself/landing-zone"
>
Set up a multi-account structure using Gruntwork Landing Zone.
</Card>
<Card
title="Configure a CI/CD Pipeline"
href="/docs/guides/build-it-yourself/pipelines"
>
Implement continuous deployment for your infrastructure code with Gruntwork
Pipelines.
</Card>
<Card
title="Deploy a VPC"
href="/docs/guides/build-it-yourself/vpc"
>
Set up your network according to industry best practices using our VPC service.
</Card>
<Card
title="Deploy a Kubernetes Cluster"
href="/docs/guides/build-it-yourself/kubernetes-cluster"
>
Deploy a Kubernetes Cluster to host all of your apps and services.
</Card>
<Card
title="Acheive Compliance"
href="/docs/guides/build-it-yourself/achieve-compliance"
>
Make your infrastructure compliant with the CIS AWS Foundations Benchmark.
</Card>
</Grid>

### Dig Into the Code

<Grid cols={2}>
<Card title="Browse Services" href="/docs/reference/services/intro">
View the API reference for our entire service catalog to learn what’s
available.
</Card>
<Card
title="View the Code in GitHub"
href="https://github.com/orgs/gruntwork-io/repositories"
>
If you're the type who likes to jump straight to the source, this is for
you.
</Card>
</Grid>

## Stay Up to Date

<Grid cols={2}>

<span>

### Terraform

- [Update to version 1.X](/docs/guides/stay-up-to-date/terraform/terraform-1.x)
- [Update to Terraform 15](/docs/guides/stay-up-to-date/terraform/terraform-15)
- [Update to Terraform 14](/docs/guides/stay-up-to-date/terraform/terraform-14)
- [Update to Terraform 13](/docs/guides/stay-up-to-date/terraform/terraform-13)
- [Update to Terraform 12](/docs/guides/stay-up-to-date/terraform/terraform-12)
- [Update to Version 3 of the Terraform provider](/docs/guides/stay-up-to-date/terraform/how-to-update-to-aws-provider-v3)
- [DRY your Reference Architecture](/docs/guides/stay-up-to-date/terraform/how-to-dry-your-reference-architecture)

</span>
<span>

### CIS AWS Foundations Benchmark

- [Update to version 1.4.0](/docs/guides/stay-up-to-date/cis/cis-1.4.0)
- [Update to version 1.3.0](/docs/guides/stay-up-to-date/cis/cis-1.3.0)

</span>

</Grid>
Before you get too deep into the code, it's important to understand Gruntwork's core principles. These guides will give you the necessary background to succeed with your Gruntwork subscription, and provide an essential framework for constructing a world-class DevOps infrastructure.

## Style Guides
<CardGroup cols={2}>

- [Terraform Style Guide](/docs/guides/style/terraform-style-guide)
- [Go Style Guide](/docs/guides/style/golang-style-guide)
<Card
title="Introduction to Gruntwork"
href="/docs/intro/overview/intro-to-gruntwork">
Before anything else, check out our introductory guide to set up your account, prepare your tools, and understand what to expect.
</Card>
<Card
title="The Gruntwork Production Framework"
href="/docs/guides/production-framework">
We present a comprehensive model to help you establish a robust infrastructure platform, and explain how Gruntwork can accelarate its adoption in your org.
</Card>

</CenterLayout>
</CardGroup>
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

This diagram shows a rough overview of the Gruntwork Pipelines architecture:

![Architecture Diagram](/img/guides/reference-architecture/gruntwork-pipelines-architecture.png)
![Architecture Diagram](/img/guides/reference-architecture/example-usage-guide/gruntwork-pipelines-architecture.png)

The Gruntwork Pipelines workflow, defined in [`.github/workflows/pipelines.yml`](https://github.com/gruntwork-io/terraform-aws-service-catalog/blob/master/examples/for-production/infrastructure-live/.github/workflows/pipelines.yml), works like this:

Expand Down Expand Up @@ -34,23 +34,23 @@ If you'd like to send Slack notifications when the pipeline is running, follow t

1. In Slack, open the Workflow builder:

![Slack Workflow Builder](/img/guides/reference-architecture/slack-workflow-1.png)
![Slack Workflow Builder](/img/guides/reference-architecture/example-usage-guide/slack-workflow-1.png)

1. Create a new Webhook workflow called "Gruntwork Pipelines"

![Slack Webhook workflow](/img/guides/reference-architecture/slack-workflow-2.png)
![Slack Webhook workflow](/img/guides/reference-architecture/example-usage-guide/slack-workflow-2.png)

1. Add the following text variables to the workflow: `branch`, `status`, `url`, `repo`, and `actor`

![Slack workflow variables](/img/guides/reference-architecture/slack-workflow-3.png)
![Slack workflow variables](/img/guides/reference-architecture/example-usage-guide/slack-workflow-3.png)

1. Once all of the variables are added, click Next.

1. Now add another step to the workflow

![Slack workflow add step](/img/guides/reference-architecture/slack-workflow-4.png)
![Slack workflow add step](/img/guides/reference-architecture/example-usage-guide/slack-workflow-4.png)

1. Add the "Send a message" step
1. Add the "Send a message" step

1. Choose a channel from the dropdown menu

Expand All @@ -72,20 +72,20 @@ If you'd like to send Slack notifications when the pipeline is running, follow t

1. Copy the webhook URL and save it. We will use this value below.

![Slack workflow add step](/img/guides/reference-architecture/slack-workflow-5.png)
![Slack workflow add step](/img/guides/reference-architecture/example-usage-guide/slack-workflow-5.png)

1. Note that the webhook URL should be treated as sensitive. Anyone with the URL can send HTTP requests to the webhook!

### Add secrets to GitHub

1. Open the GitHub repository and navigate to Settings => Secrets.

![GitHub Secrets](/img/guides/reference-architecture/secrets.png)
![GitHub Secrets](/img/guides/reference-architecture/example-usage-guide/secrets.png)

1. Create the following repository secrets:

- `AWS_ACCESS_KEY_ID`: This is the first value from the AWS IAM user step above.
- `AWS_SECRET_ACCESS_KEY`: This is the second value from the AWS IAM user step above.
- `AWS_ACCESS_KEY_ID`: This is the first value from the AWS IAM user step above.
- `AWS_SECRET_ACCESS_KEY`: This is the second value from the AWS IAM user step above.
- `GH_TOKEN`: Enter the GitHub machine user's oauth token here. If you don't know this, you can find it in the AWS Secrets Manager secret that you provided in the [`reference-architecture-form.yml`](https://github.com/gruntwork-io/terraform-aws-service-catalog/tree/master/examples/for-production/infrastructure-live/reference-architecture-form.yml).
- `SLACK_WEBHOOK_URL`: This is the value from the Slack Workflow step above.

Expand Down
Loading