Code Monkey home page Code Monkey logo

gruntwork-io.github.io's Introduction

gruntwork.io website

This is the code for the Gruntwork website.

Gruntwork can help you get your entire infrastructure, defined as code, in about a day. You focus on your product. We'll take care of the Gruntwork.

Docker quick start

The fastest way to launch this site is to use Docker.

  1. git clone this repo
  2. docker compose up
  3. Go to http://localhost:4000 to test
  4. If you are going to be testing the checkout flow, you must login to Aperture at: https://aperture.dogfood-stage.com/.

The default Docker compose configuration supports hot-reloading of your local environment, meaning that as you edit files to change markup, text, images, etc, your local development server will pick up these changes and reload the latest version of the site for you. This makes it quick and convenient to develop on the site locally.

Manual quick start

  1. git clone this repo
  2. Install Jekyll
  3. Just the first time: bundle install
  4. Start Jekyll server: bundle exec jekyll serve --livereload
  5. Go to http://localhost:4000
  6. If you are going to be testing the checkout flow, you must login to Aperture at: https://aperture.dogfood-stage.com/.

Deploying

To deploy the site:

  1. Create a PR with your code changes
  2. After the PR has been approved, merge it into master
  3. Create a new tag, you can do this manually via git or in the subsequent step on the releases page - be sure to increment the version number using semantic versioning
  4. Go to the releases page and create a draft release with the relevant information (use the "Generate Release Notes" button to make your life easier)
  5. Release it
  6. The CI/CD pipeline will deploy it automatically

Technologies

  1. Built with Jekyll. This website is completely static and we use basic HTML or Markdown for everything.
  2. Preview environments are built with Netlify.
  3. Hosted on Amazon S3, with CloudFront as a CDN. Using s3_website to automatically upload static content to S3.
  4. We use Bootstrap and Less.
  5. We're using UptimeRobot, Google Analytics, and HubSpot Traffic Analytics for monitoring and metrics.

Troubleshooting

Disabling the Jekyll Feed gem

The Gruntwork website uses a Ruby Gem called Jekyll Feed which generates a structured RSS feed of "posts" on the site. Unfortunately, in development this can significantly slow down the hot-reloading of the site, forcing you to wait upwards of a minute at a time to see minor text changes locally.

You'll know this is happening when you look at the STDOUT of your docker-compose process and the final count of seconds spent Generating feed for posts is greater than 5:

web_1  |       Regenerating: 1 file(s) changed at 2021-07-21 14:31:08
web_1  |                     _data/website-terms.yml
web_1  |        Jekyll Feed: Generating feed for posts
web_1  |                     ...done in 58.507850014 seconds.

As a temporary workaround, you can open the Gemfile in the root of the project directory and temporarily comment out the line that pulls in the Jekyll Feed dependency:

source 'https://rubygems.org'
gem 'jekyll', '~> 4.1'
gem 's3_website', '3.3.0'
group :jekyll_plugins do
  gem 'jekyll-redirect-from', '0.16.0'
  gem 'jekyll-sitemap', '1.4.0'
  gem 'jekyll-paginate', '1.1.0'
  gem 'therubyracer', '0.12.3'
  gem 'less', '2.6.0'
  gem 'jekyll-asciidoc'
  gem 'jekyll-toc'
  gem 'nokogiri', '1.11.0.rc4' # Addressing security issue in earlier versions of this library
#  gem 'jekyll-feed'
end

Important - Be sure that you don't end up committing this change because we do want the Jekyll Feed plugin to run for production!

I made changes locally but they're not being reflected in my hot-reloaded development environment

This can happen especially if you add or remove files from the website's working directory. When this occurs, terminate your docker-compose process and restart it to see your changes reflected.

License

See LICENSE.txt.

gruntwork-io.github.io's People

Contributors

alyssaknoll avatar arkuvonsymfon avatar bethadele avatar bmckissen avatar brikis98 avatar bwhaley avatar dependabot[bot] avatar drmzio avatar eak12913 avatar ebeneliason avatar etiene avatar gitsstewart avatar iangrunt avatar ina-stoyanova avatar infraredgirl avatar josh-padnick avatar joshmountain avatar kbariotis avatar klijakub avatar lubiarz-oliwia avatar mcalhoun avatar oredavids avatar rhoboat avatar robmorgan avatar sahilakos avatar tonerdo avatar yhakbar avatar yorinasub17 avatar zachgoldberg avatar zackproser avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gruntwork-io.github.io's Issues

