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

# Customize an installation via git

> Understand the git repository behind an installation: change inputs, override resources, and roll out reviewed updates

<Frame>
  <img className="block dark:hidden" src="https://mintcdn.com/akua-1dce587a/KB6u5PJRNHAXrgro/images/heros/install-repo-light.svg?fit=max&auto=format&n=KB6u5PJRNHAXrgro&q=85&s=88f0d18b39d86b5db22572b5d60cd577" alt="A cloned installation file tree showing which files you edit (inputs.yaml, package.k) versus locked rendered output, feeding a review, render, and apply loop you iterate on" width="1536" height="864" data-path="images/heros/install-repo-light.svg" />

  <img className="hidden dark:block" src="https://mintcdn.com/akua-1dce587a/KB6u5PJRNHAXrgro/images/heros/install-repo-dark.svg?fit=max&auto=format&n=KB6u5PJRNHAXrgro&q=85&s=393ec528a32186136acf9a8b3d9a4b91" alt="A cloned installation file tree showing which files you edit (inputs.yaml, package.k) versus locked rendered output, feeding a review, render, and apply loop you iterate on" width="1536" height="864" data-path="images/heros/install-repo-dark.svg" />
</Frame>

Every installation you create on Akua gets its own private git repository. Cloning it gives you version-controlled access to the install configuration: the inputs your customer set in the wizard, the rendered Kubernetes resources, and the upstream package source. A repository change becomes live after it passes through the install's normal review and render path.

Most customers never need to touch this. The dashboard wizard and the values editor cover the common cases. The git repository is the escape hatch for the moments where you need to do something the UI doesn't expose: patch a resource, add a sidecar, swap an image registry, or move an installation to a reviewed Package version.

This page covers what to edit and how those edits affect the install. When a change should be reviewed before it lands — an agent's fix, a partner's update, or an automated bump — prepare it through a [repository change request](/installs/repository-change-requests).

## Find your installation's repository

Open your installation in the dashboard. The **Source** tab shows the clone URL and the latest applied commit.

```bash theme={null}
# The URL has the form https://git.akua.dev/<workspace-org>/<install-id>.git
git clone https://git.akua.dev/your-org/your-install-id.git
cd your-install-id
```

The repository requires authentication. Your dashboard token works as the password; use any string for the username.

<Note>
  The repository is private and isolated to your workspace. Only authorized workspace members can clone it or submit changes.
</Note>

## What's inside the repository

You'll edit `inputs.yaml` (the wizard values) for everyday changes and `package.k` (composition logic) for advanced ones. `manifests/` is rendered output; never edit it. `akua.toml` and the vendored `upstream/` copy round out the layout. For the full file-by-file breakdown and who owns each file, see [Installation repositories](/installs/repositories#whats-in-the-repository).

## Common edits

### Change a value

Edit `inputs.yaml`, commit, and send the change through your normal review path.

```bash theme={null}
# Bump the replica count
$EDITOR inputs.yaml
git commit -am "scale replicas to 5"
```

After the change is accepted, Akua re-renders `manifests/` from the new inputs and rolls out the change to your cluster. The installation status updates as the cluster converges.

### Override a single field on a rendered resource

When `inputs.yaml` doesn't expose what you need, edit `package.k`. The composition layer lets you patch any field on any resource without forking the upstream package.

```python theme={null}
# package.k — example: add a node selector to every Deployment
_patched = [r | {
    if r.kind == "Deployment":
        spec.template.spec.nodeSelector: { "node-pool": "high-memory" }
} for r in _upstream]
```

Commit the patch and send it through your normal review path. The change rolls out after it is accepted.

### Add a resource the upstream doesn't include

Append it to the `_extras` list in `package.k`:

```python theme={null}
_extras = [
    {
        apiVersion: "v1"
        kind: "ConfigMap"
        metadata.name: input.appName + "-feature-flags"
        data: { enableNewUI: "true" }
    }
]
```

The new resource ships alongside the upstream's resources after the change is accepted and rendered.

## Updating the Package version

When a Package publishes a new version, you can move an installation to that version without losing its inputs. See [Package versioning](/installs/versioning#move-to-a-new-package-version) for the review path.

## Rollbacks

The repository is a normal git history. Roll back by reverting:

```bash theme={null}
# Roll back to the previous applied commit
git revert HEAD
```

Send the revert through the same review path you use for other installation changes. Akua re-renders after the rollback is accepted, and the cluster converges to the reverted state.

## What Akua overwrites

`manifests/` is regenerated whenever Akua accepts and renders a repository change; never edit it by hand. `inputs.yaml` can be rewritten when a customer changes wizard values from the dashboard, so put changes that must survive customer edits in `package.k`. `package.k`, `akua.toml`, and `upstream/` are never overwritten. See [how the repository stays in sync](/installs/repositories#how-it-stays-in-sync-with-the-dashboard) for the full model.

## Related topics

<CardGroup cols={2}>
  <Card title="Customizing inputs" icon="sliders" href="/customizing-values">
    Multi-source values editor and per-install overrides.
  </Card>

  <Card title="Installation repositories" icon="folder-tree" href="/installs/repositories">
    The model behind the per-install git repository.
  </Card>

  <Card title="Package versioning" icon="clock-rotate-left" href="/installs/versioning">
    How commit history maps to installations.
  </Card>

  <Card title="Products" icon="box" href="/products">
    Sellable install configurations.
  </Card>
</CardGroup>
