You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -82,7 +82,7 @@ And generate secrets for it:
82
82
83
83
Create an OpenTofu variables file to define the required infrastructure, e.g.:
84
84
85
-
# environments/$ENV/terraform/terraform.tfvars:
85
+
# environments/$ENV/tofu/tofu.tfvars:
86
86
87
87
cluster_name = "mycluster"
88
88
cluster_net = "some_network" # *
@@ -105,12 +105,12 @@ Create an OpenTofu variables file to define the required infrastructure, e.g.:
105
105
}
106
106
}
107
107
108
-
Variables marked `*` refer to OpenStack resources which must already exist. The above is a minimal configuration - for all variables and descriptions see `environments/$ENV/terraform/terraform.tfvars`.
108
+
Variables marked `*` refer to OpenStack resources which must already exist. The above is a minimal configuration - for all variables and descriptions see `environments/$ENV/tofu/tofu.tfvars`.
109
109
110
110
To deploy this infrastructure, ensure the venv and the environment are [activated](#create-a-new-environment) and run:
Copy file name to clipboardExpand all lines: ansible/roles/block_devices/README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,7 +11,7 @@ This is a convenience wrapper around the ansible modules:
11
11
12
12
To avoid issues with device names changing after e.g. reboots, devices are identified by serial number and mounted by filesystem UUID.
13
13
14
-
**NB:** This role is ignored[^1] during Packer builds as block devices will not be attached to the Packer build VMs. This role is therefore deprecated and it is suggested that `cloud-init` is used instead. See e.g. `environments/skeleton/{{cookiecutter.environment}}/terraform/control.userdata.tpl`.
14
+
**NB:** This role is ignored[^1] during Packer builds as block devices will not be attached to the Packer build VMs. This role is therefore deprecated and it is suggested that `cloud-init` is used instead. See e.g. `environments/skeleton/{{cookiecutter.environment}}/tofu/control.userdata.tpl`.
15
15
16
16
[^1]: See `environments/common/inventory/group_vars/builder/defaults.yml`
Copy file name to clipboardExpand all lines: ansible/roles/freeipa/README.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@ Support FreeIPA in the appliance. In production use it is expected the FreeIPA s
7
7
8
8
## Usage
9
9
- Add hosts to the `freeipa_client` group and run (at a minimum) the `ansible/iam.yml` playbook.
10
-
- Host names must match the domain name. By default (using the skeleton Terraform) hostnames are of the form `nodename.cluster_name.cluster_domain_suffix` where `cluster_name` and `cluster_domain_suffix` are Terraform variables.
10
+
- Host names must match the domain name. By default (using the skeleton OpenTofu) hostnames are of the form `nodename.cluster_name.cluster_domain_suffix` where `cluster_name` and `cluster_domain_suffix` are OpenTofu variables.
11
11
- Hosts discover the FreeIPA server FQDN (and their own domain) from DNS records. If DNS servers are not set this is not set from DHCP, then use the `resolv_conf` role to configure this. For example when using the in-appliance FreeIPA development server:
12
12
13
13
```ini
@@ -28,7 +28,7 @@ Support FreeIPA in the appliance. In production use it is expected the FreeIPA s
28
28
- For production use with an external FreeIPA server, a random one-time password (OTP) must be generated when adding hosts to FreeIPA (e.g. using `ipa host-add --random ...`). This password should be set as a hostvar `freeipa_host_password`. Initial host enrolment will use this OTP to enrol the host. After this it becomes irrelevant so it does not need to be committed to git. This approach means the appliance does not require the FreeIPA administrator password.
29
29
- For development use with the in-appliance FreeIPA server, `freeipa_host_password` will be automatically generated in memory.
30
30
- The `control` host must define `appliances_state_dir` (on persistent storage). This is used to back-up keytabs to allow FreeIPA clients to automatically re-enrol after e.g. reimaging. Note that:
31
-
- This is implemented when using the skeleton Terraform; on the control node `appliances_state_dir` defaults to `/var/lib/state` which is mounted from a volume.
31
+
- This is implemented when using the skeleton OpenTofu; on the control node `appliances_state_dir` defaults to `/var/lib/state` which is mounted from a volume.
32
32
- Nodes are not re-enroled by a [Slurm-driven reimage](../../collections/ansible_collections/stackhpc/slurm_openstack_tools/roles/rebuild/README.md) (as that does not run this role).
33
33
- If both a backed-up keytab and `freeipa_host_password` exist, the former is used.
Copy file name to clipboardExpand all lines: docs/openondemand.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,7 +33,7 @@ See the [ansible/roles/openondemand/README.md](../ansible/roles/openondemand/REA
33
33
The following variables have been given default values to allow Open OnDemand to work in a newly created environment without additional configuration, but generally should be overridden in `environment/site/inventory/group_vars/all/` with site-specific values:
34
34
-`openondemand_servername` - this must be defined for both `openondemand` and `grafana` hosts (when Grafana is enabled). Default is `ansible_host` (i.e. the IP address) of the first host in the `openondemand` group.
35
35
-`openondemand_auth` and any corresponding options. Defaults to `basic_pam`.
36
-
-`openondemand_desktop_partition` and `openondemand_jupyter_partition` if the corresponding inventory groups are defined. Defaults to the first compute group defined in the `compute`Terraform variable in `environments/$ENV/terraform`.
36
+
-`openondemand_desktop_partition` and `openondemand_jupyter_partition` if the corresponding inventory groups are defined. Defaults to the first compute group defined in the `compute`OpenTofu variable in `environments/$ENV/tofu`.
Copy file name to clipboardExpand all lines: docs/operations.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -57,10 +57,10 @@ This is a usually a two-step process:
57
57
58
58
- If new nodes are required, define a new node group by adding an entry to the `compute` mapping in `environments/$ENV/tofu/main.tf` assuming the default OpenTofu configuration:
59
59
- The key is the partition name.
60
-
- The value should be a mapping, with the parameters defined in `environments/$SITE_ENV/terraform/compute/variables.tf`, but in brief will need at least `flavor` (name) and `nodes` (a list of node name suffixes).
60
+
- The value should be a mapping, with the parameters defined in `environments/$SITE_ENV/tofu/compute/variables.tf`, but in brief will need at least `flavor` (name) and `nodes` (a list of node name suffixes).
61
61
- Add a new partition to the partition configuration as described under [Modifying Slurm Partition-specific Configuration](#Modifying-Slurm-Partition-specific-Configuration).
62
62
63
-
Deploying the additional nodes and applying these changes requires rerunning both Terraform and the Ansible site.yml playbook - follow [Deploying a Cluster](#Deploying-a-Cluster).
63
+
Deploying the additional nodes and applying these changes requires rerunning both OpenTofu and the Ansible site.yml playbook - follow [Deploying a Cluster](#Deploying-a-Cluster).
64
64
65
65
# Adding Additional Packages
66
66
By default, the following utility packages are installed during the StackHPC image build:
Copy file name to clipboardExpand all lines: docs/persistent-state.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,14 +13,14 @@ If using the `environments/common/layout/everything` Ansible groups template (wh
13
13
14
14
Note that if `appliances_state_dir` is defined, the path it gives must exist and should be owned by root. Directories will be created within this with appropriate permissions for each item of state defined above. Additionally, the systemd units for the services listed above will be modified to require `appliances_state_dir` to be mounted before service start (via the `systemd` role).
15
15
16
-
A new cookiecutter-produced environment supports persistent state in the default Terraform (see `environments/skeleton/{{cookiecutter.environment}}/terraform/`) by:
16
+
A new cookiecutter-produced environment supports persistent state in the default OpenTofu (see `environments/skeleton/{{cookiecutter.environment}}/tofu/`) by:
17
17
18
-
- Defining a volume with a default size of 150GB - this can be controlled by the Terraform variable `state_volume_size`.
18
+
- Defining a volume with a default size of 150GB - this can be controlled by the OpenTofu variable `state_volume_size`.
19
19
- Attaching it to the control node.
20
20
- Defining cloud-init userdata for the control node which formats and mounts this volume at `/var/lib/state`.
21
-
- Defining `appliances_state_dir: /var/lib/state` for the control node in the (Terraform-templated) `inventory/hosts` file.
21
+
- Defining `appliances_state_dir: /var/lib/state` for the control node in the (OpenTofu-templated) `inventory/hosts` file.
22
22
23
-
**NB: The default Terraform is provided as a working example and for internal CI use - therefore this volume is deleted when running `terraform destroy` - this may not be appropriate for a production environment.**
23
+
**NB: The default OpenTofu is provided as a working example and for internal CI use - therefore this volume is deleted when running `tofu destroy` - this may not be appropriate for a production environment.**
24
24
25
25
In general, the Prometheus data is likely to be the only sizeable state stored. The size of this can be influenced through [Prometheus role variables](https://github.com/cloudalchemy/ansible-prometheus#role-variables), e.g.:
Copy file name to clipboardExpand all lines: docs/production.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -41,15 +41,15 @@ and referenced from the `site` and `production` environments, e.g.:
41
41
- OpenTofu configurations should be defined in the `site` environment and used
42
42
as a module from the other environments. This can be done with the
43
43
cookie-cutter generated configurations:
44
-
- Delete the *contents* of the cookie-cutter generated `terraform/` directories
44
+
- Delete the *contents* of the cookie-cutter generated `tofu/` directories
45
45
from the `production` and `staging` environments.
46
-
- Create a `main.tf` in those directories which uses `site/terraform/` as a
46
+
- Create a `main.tf` in those directories which uses `site/tofu/` as a
47
47
[module](https://opentofu.org/docs/language/modules/), e.g. :
48
48
49
49
```
50
50
...
51
51
module "cluster" {
52
-
source = "../../site/terraform/"
52
+
source = "../../site/tofu/"
53
53
54
54
cluster_name = "foo"
55
55
...
@@ -61,7 +61,7 @@ and referenced from the `site` and `production` environments, e.g.:
61
61
into the module block.
62
62
- Environment-independent variables (e.g. maybe `cluster_net` if the
63
63
same is used for staging and production) should be set as *defaults*
64
-
in `environments/site/terraform/variables.tf`, and then don't need to
64
+
in `environments/site/tofu/variables.tf`, and then don't need to
65
65
be passed in to the module.
66
66
67
67
- Vault-encrypt secrets. Running the `generate-passwords.yml` playbook creates
@@ -102,7 +102,7 @@ and referenced from the `site` and `production` environments, e.g.:
102
102
103
103
- Consider whether having (read-only) access to Grafana without login is OK. If not, remove `grafana_auth_anonymous` in `environments/$ENV/inventory/group_vars/all/grafana.yml`
104
104
105
-
- Modify `environments/site/terraform/nodes.tf` to provide fixed IPs for at least
105
+
- Modify `environments/site/tofu/nodes.tf` to provide fixed IPs for at least
106
106
the control node, and (if not using FIPs) the login node(s):
0 commit comments