Skip to content

Commit 7ea052c

Browse files
author
Per Goncalves da Silva
committed
update codegen script
Signed-off-by: Per Goncalves da Silva <[email protected]>
1 parent 4a7d231 commit 7ea052c

File tree

2 files changed

+187
-36
lines changed

2 files changed

+187
-36
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDefinitions,Owned
2+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDefinitions,Required
3+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,ActionDescriptor
4+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,Resources
5+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,SpecDescriptors
6+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,StatusDescriptors
7+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ActionDescriptor,XDescriptors
8+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,ActionDescriptor
9+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,Resources
10+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,SpecDescriptors
11+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,StatusDescriptors
12+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CleanupStatus,PendingDeletion
13+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Icon
14+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,InstallModes
15+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Keywords
16+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Links
17+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Maintainers
18+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,NativeAPIs
19+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,RelatedImages
20+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Skips
21+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,WebhookDefinitions
22+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionStatus,Conditions
23+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionStatus,RequirementStatus
24+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CustomResourceDefinitions,Owned
25+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CustomResourceDefinitions,Required
26+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,RequirementStatus,Dependents
27+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ResourceList,Instances
28+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SpecDescriptor,XDescriptors
29+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StatusDescriptor,XDescriptors
30+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDeploymentPermissions,Rules
31+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,ClusterPermissions
32+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,DeploymentSpecs
33+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,Permissions
34+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,WebhookDescription,AdmissionReviewVersions
35+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,WebhookDescription,ConversionCRDs
36+
API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,WebhookDescription,Rules
37+
API rule violation: list_type_missing,github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1,CSVDescription,NativeAPIs
38+
API rule violation: list_type_missing,github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1,CSVDescription,RelatedImages
39+
API rule violation: list_type_missing,github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1,PackageChannel,Entries
40+
API rule violation: list_type_missing,github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1,PackageManifestList,Items
41+
API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,ActionDescriptor
42+
API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ActionDescriptor,XDescriptors
43+
API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,ActionDescriptor
44+
API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,APIServiceDefinitions
45+
API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,CustomResourceDefinitions
46+
API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,InstallStrategy
47+
API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,WebhookDefinitions
48+
API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,Icon,Data
49+
API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,Icon,MediaType
50+
API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,NamedInstallStrategy,StrategyName
51+
API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,NamedInstallStrategy,StrategySpec
52+
API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SpecDescriptor,XDescriptors
53+
API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,StatusDescriptor,XDescriptors
54+
API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,DeploymentSpecs
55+
API rule violation: names_match,github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1,CSVDescription,APIServiceDefinitions
56+
API rule violation: names_match,github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1,CSVDescription,CustomResourceDefinitions
57+
API rule violation: names_match,github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1,CSVDescription,LongDescription
58+
API rule violation: names_match,github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1,CSVDescription,NativeAPIs
59+
API rule violation: names_match,github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1,Icon,Base64Data
60+
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,APIResourceList,APIResources
61+
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,Duration,Duration
62+
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,InternalEvent,Object
63+
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,InternalEvent,Type
64+
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,MicroTime,Time
65+
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,StatusCause,Type
66+
API rule violation: names_match,k8s.io/apimachinery/pkg/apis/meta/v1,Time,Time
67+
API rule violation: names_match,k8s.io/apimachinery/pkg/runtime,Unknown,ContentEncoding
68+
API rule violation: names_match,k8s.io/apimachinery/pkg/runtime,Unknown,ContentType

scripts/update_codegen.sh

Lines changed: 119 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -14,43 +14,126 @@
1414
# See the License for the specific language governing permissions and
1515
# limitations under the License.
1616

17+
set -e
1718
set -o errexit
1819
set -o nounset
1920
set -o pipefail
2021

