2022-09-05 03:06:08 -04:00
|
|
|
/*
|
|
|
|
Copyright (c) Edgeless Systems GmbH
|
|
|
|
|
|
|
|
SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
*/
|
|
|
|
|
2022-05-24 04:04:42 -04:00
|
|
|
package kubernetes
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
2022-07-15 03:33:11 -04:00
|
|
|
"net"
|
2022-05-24 04:04:42 -04:00
|
|
|
|
2022-10-18 07:15:54 -04:00
|
|
|
"github.com/edgelesssys/constellation/v2/internal/deploy/helm"
|
2022-09-21 07:47:57 -04:00
|
|
|
"github.com/edgelesssys/constellation/v2/internal/logger"
|
|
|
|
"github.com/edgelesssys/constellation/v2/internal/role"
|
2023-01-06 06:04:36 -05:00
|
|
|
"github.com/edgelesssys/constellation/v2/internal/versions/components"
|
2022-05-24 04:04:42 -04:00
|
|
|
)
|
|
|
|
|
|
|
|
type clusterUtil interface {
|
2023-01-06 06:04:36 -05:00
|
|
|
InstallComponents(ctx context.Context, kubernetesComponents components.Components) error
|
2023-07-21 10:43:51 -04:00
|
|
|
InitCluster(ctx context.Context, initConfig []byte, nodeName, clusterName string, ips []net.IP, controlPlaneHost, controlPlanePort string, conformanceMode bool, log *logger.Logger) ([]byte, error)
|
|
|
|
JoinCluster(ctx context.Context, joinConfig []byte, peerRole role.Role, controlPlaneHost, controlPlanePort string, log *logger.Logger) error
|
2023-03-10 12:27:01 -05:00
|
|
|
WaitForCilium(ctx context.Context, log *logger.Logger) error
|
|
|
|
FixCilium(ctx context.Context) error
|
2022-10-18 07:15:54 -04:00
|
|
|
StartKubelet() error
|
|
|
|
}
|
|
|
|
|
2023-06-26 04:13:28 -04:00
|
|
|
// helmClient bundles functions related to microservice deployment.
|
|
|
|
// Only microservices that can be deployed purely via Helm are deployed with this interface.
|
2022-10-21 06:01:28 -04:00
|
|
|
type helmClient interface {
|
2023-07-24 04:30:53 -04:00
|
|
|
InstallChart(context.Context, helm.Release) error
|
|
|
|
InstallChartWithValues(ctx context.Context, release helm.Release, extraValues map[string]any) error
|
2022-05-24 04:04:42 -04:00
|
|
|
}
|