From: Luis Chamberlain <mcgrof@kernel.org>
To: Chuck Lever <cel@kernel.org>, Daniel Gomez <da.gomez@kruces.com>,
kdevops@lists.linux.dev
Cc: Luis Chamberlain <mcgrof@kernel.org>
Subject: [PATCH 0/2] add custom user plugin support
Date: Sat, 6 Dec 2025 10:13:43 -0800 [thread overview]
Message-ID: <20251206181346.2650230-1-mcgrof@kernel.org> (raw)
This adds custom user plugin support to kdevops, so that users can
define their own workflows without having to upstream the solution to
kdevops. This lets anyone benefit from kdevops without having to
contribute to it. These custom workflows can be simply silly R&D or
proprietary workflows.
I provide one public workflow example, my knlp project as an AI R&D
project which hast custom training innovations being evaluated. To add
my plugin I just do:
make kdevops-plugin-add https://github.com/mcgrof/knlp
And it unpacks the inferred .kdevops*.xz tarball to the user's
~/.config/kdevops/plugins/knlp/ directory in this example. To list
installed plugins:
make kdevops-plugin-list
Installed plugins:
NAME VERSION SOURCE
---- ------- ------
knlp 1.0.0 https://github.com/mcgrof/knlp
While at it also update our image of what kdevops as we had not updated
it for along time. Add an svg image we can later use to enhance this
further as we evolve. we can use it as input with generative AI as the
project adds new fautures.
Luis Chamberlain (2):
kdevops: Add versioned plugin system for workflows
images: Update kdevops diagram with new design
Kconfig | 4 +
Makefile | 1 +
Makefile.plugins | 66 ++
docs/kdevops-terraform.md | 62 +-
docs/plugins.md | 407 ++++++++
docs/user-workflows/README.md | 148 +++
docs/user-workflows/example-knlp/Kconfig | 10 +
docs/user-workflows/example-knlp/Makefile | 14 +
.../defconfigs/configs/knlp.config | 11 +
.../example-knlp/playbooks/knlp.yml | 10 +
.../playbooks/roles/devconfig/tasks/knlp.yml | 27 +
.../playbooks/roles/devconfig/tasks/main.yml | 14 +
.../playbooks/roles/gen_hosts/tasks/main.yml | 17 +
.../roles/gen_hosts/templates/knlp.j2 | 33 +
.../playbooks/roles/gen_nodes/tasks/main.yml | 36 +
.../playbooks/roles/knlp/defaults/main.yml | 8 +
.../playbooks/roles/knlp/tasks/main.yml | 30 +
.../example-knlp/workflows/knlp/Kconfig | 44 +
.../example-knlp/workflows/knlp/Makefile | 28 +
images/kdevops-diagram.png | Bin 72760 -> 813420 bytes
images/kdevops-diagram.svg | 398 ++++++++
kconfigs/Kconfig.plugins_stub | 8 +
kconfigs/Kconfig.user_stub | 5 +
kconfigs/Kconfig.user_workflows | 90 ++
playbooks/roles/devconfig/tasks/main.yml | 19 +
playbooks/roles/gen_hosts/tasks/main.yml | 19 +
playbooks/roles/gen_nodes/tasks/main.yml | 19 +
scripts/get_plugins_kconfig.sh | 18 +
scripts/get_user_kconfig.sh | 18 +
scripts/kconfig/kconfig.Makefile | 14 +-
scripts/kdevops-plugin.sh | 918 ++++++++++++++++++
workflows/Makefile | 14 +
32 files changed, 2501 insertions(+), 9 deletions(-)
create mode 100644 Makefile.plugins
create mode 100644 docs/plugins.md
create mode 100644 docs/user-workflows/README.md
create mode 100644 docs/user-workflows/example-knlp/Kconfig
create mode 100644 docs/user-workflows/example-knlp/Makefile
create mode 100644 docs/user-workflows/example-knlp/defconfigs/configs/knlp.config
create mode 100644 docs/user-workflows/example-knlp/playbooks/knlp.yml
create mode 100644 docs/user-workflows/example-knlp/playbooks/roles/devconfig/tasks/knlp.yml
create mode 100644 docs/user-workflows/example-knlp/playbooks/roles/devconfig/tasks/main.yml
create mode 100644 docs/user-workflows/example-knlp/playbooks/roles/gen_hosts/tasks/main.yml
create mode 100644 docs/user-workflows/example-knlp/playbooks/roles/gen_hosts/templates/knlp.j2
create mode 100644 docs/user-workflows/example-knlp/playbooks/roles/gen_nodes/tasks/main.yml
create mode 100644 docs/user-workflows/example-knlp/playbooks/roles/knlp/defaults/main.yml
create mode 100644 docs/user-workflows/example-knlp/playbooks/roles/knlp/tasks/main.yml
create mode 100644 docs/user-workflows/example-knlp/workflows/knlp/Kconfig
create mode 100644 docs/user-workflows/example-knlp/workflows/knlp/Makefile
create mode 100644 images/kdevops-diagram.svg
create mode 100644 kconfigs/Kconfig.plugins_stub
create mode 100644 kconfigs/Kconfig.user_stub
create mode 100644 kconfigs/Kconfig.user_workflows
create mode 100755 scripts/get_plugins_kconfig.sh
create mode 100755 scripts/get_user_kconfig.sh
create mode 100755 scripts/kdevops-plugin.sh
--
2.51.0
next reply other threads:[~2025-12-06 18:13 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-06 18:13 Luis Chamberlain [this message]
2025-12-06 18:13 ` [PATCH 1/2] kdevops: Add versioned plugin system for workflows Luis Chamberlain
2025-12-06 18:13 ` [PATCH 2/2] images: Update kdevops diagram with new design Luis Chamberlain
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251206181346.2650230-1-mcgrof@kernel.org \
--to=mcgrof@kernel.org \
--cc=cel@kernel.org \
--cc=da.gomez@kruces.com \
--cc=kdevops@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox