This installation guide will change over time since anya will gradually abstract away all the setup for you.
kubectl create clusterrolebinding add-on-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default
kubectl create clusterrolebinding cluster-admin-binding --clusterrole=cluster-admin --user=[your-user-email-address]
You are getting your user email address at the providers IAM user configurations page. This is not trivial, the command is case sensitive.
Set your current cluster context to the cluster you just created. Save this context as an environment variable under $KUBE_CONTEXT
so that the helmsman-config/setup.toml
file can grab your cluster context from it.
anya uses Helmsman to deploy its components to your Kubernetes cluster. Helmsman utilizes Helm and Helm-diff.
curl -L https://github.com/Praqma/helmsman/releases/download/v1.6.2/helmsman_1.6.2_linux_amd64.tar.gz | tar zx
mv helmsman /usr/local/bin/helmsman # GOPATH
helm plugin install https://github.com/databus23/helm-diff --version master
For the communication with GitHub and to access your code repositories, anya needs to get registered as an authorized application (GitHub App). Please, follow the instructions to create a GitHub App.
SharedSecret
anya.yourBusiness.com
. The full webhook URL would look like this: https://anya.yourBusiness.com/events/github
Set the following permissions:
The anya GitHub App needs to subscribe to some events of your repositories:
Copy the templates-files of helmsman-config/templates
into helmsman-config
.
Remove the substring .template
from the files.
The most important file is anya-values.yaml
; here you are defining your repositories to deploy your applications (projects).
You find a detailed explanation on how to configure your projects here: Configuration Files
make helmsman-plan
to watch for error in your configurationmake helmsman-apply
to deploy anya to your cluster. You can run this command repeatedly.Copy the folder pipeline-config/anya
in all of your repositories that should use anya. There are 2 files:
test.yaml
: Specify the commands to run for the test stage. Note: all the required test scripts need to be present in your container.deploy.yaml
: Turn on Slack notifications, automatic deployments, or automatic deletion of old preview deployments.All options are turned off, if not specified otherwise.