We can't claim we have a "HIPAA compliant" reference architecture — Use "HIPAA eligible" instead

As reported in this Slack message:

We should call the HIPAA Ref Arch, "HIPAA eligible", as HIPAA compliance can only be conferred by an auditor.

As such we should do a scan of the language we're using to make sure we aren't overstating it. Since there's nothing contractual about the waitlist I don't think there's any potential legal ramifications yet, but it would be best to abide by the rules. We can probably talk about user's needs/goals in terms of compliance, just not our infrastructure itself, e.g. "Reach HIPAA compliance faster by building atop our HIPAA eligible reference architecture…"

Technical details nav links don't work for HIPAA page

On the HIPAA page, if you go to "Technical Details" in the nav, there are two problems:

  1. The text "Reference Infrastructure" should actually be "Reference Architecture."
  2. When you click the "Reference Infrastructure" link, you are taken to the wrong tab of the technical details page. The URL is https://gruntwork.io/hipaa-compliance-on-aws/technical-details#reference-infra, which looks right, but the tab that's visible is "Reference Applications" instead of "Reference Architecture."

HIPAA technical details page: code viewer nits

As @ebeneliason reported:
1. The blue border around the tabs isn't showing up for some reason. But, I see the CSS for it…
2. The gray background on the code block that's shorter than the code box should ideally extend to fill the box. Maybe the background color is on the wrong element.

HIPAA landing page: Step 2 changes

In Step 2, “Bootstrap your app with our HIPAA-compliant templates,” the text should read “Build on top of application templates for a variety of languages and frameworks (e.g., Node.js/Express, Java/Spring, Ruby/Rails) that show you how to build HIPAA compliant and cloud-native apps, including how to do service discovery, secrets management, schema migrations, encryption, server hardening, and much more (see full list of features here).” and this link is the one that should go to the bootstrap your app page. (/bootstrap-your-app)

FAQ on HIPAA pricing page issues

The FAQ on the HIPAA pricing page has a question about estimated AWS bill which references "Gruntwork Lite" and "Gruntwork Pro" (twice). These are not subscription options for HIPAA, so this doesn't make sense. Perhaps just remove this question entirely?

HIPAA page may want to mention testing / enforcement / self-auditing

Per some feedback from customers, something our HIPAA landing page should mention is how we test for compliance, enforce it on an ongoing basis, and "prove" compliance through self-auditing code. In particular, we may want to call out:

  1. Terratest to test basic functionality.
  2. Some off-the-shelf compliance-checking solution we use to give you a green check or red "X."
  3. OPA policies to enforce compliance on an on-going basis. This seems especially popular these days.

HIPAA landing page: Preface on features available now vs later

We used to have a preface before going into the table of features available now / later. I think that preface is important. Without it, it’s not clear what we’re looking at. We need to convey in a header + sentence or two that we already have most of the HIPAA stuff there, that you’re starting on a platform that’s already CIS compliant and trusted by thousands of devs, and that we’re actively working on the rest of the HIPAA requirements.

Quotation issue in docs

terragrunt aws-provider-patch \
  --terragrunt-override-attr region="eu-west-1" \
  --terragrunt-override-attr assume_role.role_arn=""

needs to be:

terragrunt aws-provider-patch \
  --terragrunt-override-attr 'region="eu-west-1"' \
  --terragrunt-override-attr 'assume_role.role_arn=""'

in 2019-08-12-how-to-configure-production-grade-aws-account-structure.adoc

Consider adding HIPAA partners

From this slack message:

I don’t really want to advertise that we are partnered with someone we’re not. But perhaps we could do a little research on the partners, figure out what we would do to have a first-class integration with them, and add that to our features? For example, for Vanta, I believe you install an agent in AWS somehow that scans all your traffic for compliance. Maybe we pre-install the agent for you.

Replace logos below hero text on Patcher landing page

Right now, the landing page has AWS, K8S, and Terraform logos, which don't make much sense for a Patcher landing page. Replace these with something else. Perhaps the "supported tech" logos, at much smaller size each, should go in this section?

Add a comparison table to Patcher landing page

