Use local paths when possible, some AI cleanup
This commit is contained in:
parent
4f6365d453
commit
2f6d3c9bb2
@ -44,7 +44,7 @@ const (
|
|||||||
clusterUIDKey = "/kat/config/cluster_uid"
|
clusterUIDKey = "/kat/config/cluster_uid"
|
||||||
clusterConfigKey = "/kat/config/cluster_config" // Stores the JSON of pb.ClusterConfigurationSpec
|
clusterConfigKey = "/kat/config/cluster_config" // Stores the JSON of pb.ClusterConfigurationSpec
|
||||||
defaultNodeName = "kat-node"
|
defaultNodeName = "kat-node"
|
||||||
leaderCertCN = "leader.kat.cluster.local" // Common Name for leader certificate
|
leaderCertCN = "leader.kat.cluster.local" // Common Name for leader certificate
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
@ -75,11 +75,11 @@ func runInit(cmd *cobra.Command, args []string) {
|
|||||||
pkiDir := pki.GetPKIPathFromClusterConfig(parsedClusterConfig.Spec.BackupPath)
|
pkiDir := pki.GetPKIPathFromClusterConfig(parsedClusterConfig.Spec.BackupPath)
|
||||||
caKeyPath := filepath.Join(pkiDir, "ca.key")
|
caKeyPath := filepath.Join(pkiDir, "ca.key")
|
||||||
caCertPath := filepath.Join(pkiDir, "ca.crt")
|
caCertPath := filepath.Join(pkiDir, "ca.crt")
|
||||||
|
|
||||||
// Check if CA already exists
|
// Check if CA already exists
|
||||||
_, caKeyErr := os.Stat(caKeyPath)
|
_, caKeyErr := os.Stat(caKeyPath)
|
||||||
_, caCertErr := os.Stat(caCertPath)
|
_, caCertErr := os.Stat(caCertPath)
|
||||||
|
|
||||||
if os.IsNotExist(caKeyErr) || os.IsNotExist(caCertErr) {
|
if os.IsNotExist(caKeyErr) || os.IsNotExist(caCertErr) {
|
||||||
log.Printf("CA key or certificate not found. Generating new CA in %s", pkiDir)
|
log.Printf("CA key or certificate not found. Generating new CA in %s", pkiDir)
|
||||||
if err := pki.GenerateCA(pkiDir, caKeyPath, caCertPath); err != nil {
|
if err := pki.GenerateCA(pkiDir, caKeyPath, caCertPath); err != nil {
|
||||||
@ -158,23 +158,23 @@ func runInit(cmd *cobra.Command, args []string) {
|
|||||||
} else {
|
} else {
|
||||||
log.Printf("Cluster UID already exists in etcd. Skipping storage.")
|
log.Printf("Cluster UID already exists in etcd. Skipping storage.")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Generate leader's server certificate for mTLS
|
// Generate leader's server certificate for mTLS
|
||||||
leaderKeyPath := filepath.Join(pkiDir, "leader.key")
|
leaderKeyPath := filepath.Join(pkiDir, "leader.key")
|
||||||
leaderCSRPath := filepath.Join(pkiDir, "leader.csr")
|
leaderCSRPath := filepath.Join(pkiDir, "leader.csr")
|
||||||
leaderCertPath := filepath.Join(pkiDir, "leader.crt")
|
leaderCertPath := filepath.Join(pkiDir, "leader.crt")
|
||||||
|
|
||||||
// Check if leader cert already exists
|
// Check if leader cert already exists
|
||||||
_, leaderCertErr := os.Stat(leaderCertPath)
|
_, leaderCertErr := os.Stat(leaderCertPath)
|
||||||
if os.IsNotExist(leaderCertErr) {
|
if os.IsNotExist(leaderCertErr) {
|
||||||
log.Println("Generating leader server certificate for mTLS")
|
log.Println("Generating leader server certificate for mTLS")
|
||||||
|
|
||||||
// Generate key and CSR for leader
|
// Generate key and CSR for leader
|
||||||
if err := pki.GenerateCertificateRequest(leaderCertCN, leaderKeyPath, leaderCSRPath); err != nil {
|
if err := pki.GenerateCertificateRequest(leaderCertCN, leaderKeyPath, leaderCSRPath); err != nil {
|
||||||
log.Printf("Failed to generate leader key and CSR: %v", err)
|
log.Printf("Failed to generate leader key and CSR: %v", err)
|
||||||
} else {
|
} else {
|
||||||
// Read the CSR file
|
// Read the CSR file
|
||||||
csrData, err := os.ReadFile(leaderCSRPath)
|
_, err := os.ReadFile(leaderCSRPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Failed to read leader CSR file: %v", err)
|
log.Printf("Failed to read leader CSR file: %v", err)
|
||||||
} else {
|
} else {
|
||||||
|
@ -3,8 +3,8 @@ kind: ClusterConfiguration
|
|||||||
metadata:
|
metadata:
|
||||||
name: my-kat-cluster
|
name: my-kat-cluster
|
||||||
spec:
|
spec:
|
||||||
clusterCIDR: "10.100.0.0/16"
|
cluster_CIDR: "10.100.0.0/16"
|
||||||
serviceCIDR: "10.200.0.0/16"
|
service_CIDR: "10.200.0.0/16"
|
||||||
nodeSubnetBits: 7 # Results in /23 node subnets (e.g., 10.100.0.0/23, 10.100.2.0/23)
|
nodeSubnetBits: 7 # Results in /23 node subnets (e.g., 10.100.0.0/23, 10.100.2.0/23)
|
||||||
clusterDomain: "kat.example.local" # Overriding default
|
clusterDomain: "kat.example.local" # Overriding default
|
||||||
apiPort: 9115
|
apiPort: 9115
|
||||||
@ -15,4 +15,4 @@ spec:
|
|||||||
backupPath: "/opt/kat/backups" # Overriding default
|
backupPath: "/opt/kat/backups" # Overriding default
|
||||||
backupIntervalMinutes: 60
|
backupIntervalMinutes: 60
|
||||||
agentTickSeconds: 10
|
agentTickSeconds: 10
|
||||||
nodeLossTimeoutSeconds: 45
|
nodeLossTimeoutSeconds: 45
|
||||||
|
@ -201,8 +201,8 @@ func TestValidateClusterConfiguration_InvalidValues(t *testing.T) {
|
|||||||
ApiPort: 10251,
|
ApiPort: 10251,
|
||||||
EtcdPeerPort: 2380,
|
EtcdPeerPort: 2380,
|
||||||
EtcdClientPort: 2379,
|
EtcdClientPort: 2379,
|
||||||
VolumeBasePath: "/var/lib/kat/volumes",
|
VolumeBasePath: "~/.kat/volumes",
|
||||||
BackupPath: "/var/lib/kat/backups",
|
BackupPath: "~/.kat/backups",
|
||||||
BackupIntervalMinutes: 30,
|
BackupIntervalMinutes: 30,
|
||||||
AgentTickSeconds: 15,
|
AgentTickSeconds: 15,
|
||||||
NodeLossTimeoutSeconds: 60,
|
NodeLossTimeoutSeconds: 60,
|
||||||
|
@ -11,13 +11,13 @@ const (
|
|||||||
DefaultApiPort = 9115
|
DefaultApiPort = 9115
|
||||||
DefaultEtcdPeerPort = 2380
|
DefaultEtcdPeerPort = 2380
|
||||||
DefaultEtcdClientPort = 2379
|
DefaultEtcdClientPort = 2379
|
||||||
DefaultVolumeBasePath = "/var/lib/kat/volumes"
|
DefaultVolumeBasePath = "~/.kat/volumes"
|
||||||
DefaultBackupPath = "/var/lib/kat/backups"
|
DefaultBackupPath = "~/.kat/backups"
|
||||||
DefaultBackupIntervalMins = 30
|
DefaultBackupIntervalMins = 30
|
||||||
DefaultAgentTickSeconds = 15
|
DefaultAgentTickSeconds = 15
|
||||||
DefaultNodeLossTimeoutSec = 60 // DefaultNodeLossTimeoutSeconds = DefaultAgentTickSeconds * 4 (example logic)
|
DefaultNodeLossTimeoutSec = 60 // DefaultNodeLossTimeoutSeconds = DefaultAgentTickSeconds * 4 (example logic)
|
||||||
DefaultNodeSubnetBits = 7 // yields /23 from /16, or /31 from /24 etc. (5 bits for /29, 7 for /25)
|
DefaultNodeSubnetBits = 7 // yields /23 from /16, or /31 from /24 etc. (5 bits for /29, 7 for /25)
|
||||||
// RFC says 7 for /23 from /16. This means 2^(32-16-7) = 2^9 = 512 IPs per node subnet.
|
// RFC says 7 for /23 from /16. This means 2^(32-16-7) = 2^9 = 512 IPs per node subnet.
|
||||||
// If nodeSubnetBits means bits for the node portion *within* the host part of clusterCIDR:
|
// If nodeSubnetBits means bits for the node portion *within* the host part of clusterCIDR:
|
||||||
// e.g. /16 -> 16 host bits. If nodeSubnetBits = 7, then node subnet is / (16+7) = /23.
|
// e.g. /16 -> 16 host bits. If nodeSubnetBits = 7, then node subnet is / (16+7) = /23.
|
||||||
)
|
)
|
||||||
|
@ -1,15 +1,11 @@
|
|||||||
package pki
|
package pki
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/rand"
|
|
||||||
"crypto/rsa"
|
"crypto/rsa"
|
||||||
"crypto/x509"
|
"crypto/x509"
|
||||||
"crypto/x509/pkix"
|
|
||||||
"encoding/pem"
|
"encoding/pem"
|
||||||
"fmt"
|
"fmt"
|
||||||
"net"
|
|
||||||
"os"
|
"os"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// ParseCSRFromBytes parses a PEM-encoded CSR from bytes
|
// ParseCSRFromBytes parses a PEM-encoded CSR from bytes
|
||||||
|
@ -87,7 +87,7 @@ func TestSignCertificateRequest(t *testing.T) {
|
|||||||
|
|
||||||
// Sign CSR
|
// Sign CSR
|
||||||
certPath := filepath.Join(tempDir, "node.crt")
|
certPath := filepath.Join(tempDir, "node.crt")
|
||||||
err = SignCertificateRequest(caKeyPath, caCertPath, csrData, certPath, 30) // 30 days validity
|
err = SignCertificateRequest(caKeyPath, caCertPath, string(csrData), certPath, 30) // 30 days validity
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("SignCertificateRequest failed: %v", err)
|
t.Fatalf("SignCertificateRequest failed: %v", err)
|
||||||
}
|
}
|
||||||
|
@ -51,8 +51,8 @@ spec:
|
|||||||
apiPort: 9115
|
apiPort: 9115
|
||||||
etcdPeerPort: 2380
|
etcdPeerPort: 2380
|
||||||
etcdClientPort: 2379
|
etcdClientPort: 2379
|
||||||
volumeBasePath: "/var/lib/kat/volumes"
|
volumeBasePath: "~/.kat/volumes"
|
||||||
backupPath: "/var/lib/kat/backups"
|
backupPath: "~/.kat/backups"
|
||||||
backupIntervalMinutes: 30
|
backupIntervalMinutes: 30
|
||||||
agentTickSeconds: 15
|
agentTickSeconds: 15
|
||||||
nodeLossTimeoutSeconds: 60
|
nodeLossTimeoutSeconds: 60
|
||||||
|
Loading…
x
Reference in New Issue
Block a user