From 30bc08143e520fdbf5f9468f563aed651f471c7b Mon Sep 17 00:00:00 2001 From: Seth Vargo Date: Wed, 2 Aug 2017 15:05:45 -0400 Subject: [PATCH] Remove people from community section (#3352) * Remove people from community section This is going to be replaced with dynamic content from our CMS in the future, but we agreed to remove it in the interim. * Update deploy process --- website/packer.json | 11 +-- website/redirects.txt | 40 +++++++++ website/scripts/deploy.sh | 81 ++++++++++++++++- website/source/community.html.erb | 144 ++---------------------------- 4 files changed, 131 insertions(+), 145 deletions(-) create mode 100644 website/redirects.txt diff --git a/website/packer.json b/website/packer.json index 72b288ed0..fd2618f17 100644 --- a/website/packer.json +++ b/website/packer.json @@ -10,15 +10,12 @@ "type": "docker", "image": "hashicorp/middleman-hashicorp:0.3.28", "discard": "true", - "run_command": ["-d", "-i", "-t", "{{ .Image }}", "/bin/sh"] + "volumes": { + "{{ pwd }}": "/website" + } } ], "provisioners": [ - { - "type": "file", - "source": ".", - "destination": "/website" - }, { "type": "shell", "environment_vars": [ @@ -30,7 +27,7 @@ "inline": [ "bundle check || bundle install", "bundle exec middleman build", - "/bin/sh ./scripts/deploy.sh" + "/bin/bash ./scripts/deploy.sh" ] } ] diff --git a/website/redirects.txt b/website/redirects.txt new file mode 100644 index 000000000..c9fcf3672 --- /dev/null +++ b/website/redirects.txt @@ -0,0 +1,40 @@ +# +# REDIRECTS FILE +# +# This is a sample redirect file. Redirects allow individual projects to add +# their own redirect rules in a declarative manner using Fastly edge +# dictionaries. +# +# FORMAT +# +# Redirects are in the format. There must be at least one space between the +# original path and the new path, and there must be exactly two entries per +# line. +# +# /original-path /new-path +# +# GLOB MATCHING +# +# Because of the way lookup tables work, there is no support for glob matching. +# Fastly does not provide a way to iterate through the lookup table, so it is +# not possible to run through the table and find anything that matches. As such +# URLs must match directly. +# +# More complex redirects are possible, but must be added directly to the +# configuration. Please contact the release engineering team for assistance. +# +# DELETING +# +# Deleting items is not supported at this time. To delete an item, contact the +# release engineering team and they will delete the dictionary item. +# +# MISC +# +# - Blank lines are ignored +# - Comments are hash-style +# - URLs are limited to 256 characters +# - Items are case-sensitive (please use all lowercase) +# + +/api.html /api/index.html +/docs/agent/http.html /api/index.html diff --git a/website/scripts/deploy.sh b/website/scripts/deploy.sh index c09082de4..a5ca43880 100755 --- a/website/scripts/deploy.sh +++ b/website/scripts/deploy.sh @@ -1,9 +1,10 @@ -#!/bin/sh +#!/usr/bin/env bash set -e PROJECT="consul" PROJECT_URL="www.consul.io" FASTLY_SERVICE_ID="7GrxRJP3PVBuqQbyxYQ0MV" +FASTLY_DICTIONARY_ID="7d0yAgSHAQ2efWKeUC3kqW" # Ensure the proper AWS environment variables are set if [ -z "$AWS_ACCESS_KEY_ID" ]; then @@ -93,6 +94,75 @@ if [ -z "$NO_UPLOAD" ]; then modify "s3://hc-sites/$PROJECT/latest/" fi +# Add redirects if they exist +if [ -z "$NO_REDIRECTS" ] || [ ! test -f "./redirects.txt" ]; then + echo "Adding redirects..." + fields=() + while read -r line; do + [[ "$line" =~ ^#.* ]] && continue + [[ -z "$line" ]] && continue + + # Read fields + IFS=" " read -ra parts <<<"$line" + fields+=("${parts[@]}") + done < "./redirects.txt" + + # Check we have pairs + if [ $((${#fields[@]} % 2)) -ne 0 ]; then + echo "Bad redirects (not an even number)!" + exit 1 + fi + + # Check we don't have more than 1000 entries (yes, it says 2000 below, but that + # is because we've split into multiple lines). + if [ "${#fields}" -gt 2000 ]; then + echo "More than 1000 entries!" + exit 1 + fi + + # Validations + for field in "${fields[@]}"; do + if [ "${#field}" -gt 256 ]; then + echo "'$field' is > 256 characters!" + exit 1 + fi + + if [ "${field:0:1}" != "/" ]; then + echo "'$field' does not start with /!" + exit 1 + fi + done + + # Build the payload for single-request updates. + jq_args=() + jq_query="." + for (( i=0; i<${#fields[@]}; i+=2 )); do + original="${fields[i]}" + redirect="${fields[i+1]}" + echo "Redirecting ${original} -> ${redirect}" + jq_args+=(--arg "key$((i/2))" "${original}") + jq_args+=(--arg "value$((i/2))" "${redirect}") + jq_query+="| .items |= (. + [{op: \"upsert\", item_key: \$key$((i/2)), item_value: \$value$((i/2))}])" + done + + # Do not post empty items (the API gets sad) + if [ "${#jq_args[@]}" -ne 0 ]; then + json="$(jq "${jq_args[@]}" "${jq_query}" <<<'{"items": []}')" + + # Post the JSON body + curl \ + --fail \ + --silent \ + --output /dev/null \ + --request "PATCH" \ + --header "Fastly-Key: $FASTLY_API_KEY" \ + --header "Content-type: application/json" \ + --header "Accept: application/json" \ + --data "$json"\ + "https://api.fastly.com/service/$FASTLY_SERVICE_ID/dictionary/$FASTLY_DICTIONARY_ID/items" + fi +fi + # Perform a purge of the surrogate key. if [ -z "$NO_PURGE" ]; then echo "Purging Fastly cache..." @@ -118,8 +188,13 @@ if [ -z "$NO_WARM" ]; then echo "wget --recursive --delete-after https://$PROJECT_URL/" echo "" wget \ - --recursive \ --delete-after \ - --quiet \ + --level inf \ + --no-directories \ + --no-host-directories \ + --no-verbose \ + --page-requisites \ + --recursive \ + --spider \ "https://$PROJECT_URL/" fi diff --git a/website/source/community.html.erb b/website/source/community.html.erb index ffadd6387..1d4602fef 100644 --- a/website/source/community.html.erb +++ b/website/source/community.html.erb @@ -2,28 +2,28 @@ layout: "inner" page_title: "Community" description: |- - Consul is a new project with a growing community. Despite this, there are active, dedicated users willing to help you through various mediums. + Consul is a new project with a growing community. Despite this, there are + active, dedicated users willing to help you through various mediums. ---

Community

-Consul is a new project with a growing community. Despite this, -there are active, dedicated users willing to help you through various -mediums. + Consul is a new project with a growing community. Despite this, there are + active, dedicated users willing to help you through various mediums.

Chat: Consul on Gitter

-Mailing list: -Consul Google Group + Mailing list: + Consul Google Group

-Bug Tracker: -Issue tracker + Bug Tracker: + Issue tracker on GitHub. Please only use this for reporting bugs. Do not ask -for general help here. Use IRC or the mailing list for that. + for general help here. Use IRC or the mailing list for that.

Community Tools: @@ -36,129 +36,3 @@ for general help here. Use IRC or the mailing list for that. Paid HashiCorp training courses are also available in a city near you. Private training courses are also available.

- -

People

-

-The following people are some of the faces behind Consul. They each -contribute to Consul in some core way. Over time, faces may appear and -disappear from this list as contributors come and go. -

-
-
- -
-

Armon Dadgar (@armon)

-

- Armon Dadgar is the creator of Consul. He researched and developed - most of the internals of how Consul works, including the - gossip layer, leader election, etc. Armon is also the creator of - Serf, - Statsite, and - Bloomd. -

-
- -
- -
-

Mitchell Hashimoto (@mitchellh)

-

- Mitchell Hashimoto is a co-creator of Consul. He primarily took - a management role in the creation of Consul, guiding product - and user experience decisions on top of Armon's technical decisions. - Mitchell Hashimoto is also the creator of - Vagrant, - Packer, and - Serf. -

-
-
- -
- -
-

Jack Pearkes (@pearkes)

-

- Jack Pearkes created and maintains the Consul web UI. - He is also a core committer to - Packer and maintains - many successful - open source projects - while also being an employee of - HashiCorp. -

-
-
- -
- -
-

Ryan Uber (@ryanuber)

-

- Ryan Uber is a core contributor to Consul where he works on all - facets of Consul. He is also a core committer to - Serf, - Nomad, and - the Consul tools ecosystem, all while being an employee at - HashiCorp. -

-
-
- -
- -
-

James Phillips (@slackpad)

-

- James Phillips is a core contributor to Consul where he works on all - facets of Consul, including network tomography and prepared - queries. He is also a core committer to - Serf and - the Consul tools ecosystem, all while being an employee at - HashiCorp. -

-
-
- -
- -
-

Seth Vargo (@sethvargo)

-

- Seth Vargo is a contributor to Consul, but his main focus is the - Consul tools ecosystem. - He is also a core committer to - Vagrant, - Packer, and - Vault, and many more - open source projects, all while being an employee at - HashiCorp. -

-
-
- -
- -
-

William Tisäter (@tiwilliam)

-

William Tisäter is a Consul core committer. He is also the maintainer of - pygeoip and builds things daily at - Tictail.

-
-
- -
- -
-

Ryan Breen (@ryanbreen)

-

- Ryan Breen is a Consul committer. He is also the maintainer of - git2consul, - fsconsul, and - gosecret. - Ryan works at Cimpress - building infrastructure for mass customization of consumer goods. -

-
-
-