{"id":25895760,"url":"https://github.com/paaloeye/uks-controller","last_synced_at":"2026-05-07T01:08:08.345Z","repository":{"id":250435594,"uuid":"831671379","full_name":"paaloeye/uks-controller","owner":"paaloeye","description":"Custom Kubernetes controller designed to view VMs using kubectl","archived":false,"fork":false,"pushed_at":"2024-07-27T11:18:13.000Z","size":56,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-17T13:24:39.333Z","etag":null,"topics":["kubernetes","upcloud","upcloud-api"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/paaloeye.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":"2024-07-21T09:23:21.000Z","updated_at":"2024-07-27T12:04:11.000Z","dependencies_parsed_at":"2024-07-27T12:34:11.866Z","dependency_job_id":"8f69d86e-fd7b-490f-942a-7a93e9a0b1c5","html_url":"https://github.com/paaloeye/uks-controller","commit_stats":null,"previous_names":["pbrit/uks-controller","paaloeye/uks-controller"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paaloeye%2Fuks-controller","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paaloeye%2Fuks-controller/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paaloeye%2Fuks-controller/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/paaloeye%2Fuks-controller/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/paaloeye","download_url":"https://codeload.github.com/paaloeye/uks-controller/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241582514,"owners_count":19985845,"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","upcloud","upcloud-api"],"created_at":"2025-03-02T22:33:02.127Z","updated_at":"2026-05-07T01:08:08.293Z","avatar_url":"https://github.com/paaloeye.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!--\nSPDX-License-Identifier: MPL-2.0\n--\u003e\n\n# uks-controller\n\nA custom Kubernetes controller that provides seamless integration with the UpCloud API, allowing you to manage UpCloud Virtual Machines directly through `kubectl`.\n\n## Features\n\n- View and monitor UpCloud VMs using standard Kubernetes tooling\n- Prometheus metrics integration for monitoring sync status\n- Configurable sync interval\n- Detailed logging with multiple verbosity levels\n\n## Quickstart\n\n### Pull vendored `upcloud-go-api`\n\n```shell\ngit submodule update --recursive\n```\n\n### Build and run it locally\n\n```shell\nmake install run\n```\n\n## Configuration\n\nSyncing interval can be configured by `--sync-interval` parameter when the controller is started. By default, VMs are being synced every 15 seconds.\n\n\n## Implementation\n\nNumber of currently syncing UpCloud VMs are available via Prometheus interface (metric name: `virtual_machine_syncing_vms`).\n\n## Further development\n\n  - [ ] Unit testing\n  - [ ] Kubernetes events\n  - [ ] Enable metrics protection\n\n## Logging\n\n  - `V=1` - we want always see it\n  - `V=2` - a bit more verbosity\n  - `V=3` - we are debugging the controller, loads of big structures shall we logged\n\nThe logging itself is controller by `-zap-log-level` argument, e.g. `-zap-log-level=3` gives you plenty of information on state changes.\n\n## Assumptions\n\nUpCloud API credentials are set in `os.Environ`\n\n## Observations\n\n- Creating _Machine API Key_ isn't straight-forward\n- Creating a sub-user\n  - **Create subaccount**\n    - is grayed out without **any explanation** unless free trial is started (shall indicate what's wrong)\n- Having `UpCloudLtd` as a github org name makes a path like this `/go/pkg/mod/github.com/!up!cloud!ltd`. Those `!` make life a bit worse. Try to _cd_ to this directory. And do it again.\n\n\n## References\n\n  - https://sdk.operatorframework.io/docs/building-operators/golang/quickstart/\n  - https://github.com/UpCloudLtd/upcloud-go-api\n  - https://developers.upcloud.com/1.3/\n  - https://upcloud.com/resources/tutorials/getting-started-upcloud-api\n  - https://upcloud.com/docs/getting-started/free-trial/\n  - https://github.com/kubernetes/community/blob/master/contributors/devel/sig-instrumentation/logging.md#what-method-to-use\n  - https://book.kubebuilder.io/\n  - https://go.dev/doc/modules/gomod-ref\n\n## Licence\n\nLicensed under the [Mozilla Public License 2.0 (MPL-2.0)](https://www.mozilla.org/en-US/MPL/2.0/).\nSee [LICENCE](LICENSE.md) for details and [legal TL;DR](https://www.tldrlegal.com/license/mozilla-public-license-2-0-mpl-2).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaaloeye%2Fuks-controller","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpaaloeye%2Fuks-controller","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpaaloeye%2Fuks-controller/lists"}