{"id":16844754,"url":"https://github.com/sbueringer/kubectl-openstack-plugin","last_synced_at":"2025-04-11T06:01:34.052Z","repository":{"id":54229946,"uuid":"148754526","full_name":"sbueringer/kubectl-openstack-plugin","owner":"sbueringer","description":"kubectl plugin for OpenStack","archived":false,"fork":false,"pushed_at":"2022-05-16T18:26:28.000Z","size":3537,"stargazers_count":7,"open_issues_count":2,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T03:51:51.230Z","etag":null,"topics":["kubectl","openstack","plugin"],"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/sbueringer.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}},"created_at":"2018-09-14T07:48:23.000Z","updated_at":"2023-05-19T16:36:29.000Z","dependencies_parsed_at":"2022-08-13T09:40:45.510Z","dependency_job_id":null,"html_url":"https://github.com/sbueringer/kubectl-openstack-plugin","commit_stats":null,"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbueringer%2Fkubectl-openstack-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbueringer%2Fkubectl-openstack-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbueringer%2Fkubectl-openstack-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sbueringer%2Fkubectl-openstack-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sbueringer","download_url":"https://codeload.github.com/sbueringer/kubectl-openstack-plugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248351383,"owners_count":21089271,"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":["kubectl","openstack","plugin"],"created_at":"2024-10-13T12:56:30.882Z","updated_at":"2025-04-11T06:01:33.958Z","avatar_url":"https://github.com/sbueringer.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Kubectl Openstack Plugin\n\n[![Travis](https://img.shields.io/travis/sbueringer/kubectl-openstack-plugin.svg)](https://travis-ci.org/sbueringer/kubectl-openstack-plugin)[![Codecov](https://img.shields.io/codecov/c/github/sbueringer/kubectl-openstack-plugin.svg)](https://codecov.io/gh/sbueringer/kubectl-openstack-plugin)[![CodeFactor](https://www.codefactor.io/repository/github/sbueringer/kubectl-openstack-plugin/badge)](https://www.codefactor.io/repository/github/sbueringer/kubectl-openstack-plugin)[![GoReportCard](https://goreportcard.com/badge/github.com/sbueringer/kubectl-openstack-plugin?style=plastic)](https://goreportcard.com/report/github.com/sbueringer/kubectl-openstack-plugin)[![GitHub release](https://img.shields.io/github/release/sbueringer/kubectl-openstack-plugin.svg)](https://github.com/sbueringer/kubectl-openstack-plugin/releases)\n\nbased on [k8s.io/sample-cli-plugin](https://github.com/kubernetes/kubernetes/tree/master/staging/src/k8s.io/sample-cli-plugin)\n\n# Installation \n\n## Prerequisites\n\n* Afaik kubectl plugins without plugin.yaml only work with kubectl \u003e=1.12\n\n## Installation via go get\n\nJust execute the following and make sure `$GOPATH/bin` is in your `$PATH`:\n````\nGO111MODULE=on go get github.com/sbueringer/kubectl-openstack-plugin/cmd/kubectl-openstack@v0.0.15\n````\n\nNote: this currently only works without GO111MODULE=on because a replace directive for gophercloud is used. (see also: https://github.com/golang/go/issues/30354)\n\n## Installation via download\n\nDownload the binary from [Releases](https://github.com/sbueringer/kubectl-openstack-plugin/releases) and place it in a directory in your `PATH`.\n\n\n# Configuration\n\nTo access OpenStack via this plugin the OpenStack credentials must be configured either via env variables or via [clouds.yaml](https://docs.openstack.org/python-openstackclient/pike/configuration/index.html) config file.\n\n## Configuration via Environment Variables\n\nThe plugin can be configured by setting the following env variables:\n* `OS_USERNAME`\n* `OS_PASSWORD`\n* `OS_PROJECT_NAME` or `OS_TENANT_NAME`\n* `OS_AUTH_URL`\n\n## Configuration via config file\n\nThe location of the config file must be configured via `OPENSTACK_CONFIG_FILE` env var. An example `clouds.yaml`:\n````\nclouds:\n  i01p015:\n    auth:\n      auth_url: http://192.168.122.10:35357/\n      project_name: i01p015\n      username: demo\n      password: password\n````\n\n*Note*: The cloud/project_name is automatically discovered from the current kube context. E.g. a kube context named `i01p015-cluster-admin` leads to a cloud/project_name of `i01p015`. \n*Note*: The clouds.yaml file can be created from `.rc` files via the `import-config` sub command.\n\n# Usage\n\nThe kubectl OpenStack plugin currently has three commands, which are shown here.\n\n## kubectl openstack server\n\nThe `server` command combines information about Kubernetes Nodes with OpenStack Server.\n\n````\n$ kubectl openstack server\nNODE_NAME               STATUS  KUBELET_VERSION  KUBEPROXY_VERSION  RUNTIME_VERSION  SERVER_ID                             STATE   CPU  RAM  IP\ni01p015-kube-master01  Ready   v1.11.0           v1.11.0            docker://18.3.1  c11231ab-4315-4a77-b5fc-22f2a668d414  ACTIVE  2    15G  10.12.4.12\ni01p015-kube-node01    Ready   v1.11.0           v1.11.0            docker://18.3.1  04acf401-dcf4-4e7c-8796-69662768067a  ACTIVE  2     8G  10.12.4.17\ni01p015-kube-node02    Ready   v1.11.0           v1.11.0            docker://18.3.1  cf03414f-f692-4766-a797-16f01b154d6e  ACTIVE  2     8G  10.12.4.7\ni01p015-kube-node03    Ready   v1.11.0           v1.11.0            docker://18.3.1  fca70123-2db0-430a-a84e-5010cc1f0f71  ACTIVE  2     8G  10.12.4.15\n````\n\n## kubectl openstack volumes\n\nThe `volumes` command combines information about Kubernetes Persistent Volumes \u0026 Nodes with OpenStack Volumes.\n\n````\n$ kubectl openstack volumes\nCLAIM                                 PV_NAME                                   CINDER_ID                             SERVERS                 STATUS\ndefault/cache                         pvc-15eb6f71-943a-11e8-9844-fa163e81bcc3  3c1e3f40-09ad-4a2a-b77e-8abc53f9d8d7  i01p015-kube-node02     in-use\nmonitoring/data-prometheus-0          pvc-02432937-93ed-11e8-9844-fa163e81bcc3  e47df157-e654-4491-a25d-ad42475d4822  i01p015-kube-node04     in-use\nlogging/data-elastic-0                pvc-c627c780-93ec-11e8-9844-fa163e81bcc3  69237173-6413-450b-9007-ec3bce8b3e39  i01p015-kube-node03     in-use\n````\n\n## kubectl openstack lb\n\nThe `lb` command combines information about Kubernetes Services with OpenStack LoadBalancer resources.\n\n````\n$ kubectl openstack lb\nNAME                  FLOATING_IPS  VIP_ADDRESS  PORTS                                            SERVICES\nexternal              59.1.0.15     10.12.4.6    8080 =\u003e [10.12.4.17 10.12.4.7 10.12.4.15]:30080  external/traefik\ninternal              59.1.0.14     10.12.4.5    443 =\u003e [10.12.4.17 10.12.4.7 10.12.4.15]:30443   internal/traefik\n````\n\n# Roadmap\n\n* enable output via go template like json path (from both openstack \u0026 kube object)\n* unit tests\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbueringer%2Fkubectl-openstack-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsbueringer%2Fkubectl-openstack-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsbueringer%2Fkubectl-openstack-plugin/lists"}