mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
added a hidden openapi info command
This commit is contained in:
@@ -10,6 +10,7 @@ require (
|
||||
k8s.io/client-go v0.17.3
|
||||
sigs.k8s.io/kustomize/api v0.6.3
|
||||
sigs.k8s.io/kustomize/cmd/config v0.8.2
|
||||
sigs.k8s.io/kustomize/kyaml v0.9.2
|
||||
sigs.k8s.io/yaml v1.2.0
|
||||
)
|
||||
|
||||
@@ -19,6 +20,8 @@ exclude (
|
||||
sigs.k8s.io/kustomize/cmd/config v0.2.0
|
||||
)
|
||||
|
||||
replace sigs.k8s.io/kustomize/api v0.6.3 => ../api
|
||||
|
||||
replace sigs.k8s.io/kustomize/cmd/config v0.8.2 => ../cmd/config
|
||||
replace (
|
||||
sigs.k8s.io/kustomize/api v0.6.3 => ../api
|
||||
sigs.k8s.io/kustomize/cmd/config v0.8.2 => ../cmd/config
|
||||
sigs.k8s.io/kustomize/kyaml v0.9.2 => ../kyaml
|
||||
)
|
||||
|
||||
@@ -19,6 +19,7 @@ import (
|
||||
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/build"
|
||||
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/create"
|
||||
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/edit"
|
||||
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/openapi"
|
||||
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/version"
|
||||
)
|
||||
|
||||
@@ -43,6 +44,7 @@ See https://sigs.k8s.io/kustomize
|
||||
edit.NewCmdEdit(fSys, v, uf),
|
||||
create.NewCmdCreate(fSys, uf),
|
||||
version.NewCmdVersion(stdOut),
|
||||
openapi.NewCmdOpenAPI(stdOut),
|
||||
)
|
||||
configcobra.AddCommands(c, "kustomize")
|
||||
|
||||
|
||||
28
kustomize/internal/commands/openapi/info/info.go
Normal file
28
kustomize/internal/commands/openapi/info/info.go
Normal file
@@ -0,0 +1,28 @@
|
||||
// Copyright 2019 The Kubernetes Authors.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package info
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"sigs.k8s.io/kustomize/kyaml/openapi/kubernetesapi"
|
||||
)
|
||||
|
||||
// NewCmdInfo makes a new info command.
|
||||
func NewCmdInfo(w io.Writer) *cobra.Command {
|
||||
|
||||
infoCmd := cobra.Command{
|
||||
Use: "info",
|
||||
Short: "Prints the `info` field from the kubernetes OpenAPI data",
|
||||
Example: `kustomize openapi info`,
|
||||
Run: func(cmd *cobra.Command, args []string) {
|
||||
fmt.Fprintln(w, kubernetesapi.Info)
|
||||
},
|
||||
Hidden: true,
|
||||
}
|
||||
|
||||
return &infoCmd
|
||||
}
|
||||
27
kustomize/internal/commands/openapi/openapi.go
Normal file
27
kustomize/internal/commands/openapi/openapi.go
Normal file
@@ -0,0 +1,27 @@
|
||||
// Copyright 2019 The Kubernetes Authors.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package openapi
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"sigs.k8s.io/kustomize/cmd/config/configcobra"
|
||||
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/openapi/info"
|
||||
)
|
||||
|
||||
// NewCmdOpenAPI makes a new openapi command.
|
||||
func NewCmdOpenAPI(w io.Writer) *cobra.Command {
|
||||
|
||||
openApiCmd := &cobra.Command{
|
||||
Use: "openapi",
|
||||
Short: "Commands for interacting with the OpenAPI data",
|
||||
Example: `kustomize openapi info`,
|
||||
}
|
||||
|
||||
openApiCmd.AddCommand(info.NewCmdInfo(w))
|
||||
configcobra.AddCommands(openApiCmd, "openapi")
|
||||
|
||||
return openApiCmd
|
||||
}
|
||||
@@ -36,9 +36,7 @@ vet:
|
||||
go vet ./...
|
||||
|
||||
openapi:
|
||||
(which $(GOPATH)/bin/go-bindata || go get -u github.com/go-bindata/go-bindata/...)
|
||||
$(GOPATH)/bin/go-bindata --pkg kubernetesapi -o openapi/kubernetesapi/swagger.go openapi/kubernetesapi/swagger.json
|
||||
$(GOPATH)/bin/go-bindata --pkg kustomizationapi -o openapi/kustomizationapi/swagger.go openapi/kustomizationapi/swagger.json
|
||||
./hack/fetchOpenApiData.sh
|
||||
|
||||
$(MYGOBIN)/kind:
|
||||
( \
|
||||
|
||||
14
kyaml/hack/fetchOpenApiData.sh
Executable file
14
kyaml/hack/fetchOpenApiData.sh
Executable file
@@ -0,0 +1,14 @@
|
||||
if ! command -v jq &> /dev/null ; then
|
||||
echo Please install jq
|
||||
echo on ubuntu: sudo apt-get install jq
|
||||
exit 1
|
||||
fi
|
||||
|
||||
GOPATH=$(go env GOPATH)
|
||||
|
||||
OPENAPIINFO=$(jq -r '.info' openapi/kubernetesapi/swagger.json | sed 's/[\" *]//g' | tr -d '\n')
|
||||
sed -i "s/Info = \".*\"/Info = \"$OPENAPIINFO\"/g" 'openapi/kubernetesapi/openapiinfo.go'
|
||||
|
||||
(go get -u github.com/go-bindata/go-bindata/...)
|
||||
$GOPATH/bin/go-bindata --pkg kubernetesapi -o openapi/kubernetesapi/swagger.go openapi/kubernetesapi/swagger.json
|
||||
$GOPATH/bin/go-bindata --pkg kustomizationapi -o openapi/kustomizationapi/swagger.go openapi/kustomizationapi/swagger.json
|
||||
8
kyaml/openapi/kubernetesapi/openapiinfo.go
Normal file
8
kyaml/openapi/kubernetesapi/openapiinfo.go
Normal file
@@ -0,0 +1,8 @@
|
||||
// Copyright 2019 The Kubernetes Authors.
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
package kubernetesapi
|
||||
|
||||
const Info = "{ title:Kubernetes, version:v1.17.0 }"
|
||||
|
||||
|
||||
@@ -30,8 +30,14 @@ The dependencies determine the release order:
|
||||
Thus, do `kyaml` first, then `cli-utils`, etc.
|
||||
|
||||
#### Consider fetching new OpenAPI data
|
||||
The Kubernetes OpenAPI data changes no more frequently than once per quarter. Instructions
|
||||
on how to get a new OpenAPI sample can be found in the
|
||||
The Kubernetes OpenAPI data changes no more frequently than once per quarter.
|
||||
You can check the current version that kustomize is using with the
|
||||
following command.
|
||||
```
|
||||
kustomize openapi info
|
||||
```
|
||||
|
||||
Instructions on how to get a new OpenAPI sample can be found in the
|
||||
[OpenAPI Readme].
|
||||
|
||||
#### Establish clean state
|
||||
|
||||
Reference in New Issue
Block a user