Skip to content

operator-sdk generate should not depend on Dockerfile existence #1686

@nrvnrvn

Description

@nrvnrvn

Bug Report

What did you do?

# make operator-sdk think the `build` directory does not exist.
$ mv build{,1}
$ operator-sdk generate k8s --verbose && operator-sdk generate openapi --verbose
DEBU[0000] Debug logging is set                         
FATA[0000] must run command in project root dir: project structure requires build/Dockerfile
$ mkdir build
$ touch build/Dockerfile
$ operator-sdk generate k8s --verbose && operator-sdk generate openapi --verbose
DEBU[0000] Debug logging is set                         
INFO[0000] Running deepcopy code-generation for Custom Resource group versions: [k8s:[v1alpha1], ] 
INFO[0010] Code-generation complete.                    
DEBU[0000] Debug logging is set                         
INFO[0000] Running OpenAPI code-generation for Custom Resource group versions: [k8s:[v1alpha1], ] 
INFO[0025] Created deploy/crds/k8s_v1alpha1_redis_crd.yaml 
INFO[0025] Code-generation complete.

Dockerfile is not needed for generating deepcopy and openapi files. Yet if it does not exist (or the whole build directory) it stops operator-sdk from proceeding.

Possible Solution
Remove the Dockerfile dependency.
genutil will fail anyway if it does not find the pkg/apis directory

return nil, fmt.Errorf("could not read pkg/apis directory to find api Versions: %v", err)

Why is it needed?
for those cases when images are built using third-party tools not relying on Dockerfiles

Metadata

Metadata

Labels

kind/featureCategorizes issue or PR as related to a new feature.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions