stackbuilders

package
v0.0.0-...-270f78c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 31, 2023 License: Zlib Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ComposeStackFileContentBuilder

type ComposeStackFileContentBuilder struct {
	FileContentMethodStackBuilder
	SecurityContext *security.RestrictedRequestContext
}

func CreateComposeStackFileContentBuilder

func CreateComposeStackFileContentBuilder(securityContext *security.RestrictedRequestContext,
	dataStore dataservices.DataStore,
	fileService portainer.FileService,
	stackDeployer deployments.StackDeployer) *ComposeStackFileContentBuilder

CreateComposeStackFileContentBuilder creates a builder for the compose stack (docker standalone) that will be deployed by file content method

func (*ComposeStackFileContentBuilder) Deploy

func (*ComposeStackFileContentBuilder) SetFileContent

func (*ComposeStackFileContentBuilder) SetGeneralInfo

func (*ComposeStackFileContentBuilder) SetUniqueInfo

type ComposeStackFileUploadBuilder

type ComposeStackFileUploadBuilder struct {
	FileUploadMethodStackBuilder
	SecurityContext *security.RestrictedRequestContext
}

func CreateComposeStackFileUploadBuilder

func CreateComposeStackFileUploadBuilder(securityContext *security.RestrictedRequestContext,
	dataStore dataservices.DataStore,
	fileService portainer.FileService,
	stackDeployer deployments.StackDeployer) *ComposeStackFileUploadBuilder

CreateComposeStackFileUploadBuilder creates a builder for the compose stack (docker standalone) that will be deployed by file upload method

func (*ComposeStackFileUploadBuilder) Deploy

func (*ComposeStackFileUploadBuilder) SetGeneralInfo

func (*ComposeStackFileUploadBuilder) SetUniqueInfo

func (*ComposeStackFileUploadBuilder) SetUploadedFile

type ComposeStackGitBuilder

type ComposeStackGitBuilder struct {
	GitMethodStackBuilder
	SecurityContext *security.RestrictedRequestContext
}

func CreateComposeStackGitBuilder

func CreateComposeStackGitBuilder(securityContext *security.RestrictedRequestContext,
	dataStore dataservices.DataStore,
	fileService portainer.FileService,
	gitService portainer.GitService,
	scheduler *scheduler.Scheduler,
	stackDeployer deployments.StackDeployer) *ComposeStackGitBuilder

CreateComposeStackGitBuilder creates a builder for the compose stack (docker standalone) that will be deployed by git repository method

func (*ComposeStackGitBuilder) Deploy

func (*ComposeStackGitBuilder) SetAutoUpdate

func (*ComposeStackGitBuilder) SetGeneralInfo

func (b *ComposeStackGitBuilder) SetGeneralInfo(payload *StackPayload, endpoint *portainer.Endpoint) GitMethodStackBuildProcess

func (*ComposeStackGitBuilder) SetGitRepository

func (b *ComposeStackGitBuilder) SetGitRepository(payload *StackPayload) GitMethodStackBuildProcess

func (*ComposeStackGitBuilder) SetUniqueInfo

type FileContentMethodStackBuildProcess

type FileContentMethodStackBuildProcess interface {
	// Set general stack information
	SetGeneralInfo(payload *StackPayload, endpoint *portainer.Endpoint) FileContentMethodStackBuildProcess
	// Set unique stack information, e.g. swarm stack has swarmID, kubernetes stack has namespace
	SetUniqueInfo(payload *StackPayload) FileContentMethodStackBuildProcess
	// Deploy stack based on the configuration
	Deploy(payload *StackPayload, endpoint *portainer.Endpoint) FileContentMethodStackBuildProcess
	// Save the stack information to database
	SaveStack() (*portainer.Stack, *httperror.HandlerError)
	// Get reponse from http request. Use if it is needed
	GetResponse() string
	// Process the file content
	SetFileContent(payload *StackPayload) FileContentMethodStackBuildProcess
}

type FileContentMethodStackBuilder

type FileContentMethodStackBuilder struct {
	StackBuilder
}

func (*FileContentMethodStackBuilder) Deploy

func (*FileContentMethodStackBuilder) GetResponse

func (b *FileContentMethodStackBuilder) GetResponse() string

func (*FileContentMethodStackBuilder) SetFileContent

func (*FileContentMethodStackBuilder) SetGeneralInfo

func (*FileContentMethodStackBuilder) SetUniqueInfo

type FileUploadMethodStackBuildProcess

