<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Operator SDK – Command Line Interface</title>
    <link>/docs/cli/</link>
    <description>Recent content in Command Line Interface on Operator SDK</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    
	  <atom:link href="/docs/cli/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: operator-sdk</title>
      <link>/docs/cli/operator-sdk/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk&#34;&gt;operator-sdk&lt;/h2&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;CLI tool for building Kubernetes extensions and tools.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;examples&#34;&gt;Examples&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;The first step is to initialize your project:
    operator-sdk init [--plugins=&amp;lt;PLUGIN KEYS&amp;gt; [--project-version=&amp;lt;PROJECT VERSION&amp;gt;]]

&amp;lt;PLUGIN KEYS&amp;gt; is a comma-separated list of plugin keys from the following table
and &amp;lt;PROJECT VERSION&amp;gt; a supported project version for these plugins.

                             Plugin keys | Supported project versions
-----------------------------------------+----------------------------
     ansible.sdk.operatorframework.io/v1 |                          3
 deploy-image.go.kubebuilder.io/v1-alpha |                          3
                    go.kubebuilder.io/v4 |                          3
         grafana.kubebuilder.io/v1-alpha |                          3
        helm.sdk.operatorframework.io/v1 |                          3

For more specific help for the init command of a certain plugins and project version
configuration please run:
    operator-sdk init --help --plugins=&amp;lt;PLUGIN KEYS&amp;gt; [--project-version=&amp;lt;PROJECT VERSION&amp;gt;]

Default plugin keys: &amp;quot;go.kubebuilder.io/v4&amp;quot;
Default project version: &amp;quot;3&amp;quot;

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help                     help for operator-sdk
      --plugins strings          plugin keys to be used for this subcommand execution
      --project-version string   project version (default &amp;quot;3&amp;quot;)
      --verbose                  Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_alpha&#34;&gt;operator-sdk alpha&lt;/a&gt;	 - Alpha-stage subcommands&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_bundle&#34;&gt;operator-sdk bundle&lt;/a&gt;	 - Manage operator bundle metadata&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_cleanup&#34;&gt;operator-sdk cleanup&lt;/a&gt;	 - Clean up an Operator deployed with the &amp;lsquo;run&amp;rsquo; subcommand&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_completion&#34;&gt;operator-sdk completion&lt;/a&gt;	 - Load completions for the specified shell&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_create&#34;&gt;operator-sdk create&lt;/a&gt;	 - Scaffold a Kubernetes API or webhook&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_edit&#34;&gt;operator-sdk edit&lt;/a&gt;	 - Update the project configuration&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_generate&#34;&gt;operator-sdk generate&lt;/a&gt;	 - Invokes a specific generator&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_init&#34;&gt;operator-sdk init&lt;/a&gt;	 - Initialize a new project&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_olm&#34;&gt;operator-sdk olm&lt;/a&gt;	 - Manage the Operator Lifecycle Manager installation in your cluster&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_pkgman-to-bundle&#34;&gt;operator-sdk pkgman-to-bundle&lt;/a&gt;	 - Migrates packagemanifests to bundles&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_run&#34;&gt;operator-sdk run&lt;/a&gt;	 - Run an Operator in a variety of environments&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_scorecard&#34;&gt;operator-sdk scorecard&lt;/a&gt;	 - Runs scorecard&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_version&#34;&gt;operator-sdk version&lt;/a&gt;	 - Print the operator-sdk version&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk alpha</title>
      <link>/docs/cli/operator-sdk_alpha/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_alpha/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-alpha&#34;&gt;operator-sdk alpha&lt;/h2&gt;
&lt;p&gt;Alpha-stage subcommands&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;Alpha subcommands are for unstable features.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Alpha subcommands are exploratory and may be removed without warning.&lt;/li&gt;
&lt;li&gt;No backwards compatibility is provided for any alpha subcommands.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help   help for alpha
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk&#34;&gt;operator-sdk&lt;/a&gt;	 -&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_alpha_config-3alpha-to-3&#34;&gt;operator-sdk alpha config-3alpha-to-3&lt;/a&gt;	 - Convert your PROJECT config file from version 3-alpha to 3&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_alpha_generate&#34;&gt;operator-sdk alpha generate&lt;/a&gt;	 - Re-scaffold an existing Kuberbuilder project&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk alpha config-3alpha-to-3</title>
      <link>/docs/cli/operator-sdk_alpha_config-3alpha-to-3/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_alpha_config-3alpha-to-3/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-alpha-config-3alpha-to-3&#34;&gt;operator-sdk alpha config-3alpha-to-3&lt;/h2&gt;
