migrate woodpecker

pull/154/head
Vivian 2023-04-22 21:00:55 +02:00
parent 0cb9e1ac06
commit 991b93c0ae
3 changed files with 26 additions and 35 deletions

View File

@ -5,7 +5,7 @@ root = true
[*] [*]
indent_style = space indent_style = space
indent_size = 4 indent_size = 2
end_of_line = lf end_of_line = lf
charset = utf-8 charset = utf-8
trim_trailing_whitespace = true trim_trailing_whitespace = true

View File

@ -144,6 +144,7 @@
}; };
"woodpecker" = { "woodpecker" = {
ip = "10.42.42.33"; ip = "10.42.42.33";
ip6 = "2001:41f0:9639:1:1c24:daff:fedb:4a1a";
mac = "1E:24:DA:DB:4A:1A"; mac = "1E:24:DA:DB:4A:1A";
}; };
"nuc" = { "nuc" = {

View File

@ -18,53 +18,43 @@ in {
# Additional packages # Additional packages
environment.systemPackages = with pkgs; [ ]; environment.systemPackages = with pkgs; [ ];
networking.firewall.allowedTCPPorts = [ ]; networking.firewall.allowedTCPPorts = [ 8000 9000 ];
vault-secrets.secrets.woodpecker = { vault-secrets.secrets.woodpecker = {
services = [ "podman-woodpecker-server" "podman-woodpecker-agent" ]; services = [ "woodpecker-server" "woodpecker-agent-docker" ];
quoteEnvironmentValues = false; # Needed for docker quoteEnvironmentValues = false; # Needed for docker
}; };
virtualisation.podman = { virtualisation.podman = {
enable = true; enable = true;
dockerSocket.enable = true; dockerSocket.enable = true;
dockerCompat = true;
}; };
systemd.services.create-woodpecker-pod = with config.virtualisation.oci-containers; { services.woodpecker-server = {
serviceConfig.Type = "oneshot"; enable = true;
wantedBy = [ "${backend}-woodpecker-server.service" "${backend}-woodpecker-agent.service"]; environment = {
script = '' WOODPECKER_OPEN = "true";
${pkgs.podman}/bin/podman pod exists woodpecker || \ WOODPECKER_HOST = "https://ci.0x76.dev";
${pkgs.podman}/bin/podman pod create -n woodpecker -p 8000:8000 WOODPECKER_GITEA = "true";
''; WOODPECKER_GITEA_URL = "https://git.0x76.dev";
WOODPECKER_ADMIN = "v";
WOODPECKER_AUTHENTICATE_PUBLIC_REPOS = "true";
WOODPECKER_SERVER_ADDR = "0.0.0.0:8000";
};
environmentFile = "${vs.woodpecker}/environment";
}; };
virtualisation.oci-containers = { services.woodpecker-agents.agents = {
backend = "podman"; docker = {
containers = { enable = true;
woodpecker-server = { environment = {
image = "woodpeckerci/woodpecker-server:latest"; DOCKER_HOST = "unix:///run/podman/podman.sock";
volumes = [ "woodpecker-server-data:/var/lib/woodpecker/" ]; WOODPECKER_BACKEND = "docker";
environmentFiles = [ "${vs.woodpecker}/environment" ]; WOODPECKER_SERVER = "localhost:9000";
extraOptions = [ "--pod=woodpecker" ];
environment = {
WOODPECKER_OPEN = "true";
WOODPECKER_HOST = "https://ci.0x76.dev";
WOODPECKER_GITEA = "true";
WOODPECKER_GITEA_URL = "https://git.0x76.dev";
WOODPECKER_ADMIN = "v";
WOODPECKER_AUTHENTICATE_PUBLIC_REPOS = "true";
};
};
woodpecker-agent = {
image = "woodpeckerci/woodpecker-agent:latest";
dependsOn = [ "woodpecker-server" ];
extraOptions = [ "--pod=woodpecker" ];
cmd = [ "agent" ];
volumes = [ "/var/run/docker.sock:/var/run/docker.sock" ];
environmentFiles = [ "${vs.woodpecker}/environment" ];
environment = { WOODPECKER_SERVER = "localhost:9000"; };
}; };
environmentFile = [ "${vs.woodpecker}/environment" ];
extraGroups = [ "podman" ];
}; };
}; };
} }