Documentation ¶
Index ¶
- func ValidateCRI(c CRI) error
- func ValidateCluster(clusterName string, clusterConfig Kubernetes, nodePools []NodePool, ...) error
- func ValidateClusterName(name string) error
- func ValidateExtensions(e *Extensions) error
- func ValidateHibernation(h *Hibernation) error
- func ValidateMaintenance(m *Maintenance) error
- func ValidateNodePool(np NodePool) error
- func ValidateTaint(t Taint) error
- type ArgusExtension
- type CRI
- type Cluster
- type ClusterList
- type Credentials
- type Extensions
- type Hibernation
- type HibernationScedule
- type Kubernetes
- type KubernetesClusterService
- func (svc *KubernetesClusterService) Create(ctx context.Context, projectID string, clusterName string, ...) (res Cluster, err error)
- func (svc *KubernetesClusterService) Delete(ctx context.Context, projectID, clusterName string) (err error)
- func (svc *KubernetesClusterService) Get(ctx context.Context, projectID, clusterName string) (res Cluster, err error)
- func (svc *KubernetesClusterService) GetCredential(ctx context.Context, projectID, clusterName string) (res Credentials, err error)
- func (svc *KubernetesClusterService) Hibernate(ctx context.Context, projectID, clusterName string) (res Cluster, err error)
- func (svc *KubernetesClusterService) List(ctx context.Context, projectID string) (res ClusterList, err error)
- func (svc *KubernetesClusterService) Maintenance(ctx context.Context, projectID, clusterName string) (res Cluster, err error)
- func (svc *KubernetesClusterService) Reconcile(ctx context.Context, projectID, clusterName string) (res Cluster, err error)
- func (svc *KubernetesClusterService) RotateCredentials(ctx context.Context, projectID, clusterName string) (err error)
- func (svc *KubernetesClusterService) Update(ctx context.Context, projectID string, clusterName string, ...) (res Cluster, err error)
- func (svc *KubernetesClusterService) Wakeup(ctx context.Context, projectID, clusterName string) (res Cluster, err error)
- type Machine
- type MachineImage
- type Maintenance
- type MaintenanceAutoUpdate
- type MaintenanceTimeWindow
- type NodePool
- type Status
- type Taint
- type Volume
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ValidateCluster ¶
func ValidateCluster( clusterName string, clusterConfig Kubernetes, nodePools []NodePool, maintenance *Maintenance, hibernation *Hibernation, extensions *Extensions, ) error
ValidateCluster validates the given cluster data (dry validation)
func ValidateClusterName ¶
ValidateClusterName validates a given cluster name
func ValidateExtensions ¶
func ValidateExtensions(e *Extensions) error
ValidateExtensions validates a given cluster extensions
func ValidateHibernation ¶
func ValidateHibernation(h *Hibernation) error
ValidateHibernation validates a given cluster hibernation
func ValidateMaintenance ¶
func ValidateMaintenance(m *Maintenance) error
ValidateMaintenance validates a given cluster maintenance
func ValidateNodePool ¶
ValidateNodePool validates a given node pool
func ValidateTaint ¶
ValidateTaint validates a given node pool taint
Types ¶
type ArgusExtension ¶
type ArgusExtension struct { Enabled bool `json:"enabled"` ArgusInstanceID string `json:"argusInstanceId"` }
ArgusExtension is Argus extension
type CRI ¶
type CRI struct {
Name string `json:"name"`
}
CRI is the container runtime interface of the node pool
type Cluster ¶
type Cluster struct { Name string `json:"name"` // 11 lowercase letters, numbers, or hyphens Kubernetes Kubernetes `json:"kubernetes"` Nodepools []NodePool `json:"nodepools"` Maintenance *Maintenance `json:"maintenance,omitempty"` Hibernation *Hibernation `json:"hibernation,omitempty"` Extensions *Extensions `json:"extensions,omitempty"` Status *Status `json:"status,omitempty"` }
Cluster is a struct representation of a cluster in STACKIT api
type ClusterList ¶ added in v0.1.1
type ClusterList struct {
Items []Cluster `json:"items"`
}
ClusterList is the response for listing clusters
type Credentials ¶
type Credentials struct { Server string `json:"server"` Kubeconfig string `json:"kubeconfig"` CertificateAuthorityData string `json:"certificateAuthorityData"` Token string `json:"token"` }
Credentials is the struct response for cluster credentils
type Extensions ¶
type Extensions struct {
Argus *ArgusExtension `json:"argus,omitempty"`
}
Extensions represent SKE extensions
type Hibernation ¶
type Hibernation struct {
Schedules []HibernationScedule `json:"schedules"`
}
Hibernation schedule
type HibernationScedule ¶
type HibernationScedule struct { Start string `json:"start"` End string `json:"end"` Timezone string `json:"timezone"` }
HibernationScedule is the schedule for hibernation
type Kubernetes ¶
type Kubernetes struct { Version string `json:"version"` AllowPrivilegedContainers bool `json:"allowPrivilegedContainers"` }
Kubernetes contains the cluster's kubernetes config
type KubernetesClusterService ¶
KubernetesClusterService is the service that handles CRUD functionality for SKE clusters
func New ¶
func New(c common.Client) *KubernetesClusterService
New returns a new handler for the service
func (*KubernetesClusterService) Create ¶
func (svc *KubernetesClusterService) Create( ctx context.Context, projectID string, clusterName string, clusterConfig Kubernetes, nodePools []NodePool, maintenance *Maintenance, hibernation *Hibernation, extensions *Extensions, ) (res Cluster, err error)
Create creates a new SKE cluster See also https://api.stackit.schwarz/ske-service/openapi.v1.html#operation/SkeService_CreateOrUpdateCluster
func (*KubernetesClusterService) Delete ¶
func (svc *KubernetesClusterService) Delete(ctx context.Context, projectID, clusterName string) (err error)
Delete deletes an SKE cluster See also https://api.stackit.schwarz/ske-service/openapi.v1.html#operation/SkeService_DeleteCluster
func (*KubernetesClusterService) Get ¶
func (svc *KubernetesClusterService) Get(ctx context.Context, projectID, clusterName string) (res Cluster, err error)
Get returns the a cluster by project ID and cluster name See also https://api.stackit.schwarz/ske-service/openapi.v1.html#operation/SkeService_ListClusters
func (*KubernetesClusterService) GetCredential ¶
func (svc *KubernetesClusterService) GetCredential(ctx context.Context, projectID, clusterName string) (res Credentials, err error)
GetCredential returns the a credentials for the cluster See also https://api.stackit.schwarz/ske-service/openapi.v1.html#tag/Credentials
func (*KubernetesClusterService) Hibernate ¶
func (svc *KubernetesClusterService) Hibernate(ctx context.Context, projectID, clusterName string) (res Cluster, err error)
Hibernate triggers cluster hibernation See also https://api.stackit.schwarz/ske-service/openapi.v1.html#operation/SkeService_TriggerClusterHibernation
func (*KubernetesClusterService) List ¶
func (svc *KubernetesClusterService) List(ctx context.Context, projectID string) (res ClusterList, err error)
List returns the clusters in the project See also https://api.stackit.schwarz/ske-service/openapi.v1.html#operation/SkeService_ListClusters
func (*KubernetesClusterService) Maintenance ¶
func (svc *KubernetesClusterService) Maintenance(ctx context.Context, projectID, clusterName string) (res Cluster, err error)
Maintenance triggers cluster maintenance See also https://api.stackit.schwarz/ske-service/openapi.v1.html#operation/SkeService_TriggerClusterMaintenance
func (*KubernetesClusterService) Reconcile ¶
func (svc *KubernetesClusterService) Reconcile(ctx context.Context, projectID, clusterName string) (res Cluster, err error)
Reconcile triggers cluster reconciliation See also https://api.stackit.schwarz/ske-service/openapi.v1.html#operation/SkeService_TriggerClusterReconciliation
func (*KubernetesClusterService) RotateCredentials ¶
func (svc *KubernetesClusterService) RotateCredentials(ctx context.Context, projectID, clusterName string) (err error)
RotateCredentials triggers cluster credentials rotation See also https://api.stackit.schwarz/ske-service/openapi.v1.html#operation/SkeService_TriggerClusterCredentialRotation
func (*KubernetesClusterService) Update ¶
func (svc *KubernetesClusterService) Update( ctx context.Context, projectID string, clusterName string, clusterConfig Kubernetes, nodePools []NodePool, maintenance *Maintenance, hibernation *Hibernation, extensions *Extensions, ) (res Cluster, err error)
Update updates an SKE cluster or creates a new one if it doesn't exist See also https://api.stackit.schwarz/ske-service/openapi.v1.html#operation/SkeService_CreateOrUpdateCluster
func (*KubernetesClusterService) Wakeup ¶
func (svc *KubernetesClusterService) Wakeup(ctx context.Context, projectID, clusterName string) (res Cluster, err error)
Wakeup triggers cluster wakeup See also https://api.stackit.schwarz/ske-service/openapi.v1.html#operation/SkeService_TriggerClusterWakeup
type Machine ¶
type Machine struct { Type string `json:"type"` Image MachineImage `json:"image"` }
Machine contains information of the machine in the node pool
type MachineImage ¶
MachineImage contains information of the machine's image
type Maintenance ¶
type Maintenance struct { AutoUpdate MaintenanceAutoUpdate `json:"autoUpdate"` TimeWindow MaintenanceTimeWindow `json:"timeWindow"` }
Maintenance is the node pool's maintenance window
type MaintenanceAutoUpdate ¶
type MaintenanceAutoUpdate struct { KubernetesVersion bool `json:"kubernetesVersion"` MachineImageVersion bool `json:"machineImageVersion"` }
MaintenanceAutoUpdate is the auto update confguration
type MaintenanceTimeWindow ¶
MaintenanceTimeWindow is when the maintenance window should happen
type NodePool ¶
type NodePool struct { Name string `json:"name,omitempty"` Machine Machine `json:"machine"` Minimum int `json:"minimum"` Maximum int `json:"maximum"` MaxSurge int `json:"maxSurge"` Volume Volume `json:"volume"` Labels map[string]string `json:"labels"` Taints []Taint `json:"taints"` CRI CRI `json:"cri"` AvailabilityZones []string `json:"availabilityZones"` }
NodePool is a struct representing a node pool in the cluster
type Status ¶
type Status struct { Hibernated bool `json:"hibernated"` Aggregated string `json:"aggregated"` Error struct { Code string `json:"code"` Message string `json:"message"` Details string `json:"details"` } `json:"error,omitempty"` }
Status is the cluster status