Skip to content

Commit d6325bc

Browse files
authored
CHANGELOG, cli-reference: update for generate openapi cmd (#1041)
* CHANGELOG.md: add notes on 'generate openapi' and 'add api' updates * doc/sdk-cli-reference.md: add 'generate openapi' command ref and update 'generate k8s' and 'add api' refs
1 parent 49e4e10 commit d6325bc

File tree

2 files changed

+47
-11
lines changed

2 files changed

+47
-11
lines changed

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
- By default the controller-runtime metrics are exposed on port 8383. This is done as part of the scaffold in the main.go file, the port can be adjusted by modifying the `metricsPort` variable. [#786](https://github.com/operator-framework/operator-sdk/pull/786)
88
- A new command [`operator-sdk olm-catalog`](https://github.com/operator-framework/operator-sdk/blob/master/doc/sdk-cli-reference.md#olm-catalog) to be used as a parent for SDK subcommands generating code related to Operator Lifecycle Manager (OLM) Catalog integration, and subcommand [`operator-sdk olm-catalog gen-csv`](https://github.com/operator-framework/operator-sdk/blob/master/doc/sdk-cli-reference.md#gen-csv) which generates a Cluster Service Version for an operator so the OLM can deploy the operator in a cluster. ([#673](https://github.com/operator-framework/operator-sdk/pull/673))
99
- Helm-based operators have leader election turned on by default. When upgrading, add environment variable `POD_NAME` to your operator's Deployment using the Kubernetes downward API. To see an example, run `operator-sdk new --type=helm ...` and see file `deploy/operator.yaml`. [#1000](https://github.com/operator-framework/operator-sdk/pull/1000)
10+
- A new command [`operator-sdk generate openapi`](https://github.com/operator-framework/operator-sdk/blob/master/doc/sdk-cli-reference.md#openapi) which generates OpenAPIv3 validation specs in Go and in CRD manifests as YAML. ([#869](https://github.com/operator-framework/operator-sdk/pull/869))
11+
- The `operator-sdk add api` command now generates OpenAPIv3 validation specs in Go for that API, and in all CRD manifests as YAML.
1012

1113
### Changed
1214

doc/sdk-cli-reference.md

+45-11
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,8 @@ pkg/apis/app/v1alpha1/
133133
├── register.go
134134

135135
$ operator-sdk generate k8s
136-
Running code-generation for custom resource group versions: [app:v1alpha1]
137-
Generating deepcopy funcs
136+
INFO[0000] Running deepcopy code-generation for Custom Resource group versions: [app:[v1alpha1], ]
137+
INFO[0001] Code-generation complete.
138138

139139
$ tree pkg/apis/app/v1alpha1/
140140
pkg/apis/app/v1alpha1/
@@ -144,6 +144,34 @@ pkg/apis/app/v1alpha1/
144144
└── zz_generated.deepcopy.go
145145
```
146146

147+
### openapi
148+
149+
Runs the [kube-openapi][openapi-code-generator] OpenAPIv3 code generator for all Custom Resource Definition (CRD) API tagged fields under `pkg/apis/...`.
150+
151+
**Note**: This command must be run every time a tagged API struct or struct field for a custom resource type is updated.
152+
153+
#### Example
154+
155+
```console
156+
$ tree pkg/apis/app/v1alpha1/
157+
pkg/apis/app/v1alpha1/
158+
├── appservice_types.go
159+
├── doc.go
160+
├── register.go
161+
162+
$ operator-sdk generate openapi
163+
INFO[0000] Running OpenAPI code-generation for Custom Resource group versions: [app:[v1alpha1], ]
164+
INFO[0001] Create deploy/crds/app_v1alpha1_appservice_crd.yaml
165+
INFO[0001] Code-generation complete.
166+
167+
$ tree pkg/apis/app/v1alpha1/
168+
pkg/apis/app/v1alpha1/
169+
├── appservice_types.go
170+
├── doc.go
171+
├── register.go
172+
└── zz_generated.openapi.go
173+
```
174+
147175
## olm-catalog
148176

149177
Parent command for all OLM Catalog related commands.
@@ -237,7 +265,7 @@ $ operator-sdk new app-operator --type=helm --api-version=app.example.com/v1alph
237265

238266
### api
239267

240-
Adds the api definition for a new custom resource under `pkg/apis` and generates the CRD and CR files under `depoy/crds/...`.
268+
Adds the API definition for a new custom resource under `pkg/apis` and generates the CRD and CR files under `depoy/crds/...`, and generates Kubernetes deepcopy functions and OpenAPIv3 validation specs for the new API.
241269

242270
#### Flags
243271

@@ -248,14 +276,19 @@ Adds the api definition for a new custom resource under `pkg/apis` and generates
248276

249277
```console
250278
$ operator-sdk add api --api-version app.example.com/v1alpha1 --kind AppService
251-
Create pkg/apis/app/v1alpha1/appservice_types.go
252-
Create pkg/apis/addtoscheme_app_v1alpha1.go
253-
Create pkg/apis/app/v1alpha1/register.go
254-
Create pkg/apis/app/v1alpha1/doc.go
255-
Create deploy/crds/app_v1alpha1_appservice_cr.yaml
256-
Create deploy/crds/app_v1alpha1_appservice_crd.yaml
257-
Running code-generation for custom resource group versions: [app:v1alpha1]
258-
Generating deepcopy funcs
279+
INFO[0000] Generating api version app.example.com/v1alpha1 for kind AppService.
280+
INFO[0000] Create pkg/apis/app/v1alpha1/appservice_types.go
281+
INFO[0000] Create pkg/apis/addtoscheme_app_v1alpha1.go
282+
INFO[0000] Create pkg/apis/app/v1alpha1/register.go
283+
INFO[0000] Create pkg/apis/app/v1alpha1/doc.go
284+
INFO[0000] Create deploy/crds/app_v1alpha1_appservice_cr.yaml
285+
INFO[0000] Create deploy/crds/app_v1alpha1_appservice_crd.yaml
286+
INFO[0001] Running deepcopy code-generation for Custom Resource group versions: [app:[v1alpha1], ]
287+
INFO[0002] Code-generation complete.
288+
INFO[0002] Running OpenAPI code-generation for Custom Resource group versions: [app:[v1alpha1], ]
289+
INFO[0004] Create deploy/crds/app_v1alpha1_appservice_crd.yaml
290+
INFO[0004] Code-generation complete.
291+
INFO[0004] API generation complete.
259292
```
260293

261294
### controller
@@ -490,3 +523,4 @@ $ operator-sdk up local --namespace "testing"
490523

491524
[utility_link]: https://github.com/operator-framework/operator-sdk/blob/89bf021063d18b6769bdc551ed08fc37027939d5/pkg/util/k8sutil/k8sutil.go#L140
492525
[k8s-code-generator]: https://github.com/kubernetes/code-generator
526+
[openapi-code-generator]: https://github.com/kubernetes/kube-openapi

0 commit comments

Comments
 (0)