GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - Normation/rudder-plugins: All Rudder public plugins in one repository. Licenses are by-plugin.

BranchesTags
Open more actions menu

Latest commit

 

History

5,034 Commits
5,034 Commits

Folders and files

NameName
Last commit message
Last commit date
api-authorizations
api-authorizations
 
 
branding
branding
 
 
centreon
centreon
 
 
change-validation
change-validation
 
 
ci
ci
 
 
consul
consul
 
 
datasources
datasources
 
 
glpi
glpi
 
 
makefiles
makefiles
 
 
node-external-reports
node-external-reports
 
 
notify
notify
 
 
openscap
openscap
 
 
plugins-common-private
plugins-common-private
 
 
plugins-common
plugins-common
 
 
scale-out-relay
scale-out-relay
 
 
src/main/g8
src/main/g8
 
 
vault
vault
 
 
zabbix
zabbix
 
 
.gitignore
.gitignore
 
 
.scalafmt.conf
.scalafmt.conf
 
 
.trivyignore
.trivyignore
 
 
Jenkinsfile
Jenkinsfile
 
 
Jenkinsfile-release
Jenkinsfile-release
 
 
Jenkinsfile-security
Jenkinsfile-security
 
 
Makefile
Makefile
 
 
README.adoc
README.adoc
 
 
_typos.toml
_typos.toml
 
 
how-to-run-mvn-here.txt
how-to-run-mvn-here.txt
 
 
main-build.conf
main-build.conf
 
 
qa-test
qa-test
 
 

Repository files navigation

rudder-plugins

This is the repository for plugins for Rudder: Continuous configuration for effective compliance.

https://www.rudder-project.org/site/documentation/

Creating a new plugin

If you want to create a new plugin, you can use giter8 (http://www.foundweekends.org/giter8/) on that repository or directly from the file system.

Once g8 command is installed (see http://www.foundweekends.org/giter8/setup.html), use:

% g8 file://.

You can also use the github resolution:

% g8 normation/rudder-plugins

And answer the questions. Only the name is mandatory: use the plugin short name, with space and capital if you want (see convention below). Juste hitting <ENTER> choose the default value (the one between []).

name [My Plugin]: Node External Reports <ENTER>
version [1.0 ]: <ENTER>
title_description [One line description of plugin]: Add external reports in node details
web_description [<p>HTML description of plugin</p>]: <p>Add external reports in node details</p>
you_should_not_change_following_variables [just hit enter]: <ENTER>
plugin_name [node-external-reports]: <ENTER>
plugin_pkg [nodeexternalreports]: <ENTER>
plugin_class [NodeExternalReports]: <ENTER>

If you don’t want to use giter8, you can replace by hand the placeholders $plugin_name$, $plugin_pkg$ and $plugin_class$ using the same convention as the previous example. Be careful to replace them in both file (with sed for example) and in path (with mv).

Repository structure

The repository is organized with one directory for each plugin under repository root directory.

Each plugin’s root directory is named with the plugin "shortname identifier", i.e the plugin name minus 'rudder-plugin-" prefix.

Each plugin build information are grouped in file build.conf in plugin root directory.

Branch versioning and compatibility with Rudder versions

Plugins are linked to Rudder patch version, so we retrieve in rudder-plugins the same branch structure than in rudder. Moreover, one needs to always compile and use a plugin for the corresponding Rudder patch version:

- branches/rudder/7.2-next (plugin compatible with Rudder next 7.2 version, i.e developing branch)
- branches/rudder/7.2.4 (plugins compatible with Rudder 7.2.4)
- branches/rudder/7.3.0 (plugins compatible with Rudder 7.3.0)
- etc

This scheme allows to ensure total binary compatibility, and upgrade is done automatically by rudder package at upgrade.

Plugin version and Tag convention

Plugin versions are composed in two parts separated by a -:

  • the Rudder corresponding version (including the patch number),

  • the plugin own version in format X.Y(.Z) where the Z part is optional.

For example, the datasources plugin, in own version 2.1, for Rudder 7.2.3 will get version: 7.2.3-2.2.

This version is used to postfix plugin package name.

Each plugin follow his own development pace, and so there is no release cycle for plugins. Each time a plugin reaches a new step, a version for it is published by changing version information in its build.conf file. The related commit is tagged with the convention: pluginShortName-pluginVersion.

You can get all the versions for a given plugins with the git tag --list command. For example, for the datasources plugin:

$ git tag --list 'datasources-*'

# results
datasources-7.2.1-2.2
datasources-7.2.2-2.2
datasources-7.2.3-2.2
datasources-7.2.4-2.2
datasources-7.3.0.beta1-2.3

Building plugins

Building and Java stack requirements

All plugins share the same build infrastructure based on Make.

You will need:

  • standard make tool chain,

  • ar, and for any plugin with scala code (i.e most of them),

  • maven in version 3.2 or up,

  • `Java 11 JDK tools (javac, jar, etc).

For information, this the list of package that need to be installed on a minimal linux distribution:

openjdk-11-jdk maven binutils make git-core xz-utils

For the branding plugin, you need to have elm-install present on the system

npm install -g  elm

To build a plugin package, do:

git checkout tag-corresponding-to-plugin-version
make clean && make generate-all-pom && make plugin-name

After compilation, you will find in plugin root directory (i.e at the same level than the Makefile file) the plugin package: pluginShortName-pluginVersion.rpkg.

This package can then be transferred to a Rudder server and installed with the command:

/opt/rudder/bin/rudder-pkg install-file /path/to/pluginShortName-pluginVersion.rpkg

Building licensed / limited plugin version

Plugins can have a license and adapt there behavior based on runtime license information. The licensing framework is not open source, and such plugin need access to Rudder private repositories.

The common API can be build and installed in user local maven repository with the following command line when on rudder-plugins directory (for example for datasources, use the same -licensed naming convention for other):

make datasources-licensed

The file license.sign is a license information file signed with the private key matching the public one used in the command line. The path of license.sign is relative to the plugin directory, so in our example, it will be located at: ./datasources/license.sign

Licensing

License are by-plugin and the license for a given plugin is specified in the LICENSE file in its plugin directory.

Nonetheless most projects are licensed under GNU GPLv3 license (http://www.gnu.org/licenses/gpl-3.0.txt) or ASLv2 (https://www.apache.org/licenses/LICENSE-2.0)

Contributing

Thank you for your interest in your our project! The contribution process is detailed here: https://www.rudder.io/en/expand/contribute/

Authors

Authors are tracked by their git name and public git history of the project.

About

All Rudder public plugins in one repository. Licenses are by-plugin.

docs.rudder.io/reference/current/plugins/index.html

Resources

Readme
Activity
Custom properties

Stars

16 stars

Watchers

7 watching

Forks

29 forks
Report repository

Releases

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.