...

Source file src/edge-infra.dev/cmd/sds/admission/controller/main.go

Documentation: edge-infra.dev/cmd/sds/admission/controller

     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  	// if the subcommand is help, print the usage and exit
    30  	case "help", "-h", "--help":
    31  		log.V(0).Info("Usage: /app/cmd/sds/admission/controller/admission_container.binary <subcommand> <args>")
    32  	// if the subcommand is version, print the version and exit
    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  	// if the subcommand is run, run the run command with the given arguments
    39  	case "run":
    40  		// Start observability metrics server
    41  		go func() {
    42  			log.Info("starting observability server")
    43  			metricsPort := 9086 // as defined in k8s-admission.yaml
    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  	// if the subcommand is anything else, print the usage and exit
    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