feat: SSH CA

This commit is contained in:
Kat Inskip 2023-02-04 14:18:40 -08:00
parent a28e1ce6e2
commit ccf6a6f704
Signed by: kat
GPG key ID: 465E64DECEA8CF0F
23 changed files with 678 additions and 431 deletions

80
main.go
View file

@ -1,68 +1,38 @@
package main
import (
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"github.com/pulumi/pulumi-tailscale/sdk/go/tailscale"
"gopkg.in/yaml.v3"
"os"
"kittywitch/iac"
"github.com/pulumi/pulumi-command/sdk/go/command/local"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
"gopkg.in/yaml.v3"
"kittywitch/iac"
"os"
)
func main() {
katConfig := iac.KatConfig{}
store := iac.KatConfig{}
configFile, err := os.ReadFile("config.yaml")
configFile, err := os.ReadFile("config.yaml")
if err != nil {
return
}
if err != nil {
return
}
if err := yaml.Unmarshal(configFile, &katConfig); err != nil {
return
}
if err := yaml.Unmarshal(configFile, &store); err != nil {
return
}
pulumi.Run(func(ctx *pulumi.Context) error {
tailnet, err := tailscale.GetDevices(ctx, &tailscale.GetDevicesArgs{}, nil)
if err != nil {
return err
}
pulumi.Run(func(ctx *pulumi.Context) error {
for _, zone := range store.Zones {
err = zone.Handle(ctx)
if err != nil {
return err
}
}
// zones, dnssec, records
zones, _, records, err := iac.HandleDNS(ctx, katConfig)
err = iac.InskipPage(ctx)
if err != nil {
return err
}
if err != nil {
return err
}
records, err = iac.HandleTSRecords(ctx, tailnet, zones, records)
if err != nil {
return err
}
ca_key, ca_cert, err := iac.GenerateTLSCA(ctx)
if err != nil {
return err
}
keys, _, certs, err := iac.HandleTSHostCerts(ctx, tailnet, ca_key, ca_cert)
if err != nil {
return err
}
// files for those certs
files := make(map[string]*local.Command)
files, err = iac.PKITLSFiles(ctx, files, keys, certs)
if err != nil {
return err
}
return err
})
return err
})
}