&lt;p&gt;Convert your PROJECT config file from version 3-alpha to 3&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;Your PROJECT file contains config data specified by some version.
This version is not a kubernetes-style version. In general, alpha and beta config versions
are unstable and support for them is dropped once a stable version is released.
The 3-alpha version has recently become stable (3), and therefore is no longer
supported by operator-sdk v1.5+. This command is intended to migrate 3-alpha PROJECT files
to 3 with as few manual modifications required as possible.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk alpha config-3alpha-to-3 [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help   help for config-3alpha-to-3
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_alpha&#34;&gt;operator-sdk alpha&lt;/a&gt;	 - Alpha-stage subcommands&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk alpha generate</title>
      <link>/docs/cli/operator-sdk_alpha_generate/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_alpha_generate/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-alpha-generate&#34;&gt;operator-sdk alpha generate&lt;/h2&gt;
&lt;p&gt;Re-scaffold an existing Kuberbuilder project&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;It&amp;rsquo;s an experimental feature that has the purpose of re-scaffolding the whole project from the scratch
using the current version of KubeBuilder binary available.&lt;/p&gt;
&lt;h1 id=&#34;make-sure-the-project-file-is-in-the-input-dir-argument-the-default-is-the-current-directory&#34;&gt;make sure the PROJECT file is in the &amp;lsquo;input-dir&amp;rsquo; argument, the default is the current directory.&lt;/h1&gt;
&lt;p&gt;$ kubebuilder alpha generate &amp;ndash;input-dir=&amp;rdquo;./test&amp;rdquo; &amp;ndash;output-dir=&amp;rdquo;./my-output&amp;rdquo;
Then we will re-scaffold the project by Kubebuilder in the directory specified by &amp;lsquo;output-dir&amp;rsquo;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk alpha generate [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help                help for generate
      --input-dir string    Specifies the full path to a Kubebuilder project file. If not provided, the current working directory is used.
      --output-dir string   Specifies the full path where the scaffolded files will be output. Defaults to a directory within the current working directory.
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_alpha&#34;&gt;operator-sdk alpha&lt;/a&gt;	 - Alpha-stage subcommands&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk bundle</title>
      <link>/docs/cli/operator-sdk_bundle/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_bundle/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-bundle&#34;&gt;operator-sdk bundle&lt;/h2&gt;
&lt;p&gt;Manage operator bundle metadata&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;Manage bundle builds, bundle metadata generation, and bundle validation.
An operator bundle is a portable operator packaging format understood by Kubernetes
native software, like the Operator Lifecycle Manager.&lt;/p&gt;
&lt;p&gt;More information about operator bundles and metadata:
&lt;a href=&#34;https://github.com/operator-framework/operator-registry/blob/master/docs/design/operator-bundle.md&#34;&gt;https://github.com/operator-framework/operator-registry/blob/master/docs/design/operator-bundle.md&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;More information about the integration with OLM via SDK:
&lt;a href=&#34;https://sdk.operatorframework.io/docs/olm-integration&#34;&gt;https://sdk.operatorframework.io/docs/olm-integration&lt;/a&gt;&lt;/p&gt;
&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help   help for bundle
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk&#34;&gt;operator-sdk&lt;/a&gt;	 -&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_bundle_validate&#34;&gt;operator-sdk bundle validate&lt;/a&gt;	 - Validate an operator bundle&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk bundle validate</title>
      <link>/docs/cli/operator-sdk_bundle_validate/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_bundle_validate/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-bundle-validate&#34;&gt;operator-sdk bundle validate&lt;/h2&gt;
&lt;p&gt;Validate an operator bundle&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;The &amp;lsquo;operator-sdk bundle validate&amp;rsquo; command can validate both content and format of an operator bundle
image or an operator bundle directory on-disk containing operator metadata and manifests. This command will exit
with an exit code of 1 if any validation errors arise, and 0 if only warnings arise or all validators pass.&lt;/p&gt;
&lt;p&gt;A valid bundle is defined by the bundle spec (linked below), therefore the default validator ensures a bundle conforms to
that spec. If you want to ensure that your bundle is valid for an optional superset of requirements such as to those
required to publish your operator on operatorhub.io, then you will need to run one or more supported optional validators.
Set &amp;lsquo;&amp;ndash;list-optional&amp;rsquo; to list which optional validators are supported, and how they are grouped by label.&lt;/p&gt;
&lt;p&gt;More information about operator bundles and metadata:
&lt;a href=&#34;https://github.com/operator-framework/operator-registry/blob/master/docs/design/operator-bundle.md&#34;&gt;https://github.com/operator-framework/operator-registry/blob/master/docs/design/operator-bundle.md&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;NOTE: if validating an image, the image must exist in a remote registry, not just locally.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk bundle validate [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;examples&#34;&gt;Examples&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;This example assumes you either have a *pullable* bundle image,
or something similar to the following operator bundle layout present locally:

  $ tree ./bundle
  ./bundle
  ├── manifests
  │   ├── cache.my.domain_memcacheds.yaml
  │   └── memcached-operator.clusterserviceversion.yaml
  └── metadata
      └── annotations.yaml

To validate a local bundle:

  $ operator-sdk bundle validate ./bundle

To build and validate a *pullable* bundle image:

  $ operator-sdk bundle validate &amp;lt;some-registry&amp;gt;/&amp;lt;operator-bundle-name&amp;gt;:&amp;lt;tag&amp;gt;

To list and run optional validators, which are specified by a label selector:

  $ operator-sdk bundle validate --list-optional
  NAME           LABELS                     DESCRIPTION
  operatorhub    name=operatorhub           OperatorHub.io metadata validation.
                 suite=operatorframework

To validate a bundle against the entire suite of validators for Operator Framework, in addition to required bundle validators:

  $ operator-sdk bundle validate ./bundle --select-optional suite=operatorframework

The OperatorHub.io validator in the operatorframework optional suite allows you to validate that your manifests can work with a Kubernetes cluster of a particular version using the k8s-version optional key value:

  $ operator-sdk bundle validate ./bundle --select-optional suite=operatorframework --optional-values=k8s-version=1.22

To validate a bundle against the validator for operatorhub.io specifically, in addition to required bundle validators:

  $ operator-sdk bundle validate ./bundle --select-optional name=operatorhub

This validator allows check the bundle against an specific Kubernetes cluster version using the k8s-version optional key value:

  $ operator-sdk bundle validate ./bundle --select-optional name=operatorhub --optional-values=k8s-version=1.22

[Deprecated] To validate a bundle against the (alpha) validator for Community Operators specifically, in addition to required bundle validators:

  $ operator-sdk bundle validate ./bundle --select-optional name=community --optional-values=index-path=bundle.Dockerfile

To validate a bundle against the validator for Good Practices specifically, in addition to required bundle validators:

  $ operator-sdk bundle validate ./bundle --select-optional name=good-practices

To validate a bundle against the (alpha) validator for Deprecated APIs specifically, in addition to required bundle validators:

  $ operator-sdk bundle validate ./bundle --select-optional name=alpha-deprecated-apis --optional-values=k8s-version=1.22

To validate a bundle against an external validator, in addition to required bundle validators:

  $ operator-sdk bundle validate ./bundle --alpha-select-external /path/to/external-validator[:/path/to/optional-second-validator]

To validate a bundle against the (alpha) validator for Multiple Architectures bundle validation, in addition to required bundle validators:

IMPORTANT: To use this option it is required to have access to pull the images defined on the CSV.

  $ operator-sdk bundle validate ./bundle --select-optional name=multiarch 

NOTE: The --optional-values can be used to inform the container-tools that should be used i.e. &amp;quot;--optional-values=container-tools=docker&amp;quot;.
The valid values for the container-tools optional value are [docker, podman, none]. If no value is supplied then the command will default to using docker to inspect the images.
More info: https://github.com/operator-framework/api/blob/master/pkg/validation/internal/multiarch.go

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --alpha-select-external string                         Selector to select external validators to run. It should be set to a Unix path list (&amp;quot;/path/to/e1.sh:/path/to/e2&amp;quot;)
  -h, --help                                                 help for validate
  -b, --image-builder string                                 Tool to pull and unpack bundle images. Only used when validating a bundle image. One of: [docker, podman, none] (default &amp;quot;docker&amp;quot;)
      --list-optional                                        List all optional validators available. When set, no validators will be run
      --optional-values --optional-values=k8s-version=1.22   Inform a []string map of key=values which can be used by the validator. e.g. to check the operator bundle against an Kubernetes version that it is intended to be distributed use --optional-values=k8s-version=1.22 (default [])
  -o, --output string                                        Result format for results. One of: [text, json-alpha1]. Note: output format types containing &amp;quot;alphaX&amp;quot; are subject to change and not covered by guarantees of stable APIs. (default &amp;quot;text&amp;quot;)
      --select-optional string                               Label selector to select optional validators to run. Run this command with &#39;--list-optional&#39; to list available optional validators
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_bundle&#34;&gt;operator-sdk bundle&lt;/a&gt;	 - Manage operator bundle metadata&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk cleanup</title>
      <link>/docs/cli/operator-sdk_cleanup/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_cleanup/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-cleanup&#34;&gt;operator-sdk cleanup&lt;/h2&gt;
&lt;p&gt;Clean up an Operator deployed with the &amp;lsquo;run&amp;rsquo; subcommand&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;This command has subcommands that will destroy an Operator deployed with OLM.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk cleanup &amp;lt;operatorPackageName&amp;gt; [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --delete-all               If set to true, all other delete options will be enabled (default true)
      --delete-crds              If set to true, owned CRDs and CRs will be deleted
      --delete-operator-groups   If set to true, operator groups will be deleted
  -h, --help                     help for cleanup
      --kubeconfig string        Path to the kubeconfig file to use for CLI requests.
  -n, --namespace string         If present, namespace scope for this CLI request
      --timeout duration         Duration to wait for the command to complete before failing (default 2m0s)
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk&#34;&gt;operator-sdk&lt;/a&gt;	 -&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk completion</title>
      <link>/docs/cli/operator-sdk_completion/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_completion/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-completion&#34;&gt;operator-sdk completion&lt;/h2&gt;
&lt;p&gt;Load completions for the specified shell&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;Output shell completion code for the specified shell.
The shell code must be evaluated to provide interactive completion of operator-sdk commands.
Detailed instructions on how to do this for each shell are provided in their own commands.&lt;/p&gt;
&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help   help for completion
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk&#34;&gt;operator-sdk&lt;/a&gt;	 -&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_completion_bash&#34;&gt;operator-sdk completion bash&lt;/a&gt;	 - Load bash completions&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_completion_fish&#34;&gt;operator-sdk completion fish&lt;/a&gt;	 - Load fish completions&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_completion_powershell&#34;&gt;operator-sdk completion powershell&lt;/a&gt;	 - Load powershell completions&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_completion_zsh&#34;&gt;operator-sdk completion zsh&lt;/a&gt;	 - Load zsh completions&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk completion bash</title>
      <link>/docs/cli/operator-sdk_completion_bash/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_completion_bash/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-completion-bash&#34;&gt;operator-sdk completion bash&lt;/h2&gt;
&lt;p&gt;Load bash completions&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk completion bash [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;examples&#34;&gt;Examples&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# To load completion for this session, execute:
$ source &amp;lt;(operator-sdk completion bash)

# To load completions for each session, execute once:
Linux:
  $ operator-sdk completion bash &amp;gt; /etc/bash_completion.d/operator-sdk
MacOS:
  $ operator-sdk completion bash &amp;gt; /usr/local/etc/bash_completion.d/operator-sdk

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help   help for bash
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_completion&#34;&gt;operator-sdk completion&lt;/a&gt;	 - Load completions for the specified shell&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk completion fish</title>
      <link>/docs/cli/operator-sdk_completion_fish/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_completion_fish/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-completion-fish&#34;&gt;operator-sdk completion fish&lt;/h2&gt;
&lt;p&gt;Load fish completions&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk completion fish [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;examples&#34;&gt;Examples&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# To load completion for this session, execute:
$ operator-sdk completion fish | source

# To load completions for each session, execute once:
$ operator-sdk completion fish &amp;gt; ~/.config/fish/completions/operator-sdk.fish

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help   help for fish
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_completion&#34;&gt;operator-sdk completion&lt;/a&gt;	 - Load completions for the specified shell&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk completion powershell</title>
      <link>/docs/cli/operator-sdk_completion_powershell/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_completion_powershell/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-completion-powershell&#34;&gt;operator-sdk completion powershell&lt;/h2&gt;
&lt;p&gt;Load powershell completions&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk completion powershell [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help   help for powershell
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_completion&#34;&gt;operator-sdk completion&lt;/a&gt;	 - Load completions for the specified shell&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk completion zsh</title>
      <link>/docs/cli/operator-sdk_completion_zsh/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_completion_zsh/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-completion-zsh&#34;&gt;operator-sdk completion zsh&lt;/h2&gt;
&lt;p&gt;Load zsh completions&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk completion zsh [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;examples&#34;&gt;Examples&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;# If shell completion is not already enabled in your environment you will need
# to enable it. You can execute the following once:
$ echo &amp;quot;autoload -U compinit; compinit&amp;quot; &amp;gt;&amp;gt; ~/.zshrc

# To load completions for each session, execute once:
$ operator-sdk completion zsh &amp;gt; &amp;quot;${fpath[1]}/_operator-sdk&amp;quot;

# You will need to start a new shell for this setup to take effect.

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help   help for zsh
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_completion&#34;&gt;operator-sdk completion&lt;/a&gt;	 - Load completions for the specified shell&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk create</title>
      <link>/docs/cli/operator-sdk_create/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_create/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-create&#34;&gt;operator-sdk create&lt;/h2&gt;
&lt;p&gt;Scaffold a Kubernetes API or webhook&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;Scaffold a Kubernetes API or webhook.&lt;/p&gt;
&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help   help for create
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk&#34;&gt;operator-sdk&lt;/a&gt;	 -&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_create_api&#34;&gt;operator-sdk create api&lt;/a&gt;	 - Scaffold a Kubernetes API&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_create_webhook&#34;&gt;operator-sdk create webhook&lt;/a&gt;	 - Scaffold a webhook for an API resource&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk create api</title>
      <link>/docs/cli/operator-sdk_create_api/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_create_api/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-create-api&#34;&gt;operator-sdk create api&lt;/h2&gt;
&lt;p&gt;Scaffold a Kubernetes API&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;Scaffold a Kubernetes API by writing a Resource definition and/or a Controller.&lt;/p&gt;
&lt;p&gt;If information about whether the resource and controller should be scaffolded
was not explicitly provided, it will prompt the user if they should be.&lt;/p&gt;
&lt;p&gt;After the scaffold is written, the dependencies will be updated and
make generate will be run.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk create api [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;examples&#34;&gt;Examples&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  # Create a frigates API with Group: ship, Version: v1beta1 and Kind: Frigate
  operator-sdk create api --group ship --version v1beta1 --kind Frigate

  # Edit the API Scheme

  nano api/v1beta1/frigate_types.go

  # Edit the Controller
  nano internal/controller/frigate/frigate_controller.go

  # Edit the Controller Test
  nano internal/controller/frigate/frigate_controller_test.go

  # Generate the manifests
  make manifests

  # Install CRDs into the Kubernetes cluster using kubectl apply
  make install

  # Regenerate code and run against the Kubernetes cluster configured by ~/.kube/config
  make run

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --controller                   if set, generate the controller without prompting the user (default true)
      --external-api-domain string   Specify the domain name for the external API. This domain is used to generate accurate RBAC markers and permissions for the external resources (e.g., cert-manager.io).
      --external-api-path string     Specify the Go package import path for the external API. This is used to scaffold controllers for resources defined outside this project (e.g., github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1).
      --force                        attempt to create resource even if it already exists
      --group string                 resource Group
  -h, --help                         help for api
      --kind string                  resource Kind
      --make make generate           if true, run make generate after generating files (default true)
      --namespaced                   resource is namespaced (default true)
      --plural string                resource irregular plural form
      --resource                     if set, generate the resource without prompting the user (default true)
      --version string               resource Version
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_create&#34;&gt;operator-sdk create&lt;/a&gt;	 - Scaffold a Kubernetes API or webhook&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk create webhook</title>
      <link>/docs/cli/operator-sdk_create_webhook/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_create_webhook/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-create-webhook&#34;&gt;operator-sdk create webhook&lt;/h2&gt;
&lt;p&gt;Scaffold a webhook for an API resource&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;Scaffold a webhook for an API resource. You can choose to scaffold defaulting,
validating and/or conversion webhooks.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk create webhook [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;examples&#34;&gt;Examples&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  # Create defaulting and validating webhooks for Group: ship, Version: v1beta1
  # and Kind: Frigate
  operator-sdk create webhook --group ship --version v1beta1 --kind Frigate --defaulting --programmatic-validation

  # Create conversion webhook for Group: ship, Version: v1beta1
  # and Kind: Frigate
  operator-sdk create webhook --group ship --version v1beta1 --kind Frigate --conversion --spoke v1

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --conversion                   if set, scaffold the conversion webhook
      --defaulting                   if set, scaffold the defaulting webhook
      --external-api-domain string   Specify the domain name for the external API. This domain is used to generate accurate RBAC markers and permissions for the external resources (e.g., cert-manager.io).
      --external-api-path string     Specify the Go package import path for the external API. This is used to scaffold controllers for resources defined outside this project (e.g., github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1).
      --force                        attempt to create resource even if it already exists
      --group string                 resource Group
  -h, --help                         help for webhook
      --kind string                  resource Kind
      --legacy                       [DEPRECATED] Attempts to create resource under the API directory (legacy path). This option will be removed in future versions.
      --make make generate           if true, run make generate after generating files (default true)
      --plural string                resource irregular plural form
      --programmatic-validation      if set, scaffold the validating webhook
      --spoke strings                Comma-separated list of spoke versions to be added to the conversion webhook (e.g., --spoke v1,v2)
      --version string               resource Version
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_create&#34;&gt;operator-sdk create&lt;/a&gt;	 - Scaffold a Kubernetes API or webhook&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk edit</title>
      <link>/docs/cli/operator-sdk_edit/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_edit/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-edit&#34;&gt;operator-sdk edit&lt;/h2&gt;
&lt;p&gt;Update the project configuration&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;This command will edit the project configuration.
Features supported:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Toggle between single or multi group projects.&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk edit [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;examples&#34;&gt;Examples&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  # Enable the multigroup layout
  operator-sdk edit --multigroup

  # Disable the multigroup layout
  operator-sdk edit --multigroup=false

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help         help for edit
      --multigroup   enable or disable multigroup layout
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk&#34;&gt;operator-sdk&lt;/a&gt;	 -&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk generate</title>
      <link>/docs/cli/operator-sdk_generate/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_generate/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-generate&#34;&gt;operator-sdk generate&lt;/h2&gt;
&lt;p&gt;Invokes a specific generator&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;The &amp;lsquo;operator-sdk generate&amp;rsquo; command invokes a specific generator to generate
code or manifests.&lt;/p&gt;
&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help   help for generate
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk&#34;&gt;operator-sdk&lt;/a&gt;	 -&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_generate_bundle&#34;&gt;operator-sdk generate bundle&lt;/a&gt;	 - Generates bundle data for the operator&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_generate_kustomize&#34;&gt;operator-sdk generate kustomize&lt;/a&gt;	 - Contains subcommands that generate operator-framework kustomize data for the operator&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk generate bundle</title>
      <link>/docs/cli/operator-sdk_generate_bundle/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_generate_bundle/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-generate-bundle&#34;&gt;operator-sdk generate bundle&lt;/h2&gt;
&lt;p&gt;Generates bundle data for the operator&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;Running &amp;lsquo;generate bundle&amp;rsquo; is the first step to publishing your operator to a catalog and deploying it with OLM.
This command both generates and packages files into an on-disk representation of an operator called a bundle.
A bundle consists of a ClusterServiceVersion (CSV), CustomResourceDefinitions (CRDs),
manifests not part of the CSV but required by the operator, some metadata (annotations.yaml),
and a bundle.Dockerfile to build a bundle image.&lt;/p&gt;
&lt;p&gt;A CSV manifest is generated by collecting data from the set of manifests passed to this command (see below),
such as CRDs, RBAC, etc., and applying that data to a &amp;ldquo;base&amp;rdquo; CSV manifest. This base CSV can contain metadata,
added by hand or by the &amp;lsquo;generate kustomize manifests&amp;rsquo; command, and can be passed in like any other manifest
(see below) or by file at the exact path &amp;lsquo;&amp;lt;kustomize-dir&amp;gt;/bases/&amp;lt;package-name&amp;gt;.clusterserviceversion.yaml&amp;rsquo;.
Be aware that &amp;lsquo;generate bundle&amp;rsquo; idempotently regenerates a bundle, so all non-metadata values in a base
will be overwritten. If no base was passed in, input manifest data will be applied to an empty CSV.&lt;/p&gt;
&lt;p&gt;There are two ways to pass the to-be-bundled set of manifests to this command: stdin via a Unix pipe,
or in a directory using &amp;lsquo;&amp;ndash;input-dir&amp;rsquo;. See command help for more information on these modes.
Passing a directory is useful for running &amp;lsquo;generate bundle&amp;rsquo; outside of a project or within a project
that does not use kustomize and/or contains cluster-ready manifests on disk.&lt;/p&gt;
&lt;p&gt;Set &amp;lsquo;&amp;ndash;version&amp;rsquo; to supply a semantic version for your bundle if you are creating one
for the first time or upgrading an existing one.&lt;/p&gt;
&lt;p&gt;If &amp;lsquo;&amp;ndash;output-dir&amp;rsquo; is set and you wish to build bundle images from that directory,
either manually update your bundle.Dockerfile or set &amp;lsquo;&amp;ndash;overwrite&amp;rsquo;.&lt;/p&gt;
&lt;p&gt;More information on bundles:
&lt;a href=&#34;https://github.com/operator-framework/operator-registry/#manifest-format&#34;&gt;https://github.com/operator-framework/operator-registry/#manifest-format&lt;/a&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk generate bundle [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;examples&#34;&gt;Examples&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;
  # If running within a project or in a project that uses kustomize to generate manifests,
	# make sure a kustomize directory exists that looks like the following &#39;config/manifests&#39; directory:
  $ tree config/manifests
  config/manifests
  ├── bases
  │   └── memcached-operator.clusterserviceversion.yaml
  └── kustomization.yaml

  # Generate a 0.0.1 bundle by passing manifests to stdin:
  $ kustomize build config/manifests | operator-sdk generate bundle --version 0.0.1
  Generating bundle version 0.0.1
  ...

  # If running outside of a project or in a project that does not use kustomize to generate manifests,
	# make sure cluster-ready manifests are available on disk:
  $ tree deploy/
  deploy/
  ├── crds
  │   └── cache.my.domain_memcacheds.yaml
  ├── deployment.yaml
  ├── role.yaml
  ├── role_binding.yaml
  ├── service_account.yaml
  └── webhooks.yaml

  # Generate a 0.0.1 bundle by passing manifests by dir:
  $ operator-sdk generate bundle --input-dir deploy --version 0.0.1
  Generating bundle version 0.0.1
  ...

  # After running in either of the above modes, you should see this directory structure:
  $ tree bundle/
  bundle/
  ├── manifests
  │   ├── cache.my.domain_memcacheds.yaml
  │   └── memcached-operator.clusterserviceversion.yaml
  └── metadata
      └── annotations.yaml

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --channels string                  A comma-separated list of channels the bundle belongs to (default &amp;quot;alpha&amp;quot;)
      --crds-dir string                  Directory to read cluster-ready CustomResoureDefinition manifests from. This option can only be used if --deploy-dir is set
      --default-channel string           The default channel for the bundle
      --deploy-dir string                Directory to read cluster-ready operator manifests from. If --crds-dir is not set, CRDs are ready from this directory. This option is mutually exclusive with --input-dir and piping to stdin
      --extra-service-accounts strings   Names of service accounts, outside of the operator&#39;s Deployment account, that have bindings to {Cluster}Roles that should be added to the CSV
  -h, --help                             help for bundle
      --input-dir string                 Directory to read cluster-ready operator manifests from. This option is mutually exclusive with --deploy-dir/--crds-dir and piping to stdin. This option should not be passed an existing bundle directory, as this bundle will not contain the correct set of manifests required to generate a CSV. Use --kustomize-dir to pass a base CSV
      --kustomize-dir string             Directory containing kustomize bases in a &amp;quot;bases&amp;quot; dir and a kustomization.yaml for operator-framework manifests (default &amp;quot;config/manifests&amp;quot;)
      --manifests                        Generate bundle manifests
      --metadata                         Generate bundle metadata and Dockerfile
      --output-dir string                Directory to write the bundle to
      --overwrite                        Overwrite the bundle&#39;s metadata and Dockerfile if they exist (default true)
      --overwrite-annotations            Only overwrite annotations.yaml without modifying bundle.Dockerfile
      --package string                   Bundle&#39;s package name
  -q, --quiet                            Run in quiet mode
      --stdout                           Write bundle manifest to stdout
      --use-image-digests                Use SHA Digest for images
  -v, --version string                   Semantic version of the operator in the generated bundle. Only set if creating a new bundle or upgrading your operator
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_generate&#34;&gt;operator-sdk generate&lt;/a&gt;	 - Invokes a specific generator&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk generate kustomize</title>
      <link>/docs/cli/operator-sdk_generate_kustomize/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_generate_kustomize/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-generate-kustomize&#34;&gt;operator-sdk generate kustomize&lt;/h2&gt;
&lt;p&gt;Contains subcommands that generate operator-framework kustomize data for the operator&lt;/p&gt;
&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help   help for kustomize
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_generate&#34;&gt;operator-sdk generate&lt;/a&gt;	 - Invokes a specific generator&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_generate_kustomize_manifests&#34;&gt;operator-sdk generate kustomize manifests&lt;/a&gt;	 - Generates kustomize bases and a kustomization.yaml for operator-framework manifests&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk generate kustomize manifests</title>
      <link>/docs/cli/operator-sdk_generate_kustomize_manifests/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_generate_kustomize_manifests/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-generate-kustomize-manifests&#34;&gt;operator-sdk generate kustomize manifests&lt;/h2&gt;
&lt;p&gt;Generates kustomize bases and a kustomization.yaml for operator-framework manifests&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;Running &amp;lsquo;generate kustomize manifests&amp;rsquo; will (re)generate kustomize bases and a kustomization.yaml in
&amp;lsquo;config/manifests&amp;rsquo;, which are used to build operator-framework manifests by other operator-sdk commands.
This command will interactively ask for UI metadata, an important component of manifest bases,
by default unless a base already exists or you set &amp;lsquo;&amp;ndash;interactive=false&amp;rsquo;.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk generate kustomize manifests [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;examples&#34;&gt;Examples&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;
  $ operator-sdk generate kustomize manifests

  Display name for the operator (required):
  &amp;gt; memcached-operator
  ...

  $ tree config/manifests
  config/manifests
  ├── bases
  │   └── memcached-operator.clusterserviceversion.yaml
  └── kustomization.yaml

  # After generating kustomize bases and a kustomization.yaml, you can generate a bundle or package manifests.

  # To generate a bundle:
  $ kustomize build config/manifests | operator-sdk generate bundle --version 0.0.1

  # To generate package manifests:
  $ kustomize build config/manifests | operator-sdk generate packagemanifests --version 0.0.1

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --apis-dir string     Root directory for API type defintions
  -h, --help                help for manifests
      --input-dir string    Directory containing existing kustomize files
      --interactive         When set to false, if no kustomize base exists, an interactive command prompt will be presented to accept non-inferrable metadata
      --output-dir string   Directory to write kustomize files
      --package string      Package name
  -q, --quiet               Run in quiet mode
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_generate_kustomize&#34;&gt;operator-sdk generate kustomize&lt;/a&gt;	 - Contains subcommands that generate operator-framework kustomize data for the operator&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk init</title>
      <link>/docs/cli/operator-sdk_init/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_init/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-init&#34;&gt;operator-sdk init&lt;/h2&gt;
&lt;p&gt;Initialize a new project&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;Initialize a new project including the following files:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;a &amp;ldquo;go.mod&amp;rdquo; with project dependencies&lt;/li&gt;
&lt;li&gt;a &amp;ldquo;PROJECT&amp;rdquo; file that stores project configuration&lt;/li&gt;
&lt;li&gt;a &amp;ldquo;Makefile&amp;rdquo; with several useful make targets for the project&lt;/li&gt;
&lt;li&gt;several YAML files for project deployment under the &amp;ldquo;config&amp;rdquo; directory&lt;/li&gt;
&lt;li&gt;a &amp;ldquo;cmd/main.go&amp;rdquo; file that creates the manager that will run the project controllers&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk init [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;examples&#34;&gt;Examples&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  # Initialize a new project with your domain and name in copyright
  operator-sdk init --plugins go/v4 --domain example.org --owner &amp;quot;Your name&amp;quot;

  # Initialize a new project defining a specific project version
  operator-sdk init --plugins go/v4 --project-version 3

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --domain string            domain for groups (default &amp;quot;my.domain&amp;quot;)
      --fetch-deps               ensure dependencies are downloaded (default true)
  -h, --help                     help for init
      --license string           license to use to boilerplate, may be one of &#39;apache2&#39;, &#39;none&#39; (default &amp;quot;apache2&amp;quot;)
      --owner string             owner to add to the copyright
      --project-name string      name of this project
      --project-version string   project version (default &amp;quot;3&amp;quot;)
      --repo string              name to use for go module (e.g., github.com/user/repo), defaults to the go package of the current working directory.
      --skip-go-version-check    if specified, skip checking the Go version
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk&#34;&gt;operator-sdk&lt;/a&gt;	 -&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk olm</title>
      <link>/docs/cli/operator-sdk_olm/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_olm/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-olm&#34;&gt;operator-sdk olm&lt;/h2&gt;
&lt;p&gt;Manage the Operator Lifecycle Manager installation in your cluster&lt;/p&gt;
&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help   help for olm
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk&#34;&gt;operator-sdk&lt;/a&gt;	 -&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_olm_install&#34;&gt;operator-sdk olm install&lt;/a&gt;	 - Install Operator Lifecycle Manager in your cluster&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_olm_status&#34;&gt;operator-sdk olm status&lt;/a&gt;	 - Get the status of the Operator Lifecycle Manager installation in your cluster&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_olm_uninstall&#34;&gt;operator-sdk olm uninstall&lt;/a&gt;	 - Uninstall Operator Lifecycle Manager from your cluster&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk olm install</title>
      <link>/docs/cli/operator-sdk_olm_install/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_olm_install/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-olm-install&#34;&gt;operator-sdk olm install&lt;/h2&gt;
&lt;p&gt;Install Operator Lifecycle Manager in your cluster&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk olm install [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help               help for install
      --timeout duration   time to wait for the command to complete before failing (default 2m0s)
      --version string     version of OLM resources to install (default &amp;quot;0.28.0&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_olm&#34;&gt;operator-sdk olm&lt;/a&gt;	 - Manage the Operator Lifecycle Manager installation in your cluster&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk olm status</title>
      <link>/docs/cli/operator-sdk_olm_status/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_olm_status/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-olm-status&#34;&gt;operator-sdk olm status&lt;/h2&gt;
&lt;p&gt;Get the status of the Operator Lifecycle Manager installation in your cluster&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk olm status [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help                   help for status
      --olm-namespace string   namespace where OLM is installed (default &amp;quot;olm&amp;quot;)
      --timeout duration       time to wait for the command to complete before failing (default 2m0s)
      --version string         version of OLM installed on cluster; if unsetoperator-sdk attempts to auto-discover the version
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_olm&#34;&gt;operator-sdk olm&lt;/a&gt;	 - Manage the Operator Lifecycle Manager installation in your cluster&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk olm uninstall</title>
      <link>/docs/cli/operator-sdk_olm_uninstall/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_olm_uninstall/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-olm-uninstall&#34;&gt;operator-sdk olm uninstall&lt;/h2&gt;
&lt;p&gt;Uninstall Operator Lifecycle Manager from your cluster&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk olm uninstall [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help                   help for uninstall
      --olm-namespace string   namespace from where OLM is to be uninstalled. (default &amp;quot;olm&amp;quot;)
      --timeout duration       time to wait for the command to complete before failing (default 2m0s)
      --version string         version of OLM resources to uninstall.
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_olm&#34;&gt;operator-sdk olm&lt;/a&gt;	 - Manage the Operator Lifecycle Manager installation in your cluster&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk pkgman-to-bundle</title>
      <link>/docs/cli/operator-sdk_pkgman-to-bundle/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_pkgman-to-bundle/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-pkgman-to-bundle&#34;&gt;operator-sdk pkgman-to-bundle&lt;/h2&gt;
&lt;p&gt;Migrates packagemanifests to bundles&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;&amp;lsquo;pkgman-to-bundle&amp;rsquo; command helps in migrating OLM packagemanifests to bundles which is the preferred OLM packaging format.
This command takes an input packagemanifest directory and generates bundles for each of the versions of manifests present in
the input directory. Additionally, it also provides the flexibility to build bundle images for each of the generated bundles.&lt;/p&gt;
&lt;p&gt;The generated bundles are always written on disk. Location for the generated bundles can be specified using &amp;lsquo;&amp;ndash;output-dir&amp;rsquo;. If not
specified, the default location would be &amp;lsquo;bundle/&amp;rsquo; directory.&lt;/p&gt;
&lt;p&gt;The base container image name for the bundles can be provided using &amp;lsquo;&amp;ndash;image-tag-base&amp;rsquo; flag. This should be provided without the tag, since the tag
for the images would be the bundle version, (ie) image names will be in the format &amp;lt;base_image&amp;gt;:&amp;lt;bundle_version&amp;gt;.&lt;/p&gt;
&lt;p&gt;Specify the build command for building container images using &amp;lsquo;&amp;ndash;build-cmd&amp;rsquo; flag. The default build command is &amp;lsquo;docker build&amp;rsquo;. The command will
need to be in the &amp;lsquo;PATH&amp;rsquo; or fully qualified path name should be provided.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk pkgman-to-bundle &amp;lt;packagemanifestdir&amp;gt; [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;examples&#34;&gt;Examples&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;

# Provide the packagemanifests directory as input to the command. Consider the packagemanifests directory to have the following
# structure:

$ tree packagemanifests/
packagemanifests
└── etcd
    ├── 0.0.1
    │   ├── etcdcluster.crd.yaml
    │   └── etcdoperator.clusterserviceversion.yaml
    ├── 0.0.2
    │   ├── etcdbackup.crd.yaml
    │   ├── etcdcluster.crd.yaml
    │   ├── etcdoperator.v0.0.2.clusterserviceversion.yaml
    │   └── etcdrestore.crd.yaml
    └── etcd.package.yaml

# Run the following command to generate bundles in the default &#39;bundle/&#39; directory with the base-container image name
# to be &#39;quay.io/example/etcd&#39;
$ operator-sdk pkgman-to-bundle packagemanifests --image-tag-base quay.io/example/etcd
INFO[0000] Packagemanifests will be migrated to bundles in bundle directory
INFO[0000] Creating bundle/bundle-0.0.1/bundle.Dockerfile
INFO[0000] Creating bundle/bundle-0.0.1/metadata/annotations.yaml
...

# After running the above command, the bundles will be generated in &#39;bundles/&#39; directory.
$ tree bundles/
bundles/
├── bundle-0.0.1
│   ├── bundle
│   │   ├── manifests
│   │   │   ├── etcdcluster.crd.yaml
│   │   │   ├── etcdoperator.clusterserviceversion.yaml
│   │   ├── metadata
│   │   │   └── annotations.yaml
│   │   └── tests
│   │       └── scorecard
│   │           └── config.yaml
│   └── bundle.Dockerfile
└── bundle-0.0.2
    ├── bundle
    │   ├── manifests
    │   │   ├── etcdbackup.crd.yaml
    │   │   ├── etcdcluster.crd.yaml
    │   │   ├── etcdoperator.v0.0.2.clusterserviceversion.yaml
    │   │   ├── etcdrestore.crd.yaml
    │   └── metadata
    │       └── annotations.yaml
    └── bundle.Dockerfile

A custom command to build bundle images can also be specified using the &#39;--build-cmd&#39; flag. For example,

$ operator-sdk pkgman-to-bundle packagemanifests --image-tag-base quay.io/example/etcd --build-cmd &amp;quot;podman build -f bundle.Dockerfile . -t&amp;quot;

Images for the both the bundles will be built with the following names: quay.io/example/etcd:0.0.1 and quay.io/example/etcd:0.0.2.

&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --build-cmd string        Build command to be run for building images. By default &#39;docker build&#39; is run.
  -h, --help                    help for pkgman-to-bundle
      --image-tag-base string   Base container image name for bundle image tags, ex. my.reg/foo/bar-operator-bundle will become my.reg/foo/bar-operator-bundle:${package-dir-name} for each child directory name in the packagemanifests directory
      --output-dir string       Directory to write bundle to. (default &amp;quot;bundles&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk&#34;&gt;operator-sdk&lt;/a&gt;	 -&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk run</title>
      <link>/docs/cli/operator-sdk_run/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_run/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-run&#34;&gt;operator-sdk run&lt;/h2&gt;
&lt;p&gt;Run an Operator in a variety of environments&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;This command has subcommands that will deploy your Operator with OLM.&lt;/p&gt;
&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help   help for run
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk&#34;&gt;operator-sdk&lt;/a&gt;	 -&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_run_bundle&#34;&gt;operator-sdk run bundle&lt;/a&gt;	 - Deploy an Operator in the bundle format with OLM&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_run_bundle-upgrade&#34;&gt;operator-sdk run bundle-upgrade&lt;/a&gt;	 - Upgrade an Operator previously installed in the bundle format with OLM&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk run bundle</title>
      <link>/docs/cli/operator-sdk_run_bundle/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_run_bundle/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-run-bundle&#34;&gt;operator-sdk run bundle&lt;/h2&gt;
&lt;p&gt;Deploy an Operator in the bundle format with OLM&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;The single argument to this command is a bundle image, with the full registry path specified.
If using a docker.io image, you must specify docker.io(/&amp;lt;namespace&amp;gt;)?/&amp;lt;bundle-image-name&amp;gt;:&amp;lt;tag&amp;gt;.
If the bundle image provided is a SQLite index, it must be pullable by the cluster as SQLite images are pulled from the cluster.
If the bundle image provided is a File-Based Catalog (FBC) index, it will be pulled on the local machine.&lt;/p&gt;
&lt;p&gt;The main purpose of this command is to streamline running the bundle without having to provide an index image with the bundle already included.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;--index-image&lt;/code&gt; flag specifies an index image in which to inject the given bundle. It can be specified to resolve dependencies for a bundle.
This is an optional flag which will default to &lt;code&gt;quay.io/operator-framework/opm:latest&lt;/code&gt;.
The index image provided should &lt;strong&gt;NOT&lt;/strong&gt; already have the bundle. A limitation of the index image flag is that it does not check the upgrade graph
as the annotations for channels are ignored but it is still a useful flag to have to validate the dependencies.
For example: It does not fail fast when the bundle version provided is &amp;lt;= ChannelHead.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk run bundle &amp;lt;bundle-image&amp;gt; [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --ca-secret-name string                     Name of a generic secret containing a PEM root certificate file required to pull bundle images. This secret *must* be in the namespace that this command is configured to run in, and the file *must* be encoded under the key &amp;quot;cert.pem&amp;quot;
      --decompression-image string                image used in an init container in the registry pod to decompress the compressed catalog contents. cat and gzip binaries are expected to exist in the PATH (default &amp;quot;registry.access.redhat.com/ubi9/ubi:9.7&amp;quot;)
  -h, --help                                      help for bundle
      --image-pull-policy string                  image pull policy for the registry pod (default &amp;quot;Always&amp;quot;)
      --index-image string                        index image in which to inject bundle (default &amp;quot;quay.io/operator-framework/opm:latest&amp;quot;)
      --install-mode InstallModeValue             install mode
      --kubeconfig string                         Path to the kubeconfig file to use for CLI requests.
  -n, --namespace string                          If present, namespace scope for this CLI request
      --pull-secret-name string                   Name of image pull secret (&amp;quot;type: kubernetes.io/dockerconfigjson&amp;quot;) required to pull bundle images. This secret *must* be both in the namespace and an imagePullSecret of the service account that this command is configured to run in
      --security-context-config SecurityContext   specifies the security context to use for the catalog pod. allowed: &#39;restricted&#39;, &#39;legacy&#39;. (default legacy)
      --service-account string                    Service account name to bind registry objects to. If unset, the default service account is used. This value does not override the operator&#39;s service account
      --skip-tls                                  skip authentication of image registry TLS certificate when pulling a bundle image in-cluster
      --skip-tls-verify                           skip TLS certificate verification for container image registries while pulling bundles
      --timeout duration                          Duration to wait for the command to complete before failing (default 2m0s)
      --use-http                                  use plain HTTP for container image registries while pulling bundles
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_run&#34;&gt;operator-sdk run&lt;/a&gt;	 - Run an Operator in a variety of environments&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk run bundle-upgrade</title>
      <link>/docs/cli/operator-sdk_run_bundle-upgrade/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_run_bundle-upgrade/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-run-bundle-upgrade&#34;&gt;operator-sdk run bundle-upgrade&lt;/h2&gt;
&lt;p&gt;Upgrade an Operator previously installed in the bundle format with OLM&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;The single argument to this command is a bundle image, with the full registry path specified.
If using a docker.io image, you must specify docker.io(/&amp;lt;namespace&amp;gt;)?/&amp;lt;bundle-image-name&amp;gt;:&amp;lt;tag&amp;gt;.
If the bundle image provided is a SQLite index, it must be pullable by the cluster as SQLite images are pulled from the cluster.
If the bundle image provided is a File-Based Catalog (FBC) index, it will be pulled on the local machine.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk run bundle-upgrade &amp;lt;bundle-image&amp;gt; [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --ca-secret-name string                     Name of a generic secret containing a PEM root certificate file required to pull bundle images. This secret *must* be in the namespace that this command is configured to run in, and the file *must* be encoded under the key &amp;quot;cert.pem&amp;quot;
  -h, --help                                      help for bundle-upgrade
      --image-pull-policy string                  image pull policy for the registry pod (default &amp;quot;Always&amp;quot;)
      --kubeconfig string                         Path to the kubeconfig file to use for CLI requests.
  -n, --namespace string                          If present, namespace scope for this CLI request
      --pull-secret-name string                   Name of image pull secret (&amp;quot;type: kubernetes.io/dockerconfigjson&amp;quot;) required to pull bundle images. This secret *must* be both in the namespace and an imagePullSecret of the service account that this command is configured to run in
      --security-context-config SecurityContext   specifies the security context to use for the catalog pod. allowed: &#39;restricted&#39;, &#39;legacy&#39;. (default legacy)
      --service-account string                    Service account name to bind registry objects to. If unset, the default service account is used. This value does not override the operator&#39;s service account
      --skip-tls                                  skip authentication of image registry TLS certificate when pulling a bundle image in-cluster
      --skip-tls-verify                           skip TLS certificate verification for container image registries while pulling bundles
      --timeout duration                          Duration to wait for the command to complete before failing (default 2m0s)
      --use-http                                  use plain HTTP for container image registries while pulling bundles
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk_run&#34;&gt;operator-sdk run&lt;/a&gt;	 - Run an Operator in a variety of environments&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk scorecard</title>
      <link>/docs/cli/operator-sdk_scorecard/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_scorecard/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-scorecard&#34;&gt;operator-sdk scorecard&lt;/h2&gt;
&lt;p&gt;Runs scorecard&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;Has flags to configure dsl, bundle, and selector. This command takes
one argument, either a bundle image or directory containing manifests and metadata.
If the argument holds an image tag, it must be present remotely.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk scorecard [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -c, --config string            path to scorecard config file
  -h, --help                     help for scorecard
      --kubeconfig string        kubeconfig path
  -L, --list                     Option to enable listing which tests are run
  -n, --namespace string         namespace to run the test images in
  -o, --output string            Output format for results. Valid values: text, json, xunit (default &amp;quot;text&amp;quot;)
      --pod-security string      option to run scorecard with legacy pod security context (default &amp;quot;legacy&amp;quot;)
  -l, --selector string          label selector to determine which tests are run
  -s, --service-account string   Service account to use for tests (default &amp;quot;default&amp;quot;)
  -x, --skip-cleanup             Disable resource cleanup after tests are run
  -b, --storage-image string     Storage image to be used by the Scorecard pod (default &amp;quot;quay.io/operator-framework/scorecard-storage@sha256:a3bfda71281393c7794cabdd39c563fb050d3020fd0b642ea164646bdd39a0e2&amp;quot;)
  -t, --test-output string       Test output directory. (default &amp;quot;test-output&amp;quot;)
  -u, --untar-image string       Untar image to be used by the Scorecard pod (default &amp;quot;quay.io/operator-framework/scorecard-untar@sha256:2e728c5e67a7f4dec0df157a322dd5671212e8ae60f69137463bd4fdfbff8747&amp;quot;)
  -w, --wait-time duration       seconds to wait for tests to complete. Example: 35s (default 30s)
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk&#34;&gt;operator-sdk&lt;/a&gt;	 -&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: operator-sdk version</title>
      <link>/docs/cli/operator-sdk_version/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>/docs/cli/operator-sdk_version/</guid>
      <description>
        
        
        &lt;h2 id=&#34;operator-sdk-version&#34;&gt;operator-sdk version&lt;/h2&gt;
&lt;p&gt;Print the operator-sdk version&lt;/p&gt;
&lt;h3 id=&#34;synopsis&#34;&gt;Synopsis&lt;/h3&gt;
&lt;p&gt;Print the operator-sdk version&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk version [flags]
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;examples&#34;&gt;Examples&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;operator-sdk version
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options&#34;&gt;Options&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;  -h, --help   help for version
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;options-inherited-from-parent-commands&#34;&gt;Options inherited from parent commands&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;      --plugins strings   plugin keys to be used for this subcommand execution
      --verbose           Enable verbose logging
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;see-also&#34;&gt;SEE ALSO&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../operator-sdk&#34;&gt;operator-sdk&lt;/a&gt;	 -&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
  </channel>
</rss>
