2022-09-05 07:06:08 +00:00
/ *
Copyright ( c ) Edgeless Systems GmbH
SPDX - License - Identifier : AGPL - 3.0 - only
* /
2022-05-24 08:04:42 +00:00
package kubernetes
import (
"context"
2022-07-15 07:33:11 +00:00
"net"
2022-05-24 08:04:42 +00:00
2022-09-21 11:47:57 +00:00
"github.com/edgelesssys/constellation/v2/bootstrapper/internal/kubernetes/k8sapi"
2022-10-18 11:15:54 +00:00
"github.com/edgelesssys/constellation/v2/internal/deploy/helm"
2022-09-21 11:47:57 +00:00
"github.com/edgelesssys/constellation/v2/internal/logger"
"github.com/edgelesssys/constellation/v2/internal/role"
2023-01-06 11:04:36 +00:00
"github.com/edgelesssys/constellation/v2/internal/versions/components"
2022-05-24 08:04:42 +00:00
)
type clusterUtil interface {
2023-01-06 11:04:36 +00:00
InstallComponents ( ctx context . Context , kubernetesComponents components . Components ) error
2022-09-20 08:07:55 +00:00
InitCluster ( ctx context . Context , initConfig [ ] byte , nodeName string , ips [ ] net . IP , controlPlaneEndpoint string , conformanceMode bool , log * logger . Logger ) error
2022-09-01 01:40:29 +00:00
JoinCluster ( ctx context . Context , joinConfig [ ] byte , peerRole role . Role , controlPlaneEndpoint string , log * logger . Logger ) error
2022-09-08 12:45:27 +00:00
FixCilium ( log * logger . Logger )
2022-10-18 11:15:54 +00:00
StartKubelet ( ) error
}
2022-10-21 10:01:28 +00: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 11:15:54 +00:00
// Currently only a subset of microservices is deployed via Helm.
// Naming is inspired by Helm.
2022-10-21 10:01:28 +00:00
type helmClient interface {
2022-10-18 11:15:54 +00:00
InstallCilium ( context . Context , k8sapi . Client , helm . Release , k8sapi . SetupPodNetworkInput ) error
2022-11-21 09:35:40 +00:00
InstallCertManager ( ctx context . Context , release helm . Release ) error
InstallOperators ( ctx context . Context , release helm . Release , extraVals map [ string ] any ) error
2022-10-25 13:51:23 +00:00
InstallConstellationServices ( ctx context . Context , release helm . Release , extraVals map [ string ] any ) error
2022-05-24 08:04:42 +00:00
}