type FileUploadMethodStackBuildProcess interface {
	// Set general stack information
	SetGeneralInfo(payload *StackPayload, endpoint *portainer.Endpoint) FileUploadMethodStackBuildProcess
	// Set unique stack information, e.g. swarm stack has swarmID, kubernetes stack has namespace
	SetUniqueInfo(payload *StackPayload) FileUploadMethodStackBuildProcess
	// Deploy stack based on the configuration
	Deploy(payload *StackPayload, endpoint *portainer.Endpoint) FileUploadMethodStackBuildProcess
	// Save the stack information to database
	SaveStack() (*portainer.Stack, *httperror.HandlerError)
	// Get reponse from http request. Use if it is needed
	GetResponse() string
	// Process the upload file
	SetUploadedFile(payload *StackPayload) FileUploadMethodStackBuildProcess
}

type FileUploadMethodStackBuilder

type FileUploadMethodStackBuilder struct {
	StackBuilder
}

func (*FileUploadMethodStackBuilder) Deploy

func (*FileUploadMethodStackBuilder) GetResponse

func (b *FileUploadMethodStackBuilder) GetResponse() string

func (*FileUploadMethodStackBuilder) SetGeneralInfo

func (*FileUploadMethodStackBuilder) SetUniqueInfo

func (*FileUploadMethodStackBuilder) SetUploadedFile

type GitMethodStackBuildProcess

type GitMethodStackBuildProcess interface {
	// Set general stack information
	SetGeneralInfo(payload *StackPayload, endpoint *portainer.Endpoint) GitMethodStackBuildProcess
	// Set unique stack information, e.g. swarm stack has swarmID, kubernetes stack has namespace
	SetUniqueInfo(payload *StackPayload) GitMethodStackBuildProcess
	// Deploy stack based on the configuration
	Deploy(payload *StackPayload, endpoint *portainer.Endpoint) GitMethodStackBuildProcess
	// Save the stack information to database and return the stack object
	SaveStack() (*portainer.Stack, *httperror.HandlerError)
	// Get reponse from http request. Use if it is needed
	GetResponse() string
	// Set git repository configuration
	SetGitRepository(payload *StackPayload) GitMethodStackBuildProcess
	// Set auto update setting
	SetAutoUpdate(payload *StackPayload) GitMethodStackBuildProcess
}

type GitMethodStackBuilder

type GitMethodStackBuilder struct {
	StackBuilder
	// contains filtered or unexported fields
}

func (*GitMethodStackBuilder) Deploy

func (*GitMethodStackBuilder) GetResponse

func (b *GitMethodStackBuilder) GetResponse() string

func (*GitMethodStackBuilder) SetAutoUpdate

func (*GitMethodStackBuilder) SetGeneralInfo

func (b *GitMethodStackBuilder) SetGeneralInfo(payload *StackPayload, endpoint *portainer.Endpoint) GitMethodStackBuildProcess

func (*GitMethodStackBuilder) SetGitRepository

func (b *GitMethodStackBuilder) SetGitRepository(payload *StackPayload) GitMethodStackBuildProcess

func (*GitMethodStackBuilder) SetUniqueInfo

type K8sStackFileContentBuilder

type K8sStackFileContentBuilder struct {
	FileContentMethodStackBuilder

	KuberneteDeployer portainer.KubernetesDeployer
	User              *portainer.User
	// contains filtered or unexported fields
}

func CreateK8sStackFileContentBuilder

func CreateK8sStackFileContentBuilder(dataStore dataservices.DataStore,
	fileService portainer.FileService,
	stackDeployer deployments.StackDeployer,
	kuberneteDeployer portainer.KubernetesDeployer,
	user *portainer.User) *K8sStackFileContentBuilder

CreateK8sStackFileContentBuilder creates a builder for the Kubernetes stack that will be deployed by file content method

func (*K8sStackFileContentBuilder) Deploy

func (*K8sStackFileContentBuilder) GetResponse

func (b *K8sStackFileContentBuilder) GetResponse() string

func (*K8sStackFileContentBuilder) SetFileContent

func (*K8sStackFileContentBuilder) SetGeneralInfo

func (*K8sStackFileContentBuilder) SetUniqueInfo

type KubernetesStackGitBuilder

type KubernetesStackGitBuilder struct {
	GitMethodStackBuilder

	KuberneteDeployer portainer.KubernetesDeployer
	// contains filtered or unexported fields
}

func CreateKubernetesStackGitBuilder

