skydive icon indicating copy to clipboard operation
skydive copied to clipboard

Create OpenShift operator

Open lebauce opened this issue 5 years ago • 7 comments

lebauce avatar May 16 '19 08:05 lebauce

The Operator can be added in 3 phases:

  • helm operator (based on https://github.com/skydive-project/skydive/pull/1963)
  • ansible operator
  • go operator

hunchback avatar Aug 27 '19 13:08 hunchback

I finally found time to convert the HELM charts to a HELM based operator. I created a directory called operator under the contrib folder. I will create a PR shortly. One question. Do you want me to build a docker image and push it to dockerhub to live with the other skydive images out there?

alericks21 avatar Sep 24 '19 18:09 alericks21

Based on priority I will not have time to get the operator into operatorhub.io. There are instructions here if someone wants to pick up that task

https://operatorhub.io/contribute

Also there is good information here that the team has harvested when learning about operators

https://playbook.cloudpaklab.ibm.com/operator-certification/

alericks21 avatar Sep 24 '19 18:09 alericks21

I finally found time to convert the HELM charts to a HELM based operator. I created a directory called operator under the contrib folder. I will create a PR shortly. One question. Do you want me to build a docker image and push it to dockerhub to live with the other skydive images out there?

i would be happy to see current PR and based on that discuss changes ..

hunchback avatar Sep 25 '19 05:09 hunchback

I tried to push to the repo but I get the following error:

remote: Permission to skydive-project/skydive.git denied to alericks21.

If you could give the id permission I can push or I could zip up the project and email it to you.

Thoughts?

alericks21 avatar Sep 30 '19 18:09 alericks21

@alericks21 You need to fork the Github Skydive project by clicking on "Fork" button on https://github.com/skydive-project/skydive After that, you should be able to do :

git remote add alericks21 [email protected]:alericks21/skydive.git git push alericks21 [name of your branch]

The output of the git push command should return an URL to create a Pull Request.

You also need to upload your SSH public key on your Github account

lebauce avatar Oct 01 '19 09:10 lebauce

Pushed

remote: Resolving deltas: 100% (3/3), completed with 2 local objects. remote: remote: Create a pull request for 'skydiveoperator' on GitHub by visiting: remote: https://github.com/alericks21/skydive/pull/new/skydiveoperator remote: To https://github.com/alericks21/skydive.git

  • [new branch] skydiveoperator -> skydiveoperator Branch 'skydiveoperator' set up to track remote branch 'skydiveoperator' from 'origin'.

https://github.com/alericks21/skydive

You can test the operator by either logging into a cluster and do a: "operator-sdk up local"

or it can actually be deployed to a cluster:

Setup Service Account

$ kubectl create -f deploy/service_account.yaml

Setup RBAC

$ kubectl create -f deploy/role.yaml $ kubectl create -f deploy/role_binding.yaml

Setup the CRD

$ kubectl create -f deploy/crds/charts_v1alpha1_skydive_crd.yaml

Deploy the app-operator

$ kubectl create -f deploy/operator.yaml

Create an AppService CR

The default controller will watch for AppService objects and create a pod for each CR

$ kubectl create -f deploy/crds/charts_v1alpha1_skydive_cr.yaml

alericks21 avatar Oct 01 '19 17:10 alericks21