mirror of https://github.com/portainer/portainer
fix(edgestack): external label on k8s application deployed by edgestack [BE-12318] (#1385)
parent
6866faf4fe
commit
14d67d1ec7
|
|
@ -70,6 +70,13 @@ type (
|
||||||
// ReadyRePullImage is a flag to indicate whether the auto update is trigger to re-pull image
|
// ReadyRePullImage is a flag to indicate whether the auto update is trigger to re-pull image
|
||||||
// Deprecated(2.36): use DeployerOptionsPayload.ForceRecreate instead
|
// Deprecated(2.36): use DeployerOptionsPayload.ForceRecreate instead
|
||||||
ReadyRePullImage bool
|
ReadyRePullImage bool
|
||||||
|
|
||||||
|
// CreatedBy is the username that created this stack
|
||||||
|
// Used for adding labels to Kubernetes manifests
|
||||||
|
CreatedBy string
|
||||||
|
// CreatedByUserId is the user ID that created this stack
|
||||||
|
// Used for adding labels to Kubernetes manifests
|
||||||
|
CreatedByUserId string
|
||||||
}
|
}
|
||||||
|
|
||||||
DeployerOptionsPayload struct {
|
DeployerOptionsPayload struct {
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ type K8sApplication struct {
|
||||||
Resource K8sApplicationResource `json:"Resource,omitempty"`
|
Resource K8sApplicationResource `json:"Resource,omitempty"`
|
||||||
HorizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscaler `json:"HorizontalPodAutoscaler,omitempty" swaggerignore:"true"`
|
HorizontalPodAutoscaler *autoscalingv2.HorizontalPodAutoscaler `json:"HorizontalPodAutoscaler,omitempty" swaggerignore:"true"`
|
||||||
CustomResourceMetadata CustomResourceMetadata `json:"CustomResourceMetadata,omitempty"`
|
CustomResourceMetadata CustomResourceMetadata `json:"CustomResourceMetadata,omitempty"`
|
||||||
|
StackKind string `json:"StackKind,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Metadata struct {
|
type Metadata struct {
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,9 @@ const (
|
||||||
labelPortainerAppStackID = "io.portainer.kubernetes.application.stackid"
|
labelPortainerAppStackID = "io.portainer.kubernetes.application.stackid"
|
||||||
labelPortainerAppName = "io.portainer.kubernetes.application.name"
|
labelPortainerAppName = "io.portainer.kubernetes.application.name"
|
||||||
labelPortainerAppOwner = "io.portainer.kubernetes.application.owner"
|
labelPortainerAppOwner = "io.portainer.kubernetes.application.owner"
|
||||||
|
labelPortainerAppOwnerId = "io.portainer.kubernetes.application.owner.id"
|
||||||
labelPortainerAppKind = "io.portainer.kubernetes.application.kind"
|
labelPortainerAppKind = "io.portainer.kubernetes.application.kind"
|
||||||
|
labelPortainerAppStackKind = "io.portainer.kubernetes.application.stackKind"
|
||||||
)
|
)
|
||||||
|
|
||||||
// KubeAppLabels are labels applied to all resources deployed in a kubernetes stack
|
// KubeAppLabels are labels applied to all resources deployed in a kubernetes stack
|
||||||
|
|
@ -25,18 +27,28 @@ type KubeAppLabels struct {
|
||||||
StackID int
|
StackID int
|
||||||
StackName string
|
StackName string
|
||||||
Owner string
|
Owner string
|
||||||
|
OwnerId string
|
||||||
Kind string
|
Kind string
|
||||||
|
StackKind string
|
||||||
}
|
}
|
||||||
|
|
||||||
// ToMap converts KubeAppLabels to a map[string]string
|
// ToMap converts KubeAppLabels to a map[string]string
|
||||||
func (kal *KubeAppLabels) ToMap() map[string]string {
|
func (kal *KubeAppLabels) ToMap() map[string]string {
|
||||||
return map[string]string{
|
labels := map[string]string{
|
||||||
labelPortainerAppStackID: strconv.Itoa(kal.StackID),
|
labelPortainerAppStackID: strconv.Itoa(kal.StackID),
|
||||||
labelPortainerAppStack: stackutils.SanitizeLabel(kal.StackName),
|
labelPortainerAppStack: stackutils.SanitizeLabel(kal.StackName),
|
||||||
labelPortainerAppName: stackutils.SanitizeLabel(kal.StackName),
|
labelPortainerAppName: stackutils.SanitizeLabel(kal.StackName),
|
||||||
labelPortainerAppOwner: stackutils.SanitizeLabel(kal.Owner),
|
labelPortainerAppOwner: stackutils.SanitizeLabel(kal.Owner),
|
||||||
labelPortainerAppKind: kal.Kind,
|
labelPortainerAppKind: kal.Kind,
|
||||||
|
labelPortainerAppOwnerId: kal.OwnerId,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Add optional labels only if they are non-empty
|
||||||
|
if kal.StackKind != "" {
|
||||||
|
labels[labelPortainerAppStackKind] = kal.StackKind
|
||||||
|
}
|
||||||
|
|
||||||
|
return labels
|
||||||
}
|
}
|
||||||
|
|
||||||
// GetHelmAppLabels returns the labels to be applied to portainer deployed helm applications
|
// GetHelmAppLabels returns the labels to be applied to portainer deployed helm applications
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,7 @@ metadata:
|
||||||
io.portainer.kubernetes.application.kind: git
|
io.portainer.kubernetes.application.kind: git
|
||||||
io.portainer.kubernetes.application.name: best-name
|
io.portainer.kubernetes.application.name: best-name
|
||||||
io.portainer.kubernetes.application.owner: best-owner
|
io.portainer.kubernetes.application.owner: best-owner
|
||||||
|
io.portainer.kubernetes.application.owner.id: ""
|
||||||
io.portainer.kubernetes.application.stack: best-name
|
io.portainer.kubernetes.application.stack: best-name
|
||||||
io.portainer.kubernetes.application.stackid: "123"
|
io.portainer.kubernetes.application.stackid: "123"
|
||||||
name: busybox
|
name: busybox
|
||||||
|
|
@ -88,6 +89,7 @@ metadata:
|
||||||
io.portainer.kubernetes.application.kind: git
|
io.portainer.kubernetes.application.kind: git
|
||||||
io.portainer.kubernetes.application.name: best-name
|
io.portainer.kubernetes.application.name: best-name
|
||||||
io.portainer.kubernetes.application.owner: best-owner
|
io.portainer.kubernetes.application.owner: best-owner
|
||||||
|
io.portainer.kubernetes.application.owner.id: ""
|
||||||
io.portainer.kubernetes.application.stack: best-name
|
io.portainer.kubernetes.application.stack: best-name
|
||||||
io.portainer.kubernetes.application.stackid: "123"
|
io.portainer.kubernetes.application.stackid: "123"
|
||||||
name: busybox
|
name: busybox
|
||||||
|
|
@ -177,6 +179,7 @@ items:
|
||||||
io.portainer.kubernetes.application.kind: git
|
io.portainer.kubernetes.application.kind: git
|
||||||
io.portainer.kubernetes.application.name: best-name
|
io.portainer.kubernetes.application.name: best-name
|
||||||
io.portainer.kubernetes.application.owner: best-owner
|
io.portainer.kubernetes.application.owner: best-owner
|
||||||
|
io.portainer.kubernetes.application.owner.id: ""
|
||||||
io.portainer.kubernetes.application.stack: best-name
|
io.portainer.kubernetes.application.stack: best-name
|
||||||
io.portainer.kubernetes.application.stackid: "123"
|
io.portainer.kubernetes.application.stackid: "123"
|
||||||
name: web
|
name: web
|
||||||
|
|
@ -198,6 +201,7 @@ items:
|
||||||
io.portainer.kubernetes.application.kind: git
|
io.portainer.kubernetes.application.kind: git
|
||||||
io.portainer.kubernetes.application.name: best-name
|
io.portainer.kubernetes.application.name: best-name
|
||||||
io.portainer.kubernetes.application.owner: best-owner
|
io.portainer.kubernetes.application.owner: best-owner
|
||||||
|
io.portainer.kubernetes.application.owner.id: ""
|
||||||
io.portainer.kubernetes.application.stack: best-name
|
io.portainer.kubernetes.application.stack: best-name
|
||||||
io.portainer.kubernetes.application.stackid: "123"
|
io.portainer.kubernetes.application.stackid: "123"
|
||||||
name: redis
|
name: redis
|
||||||
|
|
@ -221,6 +225,7 @@ items:
|
||||||
io.portainer.kubernetes.application.kind: git
|
io.portainer.kubernetes.application.kind: git
|
||||||
io.portainer.kubernetes.application.name: best-name
|
io.portainer.kubernetes.application.name: best-name
|
||||||
io.portainer.kubernetes.application.owner: best-owner
|
io.portainer.kubernetes.application.owner: best-owner
|
||||||
|
io.portainer.kubernetes.application.owner.id: ""
|
||||||
io.portainer.kubernetes.application.stack: best-name
|
io.portainer.kubernetes.application.stack: best-name
|
||||||
io.portainer.kubernetes.application.stackid: "123"
|
io.portainer.kubernetes.application.stackid: "123"
|
||||||
name: web
|
name: web
|
||||||
|
|
@ -303,6 +308,7 @@ metadata:
|
||||||
io.portainer.kubernetes.application.kind: git
|
io.portainer.kubernetes.application.kind: git
|
||||||
io.portainer.kubernetes.application.name: best-name
|
io.portainer.kubernetes.application.name: best-name
|
||||||
io.portainer.kubernetes.application.owner: best-owner
|
io.portainer.kubernetes.application.owner: best-owner
|
||||||
|
io.portainer.kubernetes.application.owner.id: ""
|
||||||
io.portainer.kubernetes.application.stack: best-name
|
io.portainer.kubernetes.application.stack: best-name
|
||||||
io.portainer.kubernetes.application.stackid: "123"
|
io.portainer.kubernetes.application.stackid: "123"
|
||||||
name: busybox
|
name: busybox
|
||||||
|
|
@ -329,6 +335,7 @@ metadata:
|
||||||
io.portainer.kubernetes.application.kind: git
|
io.portainer.kubernetes.application.kind: git
|
||||||
io.portainer.kubernetes.application.name: best-name
|
io.portainer.kubernetes.application.name: best-name
|
||||||
io.portainer.kubernetes.application.owner: best-owner
|
io.portainer.kubernetes.application.owner: best-owner
|
||||||
|
io.portainer.kubernetes.application.owner.id: ""
|
||||||
io.portainer.kubernetes.application.stack: best-name
|
io.portainer.kubernetes.application.stack: best-name
|
||||||
io.portainer.kubernetes.application.stackid: "123"
|
io.portainer.kubernetes.application.stackid: "123"
|
||||||
name: web
|
name: web
|
||||||
|
|
@ -348,6 +355,7 @@ metadata:
|
||||||
io.portainer.kubernetes.application.kind: git
|
io.portainer.kubernetes.application.kind: git
|
||||||
io.portainer.kubernetes.application.name: best-name
|
io.portainer.kubernetes.application.name: best-name
|
||||||
io.portainer.kubernetes.application.owner: best-owner
|
io.portainer.kubernetes.application.owner: best-owner
|
||||||
|
io.portainer.kubernetes.application.owner.id: ""
|
||||||
io.portainer.kubernetes.application.stack: best-name
|
io.portainer.kubernetes.application.stack: best-name
|
||||||
io.portainer.kubernetes.application.stackid: "123"
|
io.portainer.kubernetes.application.stackid: "123"
|
||||||
name: busybox
|
name: busybox
|
||||||
|
|
@ -397,6 +405,7 @@ metadata:
|
||||||
io.portainer.kubernetes.application.kind: git
|
io.portainer.kubernetes.application.kind: git
|
||||||
io.portainer.kubernetes.application.name: best-name
|
io.portainer.kubernetes.application.name: best-name
|
||||||
io.portainer.kubernetes.application.owner: best-owner
|
io.portainer.kubernetes.application.owner: best-owner
|
||||||
|
io.portainer.kubernetes.application.owner.id: ""
|
||||||
io.portainer.kubernetes.application.stack: best-name
|
io.portainer.kubernetes.application.stack: best-name
|
||||||
io.portainer.kubernetes.application.stackid: "123"
|
io.portainer.kubernetes.application.stackid: "123"
|
||||||
name: web
|
name: web
|
||||||
|
|
@ -619,6 +628,7 @@ metadata:
|
||||||
io.portainer.kubernetes.application.kind: git
|
io.portainer.kubernetes.application.kind: git
|
||||||
io.portainer.kubernetes.application.name: best-name
|
io.portainer.kubernetes.application.name: best-name
|
||||||
io.portainer.kubernetes.application.owner: best-owner
|
io.portainer.kubernetes.application.owner: best-owner
|
||||||
|
io.portainer.kubernetes.application.owner.id: ""
|
||||||
io.portainer.kubernetes.application.stack: best-name
|
io.portainer.kubernetes.application.stack: best-name
|
||||||
io.portainer.kubernetes.application.stackid: "123"
|
io.portainer.kubernetes.application.stackid: "123"
|
||||||
---
|
---
|
||||||
|
|
@ -630,6 +640,7 @@ metadata:
|
||||||
io.portainer.kubernetes.application.kind: git
|
io.portainer.kubernetes.application.kind: git
|
||||||
io.portainer.kubernetes.application.name: best-name
|
io.portainer.kubernetes.application.name: best-name
|
||||||
io.portainer.kubernetes.application.owner: best-owner
|
io.portainer.kubernetes.application.owner: best-owner
|
||||||
|
io.portainer.kubernetes.application.owner.id: ""
|
||||||
io.portainer.kubernetes.application.stack: best-name
|
io.portainer.kubernetes.application.stack: best-name
|
||||||
io.portainer.kubernetes.application.stackid: "123"
|
io.portainer.kubernetes.application.stackid: "123"
|
||||||
`
|
`
|
||||||
|
|
|
||||||
|
|
@ -347,6 +347,10 @@ type (
|
||||||
DeploymentType EdgeStackDeploymentType `json:"DeploymentType"`
|
DeploymentType EdgeStackDeploymentType `json:"DeploymentType"`
|
||||||
// Uses the manifest's namespaces instead of the default one
|
// Uses the manifest's namespaces instead of the default one
|
||||||
UseManifestNamespaces bool
|
UseManifestNamespaces bool
|
||||||
|
// The username id which created this stack
|
||||||
|
CreatedByUserId string `example:"1"`
|
||||||
|
// The username which created this stack
|
||||||
|
CreatedBy string `example:"admin"`
|
||||||
}
|
}
|
||||||
|
|
||||||
EdgeStackStatusForEnv struct {
|
EdgeStackStatusForEnv struct {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue