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/kubernetes"
"github.com/edgelesssys/constellation/v2/internal/logger"
"github.com/edgelesssys/constellation/v2/internal/role"
"github.com/edgelesssys/constellation/v2/internal/versions"
2022-05-24 10:04:42 +02:00
)
type clusterUtil interface {
2022-07-22 15:05:04 +02:00
InstallComponents ( ctx context . Context , version versions . ValidK8sVersion ) error
2022-09-20 10:07:55 +02:00
InitCluster ( ctx context . Context , initConfig [ ] byte , nodeName string , ips [ ] net . IP , controlPlaneEndpoint string , conformanceMode bool , log * logger . Logger ) error
2022-09-01 03:40:29 +02:00
JoinCluster ( ctx context . Context , joinConfig [ ] byte , peerRole role . Role , controlPlaneEndpoint string , log * logger . Logger ) error
SetupKonnectivity ( kubectl k8sapi . Client , konnectivityAgentsDaemonSet kubernetes . Marshaler ) error
2022-08-29 14:30:20 +02:00
SetupGCPGuestAgent ( kubectl k8sapi . Client , gcpGuestAgentConfiguration kubernetes . Marshaler ) error
2022-09-08 14:45:27 +02:00
FixCilium ( log * logger . Logger )
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
2022-05-24 10:04:42 +02:00
}