1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-31 03:45:17 +00:00

NK9: Updated policy crd and added minimal policy sample to check controller functions

This commit is contained in:
belyshevdenis 2019-02-12 19:01:25 +02:00
parent e96562a1cf
commit ddf3e4c278
4 changed files with 24 additions and 12 deletions

View file

@ -49,13 +49,12 @@ func NewController(masterURL, kubeconfigPath string) (*Controller, error) {
workqueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "Policies"), workqueue: workqueue.NewNamedRateLimitingQueue(workqueue.DefaultControllerRateLimiter(), "Policies"),
} }
// Set up an event handler for when Foo resources change
policyInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{ policyInformer.Informer().AddEventHandler(cache.ResourceEventHandlerFuncs{
AddFunc: controller.enqueueFoo, AddFunc: controller.enqueue,
UpdateFunc: func(old, new interface{}) { UpdateFunc: func(old, new interface{}) {
controller.enqueueFoo(new) controller.enqueue(new)
}, },
DeleteFunc: controller.enqueueFoo, DeleteFunc: controller.enqueue,
}) })
return controller, nil return controller, nil
@ -69,7 +68,7 @@ func (c *Controller) Run(threadiness int) error {
defer c.workqueue.ShutDown() defer c.workqueue.ShutDown()
// Start the informer factories to begin populating the informer caches // Start the informer factories to begin populating the informer caches
fmt.Println("Starting Foo controller") fmt.Println("Starting controller")
if ok := cache.WaitForCacheSync(stopCh, c.policiesSynced); !ok { if ok := cache.WaitForCacheSync(stopCh, c.policiesSynced); !ok {
return fmt.Errorf("failed to wait for caches to sync") return fmt.Errorf("failed to wait for caches to sync")
@ -88,12 +87,12 @@ func (c *Controller) Run(threadiness int) error {
func (c *Controller) runWorker() { func (c *Controller) runWorker() {
for { for {
time.Sleep(5 * time.Second) time.Sleep(25 * time.Second)
fmt.Println("I will wait here for 5 secs...") fmt.Println("I will wait here for 25 secs...")
} }
} }
func (*Controller) enqueueFoo(interface{}) { func (*Controller) enqueue(interface{}) {
fmt.Println("I have found changes on Policy Resource") fmt.Println("I have found changes on Policy Resource")
} }

View file

@ -1,9 +1,14 @@
apiVersion: apiextensions.k8s.io/v1beta1 apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition kind: CustomResourceDefinition
metadata: metadata:
name: policies.policy.nirmata.io name: policies.nirmata.io
spec: spec:
group: policy.nirmata.io group: nirmata.io
versions:
- name: v1alpha1
served: true
storage: true
scope: Namespaced
names: names:
kind: Policy kind: Policy
plural: policies plural: policies

7
crd/sample-policy.yaml Normal file
View file

@ -0,0 +1,7 @@
apiVersion: nirmata.io/v1alpha1
kind: Policy
metadata:
name: hello-policy
spec:
policySpec: 'hi'
image: hello-policy-image

View file

@ -18,12 +18,13 @@ func main() {
controller, err := controller.NewController(masterURL, kubeconfig) controller, err := controller.NewController(masterURL, kubeconfig)
if err != nil { if err != nil {
fmt.Println("Error running Controller!") fmt.Printf("Error creating Controller! Error: %s\n", err)
return
} }
err = controller.Run(runtime.NumCPU()) err = controller.Run(runtime.NumCPU())
if err != nil { if err != nil {
fmt.Println("Error running Controller!") fmt.Printf("Error running Controller! Error: %s\n", err)
} }
} }