Kubernetes API Interaction

This is the core of the project. Understanding how the Python client interacts with the Kubernetes API is crucial for interacting with Kubernetes resources. This includes:

Client

The structure of the CoreV1Api and other API client objects.

Models

The Python classes representing Kubernetes resources (Pods, Deployments, Services, etc.)

Calls

How to interact with the API to create, update, delete, and retrieve resources.

Configuration and Authentication

How to configure the client to connect to a Kubernetes cluster and authenticate with it. This involves: KubeConfig: Understanding how to load configurations from kubeconfig files.

Methods

Different ways to authenticate (using service accounts, token files, etc.)

Client Version Compatibility

Understanding the versioning scheme and how the client maps to different versions of Kubernetes. This includes:

Matrix

Understanding which client versions support which Kubernetes versions.

Policy

The support policy for different versions of the client.

Dynamic Client

The dynamic client allows you to interact with any API resource, even those that are not explicitly defined in the static client.

Discovery

How the dynamic client discovers API resources.

API Calls

How to make calls to dynamically discovered API resources.

Resource Management

The client provides functionality for managing Kubernetes resources (Pods, Deployments, Services, etc.).

Creation

How to create new resources.

Update

How to update existing resources.

Deletion

How to delete resources.

Listing

How to retrieve lists of resources.

Watch API

The client supports the Kubernetes Watch API, which allows you to monitor changes to resources in real-time.

Events

Understanding the different types of watch events (ADDED, DELETED, MODIFIED).

Handling

How to stream watch events using the watch module.

Stream API

The client provides a mechanism to interact with streaming API endpoints, such as the exec and attach endpoints.