func CreateKubernetesStackGitBuilder(dataStore dataservices.DataStore,
	fileService portainer.FileService,
	gitService portainer.GitService,
	scheduler *scheduler.Scheduler,
	stackDeployer deployments.StackDeployer,
	kuberneteDeployer portainer.KubernetesDeployer,
	user *portainer.User) *KubernetesStackGitBuilder

CreateKuberntesStackGitBuilder creates a builder for the Kubernetes stack that will be deployed by git repository method

func (*KubernetesStackGitBuilder) Deploy

func (*KubernetesStackGitBuilder) GetResponse

func (b *KubernetesStackGitBuilder) GetResponse() string

func (*KubernetesStackGitBuilder) SetAutoUpdate

func (*KubernetesStackGitBuilder) SetGeneralInfo

func (*KubernetesStackGitBuilder) SetGitRepository

func (*KubernetesStackGitBuilder) SetUniqueInfo

type KubernetesStackUrlBuilder

type KubernetesStackUrlBuilder struct {
	UrlMethodStackBuilder

	KuberneteDeployer portainer.KubernetesDeployer
	// contains filtered or unexported fields
}

func CreateKubernetesStackUrlBuilder

func CreateKubernetesStackUrlBuilder(dataStore dataservices.DataStore,
	fileService portainer.FileService,
	stackDeployer deployments.StackDeployer,
	kuberneteDeployer portainer.KubernetesDeployer,
	user *portainer.User) *KubernetesStackUrlBuilder

CreateKuberntesStackGitBuilder creates a builder for the Kubernetes stack that will be deployed by git repository method

func (*KubernetesStackUrlBuilder) Deploy

func (*KubernetesStackUrlBuilder) GetResponse

func (b *KubernetesStackUrlBuilder) GetResponse() string

func (*KubernetesStackUrlBuilder) SetGeneralInfo

func (*KubernetesStackUrlBuilder) SetURL

func (*KubernetesStackUrlBuilder) SetUniqueInfo

type RepositoryConfigPayload

type RepositoryConfigPayload struct {
	// URL of a Git repository hosting the Stack file
	URL string `example:"https://github.com/openfaas/faas" validate:"required"`
	// Reference name of a Git repository hosting the Stack file
	ReferenceName string `example:"refs/heads/master"`
	// Use basic authentication to clone the Git repository
	Authentication bool `example:"true"`
	// Username used in basic authentication. Required when RepositoryAuthentication is true
	// and RepositoryGitCredentialID is 0
	Username string `example:"myGitUsername"`
	// Password used in basic authentication. Required when RepositoryAuthentication is true
	// and RepositoryGitCredentialID is 0
	Password string `example:"myGitPassword"`
}

type StackBuilder

type StackBuilder struct {
	// contains filtered or unexported fields
}

func CreateStackBuilder

func CreateStackBuilder(dataStore dataservices.DataStore, fileService portainer.FileService, deployer deployments.StackDeployer) StackBuilder

func (*StackBuilder) SaveStack

func (b *StackBuilder) SaveStack() (*portainer.Stack, *httperror.HandlerError)

type StackBuilderDirector

type StackBuilderDirector struct {
	// contains filtered or unexported fields
}

func NewStackBuilderDirector

func NewStackBuilderDirector(b interface{}) *StackBuilderDirector

func (*StackBuilderDirector) Build

type StackPayload

type StackPayload struct {
	// Name of the stack
	Name string `example:"myStack" validate:"required"`
	// Swarm cluster identifier
	SwarmID string `example:"jpofkc0i9uo9wtx1zesuk649w" validate:"required"`
	// Stack file data in byte format. Used by file upload method
	StackFileContentBytes []byte
	// Stack file data in string format. Used by file content method
	StackFileContent string
	Webhook          string
	// A list of environment(endpoint) variables used during stack deployment
	Env []portainer.Pair
	// Optional auto update configuration
	AutoUpdate *portainer.StackAutoUpdate
	// Whether the stack is from a app template
	FromAppTemplate bool `example:"false"`
	// Kubernetes stack name
	StackName string
	// Whether the kubernetes stack config file is compose format
	ComposeFormat bool
	// Kubernetes stack namespace
	Namespace string
	// Path to the k8s Stack file. Used by k8s git repository method
	ManifestFile string
	// URL to the k8s Stack file. Used by k8s git repository method
	ManifestURL string
	// Path to the Stack file inside the Git repository
	ComposeFile string `example:"docker-compose.yml" default:"docker-compose.yml"`
	// Applicable when deploying with multiple stack files
	AdditionalFiles []string `example:"[nz.compose.yml, uat.compose.yml]"`
	// Git repository configuration of a stack
	RepositoryConfigPayload
}

