@@ -12,10 +12,26 @@ Kubebuilder increases velocity and reduces the complexity managed by
12
12
developers for rapidly building and publishing Kubernetes APIs in Go.
13
13
It builds on top of the canonical techniques used to build the core Kubernetes APIs to provide simple abstractions that reduce boilerplate and toil.
14
14
15
- ** Note:** Kubebuilder does not exist as an example to * copy-paste* , but instead provides powerful libraries and tools
16
- to simplify building and publishing Kubernetes APIs from scratch.
15
+ Kubebuilder does ** not** exist as an example to * copy-paste* , but instead provides powerful libraries and tools
16
+ to simplify building and publishing Kubernetes APIs from scratch. On to of that, it
17
+ provides an plugin architecture which allows users take advantage of optional helpers
18
+ and features. To know more about see the [ Plugin section] [ plugin-section ] .
17
19
18
- Kubebuilder is developed on top of the controller-runtime and controller-tools libraries.
20
+ Kubebuilder is developed on top of the [ controller-runtime] [ controller-runtime ] and [ controller-tools] [ controller-tools ] libraries.
21
+
22
+ ### Kubebuilder is also a framework for other tools
23
+
24
+ Kubebuilder is extensible and can be imported to be used as a library in other projects.
25
+ Specifically, for those which are looking for a way to use Kubebuilder's existing CLI and scaffolding the projects and re-use its plugins,
26
+ but to also be able to augment the Kubebuilder project structure with other custom project types so that it is possible to support the Kubebuilder
27
+ workflow with non-Go operators.
28
+
29
+ A good example of its usage is the project [ Operator-SDK] [ operator-sdk ]
30
+ that uses Kubebuilder as lib to generate the scaffolds and create its own helper plugins
31
+ to provide additional features and options on top. [ Operator-SDK] [ operator-sdk ] also uses Kubebuilder
32
+ to support their workflow with non-Go operators (_ e.g. operator-sdk's Ansible and Helm-based language Operators_ )
33
+
34
+ To know more about see [ how to create your own plugins] [ your-own-plugins ] .
19
35
20
36
### Installation
21
37
@@ -38,8 +54,8 @@ Check out the Kubebuilder [book](https://book.kubebuilder.io).
38
54
- GitHub Repo: [ kubernetes-sigs/kubebuilder] ( https://github.com/kubernetes-sigs/kubebuilder )
39
55
- Slack channel: [ #kubebuilder] ( https://slack.k8s.io/#kubebuilder )
40
56
- Google Group:
[ [email protected] ] ( https://groups.google.com/forum/#!forum/kubebuilder )
41
- - Planned Work: [ Sprint Dashboard] ( https://github.com/kubernetes-sigs/kubebuilder/projects/1 )
42
57
- Design Documents: [ designs] ( designs/ ) .
58
+ - Plugin: [ plugins] [ plugin-section ]
43
59
44
60
## Motivation
45
61
@@ -105,7 +121,21 @@ Before starting any work, please either comment on an existing issue, or file a
105
121
106
122
## Supportability
107
123
108
- Currently, Kubebuilder officially supports OSX and Linux platforms. So, if you are using a Windows OS you may find issues. Contributions towards supporting Windows are welcome.
124
+ Currently, Kubebuilder officially supports OSX and Linux platforms.
125
+ So, if you are using a Windows OS you may find issues. Contributions towards
126
+ supporting Windows are welcome.
127
+
128
+ ### Apple Silicon
129
+
130
+ The current scaffold done by the CLI (` go/v3 ` ) when we run ` kubebuilder init ` uses [ kubernetes-sigs/kustomize] [ kustomize ] v3 which does not provide
131
+ a valid binary for Apple Silicon (` darwin/arm64 ` ). Therefore, you can use the ` go/v4-alpha ` plugin
132
+ instead which provides support for this platform:
133
+
134
+ ``` bash
135
+ kubebuilder init --domain my.domain --repo my.domain/guestbook --plugins=go/v4-alpha
136
+ ```
137
+
138
+ ** Note** : The ` go/v4-alpha ` plugin is an unstable version and can have breaking changes in future releases.
109
139
110
140
## Community Meetings
111
141
@@ -116,3 +146,8 @@ The following meetings happen biweekly:
116
146
117
147
You are more than welcome to attend. For further info join to
[ [email protected] ] ( https://groups.google.com/g/kubebuilder ) .
118
148
149
+ [ operator-sdk ] : https://github.com/operator-framework/operator-sdk
150
+ [ plugin-section ] : https://book.kubebuilder.io/plugins/plugins.html
151
+ [ controller-runtime ] : https://github.com/kubernetes-sigs/controller-runtime
152
+ [ your-own-plugins ] : https://book.kubebuilder.io/plugins/creating-plugins.html
153
+ [ controller-tools ] : https://github.com/kubernetes-sigs/controller-tools
0 commit comments