Skip to content

Commit 1b23231

Browse files
committed
update openapi scripts to fetch protobuffer schema
1 parent a464ed0 commit 1b23231

File tree

6 files changed

+29
-98
lines changed

6 files changed

+29
-98
lines changed

kyaml/openapi/Makefile

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ MYGOBIN = $(shell go env GOBIN)
55
ifeq ($(MYGOBIN),)
66
MYGOBIN = $(shell go env GOPATH)/bin
77
endif
8-
API_VERSION := "v1.21.2"
98
KIND_VERSION := "v0.11.1"
109

1110
.PHONY: all
@@ -46,10 +45,6 @@ kustomizationapi/swagger.go: $(MYGOBIN)/go-bindata kustomizationapi/swagger.json
4645
-o kustomizationapi/swagger.go \
4746
kustomizationapi/swagger.json
4847

49-
.PHONY: kubernetesapi/openapiinfo.go
50-
kubernetesapi/openapiinfo.go:
51-
./scripts/makeOpenApiInfoDotGo.sh
52-
5348
.PHONY: kubernetesapi/swagger.json
5449
kubernetesapi/swagger.json: $(MYGOBIN)/kind $(MYGOBIN)/kustomize
5550
./scripts/fetchSchemaFromCluster.sh $(API_VERSION)

kyaml/openapi/README.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,25 @@ make kubernetesapi/swagger.go API_VERSION=v1.21.2
6767
While the above commands generate the swagger.go files, they
6868
do not make them available for use nor do they update the
6969
info field reported by `kustomize openapi info`. To make the
70-
newly fetched schema and swagger.go available:
70+
newly fetched schema and swagger.go available, update the
71+
file [`kubernetesapi/openapiinfo.go`](https://github.com/kubernetes-sigs/kustomize/blob/master/kyaml/openapi/kubernetesapi/openapiinfo.go).
72+
73+
Here is an example of what it looks like with v1.21.2. The version number needs to be updated in all five places that it appears:
7174

7275
```
73-
rm kubernetesapi/openapiinfo.go
74-
make kubernetesapi/openapiinfo.go
76+
package kubernetesapi
77+
78+
import (
79+
"sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1212"
80+
)
81+
82+
const Info = "{title:Kubernetes,version:v1.21.2}"
83+
84+
var OpenAPIMustAsset = map[string]func(string) []byte{
85+
"v1212": v1212.MustAsset,
86+
}
87+
88+
const DefaultOpenAPI = "v1212"
7589
```
7690

7791
## Partial regeneration

kyaml/openapi/openapi_benchmark_test.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import (
1111
"google.golang.org/protobuf/proto"
1212
"k8s.io/kube-openapi/pkg/validation/spec"
1313
"sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi"
14-
"sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi/v1218pb"
1514
)
1615

1716
// Benchmark for swagger parsing (UnmarshalJSON)
@@ -53,12 +52,15 @@ func BenchmarkOpenAPIV2ParseDocument(t *testing.B) {
5352
}
5453

5554
func BenchmarkProtoUnmarshal(t *testing.B) {
55+
version := kubernetesOpenAPIDefaultVersion
56+
57+
// parse the swagger, this should never fail
5658
assetName := filepath.Join(
5759
"kubernetesapi",
58-
"v1218pb",
60+
version,
5961
"swagger.pb")
6062

61-
b := v1218pb.MustAsset(assetName)
63+
b := kubernetesapi.OpenAPIMustAsset[version](assetName)
6264

6365
for i := 0; i < t.N; i++ {
6466
// We parse protobuf and get an openapiv2.Document here.

kyaml/openapi/scripts/fetchSchemaFromCluster.sh

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,12 @@ VERSION=$1
88

99
cp $HOME/.kube/config /tmp/kubeconfig.txt | true
1010
$MYGOBIN/kind create cluster --image kindest/node:$VERSION --name=getopenapidata
11-
$MYGOBIN/kustomize openapi fetch > /tmp/new_swagger.json
11+
12+
# TODO (natasha41575) Add a `kustomize openapi fetch --proto` option
13+
kubectl proxy &
14+
curl -k -H "Accept: application/com.github.proto-openapi.spec.v2@v1.0+protobuf" http://localhost:8001/openapi/v2 > /tmp/new_swagger.pb
15+
1216
$MYGOBIN/kind delete cluster --name=getopenapidata
1317
cp /tmp/kubeconfig.txt $HOME/.kube/config | true
1418
mkdir -p kubernetesapi/"${VERSION//.}"
15-
cp /tmp/new_swagger.json kubernetesapi/"${VERSION//.}"/swagger.json
19+
cp /tmp/new_swagger.pb kubernetesapi/"${VERSION//.}"/swagger.pb

kyaml/openapi/scripts/generateSwaggerDotGo.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ VERSION=$1
99
$MYGOBIN/go-bindata \
1010
--pkg "${VERSION//.}" \
1111
-o kubernetesapi/"${VERSION//.}"/swagger.go \
12-
kubernetesapi/"${VERSION//.}"/swagger.json
12+
kubernetesapi/"${VERSION//.}"/swagger.pb

kyaml/openapi/scripts/makeOpenApiInfoDotGo.sh

Lines changed: 0 additions & 84 deletions
This file was deleted.

0 commit comments

Comments
 (0)