VK Cloud logo

Конфигурация файлдары

Ресурстарды жасау кезінде Terraform конфигурация файлдарымен жұмыс істейді. Олардың кеңейтімі .tf.

VK Cloud әрбір жобасы үшін бөлек жұмыс директориясын жасау ұсынылады. Жұмыс директориясында келесі файлдар орналастырылады:

  • провайдердің конфигурация файлы (жобаға тән);
  • жасауды жоспарлап отырған ресурстардың конфигурация файлдары.

Terraform-дың дұрыс жұмыс істеуі үшін қосымша файл — Terraform айнасының конфигурация файлы қажет.

Terraform провайдерінің конфигурация файлы

Файлда Terraform-провайдерлер туралы ақпарат және жоба аясындағы пайдаланушыны аутентификациялау деректері болады.

Файл атауы кез келген болуы мүмкін. Файлда VK Cloud-қа қосылудың негізгі баптаулары бар екенін көрсету үшін provider.tf атауын пайдалану ұсынылады.

Файл барлық Terraform жұмыс директорияларында орналастырылуы тиіс.

Файлды жеке кабинеттегі Жоба баптаулары бетінің Terraform қойындысынан жүктеп алуға болады. Жүктелген файл vkcs_provider.tf деп аталады және бір провайдер (vkcs) туралы деректерді қамтиды. Жүктеп алғаннан кейін файлды өңдеңіз — password параметрінде тіркелгіңіздің құпиясөзін көрсетіңіз.

Файл мазмұнының мысалы:

terraform {    required_providers {        vkcs = {            source = "vk-cs/vkcs"        }    }}provider "vkcs" {    # Your user account.    username = "<user_email>"    # The password of the account    password = "<user_password>"    # The tenant token can be taken from the project Settings tab - > API keys.    # Project ID will be our token.    project_id = "<project_ID>"    # Region name    region = "<Region>"    auth_url = "<auth_url>"}

Файл келесі секциялардан тұрады:

  • terraform.required_providers {} — қолданылатын провайдерлер тізімі. VK Cloud-пен жұмыс істеу үшін vkcs провайдері, оның көзі және нұсқалары көрсетілуі тиіс. Қосымша провайдерлерді пайдаланбақ болсаңыз, оларды осы секцияға қосыңыз.

  • provider "vkcs" {} — жоба аясындағы аутентификация баптаулары:

    • password: тіркелгіңіздің құпиясөзін көрсетіңіз;
    • username, project_id, region: жеке кабинет арқылы жүктелген файлда көрсетілген мәндер ағымдағы жобамен жұмыс істеу үшін жарамды. Бұл мәндер сондай-ақ Жоба баптаулары бетінің Terraform қойындысында көрсетілген.

Кейбір параметрлердің мәндері аймаққа байланысты:

  • region:

    • Мәскеу аймағы үшін: RegionOne;
    • Қазақстан аймағы үшін: kz;
  • auth_url:

    • Мәскеу аймағы үшін: https://infra.mail.ru:5000/v3/;
    • Қазақстан аймағы үшін: https://kz.infra.mail.ru:5000/v3/.

Ресурстар конфигурациясының файлдары

Ресурстардың конфигурация файлдары Terraform көмегімен жасалатын ресурстарды, олардың баптауларын және тәуелділіктерін сипаттайды.

Конфигурация файлдарының атауы кез келген болуы мүмкін. Осы құжаттамадағы мысалдарда келесі атау беру қағидалары қолданылады:

  • variables.tf — конфигурацияда пайдаланылатын айнымалылар. Жиі өзгеретін параметрлерді айнымалыларға шығару жаңа жоба үшін инфрақұрылым конфигурациясын оңай өзгертуге мүмкіндік береді.
  • main.tf — белгілі бір сценарийде жасалатын негізгі ресурс сипаттамасын қамтиды. Мысалы, виртуалды машинаны жасағанда main.tf файлында виртуалды машинаның конфигурациясын орналастыру ұсынылады.

Кейде файлдар ресурс түрлері бойынша атала алады, мысалы:

  • network.tf — бұлттық желінің сипаттамасы.
  • kubernetes.tf — Kubernetes ресурстарының сипаттамасы.

Әдетте ресурс конфигурациясында мыналар пайдаланылады:

  • resource "resource_type" "resource_name" {} — мысалы, желі, ішкі желі, Kubernetes кластері немесе дерекқор кластері сияқты жасалатын ресурс.
  • data "data_type" "data_name" {} — бұлтта немесе жергілікті жерде бар, Terraform конфигурациясынан тыс көрсетілген деректерді пайдалануға мүмкіндік береді. Мысалы, ВМ конфигурациясын, кластер үлгісін/нұсқасын және т.б.
  • variable "parameter" {}кіріс айнымалылары. Конфигурацияда қолданылатын айнымалыларды жариялау үшін пайдаланылады (variables.tf).
  • output "parameter" {}шығыс айнымалылары. Деректерді пәрмен жолына шығарады.

Ресурстарды жасау ретін және олардың тәуелділіктерін анықтау үшін depends_on мета-аргументін пайдалануға болады. Мета-аргумент жасалатын ресурс тәуелді болатын ресурсты көрсетеді:

depends_on = [    vkcs_kubernetes_cluster.k8s-cluster,]

Алдымен мета-аргумент арқылы көрсетілген ресурс жасалады, содан кейін — тәуелділігі көрсетілген ресурс.

Terraform айнасының конфигурация файлы

Бұл файл Terraform-ды іске қосу үшін қажет, онда VK Cloud ұсынған Terraform айнасының мекенжайы болады. Файлдың атауы Windows үшін terraform.rc, ал басқа ОС үшін .terraformrc болуы тиіс. Файл мазмұны барлық жобалар мен аймақтар үшін бірдей.

Файлды жеке кабинеттегі Жоба баптаулары бетінің Terraform қойындысынан жүктеп алуға болады. Жүктеп алғаннан кейін файлға қандай да бір өзгеріс енгізудің қажеті жоқ.

Файл мына жерде орналастырылуы тиіс:

  • Windows үшін — ағымдағы пайдаланушының Application Data директориясында.
  • Басқа ОС үшін — пайдаланушының үй директориясында.

VK Cloud жобаларына арналған файл мазмұны:

provider_installation {    network_mirror {        url = "https://terraform-mirror.mcs.mail.ru"        include = ["registry.terraform.io/*/*"]    }    direct {        exclude = ["registry.terraform.io/*/*"]    }}