StackPayload contains all the fields for creating a stack with all kinds of methods

type SwarmStackFileContentBuilder

type SwarmStackFileContentBuilder struct {
	FileContentMethodStackBuilder
	SecurityContext *security.RestrictedRequestContext
}

func CreateSwarmStackFileContentBuilder

func CreateSwarmStackFileContentBuilder(securityContext *security.RestrictedRequestContext,
	dataStore dataservices.DataStore,
	fileService portainer.FileService,
	stackDeployer deployments.StackDeployer) *SwarmStackFileContentBuilder

CreateSwarmStackFileContentBuilder creates a builder for the swarm stack that will be deployed by file content method

func (*SwarmStackFileContentBuilder) Deploy

func (*SwarmStackFileContentBuilder) SetFileContent

func (*SwarmStackFileContentBuilder) SetGeneralInfo

func (*SwarmStackFileContentBuilder) SetUniqueInfo

type SwarmStackFileUploadBuilder

type SwarmStackFileUploadBuilder struct {
	FileUploadMethodStackBuilder
	SecurityContext *security.RestrictedRequestContext
}

func CreateSwarmStackFileUploadBuilder

func CreateSwarmStackFileUploadBuilder(securityContext *security.RestrictedRequestContext,
	dataStore dataservices.DataStore,
	fileService portainer.FileService,
	stackDeployer deployments.StackDeployer) *SwarmStackFileUploadBuilder

CreateSwarmStackFileUploadBuilder creates a builder for the swarm stack that will be deployed by file upload method

func (*SwarmStackFileUploadBuilder) Deploy

func (*SwarmStackFileUploadBuilder) SetGeneralInfo

func (*SwarmStackFileUploadBuilder) SetUniqueInfo

func (*SwarmStackFileUploadBuilder) SetUploadedFile

type SwarmStackGitBuilder

type SwarmStackGitBuilder struct {
	GitMethodStackBuilder
	SecurityContext *security.RestrictedRequestContext
}

func CreateSwarmStackGitBuilder

func CreateSwarmStackGitBuilder(securityContext *security.RestrictedRequestContext,
	dataStore dataservices.DataStore,
	fileService portainer.FileService,
	gitService portainer.GitService,
	scheduler *scheduler.Scheduler,
	stackDeployer deployments.StackDeployer) *SwarmStackGitBuilder

CreateSwarmStackGitBuilder creates a builder for the swarm stack that will be deployed by git repository method

func (*SwarmStackGitBuilder) Deploy

Deploy creates deployment configuration for swarm stack

func (*SwarmStackGitBuilder) SetAutoUpdate

func (*SwarmStackGitBuilder) SetGeneralInfo

func (b *SwarmStackGitBuilder) SetGeneralInfo(payload *StackPayload, endpoint *portainer.Endpoint) GitMethodStackBuildProcess

func (*SwarmStackGitBuilder) SetGitRepository

func (b *SwarmStackGitBuilder) SetGitRepository(payload *StackPayload) GitMethodStackBuildProcess

func (*SwarmStackGitBuilder) SetUniqueInfo

type UrlMethodStackBuildProcess

type UrlMethodStackBuildProcess interface {
	// Set general stack information
	SetGeneralInfo(payload *StackPayload, endpoint *portainer.Endpoint) UrlMethodStackBuildProcess
	// Set unique stack information, e.g. swarm stack has swarmID, kubernetes stack has namespace
	SetUniqueInfo(payload *StackPayload) UrlMethodStackBuildProcess
	// Deploy stack based on the configuration
	Deploy(payload *StackPayload, endpoint *portainer.Endpoint) UrlMethodStackBuildProcess
	// Save the stack information to database
	SaveStack() (*portainer.Stack, *httperror.HandlerError)
	// Get reponse from http request. Use if it is needed
	GetResponse() string
	// Set manifest url
	SetURL(payload *StackPayload) UrlMethodStackBuildProcess
}

type UrlMethodStackBuilder

type UrlMethodStackBuilder struct {
	StackBuilder
}

func (*UrlMethodStackBuilder) Deploy

func (*UrlMethodStackBuilder) GetResponse

func (b *UrlMethodStackBuilder) GetResponse() string

func (*UrlMethodStackBuilder) SetGeneralInfo

func (b *UrlMethodStackBuilder) SetGeneralInfo(payload *StackPayload, endpoint *portainer.Endpoint) UrlMethodStackBuildProcess

func (*UrlMethodStackBuilder) SetURL

func (*UrlMethodStackBuilder) SetUniqueInfo

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL