feat: kubesphere 4.0 (#6115)

* feat: kubesphere 4.0

Signed-off-by: ci-bot <ci-bot@kubesphere.io>

* feat: kubesphere 4.0

Signed-off-by: ci-bot <ci-bot@kubesphere.io>

---------

Signed-off-by: ci-bot <ci-bot@kubesphere.io>
Co-authored-by: ks-ci-bot <ks-ci-bot@example.com>
Co-authored-by: joyceliu <joyceliu@yunify.com>
This commit is contained in:
KubeSphere CI Bot
2024-09-06 11:05:52 +08:00
committed by GitHub
parent b5015ec7b9
commit 447a51f08b
8557 changed files with 546695 additions and 1146174 deletions

View File

@@ -11,7 +11,7 @@ import (
)
// Gvk identifies a Kubernetes API type.
// https://github.com/kubernetes/community/blob/master/contributors/design-proposals/api-machinery/api-group.md
// https://git.k8s.io/design-proposals-archive/api-machinery/api-group.md
type Gvk struct {
Group string `json:"group,omitempty" yaml:"group,omitempty"`
Version string `json:"version,omitempty" yaml:"version,omitempty"`
@@ -97,38 +97,35 @@ func (x Gvk) String() string {
return strings.Join([]string{k, v, g}, fieldSep)
}
// legacySortString returns an older version of String() that LegacyOrderTransformer depends on
// to keep its ordering stable across Kustomize versions
func (x Gvk) legacySortString() string {
legacyNoGroup := "~G"
legacyNoVersion := "~V"
legacyNoKind := "~K"
legacyFieldSeparator := "_"
// stableSortString returns a GVK representation that ensures determinism and
// backwards-compatibility in testing, logging, ...
func (x Gvk) stableSortString() string {
stableNoGroup := "~G"
stableNoVersion := "~V"
stableNoKind := "~K"
stableFieldSeparator := "_"
g := x.Group
if g == "" {
g = legacyNoGroup
g = stableNoGroup
}
v := x.Version
if v == "" {
v = legacyNoVersion
v = stableNoVersion
}
k := x.Kind
if k == "" {
k = legacyNoKind
k = stableNoKind
}
return strings.Join([]string{g, v, k}, legacyFieldSeparator)
return strings.Join([]string{g, v, k}, stableFieldSeparator)
}
// ApiVersion returns the combination of Group and Version
func (x Gvk) ApiVersion() string {
var sb strings.Builder
if x.Group != "" {
sb.WriteString(x.Group)
sb.WriteString("/")
return x.Group + "/" + x.Version
}
sb.WriteString(x.Version)
return sb.String()
return x.Version
}
// StringWoEmptyField returns a string representation of the GVK. Non-exist
@@ -203,7 +200,7 @@ func (x Gvk) IsLessThan(o Gvk) bool {
if indexI != indexJ {
return indexI < indexJ
}
return x.legacySortString() < o.legacySortString()
return x.stableSortString() < o.stableSortString()
}
// IsSelected returns true if `selector` selects `x`; otherwise, false.

View File

@@ -60,25 +60,6 @@ func (id ResId) String() string {
[]string{id.Gvk.String(), strings.Join([]string{nm, ns}, fieldSep)}, separator)
}
// LegacySortString returns an older version of String() that LegacyOrderTransformer depends on
// to keep its ordering stable across Kustomize versions
func (id ResId) LegacySortString() string {
legacyNoNamespace := "~X"
legacyNoName := "~N"
legacySeparator := "|"
ns := id.Namespace
if ns == "" {
ns = legacyNoNamespace
}
nm := id.Name
if nm == "" {
nm = legacyNoName
}
return strings.Join(
[]string{id.Gvk.String(), ns, nm}, legacySeparator)
}
func FromString(s string) ResId {
values := strings.Split(s, separator)
gvk := GvkFromString(values[0])