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-09-21 07:47:57 -04:00
"github.com/edgelesssys/constellation/v2/bootstrapper/internal/kubernetes/k8sapi"
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/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 04:04:42 -04:00
)
type clusterUtil interface {
2022-07-22 09:05:04 -04:00
InstallComponents ( ctx context . Context , version versions . ValidK8sVersion ) error
2022-09-20 04:07:55 -04:00
InitCluster ( ctx context . Context , initConfig [ ] byte , nodeName string , ips [ ] net . IP , controlPlaneEndpoint string , conformanceMode bool , log * logger . Logger ) error
2022-08-31 21:40:29 -04:00
JoinCluster ( ctx context . Context , joinConfig [ ] byte , peerRole role . Role , controlPlaneEndpoint string , log * logger . Logger ) error
2022-08-29 08:30:20 -04:00
SetupAccessManager ( kubectl k8sapi . Client , sshUsers kubernetes . Marshaler ) error
SetupAutoscaling ( kubectl k8sapi . Client , clusterAutoscalerConfiguration kubernetes . Marshaler , secrets kubernetes . Marshaler ) error
2022-08-31 21:40:29 -04:00
SetupKonnectivity ( kubectl k8sapi . Client , konnectivityAgentsDaemonSet kubernetes . Marshaler ) error
2022-08-29 08:30:20 -04:00
SetupVerificationService ( kubectl k8sapi . Client , verificationServiceConfiguration kubernetes . Marshaler ) error
SetupGCPGuestAgent ( kubectl k8sapi . Client , gcpGuestAgentConfiguration kubernetes . Marshaler ) error
SetupOperatorLifecycleManager ( ctx context . Context , kubectl k8sapi . Client , olmCRDs , olmConfiguration kubernetes . Marshaler , crdNames [ ] string ) error
SetupNodeMaintenanceOperator ( kubectl k8sapi . Client , nodeMaintenanceOperatorConfiguration kubernetes . Marshaler ) error
SetupNodeOperator ( ctx context . Context , kubectl k8sapi . Client , nodeOperatorConfiguration kubernetes . Marshaler ) error
2022-09-08 08:45:27 -04:00
FixCilium ( log * logger . Logger )
2022-10-18 07:15:54 -04:00
StartKubelet ( ) error
}
2022-10-21 06:01: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-18 07:15:54 -04:00
// Currently only a subset of microservices is deployed via Helm.
// Naming is inspired by Helm.
2022-10-21 06:01:28 -04:00
type helmClient interface {
2022-10-18 07:15:54 -04:00
InstallCilium ( context . Context , k8sapi . Client , helm . Release , k8sapi . SetupPodNetworkInput ) error
2022-10-25 09:51:23 -04:00
InstallConstellationServices ( ctx context . Context , release helm . Release , extraVals map [ string ] any ) error
2022-05-24 04:04:42 -04:00
}