mirror of
https://github.com/siderolabs/talos.git
synced 2025-08-07 07:07:10 +02:00
65 lines
1.5 KiB
Go
65 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"log"
|
|
|
|
"github.com/autonomy/talos/internal/app/blockd/internal/reg"
|
|
"github.com/autonomy/talos/internal/pkg/constants"
|
|
"github.com/autonomy/talos/internal/pkg/grpc/factory"
|
|
"github.com/autonomy/talos/internal/pkg/grpc/gen"
|
|
"github.com/autonomy/talos/internal/pkg/grpc/tls"
|
|
"github.com/autonomy/talos/internal/pkg/userdata"
|
|
"google.golang.org/grpc"
|
|
"google.golang.org/grpc/credentials"
|
|
)
|
|
|
|
var (
|
|
dataPath *string
|
|
generate *bool
|
|
)
|
|
|
|
func init() {
|
|
log.SetFlags(log.Lshortfile | log.Ldate | log.Lmicroseconds | log.Ltime)
|
|
dataPath = flag.String("userdata", "", "the path to the user data")
|
|
generate = flag.Bool("generate", false, "generate the TLS certificate using one of the Root of Trusts")
|
|
flag.Parse()
|
|
}
|
|
|
|
func main() {
|
|
data, err := userdata.Open(*dataPath)
|
|
if err != nil {
|
|
log.Fatalf("open user data: %v", err)
|
|
}
|
|
|
|
if *generate {
|
|
var generator *gen.Generator
|
|
generator, err = gen.NewGenerator(data, constants.TrustdPort)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
if err = generator.Identity(data.Security); err != nil {
|
|
log.Fatalf("generate identity: %v", err)
|
|
}
|
|
}
|
|
|
|
config, err := tls.NewConfig(tls.Mutual, data.Security.OS)
|
|
if err != nil {
|
|
log.Fatalf("credentials: %v", err)
|
|
}
|
|
|
|
log.Println("Starting blockd")
|
|
err = factory.Listen(
|
|
®.Registrator{Data: data.Security.OS},
|
|
factory.Network("unix"),
|
|
factory.ServerOptions(
|
|
grpc.Creds(
|
|
credentials.NewTLS(config),
|
|
),
|
|
),
|
|
)
|
|
if err != nil {
|
|
log.Fatalf("listen: %v", err)
|
|
}
|
|
}
|