Coder Social home page Coder Social logo

openshift / cluster-olm-operator Goto Github PK

View Code? Open in Web Editor NEW
0.0 9.0 20.0 16.36 MB

OpenShift operator that manages the Operator Lifecycle Manager components

License: Apache License 2.0

Makefile 8.47% Dockerfile 2.38% Go 79.67% Starlark 9.48%

cluster-olm-operator's Introduction

cluster-olm-operator

Operator that manages the lifecycle of the Operator Lifecycle Manager (OLM) components.

The repo is for a downstream specific component

It exists as a way for us to facilitate two things:

  1. To turn off and on the feature flags for olm v1 so we could ship it in the openshift payload without it being turned on by default
  2. To handle the clusterstatus resource for the v1 components

Because OCP has an API that's part of the cluster-version-operator, that isn't in plain kubernetes, that tracks the state of all the OCP components, and if you're in the payload you are required to write status to it

cluster-olm-operator's People

Contributors

awgreene avatar bentito avatar dtfranz avatar everettraven avatar grokspawn avatar jianzhangbjz avatar joelanford avatar kevinrizza avatar lalatendumohanty avatar liouk avatar m1kola avatar ncdc avatar openshift-art-build-bot avatar openshift-ci[bot] avatar openshift-merge-bot[bot] avatar openshift-merge-robot avatar tmshort avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cluster-olm-operator's Issues

Improve deployment controller name generation

In #25, I had to keep the namespace of the object out of the controller name to make the controller name generated for the operator controller deployment fit within the character count for finalizer name length

Without namespace, there's a possibility of a component putting a deployment with the same name in two namespaces, which would conflict.

I was hoping to make this somewhat human-friendly, but that seems iffy. A few other options are:

  • Just always use a numeric index
  • Try the friendly name, but if it is too long, fallback to something else.

I'm also wondering what happens if these names change over time what if a previous version of cluster-olm-operator adds some conditions based on these names, then we change the names? I'm not sure anything knows to clean up the old names. This isn't really a new problem, but generating a name seems like it changes things from theoretical problem to likely problem.

Thoughts?

Originally posted by @joelanford in #25 (comment)

StaticResourcesController does not delete static resources when "cluster" olm object is deleted.

Not sure if this is intentional in the StaticResourceController logic, or if I've coded our controller incorrectly, but I am not seeing the resources managed by static resource controllers being deleted when the "cluster" olm object is deleted.

I don't think this is a blocker because:

  1. We're in TechPreview and don't expect the "cluster" olm object to be deleted in the first place
  2. NOT deleting the static resources may be intentional to avoid data loss. Our CRDs are managed by the static resource controllers, so it may actually be desirable to keep those around even when the "cluster" olm object is gone.
  3. Re-creating the "cluster" olm object after a deletion does not seem to cause any problems. The controller finds the existing objects and resumes managing them.

One slightly undesirable thing does happen though. The cluster-olm-operator logs are spammed during resyncs with:

E0626 10:34:38.586824   98752 base_controller.go:268] RukpakStaticResources reconciliation failed: olm.operator.openshift.io "cluster" not found
E0626 10:34:38.586845   98752 base_controller.go:268] CatalogdStaticResources reconciliation failed: olm.operator.openshift.io "cluster" not found
E0626 10:34:38.587920   98752 base_controller.go:268] OperatorControllerStaticResources reconciliation failed: olm.operator.openshift.io "cluster" not found

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.