{"id":13480852,"url":"https://github.com/kubernetes/dns","last_synced_at":"2025-05-13T00:20:57.297Z","repository":{"id":37549717,"uuid":"76596938","full_name":"kubernetes/dns","owner":"kubernetes","description":"Kubernetes DNS service","archived":false,"fork":false,"pushed_at":"2025-05-07T15:35:17.000Z","size":32537,"stargazers_count":968,"open_issues_count":20,"forks_count":487,"subscribers_count":41,"default_branch":"master","last_synced_at":"2025-05-07T16:47:47.034Z","etag":null,"topics":["dns","k8s","kube-dns","kubernetes"],"latest_commit_sha":null,"homepage":"","language":"Go","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/kubernetes.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY_CONTACTS","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-12-15T21:20:19.000Z","updated_at":"2025-05-07T15:35:23.000Z","dependencies_parsed_at":"2024-02-14T15:53:14.964Z","dependency_job_id":"263e6bdf-ac84-461e-866d-f678033350fd","html_url":"https://github.com/kubernetes/dns","commit_stats":{"total_commits":453,"total_committers":118,"mean_commits":"3.8389830508474576","dds":0.7660044150110376,"last_synced_commit":"fa0192f004c9571cf24d8e9868be07f57380fccb"},"previous_names":[],"tags_count":88,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes%2Fdns","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes%2Fdns/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes%2Fdns/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kubernetes%2Fdns/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kubernetes","download_url":"https://codeload.github.com/kubernetes/dns/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253843961,"owners_count":21972984,"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":["dns","k8s","kube-dns","kubernetes"],"created_at":"2024-07-31T17:00:45.879Z","updated_at":"2025-05-13T00:20:57.265Z","avatar_url":"https://github.com/kubernetes.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# Kubernetes DNS\n\n[![Build Status](https://travis-ci.org/kubernetes/dns.svg?branch=master)](https://travis-ci.org/kubernetes/dns)\n[![Coverage Status](https://coveralls.io/repos/github/kubernetes/dns/badge.svg?branch=master)](https://coveralls.io/github/kubernetes/dns?branch=master)\n[![Go Report Card](https://goreportcard.com/badge/github.com/kubernetes/dns)](https://goreportcard.com/report/github.com/kubernetes/dns)\n\nThis is the repository for [Kubernetes DNS(kube-dns and nodelocaldns)](https://kubernetes.io/docs/tasks/access-application-cluster/configure-dns-cluster/).\n\n## Images\n\n* [kube-dns](https://kubernetes.io/docs/tasks/access-application-cluster/configure-dns-cluster/)\n* [sidecar](docs/sidecar/README.md)\n* [dnsmasq](images/dnsmasq)\n* [node-cache](https://kubernetes.io/docs/tasks/administer-cluster/nodelocaldns/)\n\n## Building\n\n`make` targets:\n\n| target | description |\n| ---- | ---- |\n|all, build   | build all binaries |\n|test         | run unit tests |\n|containers   | build the containers |\n|images-clean | clear image build artifacts from workdir |\n|push         | push containers to the registry |\n|help         | this help message |\n|version      | show package version |\n|{build,containers,push}-ARCH | do action for specific ARCH |\n|all-{build,containers,push}  | do action for all ARCH |\n|only-push-BINARY             | push just BINARY |\n\n* Setting `VERBOSE=1` will show additional build logging.\n* Setting `VERSION` will override the container version tag.\n\n## Vulnerability patching\n\nVulnerability patches are mainly for debian-base or debian-iptables images. They can be updated to the latest by modifying [rules.mk](https://github.com/kubernetes/dns/blob/master/rules.mk#L32-L33) and [dnsmasq Makefile](https://github.com/kubernetes/dns/blob/f44ede5f559a9a29fa23b438e6ce0cb70934d834/images/dnsmasq/Makefile#L30-L32).\n[Example PR](https://github.com/kubernetes/dns/pull/475).\n\nOnce the PR has merged, a new release tag should be cut. The rest of the release process is described below.\n\n## Release process\nFollow these steps to make changes and release a new binary.\n\n1. Make the necessary code changes and create a PR.\n2. Build and test locally (`make images-clean`; `make build`; `make containers`; `make test`). \n3. To build just the node-cache container, use `make containers CONTAINER_BINARIES=node-cache`.\n4. The same steps are executed via the presubmit script `presubmits.sh` which is run by the [test-infra prow job.](https://github.com/kubernetes/test-infra/blob/88cd2798f36010e071a30c9827f90e647b59fc65/config/jobs/kubernetes/sig-network/sig-network-misc.yaml#L182)\n5. Merge the PR.\n6. Cut a new release tag. We use [semantic versioning](http://semver.org) to\n   name releases.\n   Example:\n   ```\n   git tag -a 1.21.4 -m \"Build images using golang 1.17.\"\n   git push upstream 1.21.4\n   ```\n4. Wait for container images to be pushed via cloudbuild yaml. This will be done automatically by\n   `k8s.io/test-infra/.../k8s-staging-dns.yaml`. A manual cloud build can be submitted via\n   `gcloud builds submit --config cloudbuild.yaml`, but this requires owner permissions in k8s-staging-dns project.\n   The automated job pushes images for all architectures and makes them available in `gcr.io/k8s-staging-dns`.\n   Status for build jobs can be checked at - https://testgrid.k8s.io/sig-network-dns#dns-push-images\n5. Promote the images to `gcr.io/k8s-artifacts-prod` using the process described\n   in [this](https://github.com/kubernetes/k8s.io/tree/main/k8s.gcr.io#image-promoter) link.\n   The image SHAs should be added to [`images/k8s-staging-dns/images.yaml`](https://github.com/kubernetes/k8s.io/blob/main/registry.k8s.io/images/k8s-staging-dns/images.yaml).\n   The SHAs can be obtained by running the command `python parse-image-sha.py \u003cTAG\u003e`\n   This will return the SHAs for kube-dns as well as node-cache images. Node-cache images are always promoted, kube-dns images are promoted if there is a change to kubedns/vulnerability fix.\n6. Images will be available in the repo registry.k8s.io/dns/. The node-cache image with tag 1.15.14 can be found at registry.k8s.io/dns/k8s-dns-node-cache:1.15.14. Older versions are at registry.k8s.io/k8s-dns-node-cache:\u003cTAG\u003e\n7. Prepare a PR for the kubernetes/kubernetes repository to switch to the new\n   version of the containers. Example - https://github.com/kubernetes/kubernetes/pull/106189.\n   Trigger the optional [presubmit](https://github.com/kubernetes/test-infra/pull/33962) `pull-kubernetes-e2e-gci-gce-kube-dns-nodecache` and correct your PR if needed before merging.\n8. Verify the kubedns-related and nodecache-related tabs of the test grid at https://testgrid.k8s.io/sig-network-gce for regressions caused by the new image and revert if needed.\n   \n## Version compatibility\n\nThere is no version compatibility requirements with Kubernetes releases. Version numbers in this repo are not related to Kubernetes versions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubernetes%2Fdns","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkubernetes%2Fdns","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkubernetes%2Fdns/lists"}