podman-desktop icon indicating copy to clipboard operation
podman-desktop copied to clipboard

Kubernetes integration

Open benoitf opened this issue 3 years ago • 11 comments
trafficstars

Kubernetes integration

We should be able to connect to Kubernetes/OpenShift clusters and optionally be able to handle lifecycle like start/stop for some local providers (minikube, crc, kind, etc)

  • [x] https://github.com/containers/desktop/issues/30
  • [x] Ability to manage lifecycle of a Kubernetes provider
  • [ ] List Pods of a Kubernetes provider
  • [ ] Ability to switch Kubernetes context

benoitf avatar Mar 16 '22 10:03 benoitf

What about the ability to switch kube contexts? This is a requested feature that people were used to from the MacOS client of CRC. This uses: https://github.com/code-ready/tray-macos/tree/master/CodeReady%20Containers/KubeSwitch to allow this functionality. Ref: https://github.com/code-ready/tray-electron/issues/204


Thanks! :-D

gbraad avatar Mar 23 '22 07:03 gbraad

I've updated the list in the description

benoitf avatar Mar 23 '22 07:03 benoitf

Will the integration with kind (= to create/delete or start/stop a k8s cluster) be part of this issue ? FYI: creating a cluster is not so difficult.

Here is an example developed by Tanzu - https://github.com/vmware-tanzu/community-edition/blob/main/cli/cmd/plugin/unmanaged-cluster/cluster/kind.go#L59-L125

or using kind client: https://github.com/kubernetes-sigs/kind/blob/main/pkg/cmd/kind/create/cluster/createcluster.go#L79-L91

cmoulliard avatar May 03 '22 16:05 cmoulliard

Question: Have you defined a spec to support different providers ?

cmoulliard avatar May 03 '22 16:05 cmoulliard

Hello @cmoulliard

Will the integration with kind (= to create/delete or start/stop a k8s cluster) be part of this issue ? FYI: creating a cluster is not so difficult.

The first step is to connect to an existing instance of Kubernetes/OpenShift/etc through its endpoint URL.

So you could start a Kind/minishift/OpenShift Local/etc cluster and you could add connection there.

Question: Have you defined a spec to support different providers ?

There is a plug-in API where you can register providers https://github.com/containers/podman-desktop/blob/037518067a5f661b70c315a3a42d11954e6cd3da/packages/extension-api/src/extension-api.d.ts#L170

Also I think it should be possible for a plug-in to add custom commands to start for example a cluster

It could depend on the interest for people having the tool creating the cluster or not.

benoitf avatar May 04 '22 10:05 benoitf

The first step is to connect to an existing instance of Kubernetes/OpenShift/etc through its endpoint URL.

So you could start a Kind/minishift/OpenShift Local/etc cluster and you could add connection there.

hmhm. As a developer what I like a lot when I use the Rancher desktop is that typically it takes care for me to create the k8s cluster according to the version specified like also the router - traefix able to expose my services top

Screenshot 2022-05-04 at 14 07 48

NOTE: If now I must open the podman desktop just to figure out what are the kube contexts available to access the clusters, then I will use directly kube context instead of launching a desktop ;-)

cmoulliard avatar May 04 '22 14:05 cmoulliard

@cmoulliard ok got the message 👍

benoitf avatar May 04 '22 14:05 benoitf

Is there a document/github issue detailing what the goals of the desktop will be ? Have you also investigated how it will be positioned against: Rancher, Docker, Tanzu and Kubernetic ? @benoitf

cmoulliard avatar May 04 '22 15:05 cmoulliard

cc @slemeur

benoitf avatar May 04 '22 15:05 benoitf

@cmoulliard if you can tell what you expect from the tool as well. It seems you are interested in the Kubernetes part (or you're interested in podman pods ?) having a cluster setup in one click

benoitf avatar May 04 '22 15:05 benoitf

It seems you are interested in the Kubernetes part (or you're interested in podman pods ?) having a cluster setup in one click

Yes. I'm more interested to use the tool as a Kubernetes desktop than as container desktop even, when we use kind a docker container is needed ;-) ) and stuffs like:

  • Private registry and self signed certificate generated to allow to build/push using docker locally or dekorate or quarkus build
  • Ingress router (contour, traefix) to access from host to cluster the services
  • Certificate manager installed and perhaps additional packages supporting the outerloop: Tekton, Shipwright, ...
  • CPU and Memory configuration
  • Mount of volumes (host to container running kind cluster)

NOTE: Here is how the team is currently dealing today with such a use case when we use kubernetes kind + private registry + TLS certificate + ingress : https://github.com/snowdrop/k8s-infra/blob/main/kind/kind-tls-secured-reg.sh

cmoulliard avatar May 05 '22 06:05 cmoulliard

We have completed all of the major features in here as of Podman Desktop 1.0, and there have been no comments in over a year, so I am closing this. Please try a recent release, and feel free to open new issues if there are any additional features you'd like to see.

deboer-tim avatar Jun 15 '23 14:06 deboer-tim