Giter VIP home page Giter VIP logo

governance-policy-framework-addon's Introduction

Governance Policy Framework Addon KinD testsLicense

Description

Secret Sync Controller

The secret sync controller runs on managed clusters and syncs the policy-encryption-key Secret from the Hub to the managed cluster. This controller requires access to get, create, update, and delete Secret objects in the managed cluster namespace. Since the managed cluster namespace is not known at build time, the configuration in deploy/operator.yaml grants this access cluster wide. In a production environment, limit this to just the managed cluster namespace.

Spec Sync Controller

The spec sync controller runs on managed clusters, updating local Policy specs to match Policies in the cluster's namespace on the hub cluster.

The controller watches for changes to Policies in the cluster's namespace on the hub cluster to trigger a reconcile. Every reconcile creates/updates/deletes replicated policies on the managed cluster to match the spec from the hub cluster.

Status Sync Controller

The status sync controller runs on managed clusters, updating Policy statuses on both the hub and (local) managed clusters, based on events and changes in the managed cluster.

This controller watches for the following changes to trigger a reconcile:

  1. policy changes in the watched cluster namespace on the managed cluster
  2. events on policies in the watched cluster namespace on the managed cluster

Every reconcile does the following things:

  1. Creates/updates the policy status on the hub and managed cluster in cluster namespace

Template Sync Controller

The template sync controller runs on managed clusters and updates objects defined in the templates of Policies in the cluster namespace.

This controller watches for changes on Policies in the cluster namespace on the managed cluster to trigger a reconcile. On each reconcile, it creates/updates/deletes objects defined in the spec.policy-templates of those Policies.

Getting started

For documentation and installation guidance, see the Open Cluster Management documentation.

Go to the Contributing guide to learn how to get involved.

Check the Security guide if you need to report a security issue.

Build and deploy locally

You will need kind installed.

make kind-bootstrap-cluster-dev
make build-images
make kind-deploy-controller-dev

Running tests

make test-dependencies
make test

make e2e-dependencies
make e2e-test

Clean up

make kind-delete-cluster

deploy/operator.yaml

The deploy/operator.yaml file is generated via Kustomize. The deploy/rbac directory of Kustomize files is managed by the operator-sdk and Kubebuilder using markers. After updating the markers or any of the Kustomize files, you may regenerate deploy/operator.yaml by running make generate-operator-yaml.

References

  • The governance-policy-framework-addon is part of the open-cluster-management community. For more information, visit: open-cluster-management.io.

governance-policy-framework-addon's People

Contributors

dhaiducek avatar mprahl avatar justinkuli avatar gparvin avatar willkutler avatar zyjjay avatar chunxialexluo avatar mikeshng avatar yiraechristinekim avatar jeffeyl avatar clyang82 avatar nobody4t avatar openshift-merge-robot avatar ckandag avatar pugangxa avatar gurnben avatar xauthulei avatar yanmxa avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.