Skip to content

Change in code-generator v0.20.0 breaks operation overrides #1555

@jaypipes

Description

@jaypipes

The top part of kinesis-controller's generator.yaml file looks like this:

operations:
  # NOTE)jaypipes): According to
  # https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStream.html,
  # the DescribeStream API should not be used. Instead, the
  # DescribeStreamSummary API and ListShards API should be used.
  DescribeStreamSummary:
    resource_name: Stream
    operation_type: READ_ONE
    output_wrapper_field_path: StreamDescriptionSummary

If I execute make build-controller SERVICE=kinesis with v0.20.0 of code-generator, I get a failure:

[jaypipes@thelio code-generator]$ make build-controller SERVICE=kinesis
building ack-generate ... ok.
installing controller-gen v0.7.0 ... ok.
==== building kinesis-controller ====
Copying common custom resource definitions into kinesis
Building Kubernetes API objects for kinesis
Generating deepcopy code for kinesis
Generating custom resource definitions for kinesis
Building service controller for kinesis
Error: template: /home/jaypipes/go/src/github.com/aws-controllers-k8s/code-generator/templates/pkg/resource/sdk.go.tpl:73:3: executing "sdk_find_read_one" at <GoCodeRequiredFieldsMissingFromReadOneInput .CRD "r.ko" 1>: error calling GoCodeRequiredFieldsMissingFromReadOneInput: GENERATION FAILURE! there's a required field StreamName in Shape DescribeStreamInput that isn't in either the CR's Spec or Status structs!
make: *** [Makefile:41: build-controller] Error 1

However, if I check out v0.19.3 of the code-generator, I get no errors:

[jaypipes@thelio code-generator]$ git checkout v0.19.3
Previous HEAD position was 585f06b Upgrade ACK runtime to v0.20.0 (#360)
HEAD is now at 87477ae Merge pull request #356 from vijtrip2/ack-rt-v0.19.3
[jaypipes@thelio code-generator]$ make build-controller SERVICE=kinesis
building ack-generate ... ok.
==== building kinesis-controller ====
Copying common custom resource definitions into kinesis
Building Kubernetes API objects for kinesis
Generating deepcopy code for kinesis
Generating custom resource definitions for kinesis
Building service controller for kinesis
Generating RBAC manifests for kinesis
Running gofmt against generated code for kinesis
Updating additional GitHub repository maintenance files
==== building kinesis-controller release artifacts ====
Building release artifacts for kinesis-v0.0.0-non-release-version
Generating common custom resource definitions
Generating custom resource definitions for kinesis
Generating RBAC manifests for kinesis

So, it seems that something was added to code-gen that breaks the custom operations configuration somehow.

Metadata

Metadata

Assignees

Labels

area/code-generationIssues or PRs as related to controllers or docs code generationkind/bugCategorizes issue or PR as related to a bug.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions