[PATCH 0/2] add custom user plugin support

Luis Chamberlain <[email protected]> Sat, 6 Dec 2025 10:13:43 -0800
Newsgroups dev.linux.lists.kdevops
Message-ID <[email protected]>
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