This crate is an OpenShift API client for Rust. It contains bindings for the resources and operations in the OpenShift client API, auto-generated from the OpenAPI spec.
This work is based on the wonderful work from Arnavion/k8s-openapi.
It does not contain the Kubernetes APIs directly, this is handled by the k8s_openapi crate. It only
contains the types added by OpenShift (like Route and ImageStream) and references the existing
Kubernetes resources (like Pod and Deployment) from the k8s_openapi crate.
This crates provides mappings for different OpenShift versions. Just like the k8s-openapi crate does for
Kubernetes. When you compile your program, you must decide for which API you want to compile. This is done
by using Rust features. The following table shows
the mappings from OpenShift version to the Rust feature in this crate:
| OpenShift Version | Feature | Kubernetes Version | k8s_openapi Feature |
|---|---|---|---|
| 4.2.x | v4_2 |
1.15.x | v1_15 |
| 4.3.x | v4_3 |
1.16.x | v1_16 |
| 4.4.x | v4_4 |
1.17.x | v1_17 |
| 4.5.x | v4_5 |
1.18.x | v1_18 |
| 4.6.x | v4_6 |
1.19.x | v1_19 |
As each OpenShift version is based on a Kubernetes version, the feature flag for the ks8-openapi crate
is auto-selected, to add the appropriate Kubernetes API.