Add a comparison table. The columns should be competitors and then Patcher:

  • Do nothing,
  • DependaBot,
  • RenvoateBot,
  • Snyk,
  • Patcher.

Rows will be things like:

  • works with all version control systems (DependaBot is GitHub only),
  • supports version number bumps (yes for all of them),
  • can patch breaking changing (yes only for Patcher),
  • auto discovers dependencies (yes for all of them),
  • can manually identify dependencies (yes only for RenovateBot and Patcher),
  • can build dependency graph (yes only for Patcher? @robmorgan has more thoughts on this),
  • security patching (yes for all),
  • internal dependency management (yes only for Patcher?).

Compliance in progress text to update on HIPAA landing pgae

On the HIPAA landing page there is a "Compliance in Progress" section. It's important to make it crystal clear what the offering is, and what is or isn't available, so here's some updated text to consider:

  1. Replace "Compliance in Progress" with "Gruntwork Early Access Program."
  2. Replace the text below that with: "The Gruntwork Early Access Program (EAP) is the fastest way for you to achieve HIPAA compliance on AWS. Over the last 5 years, Gruntwork has helped hundreds of companies and thousands of developers go to prod on AWS, including achieving CIS Compliance, and we are now actively developing our HIPAA compliance on top of that foundation. If you join the EAP, we'll deploy a CIS Compliant pre-prod environment for you on day 1 and a HIPAA-compliant prod environment for you as soon as it's available, plus a number of other exclusive early-access benefits, including audit assistance and prioritized bug fixes. See the table below for all the HIPAA requirements you'll meet with Gruntwork today, out of the box, as well as those that are currently in progress."

Create separate "How it Works" page for Patcher

Go into a bit more detail of how maintainers create Patches and how Patcher executes those. See show, don't tell here.

One thing to consider for this page is two views: an "end user" view and a "maintainer" view. Each view (tab?) shows the experience for that party. E.g., The End user installs a GitHub app, gets PRs with updates, reviews the code, sees tests run, and merges. The maintainer updates their code, creates a patch, tests the patch with a patcher CLI, and then creates a new release in GitHub.

Update: I flushed this idea out more below.

HIPAA redirects

Redirect /hipaa-cloud-compliance/ to /hipaa-compliance-on-aws.

Checkout not rendering correctly on mobile

  1. Under "Deposit Due Today" we render "$500" over the "Checkout" button, whereas the $500 should be on the same line as "Deposit Due Today":

  2. The AWS, GCP, and Enterprise boxes are too wide for the viewport, and it's not obvious that they're selectable.

image

  1. Grunty floats up in such a way that he blocks the content

image

Issues 1 and 3 are important. For issue 2, perhaps it's enough to just shrink the box width.

Update production deployment guides

We want to revamp the walkthrough to describe the new service catalog way to deploy your infrastructure.

  • Deploy a production-grade AWS account structure using Gruntwork AWS Landing Zone PR: #439
  • Deploy a production-grade VPC on AWS
  • Deploy a production-grade Kubernetes cluster on AWS
Resolved discussion

Keep the old docs? [No]

Is there any need to keep the old guides around for posterity? So rather than making changes here, is it better to write a whole new guide that's largely based on this? /cc @yorinasub17 @brikis98 @bwhaley @zackproser I'm leaning toward not keeping the old guides around as they are, but would like to hear alternative arguments.

Grouping the walkthrough docs [No change]

Once published/updated, I was thinking we could group all the guides together under a "Using the Service Catalog" category of tutorials, and publish announcements (blog posts) as they come out.

  • Deploy a production grade AWS account structure using Gruntwork AWS Landing Zone
  • VPC
  • Kubernetes

Currently these are all under different headings:
image

Is it better to group these walkthroughs differently? [No]

Should we replace the Grunty cubes on the Patcher landing page?

The Grunty cubes to the left of the hero section of the Patcher landing page don't add much value. Perhaps replace with a .gif showing the Patcher workflow (maintainer releases new version with patch, end user gets a PR with updates)? Or tabs with a few screenshots?

Update to checkout process fields

The current checkout process asks for minimal identifying information from the customer:

image

The issue here is that we need to be crystal clear on the corporate entity with whom we have a contract. For that reason, we need to add more identifying information. In particular, this screen should make the following changes:

  1. "Company name" should be updated to say "Company legal entity name" (and should be required)
  2. We should add "Company legal address" (and should be required)

