provisioner

package
v0.20.0 Latest Latest
Warning

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

Go to latest
Published: Jun 10, 2020 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultKubernetesVersion = "0.0.0"

DefaultKubernetesVersion is the default value for a kubernetes cluster version value.

Variables

This section is empty.

Functions

This section is empty.

Types

type HelmListOutput added in v0.14.0

type HelmListOutput struct {
	Releases []helmReleaseJSON `json:"Releases"`
}

HelmListOutput is a struct for holding the unmarshaled representation of the output from helm list --output json

type KopsProvisioner

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

KopsProvisioner provisions clusters using kops+terraform.

func NewKopsProvisioner

func NewKopsProvisioner(s3StateStore, owner string, useExistingAWSResources bool,
	resourceUtil *utils.ResourceUtil, logger log.FieldLogger, store model.InstallationDatabaseStoreInterface) *KopsProvisioner

NewKopsProvisioner creates a new KopsProvisioner. TODO(gsagula): Consider replacing all these paramaters with a struct for readability.

func (*KopsProvisioner) CreateCluster

func (provisioner *KopsProvisioner) CreateCluster(cluster *model.Cluster, awsClient aws.AWS) error

CreateCluster creates a cluster using kops and terraform.

func (*KopsProvisioner) CreateClusterInstallation

func (provisioner *KopsProvisioner) CreateClusterInstallation(cluster *model.Cluster, installation *model.Installation, clusterInstallation *model.ClusterInstallation, awsClient aws.AWS) error

CreateClusterInstallation creates a Mattermost installation within the given cluster.

func (*KopsProvisioner) DeleteCluster

func (provisioner *KopsProvisioner) DeleteCluster(cluster *model.Cluster, awsClient aws.AWS) error

DeleteCluster deletes a previously created cluster using kops and terraform.

func (*KopsProvisioner) DeleteClusterInstallation

func (provisioner *KopsProvisioner) DeleteClusterInstallation(cluster *model.Cluster, installation *model.Installation, clusterInstallation *model.ClusterInstallation) error

DeleteClusterInstallation deletes a Mattermost installation within the given cluster.

func (*KopsProvisioner) ExecMattermostCLI added in v0.2.0

func (provisioner *KopsProvisioner) ExecMattermostCLI(cluster *model.Cluster, clusterInstallation *model.ClusterInstallation, args ...string) ([]byte, error)

ExecMattermostCLI invokes the Mattermost CLI for the given cluster installation with the given args.

func (*KopsProvisioner) GetClusterInstallationResource

func (provisioner *KopsProvisioner) GetClusterInstallationResource(cluster *model.Cluster, installation *model.Installation, clusterInstallation *model.ClusterInstallation) (*mmv1alpha1.ClusterInstallation, error)

GetClusterInstallationResource gets the cluster installation resource from the kubernetes API.

func (*KopsProvisioner) GetClusterResources added in v0.2.0

func (provisioner *KopsProvisioner) GetClusterResources(cluster *model.Cluster, onlySchedulable bool) (*k8s.ClusterResources, error)

GetClusterResources returns a snapshot of resources of a given cluster.

func (*KopsProvisioner) GetClusterVersion added in v0.9.0

func (provisioner *KopsProvisioner) GetClusterVersion(cluster *model.Cluster) (string, error)

GetClusterVersion returns the version of kubernetes running on the cluster.

func (*KopsProvisioner) GetNGINXLoadBalancerEndpoint added in v0.19.0

func (provisioner *KopsProvisioner) GetNGINXLoadBalancerEndpoint(cluster *model.Cluster, namespace string) (string, error)

GetNGINXLoadBalancerEndpoint returns the load balancer endpoint of the NGINX service.

func (*KopsProvisioner) PrepareCluster

func (provisioner *KopsProvisioner) PrepareCluster(cluster *model.Cluster) bool

PrepareCluster ensures a cluster object is ready for provisioning.

func (*KopsProvisioner) ProvisionCluster

func (provisioner *KopsProvisioner) ProvisionCluster(cluster *model.Cluster, awsClient aws.AWS) error

ProvisionCluster installs all the baseline kubernetes resources needed for managing installations. This can be called on an already-provisioned cluster to reprovision with the newest version of the resources.

func (*KopsProvisioner) ResizeCluster added in v0.19.0

func (provisioner *KopsProvisioner) ResizeCluster(cluster *model.Cluster) error

ResizeCluster resizes a cluster.

func (*KopsProvisioner) UpdateClusterInstallation

func (provisioner *KopsProvisioner) UpdateClusterInstallation(cluster *model.Cluster, installation *model.Installation, clusterInstallation *model.ClusterInstallation) error

UpdateClusterInstallation updates the cluster installation spec to match the installation specification.

func (*KopsProvisioner) UpgradeCluster

func (provisioner *KopsProvisioner) UpgradeCluster(cluster *model.Cluster) error

UpgradeCluster upgrades a cluster to the latest recommended production ready k8s version.

type Utility added in v0.11.0

type Utility interface {
	// CreateOrUpgrade is responsible for deploying the utility in the
	// cluster and then for updating it if it already exists when called
	CreateOrUpgrade() error

	// Destroy can be used if special care must be taken for deleting a
	// utility from a cluster
	Destroy() error

	// ActualVersion returns the utility's last reported actual version,
	// at the time of Create or Upgrade. This version will remain valid
	// unless something interacts with the cluster out of band, at which
	// time it will be invalid until Upgrade is called again
	ActualVersion() string

	// DesiredVersion returns the utility's target version, which has been
	// requested, but may not yet have been reconciled
	DesiredVersion() string

	// Name returns the canonical string-version name for the utility,
	// used throughout the application
	Name() string
}

A Utility is a service that runs one per cluster but is not part of k8s itself, nor is it part of a ClusterInstallation or an Installation

Jump to

Keyboard shortcuts

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