> ## Documentation Index
> Fetch the complete documentation index at: https://docs.seekr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create the SeekrFlow values file

> Generate a starter values file with the sfe CLI or start from the chart's defaults, add the settings sfe leaves out, and validate it.

Every setting for your deployment lives in a single file, `my-values.yaml`. Environment differences are settings within that file rather than separate procedures. An Amazon Web Services (AWS) deployment and an on-premises deployment run the same install with different values.

Either path uses the values from [Collect credentials and values](/self-managed/flow/provision/checklist).

## Generate the starter file

<Tabs>
  <Tab title="With the sfe CLI">
    Before you start, complete [Set up the sfe CLI](/self-managed/flow/prepare/sfe-cli). Go to the folder where you want to keep the values file, such as your home folder, then run:

    ```bash theme={null}
    sfe bootstrap -r <version> -o my-values.yaml --provider aws
    ```

    Replace `<version>` with the SeekrFlow release you're installing. For an on-premises deployment, replace `aws` with `on-prem`.

    `sfe` asks a series of questions and writes the answers to `my-values.yaml`. Most answers come from [Collect credentials and values](/self-managed/flow/provision/checklist). Type them rather than pasting from a formatted page. A pasted value can carry an invisible character that breaks image pulls without any error.

    These questions need more than a value from the checklist, or have a default that's wrong for most deployments:

    | Question | What to enter |
    | - | - |
    | Container image registry | Seekr's registry, `seekr.repo.sonatype.app/seekr-docker-release/seekr`, or your own registry if you mirrored the images. |
    | File store path | Your bucket name, without `s3://`. |
    | IRSA role ARN | Leave it blank if you use Amazon Elastic Kubernetes Service (Amazon EKS) Pod Identity. |
    | OpenSearch port and scheme | Accept the defaults, `443` and `https://`. |
    | Enable the Valkey cache | `y` for any deployment that untrusted users can reach. See [Size your deployment](/self-managed/flow/plan/size-deployment). |
    | Configure ingress | `y` if SeekrFlow creates its own ingress. Enter your hostname and `alb`. |
    | Accelerators fine-tunes may use | The GPU types in your GPU nodes: `A10`, `A100`, `H100`, or `MI300X`. For any other NVIDIA GPU, such as the L4 or L40S, enter `A10`. |
    | Create storage class | `y`. Enter your Amazon Elastic File System (Amazon EFS) file system ID when asked. |
    | Add a Context Attribution model | `y`. Choose a model by number. |
    | Enable shared tools | `y`. Leave `pythonexecutor` off unless you trust all your users. It runs every team's Python code in one shared pod, outside the sandbox. |
    | Deploy the bundled Keycloak, and Enable Keycloak SSO | `n` to both for local accounts. `y` to both for the bundled Keycloak, or `n` then `y` for your own Keycloak. |
    | Organization name | Your organization's name. Users see it in the UI and in invitation emails. |
    | Let SeekrFlow create the secret store resource | `y`. The default is `n`. |
    | Secret store provider | `aws-sm` for AWS Secrets Manager. The default is `aws-ssm`, Parameter Store. |

    After it saves the file, `sfe` prints a command to label each GPU node with its GPU type, such as:

    ```bash theme={null}
    kubectl label node <node-name> seekr.io/gpu_type=A10
    ```

    Run it for each GPU node before your first fine-tuning job. Fine-tuning jobs run only on nodes with this label. To check the labels, run `kubectl get nodes -L seekr.io/gpu_type`.
  </Tab>

  <Tab title="Without the sfe CLI">
    Start from the default values file that ships with the chart. Sign in to Seekr's registry with the credentials from your Seekr account team:

    ```bash theme={null}
    echo "$REGISTRY_PASSWORD" | helm registry login seekr.repo.sonatype.app \
      --username "$REGISTRY_USERNAME" \
      --password-stdin
    ```

    Pull the chart, unpack it, and copy its default values file:

    ```bash theme={null}
    helm pull oci://seekr.repo.sonatype.app/seekr-docker-release/seekr/flow-helm-chart --version <version>
    tar -xzf flow-helm-chart-<version>.tgz
    cp flow-helm-chart/values.yaml my-values.yaml
    ```

    Fill in `my-values.yaml` with your provisioning values. Keep the unpacked chart. You install from it.
  </Tab>
</Tabs>

## Finish the values file

`sfe` doesn't write these settings. Add them before you install.

1. **Image pull secret.** Under `global`, add:

   ```yaml theme={null}
   imagePullSecrets:
     - name: seekrflow-artifacts-pull-access
   ```

2. **Load balancer annotations.** If SeekrFlow creates its own ingress on AWS, add the annotations from [Load balancer annotations](/self-managed/flow/provision/networking#load-balancer-annotations) under `global.ingress.annotations`.

3. **Kubernetes secrets only.** Set `global.Secrets.enabled` to `false`.

<Note>
  YAML indentation is significant. Match the surrounding indentation exactly and never use tabs.
</Note>

The file doesn't define the models SeekrFlow uses for ingestion, embeddings, and agent planning yet. You add them in [Configure models](/self-managed/flow/prepare/models).

## Validate

Check that the file matches the chart schema.

<Tabs>
  <Tab title="With the sfe CLI">
    ```bash theme={null}
    sfe values lint -r <version> -f my-values.yaml
    ```
  </Tab>

  <Tab title="Without the sfe CLI">
    From the folder that contains the unpacked chart, run:

    ```bash theme={null}
    helm lint flow-helm-chart -f my-values.yaml
    ```
  </Tab>
</Tabs>

<Note>
  Validation confirms that each setting in the file is valid. It doesn't check whether any are missing, such as the ones in [Finish the values file](#finish-the-values-file).
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.