add: documentation
This commit is contained in:
@@ -0,0 +1,435 @@
|
||||
.md-typeset {
|
||||
font-size: 0.82rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.md-typeset h1 {
|
||||
font-size: 1.15rem;
|
||||
line-height: 1.25;
|
||||
}
|
||||
|
||||
.md-typeset h2 {
|
||||
font-size: 1rem;
|
||||
line-height: 1.3;
|
||||
}
|
||||
|
||||
.md-typeset h3 {
|
||||
font-size: 0.92rem;
|
||||
line-height: 1.35;
|
||||
}
|
||||
|
||||
/* Full-width resource pages without right TOC */
|
||||
.md-sidebar--secondary {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.md-content,
|
||||
.md-content__inner,
|
||||
.md-main__inner {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.md-content__inner {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
/* Keep horizontal scrollbars visible for wide tables */
|
||||
.md-typeset__scrollwrap {
|
||||
overflow-x: auto;
|
||||
padding-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
/* Column sizing for resource tables */
|
||||
.resource-table {
|
||||
width: 100%;
|
||||
table-layout: auto;
|
||||
border-collapse: collapse;
|
||||
font-size: 0.82rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.resource-table th,
|
||||
.resource-table td {
|
||||
padding: 0.3rem 0.5rem;
|
||||
vertical-align: top;
|
||||
border-bottom: 1px solid rgba(0, 0, 0, 0.12);
|
||||
font-size: 0.82rem;
|
||||
}
|
||||
|
||||
.resource-table thead th {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.resource-table th:nth-child(1),
|
||||
.resource-table td:nth-child(1) {
|
||||
width: 6%;
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.resource-table th:nth-child(2),
|
||||
.resource-table td:nth-child(2) {
|
||||
width: auto;
|
||||
max-width: 40ch;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.resource-table td:nth-child(2) code {
|
||||
font-weight: 700;
|
||||
font-size: inherit;
|
||||
}
|
||||
|
||||
.resource-table th:nth-child(3),
|
||||
.resource-table td:nth-child(3),
|
||||
.resource-table th:nth-child(4),
|
||||
.resource-table td:nth-child(4),
|
||||
.resource-table th:nth-child(5),
|
||||
.resource-table td:nth-child(5) {
|
||||
white-space: nowrap;
|
||||
width: 6%;
|
||||
}
|
||||
|
||||
.resource-table th:nth-child(4),
|
||||
.resource-table td:nth-child(4) {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.resource-table th:nth-child(5),
|
||||
.resource-table td:nth-child(5) {
|
||||
width: 8%;
|
||||
white-space: normal;
|
||||
overflow-wrap: anywhere;
|
||||
font-size: 0.72rem;
|
||||
}
|
||||
|
||||
.resource-table th:nth-child(6),
|
||||
.resource-table td:nth-child(6) {
|
||||
white-space: normal;
|
||||
overflow-wrap: anywhere;
|
||||
word-break: normal;
|
||||
font-size: 0.72rem;
|
||||
}
|
||||
|
||||
.resource-table th:nth-child(7),
|
||||
.resource-table td:nth-child(7) {
|
||||
white-space: normal;
|
||||
overflow-wrap: anywhere;
|
||||
word-break: normal;
|
||||
font-size: 0.72rem;
|
||||
}
|
||||
|
||||
.md-header__button.md-logo img,
|
||||
.md-header__button.md-logo svg {
|
||||
height: 34px;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
body[data-md-url*="/vc_vm_v3/"] .md-typeset {
|
||||
font-size: 0.98rem;
|
||||
}
|
||||
|
||||
body[data-md-url*="_instruction"] .md-typeset {
|
||||
font-size: 0.51rem;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
body[data-md-url*="_instruction"] .md-typeset h1 {
|
||||
font-size: 1.05rem;
|
||||
}
|
||||
|
||||
body[data-md-url*="_instruction"] .md-typeset h2 {
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
|
||||
body[data-md-url*="_instruction"] .md-typeset h3 {
|
||||
font-size: 0.88rem;
|
||||
}
|
||||
|
||||
/* Instruction pages have a second h1 containing the body text */
|
||||
.md-typeset h1 + h1 {
|
||||
font-size: 0.58rem;
|
||||
line-height: 1.45;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.resource-table td:nth-child(2) code.code-no-wrap {
|
||||
white-space: nowrap !important;
|
||||
word-break: keep-all !important;
|
||||
overflow-wrap: normal !important;
|
||||
hyphens: none !important;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.resource-table td:nth-child(2) code.code-wrap {
|
||||
white-space: normal !important;
|
||||
word-break: normal !important;
|
||||
overflow-wrap: normal !important;
|
||||
hyphens: none !important;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Preview: reduce MAN content size only. */
|
||||
.man-content {
|
||||
font-size: 0.62rem;
|
||||
line-height: 1.45;
|
||||
}
|
||||
|
||||
.copy-ready-badges {
|
||||
margin: 0.5rem 0 0.75rem 0;
|
||||
}
|
||||
|
||||
.copy-ready-badges .badge {
|
||||
display: inline-block;
|
||||
padding: 0.1rem 0.5rem;
|
||||
margin-right: 0.4rem;
|
||||
border-radius: 999px;
|
||||
font-size: 0.72rem;
|
||||
font-weight: 600;
|
||||
letter-spacing: 0.02em;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.copy-ready-badges .badge-tf {
|
||||
background: #ffe7b3;
|
||||
color: #7a4b00;
|
||||
}
|
||||
|
||||
.copy-ready-badges .badge-provider {
|
||||
background: #cfe9ff;
|
||||
color: #0b3d91;
|
||||
}
|
||||
|
||||
.copy-ready-badges .badge-resource {
|
||||
background: #e2f7d9;
|
||||
color: #1f6b1f;
|
||||
}
|
||||
|
||||
.copy-ready-code .na {
|
||||
color: #1d4ed8;
|
||||
}
|
||||
|
||||
.copy-ready-code .s2,
|
||||
.copy-ready-code .m,
|
||||
.copy-ready-code .no,
|
||||
.copy-ready-code .nv {
|
||||
color: #b45309;
|
||||
}
|
||||
|
||||
.copy-ready-code {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.copy-ready-code .token-keyword {
|
||||
color: #2f855a;
|
||||
}
|
||||
|
||||
.copy-ready-code .token-type {
|
||||
color: #0b5ed7;
|
||||
}
|
||||
|
||||
.copy-ready-code .token-name {
|
||||
color: #0f766e;
|
||||
}
|
||||
|
||||
.copy-ready-code .token-attr {
|
||||
color: #1d4ed8;
|
||||
}
|
||||
|
||||
.copy-ready-code .token-value {
|
||||
color: #b45309;
|
||||
}
|
||||
|
||||
.copy-ready-code .token-comment {
|
||||
color: #6b7280;
|
||||
}
|
||||
|
||||
.copy-ready-code .token-type {
|
||||
color: #c026d3;
|
||||
}
|
||||
|
||||
.man-content .man-inline {
|
||||
color: #0b5ed7;
|
||||
background: #eef5ff;
|
||||
padding: 0.05rem 0.2rem;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.man-content .man-code {
|
||||
color: #1f2937;
|
||||
background: #f5f7fb;
|
||||
padding: 0.75rem 1rem;
|
||||
border-radius: 6px;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.man-content .man-code .kw {
|
||||
color: #2f855a;
|
||||
}
|
||||
|
||||
.man-content .man-op {
|
||||
color: #b42318;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.man-content .man-kw {
|
||||
color: #2f855a;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.man-content .man-fn {
|
||||
color: #0f766e;
|
||||
}
|
||||
|
||||
.man-content .man-str {
|
||||
color: #b45309;
|
||||
}
|
||||
|
||||
.man-content .man-num {
|
||||
color: #1d4ed8;
|
||||
}
|
||||
|
||||
.man-content .man-flag {
|
||||
color: #0b5ed7;
|
||||
}
|
||||
|
||||
.params-columns {
|
||||
display: flex;
|
||||
gap: 1.5rem;
|
||||
align-items: flex-start;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.params-column {
|
||||
flex: 1 1 480px;
|
||||
min-width: 320px;
|
||||
}
|
||||
|
||||
.params-column h2 {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
/* Compact table variant for create params. */
|
||||
.resource-table-compact {
|
||||
font-size: 0.66rem;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.resource-table-compact th,
|
||||
.resource-table-compact td {
|
||||
padding: 0.24rem 0.4rem;
|
||||
font-size: 0.66rem;
|
||||
}
|
||||
|
||||
.resource-table-compact th:nth-child(1),
|
||||
.resource-table-compact td:nth-child(1) {
|
||||
width: 6%;
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.resource-table-compact th:nth-child(2),
|
||||
.resource-table-compact td:nth-child(2) {
|
||||
width: auto;
|
||||
max-width: 40ch;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.resource-table-compact th:nth-child(3),
|
||||
.resource-table-compact td:nth-child(3),
|
||||
.resource-table-compact th:nth-child(4),
|
||||
.resource-table-compact td:nth-child(4) {
|
||||
white-space: nowrap;
|
||||
width: 8%;
|
||||
}
|
||||
|
||||
.resource-table-compact th:nth-child(4),
|
||||
.resource-table-compact td:nth-child(4) {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.resource-table-compact th:nth-child(5),
|
||||
.resource-table-compact td:nth-child(5) {
|
||||
white-space: normal;
|
||||
overflow-wrap: anywhere;
|
||||
font-size: 0.62rem;
|
||||
}
|
||||
|
||||
.resource-table-compact th:nth-child(6),
|
||||
.resource-table-compact td:nth-child(6) {
|
||||
white-space: normal;
|
||||
overflow-wrap: anywhere;
|
||||
word-break: normal;
|
||||
font-size: 0.62rem;
|
||||
}
|
||||
|
||||
/* Create params column sizing overrides. */
|
||||
.resource-table-compact {
|
||||
table-layout: auto;
|
||||
}
|
||||
|
||||
.resource-table-compact th:nth-child(2),
|
||||
.resource-table-compact td:nth-child(2) {
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.resource-table-compact td:nth-child(2) code {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.resource-table-compact th:nth-child(5),
|
||||
.resource-table-compact td:nth-child(5) {
|
||||
width: 52%;
|
||||
}
|
||||
|
||||
.resource-table-compact th:nth-child(6),
|
||||
.resource-table-compact td:nth-child(6) {
|
||||
width: 18%;
|
||||
}
|
||||
|
||||
/* Required table (no Default column) column sizing. */
|
||||
.resource-table-required {
|
||||
table-layout: auto;
|
||||
}
|
||||
|
||||
.resource-table-required th:nth-child(2),
|
||||
.resource-table-required td:nth-child(2) {
|
||||
width: 1%;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.resource-table-required td:nth-child(2) code {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.resource-table-required th:nth-child(4),
|
||||
.resource-table-required td:nth-child(4) {
|
||||
width: 58%;
|
||||
}
|
||||
|
||||
.resource-table-required th:nth-child(5),
|
||||
.resource-table-required td:nth-child(5) {
|
||||
width: 18%;
|
||||
}
|
||||
|
||||
/* Required table: left-align Description column. */
|
||||
.resource-table-required th:nth-child(4),
|
||||
.resource-table-required td:nth-child(4) {
|
||||
text-align: left;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
/* Lifecycle note styling in create params. */
|
||||
.lifecycle-note {
|
||||
font-size: 0.66rem;
|
||||
line-height: 1.45;
|
||||
margin-top: 0.6rem;
|
||||
}
|
||||
|
||||
/* Modify params: left-align Description column. */
|
||||
.resource-table-compact th:nth-child(4),
|
||||
.resource-table-compact td:nth-child(4) {
|
||||
text-align: left;
|
||||
white-space: normal;
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1017 B |
@@ -0,0 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<!-- Creator: CorelDRAW -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="82.3711mm" height="18.2443mm" version="1.1" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd"
|
||||
viewBox="0 0 8221.93 1821.07"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:xodm="http://www.corel.com/coreldraw/odm/2003">
|
||||
<defs>
|
||||
<style type="text/css">
|
||||
<![CDATA[
|
||||
.fil0 {fill:#001C34}
|
||||
]]>
|
||||
</style>
|
||||
</defs>
|
||||
<g id="Слой_x0020_1">
|
||||
<metadata id="CorelCorpID_0Corel-Layer"/>
|
||||
<g id="_2283355517888">
|
||||
<path class="fil0" d="M477.49 479.69l-413.51 0 -63.98 276.48 178.44 0 1.17 1028.71 0 26.75 0.03 0 276.39 0 0 -871.72c0,-101.28 82.43,-183.69 183.75,-183.69l589.25 3.44c101.34,0 183.76,82.46 183.76,183.74l0 871.72 276.44 0 0 -871.72c0,-253.77 -206.46,-460.15 -460.05,-460.15l-589.52 -3.53 -162.17 0.45 0 -0.48z"/>
|
||||
<path class="fil0" d="M6664.65 1813.37l1181.04 0c212.14,0 376.24,-175.01 376.24,-387.08 0,-212.13 -172.55,-384.68 -384.69,-384.68l-653.66 0c-60.22,0 -109.16,-48.94 -109.16,-109.18l0 -66.18c0,-60.19 48.94,-109.14 109.16,-109.14l695.76 0 63.74 -275.49 -759.5 0c-212.13,0 -384.66,172.53 -384.66,384.63l0 66.18c0,212.13 172.53,384.67 384.66,384.67l653.66 0c60.2,0 109.2,49 109.2,109.19 0,60.13 -49,116.1 -109.2,116.1l-1118.9 0 -53.68 270.98z"/>
|
||||
<path class="fil0" d="M6200.79 483.5l-723.21 0c-215.88,0 -391.47,175.6 -391.47,391.51l0 485.5c0,248.38 202.05,450.4 450.4,450.4l989.38 0 62.13 -268.51 -1051.51 0c-96.41,0 -174.95,-85.37 -174.95,-181.88l-1.5 -39.46 923.62 0 308.51 -1.84 0 -237.95 0 -206.26c0,-215.91 -175.59,-391.51 -391.41,-391.51zm115.96 560.28l-955.19 0 0 -168.77c0,-63.96 52.07,-116.05 116.02,-116.05l723.21 0c63.91,0 115.96,52.08 115.96,116.05l0 168.77z"/>
|
||||
<path class="fil0" d="M4683.49 1194.24l0 168.28c0,100.92 -81.7,178.37 -182.67,178.37l-589.87 1.23c-93.18,0 -170.28,-69.96 -181.63,-160.09l0 -458.13c11.36,-90.1 88.46,-160.07 181.63,-160.07l589.44 3.5c100.97,0 183.1,82.18 183.1,183.1l0 30.42 0 213.4zm-1230.2 -345.53l-0.89 -795.03 276.91 -53.68 0 526.07c55.74,-24.16 117.03,-37.74 181.5,-37.74l589.71 3.5c252.69,0 458.42,205.72 458.42,458.59l0 30.42 0 213.4 0 168.28c0,252.86 -205.73,458.54 -458.42,458.54l-589.71 -3.5c-252.7,0 -458.41,-205.67 -458.41,-458.56l0 -171.61 0 -240.48 0.89 -98.2z"/>
|
||||
<path class="fil0" d="M3041.25 1150.84l0 204.28c0,100.93 -82.15,183.05 -183.11,183.05l-582.11 -3.46c-100.96,0 -183.11,-82.16 -183.11,-183.08l0 -67.42 1.48 0.24 0 -862.65 -276.91 53.68 0.12 103.41 -0.12 0.04 0 772.69c0,252.87 205.72,458.54 458.39,458.54l582.4 3.5c252.67,0 458.4,-205.68 458.4,-458.55l0 -70.79 0.71 0.12 0 -862.65 -276.91 53.68 0.76 675.35z"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
@@ -0,0 +1,4 @@
|
||||
/* Preview only: reduce content font size without changing navigation. */
|
||||
.md-content {
|
||||
font-size: 25% !important;
|
||||
}
|
||||
@@ -0,0 +1,368 @@
|
||||
# Начало работы с Nubes Terraform
|
||||
|
||||
Это руководство поможет вам установить инструменты, настроить доступ и развернуть вашу первую инфраструктуру в облаке Nubes, используя Terraform.
|
||||
|
||||
## 0. Установка Terraform
|
||||
|
||||
Для работы с инфраструктурой как кодом (IaC) потребуется утилита Terraform (версии 1.0 или выше).
|
||||
|
||||
1. **Скачивание**:
|
||||
* Официальный сайт: [hashicorp.com/terraform/install](https://developer.hashicorp.com/terraform/install)
|
||||
* *Для пользователей из РФ (без VPN):* [Yandex Cloud Mirror](https://hashicorp-releases.yandexcloud.net/terraform/)
|
||||
2. **Установка**:
|
||||
* Распакуйте скачанный архив.
|
||||
* Поместите исполняемый файл (`terraform` или `terraform.exe`) в папку, доступную в переменной окружения `PATH`.
|
||||
3. **Проверка**:
|
||||
* Откройте терминал (PowerShell, CMD, Bash или Terminal в macOS).
|
||||
* Введите команду `terraform -version`. Вы должны увидеть номер версии.
|
||||
|
||||
## 1. Подготовка конфигурации
|
||||
|
||||
Создайте рабочую директорию для вашего проекта и создайте основной файл конфигурации `main.tf`.
|
||||
|
||||
```hcl title="main.tf"
|
||||
terraform {
|
||||
required_providers {
|
||||
nubes = {
|
||||
source = "terra.k8c.ru/nubes/nubes"
|
||||
version = "2.1.23" # Поставьте нужную вам версию провайдера
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
provider "nubes" {
|
||||
api_endpoint = "https://deck-api.ngcloud.ru/api/v1/index.cfm"
|
||||
api_token = var.api_token
|
||||
}
|
||||
|
||||
variable "api_token" {
|
||||
type = string
|
||||
sensitive = true
|
||||
}
|
||||
```
|
||||
|
||||
!!! info "TEST стенд (обязательные адреса)"
|
||||
Эта документация относится к TEST стенду.
|
||||
|
||||
- Личный кабинет: https://deck-test.ngcloud.ru/dashboard/
|
||||
- API endpoint: https://deck-api-test.ngcloud.ru/api/v1
|
||||
|
||||
!!! tip "Безопасность"
|
||||
Никогда не храните токен прямо в файле `main.tf`, если планируете загружать код в систему контроля версий (git). Используйте `variables.tf` или файл `terraform.tfvars`.
|
||||
|
||||
## 2. Получение API токена
|
||||
|
||||
Токен (Access Token) необходим провайдеру для авторизации ваших действий в облаке.
|
||||
|
||||
Если нет ТОКЕНА доступа или хотите создать новый -
|
||||
В Личном Кабинете - на странице Профиля пользователя https://deck.ngcloud.ru/authorization/profile
|
||||
во вкладке Токены - нажать "Выпустить тех-токен"
|
||||
Значение токена показывается только при его создании, надо его сохранить
|
||||
|
||||
Создайте файл `terraform.tfvars` и сохраните токен там:
|
||||
|
||||
```hcl title="terraform.tfvars"
|
||||
api_token = "eyJhbGciOiJ..." # Ваш длинный токен
|
||||
```
|
||||
|
||||
## 3. Описание ресурсов
|
||||
|
||||
Добавьте ресурсы, которые вы хотите создать, в файл `main.tf` или `resources.tf`.
|
||||
|
||||
Пример создания S3 бакета:
|
||||
|
||||
```hcl
|
||||
resource "nubes_s3bucket" "my_files" {
|
||||
resource_name = "bucket_0"
|
||||
bucket_name = "my-unique-bucket-name"
|
||||
s3_user_uid = "235e0546-..." # UID Корневой услуги S3
|
||||
}
|
||||
```
|
||||
|
||||
Или Postgres кластера:
|
||||
|
||||
```hcl
|
||||
resource "nubes_postgres" "db" {
|
||||
resource_name = "pg-tst0"
|
||||
resource_realm = "k8s-3.ext.nubes.ru" # Платформа развертывания
|
||||
s3_uid = "235e0546-..." # UUID услуги S3 для бэкапов
|
||||
|
||||
resource_c_p_u = 2000 # 2 vCPU (в милликорах)
|
||||
resource_memory = 4096 # 4 GB (в МБ)
|
||||
resource_disk = "20" # 20 GB
|
||||
resource_instances = 1
|
||||
}
|
||||
```
|
||||
|
||||
Подробные примеры конфигураций смотрите в разделе **Resources** документации.
|
||||
|
||||
## 4. Запуск
|
||||
|
||||
Теперь вы готовы применить конфигурацию:
|
||||
|
||||
1. **Инициализация**: `terraform init` (загружает плагин провайдера).
|
||||
2. **План**: `terraform plan` (показывает, что будет сделано).
|
||||
3. **Применение**: `terraform apply` (создает инфраструктуру).
|
||||
|
||||
## 5. Почему провайдер использует Suspend/Adopt
|
||||
|
||||
Для этой логики используются два флага.
|
||||
|
||||
- `suspend_on_destroy`
|
||||
- `adopt_existing_on_create`
|
||||
|
||||
### `suspend_on_destroy`
|
||||
|
||||
- `true` (по умолчанию)
|
||||
- при `terraform destroy` инстанс уходит в `Suspend`;
|
||||
- при удалении ресурса из манифеста — тоже `Suspend`.
|
||||
- `false`
|
||||
- Terraform удаляет ресурс только из state;
|
||||
- в облаке инстанс не меняется.
|
||||
|
||||
### `adopt_existing_on_create`
|
||||
|
||||
- `false` (по умолчанию)
|
||||
- если инстанс уже существует, Terraform вернёт ошибку.
|
||||
- `true`
|
||||
- Terraform может взять существующий инстанс под управление.
|
||||
|
||||
### Как это связано с `terraform import`
|
||||
|
||||
Это похоже на `terraform import`,
|
||||
но срабатывает в обычном `apply`.
|
||||
|
||||
- найден `running` → `adopt`;
|
||||
- найден `suspended` + обязательные параметры совпадают → `resume + adopt`.
|
||||
|
||||
### Важно
|
||||
|
||||
Один инстанс должен быть только в одном state.
|
||||
|
||||
Если подключить один инстанс
|
||||
к двум манифестам,
|
||||
получится конфликт управления:
|
||||
|
||||
- первый `apply` меняет ресурс;
|
||||
- второй `apply` откатывает
|
||||
или перезаписывает изменения.
|
||||
|
||||
---
|
||||
|
||||
Следующий шаг: изучите [Справочник по командам Terraform](terraform-basics.md) для уверенной работы.
|
||||
|
||||
## Примеры
|
||||
|
||||
### Lucee & Postgress
|
||||
|
||||
Lucee и NodeJS — это два отдельных UI для CRUD‑операций, оба работают с одной и той же таблицей в Postgres.
|
||||
|
||||
```hcl title="resources.tf"
|
||||
resource "nubes_postgres" "db2" {
|
||||
# Основной Postgres-кластер для демо.
|
||||
resource_name = "pg-tst0"
|
||||
s3_uid = "235e0546-..."
|
||||
resource_realm = "k8s-3.ext.nubes.ru" # Платформа развертывания
|
||||
resource_instances = 1
|
||||
resource_memory = 512
|
||||
resource_c_p_u = 500
|
||||
resource_disk = "1"
|
||||
app_version = "17"
|
||||
json_parameters = jsonencode({
|
||||
# Выключаем подробные логи подключений в демо.
|
||||
log_connections = "off"
|
||||
log_disconnections = "off"
|
||||
})
|
||||
enable_pg_pooler_master = false
|
||||
enable_pg_pooler_slave = false
|
||||
allow_no_s_s_l = false
|
||||
auto_scale = false
|
||||
auto_scale_percentage = 10
|
||||
auto_scale_tech_window = 0
|
||||
auto_scale_quota_gb = "1"
|
||||
need_external_address_master = false
|
||||
}
|
||||
|
||||
resource "nubes_lucee" "app1" {
|
||||
# Lucee UI, который читает/пишет в Postgres.
|
||||
resource_name = "lucy1"
|
||||
resource_realm = nubes_postgres.db2.resource_realm
|
||||
domain = "web03" # Пример домена приложения
|
||||
git_path = "https://gitea-naeel.giteak8s.services.ngcloud.ru/naeel/testlucee.git"
|
||||
|
||||
json_env = jsonencode({
|
||||
# JDBC datasource для Lucee.
|
||||
testds_class = "org.postgresql.Driver"
|
||||
testds_bundleName = "org.postgresql.jdbc"
|
||||
testds_bundleVersion = "42.6.0"
|
||||
testds_connectionString = "jdbc:postgresql://${nubes_postgres.db2.state_out_flat["internalConnect.master"]}:5432/postgres"
|
||||
testds_username = nubes_postgres.db2.vault_secrets["adminUser"]
|
||||
testds_password = nubes_postgres.db2.vault_secrets["adminPass"]
|
||||
testds_connectionLimit = "5"
|
||||
testds_liveTimeout = "15"
|
||||
testds_validate = "false"
|
||||
})
|
||||
|
||||
resource_c_p_u = 300
|
||||
resource_memory = 512
|
||||
resource_instances = 1
|
||||
app_version = "5.4"
|
||||
|
||||
depends_on = [nubes_postgres.db2]
|
||||
}
|
||||
|
||||
resource "nubes_nodejs" "app3" {
|
||||
# NodeJS демо, работающий с тем же Postgres.
|
||||
resource_name = "node_0"
|
||||
resource_realm = nubes_postgres.db2.resource_realm
|
||||
domain = "node"
|
||||
git_path = "https://gitea-naeel.giteak8s.services.ngcloud.ru/naeel/testnode.git"
|
||||
health_path = "/healthz"
|
||||
app_version = "23"
|
||||
|
||||
json_env = jsonencode({
|
||||
# Переменные подключения к Postgres.
|
||||
PGHOST = nubes_postgres.db2.state_out_flat["internalConnect.master"]
|
||||
PGPORT = "5432"
|
||||
PGUSER = nubes_postgres.db2.vault_secrets["adminUser"]
|
||||
PGPASSWORD = nubes_postgres.db2.vault_secrets["adminPass"]
|
||||
PGSSLMODE = "require"
|
||||
DATABASE_URL = format(
|
||||
"postgresql://%s:%s@%s:5432/postgres",
|
||||
nubes_postgres.db2.vault_secrets["adminUser"],
|
||||
nubes_postgres.db2.vault_secrets["adminPass"],
|
||||
nubes_postgres.db2.state_out_flat["internalConnect.master"]
|
||||
)
|
||||
})
|
||||
|
||||
resource_c_p_u = 300
|
||||
resource_memory = 256
|
||||
resource_instances = 1
|
||||
|
||||
depends_on = [nubes_postgres.db2]
|
||||
}
|
||||
```
|
||||
|
||||
### Пример (PROD_STAND/RABBIT)
|
||||
|
||||
Ниже полный пример `resources.tf` для RabbitMQ + Lucee UI + NodeJS воркера.
|
||||
|
||||
Комментарий: UI Lucee отправляет CRUD‑запросы в RabbitMQ, а применение изменений в Postgres выполняет отдельный воркер на NodeJS.
|
||||
Сервис Postgres должен быть запущен заранее. В данном примере используется Postgres из раздела https://terra.k8c.ru/docs/nubes/nubes/2.1.7/30_registry/guides/getting-started/#lucee-postgress
|
||||
|
||||
```hcl title="resources.tf"
|
||||
# RabbitMQ кластер для демо.
|
||||
resource "nubes_rabbitmq" "rb1" {
|
||||
resource_name = "rabbit_0"
|
||||
resource_realm = "k8s-3.ext.nubes.ru"
|
||||
resource_instances = 1
|
||||
resource_memory = 512
|
||||
resource_c_p_u = 500
|
||||
resource_disk = 5
|
||||
need_external_address_master = false
|
||||
need_external_address_slave = false
|
||||
}
|
||||
|
||||
# Lucee UI, который пишет в Rabbit и читает из Postgres.
|
||||
resource "nubes_lucee" "rabbit_ui" {
|
||||
resource_name = "rb-lucee-ui"
|
||||
resource_realm = "k8s-3.ext.nubes.ru"
|
||||
domain = "rb-ui"
|
||||
app_version = "5.4"
|
||||
git_path = "https://gitea-naeel.giteak8s.services.ngcloud.ru/naeel/rabbit-lsd"
|
||||
resource_c_p_u = 300
|
||||
resource_memory = 512
|
||||
resource_instances = 1
|
||||
|
||||
# Переменные окружения для datasource, Rabbit и UI.
|
||||
json_env = jsonencode({
|
||||
testds_bundleName = "org.postgresql.jdbc"
|
||||
testds_bundleVersion = "42.6.0"
|
||||
testds_class = "org.postgresql.Driver"
|
||||
testds_connectionLimit = "5"
|
||||
testds_connectionString = "jdbc:postgresql://${var.PGHOST}:5432/postgres"
|
||||
testds_liveTimeout = "15"
|
||||
testds_username = var.PGUSER
|
||||
testds_password = var.PGPASSWORD
|
||||
testds_validate = "false"
|
||||
PG_TABLE = "rabbit_messages"
|
||||
UI_LOG_TABLE = "rabbit_ui_log"
|
||||
RABBIT_HOST = try(nubes_rabbitmq.rb1.state_out_flat["internalConnect.master"], nubes_rabbitmq.rb1.state_out_flat["inernalConnect.master"])
|
||||
RABBIT_PORT = "5672"
|
||||
RABBIT_USER = nubes_rabbitmq.rb1.vault_secrets["adminUser"]
|
||||
RABBIT_PASSWORD = nubes_rabbitmq.rb1.vault_secrets["adminPass"]
|
||||
RABBIT_VHOST = "/"
|
||||
RABBIT_QUEUES = "crud_queue"
|
||||
RABBIT_DURABLE = "true"
|
||||
RABBIT_ADMIN_URL = "https://${nubes_rabbitmq.rb1.state_out_flat["externalConnect.admin.fqdn"]}/#/"
|
||||
NODEWORKER_URL = "https://nodeworker.nodejsk8s.services.ngcloud.ru/"
|
||||
})
|
||||
|
||||
depends_on = [nubes_rabbitmq.rb1]
|
||||
}
|
||||
|
||||
# NodeJS воркер, который переносит CRUD из очереди в Postgres.
|
||||
resource "nubes_nodejs" "rabbit_nodeworker" {
|
||||
resource_name = "nodeworker"
|
||||
resource_realm = "k8s-3.ext.nubes.ru"
|
||||
domain = "nodeworker"
|
||||
app_version = "23"
|
||||
git_path = "https://gitea-naeel.giteak8s.services.ngcloud.ru/naeel/rabbit-nodeworker.git"
|
||||
health_path = "/healthz"
|
||||
resource_c_p_u = 100
|
||||
resource_memory = 256
|
||||
resource_instances = 1
|
||||
|
||||
# Параметры подключения к Rabbit и Postgres.
|
||||
json_env = jsonencode({
|
||||
RABBIT_HOST = try(nubes_rabbitmq.rb1.state_out_flat["internalConnect.master"], nubes_rabbitmq.rb1.state_out_flat["inernalConnect.master"])
|
||||
RABBIT_PORT = "5672"
|
||||
RABBIT_USER = nubes_rabbitmq.rb1.vault_secrets["adminUser"]
|
||||
RABBIT_PASSWORD = nubes_rabbitmq.rb1.vault_secrets["adminPass"]
|
||||
RABBIT_VHOST = "/"
|
||||
RABBIT_QUEUES = "crud_queue"
|
||||
RABBIT_DURABLE = "true"
|
||||
RABBIT_PREFETCH = "1"
|
||||
REQUEUE_ON_ERROR = "true"
|
||||
PGHOST = var.PGHOST
|
||||
PGPORT = "5432"
|
||||
PGUSER = var.PGUSER
|
||||
PGPASSWORD = var.PGPASSWORD
|
||||
PGDATABASE = "postgres"
|
||||
PGSSLMODE = "require"
|
||||
PG_TABLE = "rabbit_messages"
|
||||
})
|
||||
|
||||
depends_on = [nubes_rabbitmq.rb1]
|
||||
}
|
||||
|
||||
# Ручной триггер redeploy для воркера.
|
||||
resource "nubes_nodejs_redeploy" "rabbit_nodeworker_redeploy" {
|
||||
nodejs_id = nubes_nodejs.rabbit_nodeworker.id
|
||||
resource_realm = "k8s-3.ext.nubes.ru"
|
||||
run_id = "redeploy-2026-02-23-011"
|
||||
}
|
||||
```
|
||||
|
||||
```hcl title="variables.tf"
|
||||
// Postgres уже запущен, значения берутся из UI Личного кабинета.
|
||||
variable "PGUSER" {
|
||||
type = string
|
||||
default = "postgres"
|
||||
}
|
||||
|
||||
variable "PGPASSWORD" {
|
||||
type = string
|
||||
default = "" # пароль укажите вручную, в примере не публикуем
|
||||
}
|
||||
|
||||
variable "PGHOST" {
|
||||
type = string
|
||||
default = "postgresqlk8s-master.<id>.svc.k8s-3.ext.nubes.ru" # оставьте префикс и суффикс, меняется только <id>
|
||||
}
|
||||
```
|
||||
|
||||
```hcl title="terraform.tfvars"
|
||||
# Инструкция по получению токена: раздел "Получение API токена"
|
||||
api_token = "eyJhbGciOiJ..."
|
||||
```
|
||||
@@ -0,0 +1,53 @@
|
||||
# Глоссарий терминов
|
||||
|
||||
## Apply
|
||||
|
||||
Применение изменений, описанных в Terraform конфигурации. Выполняет создание, изменение или удаление ресурсов.
|
||||
|
||||
## Destroy
|
||||
|
||||
Полное удаление ресурсов, описанных в конфигурации. Выполняется командой `terraform destroy`.
|
||||
|
||||
## Import
|
||||
|
||||
Подключение уже существующего ресурса к Terraform state. Импорт не создает ресурс, а только добавляет его в состояние.
|
||||
|
||||
Короткий пример:
|
||||
|
||||
```bash
|
||||
terraform import nubes_vc_vm_v3.my_vm <resource_id>
|
||||
```
|
||||
|
||||
## Manifest (манифест)
|
||||
|
||||
Набор `.tf` файлов в одной папке, которые Terraform рассматривает как единую конфигурацию.
|
||||
|
||||
## Module
|
||||
|
||||
Переиспользуемая часть конфигурации Terraform. Может использоваться для шаблонов и типовых наборов ресурсов.
|
||||
|
||||
## Plan
|
||||
|
||||
Просмотр изменений, которые Terraform собирается применить. Выполняется командой `terraform plan`.
|
||||
|
||||
## Resource
|
||||
|
||||
Описание управляемого объекта в Terraform. Например, виртуальная машина или сеть.
|
||||
|
||||
## Stack (стек)
|
||||
|
||||
Отдельный набор ресурсов Terraform, управляемый собственным `terraform state`. Обычно это отдельная папка с `.tf` файлами.
|
||||
|
||||
## State
|
||||
|
||||
Файл состояния Terraform, в котором хранится информация о созданных ресурсах и их текущих параметрах.
|
||||
|
||||
Удаление ресурса только из state (без удаления в облаке):
|
||||
|
||||
```bash
|
||||
terraform state rm nubes_vc_vm_v3.my_vm
|
||||
```
|
||||
|
||||
## Workspace
|
||||
|
||||
Логическое разделение одного и того же набора конфигураций по разным окружениям. Имеет отдельные state.
|
||||
@@ -0,0 +1,79 @@
|
||||
# S3 Bucket Notifications: изменения в бакете и вызов функции
|
||||
|
||||
## Короткий ответ
|
||||
|
||||
Да, для S3-совместимого хранилища можно вызывать обработчик при изменениях в бакете через стандартный механизм уведомлений:
|
||||
|
||||
- событие в бакете (`ObjectCreated`, `ObjectRemoved`),
|
||||
- правило уведомления на бакете,
|
||||
- destination (webhook/queue/topic),
|
||||
- consumer/функция, которая принимает событие.
|
||||
|
||||
## Что проверено в нашем контуре
|
||||
|
||||
Проверка выполнялась удалённо (через SSH), не локально.
|
||||
|
||||
- API `deck-api-test.ngcloud.ru`:
|
||||
- есть общий endpoint `/notifications`,
|
||||
- явных endpoint'ов вида `bucketNotifications`, `events`, `webhooks` в этом API не обнаружено.
|
||||
- Документация `docs.s3.msk-1.ngcloud.ru`:
|
||||
- в публичных страницах не найден явный раздел про bucket notifications.
|
||||
- Прямая проверка S3-слоя:
|
||||
- `mc event ls <alias>/<bucket>` отработал успешно (код возврата `0`),
|
||||
- это подтверждает доступность стандартной S3 операции чтения notification-конфигурации;
|
||||
- пустой вывод означает, что правила ещё не заданы.
|
||||
|
||||
## Нужно ли задавать это при создании бакета
|
||||
|
||||
Рекомендуется задавать сразу в том же Terraform apply, но это отдельная конфигурация относительно самого факта создания бакета.
|
||||
|
||||
Практически правильно так:
|
||||
|
||||
1. Создать (или использовать) `S3 Storage service`.
|
||||
2. Создать бакет.
|
||||
3. Создать destination для событий (webhook/queue/topic).
|
||||
4. Назначить notification rule на бакет.
|
||||
5. Поднять consumer/функцию, которая обрабатывает событие.
|
||||
|
||||
## Как это выглядит архитектурно
|
||||
|
||||
```text
|
||||
Bucket (ObjectCreated/ObjectRemoved)
|
||||
-> Bucket Notification Rule
|
||||
-> Destination (Webhook / Queue / Topic)
|
||||
-> Function/Worker (business logic)
|
||||
```
|
||||
|
||||
## Что это значит для Terraform
|
||||
|
||||
Лучший путь: один модуль/стек, где декларативно описано сразу всё:
|
||||
|
||||
- bucket,
|
||||
- destination,
|
||||
- notification rule,
|
||||
- function/consumer.
|
||||
|
||||
Это даёт предсказуемый результат: после `apply` события бакета уже маршрутизируются в обработчик.
|
||||
|
||||
## Если notifications недоступны в конкретном backend
|
||||
|
||||
Fallback — polling:
|
||||
|
||||
- периодический опрос бакета,
|
||||
- сравнение состояния (`key + etag/version_id + mtime`),
|
||||
- вызов функции только на diff.
|
||||
|
||||
## Проверка и настройка через CLI
|
||||
|
||||
Пример скрипта в репозитории:
|
||||
|
||||
- `scripts/s3_notification_example.sh`
|
||||
|
||||
Скрипт:
|
||||
|
||||
- читает `.s3cfg`,
|
||||
- показывает текущие правила,
|
||||
- добавляет правило,
|
||||
- показывает итоговую конфигурацию.
|
||||
|
||||
> Важно: для `event add` нужен существующий destination (`TARGET_ARN`) в S3/MinIO-конфигурации.
|
||||
@@ -0,0 +1,99 @@
|
||||
# Справочник по Terraform для начинающих
|
||||
|
||||
Terraform — это инструмент для управления инфраструктурой как кодом (IaC). Он позволяет вам описывать желаемое состояние вашей инфраструктуры в текстовых файлах, а затем автоматически создавать, изменять и удалять облачные ресурсы, чтобы они соответствовали этому описанию.
|
||||
|
||||
Здесь собраны основные команды, которые вы будете использовать в 99% случаев.
|
||||
|
||||
## Основной рабочий процесс
|
||||
|
||||
### 1. `terraform init`
|
||||
|
||||
**"Инициализация"**
|
||||
|
||||
Первая команда, которую нужно выполнить в новой директории с конфигурацией.
|
||||
* Скачивает необходимые плагины (провайдеры), описанные в `main.tf`.
|
||||
* Настраивает "бэкенд" (хранилище состояния).
|
||||
|
||||
```bash
|
||||
terraform init
|
||||
```
|
||||
|
||||
### 2. `terraform validate`
|
||||
|
||||
**"Проверка синтаксиса"**
|
||||
|
||||
Проверяет ваши файлы конфигурации (`.tf`) на наличие синтаксических ошибок и корректность использования атрибутов. Не обращается к облаку, только статический анализ.
|
||||
|
||||
```bash
|
||||
terraform validate
|
||||
```
|
||||
|
||||
### 3. `terraform plan`
|
||||
|
||||
**"План действий"**
|
||||
|
||||
Самая важная команда для безопасности. Она сравнивает ваш код с реальным состоянием облака и показывает, что *произойдет*, если вы примените изменения.
|
||||
* `+` (зеленый): будет добавлено.
|
||||
* `~` (желтый): будет изменено.
|
||||
* `-` (красный): будет удалено.
|
||||
|
||||
```bash
|
||||
terraform plan
|
||||
```
|
||||
|
||||
### 4. `terraform apply`
|
||||
|
||||
**"Применение"**
|
||||
|
||||
Выполняет действия, запланированные на предыдущем шаге. Создает, меняет или удаляет реальные ресурсы в облаке Nubes.
|
||||
* Всегда запрашивает подтверждение `yes` перед стартом (если не указан флаг `-auto-approve`).
|
||||
|
||||
```bash
|
||||
terraform apply
|
||||
```
|
||||
|
||||
### 5. `terraform destroy`
|
||||
|
||||
**"Уничтожение"**
|
||||
|
||||
Удаляет **все** ресурсы, описанные в текущей конфигурации Terraform. Используйте осторожно, чтобы очистить тестовое окружение.
|
||||
* Также требует подтверждения `yes`.
|
||||
|
||||
```bash
|
||||
terraform destroy
|
||||
```
|
||||
|
||||
## Дополнительные полезные команды
|
||||
|
||||
* `terraform fmt`: Автоматически форматирует ваш код (расставляет отступы), делая его красивым и аккуратным.
|
||||
* `terraform output`: Выводит значения "outputs", если вы их определили (например, IP-адреса созданных серверов).
|
||||
* `terraform state list`: Показывает список ресурсов, про которые "знает" терраформ в данный момент.
|
||||
|
||||
## Когда использовать `terraform state rm`
|
||||
|
||||
`terraform state rm` удаляет ресурс **только из Terraform state**, но **не удаляет** его в облаке.
|
||||
|
||||
Используйте эту команду, когда:
|
||||
* ресурс уже удалён в облаке вручную/вне Terraform;
|
||||
* `plan` падает ошибкой вида "экземпляр ... удален";
|
||||
* нужно заставить Terraform считать ресурс новым и создать его заново на следующем `apply`.
|
||||
|
||||
Пример:
|
||||
|
||||
```bash
|
||||
terraform state rm nubes_postgres.db2
|
||||
terraform plan
|
||||
terraform apply
|
||||
```
|
||||
|
||||
### Отличие от `terraform import`
|
||||
|
||||
* `terraform state rm` — "забыть" ресурс в state.
|
||||
* `terraform import` — "подхватить" уже существующий ресурс в state.
|
||||
|
||||
Если ресурс в облаке действительно удалён, обычно нужен именно `state rm`, а не `import`.
|
||||
|
||||
---
|
||||
|
||||
!!! tip "Совет"
|
||||
Всегда выполняйте `terraform plan` перед `apply`, чтобы убедиться, что вы случайно не удаляете важные ресурсы.
|
||||
@@ -0,0 +1,67 @@
|
||||
# Структура Terraform проекта
|
||||
|
||||
## Почему важно разделять манифесты
|
||||
|
||||
Если ресурсы не зависят друг от друга, лучше разделять их по разным папкам или разным state. Тогда сбой одного ресурса не блокирует применение остальных.
|
||||
|
||||
Если ресурсы взаимозависимы (например, сеть -> ВМ), их стоит держать вместе, чтобы Terraform применял изменения в правильном порядке.
|
||||
|
||||
## Важно: все .tf в папке объединяются
|
||||
|
||||
Terraform рассматривает все `.tf` в одной папке как единый конфигурационный файл. Это значит:
|
||||
|
||||
- Все ресурсы и переменные в папке находятся в одном graph.
|
||||
- Ошибка одного ресурса может остановить `apply` для всех остальных.
|
||||
- При `destroy` Terraform будет удалять все ресурсы из этой папки.
|
||||
|
||||
## Рекомендуемая структура
|
||||
|
||||
- Один каталог = один независимый стек.
|
||||
- Для каждого стека отдельные `main.tf`, `variables.tf`, `outputs.tf`.
|
||||
- Для разных окружений использовать разные каталоги.
|
||||
|
||||
Пример:
|
||||
|
||||
```
|
||||
project/
|
||||
stacks/
|
||||
vm-a/
|
||||
main.tf
|
||||
variables.tf
|
||||
vm-b/
|
||||
main.tf
|
||||
variables.tf
|
||||
edge/
|
||||
main.tf
|
||||
variables.tf
|
||||
```
|
||||
|
||||
## Импорт ресурсов
|
||||
|
||||
Импорт используется, когда ресурс уже существует, но Terraform его не создавал.
|
||||
|
||||
Общий подход:
|
||||
|
||||
1. Создать ресурс в `.tf` с корректными аргументами.
|
||||
2. Выполнить `terraform import`.
|
||||
3. Сделать `terraform plan` и убедиться, что нет изменений.
|
||||
|
||||
Важно:
|
||||
|
||||
- Импорт добавляет ресурс в state, но не создает его.
|
||||
- После импорта нужно обязательно сверить параметры в `.tf`.
|
||||
|
||||
## Удаление ресурсов
|
||||
|
||||
Удаление зависит от того, где находится ресурс:
|
||||
|
||||
- Если ресурс прописан в `.tf`, Terraform удалит его при `destroy`.
|
||||
- Если ресурс удален из `.tf`, Terraform удалит его при следующем `apply`.
|
||||
|
||||
Рекомендация: перед удалением делать `plan`, чтобы увидеть список ресурсов, которые будут удалены.
|
||||
|
||||
## Что делать при ошибках
|
||||
|
||||
- Разделяйте независимые ресурсы по разным папкам.
|
||||
- Проверяйте `plan` перед `apply`.
|
||||
- Для проблемного ресурса работайте в его отдельном стеке.
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
description: Создание ИТ-инфраструктуры за считанные часы для вашего бизнеса на базе дата-центров Tier III в Москве. Экономьте на оборудовании. Платите за потребление.
|
||||
keywords: Нубес, Nubes, облачный провайдер, создание ит-инфраструктуры, дата-центр Tier III, облачная ит инфраструктура, облачный сервис, облачные решения
|
||||
---
|
||||
|
||||
# Nubes Terraform Provider
|
||||
|
||||
Добро пожаловать в документацию провайдера **Nubes**. Здесь собраны инструкции для пользователей по установке, настройке и работе с ресурсами.
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
- [Getting started](guides/getting-started.md)
|
||||
- [Terraform basics](guides/terraform-basics.md)
|
||||
|
||||
## Ресурсы
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
(function() {
|
||||
// Client-side trailing slash enforcer for dumb static servers
|
||||
var path = window.location.pathname;
|
||||
if (path.length > 1 && path.substr(-1) !== '/' && path.indexOf('.') === -1) {
|
||||
window.location.replace(path + '/' + window.location.search + window.location.hash);
|
||||
}
|
||||
})();
|
||||
@@ -0,0 +1,27 @@
|
||||
# Resource nubes_Akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
## Example
|
||||
|
||||
```hcl
|
||||
resource "nubes_akhq" "example" {
|
||||
# required params ...
|
||||
suspend_on_destroy = "suspend"
|
||||
adopt_existing_on_create = true
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,3 @@
|
||||
# Инструкция для Akhq
|
||||
|
||||
# Инструкция по развертыванию Apache Kafka через платформу<br/><br/>---<br/>## 1. Общая информация<br/>AKHQ — это веб-интерфейс для работы с кластерами Apache Kafka.<br/>Позволяет просматривать топики, consumer group'ы, сообщения, ACL, схему безопасности, состояние брокеров и метаданные.<br/>Поддерживает работу с несколькими кластерами Kafka одновременно, включая внутренние и внешние (TLS) подключения.<br/><br/>## Доступные операции<br/>- **create** — Создание ресурса AKHQ<br/>- **suspend** — Остановка ресурса<br/>- **resume** — Возобновление работы ресурса<br/>- **modify** — Модификация настроек<br/>- **delete** — Удаление ресурса<br/><br/>---<br/>## 2. Параметры развертывания кластера<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:<br/><br/>* **Кластер Kafka к которому нужно настроить подключение**<br/>Для использования AKHQ необходимо предварительно развернуть сервис Kafka. Пример: `kafka-external`.<br/><br/>* **Платформа для развертывания:**<br/>Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/>Количество узлов для работы Akhq. Пример `2`<br/><br/>* **Квота (megabyte) памяти пода:**<br/>Квота памяти пода в мегабайтах. Пример: `512`<br/><br/>* **Квота (millicore ) ядра пода:**<br/>Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`<br/><br/>* **Имя домена:**<br/>Dns Имя по которому будет происходить обращение к сервису. Указать необходимо уникальное имя до . ( то есть если необходимо получить dns ui) Пример: `kafka-external`<br/><br/>---<br/>## 4. Выходные параметры<br/>После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.<br/>Ключевым из них является:<br/><br/>**connectionUrl**<br/>Это полное доменное имя (FQDN), по которому будет доступен интерфейс AKHQ. После развёртывания подождите несколько минут — UI станет доступен по HTTPS, как только все сервисы полностью запустятся.<br/><br/>**Учетные данные**<br/>Здесь представлены поля для ввода логина и пароля, с помощью которых вы сможете авторизоваться в сервисе.<br/><br/>---<br/>## 5. Дополнительная информация<br/>Учётные записи, созданные для работы с AKHQ, предоставляют доступ только для просмотра данных. Для управления Kafka, пожалуйста, используйте возможности личного кабинета.<br/>---
|
||||
@@ -0,0 +1,17 @@
|
||||
# Resource nubes_Akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
@@ -0,0 +1,17 @@
|
||||
# Resource nubes_Akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
|
||||
[Overview](Akhq.md) | [Parameters](Akhq_params.md) | [Operations](Akhq_ops.md)
|
||||
@@ -0,0 +1,27 @@
|
||||
# Resource nubes_DEPRECATED
|
||||
|
||||
Service ID: `24`
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
## Example
|
||||
|
||||
```text
|
||||
resource "nubes_DEPRECATED" "example" {
|
||||
# required params ...
|
||||
delete_mode = "state_only"
|
||||
resume_if_exists = true
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,3 @@
|
||||
# Инструкция для DEPRECATED
|
||||
|
||||
Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ<br/>DEPRECATED
|
||||
@@ -0,0 +1,17 @@
|
||||
# Resource nubes_DEPRECATED
|
||||
|
||||
Service ID: `24`
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
@@ -0,0 +1,17 @@
|
||||
# Resource nubes_DEPRECATED
|
||||
|
||||
Service ID: `24`
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
|
||||
[Overview](DEPRECATED.md) | [Parameters](DEPRECATED_params.md) | [Operations](DEPRECATED_ops.md)
|
||||
@@ -0,0 +1,27 @@
|
||||
# Resource nubes_GiteaComplex
|
||||
|
||||
Service ID: `114`
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
## Example
|
||||
|
||||
```hcl
|
||||
resource "nubes_gitea_complex" "example" {
|
||||
# required params ...
|
||||
suspend_on_destroy = "state_only"
|
||||
adopt_existing_on_create = true
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,3 @@
|
||||
# Инструкция для GiteaComplex
|
||||
|
||||
Комплексная услуга из ["gittea", "postgres"]
|
||||
@@ -0,0 +1,17 @@
|
||||
# Resource nubes_GiteaComplex
|
||||
|
||||
Service ID: `114`
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
@@ -0,0 +1,17 @@
|
||||
# Resource nubes_GiteaComplex
|
||||
|
||||
Service ID: `114`
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
|
||||
[Overview](GiteaComplex.md) | [Parameters](GiteaComplex_params.md) | [Operations](GiteaComplex_ops.md)
|
||||
@@ -0,0 +1,92 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
## MAN
|
||||
|
||||
<div class="man-content">
|
||||
|
||||
# Инструкция по управлению кластерами и пользователями ClickHouse<br/><br/>---<br/><br/>## Общая информация<br/><br/>ClickHouse — это колоночная система управления базами данных, предназначенная для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.<br/><br/>Кластер создаётся через оператор Altinity (<code class="man-inline">https://github.com/Altinity/clickhouse-operator</code>) в ресурсной платформе типа <code class="man-inline">k8s</code><br/><br/>Кластеры могут создаваться шардированными с произвольным количеством реплик. Для обеспечения отказоустойчивости и координации обязательно включение параметра <code class="man-inline">Создать ClickHouse-Keeper</code>.<br/><br/>Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать услугу <code class="man-inline">S3 Object Storage</code>.<br/>---<br/><br/>## Доступные операции<br/><br/>* create — Создание кластера<br/>* delete — Удаление кластера<br/>* suspend — Приостановка работы кластера<br/>* resume — Возобновление работы кластера<br/>* create_database — Создание базы данных<br/>* delete_database — Удаление базы данных<br/>* create_user — Создание пользователя и настройка прав доступа к базе данных<br/>* delete_user — Удаление пользователя<br/><br/>## Процесс создания и первого подключения<br/><br/>1. Выполнить операцию <code class="man-inline">create</code> - будет создан кластер<br/>2. Выполнить операцию <code class="man-inline">create_database</code> - будет создана база данных<br/>3. Выполнить операцию <code class="man-inline">create_user</code> - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)<br/><br/>## Примеры подключения<br/><br/>### Подключение через HTTP-интерфейс<br/><br/><pre class="man-code language-bash"># Проверка доступности кластера
|
||||
<span class="man-kw">curl</span> "http://<username>:<password>@<host>:<span class="man-num">8123</span>/<span class="man-str">" -d "</span>SELECT 1<span class="man-str">"
|
||||
|
||||
# Выполнение запроса
|
||||
curl "</span>http://<username>:<password>@<host>:<span class="man-num">8123</span>/<span class="man-str">" -d "</span>SHOW DATABASES"</pre><br/><br/>## Простые кейсы<br/>*Создать БД и обычной таблицы*<br/><pre class="man-code language-clickhouse"><span class="man-kw">CREATE</span> <span class="man-kw">TABLE</span> <span class="man-ident">database.table</span>
|
||||
(
|
||||
id UInt64,
|
||||
value String
|
||||
)
|
||||
<span class="man-kw">ENGINE</span> = <span class="man-fn">MergeTree</span>()
|
||||
<span class="man-kw">ORDER</span> <span class="man-kw">BY</span> id;
|
||||
|
||||
<span class="man-kw">INSERT</span> <span class="man-kw">INTO</span> <span class="man-ident">database.table</span> <span class="man-kw">SELECT</span> number, <span class="man-fn">toString</span>(number) <span class="man-kw">FROM</span> <span class="man-fn">numbers</span>(<span class="man-num">10000000</span>);
|
||||
|
||||
<span class="man-kw">SELECT</span> <span class="man-kw">count</span>() <span class="man-kw">FROM</span> <span class="man-ident">database.table</span>;</pre><br/>Базы и таблицы не реплицируются без специального ключа (<code class="man-inline">ON CLUSTER 'clickhousek8s'</code>)<br/>В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах<br/><br/><br/>*Создание БД и шардированной таблицы*<br/><pre class="man-code language-clickhouse"><span class="man-kw">CREATE</span> <span class="man-kw">TABLE</span> <span class="man-ident">database.localUsers</span>
|
||||
(
|
||||
id UInt64,
|
||||
value String
|
||||
)
|
||||
<span class="man-kw">ENGINE</span> = <span class="man-fn">MergeTree</span>()
|
||||
<span class="man-kw">ORDER</span> <span class="man-kw">BY</span> id;
|
||||
|
||||
<span class="man-kw">CREATE</span> <span class="man-kw">TABLE</span> <span class="man-ident">database.shardedTable</span>
|
||||
<span class="man-kw">AS</span> localUsers
|
||||
<span class="man-kw">ENGINE</span> = <span class="man-fn">Distributed</span>(<span class="man-str">'clickhousek8s'</span>, <span class="man-str">'database'</span>, <span class="man-str">'localUsers'</span>, id);
|
||||
|
||||
<span class="man-kw">INSERT</span> <span class="man-kw">INTO</span> shardedTable <span class="man-kw">SELECT</span> number, <span class="man-fn">toString</span>(number) <span class="man-kw">FROM</span> <span class="man-fn">numbers</span>(<span class="man-num">10000000</span>);
|
||||
|
||||
<span class="man-kw">SELECT</span> <span class="man-kw">count</span>() <span class="man-kw">FROM</span> shardedTable;</pre><br/>Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse<br/><br/>*Создание реплицируемой и шардированной таблицы*<br/><pre class="man-code language-clickhouse"><span class="man-kw">CREATE</span> <span class="man-kw">TABLE</span> <span class="man-kw">IF</span> <span class="man-kw">NOT</span> <span class="man-kw">EXISTS</span> <span class="man-ident">database.localUsers</span> <span class="man-kw">ON</span> <span class="man-kw">cluster</span> <span class="man-str">'clickhousek8s'</span>
|
||||
(
|
||||
user_id UInt64,
|
||||
name String,
|
||||
email String
|
||||
)
|
||||
<span class="man-kw">ENGINE</span> = <span class="man-fn">ReplicatedMergeTree</span>(
|
||||
<span class="man-str">'/clickhouse/tables/{shard}/localUsers'</span>,
|
||||
<span class="man-str">'{replica}'</span>
|
||||
)
|
||||
<span class="man-kw">ORDER</span> <span class="man-kw">BY</span> user_id;
|
||||
|
||||
<span class="man-kw">CREATE</span> <span class="man-kw">TABLE</span> <span class="man-kw">IF</span> <span class="man-kw">NOT</span> <span class="man-kw">EXISTS</span> <span class="man-ident">database.users</span> <span class="man-kw">ON</span> <span class="man-kw">cluster</span> <span class="man-str">'clickhousek8s'</span>
|
||||
<span class="man-kw">AS</span> <span class="man-ident">database.localUsers</span>
|
||||
<span class="man-kw">ENGINE</span> = <span class="man-fn">Distributed</span>(<span class="man-str">'clickhousek8s'</span>, <span class="man-str">'database'</span>, <span class="man-str">'localUsers'</span>, rand());
|
||||
|
||||
<span class="man-kw">INSERT</span> <span class="man-kw">INTO</span> <span class="man-ident">database.users</span> <span class="man-kw">VALUES</span> (<span class="man-num">1</span>, <span class="man-str">'Alice'</span>, <span class="man-str">'alice@example.com'</span>);
|
||||
<span class="man-kw">INSERT</span> <span class="man-kw">INTO</span> <span class="man-ident">database.users</span> <span class="man-kw">VALUES</span> (<span class="man-num">2</span>, <span class="man-str">'Bob'</span>, <span class="man-str">'bob@example.com'</span>);
|
||||
<span class="man-kw">INSERT</span> <span class="man-kw">INTO</span> <span class="man-ident">database.users</span> <span class="man-kw">VALUES</span> (<span class="man-num">3</span>, <span class="man-str">'Charlie'</span>, <span class="man-str">'charlie@example.com'</span>);
|
||||
<span class="man-kw">INSERT</span> <span class="man-kw">INTO</span> <span class="man-ident">database.users</span> <span class="man-kw">VALUES</span> (<span class="man-num">4</span>, <span class="man-str">'David'</span>, <span class="man-str">'david@example.com'</span>);
|
||||
<span class="man-kw">INSERT</span> <span class="man-kw">INTO</span> <span class="man-ident">database.users</span> <span class="man-kw">VALUES</span> (<span class="man-num">5</span>, <span class="man-str">'Gosha'</span>, <span class="man-str">'gosha@example.com'</span>);
|
||||
<span class="man-kw">INSERT</span> <span class="man-kw">INTO</span> <span class="man-ident">database.users</span> <span class="man-kw">VALUES</span> (<span class="man-num">6</span>, <span class="man-str">'Eve'</span>, <span class="man-str">'eve@example.com'</span>);
|
||||
<span class="man-kw">INSERT</span> <span class="man-kw">INTO</span> <span class="man-ident">database.users</span> <span class="man-kw">VALUES</span> (<span class="man-num">7</span>, <span class="man-str">'Frank'</span>, <span class="man-str">'frank@example.com'</span>);
|
||||
<span class="man-kw">INSERT</span> <span class="man-kw">INTO</span> <span class="man-ident">database.users</span> <span class="man-kw">VALUES</span> (<span class="man-num">8</span>, <span class="man-str">'Grace'</span>, <span class="man-str">'grace@example.com'</span>);
|
||||
<span class="man-kw">INSERT</span> <span class="man-kw">INTO</span> <span class="man-ident">database.users</span> <span class="man-kw">VALUES</span> (<span class="man-num">9</span>, <span class="man-str">'Hannah'</span>, <span class="man-str">'hannah@example.com'</span>);
|
||||
<span class="man-kw">INSERT</span> <span class="man-kw">INTO</span> <span class="man-ident">database.users</span> <span class="man-kw">VALUES</span> (<span class="man-num">10</span>, <span class="man-str">'Ivan'</span>, <span class="man-str">'ivan@example.com'</span>);
|
||||
|
||||
<span class="man-kw">SELECT</span> * <span class="man-kw">FROM</span> <span class="man-ident">database.localUsers</span>;
|
||||
<span class="man-kw">SELECT</span> * <span class="man-kw">FROM</span> <span class="man-ident">database.users</span>;
|
||||
|
||||
<span class="man-kw">SELECT</span> <span class="man-kw">COUNT</span>(*) <span class="man-kw">AS</span> total_users <span class="man-kw">FROM</span> <span class="man-ident">database.users</span>;
|
||||
<span class="man-kw">SELECT</span> <span class="man-kw">COUNT</span>(*) <span class="man-kw">AS</span> total_users_local <span class="man-kw">FROM</span> <span class="man-ident">database.localUsers</span>;</pre>
|
||||
|
||||
- <code class="man-inline">state_params</code> (map) — параметры, отправленные в API при создании/изменении.
|
||||
- <code class="man-inline">state_out</code> (map) — ответ API с результатами/выходными значениями.
|
||||
- <code class="man-inline">state_params_flat</code> (map) — параметры в плоском виде (ключи с путями).
|
||||
- <code class="man-inline">state_out_flat</code> (map) — ответы в плоском виде (ключи с путями).
|
||||
- <code class="man-inline">vault_secrets</code> (map) — секреты, записанные в Vault для ресурса.
|
||||
- <code class="man-inline">vault_url</code> (string) — адрес Vault для ресурса.
|
||||
- <code class="man-inline">vault_user_path</code> (string) — путь пользователя в Vault.
|
||||
- <code class="man-inline">vault_fields</code> (list) — список ключей доступных секретов.
|
||||
</div>
|
||||
|
||||
## Summary
|
||||
|
||||
# Инструкция по управлению кластерами и пользователями ClickHouse
|
||||
|
||||
|
||||
## Lifecycle behavior
|
||||
|
||||
- If suspend/resume exist, delete maps to suspend and apply can resume.
|
||||
- Advanced users may override delete_mode and resume_if_exists.
|
||||
@@ -0,0 +1,20 @@
|
||||
# Resource nubes_clickhouse_database
|
||||
|
||||
Service: nubes_clickhouse
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
## Example
|
||||
|
||||
```hcl
|
||||
resource "nubes_clickhouse_database" "example" {
|
||||
clickhouse_id = nubes_clickhouse.example.id
|
||||
database_name = "TODO"
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse_database
|
||||
|
||||
Service: nubes_clickhouse
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse_database
|
||||
|
||||
Service: nubes_clickhouse
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
@@ -0,0 +1,58 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
## Copy-ready manifest (`clickhouse_main.tf`)
|
||||
|
||||
<div class="copy-ready-code"><pre><code><span class="token-keyword">terraform</span> {
|
||||
<span class="token-attr">required_providers</span> {
|
||||
<span class="token-name">nubes</span> = {
|
||||
<span class="token-attr">source</span> = <span class="token-value">"terra.k8c.ru/nubes/nubes"</span>
|
||||
<span class="token-attr">version</span> = <span class="token-value">"2.1.10"</span> <span class="token-comment"># Для определения актуальной версии наберите в терминале terraform version</span>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<span class="token-comment"># Токен доступа api_token к Nubes API — замените на реальный.</span>
|
||||
<span class="token-keyword">provider</span> <span class="token-name">"nubes"</span> {
|
||||
<span class="token-attr">api_token</span> = <span class="token-value">"token_***"</span>
|
||||
<span class="token-attr">api_endpoint</span> = <span class="token-value">"https://deck-api.ngcloud.ru/api/v1/index.cfm"</span>
|
||||
}
|
||||
<span class="token-keyword">resource</span> <span class="token-type">"nubes_clickhouse"</span> <span class="token-name">"baza"</span> {
|
||||
<span class="token-comment"># TODO - обязательный параметр, задаваемый пользователем</span>
|
||||
<span class="token-attr">resourceRealm</span> = <span class="token-value">"TODO"</span> <span class="token-comment"># Кластер Kubernetes в котором будет развернуто приложение, например "k8s-3.ext.nubes.ru"</span>
|
||||
<span class="token-attr">s3Uid</span> = <span class="token-value">"TODO"</span> <span class="token-comment"># Экземпляр (учетная запись) S3, это имя S3 Object Storage</span>
|
||||
|
||||
<span class="token-comment"># Параметры, имеющие значение по умолчанию, если не меняете - эти параметры не обязательно прописывать в манифесте</span>
|
||||
<span class="token-attr">resourceInstances</span> = <span class="token-value">1</span>
|
||||
<span class="token-attr">resourceInstancesShards</span> = <span class="token-value">1</span>
|
||||
<span class="token-attr">resourceCPU</span> = <span class="token-value">1000</span>
|
||||
<span class="token-attr">resourceMemory</span> = <span class="token-value">1536</span>
|
||||
<span class="token-attr">appVersion</span> = <span class="token-value">"25.10"</span>
|
||||
<span class="token-attr">resourceDisk</span> = <span class="token-value">10</span>
|
||||
<span class="token-attr">needExternalAddressMaster</span> = <span class="token-value">false</span>
|
||||
<span class="token-attr">needCreateKeeper</span> = <span class="token-value">true</span>
|
||||
<span class="token-attr">resourceCPUKeeper</span> = <span class="token-value">50</span>
|
||||
<span class="token-attr">resourceMemoryKeeper</span> = <span class="token-value">152</span>
|
||||
<span class="token-attr">resourceInstancesKeeper</span> = <span class="token-value">1</span>
|
||||
<span class="token-attr">ext_BACKUP_SCHEDULE</span> = <span class="token-value">"0 0 * * *"</span>
|
||||
<span class="token-attr">ext_BACKUP_NUM_TO_RETAIN</span> = <span class="token-value">7</span>
|
||||
}
|
||||
</code></pre></div>
|
||||
|
||||
## Outputs usage
|
||||
|
||||
<div class="copy-ready-code"><pre><code><span class="token-comment"># Выходные параметры можно использовать как</span>
|
||||
<span class="token-type">nubes_clickhouse</span>.<span class="token-name">baza</span>.<span class="token-attr">state_params</span>[<span class="token-value">"имя_ключа"</span>]
|
||||
<span class="token-type">nubes_clickhouse</span>.<span class="token-name">baza</span>.<span class="token-attr">state_out</span>[<span class="token-value">"имя_ключа"</span>]
|
||||
<span class="token-type">nubes_clickhouse</span>.<span class="token-name">baza</span>.<span class="token-attr">state_params_flat</span>[<span class="token-value">"имя_ключа"</span>]
|
||||
<span class="token-type">nubes_clickhouse</span>.<span class="token-name">baza</span>.<span class="token-attr">state_out_flat</span>[<span class="token-value">"имя_ключа"</span>]
|
||||
<span class="token-type">nubes_clickhouse</span>.<span class="token-name">baza</span>.<span class="token-attr">vault_secrets</span>[<span class="token-value">"имя_ключа"</span>]
|
||||
<span class="token-type">nubes_clickhouse</span>.<span class="token-name">baza</span>.<span class="token-attr">vault_url</span>
|
||||
<span class="token-type">nubes_clickhouse</span>.<span class="token-name">baza</span>.<span class="token-attr">vault_user_path</span>
|
||||
<span class="token-type">nubes_clickhouse</span>.<span class="token-name">baza</span>.<span class="token-attr">vault_fields</span>
|
||||
</code></pre></div>
|
||||
@@ -0,0 +1,3 @@
|
||||
# Инструкция для clickhouse
|
||||
|
||||
# Инструкция по управлению кластерами и пользователями ClickHouse<br/><br/>---<br/><br/>## Общая информация<br/><br/>ClickHouse — это колоночная система управления базами данных, предназначенная для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.<br/><br/>Кластер создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`<br/><br/>Кластеры могут создаваться шардированными с произвольным количеством реплик. Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.<br/><br/>Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать услугу `S3 Object Storage`.<br/>---<br/><br/>## Доступные операции<br/><br/>* **create** — Создание кластера<br/>* **delete** — Удаление кластера<br/>* **suspend** — Приостановка работы кластера<br/>* **resume** — Возобновление работы кластера<br/>* **create_database** — Создание базы данных<br/>* **delete_database** — Удаление базы данных<br/>* **create_user** — Создание пользователя и настройка прав доступа к базе данных<br/>* **delete_user** — Удаление пользователя<br/><br/>## Процесс создания и первого подключения<br/><br/>1. Выполнить операцию `create` - будет создан кластер<br/>2. Выполнить операцию `create_database` - будет создана база данных<br/>3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)<br/><br/>## Примеры подключения<br/><br/>### Подключение через HTTP-интерфейс<br/><br/>```bash<br/># Проверка доступности кластера<br/>curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"<br/><br/># Выполнение запроса<br/>curl "http://<username>:<password>@<host>:8123/" -d "SHOW DATABASES"<br/>```<br/><br/>## Простые кейсы<br/>*Создать БД и обычной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.table<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM database.table;<br/>```<br/>Базы и таблицы не реплицируются без специального ключа (`ON CLUSTER 'clickhousek8s'`)<br/>В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах<br/><br/><br/>*Создание БД и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.localUsers<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>CREATE TABLE database.shardedTable<br/>AS localUsers<br/>ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', id);<br/><br/>INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM shardedTable;<br/>```<br/>Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse<br/><br/>*Создание реплицируемой и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE IF NOT EXISTS database.localUsers ON cluster 'clickhousek8s'<br/>(<br/> user_id UInt64,<br/> name String,<br/> email String<br/>)<br/>ENGINE = ReplicatedMergeTree(<br/> '/clickhouse/tables/{shard}/localUsers',<br/> '{replica}'<br/>)<br/>ORDER BY user_id;<br/><br/>CREATE TABLE IF NOT EXISTS database.users ON cluster 'clickhousek8s'<br/>AS database.localUsers<br/>ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', rand());<br/><br/>INSERT INTO database.users VALUES (1, 'Alice', 'alice@example.com');<br/>INSERT INTO database.users VALUES (2, 'Bob', 'bob@example.com');<br/>INSERT INTO database.users VALUES (3, 'Charlie', 'charlie@example.com');<br/>INSERT INTO database.users VALUES (4, 'David', 'david@example.com');<br/>INSERT INTO database.users VALUES (5, 'Gosha', 'gosha@example.com');<br/>INSERT INTO database.users VALUES (6, 'Eve', 'eve@example.com');<br/>INSERT INTO database.users VALUES (7, 'Frank', 'frank@example.com');<br/>INSERT INTO database.users VALUES (8, 'Grace', 'grace@example.com');<br/>INSERT INTO database.users VALUES (9, 'Hannah', 'hannah@example.com');<br/>INSERT INTO database.users VALUES (10, 'Ivan', 'ivan@example.com');<br/><br/>SELECT * FROM database.localUsers;<br/>SELECT * FROM database.users;<br/><br/>SELECT COUNT(*) AS total_users FROM database.users;<br/>SELECT COUNT(*) AS total_users_local FROM database.localUsers;<br/>```
|
||||
@@ -0,0 +1,3 @@
|
||||
# MAN: clickhouse
|
||||
|
||||
# Инструкция по управлению кластерами и пользователями ClickHouse<br/><br/>---<br/><br/>## Общая информация<br/><br/>ClickHouse — это колоночная система управления базами данных, предназначенная для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.<br/><br/>Кластер создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`<br/><br/>Кластеры могут создаваться шардированными с произвольным количеством реплик. Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.<br/><br/>Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать услугу `S3 Object Storage`.<br/>---<br/><br/>## Доступные операции<br/><br/>* **create** — Создание кластера<br/>* **delete** — Удаление кластера<br/>* **suspend** — Приостановка работы кластера<br/>* **resume** — Возобновление работы кластера<br/>* **create_database** — Создание базы данных<br/>* **delete_database** — Удаление базы данных<br/>* **create_user** — Создание пользователя и настройка прав доступа к базе данных<br/>* **delete_user** — Удаление пользователя<br/><br/>## Процесс создания и первого подключения<br/><br/>1. Выполнить операцию `create` - будет создан кластер<br/>2. Выполнить операцию `create_database` - будет создана база данных<br/>3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)<br/><br/>## Примеры подключения<br/><br/>### Подключение через HTTP-интерфейс<br/><br/>```bash<br/># Проверка доступности кластера<br/>curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"<br/><br/># Выполнение запроса<br/>curl "http://<username>:<password>@<host>:8123/" -d "SHOW DATABASES"<br/>```<br/><br/>## Простые кейсы<br/>*Создать БД и обычной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.table<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM database.table;<br/>```<br/>Базы и таблицы не реплицируются без специального ключа (`ON CLUSTER 'clickhousek8s'`)<br/>В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах<br/><br/><br/>*Создание БД и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.localUsers<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>CREATE TABLE database.shardedTable<br/>AS localUsers<br/>ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', id);<br/><br/>INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM shardedTable;<br/>```<br/>Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse<br/><br/>*Создание реплицируемой и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE IF NOT EXISTS database.localUsers ON cluster 'clickhousek8s'<br/>(<br/> user_id UInt64,<br/> name String,<br/> email String<br/>)<br/>ENGINE = ReplicatedMergeTree(<br/> '/clickhouse/tables/{shard}/localUsers',<br/> '{replica}'<br/>)<br/>ORDER BY user_id;<br/><br/>CREATE TABLE IF NOT EXISTS database.users ON cluster 'clickhousek8s'<br/>AS database.localUsers<br/>ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', rand());<br/><br/>INSERT INTO database.users VALUES (1, 'Alice', 'alice@example.com');<br/>INSERT INTO database.users VALUES (2, 'Bob', 'bob@example.com');<br/>INSERT INTO database.users VALUES (3, 'Charlie', 'charlie@example.com');<br/>INSERT INTO database.users VALUES (4, 'David', 'david@example.com');<br/>INSERT INTO database.users VALUES (5, 'Gosha', 'gosha@example.com');<br/>INSERT INTO database.users VALUES (6, 'Eve', 'eve@example.com');<br/>INSERT INTO database.users VALUES (7, 'Frank', 'frank@example.com');<br/>INSERT INTO database.users VALUES (8, 'Grace', 'grace@example.com');<br/>INSERT INTO database.users VALUES (9, 'Hannah', 'hannah@example.com');<br/>INSERT INTO database.users VALUES (10, 'Ivan', 'ivan@example.com');<br/><br/>SELECT * FROM database.localUsers;<br/>SELECT * FROM database.users;<br/><br/>SELECT COUNT(*) AS total_users FROM database.users;<br/>SELECT COUNT(*) AS total_users_local FROM database.localUsers;<br/>```
|
||||
@@ -0,0 +1,20 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
## Operations
|
||||
|
||||
- `create` — Создание кластера. Параметры: [Create params](clickhouse_params_create.md)
|
||||
- `modify` — Изменение кластера. Параметры: [Modify params](clickhouse_params_modify.md)
|
||||
- `delete` — Удаление кластера (после `suspend`, требуется время на остановку)
|
||||
- `suspend` — Остановка кластера (pods удаляются, PV остаются)
|
||||
- `resume` — Возобновление работы кластера
|
||||
- `create_database` — Создание базы данных. См. [nubes_clickhouse_database](clickhouse_database.md)
|
||||
- `delete_database` — Удаление базы данных. См. [nubes_clickhouse_database](clickhouse_database.md)
|
||||
- `create_user` — Создание пользователя. См. [nubes_clickhouse_user](clickhouse_user.md)
|
||||
- `delete_user` — Удаление пользователя. См. [nubes_clickhouse_user](clickhouse_user.md)
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
## Output params
|
||||
|
||||
- `state_params` (map) — параметры, отправленные в API при создании/изменении.
|
||||
- `state_out` (map) — ответ API с результатами/выходными значениями.
|
||||
- `state_params_flat` (map) — параметры в плоском виде (ключи с путями).
|
||||
- `state_out_flat` (map) — ответы в плоском виде (ключи с путями).
|
||||
- `vault_secrets` (map) — секреты, записанные в Vault для ресурса.
|
||||
- `vault_url` (string) — адрес Vault для ресурса.
|
||||
- `vault_user_path` (string) — путь пользователя в Vault.
|
||||
- `vault_fields` (list) — список ключей доступных секретов.
|
||||
@@ -0,0 +1,12 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
## Parameters
|
||||
|
||||
- [Create params](clickhouse_params_create.md)
|
||||
- [Modify params](clickhouse_params_modify.md)
|
||||
@@ -0,0 +1,47 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
## Create params
|
||||
|
||||
**Обязательные параметры (вводимые пользователем)**
|
||||
|
||||
<table class="resource-table resource-table-compact resource-table-required">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>572</td><td><strong><code class="code-no-wrap">resourceRealm</code></strong></td><td><code>string</code></td><td>Выбрать платформу из списка<br/><br/>**Если список не отображается**<br/>обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы</td><td>func=getAvailableResourceRealms</td></tr>
|
||||
<tr><td>573</td><td><strong><code class="code-no-wrap">s3Uid</code></strong></td><td><code>uuid</code></td><td>**Если список не отображается** <br/>перейдите в раздел `S3 Object Storage` <br/>операция `create`</td><td>ref_svc_id=12</td></tr>
|
||||
<tr><td>581</td><td><strong><code class="code-no-wrap">ipSpaceNameMaster</code></strong></td><td><code>string</code></td><td>Имя ipSpace для публикации внешнего адреса<br/><br/>Не может быть пустым, если включен `Выделение белого ip для master ноды`</td><td></td></tr>
|
||||
</tbody></table>
|
||||
|
||||
**Параметры, имеющие значение по умолчанию, если не меняете - эти параметры не обязательно прописывать в манифесте**
|
||||
|
||||
<table class="resource-table resource-table-compact">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>574</td><td><strong><code class="code-no-wrap">resourceInstances</code></strong></td><td><code>integer</code></td><td><code>1</code></td><td>**Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper`</td><td>minvalue=1; maxvalue=7</td></tr>
|
||||
<tr><td>575</td><td><strong><code class="code-no-wrap">resourceInstancesShards</code></strong></td><td><code>integer</code></td><td><code>1</code></td><td>**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации. <br/>**Реплика** - это точная копия данных внутри одного шарда</td><td>minvalue=1; maxvalue=7</td></tr>
|
||||
<tr><td>576</td><td><strong><code class="code-no-wrap">resourceCPU</code></strong></td><td><code>integer</code></td><td><code>1000</code></td><td>Указывается в Milicores<br/>`1000` Mili == `1` Ядро</td><td>minvalue=1000; maxvalue=8000</td></tr>
|
||||
<tr><td>577</td><td><strong><code class="code-no-wrap">resourceMemory</code></strong></td><td><code>integer</code></td><td><code>1536</code></td><td>Указывается в Megabytes</td><td>minvalue=1536; maxvalue=8192</td></tr>
|
||||
<tr><td>578</td><td><strong><code class="code-no-wrap">appVersion</code></strong></td><td><code>string</code></td><td><code>25.10</code></td><td>Версия `clickhouse-server`</td><td>value_list=25.10</td></tr>
|
||||
<tr><td>579</td><td><strong><code class="code-no-wrap">resourceDisk</code></strong></td><td><code>integer</code></td><td><code>10</code></td><td>Указывается в Gigabytes</td><td>minvalue=1; maxvalue=999</td></tr>
|
||||
<tr><td>580</td><td><strong><code class="code-no-wrap">needExternalAddressMaster</code></strong></td><td><code>boolean</code></td><td><code>false</code></td><td>Для выделения IP также необходимо указать имя Ip-space.<br/>Его можно получить из свойств ресурсной платформы</td><td>value_list=false, true</td></tr>
|
||||
<tr><td>582</td><td><strong><code class="code-no-wrap">needCreateKeeper</code></strong></td><td><code>boolean</code></td><td><code>true</code></td><td>Аналог `Zookeeper`, представленный от ClickHouse</td><td>value_list=false, true</td></tr>
|
||||
<tr><td>583</td><td><strong><code class="code-no-wrap">resourceCPUKeeper</code></strong></td><td><code>integer</code></td><td><code>50</code></td><td>Указывается в Milicores<br/>`1000` Mili == `1` Ядро</td><td>minvalue=50; maxvalue=8000</td></tr>
|
||||
<tr><td>584</td><td><strong><code class="code-no-wrap">resourceMemoryKeeper</code></strong></td><td><code>integer</code></td><td><code>152</code></td><td>Указывается в Megabytes</td><td>minvalue=152; maxvalue=8192</td></tr>
|
||||
<tr><td>585</td><td><strong><code class="code-no-wrap">resourceInstancesKeeper</code></strong></td><td><code>integer</code></td><td><code>1</code></td><td>Для **теста** - 1 нода. <br/>Для **продуктива** - 3 ноды</td><td>minvalue=1; maxvalue=3; value_list=1, 3</td></tr>
|
||||
<tr><td>586</td><td><strong><code class="code-no-wrap">ext_BACKUP_SCHEDULE</code></strong></td><td><code>string</code></td><td><code>0 0 * * *</code></td><td>Принимает формат `CRON`</td><td>regex=^((((\d+,)+\d+|(\d+(\/-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$</td></tr>
|
||||
<tr><td>587</td><td><strong><code class="code-no-wrap">ext_BACKUP_NUM_TO_RETAIN</code></strong></td><td><code>integer</code></td><td><code>7</code></td><td>Кол-во **полных** резервных копий<br/>Кол-во инкрементов - неограничено<br/><br/>Полная резервная копия выполняется раз в неделю<br/>*Если изначально полной резервной копии нет* выполняется полный бекап<br/>В остальные дни по крону выполняются **инкременты**</td><td>minvalue=3; maxvalue=60</td></tr>
|
||||
</tbody></table>
|
||||
|
||||
<div class="lifecycle-note">
|
||||
<strong>Параметры жизненного цикла (Lifecycle defaults)</strong><br/>
|
||||
По умолчанию: `delete_mode_default = suspend`, `resume_if_exists_default = True`.<br/>
|
||||
Если для сервиса доступны операции `suspend` и `resume`, то `delete` выполняет приостановку (без удаления данных),<br/>
|
||||
а `apply` при необходимости возобновляет работу существующего ресурса.<br/>
|
||||
Менять эти значения стоит только в продвинутых сценариях — через параметры `delete_mode` и `resume_if_exists` в манифесте.
|
||||
</div>
|
||||
@@ -0,0 +1,28 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
## Modify params
|
||||
|
||||
<table class="resource-table resource-table-compact">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>603</td><td><strong><code class="code-no-wrap">resourceInstances</code></strong></td><td><code>integer</code></td><td>**Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper`</td><td>minvalue=1; maxvalue=7</td></tr>
|
||||
<tr><td>604</td><td><strong><code class="code-no-wrap">resourceInstancesShards</code></strong></td><td><code>integer</code></td><td>**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации. <br/>**Реплика** - это точная копия данных внутри одного шарда</td><td>minvalue=1; maxvalue=7</td></tr>
|
||||
<tr><td>605</td><td><strong><code class="code-no-wrap">resourceCPU</code></strong></td><td><code>integer</code></td><td>Указывается в Milicores<br/>`1000` Mili == `1` Ядро</td><td>minvalue=1000; maxvalue=8000</td></tr>
|
||||
<tr><td>606</td><td><strong><code class="code-no-wrap">resourceMemory</code></strong></td><td><code>integer</code></td><td>Указывается в Megabytes</td><td>minvalue=1536; maxvalue=8192</td></tr>
|
||||
<tr><td>607</td><td><strong><code class="code-no-wrap">appVersion</code></strong></td><td><code>string</code></td><td>Версия `clickhouse-server`</td><td></td></tr>
|
||||
<tr><td>608</td><td><strong><code class="code-no-wrap">resourceDisk</code></strong></td><td><code>integer</code></td><td>Указывается в Gigabytes<br/>**Нельзя** выставлять меньше текущего значения</td><td>minvalue=1; maxvalue=999</td></tr>
|
||||
<tr><td>609</td><td><strong><code class="code-no-wrap">needExternalAddressMaster</code></strong></td><td><code>boolean</code></td><td>Для выделения IP также необходимо указать имя Ip-space.<br/>Его можно получить из свойств ресурсной платформы</td><td>value_list=false, true</td></tr>
|
||||
<tr><td>610</td><td><strong><code class="code-no-wrap">ipSpaceNameMaster</code></strong></td><td><code>string</code></td><td>Имя ipSpace для публикации внешнего адреса<br/><br/>Не может быть пустым, если включен `Выделение белого ip для master ноды`</td><td></td></tr>
|
||||
<tr><td>611</td><td><strong><code class="code-no-wrap">needCreateKeeper</code></strong></td><td><code>boolean</code></td><td>Аналог `Zookeeper`, представленный от ClickHouse</td><td>value_list=false, true</td></tr>
|
||||
<tr><td>612</td><td><strong><code class="code-no-wrap">resourceCPUKeeper</code></strong></td><td><code>integer</code></td><td>Указывается в Milicores<br/>`1000` Mili == `1` Ядро</td><td>minvalue=50; maxvalue=8000</td></tr>
|
||||
<tr><td>613</td><td><strong><code class="code-no-wrap">resourceMemoryKeeper</code></strong></td><td><code>integer</code></td><td>Указывается в Megabytes</td><td>minvalue=152; maxvalue=8192</td></tr>
|
||||
<tr><td>614</td><td><strong><code class="code-no-wrap">resourceInstancesKeeper</code></strong></td><td><code>integer</code></td><td>Для **теста** - 1 нода. <br/>Для **продуктива** - 3 ноды</td><td>minvalue=1; maxvalue=3; value_list=1, 3</td></tr>
|
||||
<tr><td>615</td><td><strong><code class="code-no-wrap">ext_BACKUP_SCHEDULE</code></strong></td><td><code>string</code></td><td>Принимает формат `CRON`</td><td>regex=^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$</td></tr>
|
||||
<tr><td>616</td><td><strong><code class="code-no-wrap">ext_BACKUP_NUM_TO_RETAIN</code></strong></td><td><code>integer</code></td><td>Кол-во **полных** резервных копий<br/>Кол-во инкрементов - неограничено<br/><br/>Полная резервная копия выполняется раз в неделю<br/>*Если изначально полной резервной копии нет* выполняется полный бекап<br/>В остальные дни по крону выполняются **инкременты**</td><td>minvalue=3; maxvalue=60</td></tr>
|
||||
</tbody></table>
|
||||
@@ -0,0 +1,22 @@
|
||||
# Resource nubes_clickhouse_user
|
||||
|
||||
Service: nubes_clickhouse
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
## Example
|
||||
|
||||
```hcl
|
||||
resource "nubes_clickhouse_user" "example" {
|
||||
clickhouse_id = nubes_clickhouse.example.id
|
||||
username = "TODO"
|
||||
database_name = ["database"]
|
||||
access_hosts = ::/0
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse_user
|
||||
|
||||
Service: nubes_clickhouse
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse_user
|
||||
|
||||
Service: nubes_clickhouse
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
@@ -0,0 +1,13 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
## MAN
|
||||
|
||||
<div class="man-content">
|
||||
# Инструкция по развертыванию Apache Kafka через платформу<br/><br/>---<br/>## 1. Общая информация<br/>AKHQ — это веб-интерфейс для работы с кластерами Apache Kafka.<br/>Позволяет просматривать топики, consumer group'ы, сообщения, ACL, схему безопасности, состояние брокеров и метаданные.<br/>Поддерживает работу с несколькими кластерами Kafka одновременно, включая внутренние и внешние (TLS) подключения.<br/><br/>## Доступные операции<br/>- **create** — Создание ресурса AKHQ<br/>- **suspend** — Остановка ресурса<br/>- **resume** — Возобновление работы ресурса<br/>- **modify** — Модификация настроек<br/>- **delete** — Удаление ресурса<br/><br/>---<br/>## 2. Параметры развертывания кластера<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:<br/><br/>* **Кластер Kafka к которому нужно настроить подключение**<br/>Для использования AKHQ необходимо предварительно развернуть сервис Kafka. Пример: `kafka-external`.<br/><br/>* **Платформа для развертывания:**<br/>Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/>Количество узлов для работы Akhq. Пример `2`<br/><br/>* **Квота (megabyte) памяти пода:**<br/>Квота памяти пода в мегабайтах. Пример: `512`<br/><br/>* **Квота (millicore ) ядра пода:**<br/>Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`<br/><br/>* **Имя домена:**<br/>Dns Имя по которому будет происходить обращение к сервису. Указать необходимо уникальное имя до . ( то есть если необходимо получить dns ui) Пример: `kafka-external`<br/><br/>---<br/>## 4. Выходные параметры<br/>После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.<br/>Ключевым из них является:<br/><br/>**connectionUrl**<br/>Это полное доменное имя (FQDN), по которому будет доступен интерфейс AKHQ. После развёртывания подождите несколько минут — UI станет доступен по HTTPS, как только все сервисы полностью запустятся.<br/><br/>**Учетные данные**<br/>Здесь представлены поля для ввода логина и пароля, с помощью которых вы сможете авторизоваться в сервисе.<br/><br/>---<br/>## 5. Дополнительная информация<br/>Учётные записи, созданные для работы с AKHQ, предоставляют доступ только для просмотра данных. Для управления Kafka, пожалуйста, используйте возможности личного кабинета.<br/>---
|
||||
</div>
|
||||
@@ -0,0 +1,50 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
## Copy-ready manifest (`akhq_main.tf`)
|
||||
|
||||
```hcl
|
||||
terraform {
|
||||
required_providers {
|
||||
nubes = {
|
||||
source = "terra.k8c.ru/nubes/nubes"
|
||||
version = "2.1.23"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Токен доступа api_token к Nubes API — замените на реальный.
|
||||
provider "nubes" {
|
||||
api_token = "token_***"
|
||||
api_endpoint = "https://deck-api.ngcloud.ru/api/v1/index.cfm"
|
||||
}
|
||||
resource "nubes_akhq" "baza" {
|
||||
resource_realm = "TODO" # Выбрать платформу из списка
|
||||
domain = "TODO" # Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
|
||||
kafka_uid = "TODO" # Выбрать кластер из списка
|
||||
|
||||
# Параметры, имеющие значение по умолчанию, если не меняете - эти параметры не обязательно прописывать в манифесте
|
||||
resource_memory = 512 # Пример: `1024`
|
||||
resource_c_p_u = 500 # Пример: `1000`
|
||||
resource_instances = 1
|
||||
}
|
||||
```
|
||||
|
||||
## Outputs usage
|
||||
|
||||
```hcl
|
||||
# Выходные параметры можно использовать как
|
||||
nubes_akhq.baza.state_params["имя_ключа"]
|
||||
nubes_akhq.baza.state_out["имя_ключа"]
|
||||
nubes_akhq.baza.state_params_flat["имя_ключа"]
|
||||
nubes_akhq.baza.state_out_flat["имя_ключа"]
|
||||
nubes_akhq.baza.vault_secrets["имя_ключа"]
|
||||
nubes_akhq.baza.vault_url
|
||||
nubes_akhq.baza.vault_user_path
|
||||
nubes_akhq.baza.vault_fields
|
||||
```
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
[Overview](akhq_example.md) | [Parameters](akhq_example_params.md) | [Operations](akhq_example_ops.md)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
[Overview](akhq_example.md) | [Parameters](akhq_example_params.md) | [Operations](akhq_example_ops.md)
|
||||
@@ -0,0 +1,3 @@
|
||||
# MAN: akhq
|
||||
|
||||
# Инструкция по развертыванию Apache Kafka через платформу<br/><br/>---<br/>## 1. Общая информация<br/>AKHQ — это веб-интерфейс для работы с кластерами Apache Kafka.<br/>Позволяет просматривать топики, consumer group'ы, сообщения, ACL, схему безопасности, состояние брокеров и метаданные.<br/>Поддерживает работу с несколькими кластерами Kafka одновременно, включая внутренние и внешние (TLS) подключения.<br/><br/>## Доступные операции<br/>- **create** — Создание ресурса AKHQ<br/>- **suspend** — Остановка ресурса<br/>- **resume** — Возобновление работы ресурса<br/>- **modify** — Модификация настроек<br/>- **delete** — Удаление ресурса<br/><br/>---<br/>## 2. Параметры развертывания кластера<br/>Ниже перечислены параметры, которые необходимо указать при создании ресурса Kafka:<br/><br/>* **Кластер Kafka к которому нужно настроить подключение**<br/>Для использования AKHQ необходимо предварительно развернуть сервис Kafka. Пример: `kafka-external`.<br/><br/>* **Платформа для развертывания:**<br/>Платформа для развертывания (среда, в которой будет развернут кластер). Пример: `k8s-3.ext.nubes.ru`.<br/><br/>* **Количество узлов в сети:**<br/>Количество узлов для работы Akhq. Пример `2`<br/><br/>* **Квота (megabyte) памяти пода:**<br/>Квота памяти пода в мегабайтах. Пример: `512`<br/><br/>* **Квота (millicore ) ядра пода:**<br/>Квота CPU пода в миликорах (1000 mCPU = 1 vCPU). Пример: `500`<br/><br/>* **Имя домена:**<br/>Dns Имя по которому будет происходить обращение к сервису. Указать необходимо уникальное имя до . ( то есть если необходимо получить dns ui) Пример: `kafka-external`<br/><br/>---<br/>## 4. Выходные параметры<br/>После успешного развертывания ресурса Kafka платформа возвращает ряд параметров.<br/>Ключевым из них является:<br/><br/>**connectionUrl**<br/>Это полное доменное имя (FQDN), по которому будет доступен интерфейс AKHQ. После развёртывания подождите несколько минут — UI станет доступен по HTTPS, как только все сервисы полностью запустятся.<br/><br/>**Учетные данные**<br/>Здесь представлены поля для ввода логина и пароля, с помощью которых вы сможете авторизоваться в сервисе.<br/><br/>---<br/>## 5. Дополнительная информация<br/>Учётные записи, созданные для работы с AKHQ, предоставляют доступ только для просмотра данных. Для управления Kafka, пожалуйста, используйте возможности личного кабинета.<br/>---
|
||||
@@ -0,0 +1,15 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
## Operations
|
||||
|
||||
- `create` — Создание кластера. Параметры: [Create params](akhq_params_create.md)
|
||||
- `delete`
|
||||
- `modify` — Изменение кластера. Параметры: [Modify params](akhq_params_modify.md)
|
||||
- `resume`
|
||||
- `suspend`
|
||||
@@ -0,0 +1,41 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
## Output params
|
||||
|
||||
- `state_params` (map) — параметры, отправленные в API при создании/изменении
|
||||
- `state_out` (map) — ответ API с результатами/выходными значениями
|
||||
- `state_params_flat` (map) — параметры в плоском виде (ключи с путями)
|
||||
- `state_out_flat` (map) — ответы в плоском виде (ключи с путями)
|
||||
- `vault_secrets` (map) — секреты, записанные в Vault для ресурса
|
||||
- `vault_url` (string) — адрес Vault для ресурса
|
||||
- `vault_user_path` (string) — путь пользователя в Vault
|
||||
- `vault_fields` (list) — список ключей доступных секретов
|
||||
|
||||
## Реальные поля из облака (prod / Akhq-4 / suspended)
|
||||
|
||||
Поля ниже получены из реальных инстансов этого сервиса в облаке.
|
||||
Используйте их как готовые ключи для `state_out_flat` и `vault_secrets`.
|
||||
|
||||
### `state_params` ключи
|
||||
|
||||
- `state_params["domain"]`
|
||||
- `state_params["resourceCPU"]`
|
||||
- `state_params["resourceRealm"]`
|
||||
- `state_params["resourceMemory"]`
|
||||
- `state_params["resourceInstances"]`
|
||||
|
||||
### `state_out_flat` ключи
|
||||
|
||||
- `state_out_flat["connectionUrl"]`
|
||||
|
||||
### `vault_secrets` ключи
|
||||
|
||||
- `vault_secrets["url"]`
|
||||
- `vault_secrets["fields"]`
|
||||
- `vault_secrets["userPath"]`
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
[Overview](akhq_outputs.md) | [Parameters](akhq_outputs_params.md) | [Operations](akhq_outputs_ops.md)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
[Overview](akhq_outputs.md) | [Parameters](akhq_outputs_params.md) | [Operations](akhq_outputs_ops.md)
|
||||
@@ -0,0 +1,12 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
## Parameters
|
||||
|
||||
- [Create params](akhq_params_create.md)
|
||||
- [Modify params](akhq_params_modify.md)
|
||||
@@ -0,0 +1,40 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
## Create params
|
||||
|
||||
**Обязательные параметры (вводимые пользователем)**
|
||||
|
||||
<table class="resource-table resource-table-compact resource-table-required">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>550</td><td><strong><code class="code-no-wrap">resource_realm</code></strong></td><td><code>string</code></td><td>Выбрать платформу из списка</td><td>func=getAvailableResourceRealms</td></tr>
|
||||
<tr><td>553</td><td><strong><code class="code-no-wrap">domain</code></strong></td><td><code>string</code></td><td>Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm</td><td>regex=^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$</td></tr>
|
||||
<tr><td>555</td><td><strong><code class="code-no-wrap">kafka_uid</code></strong></td><td><code>uuid</code></td><td>Выбрать кластер из списка</td><td>ref_svc_id=116</td></tr>
|
||||
</tbody></table>
|
||||
|
||||
**Параметры, имеющие значение по умолчанию, если не меняете - эти параметры не обязательно прописывать в манифесте**
|
||||
<table class="resource-table resource-table-compact">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>551</td><td><strong><code class="code-no-wrap">resource_memory</code></strong></td><td><code>integer</code></td><td><code>512</code></td><td>Пример: `1024`</td><td>minvalue=512</td></tr>
|
||||
<tr><td>552</td><td><strong><code class="code-no-wrap">resource_cpu</code></strong></td><td><code>integer</code></td><td><code>500</code></td><td>Пример: `1000`</td><td>minvalue=500</td></tr>
|
||||
<tr><td>554</td><td><strong><code class="code-no-wrap">resource_instances</code></strong></td><td><code>integer</code></td><td><code>1</code></td><td></td><td>minvalue=1</td></tr>
|
||||
</tbody></table>
|
||||
|
||||
<div class="lifecycle-note">
|
||||
<strong>Параметры поведения (кратко)</strong><br/>
|
||||
По умолчанию: `suspend_on_destroy = True`, `adopt_existing_on_create = False`.<br/>
|
||||
При `terraform destroy` или удалении ресурса из манифеста:<br/>
|
||||
- `suspend_on_destroy=true` — инстанс переводится в `Suspend` (не удаляется).<br/>
|
||||
- `suspend_on_destroy=false` — Terraform удаляет ресурс только из state.<br/>
|
||||
При `apply` флаг `adopt_existing_on_create` работает как авто-`import`:<br/>
|
||||
- `false` — если ресурс уже есть, будет ошибка.<br/>
|
||||
- `true` — Terraform может взять существующий инстанс под управление (`running` → adopt, `suspended` → resume+adopt при совпадении параметров).<br/>
|
||||
Важно: один инстанс должен быть только в одном state. Иначе получите конфликт управления.
|
||||
</div>
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
[Overview](akhq_params_create.md) | [Parameters](akhq_params_create_params.md) | [Operations](akhq_params_create_ops.md)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
[Overview](akhq_params_create.md) | [Parameters](akhq_params_create_params.md) | [Operations](akhq_params_create_ops.md)
|
||||
@@ -0,0 +1,15 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
## Modify params
|
||||
|
||||
<table class="resource-table resource-table-compact">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>565</td><td><strong><code class="code-no-wrap">kafka_uid</code></strong></td><td><code>uuid</code></td><td>Выбрать кластер из списка</td><td>ref_svc_id=116</td></tr>
|
||||
</tbody></table>
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
[Overview](akhq_params_modify.md) | [Parameters](akhq_params_modify_params.md) | [Operations](akhq_params_modify_ops.md)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_akhq
|
||||
|
||||
Service ID: `119`
|
||||
|
||||
Service Name: Akhq
|
||||
|
||||
[Manual](akhq.md) | [Create params](akhq_params_create.md) | [Modify params](akhq_params_modify.md) | [Output params](akhq_outputs.md) | [Operations](akhq_ops.md) | [Example](akhq_example.md)
|
||||
|
||||
[Overview](akhq_params_modify.md) | [Parameters](akhq_params_modify_params.md) | [Operations](akhq_params_modify_ops.md)
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,66 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Overview](clickhouse.md) | [Parameters](clickhouse_params.md) | [Operations](clickhouse_ops.md)
|
||||
|
||||
## MAN
|
||||
|
||||
# Инструкция по управлению кластерами и пользователями ClickHouse<br/><br/>---<br/><br/>## Общая информация<br/><br/>ClickHouse — это колоночная система управления базами данных, предназначенная для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.<br/><br/>Кластер создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`<br/><br/>Кластеры могут создаваться шардированными с произвольным количеством реплик. Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.<br/><br/>Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать услугу `S3 Object Storage`.<br/>---<br/><br/>## Доступные операции<br/><br/>* **create** — Создание кластера<br/>* **delete** — Удаление кластера<br/>* **suspend** — Приостановка работы кластера<br/>* **resume** — Возобновление работы кластера<br/>* **create_database** — Создание базы данных<br/>* **delete_database** — Удаление базы данных<br/>* **create_user** — Создание пользователя и настройка прав доступа к базе данных<br/>* **delete_user** — Удаление пользователя<br/><br/>## Процесс создания и первого подключения<br/><br/>1. Выполнить операцию `create` - будет создан кластер<br/>2. Выполнить операцию `create_database` - будет создана база данных<br/>3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)<br/><br/>## Примеры подключения<br/><br/>### Подключение через HTTP-интерфейс<br/><br/>```bash<br/># Проверка доступности кластера<br/>curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"<br/><br/># Выполнение запроса<br/>curl "http://<username>:<password>@<host>:8123/" -d "SHOW DATABASES"<br/>```<br/><br/>## Простые кейсы<br/>*Создать БД и обычной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.table<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM database.table;<br/>```<br/>Базы и таблицы не реплицируются без специального ключа (`ON CLUSTER 'clickhousek8s'`)<br/>В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах<br/><br/><br/>*Создание БД и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.localUsers<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>CREATE TABLE database.shardedTable<br/>AS localUsers<br/>ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', id);<br/><br/>INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM shardedTable;<br/>```<br/>Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse<br/><br/>*Создание реплицируемой и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE IF NOT EXISTS database.localUsers ON cluster 'clickhousek8s'<br/>(<br/> user_id UInt64,<br/> name String,<br/> email String<br/>)<br/>ENGINE = ReplicatedMergeTree(<br/> '/clickhouse/tables/{shard}/localUsers',<br/> '{replica}'<br/>)<br/>ORDER BY user_id;<br/><br/>CREATE TABLE IF NOT EXISTS database.users ON cluster 'clickhousek8s'<br/>AS database.localUsers<br/>ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', rand());<br/><br/>INSERT INTO database.users VALUES (1, 'Alice', 'alice@example.com');<br/>INSERT INTO database.users VALUES (2, 'Bob', 'bob@example.com');<br/>INSERT INTO database.users VALUES (3, 'Charlie', 'charlie@example.com');<br/>INSERT INTO database.users VALUES (4, 'David', 'david@example.com');<br/>INSERT INTO database.users VALUES (5, 'Gosha', 'gosha@example.com');<br/>INSERT INTO database.users VALUES (6, 'Eve', 'eve@example.com');<br/>INSERT INTO database.users VALUES (7, 'Frank', 'frank@example.com');<br/>INSERT INTO database.users VALUES (8, 'Grace', 'grace@example.com');<br/>INSERT INTO database.users VALUES (9, 'Hannah', 'hannah@example.com');<br/>INSERT INTO database.users VALUES (10, 'Ivan', 'ivan@example.com');<br/><br/>SELECT * FROM database.localUsers;<br/>SELECT * FROM database.users;<br/><br/>SELECT COUNT(*) AS total_users FROM database.users;<br/>SELECT COUNT(*) AS total_users_local FROM database.localUsers;<br/>```
|
||||
|
||||
|
||||
## Summary
|
||||
|
||||
# Инструкция по управлению кластерами и пользователями ClickHouse
|
||||
|
||||
|
||||
## Example
|
||||
|
||||
```hcl
|
||||
resource "nubes_clickhouse" "example" {
|
||||
resource_realm = "TODO"
|
||||
s3_uid = "235e0546-..."
|
||||
resource_instances = 1
|
||||
resource_instances_shards = 1
|
||||
resource_c_p_u = 1000
|
||||
resource_memory = 1536
|
||||
app_version = 25.10
|
||||
resource_disk = 10
|
||||
need_external_address_master = false
|
||||
need_create_keeper = true
|
||||
resource_c_p_u_keeper = 50
|
||||
resource_memory_keeper = 152
|
||||
resource_instances_keeper = 1
|
||||
ext__b_a_c_k_u_p__s_c_h_e_d_u_l_e = 0 0 * * *
|
||||
ext__b_a_c_k_u_p__n_u_m__t_o__r_e_t_a_i_n = 7
|
||||
adopt_existing_on_create = НЕТ
|
||||
suspend_on_destroy = ДА
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
## Outputs
|
||||
|
||||
- `state_params` (map)
|
||||
- `state_out` (map)
|
||||
- `state_params_flat` (map)
|
||||
- `state_out_flat` (map)
|
||||
- `vault_secrets` (map)
|
||||
- `vault_url` (string)
|
||||
- `vault_user_path` (string)
|
||||
- `vault_fields` (list)
|
||||
|
||||
|
||||
## Lifecycle defaults
|
||||
|
||||
- `suspend_on_destroy_default` = `True`
|
||||
- `adopt_existing_on_create_default` = `False`
|
||||
|
||||
|
||||
## Lifecycle behavior
|
||||
|
||||
- For suspend-capable services: cloud status `missing/deleted` => create, `suspend` + key params match => resume.
|
||||
- `running` requires explicit `adopt_existing_on_create=true` for adopt/import behavior, otherwise error.
|
||||
- Destroy uses `suspend_on_destroy`: true => suspend, false => remove from state only.
|
||||
@@ -0,0 +1,26 @@
|
||||
# Resource nubes_clickhouse_database
|
||||
|
||||
Service: nubes_clickhouse
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
## Example
|
||||
|
||||
```hcl
|
||||
resource "nubes_clickhouse_database" "example" {
|
||||
clickhouse_id = nubes_clickhouse.example.id
|
||||
database_name = "TODO"
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,17 @@
|
||||
# Resource nubes_clickhouse_database
|
||||
|
||||
Service: nubes_clickhouse
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
@@ -0,0 +1,17 @@
|
||||
# Resource nubes_clickhouse_database
|
||||
|
||||
Service: nubes_clickhouse
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
|
||||
[Overview](clickhouse_database.md) | [Parameters](clickhouse_database_params.md) | [Operations](clickhouse_database_ops.md)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
[Overview](clickhouse_example.md) | [Parameters](clickhouse_example_params.md) | [Operations](clickhouse_example_ops.md)
|
||||
[Overview](clickhouse_example.md) | [Parameters](clickhouse_example_params.md) | [Operations](clickhouse_example_ops.md)
|
||||
[Overview](clickhouse_example.md) | [Parameters](clickhouse_example_params.md) | [Operations](clickhouse_example_ops.md)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
[Overview](clickhouse_example.md) | [Parameters](clickhouse_example_params.md) | [Operations](clickhouse_example_ops.md)
|
||||
[Overview](clickhouse_example.md) | [Parameters](clickhouse_example_params.md) | [Operations](clickhouse_example_ops.md)
|
||||
[Overview](clickhouse_example.md) | [Parameters](clickhouse_example_params.md) | [Operations](clickhouse_example_ops.md)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
[Overview](clickhouse_example.md) | [Parameters](clickhouse_example_params.md) | [Operations](clickhouse_example_ops.md)
|
||||
[Overview](clickhouse_example.md) | [Parameters](clickhouse_example_params.md) | [Operations](clickhouse_example_ops.md)
|
||||
[Overview](clickhouse_example.md) | [Parameters](clickhouse_example_params.md) | [Operations](clickhouse_example_ops.md)
|
||||
@@ -0,0 +1,3 @@
|
||||
# Инструкция для clickhouse
|
||||
|
||||
# Инструкция по управлению кластерами и пользователями ClickHouse<br/><br/>---<br/><br/>## Общая информация<br/><br/>ClickHouse — это колоночная система управления базами данных, предназначенная для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.<br/><br/>Кластер создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`<br/><br/>Кластеры могут создаваться шардированными с произвольным количеством реплик. Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.<br/><br/>Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать услугу `S3 Object Storage`.<br/>---<br/><br/>## Доступные операции<br/><br/>* **create** — Создание кластера<br/>* **delete** — Удаление кластера<br/>* **suspend** — Приостановка работы кластера<br/>* **resume** — Возобновление работы кластера<br/>* **create_database** — Создание базы данных<br/>* **delete_database** — Удаление базы данных<br/>* **create_user** — Создание пользователя и настройка прав доступа к базе данных<br/>* **delete_user** — Удаление пользователя<br/><br/>## Процесс создания и первого подключения<br/><br/>1. Выполнить операцию `create` - будет создан кластер<br/>2. Выполнить операцию `create_database` - будет создана база данных<br/>3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)<br/><br/>## Примеры подключения<br/><br/>### Подключение через HTTP-интерфейс<br/><br/>```bash<br/># Проверка доступности кластера<br/>curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"<br/><br/># Выполнение запроса<br/>curl "http://<username>:<password>@<host>:8123/" -d "SHOW DATABASES"<br/>```<br/><br/>## Простые кейсы<br/>*Создать БД и обычной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.table<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM database.table;<br/>```<br/>Базы и таблицы не реплицируются без специального ключа (`ON CLUSTER 'clickhousek8s'`)<br/>В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах<br/><br/><br/>*Создание БД и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.localUsers<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>CREATE TABLE database.shardedTable<br/>AS localUsers<br/>ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', id);<br/><br/>INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM shardedTable;<br/>```<br/>Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse<br/><br/>*Создание реплицируемой и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE IF NOT EXISTS database.localUsers ON cluster 'clickhousek8s'<br/>(<br/> user_id UInt64,<br/> name String,<br/> email String<br/>)<br/>ENGINE = ReplicatedMergeTree(<br/> '/clickhouse/tables/{shard}/localUsers',<br/> '{replica}'<br/>)<br/>ORDER BY user_id;<br/><br/>CREATE TABLE IF NOT EXISTS database.users ON cluster 'clickhousek8s'<br/>AS database.localUsers<br/>ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', rand());<br/><br/>INSERT INTO database.users VALUES (1, 'Alice', 'alice@example.com');<br/>INSERT INTO database.users VALUES (2, 'Bob', 'bob@example.com');<br/>INSERT INTO database.users VALUES (3, 'Charlie', 'charlie@example.com');<br/>INSERT INTO database.users VALUES (4, 'David', 'david@example.com');<br/>INSERT INTO database.users VALUES (5, 'Gosha', 'gosha@example.com');<br/>INSERT INTO database.users VALUES (6, 'Eve', 'eve@example.com');<br/>INSERT INTO database.users VALUES (7, 'Frank', 'frank@example.com');<br/>INSERT INTO database.users VALUES (8, 'Grace', 'grace@example.com');<br/>INSERT INTO database.users VALUES (9, 'Hannah', 'hannah@example.com');<br/>INSERT INTO database.users VALUES (10, 'Ivan', 'ivan@example.com');<br/><br/>SELECT * FROM database.localUsers;<br/>SELECT * FROM database.users;<br/><br/>SELECT COUNT(*) AS total_users FROM database.users;<br/>SELECT COUNT(*) AS total_users_local FROM database.localUsers;<br/>```
|
||||
@@ -0,0 +1,3 @@
|
||||
# MAN: clickhouse
|
||||
|
||||
# Инструкция по управлению кластерами и пользователями ClickHouse<br/><br/>---<br/><br/>## Общая информация<br/><br/>ClickHouse — это колоночная система управления базами данных, предназначенная для обработки аналитических запросов в реальном времени. Платформа позволяет создавать, удалять, приостанавливать и возобновлять кластеры ClickHouse, а также управлять базами данных и пользователями.<br/><br/>Кластер создаётся через оператор Altinity (`https://github.com/Altinity/clickhouse-operator`) в ресурсной платформе типа `k8s`<br/><br/>Кластеры могут создаваться шардированными с произвольным количеством реплик. Для обеспечения отказоустойчивости и координации обязательно включение параметра `Создать ClickHouse-Keeper`.<br/><br/>Кластера создаются с обязательным бекапом. Для этого необходимо предварительно создать услугу `S3 Object Storage`.<br/>---<br/><br/>## Доступные операции<br/><br/>* **create** — Создание кластера<br/>* **delete** — Удаление кластера<br/>* **suspend** — Приостановка работы кластера<br/>* **resume** — Возобновление работы кластера<br/>* **create_database** — Создание базы данных<br/>* **delete_database** — Удаление базы данных<br/>* **create_user** — Создание пользователя и настройка прав доступа к базе данных<br/>* **delete_user** — Удаление пользователя<br/><br/>## Процесс создания и первого подключения<br/><br/>1. Выполнить операцию `create` - будет создан кластер<br/>2. Выполнить операцию `create_database` - будет создана база данных<br/>3. Выполнить операцию `create_user` - будет создан пользователь (выбрать доступ подключения к БД, созданной в п.2)<br/><br/>## Примеры подключения<br/><br/>### Подключение через HTTP-интерфейс<br/><br/>```bash<br/># Проверка доступности кластера<br/>curl "http://<username>:<password>@<host>:8123/" -d "SELECT 1"<br/><br/># Выполнение запроса<br/>curl "http://<username>:<password>@<host>:8123/" -d "SHOW DATABASES"<br/>```<br/><br/>## Простые кейсы<br/>*Создать БД и обычной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.table<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>INSERT INTO database.table SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM database.table;<br/>```<br/>Базы и таблицы не реплицируются без специального ключа (`ON CLUSTER 'clickhousek8s'`)<br/>В случае создания в стиле, описанным выше, необходимо будет выполнять действия на всех шардах/репликах<br/><br/><br/>*Создание БД и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE database.localUsers<br/>(<br/> id UInt64,<br/> value String<br/>)<br/>ENGINE = MergeTree()<br/>ORDER BY id;<br/><br/>CREATE TABLE database.shardedTable<br/>AS localUsers<br/>ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', id);<br/><br/>INSERT INTO shardedTable SELECT number, toString(number) FROM numbers(10000000);<br/><br/>SELECT count() FROM shardedTable;<br/>```<br/>Важный момент - в данном примере таблицы придётся также выполнять на всех нодах ClickHouse<br/><br/>*Создание реплицируемой и шардированной таблицы*<br/>```clickhouse<br/>CREATE TABLE IF NOT EXISTS database.localUsers ON cluster 'clickhousek8s'<br/>(<br/> user_id UInt64,<br/> name String,<br/> email String<br/>)<br/>ENGINE = ReplicatedMergeTree(<br/> '/clickhouse/tables/{shard}/localUsers',<br/> '{replica}'<br/>)<br/>ORDER BY user_id;<br/><br/>CREATE TABLE IF NOT EXISTS database.users ON cluster 'clickhousek8s'<br/>AS database.localUsers<br/>ENGINE = Distributed('clickhousek8s', 'database', 'localUsers', rand());<br/><br/>INSERT INTO database.users VALUES (1, 'Alice', 'alice@example.com');<br/>INSERT INTO database.users VALUES (2, 'Bob', 'bob@example.com');<br/>INSERT INTO database.users VALUES (3, 'Charlie', 'charlie@example.com');<br/>INSERT INTO database.users VALUES (4, 'David', 'david@example.com');<br/>INSERT INTO database.users VALUES (5, 'Gosha', 'gosha@example.com');<br/>INSERT INTO database.users VALUES (6, 'Eve', 'eve@example.com');<br/>INSERT INTO database.users VALUES (7, 'Frank', 'frank@example.com');<br/>INSERT INTO database.users VALUES (8, 'Grace', 'grace@example.com');<br/>INSERT INTO database.users VALUES (9, 'Hannah', 'hannah@example.com');<br/>INSERT INTO database.users VALUES (10, 'Ivan', 'ivan@example.com');<br/><br/>SELECT * FROM database.localUsers;<br/>SELECT * FROM database.users;<br/><br/>SELECT COUNT(*) AS total_users FROM database.users;<br/>SELECT COUNT(*) AS total_users_local FROM database.localUsers;<br/>```
|
||||
@@ -0,0 +1,179 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Overview](clickhouse.md) | [Parameters](clickhouse_params.md) | [Operations](clickhouse_ops.md)
|
||||
|
||||
## Operations
|
||||
|
||||
| Operation | Kind | Action | Subresource | ID | Params | Description |
|
||||
|---|---|---|---|---|---|---|
|
||||
| `create` | `instance` | `create` | `` | `181` | resourceRealm, s3Uid, resourceInstances, resourceInstancesShards, resourceCPU, resourceMemory, appVersion, resourceDisk, needExternalAddressMaster, ipSpaceNameMaster, needCreateKeeper, resourceCPUKeeper, resourceMemoryKeeper, resourceInstancesKeeper, ext_BACKUP_SCHEDULE, ext_BACKUP_NUM_TO_RETAIN | Операция создания кластера ClickHouse<br/><br/>Для подключения к кластеру также необходимо создать базу данных через операцию `create_database` и создание пользователя через операцию `create_user` |
|
||||
| `create_database` | `subresource` | `create` | `database` | `186` | databaseName | База данных создаётся на всех репликах кластера ClickHouse |
|
||||
| `create_user` | `subresource` | `create` | `user` | `185` | username, databaseName, accessHosts | |
|
||||
| `delete` | `instance` | `delete` | `` | `184` | | Удаление возможно только после остановки сервиса через операцию `suspend`<br/>После выполнения операции необходимо выждать определенное кол-во времени |
|
||||
| `delete_database` | `subresource` | `delete` | `database` | `188` | databaseName | Необратимое действие!!!<br/>Трижды подумай, заблокируй телефон тимлида и не выполняй это действие |
|
||||
| `delete_user` | `subresource` | `delete` | `user` | `187` | username | |
|
||||
| `modify` | `instance` | `modify` | `` | `189` | resourceInstances, resourceInstancesShards, resourceCPU, resourceMemory, appVersion, resourceDisk, needExternalAddressMaster, ipSpaceNameMaster, needCreateKeeper, resourceCPUKeeper, resourceMemoryKeeper, resourceInstancesKeeper, ext_BACKUP_SCHEDULE, ext_BACKUP_NUM_TO_RETAIN | |
|
||||
| `resume` | `instance` | `resume` | `` | `183` | | |
|
||||
| `suspend` | `instance` | `suspend` | `` | `182` | | Операция приводит к удалению всех подов<br/>Persistent Volume остаются нетронутыми |
|
||||
|
||||
### Operation: create
|
||||
|
||||
<table class="resource-table">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>572</td><td><strong><code class="code-no-wrap">resourceRealm</code></strong></td><td><code>string</code></td><td>ДА</td><td></td><td>Выбрать платформу из списка<br/><br/>**Если список не отображается**<br/>обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы</td><td>func=getAvailableResourceRealms</td></tr>
|
||||
<tr><td>573</td><td><strong><code class="code-no-wrap">s3Uid</code></strong></td><td><code>uuid</code></td><td>ДА</td><td></td><td>**Если список не отображается** <br/>перейдите в раздел `S3 Object Storage` <br/>операция `create`</td><td>ref_svc_id=12</td></tr>
|
||||
<tr><td>574</td><td><strong><code class="code-no-wrap">resourceInstances</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>1</code></td><td>**Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper`</td><td>minvalue=1; maxvalue=7</td></tr>
|
||||
<tr><td>575</td><td><strong><code class="code-no-wrap">resourceInstancesShards</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>1</code></td><td>**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации. <br/>**Реплика** - это точная копия данных внутри одного шарда</td><td>minvalue=1; maxvalue=7</td></tr>
|
||||
<tr><td>576</td><td><strong><code class="code-no-wrap">resourceCPU</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>1000</code></td><td>Указывается в Milicores<br/>`1000` Mili == `1` Ядро</td><td>minvalue=1000; maxvalue=8000</td></tr>
|
||||
<tr><td>577</td><td><strong><code class="code-no-wrap">resourceMemory</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>1536</code></td><td>Указывается в Megabytes</td><td>minvalue=1536; maxvalue=8192</td></tr>
|
||||
<tr><td>578</td><td><strong><code class="code-no-wrap">appVersion</code></strong></td><td><code>string</code></td><td>ДА</td><td><code>25.10</code></td><td>Версия `clickhouse-server`</td><td>value_list=25.10</td></tr>
|
||||
<tr><td>579</td><td><strong><code class="code-no-wrap">resourceDisk</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>10</code></td><td>Указывается в Gigabytes</td><td>minvalue=1; maxvalue=999</td></tr>
|
||||
<tr><td>580</td><td><strong><code class="code-no-wrap">needExternalAddressMaster</code></strong></td><td><code>boolean</code></td><td>ДА</td><td><code>false</code></td><td>Для выделения IP также необходимо указать имя Ip-space.<br/>Его можно получить из свойств ресурсной платформы</td><td>value_list=false, true</td></tr>
|
||||
<tr><td>581</td><td><strong><code class="code-no-wrap">ipSpaceNameMaster</code></strong></td><td><code>string</code></td><td>НЕТ</td><td></td><td>Имя ipSpace для публикации внешнего адреса<br/><br/>Не может быть пустым, если включен `Выделение белого ip для master ноды`</td><td></td></tr>
|
||||
<tr><td>582</td><td><strong><code class="code-no-wrap">needCreateKeeper</code></strong></td><td><code>boolean</code></td><td>ДА</td><td><code>true</code></td><td>Аналог `Zookeeper`, представленный от ClickHouse</td><td>value_list=false, true</td></tr>
|
||||
<tr><td>583</td><td><strong><code class="code-no-wrap">resourceCPUKeeper</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>50</code></td><td>Указывается в Milicores<br/>`1000` Mili == `1` Ядро</td><td>minvalue=50; maxvalue=8000</td></tr>
|
||||
<tr><td>584</td><td><strong><code class="code-no-wrap">resourceMemoryKeeper</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>152</code></td><td>Указывается в Megabytes</td><td>minvalue=152; maxvalue=8192</td></tr>
|
||||
<tr><td>585</td><td><strong><code class="code-no-wrap">resourceInstancesKeeper</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>1</code></td><td>Для **теста** - 1 нода. <br/>Для **продуктива** - 3 ноды</td><td>minvalue=1; maxvalue=3; value_list=1, 3</td></tr>
|
||||
<tr><td>586</td><td><strong><code class="code-no-wrap">ext_BACKUP_SCHEDULE</code></strong></td><td><code>string</code></td><td>ДА</td><td><code>0 0 * * *</code></td><td>Принимает формат `CRON`</td><td>regex=^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$</td></tr>
|
||||
<tr><td>587</td><td><strong><code class="code-no-wrap">ext_BACKUP_NUM_TO_RETAIN</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>7</code></td><td>Кол-во **полных** резервных копий<br/>Кол-во инкрементов - неограничено<br/><br/>Полная резервная копия выполняется раз в неделю<br/>*Если изначально полной резервной копии нет* выполняется полный бекап<br/>В остальные дни по крону выполняются **инкременты**</td><td>minvalue=3; maxvalue=60</td></tr>
|
||||
</tbody></table>
|
||||
|
||||
### Operation: create_database
|
||||
|
||||
<table class="resource-table">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>600</td><td><strong><code class="code-no-wrap">databaseName</code></strong></td><td><code>string</code></td><td>ДА</td><td></td><td>Пример: `db01`</td><td>regex=^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$</td></tr>
|
||||
</tbody></table>
|
||||
|
||||
### Operation: create_user
|
||||
|
||||
<table class="resource-table">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>596</td><td><strong><code class="code-no-wrap">username</code></strong></td><td><code>string</code></td><td>ДА</td><td></td><td>Пример: `myusername`</td><td>regex=^(?![0-9_])[a-zA-Z_][a-zA-Z0-9_]{0,62}$; maxlength=62; minlength=2</td></tr>
|
||||
<tr><td>598</td><td><strong><code class="code-no-wrap">databaseName</code></strong></td><td><code>json</code></td><td>ДА</td><td><code>["database"]</code></td><td>Если базы не существует - при выполнении операции вернётся ошибка</td><td></td></tr>
|
||||
<tr><td>599</td><td><strong><code class="code-no-wrap">accessHosts</code></strong></td><td><code>string</code></td><td>ДА</td><td><code>::/0</code></td><td>Пример: `::/0`</td><td></td></tr>
|
||||
</tbody></table>
|
||||
|
||||
### Operation: delete
|
||||
|
||||
None.
|
||||
|
||||
### Operation: delete_database
|
||||
|
||||
<table class="resource-table">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>602</td><td><strong><code class="code-no-wrap">databaseName</code></strong></td><td><code>string</code></td><td>ДА</td><td></td><td>ВСЕ ДАННЫЕ ВНУТРИ БД БУДУТ УДАЛЕНЫ</td><td></td></tr>
|
||||
</tbody></table>
|
||||
|
||||
### Operation: delete_user
|
||||
|
||||
<table class="resource-table">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>601</td><td><strong><code class="code-no-wrap">username</code></strong></td><td></td><td>ДА</td><td></td><td>Имя пользователя, созданное через операцию `create_user`</td><td></td></tr>
|
||||
</tbody></table>
|
||||
|
||||
### Operation: modify
|
||||
|
||||
<table class="resource-table">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>603</td><td><strong><code class="code-no-wrap">resourceInstances</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>**Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper`</td><td>minvalue=1; maxvalue=7</td></tr>
|
||||
<tr><td>604</td><td><strong><code class="code-no-wrap">resourceInstancesShards</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации. <br/>**Реплика** - это точная копия данных внутри одного шарда</td><td>minvalue=1; maxvalue=7</td></tr>
|
||||
<tr><td>605</td><td><strong><code class="code-no-wrap">resourceCPU</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>Указывается в Milicores<br/>`1000` Mili == `1` Ядро</td><td>minvalue=1000; maxvalue=8000</td></tr>
|
||||
<tr><td>606</td><td><strong><code class="code-no-wrap">resourceMemory</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>Указывается в Megabytes</td><td>minvalue=1536; maxvalue=8192</td></tr>
|
||||
<tr><td>607</td><td><strong><code class="code-no-wrap">appVersion</code></strong></td><td><code>string</code></td><td>ДА</td><td><code>25.10</code></td><td>Версия `clickhouse-server`</td><td></td></tr>
|
||||
<tr><td>608</td><td><strong><code class="code-no-wrap">resourceDisk</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>Указывается в Gigabytes<br/>**Нельзя** выставлять меньше текущего значения</td><td>minvalue=1; maxvalue=999</td></tr>
|
||||
<tr><td>609</td><td><strong><code class="code-no-wrap">needExternalAddressMaster</code></strong></td><td><code>boolean</code></td><td>ДА</td><td></td><td>Для выделения IP также необходимо указать имя Ip-space.<br/>Его можно получить из свойств ресурсной платформы</td><td>value_list=false, true</td></tr>
|
||||
<tr><td>610</td><td><strong><code class="code-no-wrap">ipSpaceNameMaster</code></strong></td><td><code>string</code></td><td>ДА</td><td></td><td>Имя ipSpace для публикации внешнего адреса<br/><br/>Не может быть пустым, если включен `Выделение белого ip для master ноды`</td><td></td></tr>
|
||||
<tr><td>611</td><td><strong><code class="code-no-wrap">needCreateKeeper</code></strong></td><td><code>boolean</code></td><td>ДА</td><td></td><td>Аналог `Zookeeper`, представленный от ClickHouse</td><td>value_list=false, true</td></tr>
|
||||
<tr><td>612</td><td><strong><code class="code-no-wrap">resourceCPUKeeper</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>Указывается в Milicores<br/>`1000` Mili == `1` Ядро</td><td>minvalue=50; maxvalue=8000</td></tr>
|
||||
<tr><td>613</td><td><strong><code class="code-no-wrap">resourceMemoryKeeper</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>Указывается в Megabytes</td><td>minvalue=152; maxvalue=8192</td></tr>
|
||||
<tr><td>614</td><td><strong><code class="code-no-wrap">resourceInstancesKeeper</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>Для **теста** - 1 нода. <br/>Для **продуктива** - 3 ноды</td><td>minvalue=1; maxvalue=3; value_list=1, 3</td></tr>
|
||||
<tr><td>615</td><td><strong><code class="code-no-wrap">ext_BACKUP_SCHEDULE</code></strong></td><td><code>string</code></td><td>ДА</td><td><code>0 0 * * *</code></td><td>Принимает формат `CRON`</td><td>regex=^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$</td></tr>
|
||||
<tr><td>616</td><td><strong><code class="code-no-wrap">ext_BACKUP_NUM_TO_RETAIN</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>Кол-во **полных** резервных копий<br/>Кол-во инкрементов - неограничено<br/><br/>Полная резервная копия выполняется раз в неделю<br/>*Если изначально полной резервной копии нет* выполняется полный бекап<br/>В остальные дни по крону выполняются **инкременты**</td><td>minvalue=3; maxvalue=60</td></tr>
|
||||
</tbody></table>
|
||||
|
||||
### Operation: resume
|
||||
|
||||
None.
|
||||
|
||||
### Operation: suspend
|
||||
|
||||
None.
|
||||
|
||||
|
||||
## Subresources
|
||||
|
||||
### nubes_clickhouse_database
|
||||
|
||||
#### Example
|
||||
|
||||
```hcl
|
||||
resource "nubes_clickhouse_database" "example" {
|
||||
clickhouse_id = nubes_clickhouse.example.id
|
||||
database_name = "TODO"
|
||||
}
|
||||
```
|
||||
|
||||
#### Create parameters
|
||||
|
||||
<table class="resource-table">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>600</td><td><strong><code class="code-no-wrap">databaseName</code></strong></td><td><code>string</code></td><td>ДА</td><td></td><td>Пример: `db01`</td><td>regex=^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$</td></tr>
|
||||
</tbody></table>
|
||||
|
||||
#### Modify parameters
|
||||
|
||||
None.
|
||||
|
||||
#### Delete parameters
|
||||
|
||||
<table class="resource-table">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>602</td><td><strong><code class="code-no-wrap">databaseName</code></strong></td><td><code>string</code></td><td>ДА</td><td></td><td>ВСЕ ДАННЫЕ ВНУТРИ БД БУДУТ УДАЛЕНЫ</td><td></td></tr>
|
||||
</tbody></table>
|
||||
### nubes_clickhouse_user
|
||||
|
||||
#### Example
|
||||
|
||||
```hcl
|
||||
resource "nubes_clickhouse_user" "example" {
|
||||
clickhouse_id = nubes_clickhouse.example.id
|
||||
username = "TODO"
|
||||
database_name = ["database"]
|
||||
access_hosts = ::/0
|
||||
}
|
||||
```
|
||||
|
||||
#### Create parameters
|
||||
|
||||
<table class="resource-table">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>596</td><td><strong><code class="code-no-wrap">username</code></strong></td><td><code>string</code></td><td>ДА</td><td></td><td>Пример: `myusername`</td><td>regex=^(?![0-9_])[a-zA-Z_][a-zA-Z0-9_]{0,62}$; maxlength=62; minlength=2</td></tr>
|
||||
<tr><td>598</td><td><strong><code class="code-no-wrap">databaseName</code></strong></td><td><code>json</code></td><td>ДА</td><td><code>["database"]</code></td><td>Если базы не существует - при выполнении операции вернётся ошибка</td><td></td></tr>
|
||||
<tr><td>599</td><td><strong><code class="code-no-wrap">accessHosts</code></strong></td><td><code>string</code></td><td>ДА</td><td><code>::/0</code></td><td>Пример: `::/0`</td><td></td></tr>
|
||||
</tbody></table>
|
||||
|
||||
#### Modify parameters
|
||||
|
||||
None.
|
||||
|
||||
#### Delete parameters
|
||||
|
||||
<table class="resource-table">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>601</td><td><strong><code class="code-no-wrap">username</code></strong></td><td></td><td>ДА</td><td></td><td>Имя пользователя, созданное через операцию `create_user`</td><td></td></tr>
|
||||
</tbody></table>
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
[Overview](clickhouse_outputs.md) | [Parameters](clickhouse_outputs_params.md) | [Operations](clickhouse_outputs_ops.md)
|
||||
[Overview](clickhouse_outputs.md) | [Parameters](clickhouse_outputs_params.md) | [Operations](clickhouse_outputs_ops.md)
|
||||
[Overview](clickhouse_outputs.md) | [Parameters](clickhouse_outputs_params.md) | [Operations](clickhouse_outputs_ops.md)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
[Overview](clickhouse_outputs.md) | [Parameters](clickhouse_outputs_params.md) | [Operations](clickhouse_outputs_ops.md)
|
||||
[Overview](clickhouse_outputs.md) | [Parameters](clickhouse_outputs_params.md) | [Operations](clickhouse_outputs_ops.md)
|
||||
[Overview](clickhouse_outputs.md) | [Parameters](clickhouse_outputs_params.md) | [Operations](clickhouse_outputs_ops.md)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
[Overview](clickhouse_outputs.md) | [Parameters](clickhouse_outputs_params.md) | [Operations](clickhouse_outputs_ops.md)
|
||||
[Overview](clickhouse_outputs.md) | [Parameters](clickhouse_outputs_params.md) | [Operations](clickhouse_outputs_ops.md)
|
||||
[Overview](clickhouse_outputs.md) | [Parameters](clickhouse_outputs_params.md) | [Operations](clickhouse_outputs_ops.md)
|
||||
@@ -0,0 +1,52 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Overview](clickhouse.md) | [Parameters](clickhouse_params.md) | [Operations](clickhouse_ops.md)
|
||||
|
||||
## Create parameters
|
||||
|
||||
<table class="resource-table">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>572</td><td><strong><code class="code-no-wrap">resourceRealm</code></strong></td><td><code>string</code></td><td>ДА</td><td></td><td>Выбрать платформу из списка<br/><br/>**Если список не отображается**<br/>обратитесь к сервис менеджеру с вопросом предоставления ресурсной платформы</td><td>func=getAvailableResourceRealms</td></tr>
|
||||
<tr><td>573</td><td><strong><code class="code-no-wrap">s3Uid</code></strong></td><td><code>uuid</code></td><td>ДА</td><td></td><td>**Если список не отображается** <br/>перейдите в раздел `S3 Object Storage` <br/>операция `create`</td><td>ref_svc_id=12</td></tr>
|
||||
<tr><td>574</td><td><strong><code class="code-no-wrap">resourceInstances</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>1</code></td><td>**Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper`</td><td>minvalue=1; maxvalue=7</td></tr>
|
||||
<tr><td>575</td><td><strong><code class="code-no-wrap">resourceInstancesShards</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>1</code></td><td>**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации. <br/>**Реплика** - это точная копия данных внутри одного шарда</td><td>minvalue=1; maxvalue=7</td></tr>
|
||||
<tr><td>576</td><td><strong><code class="code-no-wrap">resourceCPU</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>1000</code></td><td>Указывается в Milicores<br/>`1000` Mili == `1` Ядро</td><td>minvalue=1000; maxvalue=8000</td></tr>
|
||||
<tr><td>577</td><td><strong><code class="code-no-wrap">resourceMemory</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>1536</code></td><td>Указывается в Megabytes</td><td>minvalue=1536; maxvalue=8192</td></tr>
|
||||
<tr><td>578</td><td><strong><code class="code-no-wrap">appVersion</code></strong></td><td><code>string</code></td><td>ДА</td><td><code>25.10</code></td><td>Версия `clickhouse-server`</td><td>value_list=25.10</td></tr>
|
||||
<tr><td>579</td><td><strong><code class="code-no-wrap">resourceDisk</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>10</code></td><td>Указывается в Gigabytes</td><td>minvalue=1; maxvalue=999</td></tr>
|
||||
<tr><td>580</td><td><strong><code class="code-no-wrap">needExternalAddressMaster</code></strong></td><td><code>boolean</code></td><td>ДА</td><td><code>false</code></td><td>Для выделения IP также необходимо указать имя Ip-space.<br/>Его можно получить из свойств ресурсной платформы</td><td>value_list=false, true</td></tr>
|
||||
<tr><td>581</td><td><strong><code class="code-no-wrap">ipSpaceNameMaster</code></strong></td><td><code>string</code></td><td>НЕТ</td><td></td><td>Имя ipSpace для публикации внешнего адреса<br/><br/>Не может быть пустым, если включен `Выделение белого ip для master ноды`</td><td></td></tr>
|
||||
<tr><td>582</td><td><strong><code class="code-no-wrap">needCreateKeeper</code></strong></td><td><code>boolean</code></td><td>ДА</td><td><code>true</code></td><td>Аналог `Zookeeper`, представленный от ClickHouse</td><td>value_list=false, true</td></tr>
|
||||
<tr><td>583</td><td><strong><code class="code-no-wrap">resourceCPUKeeper</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>50</code></td><td>Указывается в Milicores<br/>`1000` Mili == `1` Ядро</td><td>minvalue=50; maxvalue=8000</td></tr>
|
||||
<tr><td>584</td><td><strong><code class="code-no-wrap">resourceMemoryKeeper</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>152</code></td><td>Указывается в Megabytes</td><td>minvalue=152; maxvalue=8192</td></tr>
|
||||
<tr><td>585</td><td><strong><code class="code-no-wrap">resourceInstancesKeeper</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>1</code></td><td>Для **теста** - 1 нода. <br/>Для **продуктива** - 3 ноды</td><td>minvalue=1; maxvalue=3; value_list=1, 3</td></tr>
|
||||
<tr><td>586</td><td><strong><code class="code-no-wrap">ext_BACKUP_SCHEDULE</code></strong></td><td><code>string</code></td><td>ДА</td><td><code>0 0 * * *</code></td><td>Принимает формат `CRON`</td><td>regex=^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$</td></tr>
|
||||
<tr><td>587</td><td><strong><code class="code-no-wrap">ext_BACKUP_NUM_TO_RETAIN</code></strong></td><td><code>integer</code></td><td>ДА</td><td><code>7</code></td><td>Кол-во **полных** резервных копий<br/>Кол-во инкрементов - неограничено<br/><br/>Полная резервная копия выполняется раз в неделю<br/>*Если изначально полной резервной копии нет* выполняется полный бекап<br/>В остальные дни по крону выполняются **инкременты**</td><td>minvalue=3; maxvalue=60</td></tr>
|
||||
</tbody></table>
|
||||
|
||||
|
||||
## Modify parameters
|
||||
|
||||
<table class="resource-table">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Required</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>603</td><td><strong><code class="code-no-wrap">resourceInstances</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>**Для синхронизации данных между репликами** необходимо включить `Создать ClickHouse-Keeper`</td><td>minvalue=1; maxvalue=7</td></tr>
|
||||
<tr><td>604</td><td><strong><code class="code-no-wrap">resourceInstancesShards</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>**Шард** - это часть данных, разделенная на разные узлы (серверы) для горизонтального масштабирования и обработки больших объемов информации. <br/>**Реплика** - это точная копия данных внутри одного шарда</td><td>minvalue=1; maxvalue=7</td></tr>
|
||||
<tr><td>605</td><td><strong><code class="code-no-wrap">resourceCPU</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>Указывается в Milicores<br/>`1000` Mili == `1` Ядро</td><td>minvalue=1000; maxvalue=8000</td></tr>
|
||||
<tr><td>606</td><td><strong><code class="code-no-wrap">resourceMemory</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>Указывается в Megabytes</td><td>minvalue=1536; maxvalue=8192</td></tr>
|
||||
<tr><td>607</td><td><strong><code class="code-no-wrap">appVersion</code></strong></td><td><code>string</code></td><td>ДА</td><td><code>25.10</code></td><td>Версия `clickhouse-server`</td><td></td></tr>
|
||||
<tr><td>608</td><td><strong><code class="code-no-wrap">resourceDisk</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>Указывается в Gigabytes<br/>**Нельзя** выставлять меньше текущего значения</td><td>minvalue=1; maxvalue=999</td></tr>
|
||||
<tr><td>609</td><td><strong><code class="code-no-wrap">needExternalAddressMaster</code></strong></td><td><code>boolean</code></td><td>ДА</td><td></td><td>Для выделения IP также необходимо указать имя Ip-space.<br/>Его можно получить из свойств ресурсной платформы</td><td>value_list=false, true</td></tr>
|
||||
<tr><td>610</td><td><strong><code class="code-no-wrap">ipSpaceNameMaster</code></strong></td><td><code>string</code></td><td>ДА</td><td></td><td>Имя ipSpace для публикации внешнего адреса<br/><br/>Не может быть пустым, если включен `Выделение белого ip для master ноды`</td><td></td></tr>
|
||||
<tr><td>611</td><td><strong><code class="code-no-wrap">needCreateKeeper</code></strong></td><td><code>boolean</code></td><td>ДА</td><td></td><td>Аналог `Zookeeper`, представленный от ClickHouse</td><td>value_list=false, true</td></tr>
|
||||
<tr><td>612</td><td><strong><code class="code-no-wrap">resourceCPUKeeper</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>Указывается в Milicores<br/>`1000` Mili == `1` Ядро</td><td>minvalue=50; maxvalue=8000</td></tr>
|
||||
<tr><td>613</td><td><strong><code class="code-no-wrap">resourceMemoryKeeper</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>Указывается в Megabytes</td><td>minvalue=152; maxvalue=8192</td></tr>
|
||||
<tr><td>614</td><td><strong><code class="code-no-wrap">resourceInstancesKeeper</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>Для **теста** - 1 нода. <br/>Для **продуктива** - 3 ноды</td><td>minvalue=1; maxvalue=3; value_list=1, 3</td></tr>
|
||||
<tr><td>615</td><td><strong><code class="code-no-wrap">ext_BACKUP_SCHEDULE</code></strong></td><td><code>string</code></td><td>ДА</td><td><code>0 0 * * *</code></td><td>Принимает формат `CRON`</td><td>regex=^((((\d+,)+\d+|(\d+(\/|-|#)\d+)|(\d+L?)|(\*(\/\d+)?)|(L(-\d+)?)|(\?)|([A-Z]{3}(-[A-Z]{3})?)) ?){5,7})|(@(annually|yearly|monthly|weekly|daily|hourly|reboot))|(@every (\d+(ns|us|µs|ms|s|m|h))+)$</td></tr>
|
||||
<tr><td>616</td><td><strong><code class="code-no-wrap">ext_BACKUP_NUM_TO_RETAIN</code></strong></td><td><code>integer</code></td><td>ДА</td><td></td><td>Кол-во **полных** резервных копий<br/>Кол-во инкрементов - неограничено<br/><br/>Полная резервная копия выполняется раз в неделю<br/>*Если изначально полной резервной копии нет* выполняется полный бекап<br/>В остальные дни по крону выполняются **инкременты**</td><td>minvalue=3; maxvalue=60</td></tr>
|
||||
</tbody></table>
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
[Overview](clickhouse_params_create.md) | [Parameters](clickhouse_params_create_params.md) | [Operations](clickhouse_params_create_ops.md)
|
||||
[Overview](clickhouse_params_create.md) | [Parameters](clickhouse_params_create_params.md) | [Operations](clickhouse_params_create_ops.md)
|
||||
[Overview](clickhouse_params_create.md) | [Parameters](clickhouse_params_create_params.md) | [Operations](clickhouse_params_create_ops.md)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
[Overview](clickhouse_params_create.md) | [Parameters](clickhouse_params_create_params.md) | [Operations](clickhouse_params_create_ops.md)
|
||||
[Overview](clickhouse_params_create.md) | [Parameters](clickhouse_params_create_params.md) | [Operations](clickhouse_params_create_ops.md)
|
||||
[Overview](clickhouse_params_create.md) | [Parameters](clickhouse_params_create_params.md) | [Operations](clickhouse_params_create_ops.md)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
[Overview](clickhouse_params_create.md) | [Parameters](clickhouse_params_create_params.md) | [Operations](clickhouse_params_create_ops.md)
|
||||
[Overview](clickhouse_params_create.md) | [Parameters](clickhouse_params_create_params.md) | [Operations](clickhouse_params_create_ops.md)
|
||||
[Overview](clickhouse_params_create.md) | [Parameters](clickhouse_params_create_params.md) | [Operations](clickhouse_params_create_ops.md)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
[Overview](clickhouse_params_modify.md) | [Parameters](clickhouse_params_modify_params.md) | [Operations](clickhouse_params_modify_ops.md)
|
||||
[Overview](clickhouse_params_modify.md) | [Parameters](clickhouse_params_modify_params.md) | [Operations](clickhouse_params_modify_ops.md)
|
||||
[Overview](clickhouse_params_modify.md) | [Parameters](clickhouse_params_modify_params.md) | [Operations](clickhouse_params_modify_ops.md)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
[Overview](clickhouse_params_modify.md) | [Parameters](clickhouse_params_modify_params.md) | [Operations](clickhouse_params_modify_ops.md)
|
||||
[Overview](clickhouse_params_modify.md) | [Parameters](clickhouse_params_modify_params.md) | [Operations](clickhouse_params_modify_ops.md)
|
||||
[Overview](clickhouse_params_modify.md) | [Parameters](clickhouse_params_modify_params.md) | [Operations](clickhouse_params_modify_ops.md)
|
||||
@@ -0,0 +1,11 @@
|
||||
# Resource nubes_clickhouse
|
||||
|
||||
Service ID: `120`
|
||||
|
||||
Service Name: ClickHouse
|
||||
|
||||
[Manual](clickhouse.md) | [Create params](clickhouse_params_create.md) | [Modify params](clickhouse_params_modify.md) | [Output params](clickhouse_outputs.md) | [Operations](clickhouse_ops.md) | [Example](clickhouse_example.md)
|
||||
|
||||
[Overview](clickhouse_params_modify.md) | [Parameters](clickhouse_params_modify_params.md) | [Operations](clickhouse_params_modify_ops.md)
|
||||
[Overview](clickhouse_params_modify.md) | [Parameters](clickhouse_params_modify_params.md) | [Operations](clickhouse_params_modify_ops.md)
|
||||
[Overview](clickhouse_params_modify.md) | [Parameters](clickhouse_params_modify_params.md) | [Operations](clickhouse_params_modify_ops.md)
|
||||
@@ -0,0 +1,28 @@
|
||||
# Resource nubes_clickhouse_user
|
||||
|
||||
Service: nubes_clickhouse
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
## Example
|
||||
|
||||
```hcl
|
||||
resource "nubes_clickhouse_user" "example" {
|
||||
clickhouse_id = nubes_clickhouse.example.id
|
||||
username = "TODO"
|
||||
database_name = ["database"]
|
||||
access_hosts = ::/0
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,17 @@
|
||||
# Resource nubes_clickhouse_user
|
||||
|
||||
Service: nubes_clickhouse
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
@@ -0,0 +1,17 @@
|
||||
# Resource nubes_clickhouse_user
|
||||
|
||||
Service: nubes_clickhouse
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
|
||||
[Overview](clickhouse_user.md) | [Parameters](clickhouse_user_params.md) | [Operations](clickhouse_user_ops.md)
|
||||
@@ -0,0 +1,71 @@
|
||||
# Resource nubes_d_e_p_r_e_c_a_t_e_d
|
||||
|
||||
Service ID: `24`
|
||||
|
||||
Service Name: DEPRECATED Правила маршрутизации для VM (vc_nat)
|
||||
|
||||
[Overview](d_e_p_r_e_c_a_t_e_d.md) | [Parameters](d_e_p_r_e_c_a_t_e_d_params.md) | [Operations](d_e_p_r_e_c_a_t_e_d_ops.md)
|
||||
|
||||
[Overview](d_e_p_r_e_c_a_t_e_d.md) | [Parameters](d_e_p_r_e_c_a_t_e_d_params.md) | [Operations](d_e_p_r_e_c_a_t_e_d_ops.md)
|
||||
|
||||
[Overview](d_e_p_r_e_c_a_t_e_d.md) | [Parameters](d_e_p_r_e_c_a_t_e_d_params.md) | [Operations](d_e_p_r_e_c_a_t_e_d_ops.md)
|
||||
|
||||
[Overview](d_e_p_r_e_c_a_t_e_d.md) | [Parameters](d_e_p_r_e_c_a_t_e_d_params.md) | [Operations](d_e_p_r_e_c_a_t_e_d_ops.md)
|
||||
|
||||
## MAN
|
||||
|
||||
Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ<br/>DEPRECATED
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Summary
|
||||
|
||||
Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ<br/>DEPRECATED
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Example
|
||||
|
||||
```text
|
||||
resource "nubes_d_e_p_r_e_c_a_t_e_d" "example" {
|
||||
delete_mode = "state_only"
|
||||
resume_if_exists = НЕТ
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Outputs
|
||||
|
||||
- `state_params` (map)
|
||||
- `state_out` (map)
|
||||
- `state_params_flat` (map)
|
||||
- `state_out_flat` (map)
|
||||
- `vault_secrets` (map)
|
||||
- `vault_url` (string)
|
||||
- `vault_user_path` (string)
|
||||
- `vault_fields` (list)
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Lifecycle defaults
|
||||
|
||||
- `delete_mode_default` = `state_only`
|
||||
- `resume_if_exists_default` = `False`
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## Lifecycle behavior
|
||||
|
||||
- If suspend/resume exist, delete maps to suspend and apply can resume.
|
||||
- Advanced users may override delete_mode and resume_if_exists.
|
||||
@@ -0,0 +1,3 @@
|
||||
# MAN: d_e_p_r_e_c_a_t_e_d
|
||||
|
||||
Правила маршрутизации в Cloud Director. Требует наличие сетей, ВМ<br/>DEPRECATED
|
||||
@@ -0,0 +1,13 @@
|
||||
# Resource nubes_d_e_p_r_e_c_a_t_e_d
|
||||
|
||||
Service ID: `24`
|
||||
|
||||
Service Name: DEPRECATED Правила маршрутизации для VM (vc_nat)
|
||||
|
||||
[Overview](d_e_p_r_e_c_a_t_e_d.md) | [Parameters](d_e_p_r_e_c_a_t_e_d_params.md) | [Operations](d_e_p_r_e_c_a_t_e_d_ops.md)
|
||||
|
||||
[Overview](d_e_p_r_e_c_a_t_e_d.md) | [Parameters](d_e_p_r_e_c_a_t_e_d_params.md) | [Operations](d_e_p_r_e_c_a_t_e_d_ops.md)
|
||||
|
||||
[Overview](d_e_p_r_e_c_a_t_e_d.md) | [Parameters](d_e_p_r_e_c_a_t_e_d_params.md) | [Operations](d_e_p_r_e_c_a_t_e_d_ops.md)
|
||||
|
||||
[Overview](d_e_p_r_e_c_a_t_e_d.md) | [Parameters](d_e_p_r_e_c_a_t_e_d_params.md) | [Operations](d_e_p_r_e_c_a_t_e_d_ops.md)
|
||||
@@ -0,0 +1,13 @@
|
||||
# Resource nubes_d_e_p_r_e_c_a_t_e_d
|
||||
|
||||
Service ID: `24`
|
||||
|
||||
Service Name: DEPRECATED Правила маршрутизации для VM (vc_nat)
|
||||
|
||||
[Overview](d_e_p_r_e_c_a_t_e_d.md) | [Parameters](d_e_p_r_e_c_a_t_e_d_params.md) | [Operations](d_e_p_r_e_c_a_t_e_d_ops.md)
|
||||
|
||||
[Overview](d_e_p_r_e_c_a_t_e_d.md) | [Parameters](d_e_p_r_e_c_a_t_e_d_params.md) | [Operations](d_e_p_r_e_c_a_t_e_d_ops.md)
|
||||
|
||||
[Overview](d_e_p_r_e_c_a_t_e_d.md) | [Parameters](d_e_p_r_e_c_a_t_e_d_params.md) | [Operations](d_e_p_r_e_c_a_t_e_d_ops.md)
|
||||
|
||||
[Overview](d_e_p_r_e_c_a_t_e_d.md) | [Parameters](d_e_p_r_e_c_a_t_e_d_params.md) | [Operations](d_e_p_r_e_c_a_t_e_d_ops.md)
|
||||
@@ -0,0 +1,13 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
## MAN
|
||||
|
||||
<div class="man-content">
|
||||
Необходима DNS зона, в которой будет создана DNS запись.<br/>Выберите <br/>* Зону в которой будет создана запись<br/>* Тип записи<br/>* Имя записи<br/>* Значение записи
|
||||
</div>
|
||||
@@ -0,0 +1,49 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
## Copy-ready manifest (`dnsrecord_main.tf`)
|
||||
|
||||
```hcl
|
||||
terraform {
|
||||
required_providers {
|
||||
nubes = {
|
||||
source = "terra.k8c.ru/nubes/nubes"
|
||||
version = "2.1.23"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
# Токен доступа api_token к Nubes API — замените на реальный.
|
||||
provider "nubes" {
|
||||
api_token = "token_***"
|
||||
api_endpoint = "https://deck-api.ngcloud.ru/api/v1/index.cfm"
|
||||
}
|
||||
resource "nubes_dnsrecord" "baza" {
|
||||
zone_uid = "TODO" # UUID экземпляра услуги DNS-зоны
|
||||
record_type = "A" # Тип DNS-записи
|
||||
record_name = "TODO" # Имя записи. Имя зоны в конце проставляется автоматически
|
||||
record_input = "TODO" # Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP
|
||||
|
||||
# Параметры, имеющие значение по умолчанию, если не меняете - эти параметры не обязательно прописывать в манифесте
|
||||
record_t_t_l = 3600 # Time-to-Leave записи. Раз в какое время запись будет обновлена
|
||||
}
|
||||
```
|
||||
|
||||
## Outputs usage
|
||||
|
||||
```hcl
|
||||
# Выходные параметры можно использовать как
|
||||
nubes_dnsrecord.baza.state_params["имя_ключа"]
|
||||
nubes_dnsrecord.baza.state_out["имя_ключа"]
|
||||
nubes_dnsrecord.baza.state_params_flat["имя_ключа"]
|
||||
nubes_dnsrecord.baza.state_out_flat["имя_ключа"]
|
||||
nubes_dnsrecord.baza.vault_secrets["имя_ключа"]
|
||||
nubes_dnsrecord.baza.vault_url
|
||||
nubes_dnsrecord.baza.vault_user_path
|
||||
nubes_dnsrecord.baza.vault_fields
|
||||
```
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
[Overview](dnsrecord_example.md) | [Parameters](dnsrecord_example_params.md) | [Operations](dnsrecord_example_ops.md)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
[Overview](dnsrecord_example.md) | [Parameters](dnsrecord_example_params.md) | [Operations](dnsrecord_example_ops.md)
|
||||
@@ -0,0 +1,3 @@
|
||||
# Инструкция для dnsrecord
|
||||
|
||||
Необходима DNS зона, в которой будет создана DNS запись.<br/>Выберите <br/>* Зону в которой будет создана запись<br/>* Тип записи<br/>* Имя записи<br/>* Значение записи
|
||||
@@ -0,0 +1,3 @@
|
||||
# MAN: dnsrecord
|
||||
|
||||
Необходима DNS зона, в которой будет создана DNS запись.<br/>Выберите <br/>* Зону в которой будет создана запись<br/>* Тип записи<br/>* Имя записи<br/>* Значение записи
|
||||
@@ -0,0 +1,13 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
## Operations
|
||||
|
||||
- `create` — Создание кластера. Параметры: [Create params](dnsrecord_params_create.md)
|
||||
- `delete`
|
||||
- `modify` — Изменение кластера. Параметры: [Modify params](dnsrecord_params_modify.md)
|
||||
@@ -0,0 +1,41 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
## Output params
|
||||
|
||||
- `state_params` (map) — параметры, отправленные в API при создании/изменении
|
||||
- `state_out` (map) — ответ API с результатами/выходными значениями
|
||||
- `state_params_flat` (map) — параметры в плоском виде (ключи с путями)
|
||||
- `state_out_flat` (map) — ответы в плоском виде (ключи с путями)
|
||||
- `vault_secrets` (map) — секреты, записанные в Vault для ресурса
|
||||
- `vault_url` (string) — адрес Vault для ресурса
|
||||
- `vault_user_path` (string) — путь пользователя в Vault
|
||||
- `vault_fields` (list) — список ключей доступных секретов
|
||||
|
||||
## Реальные поля из облака (test / A-record (admin.1dbfe9da-ce1c-4958-b359-d016a4b455c8) / running)
|
||||
|
||||
Поля ниже получены из реальных инстансов этого сервиса в облаке.
|
||||
Используйте их как готовые ключи для `state_out_flat` и `vault_secrets`.
|
||||
|
||||
### `state_params` ключи
|
||||
|
||||
- `state_params["zoneUid"]`
|
||||
- `state_params["recordTTL"]`
|
||||
- `state_params["recordName"]`
|
||||
- `state_params["recordType"]`
|
||||
- `state_params["recordInput"]`
|
||||
|
||||
### `state_out_flat` ключи
|
||||
|
||||
- `state_out_flat["record"]`
|
||||
- `state_out_flat["dnsServers"]`
|
||||
|
||||
### `vault_secrets` ключи
|
||||
|
||||
- `vault_secrets["fields"]`
|
||||
- `vault_secrets["userPath"]`
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
[Overview](dnsrecord_outputs.md) | [Parameters](dnsrecord_outputs_params.md) | [Operations](dnsrecord_outputs_ops.md)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
[Overview](dnsrecord_outputs.md) | [Parameters](dnsrecord_outputs_params.md) | [Operations](dnsrecord_outputs_ops.md)
|
||||
@@ -0,0 +1,12 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
## Parameters
|
||||
|
||||
- [Create params](dnsrecord_params_create.md)
|
||||
- [Modify params](dnsrecord_params_modify.md)
|
||||
@@ -0,0 +1,27 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
## Create params
|
||||
|
||||
**Обязательные параметры (вводимые пользователем)**
|
||||
|
||||
<table class="resource-table resource-table-compact resource-table-required">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>75</td><td><strong><code class="code-no-wrap">zone_uid</code></strong></td><td><code>uuid</code></td><td>UUID экземпляра услуги DNS-зоны</td><td>ref_svc_id=110</td></tr>
|
||||
<tr><td>76</td><td><strong><code class="code-no-wrap">record_type</code></strong></td><td><code>string</code></td><td>Тип DNS-записи</td><td>value_list=A, AAAA, CNAME, MX, PTR, SOA, SRV, TXT, LUA, NS, SSHFP</td></tr>
|
||||
<tr><td>77</td><td><strong><code class="code-no-wrap">record_name</code></strong></td><td><code>string</code></td><td>Имя записи. Имя зоны в конце проставляется автоматически</td><td>unique_scope=parent</td></tr>
|
||||
<tr><td>78</td><td><strong><code class="code-no-wrap">record_input</code></strong></td><td><code>string</code></td><td>Значение. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP</td><td></td></tr>
|
||||
</tbody></table>
|
||||
|
||||
**Параметры, имеющие значение по умолчанию, если не меняете - эти параметры не обязательно прописывать в манифесте**
|
||||
<table class="resource-table resource-table-compact">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>450</td><td><strong><code class="code-no-wrap">record_ttl</code></strong></td><td><code>integer</code></td><td><code>3600</code></td><td>Time-to-Leave записи. Раз в какое время запись будет обновлена</td><td>minvalue=30; maxvalue=604800</td></tr>
|
||||
</tbody></table>
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
[Overview](dnsrecord_params_create.md) | [Parameters](dnsrecord_params_create_params.md) | [Operations](dnsrecord_params_create_ops.md)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
[Overview](dnsrecord_params_create.md) | [Parameters](dnsrecord_params_create_params.md) | [Operations](dnsrecord_params_create_ops.md)
|
||||
@@ -0,0 +1,15 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
## Modify params
|
||||
|
||||
<table class="resource-table resource-table-compact">
|
||||
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Description</th><th>Constraints</th></tr></thead>
|
||||
<tbody>
|
||||
<tr><td>256</td><td><strong><code class="code-no-wrap">record_input</code></strong></td><td><code>string</code></td><td>Запись. Необходима валидация, в зависимости от типа записи. Должно быть заменено на UUID-внешнийIP</td><td></td></tr>
|
||||
</tbody></table>
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
[Overview](dnsrecord_params_modify.md) | [Parameters](dnsrecord_params_modify_params.md) | [Operations](dnsrecord_params_modify_ops.md)
|
||||
@@ -0,0 +1,9 @@
|
||||
# Resource nubes_dnsrecord
|
||||
|
||||
Service ID: `111`
|
||||
|
||||
Service Name: DNS запись
|
||||
|
||||
[Manual](dnsrecord.md) | [Create params](dnsrecord_params_create.md) | [Modify params](dnsrecord_params_modify.md) | [Output params](dnsrecord_outputs.md) | [Operations](dnsrecord_ops.md) | [Example](dnsrecord_example.md)
|
||||
|
||||
[Overview](dnsrecord_params_modify.md) | [Parameters](dnsrecord_params_modify_params.md) | [Operations](dnsrecord_params_modify_ops.md)
|
||||
@@ -0,0 +1,13 @@
|
||||
# Resource nubes_dnszone
|
||||
|
||||
Service ID: `110`
|
||||
|
||||
Service Name: DNS зона
|
||||
|
||||
[Manual](dnszone.md) | [Create params](dnszone_params_create.md) | [Modify params](dnszone_params_modify.md) | [Output params](dnszone_outputs.md) | [Operations](dnszone_ops.md) | [Example](dnszone_example.md)
|
||||
|
||||
## MAN
|
||||
|
||||
<div class="man-content">
|
||||
##  Необходимо делегировать зону у регистратора на Авторитетные DNS (Сервера зон)<br/><br/>ns3.ngcloud.ru<br/>``` bash<br/>185.247.187.83<br/>2a10:aa80:0:5::3<br/>```<br/><br/>ns4.ngcloud.ru<br/>``` bash<br/>81.22.46.43<br/>2a10:aa80:0:6::3<br/>```
|
||||
</div>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user