assay.flux
Flux CD GitOps toolkit. GitRepositories, Kustomizations, HelmReleases, notifications, image
automation. Client: flux.client(url, token).
Git Repositories
c.git_repos:list(namespace)->{items}-- List GitRepositoriesc.git_repos:get(namespace, name)-> repo|nil -- Get GitRepository by name (nil if 404)c.git_repos:is_ready(namespace, name)-> bool -- Check if GitRepository has Ready=True condition
Helm Repositories
c.helm_repos:list(namespace)->{items}-- List HelmRepositoriesc.helm_repos:get(namespace, name)-> repo|nil -- Get HelmRepository by namec.helm_repos:is_ready(namespace, name)-> bool -- Check if HelmRepository is ready
Helm Charts
c.helm_charts:list(namespace)->{items}-- List HelmCharts
OCI Repositories
c.oci_repos:list(namespace)->{items}-- List OCIRepositories
Kustomizations
c.kustomizations:list(namespace)->{items}-- List Kustomizationsc.kustomizations:get(namespace, name)-> ks|nil -- Get Kustomization by namec.kustomizations:is_ready(namespace, name)-> bool -- Check if Kustomization is readyc.kustomizations:status(namespace, name)->{ready, revision, last_applied_revision, conditions}|nil -- Get statusc.kustomizations:all_ready(namespace)->{ready, not_ready, total, not_ready_names}-- Check all Kustomizations
Helm Releases
c.helm_releases:list(namespace)->{items}-- List HelmReleasesc.helm_releases:get(namespace, name)-> hr|nil -- Get HelmRelease by namec.helm_releases:is_ready(namespace, name)-> bool -- Check if HelmRelease is readyc.helm_releases:status(namespace, name)->{ready, revision, last_applied_revision, conditions}|nil -- Get statusc.helm_releases:all_ready(namespace)->{ready, not_ready, total, not_ready_names}-- Check all HelmReleases
Notifications
c.notifications:alerts(namespace)->{items}-- List notification alertsc.notifications:providers(namespace)->{items}-- List notification providersc.notifications:receivers(namespace)->{items}-- List notification receivers
Image Policies
c.image_policies:list(namespace)->{items}-- List image automation policies
Sources (aggregate)
c.sources:all_ready(namespace)->{ready, not_ready, total, not_ready_names}-- Check all Git+Helm sources
Example:
local flux = require("assay.flux")
local c = flux.client("https://k8s-api:6443", env.get("K8S_TOKEN"))
local status = c.kustomizations:all_ready("flux-system")
assert.eq(status.not_ready, 0, "Some Kustomizations not ready: " .. table.concat(status.not_ready_names, ", "))