Source code for the linkerd.io website.
General development instructions
for Mac users:
brew install hugo
for Linux users:
download the extended release of Hugo from GitHub, then install the following dependencies:
curl https://htmltest.wjdp.uk | bash npm install -g markdownlint-cli
make sure they are added to
From the root
/websitedirectory, build site and run Hugo in development mode:
hugo serve -s linkerd.io
Also in the root directory, run checks on any changes you make:
make check lint
You should see the site on localhost:1313, and it should reload automatically upon file write.
To change the way the site looks
directory. These files are served as-is. Some of the site's CSS, however, is
generated from Sass sources in
Hugo. When you change those files, Hugo updates the CSS for the site
automatically and refreshes the page.
The files in layouts/ are the HTML for the site (including layout/index.html for the front page.) These files are Go templates with a couple extra Hugo goodies thrown in. See the hugo documentation for details.
If you're running
hugo server (see above) then updates should be reflected in
Install scripts for linkerd as well as demo applications such as emojivoto.
Location for existing installations to check and see if they're up to date or not.
To build and serve against the latest Linkerd2 release:
API docs for linkerd1.
Note: this does not deploy by default as part of
make publish. It needs to be
Updating docs from Linkerd
See slate documentation
./build will grab whatever's on
master from slate-linkerd and add it to the public dir.
Creating a new release
From the linkerd.io directory, run:
./release-next-version <new version>
./release-next-version <release-tag> <new version>in slate-linkerd
Then check locally
Finally push to production
Make sure your gcloud tooling is up to date:
gcloud components update gcloud auth login
Do a dry run and make sure everything works:
make publish DRY_RUN=true
Update the website:
This does not update api.linkerd.io, see the section for that specifically to update it.
There is no caching in front of run.linkerd.io and versioncheck.linkerd.io. You should see updates there immediately.
There is caching for non-html pages in front of linkerd.io. If you're updating a non-html page for linkerd.io, it might be worth flushing the cache (cloudflare) and waiting awhile.
If you have to create a new bucket
You probably won't have to do this, but if you do, don't forget to do this stuff too to set up the bucket for public serving:
gsutil defacl ch -u AllUsers:R gs://bucketname gsutil web set -m index.html -e 404.html gs://bucketname
Verifying cache updates
Turn off all caching on all files:
gsutil -m setmeta -r -h "Cache-Control: no-cache, no-store, must-revalidate" gs://linkerd.io/
Turn caching back on:
gsutil -m setmeta -r -h "Cache-Control:" gs://linkerd.io/
Enable access logs (should only need to be run once)
gsutil logging set on -b gs://linkerd2-access-logs -o AccessLog gs://linkerd.io
Get access logs
# note: this will download ALL logs. probably not what you want. gsutil -m rsync gs://linkerd2-access-logs logs/
Set CORS policy (should only need to be run once)
gsutil cors set versioncheck.linkerd.io.cors.json gs://versioncheck.linkerd.io