{"id":13509247,"url":"https://github.com/siderolabs/discovery-service","last_synced_at":"2026-04-02T00:56:50.657Z","repository":{"id":43861229,"uuid":"363754234","full_name":"siderolabs/discovery-service","owner":"siderolabs","description":"Discovery Service provides cluster membership and KubeSpan peer information for Talos Linux clusters.","archived":false,"fork":false,"pushed_at":"2025-03-14T10:16:32.000Z","size":299,"stargazers_count":67,"open_issues_count":5,"forks_count":20,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-03-31T05:07:15.617Z","etag":null,"topics":["discovery","kubespan","service","talos"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/siderolabs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2021-05-02T21:32:38.000Z","updated_at":"2025-03-30T03:02:27.000Z","dependencies_parsed_at":"2024-05-22T11:31:41.485Z","dependency_job_id":"75f861e8-87b5-4209-a0a5-512110a9b847","html_url":"https://github.com/siderolabs/discovery-service","commit_stats":{"total_commits":52,"total_committers":13,"mean_commits":4.0,"dds":0.6730769230769231,"last_synced_commit":"74bca2da5cc86fd6efc57838b69a89beb2149069"},"previous_names":["talos-systems/wglan-manager","talos-systems/kubespan-manager","talos-systems/discovery-service"],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siderolabs%2Fdiscovery-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siderolabs%2Fdiscovery-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siderolabs%2Fdiscovery-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/siderolabs%2Fdiscovery-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/siderolabs","download_url":"https://codeload.github.com/siderolabs/discovery-service/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247601448,"owners_count":20964864,"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":["discovery","kubespan","service","talos"],"created_at":"2024-08-01T02:01:05.187Z","updated_at":"2026-04-02T00:56:50.613Z","avatar_url":"https://github.com/siderolabs.png","language":"Go","funding_links":[],"categories":["Go","others"],"sub_categories":[],"readme":"# Talos Discovery Service (for KubeSpan)\n\nDiscovery Service provides cluster membership and KubeSpan peer information for Talos clusters.\n\n## Overview\n\nDiscovery Service provides centralized service for Talos nodes to exchange information about nodes of the cluster.\n\nTalos runs \"official\" instance of the service, and anyone can run their own instance on-prem or in the cloud.\n\nDiscovery service doesn't store any data, all data is ephemeral and is kept only in memory.\nNode information is expired (if not updated) after 30 minutes.\nDiscovery service doesn't see actual node information, it only stores and updates encrypted blobs.\nDiscovery data should be submitted encrypted by the client, and service doesn't have the encryption key.\n\nThe project has been split into 3 parts (as they have different source code licenses), namely:\n\n- This repository\n- [Discovery Client](https://github.com/siderolabs/discovery-client), contains the client code to interact with the server\n- [Discovery Service API](https://github.com/siderolabs/discovery-api/), provides gRPC API definition and cluster data protobuf data structures\n\n## Setup\n\nAll of the details to get started are present [in the Makefile](Makefile), start with `make help`.\n\n## Interacting\n\nOnce the application is running you can test the grpc functionality on the port 3000 and the http pages in browser on port 3001.\n\nTo test the grpc calls, [install grpcurl](https://github.com/fullstorydev/grpcurl#installation) and clone the [Discovery Service API](https://github.com/siderolabs/discovery-api/) repository.\n\n- Sample code-block to test the grpc `Hello` call (change path accordingly)\n\n    ``` bash\n    grpcurl -proto v1alpha1/server/cluster.proto -import-path PATH_TO_REPO/discovery-api/api -plaintext -d '{\"clusterId\": \"abc\"}' -H 'X-Real-IP: 1.2.3.4' localhost:3000 sidero.discovery.server.Cluster/Hello\n    ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiderolabs%2Fdiscovery-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsiderolabs%2Fdiscovery-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsiderolabs%2Fdiscovery-service/lists"}