[Yandex Cloud documentation](../../../index.md) > [Yandex Managed Service for Kubernetes](../../index.md) > [Step-by-step guides](../index.md) > Installing applications from Cloud Marketplace > Installing External Secrets Operator

# Installing the External Secrets Operator with Yandex Lockbox support


[External Secrets Operator](https://yandex.cloud/en/marketplace/products/yc/external-secrets) is a Kubernetes operator that integrates external secret management systems, such as [Yandex Lockbox](../../../lockbox/index.md), AWS Secrets Manager, Azure Key Vault, HashiCorp Vault, Google Secrets Manager, and more. The operator reads external APIs and automatically inserts values into a Kubernetes secret.

The External Secrets Operator with Yandex Lockbox support enables you to configure syncing [Yandex Lockbox secrets](../../../lockbox/concepts/secret.md) with [Managed Service for Kubernetes cluster](../../concepts/index.md#kubernetes-cluster) [secrets](../../concepts/encryption.md).

## Getting started {#before-you-begin}

1. If you do not have the Yandex Cloud CLI yet, [install and initialize it](../../../cli/quickstart.md#install).

   The folder used by default is the one specified when [creating](../../../cli/operations/profile/profile-create.md) the CLI profile. To change the default folder, use the `yc config set folder-id <folder_ID>` command. You can also specify a different folder for any command using `--folder-name` or `--folder-id`. If you access a resource by its name, the search will be limited to the default folder. If you access a resource by its ID, the search will be global, i.e., through all folders based on access permissions.

1. [Create a service account](../../../iam/operations/sa/create.md) for the External Secrets Operator.
1. Assign the required [role](../../../lockbox/security/index.md#service-roles) to the [service account](../../../iam/concepts/users/service-accounts.md):
   * [For a previously created secret](../../../lockbox/operations/secret-access.md).
   * [For all secrets](../../../iam/operations/sa/assign-role-for-sa.md) of a [folder](../../../resource-manager/concepts/resources-hierarchy.md#folder) or [cloud](../../../resource-manager/concepts/resources-hierarchy.md#cloud).
1. Create an [authorized key](../../../iam/concepts/authorization/key.md) for the service account and save it to the `sa-key.json` file:

   ```bash
   yc iam key create \
     --service-account-name <service_account_name> \
     --output sa-key.json
   ```

1. [Make sure](../connect/security-groups.md) the security groups for the Managed Service for Kubernetes cluster and its node groups are configured correctly. If a rule is missing, [add it](../../../vpc/operations/security-group-add-rule.md).

    {% note warning %}
    
    The configuration of security groups determines performance and availability of the cluster and the services and applications running in it.
    
    {% endnote %}

## Installing the External Secrets Operator through Yandex Cloud Marketplace {#marketplace-install}

1. In the [management console](https://console.yandex.cloud), select a folder.
1. Navigate to **Managed Service for&nbsp;Kubernetes**.
1. Click the name of the Managed Service for Kubernetes cluster you need and select the ![image](../../../_assets/console-icons/shopping-cart.svg) **Marketplace** tab.
1. Under **Application available for installation**, select [External Secrets Operator with Yandex Lockbox support](https://yandex.cloud/en/marketplace/products/yc/external-secrets) and click **Go to install**.
1. Configure the application:
   * **Namespace**: Create a new [namespace](../../concepts/index.md#namespace), e.g., `external-secrets-operator-space`. If you leave the default namespace, the External Secrets Operator may work incorrectly.
   * **Application name**: Specify the application name.
   * **Service account key**: Paste the contents of `sa-key.json`.
1. Click **Install**.
1. Wait for the application status to change to `Deployed`.

## Installation using a Helm chart {#helm-install}

1. [Install Helm](https://helm.sh/docs/intro/install/) v3.8.0 or higher.
1. [Install kubect](https://kubernetes.io/docs/tasks/tools/install-kubectl) and [configure it to work with the new cluster](../connect/index.md#kubectl-connect).
1. To install a [Helm chart](https://helm.sh/docs/topics/charts/) with the External Secrets Operator, run this command:

   ```bash
   helm pull oci://cr.yandex/yc-marketplace/yandex-cloud/external-secrets/charts/external-secrets \
     --version 2.5.0 \
     --untar && \
   helm install \
     --namespace <namespace> \
     --create-namespace \
     --set-file auth.json=<path_to_sa-key.json> \
     external-secrets ./external-secrets/
   ```

   This command creates a new namespace required for the External Secrets Operator.

   If you set `namespace` to the default namespace, the External Secrets Operator may work incorrectly. We recommend specifying a value different from all the existing namespaces, e.g., `external-secrets-operator-space`.

   {% note info %}
   
   If you are using a Helm version below 3.8.0, add the `export HELM_EXPERIMENTAL_OCI=1 && \` string at the beginning of the command to enable [Open Container Initiative](https://opencontainers.org/) (OCI) support in the Helm client.
   
   {% endnote %}

## Use cases {#examples}

* [Syncing with Yandex Lockbox secrets](../../tutorials/kubernetes-lockbox-secrets.md)

## See also {#see-also}

* [External Secrets Operator description](https://external-secrets.io/v0.8.1/provider/yandex-lockbox/)
* [Yandex Lockbox guides](../../../lockbox/index.md)