mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-24 03:18:35 +08:00
【修改】k8s 配置
This commit is contained in:
47
apps/devops/services/k8s/common/namespace.go
Normal file
47
apps/devops/services/k8s/common/namespace.go
Normal file
@@ -0,0 +1,47 @@
|
||||
package common
|
||||
|
||||
import api "k8s.io/api/core/v1"
|
||||
|
||||
// NamespaceQuery is a query for namespaces of a list of objects.
|
||||
// There's three cases:
|
||||
// 1. No namespace selected: this means "user namespaces" query, i.e., all except kube-system
|
||||
// 2. Single namespace selected: this allows for optimizations when querying backends
|
||||
// 3. More than one namespace selected: resources from all namespaces are queried and then
|
||||
// filtered here.
|
||||
type NamespaceQuery struct {
|
||||
Namespaces []string
|
||||
}
|
||||
|
||||
// ToRequestParam returns K8s API namespace query for list of objects from this namespaces.
|
||||
// This is an optimization to query for single namespace if one was selected and for all
|
||||
// namespaces otherwise.
|
||||
func (n *NamespaceQuery) ToRequestParam() string {
|
||||
if len(n.Namespaces) == 1 {
|
||||
return n.Namespaces[0]
|
||||
}
|
||||
return api.NamespaceAll
|
||||
}
|
||||
|
||||
// Matches returns true when the given namespace matches this query.
|
||||
func (n *NamespaceQuery) Matches(namespace string) bool {
|
||||
if len(n.Namespaces) == 0 {
|
||||
return true
|
||||
}
|
||||
|
||||
for _, queryNamespace := range n.Namespaces {
|
||||
if namespace == queryNamespace {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
// NewSameNamespaceQuery creates new namespace query that queries single namespace.
|
||||
func NewSameNamespaceQuery(namespace string) *NamespaceQuery {
|
||||
return &NamespaceQuery{[]string{namespace}}
|
||||
}
|
||||
|
||||
// NewNamespaceQuery creates new query for given namespaces.
|
||||
func NewNamespaceQuery(namespaces []string) *NamespaceQuery {
|
||||
return &NamespaceQuery{namespaces}
|
||||
}
|
||||
Reference in New Issue
Block a user