{"id":13688522,"url":"https://github.com/cloudydeno/deno-kubernetes_apis","last_synced_at":"2025-05-01T17:30:45.330Z","repository":{"id":45893242,"uuid":"313152333","full_name":"cloudydeno/deno-kubernetes_apis","owner":"cloudydeno","description":"REST focused Typescript classes for Kubernetes APIs, and tools for generating API interfaces","archived":false,"fork":false,"pushed_at":"2024-10-16T19:57:17.000Z","size":702,"stargazers_count":19,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-18T18:15:34.757Z","etag":null,"topics":["codegen","deno","kubernetes","kubernetes-apis","kubernetes-crd"],"latest_commit_sha":null,"homepage":"https://deno.land/x/kubernetes_apis","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cloudydeno.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-11-16T00:31:29.000Z","updated_at":"2024-10-17T05:30:24.000Z","dependencies_parsed_at":"2024-01-14T04:41:09.668Z","dependency_job_id":"29fc5853-6a81-4b1f-8a9c-922be9a03518","html_url":"https://github.com/cloudydeno/deno-kubernetes_apis","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudydeno%2Fdeno-kubernetes_apis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudydeno%2Fdeno-kubernetes_apis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudydeno%2Fdeno-kubernetes_apis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cloudydeno%2Fdeno-kubernetes_apis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cloudydeno","download_url":"https://codeload.github.com/cloudydeno/deno-kubernetes_apis/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224270343,"owners_count":17283649,"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":["codegen","deno","kubernetes","kubernetes-apis","kubernetes-crd"],"created_at":"2024-08-02T15:01:15.843Z","updated_at":"2024-11-12T12:03:19.295Z","avatar_url":"https://github.com/cloudydeno.png","language":"TypeScript","funding_links":[],"categories":["deno","kubernetes"],"sub_categories":[],"readme":"![Deno CI](https://github.com/danopia/deno-kubernetes_apis/workflows/CI/badge.svg?branch=main)\n\n# `/x/kubernetes_apis`\n\nNOTE: This README is about code generation concepts.\n\nUsers of this library should click into [`lib/`](./lib) for the actual README!\n\n## Kubernetes compatability\n\nAPIs are generated from Kubernetes OpenAPI specs, which are large JSON files.\n\nYou can pull your cluster's OpenAPI spec easily:\n\n`kubectl get --raw /openapi/v2 \u003e openapi.json`\n\nAPI specs from Kubernetes v1.14.0 and later should work fine.\nEarlier releases would need some codegen changes to be compatible.\n\n## Module Layout\n\nNOTE: This section refers to a hypothetical dynamic-codegen endpoint.\nThe current way of using this library is importing modules from\n[/x/kubernetes_apis](https://deno.land/x/kubernetes_apis).\nThe latest Kubernetes release is used to generate the published modules,\nso you may start noticing a lack of parity if you are using a quite old cluster.\n\n---\n\nVersioning is tricky with Kubernetes APIs because every cluster can have a different surface.\n\nWhen referring to Kubernetes API surfaces, an exhuastive module path might look like this:\n\n* `https://k8s-apis.deno.dev/v1/kubernetes@v1.17.8/core@v1/mod.ts`\n* `https://k8s-apis.deno.dev/v1/kubernetes@v1.18.3/apps@v1beta1/mod.ts`\n* `https://k8s-apis.deno.dev/v1/kubernetes@v1.19.1/networking.k8s.io@v1/mod.ts`\n\nThere's also third-party projects that register CRDs, such as cert-manager.\nOpenAPI specs are almost never published by these projects,\nso generating APIs for them generally means feeding CRD YAML files into the codegen and guessing.\nThis is an imperfect art but so far works well for `cert-manager` and `exernal-dns`.\nAlternatively, the CRDs could be installed onto a real control plane and then the APIs extracted.\n\nSeveral examples of addressing third party APIs might be:\n\n* `https://k8s-apis.deno.dev/v1/cert-manager@v1.0.4/acme.cert-manager.io@v1alpha2/mod.ts`\n* `https://k8s-apis.deno.dev/v1/external-dns@v0.7.4/externaldns.k8s.io@v1alpha1/mod.ts`\n* `https://k8s-apis.deno.dev/v1/velero@v1.5.2/velero.io@v1/mod.ts`\n* `https://k8s-apis.deno.dev/v1/argo-cd@v2.1.7/argoproj.io@v1alpha1/mod.ts`\n\nThe only sort of 'directory' of CRDs is likely [Operator Hub](https://operatorhub.io/)\nthough it is also lacking CRDs that are not explicitly tied to an \"Operator\".\nOtherwise, there's not really any, like, directory of just CRDs,\nso we'll possibly need to make a further list ourselves..\n\nFinally, for generating code within a cluster, it's pretty likely that a cluster's apis\nwill be generated as one unit and possibly stored in S3 or similar, and the paths are more straightforward:\n\n* `//k8s_api_surface/batch@v1/mod.ts`\n\nIn any case, the actual API client that works with authentication/transport\nwill be served authoratatively from a normal deno repo:\n\n* https://deno.land/x/kubernetes_client@v0.7.0/mod.ts\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudydeno%2Fdeno-kubernetes_apis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcloudydeno%2Fdeno-kubernetes_apis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcloudydeno%2Fdeno-kubernetes_apis/lists"}