Skip to content

Replace the Makefile with elk:* mise tasks - #133

Merged
sherifabdlnaby merged 3 commits into
mainfrom
2-makefile-to-mise
Sep 25, 2026
Merged

sherifabdlnaby merged 3 commits into
mainfrom
2-makefile-to-mise

Conversation

@sherifabdlnaby

@sherifabdlnaby sherifabdlnaby commented Sep 25, 2026 •

Copy link
Copy Markdown
Owner

What does this implement/fix? Explain your changes

The stack had two interfaces: a deprecated Makefile and flat mise tasks (up, stack:setup, ...). Now it has one: mise tasks under the elk: namespace. The Makefile is removed, and running the stack needs mise.

Warning

Breaking: make <target> no longer works, and the flat mise task names from #128 are renamed. Install mise (README, Requirements), run mise trust once, then use the new names below.

Old command New command
make setup / mise run stack:setup mise run elk:setup
make certs / mise run certs mise run elk:certs
make keystore / mise run keystore mise run elk:keystore
make upgrade-keystore / mise run upgrade-keystore mise run elk:keystore:upgrade
make elk, make up / mise run up mise run elk
make all / mise run all mise run elk:all
make monitoring / mise run monitoring mise run elk:monitoring
make nodes / mise run nodes mise run elk:nodes
make collect-docker-logs / mise run collect-docker-logs mise run elk:collect-docker-logs
make build / mise run build mise run elk:build
make ps / mise run ps mise run elk:ps
make images / mise run images mise run elk:images
make logs / mise run logs mise run elk:logs
make stop / mise run stop mise run elk:stop
make restart / mise run restart mise run elk:restart
make down / mise run down mise run elk:down
make rm / mise run rm mise run elk:rm
make prune / mise run prune mise run elk:prune
make help mise tasks

Changes

  • All stack commands show together in mise tasks, under elk:. The bare elk starts the core stack.
  • elk:setup runs mise doctor project first, so a missing Docker engine or Compose plugin stops it with a fix hint instead of a raw compose error.
  • Each task runs the same compose files, flags, and services as the make target it replaces. elk:rm and elk:prune ask for confirmation (mise run -y ... skips it), as the mise tasks already did.
  • README: mise is a requirement (install steps moved up to Requirements), setup adds mise trust, every command uses the new names, and a Moving from make section has the table above.
  • No user-visible change: the combined service groups in [vars] are built from their parts instead of repeating every service name.

Review guide

  1. mise.toml, ELK stack section: the renamed tasks. elk:setup now calls elk:certs and elk:keystore instead of repeating their commands.
  2. README.md: Requirements, Setup, Additional Commands, Moving from make.
  3. AGENTS.md, .github/workflows/smoke-test.yml, .gitattributes, services.sh: follow-on renames, safe to skim.

Decisions

  • Chose one elk: namespace for every stack task over top-level monitoring / nodes / build: one prefix keeps the stack apart from the contributor tasks (setup, check, test) in mise tasks, and mise run elk:<TAB> completes the full set.
  • Chose elk:keystore:upgrade over elk:upgrade-keystore: it sits under elk:keystore, the task it upgrades.
  • Chose no aliases for the old mise names over keeping up, down, ... as aliases: this is a breaking change on purpose, and aliases would keep two names alive.
  • Chose to keep setup as the contributor toolchain setup over folding elk:setup into it: elk:setup starts containers and regenerates secrets, which does not belong in a per-worktree bootstrap.

Does this close any currently open issues?

No.

Any relevant logs, error output, etc?

None.

Any other comments?

The release drafter bumps the major version on the major label, so this PR has it.

Follow-ups / out of scope
  • A user who never runs mise run setup still gets the "setup is stale" nag on cd (with mise activate). A stack-only user does not need the linters, so that nag could be scoped to contributors.

Where has this been tested?

Verification

Automated: mise run check --all passes. mise tasks lists every elk:* task with a description.
Manual: Recorded make -n <target> for every target before the delete, then ran each new task with a stub docker that prints its arguments. Every resolved docker compose command matches its make target (same files, flags, services). mise run elk:logs kibana logstash passes only those services.
Not covered: The stack was not started locally; the Smoke Test workflow covers elk:setup + elk. The other start tasks (elk:all, elk:nodes, ...) were compared by command only.

Relevant Links


馃 Agent Decided PR: Created with Claude (Opus 5.5) on behalf of @sherifabdlnaby.

馃 Generated with Claude Code

@sherifabdlnaby sherifabdlnaby self-assigned this Sep 25, 2026
@github-actions github-actions Bot added the docs label Sep 25, 2026
@sherifabdlnaby
sherifabdlnaby added this pull request to stack #134 September 25, 2026 15:02
Base automatically changed from mise-fy-audit to main September 25, 2026 15:04
The combined groups repeated every service name, so adding a service meant
editing it in several places.
The stack commands are now only mise tasks, grouped under the `elk:`
namespace so `mise tasks` lists them together. The bare `elk` starts the
core stack. Each task runs the same compose files, flags, and services as
the make target it replaces. The README has an old-to-new command table.

BREAKING CHANGE: the Makefile is removed and running the stack needs mise.
The earlier flat mise task names (`up`, `stack:setup`, `down`, ...) are
renamed to `elk`, `elk:setup`, `elk:down`, ...
@sherifabdlnaby sherifabdlnaby changed the title [2/N] Replace the Makefile with elk:* mise tasks Replace the Makefile with elk:* mise tasks Sep 25, 2026
@sherifabdlnaby
sherifabdlnaby removed this pull request from stack #134 September 25, 2026 15:05
elk:setup now runs mise doctor project first, so a missing Docker engine
or Compose plugin stops it with a fix hint instead of a raw compose error.
The hints no longer point at the contributor setup task.
@sherifabdlnaby
sherifabdlnaby marked this pull request as ready for review September 25, 2026 16:00
@sherifabdlnaby
sherifabdlnaby merged commit ec3818b into main Sep 25, 2026
5 checks passed
@sherifabdlnaby
sherifabdlnaby deleted the 2-makefile-to-mise branch September 25, 2026 16:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant