controller-runtime
ginkgo
controller-runtime | ginkgo | |
---|---|---|
53 | 13 | |
2,305 | 7,931 | |
1.0% | - | |
9.4 | 8.8 | |
6 days ago | 5 days ago | |
Go | Go | |
Apache License 2.0 | MIT 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.
controller-runtime
-
AWS open source newsletter, #176
operatorpkg is a set of packages used to develop Kubernetes operators at AWS. It contains opinions on top of existing projects like https://github.com/kubernetes/apimachinery and https://github.com/kubernetes-sigs/controller-runtime. In many cases, we plan to mature packages in operatorpkg before commiting them upstream.
- New Release: controller-runtime v0.16.3
-
In CRDs how to set defaults for resources type?
however, at least in envtest this returns
- New Release: controller-runtime v0.15.0
- New Release: controller-runtime v0.15.0-beta.0
- New Release: controller-runtime v0.15.0-alpha.1
-
My CNCF LFX Mentorship Spring 2023 Project at Kubescape
(rejected) kubernetes-sigs/controller-runtime #2266 š Support get config inside snap with SNAP_REAL_HOME
- New Release: controller-runtime v0.15.0-alpha.0
-
How to get a GroupVersionResource from a GroupVersionKind?
Check out https://github.com/kubernetes-sigs/controller-runtime/blob/main/pkg/client/example_test.go. It really is that easy :-).
-
Debugging concurrency: Adding millisecond sleeps randomly?
I am using Kubernetes controller-runtime envtest.
ginkgo
-
Writing tests for a Kubernetes Operator
Ginkgo: a testing framework based on the concept of ā"Behavior Driven Development" (BDD)
-
We moved our Cloud operations to a Kubernetes Operator
We were also able to leverage Ginkgo's parallel testing runtime to run our integration tests on multiple concurrent processes. This provided multiple benefits: we could run our entire integration test suite in under 10 minutes and also reuse the same suite to load test the operator in a production-like environment. Using these tests, we were able to identify hot spots in the code that needed further optimization and experimented with ways to save API calls to ease the load on our own Kubernetes API server while also staying under various AWS rate limits. It was only after running these tests over and over again that I felt confident enough to deploy the operator to our dev and prod clusters.
-
Recommendations for Learning Test-Driven Development (TDD) in Go?
A bit off-topic, but i really like the ginkgo BDD framework
-
Start test names with āshouldā (2020)
You obviously are not familiar with the third circle of golang continuous integration hell that is ginkgo+gomega:
https://onsi.github.io/ginkgo/#adding-specs-to-a-suite
Itās actually worse than that example suggests. Stuff like Expect(ātype safetyā).ShouldBe(GreaterThan(13)) throws runtime errors.
The semantics of parallel test runs werenāt defined anywhere the last time I checked.
Anyway, youāll be thinking back fondly to the days of TestShouldReplaceChildrenWhenUpdatingInstance because now you need to write nested function calls like:
Context(āinstancesā, func ā¦)
Describe(āthat are being updatedā, ā¦)
Expect(āshould replace childrenā, ā¦)
And to invoke that from the command line, you need to write a regex against whatever undocumented and unprinted string it internally concatenates together to uniquely describe the test.
Also, they dump color codes to stdout without checking that they are writing to a terminal, so there will be line noise all over whatever automated test logs you produce, or if you pipe stdout to a file.
-
ginkgo integration with jira/elasticsearch/webex/slack
If you are using Ginkgo for your e2e, this library might of help.
-
Testing frameworks, which to use?
https://onsi.github.io/ginkgo/ offers a simple way to create tables with different scenarios useful to generate different test cases based on a file like a yml without to need to develop useless code. Maybe at start seems to be a little verbose but depends how you design the test case.
-
Testza - A modern test framework with pretty output
What are peopleās thoughts on testing frameworks? Iāve heard that most devs only use the testing package in the standard library and the testify package for assertionsā I assume this is because Go is meant to be lightweight and scalable, and adding external dependencies basically goes against that. But Iāve also seen devs use packages like ginkgo to make tests more structured and readable. What do you guys think?
-
What are your favorite packages to use?
Ginkgo Behavioural test framework
-
Air ā Live reload when developing with Go
If you write your tests with Ginkgo [0] its CLI can do this for you. It also has nice facilities to quickly disable a test or portion of a test by pretending an X to the test function name, or to focus a test (only run that test) by prepending an F. Itās pretty nice.
[0]: https://onsi.github.io/ginkgo/
-
Half a million lines of Go at The Khan Academy
The BDD testing framework Ginko [1] has some "weird" / unidiomatic patterns, yet it is very popular
https://github.com/onsi/ginkgo
What are some alternatives?
client-go - Go client for Kubernetes.
Testify - A toolkit with common assertions and mocks that plays nicely with the standard library
controller-tools - Tools to use with the controller-runtime libraries
GoConvey - Go testing in the browser. Integrates with `go test`. Write behavioral tests in Go.
operator-sdk - SDK for building Kubernetes applications. Provides high level APIs, useful abstractions, and project scaffolding.
godog - Cucumber for golang
yaml - A better way to marshal and unmarshal YAML in Golang
goblin - Minimal and Beautiful Go testing framework
golang-design-pattern - č®¾č®”ęØ”å¼ Golangå®ē°ļ¼ćē ē£Øč®¾č®”ęØ”å¼ćčƻ书ē¬č®°
httpexpect - End-to-end HTTP and REST API testing for Go.
sample-controller-kubebuilder - This is Sample Controller(Foo Controller) developed by Kubebuilder
gocheck - Rich testing for the Go language