claude

systemd-migration

Discover a container estate, plan its move onto systemd, and render every systemd component the plan selects: services with RootMStack=, machines, networkd, resolved, resource control, credentials, journald, storage, extensions, portable services, and Podman Quadlet as an adapter target. Includes the verifier and a Managed Agents harness.

0 on GitHubby Daniel Bodnarv0.3.0LGPL-2.1-or-laterupdated 1 month agoinfrastructure
/

Plugin systemd-migration from marketplace systemd-dev-plugins in danielbodnar/systemd. Commands read from the repo's manifest — 1 month ago.

What it installs

Skills (19)

  • discover-docker-swarm

    Capture a running Docker Swarm cluster (nodes, stacks, services, tasks, overlay networks, volumes, secrets, configs) into raw inspect output and a normalized, schema-validated inventory.json. Use this whenever the user wants to inventory, audit, snapshot, export, or document a Swarm estate, asks "wh

  • discover-podman

    Capture a Podman host (its containers, pods, networks, volumes, secret names, images, and existing Quadlet files) into raw inspect output and a normalized, schema-validated inventory.json, the same contract discover-docker-swarm writes. Use this whenever the user wants to inventory, audit, snapshot,

  • discover-systemd-hosts

    Probe the target hosts (the systemd machines the estate moves to) and record what their systemd can do: version and features, kernel, cgroup hierarchy, mount-stack support, which daemons (networkd, resolved, machined, importd, portabled) and tools (systemd-nspawn, importctl, systemd-creds, systemd-r

  • haproxy-ingress

    Render a hardened HAProxy front end for the published ports a migration plan hands to HAProxy, as /etc/haproxy/haproxy.cfg plus haproxy-migration.service, with backends taken from the estate's instances and health checks taken from the source healthcheck. Use this whenever a published port needs a r

  • migration-planner

    Produce the migration plan for moving a container estate (a multi-node Docker Swarm first; Podman next) onto systemd-native hosts. Two artifacts: plan.yaml, the list of every decision the systemd components need (the form each service takes, address ranges, overlay transports, published ports, name

  • podman-quadlet

    Render a Swarm inventory into per-host Podman Quadlet units (.container, .network, .volume) plus stack targets, secret import scripts, and install scripts, and explain how each Swarm service-spec field maps onto Quadlet and systemd directives. Use this whenever the user wants to convert Docker Swarm

  • systemd-creds

    The credentials component. Every orchestrator secret and every environment value the capture redacted becomes a systemd credential the unit loads with LoadCredentialEncrypted= (or LoadCredential=), reachable under $CREDENTIALS_DIRECTORY and bound where the container saw it; where each value lives on

  • systemd-generator

    The generators and presets component. Stack grouping units (<stack>.target, stack-<stack>.slice) can be files under /etc/systemd/system or emitted at boot by systemd-migration-generator from a declarative description under /etc/systemd-migration/stacks.d/, and a preset file can decide which rendered

  • systemd-journald

    The logging component. Every migrated service logs to the journal under its own SyslogIdentifier= with the stack and service recorded as journal fields (LogExtraFields=), and a stack can get its own journal namespace (LogNamespace=, [email protected]) with separate retention. Use this whenever the user

  • systemd-machined

    The machines component. Pull the OCI images an estate uses into systemd mount stacks with importctl pull-oci (pinned to the inventory's digests, versioned for rollback), pack them into discoverable disk images for hosts without mount stacks, run a service as a machine (systemd-nspawn with a .nspawn

  • systemd-networkd

    The networking component. Replaces orchestrator networks with systemd-networkd: an address range per network, a zone bridge with a DHCP server and static leases for every service that runs as a machine or a virtual machine, a transport per cross-host overlay (every tunnel kind systemd.netdev(5) docu

  • systemd-portable

    The portable services and capsules component. A service the plan marks as portable is attached from an image under /var/lib/portables with portablectl and a security profile; a stack the plan marks as a capsule runs under its own per-stack manager started by [email protected]. Use this whenever the u

  • systemd-resolved

    The name resolution component. Replaces the orchestrator's embedded DNS (service names, network aliases, dnsrr endpoints) with one of three mechanisms chosen in plan.yaml: rendered /etc/hosts entries that point at a host or at a machine's static lease on its zone bridge, systemd-resolved with DNS-SD

  • systemd-resource-control

    The resource-control component. A stack becomes a slice and a service's limits and reservations become control group properties on its unit (CPUQuota=, CPUWeight=, MemoryMax=, MemoryLow=, TasksMax=), with accounting on the slice. Use this whenever the user asks how container CPU and memory limits ma

  • systemd-rollout

    The rollout component. Renders a rollout specification per stack and a POSIX sh controller, stackctl, that performs on a systemd host what docker service update, docker stack deploy, docker service rollback, docker service scale, and docker node update --availability drain perform on a Swarm node: r

  • systemd-service

    Render a Swarm or Compose inventory into native systemd service units that run each container image as the service's root with RootMStack= (or RootImage=), with no container runtime: per-host .service units, stack targets and slices, health timers, encrypted credentials for secrets, mount units for

  • systemd-storage

    The storage component. Named volumes become directories created by tmpfiles.d with the service's owner (local) or .mount units the service RequiresMountsFor= (NFS, CIFS); bind mounts keep their source through BindPaths= and BindReadOnlyPaths=; tmpfs mounts become TemporaryFileSystem=; device binds b

  • systemd-sysext

    The extensions component. A stack's configuration files can ship as a configuration extension merged into /etc by systemd-confext instead of plain files, and a pure-/usr payload can ship as a system extension merged by systemd-sysext; both are one artifact that refreshes atomically. Use this wheneve

  • systemd-verify

    Validate rendered or installed units against the migration's expected.json, on a target host or in dry-run mode, for native systemd trees (services, machines, timers, mounts, sockets, credentials, images, volumes) and for Quadlet trees. Use this whenever the user asks to check, validate, verify, lin

Slash commands (6)

  • /systemd-migration:migrate-discover

    Discover the estate and the target hosts. Capture the Docker Swarm cluster reachable from this machine (or DOCKER_HOST) into a raw capture and a normalized inventory.json, and probe the systemd hosts the estate will move to, all under the plugin's migration directory.

  • /systemd-migration:migrate-plan

    Draft plan.yaml from the inventory and the host probes, walk every decision with the user (target form per service, address ranges, overlay transports, published ports, discovery, secrets, data moves), and write MIGRATION-PLAN.md with the cutover runbooks.

  • /systemd-migration:migrate-render-quadlet

    Render the whole inventory as Podman Quadlet units in one call, without a reviewed plan, for a first look at the Podman adapter target; a migration picks Quadlet per service through the plan's form decision and renders with /migrate-render.

  • /systemd-migration:migrate-render

    Compose the systemd components the approved plan selects into per-host trees (services, machines, networks, credentials, mounts, journal settings, extensions) under the migration directory, and summarize what still needs a human.

  • /systemd-migration:migrate-rollout

    Drive a rendered stack's rollout on this host with stackctl: deploy a new image, roll back, drain or activate the host, scale within the plan, rotate a credential or a config, or report status.

  • /systemd-migration:migrate-verify

    Verify rendered units (dry-run) or an installed stack (live) on this host against rendered/expected.json.

Subagents (6)

  • cutover-verifier

    Verifies rendered or installed units on a target host against expected.json, in dry-run before installation and live afterwards, and reports failures with reproduction commands. Use it during preflight and after each stack's cutover.

  • discovery-auditor

    Read-only discovery of the source estate and the target hosts. Use it to capture a Docker Swarm (or a Podman host) into an inventory, probe what each destination host's systemd can do, answer questions about what runs where, and surface risks before any planning; it never changes the cluster or the

  • migration-planner

    Drafts plan.yaml from the inventory and the host probes, walks its decisions with the user (form per service, address ranges, overlay transports, published ports, discovery, secret stores, data moves), and writes MIGRATION-PLAN.md with the cutover order, runbooks, rollback, and risks. Use it after d

  • quadlet-author

    Renders and hand-tunes Podman Quadlet units for the services the plan keeps on Podman (form quadlet), or the whole inventory through the one-call Quadlet renderer for a first look. Use it to resolve the renderer's notes into concrete unit edits and to prepare secret import and install scripts; it wr

  • rollout-operator

    Drives the rendered rollout controller on a migrated host: deploys a new image in the plan's batches, rolls back, drains and activates the host, scales within the rendered instances, and rotates credentials and configs. Use it after a stack is installed, whenever a service must change over, a host m

  • unit-author

    Renders the approved plan into per-host trees by composing the systemd components (services with RootMStack= or RootImage=, machines, networks, credentials, mounts, slices, journal settings, extensions) and hand-tunes what the components could not express. Use it to produce the rendered tree, resolv

View source on GitHub systemd.io

Similar plugins

Neural trading strategies — self-learning LSTM/Transformer/N-BEATS models with Rust/NAPI backtesting

9 skills · 1 command · 4 agents

ruvnet/ruflo 81,589

container

claude

Teaches Claude container's command surface and how it maps to Docker, Lima, Colima, and Podman on macOS

1 skill

apple/container 51,329

azure

claude

Transform Claude into an Azure expert. This plugin integrates the Azure MCP server and specialized Azure skills to move beyond generic advice. It enables Claude to perform real-world tasks: listing resources, validating deployments, diagnosing infrastructure issues, and optimizing costs across 50+ Azure services.

44 skills · 1 MCP server

anthropics/claude-plugins-official 47,076

Cloud architecture design for AWS/Azure/GCP/OCI, Kubernetes cluster configuration, Terraform infrastructure-as-code, hybrid cloud networking, and multi-cloud cost optimization

8 skills · 7 agents

wshobson/agents 42,461

Airwallex

claudecodex

Bring Airwallex's global financial infrastructure to Claude. Orchestrate actions across your account in plain language, e.g., set up invoices from a PO, onboard suppliers from invoices, and check current cash position across currencies. AgentOS bundles pre-built finance Skills with MCP servers. A public CLI connects your agent to Airwallex's capabilities.

5 skills · 2 MCP servers

anthropics/knowledge-work-plugins 35,601

hivemind

claude

Opt-in, outside every domain bundle: orchestrate opencode workers from Claude Code to cut token costs, with single workers or parallel scout/coder/tester swarms on free or open-source models and worktree isolation. Requires the third-party opencode CLI and an opencode account; by default worker prompts and code go to opencode's hosted service (point --model at a local model to keep code on your machine), so install it only if you accept that data flow.

1 skill

alirezarezvani/claude-skills 29,725

Maintain systemd-migration?

This page updates itself from your repo. Add the badge to your README, or get it Featured to pin it above the organic results with a followed link to your site.

claude & codex pluginslisted