Documentation
¶
Index ¶
- Constants
- type ClusterInstallationProvisioner
- type HelmListOutput
- type KopsProvisioner
- func (provisioner *KopsProvisioner) ClusterInstallationProvisioner(crVersion string) ClusterInstallationProvisioner
- func (provisioner *KopsProvisioner) CreateCluster(cluster *model.Cluster, awsClient aws.AWS) error
- func (provisioner *KopsProvisioner) DeleteCluster(cluster *model.Cluster, awsClient aws.AWS) error
- func (provisioner *KopsProvisioner) ExecClusterInstallationCLI(cluster *model.Cluster, clusterInstallation *model.ClusterInstallation, ...) ([]byte, error)
- func (provisioner *KopsProvisioner) ExecMattermostCLI(cluster *model.Cluster, clusterInstallation *model.ClusterInstallation, ...) ([]byte, error)
- func (provisioner *KopsProvisioner) GetClusterResources(cluster *model.Cluster, onlySchedulable bool) (*k8s.ClusterResources, error)
- func (provisioner *KopsProvisioner) GetPublicLoadBalancerEndpoint(cluster *model.Cluster, namespace string) (string, error)
- func (provisioner *KopsProvisioner) PrepareCluster(cluster *model.Cluster) bool
- func (provisioner *KopsProvisioner) ProvisionCluster(cluster *model.Cluster, awsClient aws.AWS) error
- func (provisioner *KopsProvisioner) RefreshKopsMetadata(cluster *model.Cluster) error
- func (provisioner *KopsProvisioner) ResizeCluster(cluster *model.Cluster, awsClient aws.AWS) error
- func (provisioner *KopsProvisioner) RotateClusterNodes(cluster *model.Cluster) error
- func (provisioner *KopsProvisioner) Teardown()
- func (provisioner *KopsProvisioner) UpgradeCluster(cluster *model.Cluster, awsClient aws.AWS) error
- type Utility
Constants ¶
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 ClusterInstallationProvisioner ¶ added in v0.38.0
type ClusterInstallationProvisioner interface {
CreateClusterInstallation(cluster *model.Cluster, installation *model.Installation, clusterInstallation *model.ClusterInstallation) error
EnsureCRMigrated(cluster *model.Cluster, clusterInstallation *model.ClusterInstallation) (bool, error)
HibernateClusterInstallation(cluster *model.Cluster, installation *model.Installation, clusterInstallation *model.ClusterInstallation) error
UpdateClusterInstallation(cluster *model.Cluster, installation *model.Installation, clusterInstallation *model.ClusterInstallation) error
VerifyClusterInstallationMatchesConfig(cluster *model.Cluster, installation *model.Installation, clusterInstallation *model.ClusterInstallation) (bool, error)
DeleteClusterInstallation(cluster *model.Cluster, installation *model.Installation, clusterInstallation *model.ClusterInstallation) error
IsResourceReady(cluster *model.Cluster, clusterInstallation *model.ClusterInstallation) (bool, error)
}
ClusterInstallationProvisioner is an interface for provisioning and managing ClusterInstallations.
type HelmListOutput ¶ added in v0.14.0
type HelmListOutput []helmReleaseJSON
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, allowCIDRRangeList, vpnCIDRList []string, resourceUtil *utils.ResourceUtil, logger log.FieldLogger, store model.InstallationDatabaseStoreInterface) *KopsProvisioner
NewKopsProvisioner creates a new KopsProvisioner.
func (*KopsProvisioner) ClusterInstallationProvisioner ¶ added in v0.38.0
func (provisioner *KopsProvisioner) ClusterInstallationProvisioner(crVersion string) ClusterInstallationProvisioner
ClusterInstallationProvisioner function returns an implementation of ClusterInstallationProvisioner interface based on specified Custom Resource version.
func (*KopsProvisioner) CreateCluster ¶
CreateCluster creates a cluster using kops and terraform.
func (*KopsProvisioner) DeleteCluster ¶
DeleteCluster deletes a previously created cluster using kops and terraform.
func (*KopsProvisioner) ExecClusterInstallationCLI ¶ added in v0.27.0
func (provisioner *KopsProvisioner) ExecClusterInstallationCLI(cluster *model.Cluster, clusterInstallation *model.ClusterInstallation, args ...string) ([]byte, error)
ExecClusterInstallationCLI execs the provided command on the defined cluster installation.
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) 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) GetPublicLoadBalancerEndpoint ¶ added in v0.23.0
func (provisioner *KopsProvisioner) GetPublicLoadBalancerEndpoint(cluster *model.Cluster, namespace string) (string, error)
GetPublicLoadBalancerEndpoint returns the public 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) RefreshKopsMetadata ¶ added in v0.21.0
func (provisioner *KopsProvisioner) RefreshKopsMetadata(cluster *model.Cluster) error
RefreshKopsMetadata updates the kops metadata of a cluster with the current values of the running cluster.
func (*KopsProvisioner) ResizeCluster ¶ added in v0.19.0
ResizeCluster resizes a cluster.
func (*KopsProvisioner) RotateClusterNodes ¶ added in v0.43.0
func (provisioner *KopsProvisioner) RotateClusterNodes(cluster *model.Cluster) error
RotateClusterNodes rotates k8s cluster nodes using the Mattermost node rotator
func (*KopsProvisioner) Teardown ¶ added in v0.37.0
func (provisioner *KopsProvisioner) Teardown()
Teardown cleans up cached kops provisioner data.
func (*KopsProvisioner) UpgradeCluster ¶
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
// Migrate can be used if special care must be taken for migrating a
// utility from a cluster
Migrate() 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() *model.HelmUtilityVersion
// DesiredVersion returns the utility's target version, which has been
// requested, but may not yet have been reconciled
DesiredVersion() *model.HelmUtilityVersion
// Name returns the canonical string-version name for the utility,
// used throughout the application
Name() string
// ValuesPath returns the location where the values file(s) are
// stored for this utility
ValuesPath() 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