kubeclaw/nix/build-image.nix
Marcus (agent-cos) ece81f651c feat: full kubeclaw operator — CRDs, controllers, deploy manifests, Helm chart
- 7 CRDs (Agent, AgentConfig, AgentGroup, Channel, Provider, WorkflowTemplate, CompliancePolicy)
- 3 controllers (Agent, WorkflowTemplate, CompliancePolicy)
- Generated deepcopy methods (controller-gen v0.16.5)
- Dockerfile (multi-stage Go build)
- Nix build-image.nix (dockerTools.streamLayeredImage)
- Helm chart with RBAC, deployment, service account
- Deploy manifests (RBAC + controller deployment)
- Sample manifests for all 7 CRDs
- Quickstart script
- Successfully deployed to k3s on n97-mini:
  - Controller running and reconciling
  - All 7 CRDs registered
  - Agent CR creates Pod (ErrImagePull expected — no agent image yet)
  - Controller logs show reconciliation working
2026-05-12 17:08:31 -07:00

35 lines
No EOL
784 B
Nix

# build-image.nix — Package the pre-built kubeclaw controller binary as an OCI image
# Usage: nix-build build-image.nix && result | k3s ctr images import -
{ pkgs ? import <nixpkgs> {} }:
let
manager-bin = pkgs.stdenv.mkDerivation {
name = "kubeclaw-manager";
src = ./../manager;
phases = [ "installPhase" ];
installPhase = ''
mkdir -p $out/bin
cp $src $out/bin/manager
chmod +x $out/bin/manager
'';
};
in pkgs.dockerTools.streamLayeredImage {
name = "kubeclaw/controller";
tag = "latest";
created = "now";
contents = [
manager-bin
pkgs.cacert
pkgs.tzdata
];
config = {
User = "65532:65532";
Entrypoint = [ "/bin/manager" ];
ExposedPorts = {
"8080/tcp" = {};
"8081/tcp" = {};
};
};
}