Skip to content

Makefile's helm-operator recipe is "silently" broken #4954

@sqqqrly

Description

@sqqqrly

Bug Report

What did you do?

While following [1], I ran "make install run". This depends on "helm-operator". This dependency completed without error.

[1] https://sdk.operatorframework.io/docs/building-operators/helm/tutorial/

What did you expect to see?

I expected that bin/helm-operator would be a binary: "ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, not stripped"

Either that, or a Makefile error and a full stop.

What did you see instead? Under which circumstances?

Instead of an ELF, the bin/helm-operator file was an ascii file with the contents "Not Found".

There were no errors reported by make until "make run" which generated ".../nginx-operator-2/bin/helm-operator: line 1: Not: command not found"

To fix, I changed the helm-operator recipe:
s?curl -LO https://github.com/operator-framework/operator-sdk/releases/download/v1.3.0/helm-operator-v1.3.0-$(ARCHOPER)-$(OSOPER)?curl -LO https://github.com/operator-framework/operator-sdk/releases/download/v1.3.0/helm-operator_linux_amd64?

Environment

RHEL7

╰─➤ uname -s | tr '[:upper:]' '[:lower:]' | sed 's/darwin/apple-darwin/' | sed 's/linux/linux-gnu/'
linux-gnu

╰─➤ uname -m
x86_64

Neither uname output is useful to download the correct URL [2].

[2] https://github.com/operator-framework/operator-sdk/releases/download/v1.3.0/helm-operator_linux_amd64

Operator type:
Nginx (demo)

/language helm

Kubernetes cluster type:
Openshift

╰─➤ operator-sdk version
operator-sdk version: "v1.3.0-ocp", commit: "568f7f10982d380895a70f72228e8b4da38c1dbb", kubernetes version: "v1.19.4", go version: "go1.15.7", GOOS: "linux", GOARCH: "amd64"

This version was selected because I was following [3].

[3] https://gitlab.com/redhatdemocentral/ocp-install-demo

$ go version (if language is Go)

$ kubectl version
╰─➤ kubectl version
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.0", GitCommit:"cb303e613a121a29364f75cc67d3d580833a7479", GitTreeState:"clean", BuildDate:"2021-04-08T16:31:21Z", GoVersion:"go1.16.1", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"20", GitVersion:"v1.20.0+7d0a2b2", GitCommit:"7d0a2b269a27413f5f125d30c9d726684886c69a", GitTreeState:"clean", BuildDate:"2021-04-16T13:08:35Z", GoVersion:"go1.15.7", Compiler:"gc", Platform:"linux/amd64"}

Possible Solution

  1. Check curl's result. Check that bin/helm-operator is really an ELF. I am not seeing an error until "make run", and that error is a little cryptic until one cats bin/helm-operator: .../bin/helm-operator: line 1: Not: command not found

  2. Fix the URL used by curl as shown above.

Additional context

Once I made the substitution, it works!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions