ksaitoの日記

日々試したことの覚え書き

CRDのコントローラ

githubで公開されているサンプルのコントローラを動かしてみます。

sample-controllerの手順通りです。

sample-controllerのコンパイルと実行

下記のように実行します。

実行するとapi-version(v1alpha1)が見つからないとエラーが出ますが、気にせず進みます。

$ export GOPATH=$(pwd)
$ go get k8s.io/sample-controller
$ cd $GOPATH/src/k8s.io/sample-controller
$ go build -o sample-controller .
$ ./sample-controller --kubeconfig=$KUBECONFIG
E0615 21:03:49.428247    8457 reflector.go:125] k8s.io/sample-controller/pkg/generated/informers/externalversions/factory.go:117: Failed to list *v1alpha1.Foo: the server could not find the requested resource (get foos.samplecontroller.k8s.io)
E0615 21:03:50.430718    8457 reflector.go:125] k8s.io/sample-controller/pkg/generated/informers/externalversions/factory.go:117: Failed to list *v1alpha1.Foo: the server could not find the requested resource (get foos.samplecontroller.k8s.io)
...

CRDをデプロイして、そのリソースを作成します。

$ kubectl apply -f artifacts/examples/crd.yaml 
customresourcedefinition.apiextensions.k8s.io/foos.samplecontroller.k8s.io created
$ kubectl apply -f artifacts/examples/example-foo.yaml 
foo.samplecontroller.k8s.io/example-foo created
$

先程のエラーメッセージは、でなくなります。

下記の通り、デプロイしたリソースからdeploymentが作られます。

$ kubectl get deployments
NAME          READY   UP-TO-DATE   AVAILABLE   AGE
example-foo   1/1     1            1           11s
$

sample-controllerは、どこで動かしたらいいのかな?