Yandex Cloud
Search
Contact UsGet started
  • Blog
  • Pricing
  • Documentation
  • All Services
  • System Status
    • Featured
    • Infrastructure & Network
    • Data Platform
    • Containers
    • Developer tools
    • Serverless
    • Security
    • Monitoring & Resources
    • ML & AI
    • Business tools
  • All Solutions
    • By industry
    • By use case
    • Economics and Pricing
    • Security
    • Technical Support
    • Customer Stories
    • Cloud credits to scale your IT product
    • Gateway to Russia
    • Cloud for Startups
    • Education and Science
    • Yandex Cloud Partner program
  • Blog
  • Pricing
  • Documentation
© 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
      • Getting started with Cloud Marketplace
      • Installing Argo CD
      • Installing Chaos Mesh
      • Installing cert-manager with the Cloud DNS ACME webhook plugin
      • Installing Container Storage Interface for S3
      • Installing Crossplane
      • Installing External Secrets Operator
      • Installing ExternalDNS with a plugin for Cloud DNS
      • Installing Falco
      • Installing Filebeat OSS
      • Installing Fluent Bit
      • Installing Gatekeeper
      • Installing Gateway API
      • Installing the GitLab Agent
      • Installing GitLab Runner
      • Installing HashiCorp Vault
      • Installing Ingress NGINX
      • Installing the Application Load Balancer Ingress controller
      • Upgrading the Application Load Balancer Ingress controller
      • Installing Istio
      • Installing Jaeger
      • Installing Kruise
      • Installing Kyverno & Kyverno Policies
      • Installing Loki
      • Installing Metrics Provider
      • Installing NodeLocal DNS
      • Installing Policy Reporter
      • Installing Prometheus Operator
      • Installing Thumbor
      • Installing Velero
    • Connecting external nodes to the cluster
  • Access management
  • Pricing policy
  • Terraform reference
  • Monitoring metrics
  • Audit Trails events
  • Release notes

In this article:

  • Getting started
  • Installation in the management console using Cloud Marketplace
  • Installation using a Helm chart from the Cloud Marketplace repository
  • Installation using a Helm chart from the Crossplane repository
  • Configuring the provider
  • Getting information about resources
  • Use cases
  • See also
  1. Step-by-step guides
  2. Installing apps from Cloud Marketplace
  3. Installing Crossplane

Installing Crossplane with Yandex Cloud support

Written by
Yandex Cloud
Improved by
Dmitry A.
Updated at May 5, 2025
  • Getting started
  • Installation in the management console using Cloud Marketplace
  • Installation using a Helm chart from the Cloud Marketplace repository
  • Installation using a Helm chart from the Crossplane repository
  • Configuring the provider
  • Getting information about resources
  • Use cases
  • See also

Crossplane is a freeware add-on to Kubernetes that enables platform development teams to build infrastructure for multiple vendors and produce higher-level service APIs for application development teams.

You can install Crossplane in any of the following ways:

  • Using Yandex Cloud Marketplace in the management console.
  • Using a Helm chart from the Cloud Marketplace repository.
  • Using a Helm chart from the Crossplane repository.

Getting startedGetting started

  1. If you do not have the Yandex Cloud CLI yet, install and initialize it.

    The folder specified when creating the CLI profile is used by default. To change the default folder, use the yc config set folder-id <folder_ID> command. You can specify a different folder using the --folder-name or --folder-id parameter.

  2. Create a service account with the admin role for the folder where you want to manage resources using Crossplane.

  3. Create an authorized key for the service account and save it to a file:

    yc iam key create \
      --service-account-name <service_account_name> \
      --output key.json
    
  4. Make sure that the security groups for the Managed Service for Kubernetes cluster and its node groups are configured correctly. If any rule is missing, add it.

    Warning

    The configuration of security groups determines the performance and availability of the cluster and the services and applications running in it.

Installation in the management console using Cloud MarketplaceInstallation in the management console using Cloud Marketplace

  1. Navigate to the folder dashboard and select Managed Service for Kubernetes.
  2. Click the name of the Managed Service for Kubernetes cluster you need and select the Marketplace tab.
  3. Under Application available for installation, select Crossplane with Yandex Cloud support and click Go to install.
  4. Configure the application:
    • Namespace: Create a new namespace, e.g., crossplane-space. If you leave the default namespace, Crossplane may work incorrectly.
    • Application name: Specify the application name.
    • Service account key: Paste the contents of the file with the service account authorized key you obtained earlier or create a new one.
  5. Click Install.
  6. Wait for the application to change its status to Deployed.

