{ config, lib, pkgs, ... }: with lib; let cfg = config.nixfiles.modules.profiles.dev.containers; in { options.nixfiles.modules.profiles.dev.containers.enable = mkEnableOption "Tools for working with containers and container orchestration" // { default = config.nixfiles.modules.profiles.dev.enable; }; config = mkIf cfg.enable { nixfiles.modules = { common.shell.aliases = { h = "helm"; k = "kubectl"; kns = "kubens"; ktx = "kubectx"; b = "buildah"; }; podman.enable = true; }; hm = { home = { sessionVariables = { MINIKUBE_HOME = "${config.dirs.config}/minikube"; MINIKUBE_IN_STYLE = "false"; WERF_DEV = "true"; WERF_INSECURE_REGISTRY = "true"; WERF_LOG_DEBUG = "true"; WERF_LOG_PRETTY = "false"; WERF_LOG_VERBOSE = "true"; WERF_SYNCHRONIZATION = ":local"; WERF_TELEMETRY = "false"; }; packages = with pkgs; [ buildah k9s kubectl kubectl-doctor kubectl-images kubectl-tree kubectx kubelogin-oidc kubent kubernetes-helm kubespy minikube skopeo stern telepresence2 werf ]; }; xdg.dataFile."minikube/config/config.json".text = generators.toJSON { } { config.Rootless = true; driver = "podman"; container-runtime = "cri-o"; }; }; }; }