public interface IClusterApiThe six calls this backend makes of a cluster.
Remarks
⚠ A seam over IKubernetes rather than the interface itself, and for the reason every other backend has one. IKubernetes is the whole generated API — dozens of operation groups, hundreds of methods — and a fake of it is not something anybody writes. Six methods is, and behind them the placement logic is asserted on every push instead of only on the nightly kind leg.
It speaks in the library's own model types. Re-modelling V1Pod would be inventing a second Kubernetes object model to avoid depending on the first, which is the mistake the package exists to prevent.
Methods (7)
Task<string> VersionAsync(CancellationToken cancellation)Asks the API server what it is.
Task<V1Pod> CreatePodAsync(V1Pod pod, string space, CancellationToken cancellation)Creates a pod.
Task<V1Pod?> ReadPodAsync(string name, string space, CancellationToken cancellation)Reads a pod back.
Task DeletePodAsync(string name, string space, TimeSpan grace, CancellationToken cancellation)Deletes a pod.
Task<IReadOnlyList<V1Pod>> ListPodsAsync(string space, string selector, CancellationToken cancellation)Lists the pods carrying a label selector.
Task<V1Node?> ReadNodeAsync(string name, CancellationToken cancellation)Reads a node, for the address a player can actually reach.
IAsyncEnumerable<string> FollowLogAsync(string name, string space, CancellationToken cancellation)Follows a pod's output, a line at a time.
Used by (3)
- ClusterApiVixen.Live.Placement.Kubernetes
- FakeClusterVixen.Live.Placement.Kubernetes.Tests
- KubernetesPlacementVixen.Live.Placement.Kubernetes