Commit Graph

12 Commits

Author SHA1 Message Date
Eric Dobbs 1cf4d8e6ae moved example k8s deployment .yaml to deploy.wiki.do 2021-01-18 00:10:15 -07:00
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
Eric Dobbs aa23f2f9b3 version 1.0.6 2020-08-29 12:44:03 -06:00
Eric Dobbs f67be8dbb8 Install and unseal vault for experiments with secrets management 2020-01-20 00:19:05 -07:00
Eric Dobbs c4bd44f3f4 Provide example farm configuration for friends security plugin 2020-01-19 15:22:03 -07:00
Eric Dobbs 9d83a6768d Ensure localhost is included in k8s cluster TLS cert
See explanation here:
https://github.com/rancher/k3d/issues/143\#issuecomment-552634281

--server-arg passes the --tls-san=... argument through to k3s server.
Docs for that arg are here:
https://rancher.com/docs/k3s/latest/en/installation/install-options/
2020-01-19 15:13:24 -07:00
Eric Dobbs 45dbb893d1 Simplest wiki command that could possibly work
Now that we've figured out how to mount local directories into the k8s
cluster, we have moved all the configuration into ~/.wiki-k8s/config.json
2020-01-19 15:11:12 -07:00
Eric Dobbs eaa86fd867 Simplify persistence configuration & expose macos folders
We now map ~/.wiki-k8s in MacOS into the .wiki folder inside the
container and similarly with MacOS ~/workspace/fedwiki

First, when we create the k3d cluster, we include directives that are
passed through to docker to mount the MacOS directories into the
kubernetes host.

Second, we use hostPath volumes in the kubernetes deployment config.

These will work great for the primary use case of a local wiki.
Deployments to remote kubernetes clusters will want to do this with
the PersistentVolumeClaim that was removed with this change.

One luxury of using hostPath and the legacy_security is that we no
longer require an init container.
2020-01-12 19:29:41 -07:00
Eric Dobbs 37d6785ee2 Change the insecure wiki to a farm for *.simple.localtest.me 2020-01-12 16:55:14 -07:00
Eric Dobbs 27a80c7b25 Start an insecure wiki under simple.localtest.me
Bootstrapping a simpler development environment
2020-01-12 15:30:42 -07:00
Eric Dobbs 5c326ed1ae Add help to remember how to start all the things 2019-12-25 13:08:08 -07:00
Eric Dobbs fb2aa0f67c Add example kubernetes deployment
This configuration partially works with kubernetes 1.15 running
locally using Docker Desktop for Mac and kind (k8s in docker).

For completeness, we installed kind & created a cluster like this:

    cd /tmp/ && GO111MODULE="on" go get sigs.k8s.io/kind
    kind create cluster --name workshop
    export KUBECONFIG="$(kind get kubeconfig-path --name="workshop")"

We describe finicky details discovered while creating wiki.yaml.

The persistent volume when mounted in wiki-config begins its life with
all files owned by root. This prevented our node user inside the
container from creating the config files inside .wiki. It took a while
to discover the correct securityContext for the wiki-config container.

We tested this configuration as follows:

    alias k=kubectl
    k apply -f wiki.yaml
    export POD=$(k get pod -lapp=wiki -o jsonpath='{.items[*].metadata.name}')
    export PASSWORD=$(k exec svc/wiki-service -- jq -r .admin .wiki/config.json)
    k port-forward svc/wiki-service 3000:80 > /dev/null &
    pbcopy <<<"$PASSWORD"
    open http://localhost:3000
    # click lock icon in the browser to login to wiki page
    # paste the password from the clipboard
    # click wiki to toggle editing on
    # make a few edits to the wiki page

Something about authentication is NOT working for anything except
localhost. When we try the same tests using http://localtest.me or
configuring foo.local in the MacOS /etc/hosts file, for some reason
the cookies don't seem to be passed through to the server. All edits
on other pages end up in browser localStorage.

Nevertheless, I'll commit what I have for now.
2019-11-22 12:24:34 -07:00