Best ways of "extending" a plugin?

In this case, what you want is what is referred to as “plugin composition”. You would have your own plugin that first applies the rpm plugin (using project.apply()). Then you would layer your own conventions on top of that. Typically this would take the form of configuration rules applied against task types (i.e. project.tasks.withType(Rpm) { ... }) or tasks matching a condition (i.e. project.tasks.matching { ... }).

As far as documentation, there aren’t any samples out there, but looking at other plugins is probably the best way to understand. This topic is touched on in Ben Muschko’s talk at SpringOne last year on plugin best practices. His docker plugin is a pretty good example of this pattern.