Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: (IAC-1244) Add Detailed Dependencies Documentation #106

Merged
merged 3 commits into from
Feb 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,12 +98,7 @@ This project supports the following options for running the scripts in this repo

#### Script Requirements

The following software is required in order to run the SAS Viya IaC tools here on your local system:

- [Terraform](https://www.terraform.io/downloads) - v1.6.6
- [Ansible](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) - v2.16.1
- [Docker](https://docs.docker.com/engine/install/) - v20.10.17
- [Helm](https://helm.sh/docs/intro/install/) - v3.13.2
View the [Dependencies Documentation](./docs/user/Dependencies.md) to see the required software that needs to installed in order to run the SAS Viya IaC tools here on your local system

#### Docker Requirements

Expand Down
68 changes: 68 additions & 0 deletions docs/user/Dependencies.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Dependency Versions

The following table details our dependencies and versions (~ indicates multiple possible sources)

For dependency installation instructions and sources, links have been provided in the table below:

| SOURCE | NAME | VERSION |
|----------------|------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------|
| ~ | [python](https://www.python.org/downloads/) | >=3.10 |
| ~ | [pip](https://packaging.python.org/en/latest/guides/installing-using-linux-tools/#installing-pip-setuptools-wheel-with-linux-package-managers) | >=22.0 |
| ~ | [terraform](https://www.terraform.io/downloads) | >=1.4.5 |
| ~ | [docker](https://docs.docker.com/engine/install/) | >=20.10.17 |
| ~ | [helm](https://helm.sh/docs/intro/install/) | >=3 |
| ~ | [kubectl](https://kubernetes.io/docs/tasks/tools/) | 1.26 - 1.28 |
| ~ | [git](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) | any |
| ~ | [jq](https://jqlang.github.io/jq/download/) | >=1.6 |
| pip | ansible | 9.1.0 (ansible core v2.16.1) |
| pip | openshift | 0.13.1 |
| pip | kubernetes | 26.1.0 |
| pip | dnspython | 2.3.0 |
| pip | jmespath | 1.0.1 |
| ansible-galaxy | community.general | 5.6.0 |
| ansible-galaxy | community.postgresql | 2.2.0 |
| ansible-galaxy | kubernetes.core | 2.3.2 |
| ansible-galaxy | ansible.posix | 1.4.0 |
| ansible-galaxy | ansible.utils | 2.6.1 |

Python dependencies can be installed via `pip` using the `requirements.txt` provided in this project

```bash
pip install -r ./requirements.txt
```

Ansible dependencies can be installed via `ansible-galaxy` using the `requirements.yaml` provided in this project.

```bash
ansible-galaxy install -r ./requirements.yaml
```

Required project dependencies are generally pinned to known working or stable versions to ensure users have a smooth initial experience. In some cases it may be required to change the default version of a dependency. In such cases users are welcome to experiment with alternate versions, however compatibility may not be guaranteed.

# Docker

If you are standing up your infrastructure via a Docker image created from the [Dockerfile](../../Dockerfile) overriding a dependency version can be accomplished by supplying one or more docker build arguments:

| ARG | NOTE |
|-------------------|-----------------------------------|
| HELM_VERSION | the version of helm to install |
| KUBECTL_VERSION | the version of kubectl to install |
| TERRAFORM_VERSION | the version terraform to install |

Example of using build arguments to control specific versions of dependencies installed within the Docker image :
```bash
# Override kubectl version
docker build \
--build-arg KUBECTL_VERSION=1.27.9 \
-t viya4-iac-k8s .
```

# Install Script

If deploying via the [installation script](./ScriptUsage.md) you can modify the dependency requirements files for python and ansible respectively:

| FILE | FOR |
|-------------------|---------------------------------|
| requirements.txt | dependencies for python |
| requirements.yaml | dependencies for ansible-galaxy |

Loading