kopf
Dependency Injector
Our great sponsors
kopf | Dependency Injector | |
---|---|---|
6 | 7 | |
1,951 | 3,581 | |
- | 1.9% | |
7.8 | 0.0 | |
16 days ago | about 2 months ago | |
Python | Python | |
MIT License | BSD 2-clause NetBSD License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
kopf
- A Kubernetes Operator in Rust
- I wrote a kubernetes operator for “locust”, should I open source it
-
Automate All the Boring Kubernetes Operations with Python
If you're looking for more examples beyond what was shown and referenced above, I recommend exploring other popular tools that make use Python Kubernetes client, such kopf - the library for creating Kubernetes operators. I also find it very useful to take a look at tests of the library itself, as it showcases its intended usage such this client test suite.
-
is it possible to have components of a specific namespace run on specific nodes ?
Depending on how you want to configure your selecting logic, it can be solved by mutating admission webhooks for the pods. For example, in Kopf, the simplest approach would be:
-
Kopf 1.31 now supports admission webhooks. Feedback is welcome!
Hello. Kopf (a framework to write Kubernetes operators in Python) 1.31 is released and has finally got admission webhooks — https://github.com/nolar/kopf/releases/tag/1.31.0. I would appreciate some feedback from experienced operator developers on how easy or hard it is to write webhooks now, and what is missing and makes it inconvenient. The docs: https://kopf.readthedocs.io/en/stable/admission/ For a brief preview, it looks like this:
-
lightkube 0.6.0 - python kubernetes client
Correct, using generic resources with Client.watch should work. In general to create more complex operators I would recommend to check out kopf.
Dependency Injector
-
Java 21 makes me like Java again
Nothing to do with the nature of the language, but with the nature of the program.
If you're writing a few line script, you don't need a DI container. Once your program gets large, it becomes extremely messy without one. It's no surprise projects like [1] exist.
[1] https://github.com/ets-labs/python-dependency-injector
-
Do You Use Singletons?
Totally agree with this. And I’ve found this pattern pairs really well with https://python-dependency-injector.ets-labs.org/
-
Compclasses: prefer composition over inheritance
dependency_injector: https://github.com/ets-labs/python-dependency-injector
-
Loosely coupled Python code with Dependency Injection
As projects continue to grow, its recommended to utilise a dependency injection framework to “inject” these dependencies, such as Dependency Injector, to inject dependency arguments automatically ✨.
-
What is the best practice for injecting configuration into a python application
One approach is to pass this config as a variable to every class it is required, which I dont prefer. Another option is to annotate the config class as singleton and create the config object at every place where I need them. I also came across this library called Dependency_Injector. https://python-dependency-injector.ets-labs.org/ This seems a bit heavy weight for my use case though. I am looking forward to know how other solve this problem
-
Dependency Injection and Python
Dependency Injector
-
Introduction to Dependency Injection in Python
dependency-injector (docs) is python library that provides a framework which enables you to implement DI and IoC in Python.
What are some alternatives?
awx-operator - An Ansible AWX operator for Kubernetes built with Operator SDK and Ansible. 🤖
django-rest-framework - Web APIs for Django. 🎸
fastapi - FastAPI framework, high performance, easy to learn, fast to code, ready for production
kink - Dependency injection container made for Python
fastapi-crudrouter - A dynamic FastAPI router that automatically creates CRUD routes for your models
flask-restful - Simple framework for creating REST APIs
Celery-Kubernetes-Operator - An operator to manage celery clusters on Kubernetes (Work in Progress)
falcon - The no-magic web data plane API and microservices framework for Python developers, with a focus on reliability, correctness, and performance at scale.
flyte - Scalable and flexible workflow orchestration platform that seamlessly unifies data, ML and analytics stacks.
connexion - Connexion is a modern Python web framework that makes spec-first and api-first development easy.
pykorm - A python 🐍 kubernetes ☸️ ORM 🚀. Very useful when writing operators for your CRDs with Kopf.
flask-api - Browsable web APIs for Flask.