- 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
35 lines
No EOL
784 B
Nix
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" = {};
|
|
};
|
|
};
|
|
} |