Eric Dobbs ad1c5af0d8 change domain names in kubernetes example to use localhost
Now that both chrome and firefox understand *.localhost domains we can
remove our suggestion of using localtest.me subdomains.

Also update the brew install instructions now that brew cask install
is deprecated in favor of brew install --cask

My favorite improvement is finding a way to use yaml block labels and
references to reduce the duplication in the ingress config.

I suppose the last important thing to mention about this changes is
that k3d seems to have switched from traefik to nginx for its ingress
loadbalancer. We no longer need the traefik annotation.
2021-01-10 16:05:24 -07:00
..

Wiki Farm in Kubernetes

There are easier ways to get started with federated wiki. Here we are using wiki to drive some learning about kubernetes.

We're using MacOS, Docker Desktop, and k3d

brew install --cask docker
brew install k3d

mkdir -p ~/.wiki-k8s ~/workspace/fedwiki
k3d create \
  --server-arg --tls-san="127.0.0.1" \
  --publish 80:80 \
  -v "$HOME/.wiki-k8s:/macos/.wiki-k8s" \
  -v "$HOME/workspace/fedwiki:/macos/fedwiki" \
  --name wiki

example ~/.wiki-k8s/config.json

{
  "admin": "any memorable password",
  "autoseed": true,
  "farm": true,
  "cookieSecret": "any random string",
  "secure_cookie": false,
  "security_type": "friends",
  "wikiDomains": {
    "localhost": {
      "id": "/home/node/.wiki/localhost.owner.json"
    },
    "example.com": {
      "id": "/home/node/.wiki/example.com.owner.json"
    }
  }
}

example ~/.wiki-k8s/localhost.owner.json

.friend.secret must match the .admin field from config.json

{
  "name": "The Owner",
  "friend": {
    "secret": "any memorable password"
  }
}

Deploy Wiki

kubectl apply -f wiki.yaml

Play with the wiki

open http://wiki.localhost