Installation

Install the Operator SDK CLI

Prerequisites

  • docker version 17.03+ (or another tool compatible with multi-stage Dockerfiles).
  • kubectl version v1.11.3+ (v1.16.0+ if using apiextensions.k8s.io/v1 CRDs).

Install from Homebrew (macOS)

If you are using Homebrew, you can install the SDK CLI tool with the following command:

  1. $ brew install operator-sdk

Install from GitHub release

Download the release binaries

  1. # Set the release version variable
  2. $ RELEASE_VERSION=v1.2.0
  3. # Linux
  4. $ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu
  5. $ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/ansible-operator-${RELEASE_VERSION}-x86_64-linux-gnu
  6. $ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/helm-operator-${RELEASE_VERSION}-x86_64-linux-gnu
  7. # macOS
  8. $ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin
  9. $ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/ansible-operator-${RELEASE_VERSION}-x86_64-apple-darwin
  10. $ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/helm-operator-${RELEASE_VERSION}-x86_64-apple-darwin

Verify the downloaded release binaries

  1. # Linux
  2. $ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu.asc
  3. $ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/ansible-operator-${RELEASE_VERSION}-x86_64-linux-gnu.asc
  4. $ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/helm-operator-${RELEASE_VERSION}-x86_64-linux-gnu.asc
  5. # macOS
  6. $ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin.asc
  7. $ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/ansible-operator-${RELEASE_VERSION}-x86_64-apple-darwin.asc
  8. $ curl -LO https://github.com/operator-framework/operator-sdk/releases/download/${RELEASE_VERSION}/helm-operator-${RELEASE_VERSION}-x86_64-apple-darwin.asc

To verify a release binary using the provided asc files, place the binary and corresponding asc file into the same directory and use the corresponding command:

  1. # Linux
  2. $ gpg --verify operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu.asc
  3. $ gpg --verify ansible-operator-${RELEASE_VERSION}-x86_64-linux-gnu.asc
  4. $ gpg --verify helm-operator-${RELEASE_VERSION}-x86_64-linux-gnu.asc
  5. # macOS
  6. $ gpg --verify operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin.asc
  7. $ gpg --verify ansible-operator-${RELEASE_VERSION}-x86_64-apple-darwin.asc
  8. $ gpg --verify helm-operator-${RELEASE_VERSION}-x86_64-apple-darwin.asc

If you do not have the maintainers public key on your machine, you will get an error message similar to this:

  1. $ gpg --verify operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin.asc
  2. $ gpg: assuming signed data in 'operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin'
  3. $ gpg: Signature made Fri Apr 5 20:03:22 2019 CEST
  4. $ gpg: using RSA key <KEY_ID>
  5. $ gpg: Can't check signature: No public key

To download the key, use the following command, replacing $KEY_ID with the RSA key string provided in the output of the previous command:

  1. $ gpg --recv-key "$KEY_ID"

You’ll need to specify a key server if one hasn’t been configured. For example:

  1. $ gpg --keyserver keyserver.ubuntu.com --recv-key "$KEY_ID"

Now you should be able to verify the binary.

Install the release binary in your PATH

  1. # Linux
  2. $ chmod +x operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu && sudo mkdir -p /usr/local/bin/ && sudo cp operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu /usr/local/bin/operator-sdk && rm operator-sdk-${RELEASE_VERSION}-x86_64-linux-gnu
  3. $ chmod +x ansible-operator-${RELEASE_VERSION}-x86_64-linux-gnu && sudo mkdir -p /usr/local/bin/ && sudo cp ansible-operator-${RELEASE_VERSION}-x86_64-linux-gnu /usr/local/bin/ansible-operator && rm ansible-operator-${RELEASE_VERSION}-x86_64-linux-gnu
  4. $ chmod +x helm-operator-${RELEASE_VERSION}-x86_64-linux-gnu && sudo mkdir -p /usr/local/bin/ && sudo cp helm-operator-${RELEASE_VERSION}-x86_64-linux-gnu /usr/local/bin/helm-operator && rm helm-operator-${RELEASE_VERSION}-x86_64-linux-gnu
  5. # macOS
  6. $ chmod +x operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin && sudo mkdir -p /usr/local/bin/ && sudo cp operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin /usr/local/bin/operator-sdk && rm operator-sdk-${RELEASE_VERSION}-x86_64-apple-darwin
  7. $ chmod +x ansible-operator-${RELEASE_VERSION}-x86_64-apple-darwin && sudo mkdir -p /usr/local/bin/ && sudo cp ansible-operator-${RELEASE_VERSION}-x86_64-apple-darwin /usr/local/bin/ansible-operator && rm ansible-operator-${RELEASE_VERSION}-x86_64-apple-darwin
  8. $ chmod +x helm-operator-${RELEASE_VERSION}-x86_64-apple-darwin && sudo mkdir -p /usr/local/bin/ && sudo cp helm-operator-${RELEASE_VERSION}-x86_64-apple-darwin /usr/local/bin/helm-operator && rm helm-operator-${RELEASE_VERSION}-x86_64-apple-darwin

Compile and install from master

Prerequisites for compilation

  1. $ git clone https://github.com/operator-framework/operator-sdk
  2. $ cd operator-sdk
  3. $ git checkout master
  4. $ make install

Note: Ensure that your GOPROXY is set with its default value for Go versions 1.15+ which is https://proxy.golang.org,direct.

Last modified November 9, 2020: release v1.2.0 (#4201) (215fc50b)