{"id":15638355,"url":"https://github.com/manusa/yakc","last_synced_at":"2025-04-11T07:50:03.158Z","repository":{"id":38990389,"uuid":"252927434","full_name":"manusa/yakc","owner":"manusa","description":"Yet another Kubernetes Client - Lower level Java REST client for Kubernetes API","archived":false,"fork":false,"pushed_at":"2024-05-07T09:02:25.000Z","size":9199,"stargazers_count":45,"open_issues_count":25,"forks_count":11,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-25T05:30:56.537Z","etag":null,"topics":["kubernetes","kubernetes-client","reactive","reactivex","rest","rxjava"],"latest_commit_sha":null,"homepage":"https://blog.marcnuri.com/tag/yakc/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/manusa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-04T06:37:03.000Z","updated_at":"2025-01-10T05:46:14.000Z","dependencies_parsed_at":"2024-05-07T09:53:39.036Z","dependency_job_id":null,"html_url":"https://github.com/manusa/yakc","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manusa%2Fyakc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manusa%2Fyakc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manusa%2Fyakc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/manusa%2Fyakc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/manusa","download_url":"https://codeload.github.com/manusa/yakc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248359777,"owners_count":21090588,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["kubernetes","kubernetes-client","reactive","reactivex","rest","rxjava"],"created_at":"2024-10-03T11:21:08.921Z","updated_at":"2025-04-11T07:50:03.134Z","avatar_url":"https://github.com/manusa.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# YAKC - Yet Another Kubernetes Client\n\n\u003e Lower level Java REST client for Kubernetes API.\n\nThis project is still in an early stage, public API and classes are subject to changes.\n\nPlease try it out and share your opinion, but use at your own risk.\n\n## Quick start\n\n### TL;DR\n#### Maven\n```xml\n\u003cdependencies\u003e\n  \u003cdependency\u003e\n    \u003cgroupId\u003ecom.marcnuri.yakc\u003c/groupId\u003e\n    \u003cartifactId\u003ekubernetes-api\u003c/artifactId\u003e\n    \u003cversion\u003e0.0.28\u003c/version\u003e\n  \u003c/dependency\u003e\n  \u003cdependency\u003e\n    \u003cgroupId\u003ecom.marcnuri.yakc\u003c/groupId\u003e\n    \u003cartifactId\u003ekubernetes-client\u003c/artifactId\u003e\n    \u003cversion\u003e0.0.28\u003c/version\u003e\n  \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n#### Gradle\n```groovy\ndependencies {\n  implementation 'com.marcnuri.yakc:kubernetes-api:0.0.28'\n  implementation 'com.marcnuri.yakc:kubernetes-client:0.0.28'\n}\n```\n#### List all Pods\n```java\ntry (KubernetesClient kc = new KubernetesClient()) {\n  kc.create(CoreV1Api.class).listPodForAllNamespaces().stream().forEach(p -\u003e\n    System.out.printf(\"%-15s %s%n\", p.getMetadata().getNamespace(), p.getMetadata().getName())\n  );\n}\n```\n\n### Quick start example projects\n\nCheck the [quickstarts](quickstarts) directory for projects ready to use with illustrative examples\non how to use the client.\n\n- [Quarkus Kubernetes Dashboard](quickstarts/quarkus-dashboard), full featured reactive Kubernetes \n  dashboard built with Quarkus and ReactJS. \n  See nested [README.md](quickstarts/quarkus-dashboard/README.md) for more information.\n  You can also checkout a demo on [YouTube](https://www.youtube.com/watch?v=Dum84fwA8_g).\n- [Pods](quickstarts/pods) contains a Maven project with examples to the diverse available API operations\n  for  Pod resources.\n  See nested [README.md](quickstarts/pod/README.md) for more information.\n- [Pod Logs](quickstarts/pod-logs) contains a Maven project with an example showcasing how to retrieve\n  Pod logs, both with follow and no-follow options.\n  See nested [README.md](quickstarts/pod-logs/README.md) for more information.\n- [Pod Exec](quickstarts/pod-exec) contains a Maven project with an example showcasing how to execute\n  commands in a Pod container.\n  See nested [README.md](quickstarts/pod-exec/README.md) for more information.\n- [Top for Nodes](quickstarts/top-nodes) contains a Maven project with an example on how to query\n  Nodes and Pod containers to calculate resource availability and usage.\n  See nested [README.md](quickstarts/top-nodes/README.md) for more information.\n- [Custom Resource Definition](quickstarts/crd) contains a Maven project with a complete example on\n  how to create Custom Resource Definitions and how to create and use an API to manipulate those\n  custom resources.\n  See nested [README.md](quickstarts/crd/README.md) for more information.\n- [Access Cluster from Pod](quickstarts/access-cluster-from-pod) demonstrates how to access the \n  underlying k8s cluster's REST API from within a Pod.\n  See nested [README.md](quickstarts/access-cluster-from-pod/README.md) for more information.\n  \n### Katacoda\nCheck out the different [Katacoda scenarios](https://www.katacoda.com/marcnuri/courses/yakc/)\nwhere you can try YAKC from your browser and without installing anything in your machine.\n\nWe'll be adding several scenarios with increasing complexity, as of now you can try out [how to \nsetup Maven to use YAKC](https://www.katacoda.com/marcnuri/courses/yakc/maven-quick-start).\n\n## Modules\n\n### Core\n\n#### kubernetes-client-api\n[![Maven Central](https://img.shields.io/maven-central/v/com.marcnuri.yakc/kubernetes-client-api)\n](https://search.maven.org/search?q=g:com.marcnuri.yakc%20a:kubernetes-client-api)\n[![javadoc](https://javadoc.io/badge2/com.marcnuri.yakc/kubernetes-client-api/javadoc.svg)\n](https://javadoc.io/doc/com.marcnuri.yakc/kubernetes-client-api)\n\nProvides the basic interfaces and Exception types to be used across the different modules.\n\n#### kubernetes-model\n[![Maven Central](https://img.shields.io/maven-central/v/com.marcnuri.yakc/kubernetes-model)\n](https://search.maven.org/search?q=g:com.marcnuri.yakc%20a:kubernetes-model)\n[![javadoc](https://javadoc.io/badge2/com.marcnuri.yakc/kubernetes-model/javadoc.svg)\n](https://javadoc.io/doc/com.marcnuri.yakc/kubernetes-model)\n\nKubernetes model objects to be used for REST API serialization/deserialization.\n\nModel types are generated for Kubernetes equivalents in versions ranging from 1.15 to 1.25.\n\n#### kubernetes-api\n[![Maven Central](https://img.shields.io/maven-central/v/com.marcnuri.yakc/kubernetes-api)\n](https://search.maven.org/search?q=g:com.marcnuri.yakc%20a:kubernetes-api)\n[![javadoc](https://javadoc.io/badge2/com.marcnuri.yakc/kubernetes-api/javadoc.svg)\n](https://javadoc.io/doc/com.marcnuri.yakc/kubernetes-api)\n\n[Retrofit](https://square.github.io/retrofit/) API client Java interfaces for the latest\n[Kubernetes JSON](https://github.com/kubernetes/kubernetes/blob/master/api/openapi-spec/swagger.json)\n[OpenAPI](https://swagger.io/specification/) schema.\n\nAPI methods for Kubernetes REST endpoints in versions ranging from 1.15 to 1.25.\n\n#### kubernetes-client\n[![Maven Central](https://img.shields.io/maven-central/v/com.marcnuri.yakc/kubernetes-client)\n](https://search.maven.org/search?q=g:com.marcnuri.yakc%20a:kubernetes-client)\n[![javadoc](https://javadoc.io/badge2/com.marcnuri.yakc/kubernetes-client/javadoc.svg)\n](https://javadoc.io/doc/com.marcnuri.yakc/kubernetes-client)\n\nKubernetes Retrofit2 based Java client to be used with kubernetes-api or any of the provided [apis](#apis).\n\n### Apis\n\n#### cert-manager\n[![Maven Central](https://img.shields.io/maven-central/v/com.marcnuri.yakc.apis/cert-manager)\n](https://search.maven.org/search?q=g:com.marcnuri.yakc.apis%20a:cert-manager)\n[![javadoc](https://javadoc.io/badge2/com.marcnuri.yakc.apis/cert-manager/javadoc.svg)\n](https://javadoc.io/doc/com.marcnuri.yakc.apis/cert-manager)\n\n[Retrofit](https://square.github.io/retrofit/) API client Java interfaces for\n[Kubernetes cert-manager](https://cert-manager.io/) (1.0.4 - 1.5.3).\n\ncert-manager provides support for x509 certificate management for Kubernetes. It's a Kubernetes\nadd-on that automates the management and issuance of TLS certificates, making it very easy\nto provide certificates for developers working within your cluster.\n\nThe Java types provided by YAKC will further improve the developer experience by enabling\ndevelopers to interact with cert-manager from Java.\n\n#### Chaos Mesh\n[![Maven Central](https://img.shields.io/maven-central/v/com.marcnuri.yakc.apis/chaos-mesh)\n](https://search.maven.org/search?q=g:com.marcnuri.yakc.apis%20a:chaos-mesh)\n[![javadoc](https://javadoc.io/badge2/com.marcnuri.yakc.apis/chaos-mesh/javadoc.svg)\n](https://javadoc.io/doc/com.marcnuri.yakc.apis/chaos-mesh)\n\n[Retrofit](https://square.github.io/retrofit/) API client Java interfaces for\n[Chaos Mesh](https://chaos-mesh.org/) (1.1.0 - 2.0.0).\n\nChaos Mesh is chaos engineering platform that orchestrates chaos on Kubernetes environments.\n\n#### Dapr\n[![Maven Central](https://img.shields.io/maven-central/v/com.marcnuri.yakc.apis/dapr)\n](https://search.maven.org/search?q=g:com.marcnuri.yakc.apis%20a:dapr)\n[![javadoc](https://javadoc.io/badge2/com.marcnuri.yakc.apis/dapr/javadoc.svg)\n](https://javadoc.io/doc/com.marcnuri.yakc.apis/dapr)\n\n[Retrofit](https://square.github.io/retrofit/) API client Java interfaces for\n[Dapr](https://dapr.io/) - Distributed Application Runtime (1.0.1 - 1.4.1).\n\nDapr is a portable, event-driven, runtime for building distributed applications across cloud and edge.\n\n#### Istio\n[![Maven Central](https://img.shields.io/maven-central/v/com.marcnuri.yakc.apis/istio)\n](https://search.maven.org/search?q=g:com.marcnuri.yakc.apis%20a:istio)\n[![javadoc](https://javadoc.io/badge2/com.marcnuri.yakc.apis/istio/javadoc.svg)\n](https://javadoc.io/doc/com.marcnuri.yakc.apis/istio)\n\n[Retrofit](https://square.github.io/retrofit/) API client Java interfaces for\n[Istio](https://istio.io/) (1.7 - 1.11.3).\n\nIstio is a service-mesh for distributed applications. Istio leverages the required features to\nrun a successful and efficient distributed microservice architecture by providing a uniform way\nto secure, monitor and connect microservices.\n\n#### Knative\n[![Maven Central](https://img.shields.io/maven-central/v/com.marcnuri.yakc.apis/knative)\n](https://search.maven.org/search?q=g:com.marcnuri.yakc.apis%20a:knative)\n[![javadoc](https://javadoc.io/badge2/com.marcnuri.yakc.apis/knative/javadoc.svg)\n](https://javadoc.io/doc/com.marcnuri.yakc.apis/knative)\n\n[Retrofit](https://square.github.io/retrofit/) API client Java interfaces for\n[Knative](https://knative.dev/) (0.19.0 - 0.22.0).\n\nKnative is a Kubernetes-based platform to manage and deploy serverless workloads.\n\n#### KUDO - Kubernetes Universal Declarative Operator (KUDO)\n[![Maven Central](https://img.shields.io/maven-central/v/com.marcnuri.yakc.apis/kudo)\n](https://search.maven.org/search?q=g:com.marcnuri.yakc.apis%20a:kudo)\n[![javadoc](https://javadoc.io/badge2/com.marcnuri.yakc.apis/kudo/javadoc.svg)\n](https://javadoc.io/doc/com.marcnuri.yakc.apis/kudo)\n\n[Retrofit](https://square.github.io/retrofit/) API client Java interfaces for\n[KUDO](https://kudo.dev/) (0.18.2 - 0.19.0).\n\nKubernetes Universal Declarative Operator (KUDO) provides a declarative approach to building production-grade Kubernetes\nOperators covering the entire application lifecycle.\n\n#### metrics-server\n[![Maven Central](https://img.shields.io/maven-central/v/com.marcnuri.yakc.apis/metrics-server)\n](https://search.maven.org/search?q=g:com.marcnuri.yakc.apis%20a:metrics-server)\n[![javadoc](https://javadoc.io/badge2/com.marcnuri.yakc.apis/metrics-server/javadoc.svg)\n](https://javadoc.io/doc/com.marcnuri.yakc.apis/metrics-server)\n\n[Retrofit](https://square.github.io/retrofit/) API client Java interfaces for\n[Kubernetes Metrics Server](https://github.com/kubernetes-sigs/metrics-server)  (0.4.0).\n\nMetrics server collects resource metrics from Pods and Nodes making them ready to be consumed\nvia the Metrics API by Horizontal Pod Autoscaler and other scaling solutions.\n\nYAKC provides the means to access the Metrics API from Java.\n\n#### OpenShift\n[![Maven Central](https://img.shields.io/maven-central/v/com.marcnuri.yakc.apis/openshift)\n](https://search.maven.org/search?q=g:com.marcnuri.yakc.apis%20a:openshift)\n[![javadoc](https://javadoc.io/badge2/com.marcnuri.yakc.apis/openshift/javadoc.svg)\n](https://javadoc.io/doc/com.marcnuri.yakc.apis/openshift)\n\n[Retrofit](https://square.github.io/retrofit/) API client Java interfaces for\n[OpenShift](https://github.com/openshift/origin) (3.11 - 4.4).\n\nThis module contains models for OpenShift specific Kubernetes resources and the Retrofit APIs to\naccess them.  \n\n### Extensions\n\n#### YAKC Quarkus Extension\n[![Maven Central](https://img.shields.io/maven-central/v/com.marcnuri.yakc/quarkus-yakc-extension)\n](https://search.maven.org/search?q=g:com.marcnuri.yakc%20a:quarkus-yakc-extension)\n[![javadoc](https://javadoc.io/badge2/com.marcnuri.yakc/quarkus-yakc-extension/javadoc.svg)\n](https://javadoc.io/doc/com.marcnuri.yakc/quarkus-yakc-extension)\n\nThis [extension](https://github.com/manusa/yakc-quarkus-extension) provides the requirements to be able to produce\n[Quarkus](https://quarkus.io) native images for your application running with YAKC.\n\nThe extension is hosted in a separate [repository](https://github.com/manusa/yakc-quarkus-extension).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanusa%2Fyakc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmanusa%2Fyakc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmanusa%2Fyakc/lists"}