...
1 package main
2
3 import (
4 "bytes"
5 "context"
6 "fmt"
7 "os"
8
9 ecli "edge-infra.dev/pkg/lib/cli"
10 "edge-infra.dev/pkg/lib/fog"
11 "edge-infra.dev/pkg/lib/runtime/version"
12 admissionvalidator "edge-infra.dev/pkg/sds/admission"
13 "edge-infra.dev/pkg/sds/admission/observability"
14 )
15
16 func main() {
17 log := fog.New().WithName("k8s-admission")
18 ctx := context.Background()
19 ctx = fog.IntoContext(ctx, log)
20 log.Info("starting the k8s admission validator... ")
21
22 if len(os.Args) < 2 {
23 err := fmt.Errorf("invalid arguments")
24 log.Error(err, "Usage: /app/cmd/sds/admission/controller/admission_container.binary <subcommand> <args>")
25 os.Exit(1)
26 }
27
28 switch os.Args[1] {
29
30 case "help", "-h", "--help":
31 log.V(0).Info("Usage: /app/cmd/sds/admission/controller/admission_container.binary <subcommand> <args>")
32
33 case "version", "-v", "--version":
34 v := version.New()
35 buf := new(bytes.Buffer)
36 ecli.Version(buf, v)
37 log.V(0).Info(buf.String())
38
39 case "run":
40
41 go func() {
42 log.Info("starting observability server")
43 metricsPort := 9086
44 if err := observability.RunServer(metricsPort); err != nil {
45 log.Error(err, "error running metrics server")
46 os.Exit(1)
47 }
48 }()
49
50 err := admissionvalidator.Run(ctx)
51 log.Error(err, "error running the admission validator ")
52 os.Exit(1)
53
54 default:
55 err := fmt.Errorf("invalid subcommand")
56 log.Error(err, "Usage: /app/cmd/sds/admission/controller/admission_container.binary <subcommand> <args>", "subcommand", os.Args[1])
57 os.Exit(1)
58 }
59 }
60
View as plain text