Skip to content

Commit f801a25

Browse files
committed
docs: add notes distinguish from external plugin
1 parent 8824c0a commit f801a25

File tree

4 files changed

+24
-3
lines changed

4 files changed

+24
-3
lines changed

docs/book/src/plugins/creating-plugins.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,34 @@
22

33
[extending-cli]: extending-cli.md
44
[controller-runtime]: https://github.com/kubernetes-sigs/controller-runtime
5+
[creating-external-plugins]: external-plugins.md
56
[operator-pattern]: https://kubernetes.io/docs/concepts/extend-kubernetes/operator
67
[sdk-ansible]: https://sdk.operatorframework.io/docs/building-operators/ansible/
78
[sdk-cli-pkg]: https://pkg.go.dev/github.com/operator-framework/operator-sdk/internal/cmd/operator-sdk/cli
89
[sdk-helm]: https://sdk.operatorframework.io/docs/building-operators/helm/
910
[sdk]: https://github.com/operator-framework/operator-sdk
1011

12+
<aside class="note warning">
13+
14+
<h1>Note</h1>
15+
16+
Extending Kubebuilder can be accomplished in two primary ways:
17+
18+
`By re-using the existing plugins`: In this approach, you use Kubebuilder as a library.
19+
20+
This enables you to import existing Kubebuilder plugins and extend them, leveraging their features to build upon.
21+
22+
It is particularly useful if you want to add functionalities that are closely tied with the existing Kubebuilder features.
23+
24+
25+
`By Creating an External Plugin`: This method allows you to create an independent, standalone plugin as a binary.
26+
27+
The plugin can be written in any language and should implement an execution pattern that Kubebuilder knows how to interact with.
28+
29+
You can see [Creating external plugins][creating-external-plugins] for more info.
30+
31+
</aside>
32+
1133
## Overview
1234

1335
You can extend the Kubebuilder API to create your own plugins. If [extending the CLI][extending-cli], your plugin will be implemented in your project and registered to the CLI as has been done by the [SDK][sdk] project. See its [CLI code][sdk-cli-pkg] as an example.

testdata/project-v4-multigroup/api/example.com/v1alpha1/zz_generated.deepcopy.go

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

testdata/project-v4-multigroup/config/crd/bases/example.com.testproject.org_busyboxes.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.12.0
6+
controller-gen.kubebuilder.io/version: v0.13.0
77
name: busyboxes.example.com.testproject.org
88
spec:
99
group: example.com.testproject.org

testdata/project-v4-multigroup/config/crd/bases/example.com.testproject.org_memcacheds.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
33
kind: CustomResourceDefinition
44
metadata:
55
annotations:
6-
controller-gen.kubebuilder.io/version: v0.12.0
6+
controller-gen.kubebuilder.io/version: v0.13.0
77
name: memcacheds.example.com.testproject.org
88
spec:
99
group: example.com.testproject.org

0 commit comments

Comments
 (0)