Skip to main content

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.

Every installation on Akua has its own package repository, and every change to that package is a git commit. Versioning isn’t a separate concept: it’s the same commit history you already understand. Each commit has a SHA, an author, a timestamp, and a parent. Rolling back is git revert. Comparing versions is git diff.

How versioning works

When Akua renders an installation (for example, after a customer changes a wizard value), it computes a content hash over the rendered manifests. If the hash matches the previous render, no commit is made. If it differs, Akua commits the new manifests and updates the deployment to the new SHA. This means:
  • Every deploy is a commit. The commit SHA is what your cluster syncs to.
  • Equivalent edits don’t churn history. Changing whitespace in inputs.yaml produces no commit if the rendered manifests don’t change.
  • Identical inputs always render identically. The render is a pure function of package.k + inputs.yaml + the vendored upstream/.
The dashboard and API both expose the latest deployed SHA on every installation. The dashboard’s deploy detail page links to the commit; the GET /v1/repositories/{id} endpoint returns it as last_deploy_sha.

Track changes

Because the package is a normal git repository, any tool that works with git history works on it:
# What changed in the last deploy?
git log -1 --stat

# What changed since last week?
git log --since='1 week ago' --oneline

# What manifests differ between two deploys?
git diff <old-sha> <new-sha> -- manifests/
You can clone an installation’s repository and inspect, diff, or branch it the same way you would any other git repo.

Rollbacks

Roll back a deployment by reverting the commit:
git clone https://git.akua.dev/<your-org>/<install-id>.git
cd <install-id>
git revert HEAD
git push
Akua picks up the new commit and converges the cluster to the reverted state. The original commit stays in history: git revert adds an inverse commit rather than rewriting the past. You can also revert by checking out an older commit, generating a fresh commit on top, and pushing. This is useful when reverting through a chain of changes.

Compare two deploys

A common operation: “what changed between yesterday’s deploy and today’s?”
git diff <yesterday-sha> <today-sha>
This shows the diff over package.k, inputs.yaml, and manifests/ together, covering every change that affected the deployment. For just the cluster-visible diff, scope to manifests/.

Pin and update upstream versions

The upstream/ directory is the pinned product source for this installation. To update:
1

Bump the pin

Edit akua.toml to point at the new upstream version.
2

Re-vendor

Run akua vendor to refresh the upstream/ directory.
3

Test, commit, push

The next render uses the new upstream. Your edits in package.k and inputs.yaml carry through unchanged.
Different installations can pin to different upstream versions independently. There is no single “current version” of a product; each installation tracks its own.

Package generation

How Akua generates packages from your sources.

Customize an installation via git

Edit inputs, patch resources, push commits.

Installation repositories

The git-backed model behind every installation.

Repositories API

Endpoints, parameters, and try-it playground.