ctrliq / ascender-install

Apache License 2.0
25 stars 10 forks source link

The Ascender installer is a script that makes for relatively easy install of Ascender Automation Platform on Kubernetes platforms of multiple flavors. The installer is being expanded to new Kubernetes platforms as users/contributors allow, and if you have specific needs for a platform not yet supported, please submit an issue to this Github repository.

While Ascender installs on Kubernetes, you don't need to be a guru in Kubernetes, or even have a Kubernetes cluster up and working! For each specified Kubernetes platform, the installer will set up a Kubernetes cluster on your behalf, and set up the cluster access file at its default location of ~/.kube/config. Windows and Network admins rejoice!

Table of Contents

General Prerequisites

Optional Components

Offline Installation

For certain Kubernetes platforms (such as k3s, kubeadm, rke2), the Ascender installer supports installation for clusters that do not have outside internet access. In these cases, you can either use:

A bundled AWX operator is also included for the purposes of offline install.

For more detailed instructions, see the section on the corresponding Kubernetes platform.

Configuration File and Inventory

There is a default configuration file that will hold all of the options required to set up your installation properly. While this file is comprehensive, you can find more platform-specific config file templates in the respective Kubernetes platform install instructions directory.

Additionally, there is an executable script in this directory called config_vars.sh that will generate a config file based on user input, named custom.config.yml. custon.config.yml is listed in .gitignore, and as such is the suggested/preferred method of setting your install variables.

The Ascender Install script also uses the Ansible inventory file, inventory, located in the top level directory of this repository.

For both the config file and inventory files, you will find templates for each Kubernetes distribution in its corresponding directory in docs. You can use these templates as guides for how custom.config.ml and inventory should look for your particular install.

The Uninstall section of this tutorial references two of the variables that need to be set:

All of the variables and flags in these files have their description/proper usage directly present in the comments.

Installation Instructions by Kubernetes Platform

Adding Components/Configuration Changes

Consider a situation where you have already installed Ascender, and wish to change one or more of the attributes of how it is deployed. Some of these changes may include:

This can be accomplished by either running config_vars.sh again, or editing an existing custom.config.yml, in each case, changing the desired install variables. You can then rerun setup.sh.`

Upgrading Ascender

Upgrading Ascender is as simple as changing the Ascender container image version/tag that is being used in your deployment, and rerunning the installation script.

Assuming you have an existing custom.config.yml file that contains the variables used to perform your initial install of Ascender, open the file and set the values of these four variables:

After having changed these four variables, re-run the installer script from the top level directory:

sudo < ASCENDER-INSTALL-SOURCE >/setup.sh

Uninstall

After running setup.sh, tmp_dir will contain timestamped kubernetes manifests for:

Remove the timestamp from the filename and then run the following commands from within `tmp_dir``:

Running the Ascender deletion will remove all related deployments and statefulsets, however, persistent volumes and secrets will remain. To enforce secrets also getting removed, you can use ascender_garbage_collect_secrets: true in the default.config.yml file.

Reporting Issues

If you're experiencing a problem that you feel is a bug in the installer or have ideas for improving the installer, we encourage you to open a Github issue and share your feedback.