{"id":19096559,"url":"https://github.com/sapcc/netappsd","last_synced_at":"2025-07-06T05:36:46.503Z","repository":{"id":41954518,"uuid":"197768231","full_name":"sapcc/netappsd","owner":"sapcc","description":null,"archived":false,"fork":false,"pushed_at":"2025-04-01T12:40:28.000Z","size":16250,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":45,"default_branch":"master","last_synced_at":"2025-04-19T03:36:13.752Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/sapcc.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,"zenodo":null}},"created_at":"2019-07-19T12:22:26.000Z","updated_at":"2025-04-01T12:40:32.000Z","dependencies_parsed_at":"2024-04-19T13:46:25.803Z","dependency_job_id":"c31c48e2-75ee-46c0-81f6-da8a8de0edbf","html_url":"https://github.com/sapcc/netappsd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sapcc%2Fnetappsd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sapcc%2Fnetappsd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sapcc%2Fnetappsd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sapcc%2Fnetappsd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sapcc","download_url":"https://codeload.github.com/sapcc/netappsd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251719011,"owners_count":21632595,"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":[],"created_at":"2024-11-09T03:37:05.803Z","updated_at":"2025-04-30T14:14:52.424Z","avatar_url":"https://github.com/sapcc.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"## NetAppSD\n\nNetAppSD is an automatic scaler for NetApp's Harvest exporters running in a\nKubernetes cluster. It discovers NetApp filers from Netbox and starts an\nexporter instance for each of them.\n\nNetAppSD operates in two modes: master and worker. The master node is\nresponsible for discovering NetApp filers and monitoring the worker pods. It\nalso scales the number of worker pods to match the discovered filers. The\nworker node runs as a sidecar in the NetApp Harvest pod, fetching the filer to\nscrape from the master's endpoint \"/next/filer\" for the Harvest exporter.\n\nThe process for assigning a filer to a worker:\n\n1. A worker requests the master to assign a filer to work on.\n2. The master checks which filers are already being worked on by examining the \"filer\" label of the worker pods.\n3. The master selects a filer that is not currently being scraped and sets the \"filer\" label on the requesting worker.\n4. The master returns the filer to the worker.\n5. The worker creates the configuration file for the harvest exporter.\n\n## Usage\n\n### Master\n```\nUsage:\n  netappsd master [flags]\n\nFlags:\n  -h, --help                  help for master\n  -l, --listen-addr string    The address to listen on (default \":8080\")\n      --netbox-host string    The netbox host to query (default \"netbox.staging.cloud.sap\")\n      --netbox-token string   The token to authenticate against netbox\n  -r, --region string         The region to filter netbox devices\n  -t, --tag string            The tag to filter netbox devices\n  -w, --worker string         The deployment name of workers\n      --worker-label string   The label of worker pods\n\nGlobal Flags:\n  -d, --debug   Enable debug logging\n```\n\n### Worker\n```\nUsage:\n  netappsd worker [flags]\n\nFlags:\n  -h, --help                   help for worker\n  -l, --listen-addr string     The address to listen on (default \":8082\")\n  -m, --master-url string      The url of the netappsd-master (default \"http://localhost:8080\")\n  -o, --output-file string     The path to the output file (default \"harvest.yaml\")\n  -t, --template-file string   The path to the template file (default \"harvest.yaml.tpl\")\n\nGlobal Flags:\n  -d, --debug   Enable debug logging\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsapcc%2Fnetappsd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsapcc%2Fnetappsd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsapcc%2Fnetappsd/lists"}