When installing Crossplane from Cloud Marketplace, a provider will also be installed in the cluster and configured to work with Yandex Cloud resources.

You can change the provider settings, e.g., specify the default cloud and folder to create your resources in.

For more information about Yandex Cloud resources you can create with Crossplane, see Getting information about resources.

Installation using a Helm chart from the Cloud Marketplace repositoryInstallation using a Helm chart from the Cloud Marketplace repository

  1. Install Helm v3.8.0 or higher.

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

  3. To install a Helm chart with Crossplane, run the following command:

    helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/crossplane/crossplane \
      --version v1.18.2 \
      --untar && \
    helm install \
      --namespace <namespace> \
      --create-namespace \
      --set-file providerJetYc.creds=key.json \
      crossplane ./crossplane/
    

    If you set namespace to the default namespace, Crossplane may work incorrectly. We recommend you to specify a value different from all existing namespaces (e.g., crossplane-space).

    Note

    If you are using a Helm version below 3.8.0, append the export HELM_EXPERIMENTAL_OCI=1 && \ string to the command to enable Open Container Initiative (OCI) support in the Helm client.

  4. Make sure the state of all Crossplane pods changed to Running:

    kubectl get pods -A | grep -E "crossplane|provider-jet-yc"
    

When installing Crossplane from Cloud Marketplace, a provider will also be installed in the cluster and configured to work with Yandex Cloud resources.

You can change the provider settings, e.g., specify the default cloud and folder to create your resources in.

For more information about Yandex Cloud resources you can create with Crossplane, see Getting information about resources.

Installation using a Helm chart from the Crossplane repositoryInstallation using a Helm chart from the Crossplane repository

  1. Install Helm v3.8.0 or higher.

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

  3. Create a namespace for Crossplane:

    kubectl create namespace <namespace>
    
  4. Add the Helm GitHub repository:

    helm repo add crossplane-stable https://charts.crossplane.io/stable && \
    helm repo update
    
  5. Install Crossplane:

    helm install crossplane --namespace <namespace> crossplane-stable/crossplane
    
  6. Make sure that Crossplane is installed and running:

    helm list --namespace <namespace> && \
    kubectl get all --namespace <namespace>
    
  7. Install the Crossplane CLI:

    curl --silent --location https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh | sh && \
    sudo mv kubectl-crossplane $(dirname $(which kubectl))
    
  8. Install the provider:

    crossplane xpkg install provider xpkg.upbound.io/yandexcloud/crossplane-provider-yc:v0.5.1
    

    The current provider version is available in the GitHub repository.

  9. Create a secret named yc-creds:

    kubectl create secret generic yc-creds \
      --namespace "<namespace>" \
      --from-file=credentials=<path_to_key.json>
    
  10. Make sure the Yandex Cloud provider is installed:

    kubectl get provider
    
  11. Create the providerconfig.yaml Crossplane manifest with the Yandex Cloud provider settings:

    apiVersion: yandex-cloud.jet.crossplane.io/v1beta1
    kind: ProviderConfig
    metadata:
      name: default
    spec:
      credentials:
        cloudId: <cloud_ID>
        folderId: <folder_ID>
        source: Secret
        secretRef:
          name: yc-creds
          namespace: <namespace>
          key: credentials
    
  12. Apply the provider settings:

    kubectl apply -f providerconfig.yaml
    

Configuring the providerConfiguring the provider

  1. To change the Yandex Cloud provider settings for Crossplane, e.g., specify the default cloud and folder to create resources in, run this command:

    kubectl edit ProviderConfig/default
    
  2. Edit the parameters you want to update and save the changes.

Getting information about resourcesGetting information about resources

  1. View the list of Yandex Cloud resources you can create using Crossplane:

    kubectl get crd | grep yandex-cloud.jet.crossplane.io
    
  2. View the parameters you can set with Crossplane for a specific resource:

    kubectl describe crd <resource_name>
    

    For example, request the parameters for creating a Yandex Compute Cloud VM:

    kubectl describe crd instances.compute.yandex-cloud.jet.crossplane.io
    

    For examples of how to configure Yandex Cloud resources, see the provider's GitHub repository.

Use casesUse cases

  • Integration with Crossplane

See alsoSee also

  • Crossplane documentation

Was the article helpful?

Previous
Installing Container Storage Interface for S3
Next
Installing External Secrets Operator
© 2025 Direct Cursus Technology L.L.C.