Note that you can make these changes by logging into our ChargeBee account.

@oredavids Can you prioritize this above all current items on your plate?

Errors in "How to configure a production-grade AWS account structure" guide

Please see PR #232 for more details.

I found a couple of bugs/errors on the "How to configure a production-grade AWS account structure" guide.
The main errors are:

A duplicate variable block added in the iam-groups and cross-account-iam-roles sections.

An error when applying any of the three wrapper modules using terragrunt Inappropriate value for attribute "allowed_account_ids": set of string required

Error traced to 'allowed_account_ids = var.aws_account_id' . This should be allowed_account_ids = [var.aws_account_id]

Pricing table doesn't work well on mobile

On mobile the table doesn't fit and create an awkward horizontal scrolling situation. I'm not sure there's a cheap solution here — we could try to add the class so it's at least contained within the page boundary, but that doesn't make it more legible; just less broken…
image

HIPAA reference architecture supported infrastructure features table is confusing

The supported infrastructure features table on the HIPAA reference architecture page is a confusing once you've seen the similar, but not identical table on the home page. This is my fault, as I think I suggested having a table on the reference architecture page, but seeing it now, I realize that:

  1. Showing other Gruntwork subscription types here doesn't make sense, as this landing page offers no other info about those subscriptions at all.
  2. The table on the homage page is more complete, and by listing the specific standard requirements, seems more official.

So, as a simple fix, could we just replace the table on the Ref Arch page with the table from the home page?

HIPAA pricing page FAQ should explain more of how the early access program works

The FAQ on the pricing page has a "How does the private beta work?" question, but it looks like one copy/pasted from the Heroku page. It should be replaced with a "How does early access work" question that focuses more on:

  1. What you get right away: i.e., all the CIS requirements.
  2. What we're working on now: see this table for details.
  3. What will happen when we're done.

Right below that, we may also want to add a "What are the benefits of early access?" question that talks about:

  1. Fastest way to get HIPAA, as you get CIS as your starting point.
  2. Discounted pricing.
  3. Extra support.
  4. Audit assistance.

HIPAA landing page: Step 5 screenshot changes

In Step 5, “Stay up to date automatically via Terraform pull requests,” the current screenshot is a bit hard to read. Perhaps instead, we show a screenshot of versioned releases from the terraform-aws-eks repo?. Or a screenshot from a RenovateBot PR showing the diff page with an upgrade from version X to Y?

HIPAA pricing page: increase customer comfort

Consider adding to the pricing page a few things to make customers more comfortable, including “need help deciding,” the “no risk,” “no lock-in,” “no gruntwork” badges, and an FAQ. See the bottom of the Heroku pricing page for reference.

HIPAA bootstrap your app: left align check boxes

NIT: left align the check-boxes, as in the home page footer.

Currently it seems we have identical markup and styling applied to this section as in the home page and pricing page where it's working correctly, but perhaps because of the way we're loading it through a template the final markup is not structured properly to have the content centered while the check mark icons are all left-aligned.

Move section for `infrastructure-live` repository to the production-grade-aws-account guide

Currently, we've got on the CIS compliance benchmark guide the following snippet:

=== Prepare your `infrastructure-live` repository

We've previously described exactly how to prepare your repository in the
link:https://gruntwork.io/guides/foundations/how-to-configure-production-grade-aws-account-structure/#prepare-your-infrastructure-live-repository[Gruntwork Landing Zone guide].
Follow the steps in that section to get your `infrastructure-live` repository set up for the next steps.

Action: This could/should be moved to our production-aws-grade-design guide

Which VCS integrations should we support first with the launch?

Consider if we should support 1-2 other VCS integrations beyond GitHub out of the gate to better support enterprises. Perhaps GitHub Enterprise is easy to support if you already have a GitHub App? Probably most popular VCS for enterprises is BitBucket. So perhaps GitHub + BitBucket are the launch VCS tools?

  • Ask customers if necessary

HIPAA pricing page: Not clear which benefits are "exclusive"

It isn’t clear which benefits are “exclusive” to the early access customers. We may need a table that shows “early access” in one column and “after launch” in another. Then the early access column can highlight: (a) the lower pricing, (b) perhaps no up-front fee, (c) early access to the code, (d) higher support tier from Gruntwork, (e) audit assistance.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.