Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
119 changes: 119 additions & 0 deletions cmd/auto-service-tls-renew.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
package cmd

import (
_ "embed"
"os"
"os/exec"

"github.com/spf13/cobra"
)

//go:embed swiftwave-service-tls-renew.service
var swiftwaveServiceTLSRenewService string

//go:embed swiftwave-service-tls-renew.timer
var swiftwaveServiceTLSRenewTimer string

func init() {
autoServiceTLSRenewCmd.AddCommand(enableServiceTLSRenewServiceCmd)
autoServiceTLSRenewCmd.AddCommand(disableServiceTLSRenewServiceCmd)
}

var autoServiceTLSRenewCmd = &cobra.Command{
Use: "auto-renew",
Short: "Auto renew swiftwave service TLS certificates going to expire in 30 days",
Long: `Auto update swiftwave service TLS certificates going to expire in 30 days`,
Run: func(cmd *cobra.Command, args []string) {
// print help
err := cmd.Help()
if err != nil {
return
}
},
}

var enableServiceTLSRenewServiceCmd = &cobra.Command{
Use: "enable",
Short: "Enable auto renew service",
Long: `Enable auto renew service`,
Run: func(cmd *cobra.Command, args []string) {
// Move swiftwave-service-tls-renew.service to /etc/systemd/system/
err := os.WriteFile("/etc/systemd/system/swiftwave-service-tls-renew.service", []byte(swiftwaveServiceTLSRenewService), 0644)
if err != nil {
printError("Failed to write swiftwave-service-tls-renew.service file")
return
}
// Move swiftwave-service-tls-renew.timer to /etc/systemd/system/
err = os.WriteFile("/etc/systemd/system/swiftwave-service-tls-renew.timer", []byte(swiftwaveServiceTLSRenewTimer), 0644)
if err != nil {
printError("Failed to write swiftwave-service-tls-renew.timer file")
return
}
// Reload systemd daemon
runCommand := exec.Command("systemctl", "daemon-reload")
err = runCommand.Run()
if err != nil {
printError("Failed to reload systemd daemon")
} else {
printSuccess("Reloaded systemd daemon")
}
// Enable swiftwave service tls renew timer
runCommand = exec.Command("systemctl", "enable", "swiftwave-service-tls-renew.timer")
err = runCommand.Run()
if err != nil {
printError("Failed to enable swiftwave service tls renew service")
} else {
printSuccess("Enabled swiftwave service tls renew service")
}
// Start swiftwave service
runCommand = exec.Command("systemctl", "start", "swiftwave-service-tls-renew.timer")
err = runCommand.Run()
if err != nil {
printError("Failed to start swiftwave service tls renew service")
} else {
printSuccess("Started swiftwave service tls renew service")
}
},
}

var disableServiceTLSRenewServiceCmd = &cobra.Command{
Use: "disable",
Short: "Disable auto renew service",
Long: `Disable auto renew service`,
Run: func(cmd *cobra.Command, args []string) {
// Stop swiftwave service
runCommand := exec.Command("systemctl", "stop", "swiftwave-service-tls-renew.timer")
err := runCommand.Run()
if err != nil {
printError("Failed to stop swiftwave auto service tls renew service")
} else {
printSuccess("Stopped swiftwave auto service tls renew service")
}
// Disable swiftwave service
runCommand = exec.Command("systemctl", "disable", "swiftwave-service-tls-renew.timer")
err = runCommand.Run()
if err != nil {
printError("Failed to disable swiftwave auto service tls renew service")
} else {
printSuccess("Disabled swiftwave auto service tls renew service")
}
// Remove swiftwave-service-tls-renew.service from /etc/systemd/system/
err = os.Remove("/etc/systemd/system/swiftwave-service-tls-renew.service")
if err != nil {
printError("Failed to remove swiftwave-service-tls-renew.service file")
}
// Remove swiftwave-service-tls-renew.timer from /etc/systemd/system/
err = os.Remove("/etc/systemd/system/swiftwave-service-tls-renew.timer")
if err != nil {
printError("Failed to remove swiftwave-service-tls-renew.timer file")
}
// Reload systemd daemon
runCommand = exec.Command("systemctl", "daemon-reload")
err = runCommand.Run()
if err != nil {
printError("Failed to reload systemd daemon")
} else {
printSuccess("Reloaded systemd daemon")
}
},
}
128 changes: 0 additions & 128 deletions cmd/generate-tls.go

This file was deleted.

3 changes: 0 additions & 3 deletions cmd/haproxy.go
Original file line number Diff line number Diff line change
Expand Up @@ -71,9 +71,6 @@ var haproxyStartCmd = &cobra.Command{
}
}
dockerImage := systemConfig.HAProxyConfig.DockerImage
if !systemConfig.ServiceConfig.UseTLS {
dockerImage = dockerImage + "-http"
}
// base directory for socket file
unixSocketMountDir := filepath.Dir(systemConfig.HAProxyConfig.UnixSocketPath)
err := generateDefaultHAProxyConfiguration(systemConfig)
Expand Down
18 changes: 17 additions & 1 deletion cmd/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"fmt"
"io"
"log"
"math/rand"
"net/http"
"os"
"strings"
Expand Down Expand Up @@ -179,11 +180,17 @@ var initCmd = &cobra.Command{
return
}

configTemplate.ServiceConfig.JwtSecretKey = generateRandomString(64)
configTemplate.ServiceConfig.AddressOfCurrentNode = domainName
configTemplate.LetsEncryptConfig.EmailID = letsEncryptEmail
configTemplate.HAProxyConfig.User = haproxyUser
configTemplate.HAProxyConfig.Password = haproxyPassword

hostname, err := os.Hostname()
if err != nil {
printError("Failed to fetch system hostname")
os.Exit(1)
}
configTemplate.TaskQueueConfig.AMQPConfig.ClientName = hostname
isCreated = createConfig(configTemplate, configFilePath)

if isCreated {
Expand Down Expand Up @@ -270,3 +277,12 @@ func getIPAddress() (string, error) {
}
return string(body), nil
}

func generateRandomString(length int) string {
const charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
result := make([]byte, length)
for i := range result {
result[i] = charset[rand.Intn(len(charset))]
}
return string(result)
}
2 changes: 1 addition & 1 deletion cmd/root.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,11 @@ func init() {
rootCmd.AddCommand(configCmd)
rootCmd.AddCommand(createUserCmd)
rootCmd.AddCommand(deleteUserCmd)
rootCmd.AddCommand(tlsCmd)
rootCmd.AddCommand(startCmd)
rootCmd.AddCommand(haproxyCmd)
rootCmd.AddCommand(udpProxyCmd)
rootCmd.AddCommand(postgresCmd)
rootCmd.AddCommand(generateTLSCommand)
rootCmd.AddCommand(dbMigrateCmd)
rootCmd.AddCommand(serviceCmd)
rootCmd.AddCommand(updateCmd)
Expand Down
10 changes: 10 additions & 0 deletions cmd/swiftwave-service-tls-renew.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[Unit]
Description=Swiftwave Service TLS Ceritificate Updater Service
After=multi-user.target

[Service]
ExecStart=/bin/sh -c "/usr/bin/swiftwave tls renew-certificates || true"
Type=simple

[Install]
WantedBy=multi-user.target
10 changes: 10 additions & 0 deletions cmd/swiftwave-service-tls-renew.timer
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[Unit]
Description=Swiftwave Service TLS Ceritificate Updater

[Timer]
OnCalendar=*-*-* 00:00:00
Unit=swiftwave-service-tls-renew.service
Persistent=true

[Install]
WantedBy=timers.target
Loading