mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 17:12:51 +00:00
Merge pull request #3107 from natasha41575/reportOpenAPIinfo
Created a "kustomize openapi info" command
This commit is contained in:
@@ -10,6 +10,7 @@ require (
|
|||||||
k8s.io/client-go v0.17.3
|
k8s.io/client-go v0.17.3
|
||||||
sigs.k8s.io/kustomize/api v0.6.3
|
sigs.k8s.io/kustomize/api v0.6.3
|
||||||
sigs.k8s.io/kustomize/cmd/config v0.8.2
|
sigs.k8s.io/kustomize/cmd/config v0.8.2
|
||||||
|
sigs.k8s.io/kustomize/kyaml v0.9.2
|
||||||
sigs.k8s.io/yaml v1.2.0
|
sigs.k8s.io/yaml v1.2.0
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -19,6 +20,8 @@ exclude (
|
|||||||
sigs.k8s.io/kustomize/cmd/config v0.2.0
|
sigs.k8s.io/kustomize/cmd/config v0.2.0
|
||||||
)
|
)
|
||||||
|
|
||||||
replace sigs.k8s.io/kustomize/api v0.6.3 => ../api
|
replace (
|
||||||
|
sigs.k8s.io/kustomize/api v0.6.3 => ../api
|
||||||
replace sigs.k8s.io/kustomize/cmd/config v0.8.2 => ../cmd/config
|
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/build"
|
||||||
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/create"
|
"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/edit"
|
||||||
|
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/openapi"
|
||||||
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/version"
|
"sigs.k8s.io/kustomize/kustomize/v3/internal/commands/version"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -43,6 +44,7 @@ See https://sigs.k8s.io/kustomize
|
|||||||
edit.NewCmdEdit(fSys, v, uf),
|
edit.NewCmdEdit(fSys, v, uf),
|
||||||
create.NewCmdCreate(fSys, uf),
|
create.NewCmdCreate(fSys, uf),
|
||||||
version.NewCmdVersion(stdOut),
|
version.NewCmdVersion(stdOut),
|
||||||
|
openapi.NewCmdOpenAPI(stdOut),
|
||||||
)
|
)
|
||||||
configcobra.AddCommands(c, "kustomize")
|
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 ./...
|
go vet ./...
|
||||||
|
|
||||||
openapi:
|
openapi:
|
||||||
(which $(GOPATH)/bin/go-bindata || go get -u github.com/go-bindata/go-bindata/...)
|
./hack/fetchOpenApiData.sh
|
||||||
$(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
|
|
||||||
|
|
||||||
$(MYGOBIN)/kind:
|
$(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.
|
Thus, do `kyaml` first, then `cli-utils`, etc.
|
||||||
|
|
||||||
#### Consider fetching new OpenAPI data
|
#### Consider fetching new OpenAPI data
|
||||||
The Kubernetes OpenAPI data changes no more frequently than once per quarter. Instructions
|
The Kubernetes OpenAPI data changes no more frequently than once per quarter.
|
||||||
on how to get a new OpenAPI sample can be found in the
|
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].
|
[OpenAPI Readme].
|
||||||
|
|
||||||
#### Establish clean state
|
#### Establish clean state
|
||||||
|
|||||||
Reference in New Issue
Block a user