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/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-02-10 07:27:22 -05:00
InitCluster ( ctx context . Context , initConfig [ ] byte , nodeName , clusterName string , ips [ ] net . IP , controlPlaneEndpoint string , conformanceMode bool , log * logger . Logger ) ( [ ] byte , error )
2022-08-31 21:40:29 -04:00
JoinCluster ( ctx context . Context , joinConfig [ ] byte , peerRole role . Role , controlPlaneEndpoint 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
}
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-11-21 04:35:40 -05:00
InstallCertManager ( ctx context . Context , release helm . Release ) error
InstallOperators ( ctx context . Context , release helm . Release , extraVals map [ string ] any ) 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
}