
Crossplane
The Cloud Native Control Plane
- 6
- Projects
- 3
- Years active
- 1
- In 2024 T2
Projects
62024
1 projectTerm 2 · Jun-Aug · 1 project
Make Crossplane Easy - Improving the Developer Experience
LFX Mentorship · Listed in the official cohort
Crossplane is in use at scale in many production environments, but we get often get feedback that there are many obstacles to learn Crossplane and get to a successfully built production-ready control plane. A major reason for this learning curve is the lack of supporting tools and experiences on top of core Crossplane that could accelerate the community’s attempts to successfully build their platforms. These higher level experiences have recently become a focus for the project and we want to keep delivering awesome experiences that make Crossplane easier to use.
- Go
- Kubernetes
- Crossplane
- CLI tools
- passion for DevEx
2022
2 projectsTerm 0 · 2022 Summer (Jun-Aug) · 2 projects
Document and add automated testing for pulling packages from private registries
LFX Mentorship · Listed in the official cohort
Crossplane supports pulling packages from private registries through a variety of mechanisms, including IRSA, Workload Identity, and packagePullSecrets. There are a wide variety of environments in which a user is pulling a private package, which can lead to confusion about which to use, the precedence with which each is invoked, etc. This can lead to issues such as where I suspect that we are resolving to Application Default Credentials, when we actually want to be using the provided packagePullSecret.
- Go
Report breaking changes in CustomResourceDefinition schemas for Pull Requests
LFX Mentorship · Listed in the official cohort
As Crossplane ecosystem expands, it's not unusual anymore to have 100s of CustomResourceDefinitions in a provider. A big part of this is thanks to code generation tooling we've been building. However, the changes we make with those tools may result in thousands of lines of changes and it's hard to tell whether there is a breaking change in given CustomResourceDefinition in those PRs. Today, we're checking manually to see if there is a breaking change and mark the PR as such so that the notice ends up in the release notes. We can have a GH Action that processes diff in package/crds folder and report breaking changes in the OpenAPI v3 Schemas of CRDs. It'd comment on the PR and automatically label it with breaking-change. This tool would be useful for the whole Kubernetes community that works to extend Kubernetes with CustomResourceDefinitions. We should document the variety of ways to pull packages from popular private registries, and also have testing in place to ensure we don't break any of the mechanisms from release to release.
- Go
2021
3 projectsTerm 0 · 2021 Spring (Mar-May) · 3 projects
Automated end-to-end testing infrastructure
LFX Mentorship · Listed in the official cohort
Crossplane provides a broad library of Kubernetes custom resources that let you orchestrate systems external to Kubernetes. These include AWS S3 buckets, GCP CloudSQL instances, Azure Cosmos tables, plain old SQL databases, Helm releases, and Dominos pizzas. We call these 'managed resources'. Crossplane's goal is to allow platform teams to build their own custom resources that are in turn composed of these primitives without needing to write Kubernetes controllers in Go. Crossplane currently has extensive unit testing, but not much in the way of automated integration/e2e tests. We have a very broad surface area to test (we have around a hundred controllers that interact with cloud providers) and would like to establish some integration testing best practices so that the community can easily contribute integration tests when they work on Crossplane.
- Go
- testing best practices.
Crisscross - Write controllers in your language of choice
LFX Mentorship · Listed in the official cohort
Crossplane provides a broad library of Kubernetes custom resources that let you orchestrate systems external to Kubernetes. These include AWS S3 buckets, GCP CloudSQL instances, Azure Cosmos tables, plain old SQL databases, Helm releases, and Dominos pizzas. We call these 'managed resources'. Crossplane's goal is to allow platform teams to build their own custom resources that are in turn composed of these primitives without needing to write Kubernetes controllers in Go. Crisscross is an experimental project that lets folks add new managed resources to Crossplane without writing Go code. We would love help fleshing out the Crisscross proof of concept. This will likely take the form of writing a web service with endpoints that accept CRUD verbs from Crossplane and uses them to orchstrate an external system - for example CRUDing a DigitalOcean Droplet or an OpenStack Server. Familiarity with Go is a bonus (Crisscross itself is written in Go), but not necessary (Crisscross managed resources can be written in any language).
- Programming REST APIs in any language. Some Go experience
- or interest in learning.
Import cloud resources into Crossplane
LFX Mentorship · Listed in the official cohort
Crossplane provides a broad library of Kubernetes custom resources that let you orchestrate systems external to Kubernetes. These include AWS S3 buckets, GCP CloudSQL instances, Azure Cosmos tables, plain old SQL databases, Helm releases, and Dominos pizzas. We call these 'managed resources'. Crossplane's goal is to allow platform teams to build their own custom resources that are in turn composed of these primitives without needing to write Kubernetes controllers in Go. Crossplane currently supports 'importing' your existing cloud infrastructure (databases etc) into Crossplane management, but doing so is onerous. You need to write Crossplane YAML that exactly matches the current state of your infrastructure. Ideally Crossplane would provide an import tool that our users could point at an existing RDS instance (for example) in order to generate the Crossplane YAML that represented that instance.
- Ideally Go programming
- though we'd consider prototyping this tool in another language.