mirror of
https://github.com/portainer/portainer.git
synced 2025-07-24 07:49:41 +02:00
fix(k8s/application): check name unique in k8s cluster (#6610)
* EE-2353 Check unique name when creating new deployment in kubernetes * EE-2353 fix warning from gofmt * EE-2353 add miss methon in kubernetes_mock.go * EE-2353 add missing space * EE-2353 Use kubernetes cli to instead exec.command * EE-2353 remove useless parameter * EE-2353 remove unnecessary log in handle * EE-2353 fix gofmt warning * EE-2353 use ListOptions to filter the list * EE-2353 add function description * EE-2353 fix error * Update api/kubernetes/cli/deploment.go Co-authored-by: Chaim Lev-Ari <chiptus@users.noreply.github.com> * EE-2353 change function name to HasStackName Co-authored-by: Chaim Lev-Ari <chiptus@users.noreply.github.com>
This commit is contained in:
parent
f8cbb54ba5
commit
07294c19bb
5 changed files with 63 additions and 12 deletions
22
api/kubernetes/cli/deploment.go
Normal file
22
api/kubernetes/cli/deploment.go
Normal file
|
@ -0,0 +1,22 @@
|
|||
package cli
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
labels "k8s.io/apimachinery/pkg/labels"
|
||||
)
|
||||
|
||||
// HasStackName checks whether the given name is used in the given namespace.
|
||||
func (kcl *KubeClient) HasStackName(namespace string, stackName string) (bool, error) {
|
||||
querySet := labels.Set{"io.portainer.kubernetes.application.stack": stackName}
|
||||
listOpts := metav1.ListOptions{LabelSelector: labels.SelectorFromSet(querySet).String()}
|
||||
list, err := kcl.cli.AppsV1().Deployments(namespace).List(context.TODO(), listOpts)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
if len(list.Items) > 0 {
|
||||
return false, nil
|
||||
}
|
||||
return true, nil
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue