awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
kubernetes avatar

kubernetes/client-go

0
View on GitHub↗
9,837 stars·3,030 forks·Go·Apache-2.0·26 views

Client Go

This project is a Go language library that provides a programmatic interface for interacting with the Kubernetes API server. It serves as a client for managing cluster resources, offering both typed interfaces for compile-time safety and dynamic interfaces for unstructured data and custom resource management.

The library includes a controller framework designed for building event-driven automation. This framework utilizes informers to maintain local resource caches and rate-limited work queues to decouple event detection from state reconciliation. High availability is supported through a leader election tool that uses shared lease objects to ensure single-writer exclusivity.

Beyond core API interaction, the project covers secure authentication via internal service tokens and pluggable external credential providers. It also provides utilities for server-side apply functionality, API capability discovery, and tools for mocking API responses during testing.

Features

  • Kubernetes API Clients - Provides the primary Go library for interacting with Kubernetes control planes via secure API clients.
  • Kubernetes Controllers - Provides a framework for building event-driven controllers that synchronize cluster state via reconciliation loops.
  • Event Distribution Caches - Distributes resource change events to multiple handlers via a centralized cache to reduce API server load.
  • Resource Mirrors - Maintains a local mirrored state of server resources by combining initial snapshots with continuous watch streams.
  • Informer Synchronization - Combines initial snapshots with a continuous stream of changes to maintain a local cache of resources.
  • Custom Resource Definitions - Defines custom resource types and implements controllers to manage application-specific state.
  • Kubernetes Operations Automation - Enables programmatic management of cluster resources to automate infrastructure and application lifecycles.
  • Local Resource Caches - Mirrors server-side resources into local memory to enable high-performance cluster state queries.
  • Cluster State Caching - Caches cluster objects locally to provide fast synchronization mechanisms for building efficient controllers.
  • Reconciliation Queues - Decouples event detection from reconciliation using object queues with retry logic and throughput throttling.
  • Type-Safe API Clients - Executes requests against the server using a typed clientset for compile-time safety.
  • Unstructured API Clients - Accesses arbitrary API resources without compile-time types by using generic maps to represent server objects.
  • Distributed Leader Election - Coordinates high availability using distributed locks on shared objects to ensure single-writer exclusivity.
  • Leader Election - Provides leader election tools using shared lease objects to ensure high availability and prevent concurrent writes.
  • Coordination Tools - Implements coordination mechanisms using shared lease objects to ensure only one active process performs work.
  • Remote Cluster Access - Enables authentication and communication with clusters from environments outside the cluster.
  • Server-Side Apply Operations - Constructs declarative patches using type-safe builders for collaborative object management.
  • Reconciliation Queues - Implements rate-limited work queues to decouple resource event detection from state reconciliation.
  • Authentication Providers - Resolves identity tokens through a registry of external plugins to support diverse credential sources.
  • Externalized Credential Loaders - Extracts authentication tokens from external providers to gain authorized access to the server.
  • External Identity Provider Integration - Verifies user identities through external credential sources using plugins to secure connections.
  • Developer Workspaces - Official Go client library for Kubernetes.

Star history

Star history chart for kubernetes/client-goStar history chart for kubernetes/client-go

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does kubernetes/client-go do?

This project is a Go language library that provides a programmatic interface for interacting with the Kubernetes API server. It serves as a client for managing cluster resources, offering both typed interfaces for compile-time safety and dynamic interfaces for unstructured data and custom resource management.

What are the main features of kubernetes/client-go?

The main features of kubernetes/client-go are: Kubernetes API Clients, Kubernetes Controllers, Event Distribution Caches, Resource Mirrors, Informer Synchronization, Custom Resource Definitions, Kubernetes Operations Automation, Local Resource Caches.

Which projects share features with kubernetes/client-go?

Projects with overlapping indexed features include: kube-rs/kube — Kube-rs is a Rust client library and runtime for interacting with the Kubernetes API server. It provides a type-safe… operator-framework/operator-sdk — The Operator SDK is a framework for building, packaging, and managing custom controllers that extend the Kubernetes… kubernetes-client/java — This is a Java client library for interacting with the Kubernetes API server. It provides a programmatic interface and… kubernetes-sigs/controller-runtime — This project provides a framework for building Kubernetes operators and custom controllers. It offers a set of… kubernetes/sample-controller — Sample Controller is a reference implementation and developer toolkit for building custom controllers and operators to… kubernetes-sigs/kubebuilder — Kubebuilder is a framework and set of scaffolding tools used to build Kubernetes APIs and controllers. It functions as…

Projects sharing features with Client Go

These projects share indexed features with Client Go. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • kube-rs/kubekube-rs avatar

    kube-rs/kube

    3,747View on GitHub↗

    Kube-rs is a Rust client library and runtime for interacting with the Kubernetes API server. It provides a type-safe interface for managing cluster resources and state, including a toolkit for defining custom resource definitions and a framework for building admission webhooks to validate or mutate API requests. The project distinguishes itself through a dedicated controller runtime that implements event-driven reconciliation loops to align actual cluster state with desired configurations. It utilizes a streaming system to monitor resource changes and synchronize remote states into a local qu

    Rustclientkubernetesruntime
    View on GitHub↗3,747
  • operator-framework/operator-sdkoperator-framework avatar

    operator-framework/operator-sdk

    7,658View on GitHub↗

    The Operator SDK is a framework for building, packaging, and managing custom controllers that extend the Kubernetes API. It serves as a toolset for defining new API types and implementing reconcile loops to automate the lifecycles of complex applications. The project provides specialized support for creating operators based on Helm charts or Ansible playbooks, allowing users to maintain a desired cluster state using existing automation tools. It includes a dedicated system for packaging controllers into standardized container image bundles for distribution via the Operator Lifecycle Manager.

    Gokubernetesoperatorsdk
    View on GitHub↗7,658
  • kubernetes-client/javakubernetes-client avatar

    kubernetes-client/java

    3,987View on GitHub↗

    This is a Java client library for interacting with the Kubernetes API server. It provides a programmatic interface and a set of typed models to manage cluster resources, orchestrate state reconciliation, and administer pods and namespaces within a Kubernetes environment. The library enables the development of custom controllers by providing frameworks for implementing automated control loops that reconcile the actual state of resources with a desired target state. It supports the generation of strongly-typed Java classes from OpenAPI specifications and custom resource definitions to ensure ty

    Java
    View on GitHub↗3,987
  • kubernetes-sigs/controller-runtimekubernetes-sigs avatar

    kubernetes-sigs/controller-runtime

    2,917View on GitHub↗

    This project provides a framework for building Kubernetes operators and custom controllers. It offers a set of libraries designed to manage the lifecycle of cluster resources, enabling developers to synchronize the actual state of a cluster with a desired configuration through event-driven reconciliation loops. The framework distinguishes itself by providing a manager-orchestrated environment that coordinates multiple controllers and webhooks within a single process. It includes built-in support for optimistic concurrency control to prevent update conflicts and utilizes in-memory informer cac

    Gok8s-sig-api-machinery
    View on GitHub↗2,917
  • Compare all 30 related projects→