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
* fixed manual_destroy job
* updated selectel provider; updated main.tf to user preexisting service user and project; updated readmes; switched to a telegram gh action that supports telegram topics
* hardcoding tfswitch action version because for some reason v1 doesnt mean latest possible v1.x.x for them >:|
* added telegram test messages
* added a cheesy hack that will make tfswitch install latest version instead of 0.1.0
* changed selectel provider version constraint so that it will work for v6.4.0
* commented out s3 key resource
* removed temp workflow steps
---------
Co-authored-by: Alexey Orlov <orlov.aa@selectel.com>
В [данном репозитории](https://github.com/selectel/selectel-infra-examples) находятся примеры Terraform модулей, используемых для создания инфраструктуры в облаке Selectel. Также в репозитории еженедельно запускаются пайплайны с тестовым созданием ресурсов с помощью **Terraform** и **OpenTofu**.
17
+
В [данном репозитории](https://github.com/selectel/selectel-infra-examples) находятся примеры Terraform модулей, используемых для создания инфраструктуры в
18
+
облаке Selectel. Также в репозитории еженедельно запускаются пайплайны с тестовым созданием ресурсов с помощью
19
+
**Terraform** и **OpenTofu**.
18
20
19
-
**P.S.** Если вы не нашли пример для создания определенного ресурса - можете оставить issue и мы примем во внимание необходимость его добавления.
21
+
**P.S.** Если вы не нашли пример для создания определенного ресурса - можете оставить issue и мы примем во
22
+
внимание необходимость его добавления.
20
23
21
-
Перед началом работы с облачными ресурсами Selectel через Terraform/OpenTofu рекомендуем ознакомиться с [документацией по провайдеру Selectel/OpenStack](https://docs.selectel.ru/terraform/).
24
+
Перед началом работы с облачными ресурсами Selectel через Terraform/OpenTofu рекомендуем ознакомиться с
25
+
[документацией по провайдеру Selectel/OpenStack](https://docs.selectel.ru/terraform/).
22
26
23
27
## Использование
24
28
@@ -28,7 +32,8 @@
28
32
29
33
### 1. .terraformrc/.tofurc
30
34
31
-
Для доступа к Terraform Registry из РФ можно воспользоваться кеширующим прокси Selectel, для этого отредактируем файл .terraformrc (или .tofurc для OpenTofu):
35
+
Для доступа к Terraform Registry из РФ можно воспользоваться кеширующим прокси Selectel, для этого отредактируем
36
+
файл .terraformrc (или .tofurc для OpenTofu):
32
37
33
38
```bash
34
39
cat <<EOS >> $HOME/.terraformrc
@@ -42,7 +47,8 @@ EOS
42
47
43
48
### 2. State File
44
49
45
-
По умолчанию в репозитории стейт хранится в s3, для локального запуска потребуется изменить поле `backend` на `local` в файле [versions.tf](https://github.com/selectel/selectel-infra-examples/blob/main/versions.tf#L12):
50
+
По умолчанию в репозитории стейт хранится в s3, для локального запуска потребуется изменить поле `backend` на
51
+
`local` в файле [versions.tf](https://github.com/selectel/selectel-infra-examples/blob/main/versions.tf#L12):
46
52
47
53
```terraform
48
54
terraform {
@@ -73,25 +79,10 @@ terraform {
73
79
74
80
### 3. Init
75
81
76
-
Вы можете использовать все модули, которые есть в репозитории или закомментировать лишние, но учтите, что **в первую очередь создается проект с сервисным пользователем**, которые необходимы для провайдера `Openstack`.
82
+
Для начала работы необходимо создать в Панели Управления проект, в котором будут впоследствии создаваться ресурсы,
83
+
а также сервисного пользователя с ролью Администратор проекта для вышеупомянутого проекта. Далее необходимо
84
+
отредактировать `main.tf`, оставив в нём необходимые ресурсы, после чего:
77
85
78
-
>Все, что будет создано ресурсами из провайдера `Openstack` должно идти после создания проекта и пользователя! Для этого потребуется добавить `depends_on` к ресурсу:
79
-
> ```terraform
80
-
> depends_on = [ module.project-with-user ]
81
-
> ```
82
-
83
-
**Опционально:** Создаем файл `main.tf`, где описана необходимая инфраструктура (пример ниже - создание `Simple File Storage`, остальные примеры смотри в папке [modules](https://github.com/selectel/selectel-infra-examples/tree/main/modules)):
84
-
85
-
```yaml
86
-
module "sfs" {
87
-
source = "modules/sfs"
88
-
os_network_id = var.nat_network_id
89
-
os_subnet_id = var.nat_subnet_id
90
-
sfs_size = var.sfs_size
91
-
sfs_volume_type = var.sfs_volume_type
92
-
os_availability_zone = var.os_availability_zone
93
-
}
94
-
```
95
86
96
87
1. Инициализируем Terraform Backend командой:
97
88
@@ -113,48 +104,61 @@ terraform apply
113
104
114
105
## Пример использования
115
106
116
-
В репозитории можно найти пример использования модулей. В корне репозитория созданы `*.tf` файлы, которые можно использовать как пример вызова модулей.
107
+
В репозитории можно найти пример использования модулей. В корне репозитория созданы `*.tf` файлы, которые можно
108
+
использовать как пример вызова модулей.
117
109
118
110
Для их использования достаточно перейти в корень репозитория и инициализировать Terraform:
119
111
120
112
```bash
121
113
terraform init
122
114
```
123
115
124
-
Далее можно скорректировать некоторые параметры в файле `main.tf`, которые передаются в модули, например, объём SFS, имя кластера и другие.
116
+
Далее можно скорректировать некоторые параметры в файле `main.tf`, которые передаются в модули, например, объём
117
+
SFS, имя кластера и другие.
125
118
126
-
Затем необходимо задать переменные, в которых будут содержаться данные от аккаунта Selectel, в котором будет развёрнута инфраструктура:
119
+
Затем необходимо задать переменные, в которых будут содержаться данные от аккаунта Selectel, в котором будет
120
+
развёрнута инфраструктура:
127
121
128
-
-`selectel_domain_name`, ID аккаунта, например, 123123
129
-
-`selectel_user_admin_user`, сервисный пользователь с нужными правами
130
-
-`selectel_user_admin_password`, пароль от сервисного пользователя
122
+
-`selectel_domain_name` - ID Selectel-аккаунта;
123
+
-`selectel_project_name` - название проекта;
124
+
-`selectel_project_id` - ID проекта;
125
+
-`selectel_user_name` - имя сервисного пользователя;
- Ввести с клавиатуры, если переменные не были заданы любым другим способом
152
155
153
-
После успешного выполнения команды `terraform apply`вы должны увидеть в своём аккаунте новый проект, в котором будут запущены все модули (MKS, SFS, vm, CRaaS и др.)
156
+
После успешного выполнения команды `terraform apply`в заданном проекте появятся указанные в `main.tf` ресурсы.
154
157
155
158
## Структура репозитория
156
159
157
-
Репозиторий включает в себя минимально необходимую структуру для запуска Terraform. В директории [modules](https://github.com/selectel/selectel-infra-examples/tree/main/modules) собраны модули для создания различных компонентов в облаке Selectel.
160
+
Репозиторий включает в себя минимально необходимую структуру для запуска Terraform. В директории [modules](https://github.com/selectel/selectel-infra-examples/tree/main/modules)
161
+
собраны модули для создания различных компонентов в облаке Selectel.
0 commit comments