Comments (3)
Quick-check results:
It might look like a good idea to use CustomObjectsApi()
for the built-in resources too, e.g. @kopf.on.event('', 'v1', 'pods')
— as an expected semantics. Sadly so, the resulting URLs are different:
Built-in V1 pods URL: /api/v1/namespaces/default/pods
Via custom resources: /apis//v1/namespaces/default/pods
First of all, the /api
vs /apis
is a problem, which leads to "404 Not Found".
Second, the double-slash //
is a problem, it also returns "404 Not Found" (event with /api/
).
When both of these are hacked, it works as expected.
The URL parts are quoted, so it is impossible to do anything like @kopf.on.event('../api', 'v1', 'pods')
, as the resulting URL becomes /apis/..%2Fapi/v1/namespaces/default/pods
.
Which means, there is no easy hack in Kopf itself to get to the built-in resources with the official client with all the hard-coded URLs. Runtime monkey-patching of the client library might be a bad idea for the stability of the Kopf-based operators that use this library.
So, the choice is either to map every known builtin resource to proper classes&methods, which means making Kopf into a Kubernetes client library (which is not the framework's mission), or using another Kubernetes client with dynamic mapping of any resources, builtin and custom, via the same interface.
from kopf.
This is actually solved in #15 as a side-effect (but needs to be merged first).
from kopf.
@nolar is there an example of watching a pod under a parent crd? I noticed you sketched ideas in several issues, but I'm not sure which you ended up on.
from kopf.
Related Issues (20)
- Force-kill the operator from inside if stuck at exiting HOT 1
- Resource grows too big with multiple operators for same resource HOT 5
- Watch for changes in array items.
- Resources filtered out in event handlers still get annotated by Kopf HOT 1
- Field handler is trigger even if the field does not exist in the resource at the time. HOT 2
- Question: run-time registration of handlers? HOT 2
- Need advice on the way to achieve service monitoring using a daemon HOT 3
- Is there any real world use of kopf,like rook/ceph? HOT 3
- Root task 'watcher of kopfexamples.zalando.org' is failed: 403, message='Forbidden' - EKS HOT 2
- Can't apply turtorial crd.yaml example,The CustomResourceDefinition "ephemeralvolumeclaims.zalando.org" is invalid HOT 1
- Creating a filter based on metadata.ownerReferences.kind == Statefulset HOT 1
- Subhandler states are not cleared at the end of handling cycle HOT 3
- All handlers succeeded for creation despite raising kopf.HandlerFatalError HOT 3
- Docs use wrong name for kopf.AnnotationsDiffBaseStorage HOT 1
- @kopf.timer continues to run after CR is deleted HOT 2
- client_timeout on watch results in a fatal error HOT 1
- AttributeError: 'NoneType' object has no attribute 'loader' HOT 1
- Reload / Restart all Kopf handlers when a configmap changes.
- Dedicated channel for asking questions regarding kopf usage?
- Exceptions for kopf on event for network connectivity delayed / issues
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kopf.