2022-09-05 09:06:08 +02:00
/ *
Copyright ( c ) Edgeless Systems GmbH
SPDX - License - Identifier : AGPL - 3.0 - only
* /
2022-05-24 10:04:42 +02:00
package kubernetes
import (
"context"
2022-07-15 09:33:11 +02:00
"net"
2022-05-24 10:04:42 +02:00
2022-09-21 13:47:57 +02:00
"github.com/edgelesssys/constellation/v2/bootstrapper/internal/kubernetes/k8sapi"
2022-10-18 13:15:54 +02:00
"github.com/edgelesssys/constellation/v2/internal/deploy/helm"
2022-09-21 13:47:57 +02:00
"github.com/edgelesssys/constellation/v2/internal/logger"
"github.com/edgelesssys/constellation/v2/internal/role"
2023-01-06 12:04:36 +01:00
"github.com/edgelesssys/constellation/v2/internal/versions/components"
2022-05-24 10:04:42 +02:00
)
type clusterUtil interface {
2023-01-06 12:04:36 +01:00
InstallComponents ( ctx context . Context , kubernetesComponents components . Components ) error
2023-02-10 13:27:22 +01:00
InitCluster ( ctx context . Context , initConfig [ ] byte , nodeName , clusterName string , ips [ ] net . IP , controlPlaneEndpoint string , conformanceMode bool , log * logger . Logger ) ( [ ] byte , error )
2022-09-01 03:40:29 +02:00
JoinCluster ( ctx context . Context , joinConfig [ ] byte , peerRole role . Role , controlPlaneEndpoint string , log * logger . Logger ) error
2023-03-10 18:27:01 +01:00
WaitForCilium ( ctx context . Context , log * logger . Logger ) error
FixCilium ( ctx context . Context ) error
2022-10-18 13:15:54 +02:00
StartKubelet ( ) error
}
2022-10-21 12:01:28 +02:00
// helmClient bundles functions related to microservice deployment. Only microservices that can be deployed purely via Helm are deployed with this interface.
2022-10-18 13:15:54 +02:00
// Currently only a subset of microservices is deployed via Helm.
// Naming is inspired by Helm.
2022-10-21 12:01:28 +02:00
type helmClient interface {
2022-10-18 13:15:54 +02:00
InstallCilium ( context . Context , k8sapi . Client , helm . Release , k8sapi . SetupPodNetworkInput ) error
2022-11-21 10:35:40 +01:00
InstallCertManager ( ctx context . Context , release helm . Release ) error
InstallOperators ( ctx context . Context , release helm . Release , extraVals map [ string ] any ) error
2022-10-25 15:51:23 +02:00
InstallConstellationServices ( ctx context . Context , release helm . Release , extraVals map [ string ] any ) error
2023-07-14 08:39:51 +02:00
InstallAWSLoadBalancerController ( context . Context , helm . Release ) error
2022-05-24 10:04:42 +02:00
}