diff --git a/clanServices/k3s/default.nix b/clanServices/k3s/default.nix index ee8f982..c0aa1df 100644 --- a/clanServices/k3s/default.nix +++ b/clanServices/k3s/default.nix @@ -30,12 +30,58 @@ in Temporary option till I figure out something useful ''; }; + + crossplane.resources.composite = mkOption { + type = with types; listOf (either path attrs); + default = []; + example = lib.literalExpression '' + [ + ../manifests/my-composite-resource.yml + { + apiVersion = "v1"; + kind = "CompositeResourceDefinition"; + metadata = { + name = "app-service"; + }; + spec = { + selector = { + "app.kubernetes.io/name" = "MyApp"; + }; + ports = [ + { + name = "name-of-service-port"; + protocol = "TCP"; + port = 80; + targetPort = "http-web-svc"; + } + ]; + }; + } + ]; + ''; + description = '' + Temporary option till I figure out something useful + ''; + }; + + # crossplane.resources.managed = mkOption { + # type = with types; listOf (either path attrs); + # default = []; + # example = lib.literalExpression '' + # [ + # ../manifests/my-managed-resource.yml + # ]; + # ''; + # description = '' + # Temporary option till I figure out something useful + # ''; + # }; }; }; perInstance = { instanceName, settings, machine, roles, ... }: { nixosModule = { config, pkgs, ... }: { - environment.systemPackages = with pkgs; [ k9s ]; + environment.systemPackages = with pkgs; [ k9s linkerd ]; clan.core.vars.generators.k3s = { share = false; @@ -115,6 +161,8 @@ in deploymentStrategy = "RollingUpdate"; }; + + extraDeploy = settings.crossplane.resources.composite; }; }; };