Skip to content

Commit

Permalink
docs: (IAC-1244) Add Detailed Dependencies Documentation (#106)
Browse files Browse the repository at this point in the history
Closes #15
  • Loading branch information
jarpat authored Feb 6, 2024
1 parent 45d548b commit 41beecb
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 6 deletions.
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 |

0 comments on commit 41beecb

Please sign in to comment.