Yandex Cloud
Search
Contact UsGet started
  • Pricing
  • Customer Stories
  • Documentation
  • Blog
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • AI for business
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Start testing with double trial credits
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Center for Technologies and Society
    • Yandex Cloud Partner program
  • Pricing
  • Customer Stories
  • Documentation
  • Blog
© 2025 Direct Cursus Technology L.L.C.
Yandex Managed Service for Kubernetes
  • Comparison with other Yandex Cloud services
  • Getting started
    • All guides
    • Connecting to a node over SSH
    • Connecting to a node via OS Login
    • Updating Kubernetes
    • Configuring autoscaling
    • Activating a Kubernetes Terraform provider
    • Installing applications from Yandex Cloud Marketplace using Terraform
  • Access management
  • Pricing policy
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Release notes

In this article:

  • Getting started
  • Activating the provider
  • Installing applications with Terraform
  1. Step-by-step guides
  2. Installing applications from Yandex Cloud Marketplace using Terraform

Installing applications from Yandex Cloud Marketplace using Terraform

Written by
Yandex Cloud
Updated at October 29, 2025
  • Getting started
  • Activating the provider
  • Installing applications with Terraform

With the Helm Terraform provider, you can install apps from Cloud Marketplace, as well as any other Helm charts, in your Yandex Managed Service for Kubernetes cluster using Terraform manifests.

For more information about the provider resources, see the relevant provider reference on the Terraform website.

Getting startedGetting started

  1. Create a Managed Service for Kubernetes cluster using any method of your choice.

  2. Install kubect and configure it to work with the new cluster.

Activating the providerActivating the provider

  1. In a separate directory, create a file named provider.tf with the Helm provider settings:

    terraform {
      required_providers {
        helm = {
          source  = "hashicorp/helm"
          version = "~> 2.13"
        }
      }
      required_version = ">= 1.4.0"
    }
    
    provider "helm" {
      kubernetes {
        config_path = "~/.kube/config"
        config_context = "<context_name>"
      }
    }
    

    You can get a list of all contexts by running the kubectl config get-contexts command; to find out the current context, run kubectl config current-context.

  2. Initialize the Helm provider:

    terraform init
    

Installing applications with TerraformInstalling applications with Terraform

To install applications, use the helm_release Terraform resource.

Below we give an example of installing the GitLab Runner application.

  1. In the directory housing the provider.tf file, create a file named gitlab-runner.tf:

    resource "helm_release" "gitlab_runner" {
      name             = "gitlab-runner"
      chart            = "oci://cr.yandex/yc-marketplace/yandex-cloud/gitlab-org/gitlab-runner/chart/gitlab-runner"
      version          = "0.54.0-8"
      namespace        = "gitlab-runner"
      create_namespace = true
    
    
      values = [yamlencode({
        gitlabDomain            = "https://***.gitlab.yandexcloud.net"
        runnerRegistrationToken = "<registration_token>"
    
        replicas     = 2
        nodeSelector = { nodepool = "runners" }
        resources = {
          requests = { cpu = "200m", memory = "256Mi" }
          limits   = { cpu = "500m", memory = "512Mi" }
        }
      })]
    }
    

    Where:

    • name: Application name.

    • chart: Link to the Helm chart.

    • version: Application version.

    • namespace: New namespace to install your application in. If you specify the default namespace, GitLab Runner may work incorrectly.

    • values: Parameters from the values.yaml Helm chart configuration file:

      • gitlabDomain: GitLab instance domain.
      • runnerRegistrationToken: Registration token. Learn more about obtaining a token.
      • replicas: Number of application pods.
      • nodeSelector: Assigning pods to nodes with the nodepool = "runners" label.
      • resources: Minimum and maximum amount of resources to allocate to the application.

    To request a list of all parameters from values.yaml, run this command:

    helm show values <Helm_chart_link> --version <application_version>
    
  2. Install the application:

    1. View the planned changes:

      terraform plan
      
    2. If the changes are acceptable, apply them:

      terraform apply
      

Tip

To install applications from Cloud Marketplace, you can also use the Terraform module by Yandex Cloud.

Learn more about using modules.

Was the article helpful?

Previous
Activating a Kubernetes Terraform provider
Next
Connection method overview
© 2025 Direct Cursus Technology L.L.C.