lava-operator 0.5.12

lava-operator — typed Kubernetes controller for the LavaArchitecture CRD. Operators submit a LavaArchitecture manifest naming a .tlisp source + bindings + gate; the controller renders via magma-lava + applies via the embedded magma path (or shells out to tofu/terraform). Status conditions track Synthesized / Planned / Applied / Failed phases. Pangea-operator analog for the lava + tatara-lisp stack.
name: image-push

# On every merge to main, build the amd64 OCI image via Nix and push
# to ghcr.io/pleme-io/lava-operator. The arm64 variant lands once we
# have an arm64 runner in the fleet; for now the operator runs on
# amd64 nodes (rio is x86_64).
#
# The image attribute name comes from the flake — substrate's
# rust-tool-image-flake helper exposes `dockerImage-amd64` +
# `dockerImage-arm64`. We push both architectures sequentially.
#
# Image tag is the short SHA + the package version. The HelmRelease
# uses `version: <package>` so any tagged release is pulled.

on:
  push:
    branches:
      - main
  workflow_dispatch:
    inputs:
      tag:
        description: 'Image tag (default: derived from Cargo.toml version)'
        required: false

permissions:
  contents: read
  packages: write
  id-token: write

jobs:
  amd64:
    uses: pleme-io/substrate/.github/workflows/image-push.yml@main
    with:
      imageAttr: dockerImage-amd64
      imageName: pleme-io/lava-operator
      tag: ${{ inputs.tag || 'latest' }}
      additionalTags: 'latest'
    secrets: inherit