文章目錄
- 1. operator-sdk build
- 2. operator-sdk completion
- 3. operator-sdk print-deps
- 4. operator-sdk generate
- 5. operator-sdk olm-catalog gen-csv
- 6. operator-sdk new
- 7. operator-sdk add
- 7.1 Example add api output
- 7.2 Example add controller output
- 7.3 Example add crd output
- 8. operator-sdk up local
##格式
$ operator-sdk [] [] []
1. operator-sdk build
指令編譯代碼并生成可執行檔案
operator-sdk build quay.io/example/operator:v0.0.1
2. operator-sdk completion
生成bash補全
operator-sdk completion
3. operator-sdk print-deps
指令顯示操作員所需的最新Golang軟體包和版本。預設情況下,它以列格式列印
operator-sdk print-deps --as-file
4. operator-sdk generate
指令将調用特定的生成器以根據需要生成代碼
5. operator-sdk olm-catalog gen-csv
子指令将叢集服務版本(CSV)清單和可選的自定義資源定義(CRD)檔案寫入
deploy/olm-catalog/<operator_name>/<csv_version>
$ operator-sdk olm-catalog gen-csv --csv-version 0.1.0 --update-crds
INFO[0000] Generating CSV manifest version 0.1.0
INFO[0000] Fill in the following required fields in file deploy/olm-catalog/operator-name/0.1.0/operator-name.v0.1.0.clusterserviceversion.yaml:
spec.keywords
spec.maintainers
spec.provider
spec.labels
INFO[0000] Created deploy/olm-catalog/operator-name/0.1.0/operator-name.v0.1.0.clusterserviceversion.yaml
6. operator-sdk new
$ mkdir $GOPATH/src/github.com/example.com/
$ cd $GOPATH/src/github.com/example.com/
$ operator-sdk new app-operator
$ operator-sdk new app-operator \
--type=ansible \
--api-version=app.example.com/v1alpha1 \
--kind=AppService
7. operator-sdk add
指令将控制器或資源添加到項目中。該指令必須從Operator項目的根目錄運作。
7.1 Example add api output
$ operator-sdk add api --api-version app.example.com/v1alpha1 --kind AppService
Create pkg/apis/app/v1alpha1/appservice_types.go
Create pkg/apis/addtoscheme_app_v1alpha1.go
Create pkg/apis/app/v1alpha1/register.go
Create pkg/apis/app/v1alpha1/doc.go
Create deploy/crds/app_v1alpha1_appservice_cr.yaml
Create deploy/crds/app_v1alpha1_appservice_crd.yaml
Running code-generation for Custom Resource (CR) group versions: [app:v1alpha1]
Generating deepcopy funcs
$ tree pkg/apis
pkg/apis/
├── addtoscheme_app_appservice.go
├── apis.go
└── app
└── v1alpha1
├── doc.go
├── register.go
├── types.go
7.2 Example add controller output
$ operator-sdk add controller --api-version app.example.com/v1alpha1 --kind AppService
Create pkg/controller/appservice/appservice_controller.go
Create pkg/controller/add_appservice.go
$ tree pkg/controller
pkg/controller/
├── add_appservice.go
├── appservice
│ └── appservice_controller.go
└── controller.go
7.3 Example add crd output
$ operator-sdk add crd --api-version app.example.com/v1alpha1 --kind AppService
Generating Custom Resource Definition (CRD) files
Create deploy/crds/app_v1alpha1_appservice_crd.yaml
Create deploy/crds/app_v1alpha1_appservice_cr.yaml
8. operator-sdk up local
$ operator-sdk up local \
--kubeconfig "mycluster.kubecfg" \
--namespace "default" \
--operator-flags "--flag1 value1 --flag2=value2"
$ operator-sdk up local --operator-flags "--resync-interval 10"
$ operator-sdk up local --namespace "testing"