Skip to content
This repository has been archived by the owner on May 3, 2022. It is now read-only.

Generate OpenAPI Specs #243

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,606 changes: 1,606 additions & 0 deletions api/openapi-spec/swagger.json

Large diffs are not rendered by default.

7 changes: 6 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ require (
github.com/aokoli/goutils v1.0.1 // indirect
github.com/cespare/xxhash v1.1.0
github.com/evanphx/json-patch v4.2.0+incompatible // indirect
github.com/go-openapi/spec v0.17.2
github.com/gobwas/glob v0.2.2 // indirect
github.com/gogo/protobuf v1.2.1 // indirect
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef // indirect
Expand Down Expand Up @@ -50,7 +51,11 @@ require (
k8s.io/gengo v0.0.0-20190327210449-e17681d19d3a // indirect
k8s.io/helm v2.8.0+incompatible
k8s.io/klog v0.3.2
k8s.io/kube-openapi v0.0.0-20190603182131-db7b694dc208 // indirect
k8s.io/kube-openapi v0.0.0-20190603182131-db7b694dc208
k8s.io/utils v0.0.0-20190529001817-6999998975a7 // indirect
sigs.k8s.io/yaml v1.1.0
)

replace k8s.io/apimachinery v0.0.0-20190602113612-63a6072eb563 => k8s.io/apimachinery v0.0.0-20190602183612-63a6072eb563

replace github.com/kubernetes/kube-openapi v0.0.0-20191107075043-30be4d16710a => k8s.io/kube-openapi v0.0.0-20190603182131-db7b694dc208
9 changes: 8 additions & 1 deletion go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@ github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAE
github.com/OneOfOne/xxhash v1.2.5 h1:zl/OfRA6nftbBK9qTohYBJ5xvw6C/oNKizR7cZGl3cI=
github.com/OneOfOne/xxhash v1.2.5/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q=
github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
github.com/PuerkitoBio/purell v1.1.0 h1:rmGxhojJlM0tuKtfdvliR84CFHljx9ag64t2xmVkjK4=
github.com/PuerkitoBio/purell v1.1.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0=
github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578 h1:d+Bc7a5rLufV/sSk/8dngufqelfh6jnri85riMAaF/M=
github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
Expand Down Expand Up @@ -50,6 +52,7 @@ github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r
github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM=
github.com/elazarl/goproxy v0.0.0-20170405201442-c4fc26588b6e/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633 h1:H2pdYOb3KQ1/YsqVWoWNLQO+fusocsw354rqGTZtAgw=
github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs=
github.com/evanphx/json-patch v0.0.0-20190203023257-5858425f7550/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
github.com/evanphx/json-patch v4.2.0+incompatible h1:fUDGZCv/7iAN7u0puUVhvKCcsR6vRfwrJatElLBEf0I=
Expand All @@ -71,20 +74,24 @@ github.com/go-openapi/errors v0.17.0/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQH
github.com/go-openapi/errors v0.17.2/go.mod h1:LcZQpmvG4wyF5j4IhA73wkLFQg+QJXOQHVjmcZxhka0=
github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0=
github.com/go-openapi/jsonpointer v0.17.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
github.com/go-openapi/jsonpointer v0.19.0 h1:FTUMcX77w5rQkClIzDtTxvn6Bsa894CcrzNj2MMfeg8=
github.com/go-openapi/jsonpointer v0.19.0/go.mod h1:cOnomiV+CVVwFLk0A/MExoFMjwdsUdVpsRhURCKh+3M=
github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg=
github.com/go-openapi/jsonreference v0.17.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
github.com/go-openapi/jsonreference v0.19.0 h1:BqWKpV1dFd+AuiKlgtddwVIFQsuMpxfBDBHGfM2yNpk=
github.com/go-openapi/jsonreference v0.19.0/go.mod h1:g4xxGn04lDIRh0GJb5QlpE3HfopLOL6uZrK/VgnsK9I=
github.com/go-openapi/loads v0.17.0/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
github.com/go-openapi/loads v0.17.2/go.mod h1:72tmFy5wsWx89uEVddd0RjRWPZm92WRLhf7AC+0+OOU=
github.com/go-openapi/runtime v0.0.0-20180920151709-4f900dc2ade9/go.mod h1:6v9a6LTXWQCdL8k1AO3cvqx5OtZY/Y9wKTgaoP6YRfA=
github.com/go-openapi/runtime v0.17.2/go.mod h1:QO936ZXeisByFmZEO1IS1Dqhtf4QV1sYYFtIq6Ld86Q=
github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc=
github.com/go-openapi/spec v0.17.0/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
github.com/go-openapi/spec v0.17.2 h1:eb2NbuCnoe8cWAxhtK6CfMWUYmiFEZJ9Hx3Z2WRwJ5M=
github.com/go-openapi/spec v0.17.2/go.mod h1:XkF/MOi14NmjsfZ8VtAKf8pIlbZzyoTvZsdfssdxcBI=
github.com/go-openapi/strfmt v0.17.0/go.mod h1:P82hnJI0CXkErkXi8IKjPbNBM6lV6+5pLP5l494TcyU=
github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I=
github.com/go-openapi/swag v0.17.0/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
github.com/go-openapi/swag v0.17.2 h1:K/ycE/XTUDFltNHSO32cGRUhrVGJD64o8WgAIZNyc3k=
github.com/go-openapi/swag v0.17.2/go.mod h1:AByQ+nYG6gQg71GINrmuDXCPWdL640yX49/kXLo40Tg=
github.com/go-openapi/validate v0.17.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4=
Expand Down Expand Up @@ -160,6 +167,7 @@ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329 h1:2gxZ0XQIU/5z3Z3bUBu+FXuk2pFbkN6tcwi/pjyaDic=
github.com/mailru/easyjson v0.0.0-20180823135443-60711f1a8329/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc=
github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
Expand Down Expand Up @@ -352,7 +360,6 @@ k8s.io/api v0.0.0-20190602205700-9b8cae951d65/go.mod h1:03pQc5o/sznCJkBfM5JE6PDB
k8s.io/apiextensions-apiserver v0.0.0-20190602131520-451a9c13a3c8 h1:EqVj1O4rx5Ei3v5GZTc+koIsRr52HEbpKb3hYju+r54=
k8s.io/apiextensions-apiserver v0.0.0-20190602131520-451a9c13a3c8/go.mod h1:vBDmZGUuVk3xyaO5Y50RRbmbzyUMs4CRtk3yhXuBteg=
k8s.io/apimachinery v0.0.0-20190531131812-859a0ba5e71a/go.mod h1:u/2VL7tgEMV0FFTV9q0JO+7cnTsV44LP8Pmx41R4AQ4=
k8s.io/apimachinery v0.0.0-20190602113612-63a6072eb563/go.mod h1:u/2VL7tgEMV0FFTV9q0JO+7cnTsV44LP8Pmx41R4AQ4=
k8s.io/apimachinery v0.0.0-20190602125621-c0632ccbde11/go.mod h1:u/2VL7tgEMV0FFTV9q0JO+7cnTsV44LP8Pmx41R4AQ4=
k8s.io/apimachinery v0.0.0-20190602183612-63a6072eb563 h1:FqK+g186du3W9peHKCV2GPqMSNEIHz1QUrfYggvaseU=
k8s.io/apimachinery v0.0.0-20190602183612-63a6072eb563/go.mod h1:u/2VL7tgEMV0FFTV9q0JO+7cnTsV44LP8Pmx41R4AQ4=
Expand Down
67 changes: 67 additions & 0 deletions hack/gen-openapi-spec/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
package main

import (
"encoding/json"
"fmt"
"log"
"os"
"strings"

"github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1"
"github.com/go-openapi/spec"
"k8s.io/kube-openapi/pkg/common"
)

// Generate OpenAPI spec definitions for Shipper Resources
func main() {
if len(os.Args) <= 1 {
log.Fatal("Supply a version")
}
version := os.Args[1]
if !strings.HasPrefix(version, "v") {
version = "v" + version
}
oAPIDefs := v1alpha1.GetOpenAPIDefinitions(func(name string) spec.Ref {
return spec.MustCreateRef("#/definitions/" + common.EscapeJsonPointer(swaggify(name)))
})
defs := spec.Definitions{}
for defName, val := range oAPIDefs {
defs[swaggify(defName)] = val.Schema
}
swagger := spec.Swagger{
SwaggerProps: spec.SwaggerProps{
Swagger: "2.0",
Definitions: defs,
Paths: &spec.Paths{Paths: map[string]spec.PathItem{}},
Info: &spec.Info{
InfoProps: spec.InfoProps{
Title: "Shipper",
Version: version,
},
},
},
}
jsonBytes, err := json.MarshalIndent(swagger, "", " ")
if err != nil {
log.Fatal(err.Error())
}
fmt.Println(string(jsonBytes))
}

// swaggify converts the github package
// e.g.:
// github.com/argoproj/argo/pkg/apis/workflow/v1alpha1.Workflow
// to:
// io.argoproj.workflow.v1alpha1.Workflow
func swaggify(name string) string {
// Should I use com.booking.applications.shipper or booking.com.applications.shipper or something here?
name = strings.Replace(name, "github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1", "com.booking.shipper", -1)
parts := strings.Split(name, "/")
hostParts := strings.Split(parts[0], ".")
// reverses something like k8s.io to io.k8s
for i, j := 0, len(hostParts)-1; i < j; i, j = i+1, j-1 {
hostParts[i], hostParts[j] = hostParts[j], hostParts[i]
}
parts[0] = strings.Join(hostParts, ".")
return strings.Join(parts, ".")
}
26 changes: 26 additions & 0 deletions hack/update-openapigen.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
#!/bin/bash

set -o errexit
set -o nounset
set -o pipefail

# PROJECT_ROOT=$(cd $(dirname "$0")/.. ; pwd)
# CODEGEN_PKG=${PROJECT_ROOT}/vendor/k8s.io/kube-openapi
# VERSION="v1alpha1"
#
# go run ${CODEGEN_PKG}/cmd/openapi-gen/openapi-gen.go \
# --go-header-file ${PROJECT_ROOT}/hack/custom-boilerplate.go.txt \
# --input-dirs github.com/bookingcom/shipper/pkg/apis/workflow/${VERSION} \
# --output-package github.com/argoproj/argo/pkg/apis/workflow/${VERSION} \
# --report-filename pkg/apis/api-rules/violation_exceptions.list \
# $@
# PROJECT_ROOT=$(cd $(dirname "$0")/.. ; pwd)
# CODEGEN_PKG=${PROJECT_ROOT}/vendor/k8s.io/kube-openapi
VERSION="v1alpha1"

go run $GOPATH/src/k8s.io/kube-openapi/cmd/openapi-gen/openapi-gen.go \
--input-dirs github.com/bookingcom/shipper/pkg/apis/shipper/${VERSION} \
--output-package github.com/bookingcom/shipper/pkg/apis/shipper/${VERSION} \
--report-filename pkg/apis/api-rules/violation_exceptions.list
$@

48 changes: 48 additions & 0 deletions hack/verify-openapigen.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
#!/bin/bash

# Copyright 2017 The Kubernetes Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

set -o errexit
set -o nounset
set -o pipefail

SCRIPT_ROOT=$(dirname "${BASH_SOURCE}")/..

DIFFROOT="${SCRIPT_ROOT}/pkg"
TMP_DIFFROOT="${SCRIPT_ROOT}/_tmp/pkg"
_tmp="${SCRIPT_ROOT}/_tmp"

cleanup() {
rm -rf "${_tmp}"
}
trap "cleanup" EXIT SIGINT

cleanup

mkdir -p "${TMP_DIFFROOT}"
cp -a "${DIFFROOT}"/* "${TMP_DIFFROOT}"

"${SCRIPT_ROOT}/hack/update-openapigen.sh"
echo "diffing ${DIFFROOT} against freshly generated codegen"
ret=0
diff -Naupr "${DIFFROOT}" "${TMP_DIFFROOT}" || ret=$?
cp -a "${TMP_DIFFROOT}"/* "${DIFFROOT}"
if [[ $ret -eq 0 ]]
then
echo "${DIFFROOT} up to date."
else
echo "${DIFFROOT} is out of date. Please run hack/update-openapigen.sh"
exit 1
fi
32 changes: 32 additions & 0 deletions pkg/apis/api-rules/violation_exceptions.list
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ApplicationList,Items
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ApplicationStatus,Conditions
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ApplicationStatus,History
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,CapacityTargetList,Items
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,CapacityTargetSpec,Clusters
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,CapacityTargetStatus,Clusters
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ClusterCapacityReport,Breakdown
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ClusterCapacityReportBreakdown,Containers
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ClusterCapacityReportContainerBreakdown,States
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ClusterCapacityStatus,Conditions
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ClusterCapacityStatus,Reports
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ClusterCapacityStatus,SadPods
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ClusterInstallationStatus,Conditions
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ClusterList,Items
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ClusterRequirements,Capabilities
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ClusterRequirements,Regions
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ClusterSpec,Capabilities
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ClusterTrafficStatus,Conditions
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,InstallationTargetList,Items
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,InstallationTargetSpec,Clusters
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,InstallationTargetStatus,Clusters
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,PodStatus,Containers
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,PodStatus,InitContainers
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ReleaseList,Items
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ReleaseStatus,Conditions
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,ReleaseStrategyStatus,Conditions
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,RolloutBlockList,Items
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,RolloutStrategy,Steps
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,TrafficTargetList,Items
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,TrafficTargetSpec,Clusters
API rule violation: list_type_missing,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,TrafficTargetStatus,Clusters
API rule violation: names_match,github.com/bookingcom/shipper/pkg/apis/shipper/v1alpha1,Chart,RepoURL
1 change: 1 addition & 0 deletions pkg/apis/shipper/v1alpha1/doc.go
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
// +k8s:deepcopy-gen=package,register
// +k8s:openapi-gen=true

// Package v1alpha1 is the v1alpha1 version of the API.
// +groupName=shipper.booking.com
Expand Down
Loading