refactor(edge): move stack response to a shared config [EE-5564] (#9033)

pull/9073/head
Chaim Lev-Ari 1 year ago committed by GitHub
parent 9d3f13ac92
commit 79822e1d3b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,48 @@
package edge
type (
// StackPayload represents the payload sent to the agent
StackPayload struct {
// ID of the stack
ID int
// Name of the stack
Name string
// Content of the stack file
FileContent string
// Namespace to use for kubernetes stack. Keep empty to use the manifest namespace.
Namespace string
// Version of the stack file
Version int
// Content of the .env file
DotEnvFileContent string
// RegistryCredentials holds the credentials for a Docker registry.
//
// Used only for EE
RegistryCredentials []RegistryCredentials
// PrePullImage is a flag indicating if the agent should pull the image before deploying the stack.
//
// Used only for EE
PrePullImage bool
// RePullImage is a flag indicating if the agent should pull the image if it is already present on the node.
//
// Used only for EE
RePullImage bool
// RetryDeploy is a flag indicating if the agent should retry to deploy the stack if it fails.
//
// Used only for EE
RetryDeploy bool
// EdgeUpdateID is the ID of the edge update related to this stack.
//
// Used only for EE
EdgeUpdateID int
}
// RegistryCredentials holds the credentials for a Docker registry.
RegistryCredentials struct {
ServerURL string
Username string
Secret string
}
)

@ -10,19 +10,12 @@ import (
"github.com/portainer/libhttp/request" "github.com/portainer/libhttp/request"
"github.com/portainer/libhttp/response" "github.com/portainer/libhttp/response"
portainer "github.com/portainer/portainer/api" portainer "github.com/portainer/portainer/api"
"github.com/portainer/portainer/api/edge"
"github.com/portainer/portainer/api/http/middlewares" "github.com/portainer/portainer/api/http/middlewares"
"github.com/portainer/portainer/api/internal/endpointutils" "github.com/portainer/portainer/api/internal/endpointutils"
"github.com/portainer/portainer/api/kubernetes" "github.com/portainer/portainer/api/kubernetes"
) )
type configResponse struct {
StackFileContent string
DotEnvFileContent string
Name string
// Namespace to use for Kubernetes manifests, leave empty to use the namespaces defined in the manifest
Namespace string
}
// @summary Inspect an Edge Stack for an Environment(Endpoint) // @summary Inspect an Edge Stack for an Environment(Endpoint)
// @description **Access policy**: public // @description **Access policy**: public
// @tags edge, endpoints, edge_stacks // @tags edge, endpoints, edge_stacks
@ -30,7 +23,7 @@ type configResponse struct {
// @produce json // @produce json
// @param id path int true "environment(endpoint) Id" // @param id path int true "environment(endpoint) Id"
// @param stackId path int true "EdgeStack Id" // @param stackId path int true "EdgeStack Id"
// @success 200 {object} configResponse // @success 200 {object} edge.StackPayload
// @failure 500 // @failure 500
// @failure 400 // @failure 400
// @failure 404 // @failure 404
@ -92,9 +85,9 @@ func (handler *Handler) endpointEdgeStackInspect(w http.ResponseWriter, r *http.
} }
} }
return response.JSON(w, configResponse{ return response.JSON(w, edge.StackPayload{
StackFileContent: string(stackFileContent),
DotEnvFileContent: string(dotEnvFileContent), DotEnvFileContent: string(dotEnvFileContent),
FileContent: string(stackFileContent),
Name: edgeStack.Name, Name: edgeStack.Name,
Namespace: namespace, Namespace: namespace,
}) })

Loading…
Cancel
Save