mirror of
https://github.com/rancher/norman.git
synced 2025-09-17 15:49:53 +00:00
38 lines
942 B
Go
38 lines
942 B
Go
![]() |
package k8s
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
"net"
|
||
|
"net/http"
|
||
|
|
||
|
"github.com/rancher/norman/pkg/remotedialer"
|
||
|
"github.com/rancher/norman/pkg/resolvehome"
|
||
|
"k8s.io/kubernetes/pkg/wrapper/server"
|
||
|
)
|
||
|
|
||
|
func NewK3sConfig(ctx context.Context, dataDir string, authorizer remotedialer.Authorizer) (context.Context, *server.ServerConfig, http.Handler, error) {
|
||
|
dataDir, err := resolvehome.Resolve(dataDir)
|
||
|
if err != nil {
|
||
|
return ctx, nil, nil, err
|
||
|
}
|
||
|
|
||
|
listenIP := net.ParseIP("127.0.0.1")
|
||
|
_, clusterIPNet, _ := net.ParseCIDR("10.42.0.0/16")
|
||
|
_, serviceIPNet, _ := net.ParseCIDR("10.43.0.0/16")
|
||
|
|
||
|
sc := &server.ServerConfig{
|
||
|
AdvertiseIP: &listenIP,
|
||
|
AdvertisePort: 6444,
|
||
|
PublicHostname: "localhost",
|
||
|
ListenAddr: listenIP,
|
||
|
ListenPort: 6443,
|
||
|
ClusterIPRange: *clusterIPNet,
|
||
|
ServiceIPRange: *serviceIPNet,
|
||
|
UseTokenCA: true,
|
||
|
DataDir: dataDir,
|
||
|
}
|
||
|
|
||
|
ctx = SetK3sConfig(ctx, sc)
|
||
|
return ctx, sc, newTunnel(authorizer), nil
|
||
|
}
|