21-
SCRIPT_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
22-
CODEGEN_PKG=${CODEGEN_PKG:-$(cd "${SCRIPT_ROOT}"; ls -d -1 ./vendor/k8s.io/code-generator 2>/dev/null || echo ../code-generator)}
23-
24-
# create a temporary directory to generate code in and ensure we clean it up on exit
25-
OUTPUT_BASE=$(mktemp -d)
26-
# Hack the script to make it executable from within generate-groups.sh
27-
# Because vendored sources do not include permission bits
28-
chmod u+x "${CODEGEN_PKG}/generate-internal-groups.sh"
29-
trap 'rm -rf "${OUTPUT_BASE}"; chmod u-x "${CODEGEN_PKG}/generate-internal-groups.sh"' ERR EXIT
30-
31-
ORG="github.com/operator-framework"
32-
API_MODULE="${ORG}/api"
33-
MODULE="${ORG}/operator-lifecycle-manager"
34-
35-
# generate the code with:
36-
# --output-base because this script should also be able to run inside the vendor dir of
37-
# k8s.io/kubernetes. The output-base is needed for the generators to output into the vendor dir
38-
# instead of the $GOPATH directly. For normal projects this can be dropped.
39-
bash "${CODEGEN_PKG}/generate-groups.sh" "client,lister,informer" \
40-
"${MODULE}/pkg/api/client" \
41-
"${API_MODULE}/pkg" \
42-
"operators:v1alpha1,v1alpha2,v1,v2" \
43-
--output-base "${OUTPUT_BASE}" \
44-
--go-header-file "${SCRIPT_ROOT}/boilerplate.go.txt"
45-
46-
export OPENAPI_EXTRA_PACKAGES="${API_MODULE}/pkg/operators/v1alpha1,${API_MODULE}/pkg/lib/version"
47-
bash "${CODEGEN_PKG}/generate-internal-groups.sh" all \
48-
"${MODULE}/pkg/package-server/client" \
49-
"${MODULE}/pkg/package-server/apis" \
50-
"${MODULE}/pkg/package-server/apis" \
51-
"operators:v1" \
52-
--output-base "${OUTPUT_BASE}" \
53-
--go-header-file "${SCRIPT_ROOT}/boilerplate.go.txt"
54-
55-
# copy the generated resources
56-
cp -R "${OUTPUT_BASE}/${MODULE}/." "${SCRIPT_ROOT}"
22+
# Setting the SCRIPT_ROOT and attempting to locate the vendored code generator directory.
23+
SCRIPT_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)
24+
CODEGEN_PKG=$(cd "${SCRIPT_ROOT}" && ls -d ./vendor/k8s.io/code-generator 2>/dev/null)
25+
26+
# Check if the CODEGEN_PKG has been set and points to a directory, else throw an error.
27+
if [[ -z "$CODEGEN_PKG" || ! -d "$CODEGEN_PKG" ]]; then
28+
echo "Error: Required vendored code generator directory does not exist." >&2
29+
exit 1
30+
fi
31+
32+
# Set verbosity of code-generators
33+
export KUBE_VERBOSE=2
34+
35+
#
36+
OUTPUT_BASE="$SCRIPT_ROOT"
37+
API_OLM_MODULE="github.com/operator-framework/api"
38+
OLM_MODULE="github.com/operator-framework/operator-lifecycle-manager"
39+
BOILERPLATE="$SCRIPT_ROOT/boilerplate.go.txt"
40+
API_KNOWN_VIOLATIONS_DIR="${SCRIPT_ROOT}/scripts"
41+
42+
43+
44+
# code generators
45+
CLIENT_GEN="go run ${CODEGEN_PKG}/cmd/client-gen"
46+
LISTER_GEN="go run ${CODEGEN_PKG}/cmd/lister-gen"
47+
INFORMER_GEN="go run ${CODEGEN_PKG}/cmd/informer-gen"
48+
49+
source "${CODEGEN_PKG}/kube_codegen.sh"
50+
51+
# Generate OLM API client, listers and informers
52+
OUTPUT_BASE="${SCRIPT_ROOT}/pkg/api/client"
53+
OUTPUT_PKG="${OLM_MODULE}/pkg/api/client"
54+
INPUT_DIR="${SCRIPT_ROOT}/vendor/${API_OLM_MODULE}/pkg"
55+
56+
kube::codegen::gen_client \
57+
--with-watch \
58+
--output-dir "${OUTPUT_BASE}" \
59+
--output-pkg "${OUTPUT_PKG}" \
60+
--boilerplate "${BOILERPLATE}" \
61+
"${INPUT_DIR}"
62+
63+
# Generate package server API client, listers and informers
64+
API_KNOWN_VIOLATIONS_DIR="${SCRIPT_ROOT}/scripts"
65+
UPDATE_API_KNOWN_VIOLATIONS="false"
66+
if [[ -n "${API_KNOWN_VIOLATIONS_DIR:-}" ]]; then
67+
report_filename="${API_KNOWN_VIOLATIONS_DIR}/codegen_violation_exceptions.list"
68+
if [[ "${UPDATE_API_KNOWN_VIOLATIONS:-}" == "true" ]]; then
69+
update_report="--update-report"
70+
fi
71+
fi
72+
73+
# generate openapi
74+
OUTPUT_DIR="${SCRIPT_ROOT}/pkg/package-server/client/openapi"
75+
OUTPUT_PKG="${OLM_MODULE}/pkg/package-server/client/openapi"
76+
INPUT_DIR="${SCRIPT_ROOT}/pkg/package-server/apis"
77+
78+
kube::codegen::gen_openapi \
79+
--output-dir "${OUTPUT_DIR}" \
80+
--output-pkg "${OUTPUT_PKG}" \
81+
--extra-pkgs "${API_OLM_MODULE}/pkg/operators/v1alpha1" \
82+
--extra-pkgs "${API_OLM_MODULE}/pkg/lib/version" \
83+
--boilerplate "${BOILERPLATE}" \
84+
--report-filename "${report_filename:-"/dev/null"}" \
85+
${update_report:+"${update_report}"} \
86+
"${INPUT_DIR}"
87+
88+
# generate clients
89+
OUTPUT_DIR="${SCRIPT_ROOT}/pkg/package-server/client/clientset"
90+
OUTPUT_PKG="${OLM_MODULE}/pkg/package-server/client/clientset"
91+
INPUT_BASE="${SCRIPT_ROOT}/pkg/package-server/apis"
92+
93+
${CLIENT_GEN} \
94+
-v "${KUBE_VERBOSE}" \
95+
--go-header-file "${BOILERPLATE}" \
96+
--output-dir "${OUTPUT_DIR}" \
97+
--output-pkg "${OUTPUT_PKG}" \
98+
--clientset-name versioned \
99+
--input-base "${INPUT_BASE}" \
100+
--input operators/v1
101+
102+
${CLIENT_GEN} \
103+
-v "${KUBE_VERBOSE}" \
104+
--go-header-file "${BOILERPLATE}" \
105+
--output-dir "${OUTPUT_DIR}" \
106+
--output-pkg "${OUTPUT_PKG}" \
107+
--clientset-name internalversion \
108+
--input-base "${INPUT_BASE}" \
109+
--input operators
110+
111+
# generate listers
112+
OUTPUT_DIR="${SCRIPT_ROOT}/pkg/package-server/client/listers"
113+
OUTPUT_PKG="${OLM_MODULE}/pkg/ppackage-server/client/listers"
114+
115+
${LISTER_GEN} \
116+
-v "${KUBE_VERBOSE}" \
117+
--go-header-file "${BOILERPLATE}" \
118+
--output-dir "${OUTPUT_DIR}" \
119+
--output-pkg "${OUTPUT_PKG}" \
120+
github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators \
121+
github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1
122+
123+
# generate informers
124+
OUTPUT_DIR="${SCRIPT_ROOT}/pkg/package-server/client/informers"
125+
OUTPUT_PKG="${OLM_MODULE}/pkg/ppackage-server/client/listers"
126+
VERSIONED_CLIENTSET="${OLM_MODULE}/pkg/package-server/client/clientset/versioned"
127+
INTERNAL_CLIENTSET="${OLM_MODULE}/pkg/package-server/client/clientset/internalversion"
128+
LISTERS_PKG="${OLM_MODULE}/pkg/package-server/client/listers"
129+
130+
${INFORMER_GEN} \
131+
-v "${KUBE_VERBOSE}" \
132+
--go-header-file "${BOILERPLATE}" \
133+
--output-dir "${OUTPUT_DIR}" \
134+
--output-pkg "${OUTPUT_PKG}" \
135+
--versioned-clientset-package "${VERSIONED_CLIENTSET}" \
136+
--internal-clientset-package "${INTERNAL_CLIENTSET}" \
137+
--listers-package "${LISTERS_PKG}" \
138+
github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators \
139+
github.com/operator-framework/operator-lifecycle-manager/pkg/package-server/apis/operators/v1

0 commit comments

Comments
 (0)