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.
anya.yourBusiness.com. The full webhook URL would look like this:
Set the following permissions:
The anya GitHub App needs to subscribe to some events of your repositories:
Copy the templates-files of
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-planto watch for error in your configuration
make helmsman-applyto 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.