Simplified Execute in shell.go
This commit is contained in:
parent
977ca6a544
commit
99642343d1
@ -6,7 +6,6 @@ ENV DEBIAN_FRONTEND=noninteractive
|
|||||||
ENV TZ="Africa/Johannesburg"
|
ENV TZ="Africa/Johannesburg"
|
||||||
ENV WEBROOT=/webroot
|
ENV WEBROOT=/webroot
|
||||||
|
|
||||||
# Set up ZSH and our preferred terminal environment for containers
|
|
||||||
RUN apk add --no-cache git
|
RUN apk add --no-cache git
|
||||||
|
|
||||||
WORKDIR /workspace
|
WORKDIR /workspace
|
||||||
|
|||||||
@ -25,6 +25,6 @@ alias dnsupd=/acme/updatedns.sh
|
|||||||
# alias cp='cp -i'
|
# alias cp='cp -i'
|
||||||
# alias mv='mv -i'
|
# alias mv='mv -i'
|
||||||
export PATH=/root/bin:$PATH:/acme
|
export PATH=/root/bin:$PATH:/acme
|
||||||
export FRONTEND=noninteractive
|
#export FRONTEND=noninteractive
|
||||||
export TZ=Africa/Johannesburg
|
#export TZ=Africa/Johannesburg
|
||||||
export WEBROOT=/webroot
|
#export WEBROOT=/webroot
|
||||||
@ -31,5 +31,5 @@ alias dnsupd=/acme/updatedns.sh
|
|||||||
# alias cp='cp -ip'
|
# alias cp='cp -ip'
|
||||||
# alias mv='mv -i'
|
# alias mv='mv -i'
|
||||||
# alias rm='rm -i'
|
# alias rm='rm -i'
|
||||||
export PATH=/root/bin:$PATH
|
export PATH=/root/bin:$PATH:/acme
|
||||||
export WEBROOT=/webroot
|
#export WEBROOT=/webroot
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
appVersion: v0.0.4-alpha.93
|
appVersion: v0.0.4-alpha.100
|
||||||
description: Cert-Manager webhook for sthome
|
description: Cert-Manager webhook for sthome
|
||||||
name: sthome-webhook
|
name: sthome-webhook
|
||||||
version: 0.0.4-alpha.93
|
version: 0.0.4-alpha.100
|
||||||
|
|||||||
@ -31,7 +31,7 @@ clusterIssuer:
|
|||||||
image:
|
image:
|
||||||
repository: stuurmcp/cert-manager-webhook-sthome
|
repository: stuurmcp/cert-manager-webhook-sthome
|
||||||
#repository: wstat.sthome.net:5000/cert-manager-webhook-sthome
|
#repository: wstat.sthome.net:5000/cert-manager-webhook-sthome
|
||||||
tag: 0.0.4-alpha.93
|
tag: 0.0.4-alpha.100
|
||||||
#pullPolicy should be IfNotPresent. Set to Always for testing purposes
|
#pullPolicy should be IfNotPresent. Set to Always for testing purposes
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
|
|
||||||
|
|||||||
@ -1,45 +1,22 @@
|
|||||||
package sthome
|
package sthome
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"bytes"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
|
||||||
//"bytes"
|
|
||||||
|
|
||||||
"k8s.io/klog/v2"
|
"k8s.io/klog/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
type saveOutput struct {
|
func Execute(shell string, arg ...string) (bool, error) {
|
||||||
buffer []byte
|
var outb, errb bytes.Buffer
|
||||||
}
|
cmd := exec.Command(shell, arg...)
|
||||||
|
cmd.Stdout = &outb
|
||||||
func (so *saveOutput) Write(p []byte) (n int, err error) {
|
cmd.Stderr = &errb
|
||||||
so.buffer = append(so.buffer, p...)
|
|
||||||
return os.Stdout.Write(p)
|
|
||||||
}
|
|
||||||
|
|
||||||
func Execute(shell string, command []string) (bool, error) {
|
|
||||||
var so saveOutput
|
|
||||||
//var buffer bytes.Buffer
|
|
||||||
/*
|
|
||||||
currentUser, err := user.Current()
|
|
||||||
if err != nil {
|
|
||||||
klog.Fatalf("CZ: Unable to get current user: %s", err)
|
|
||||||
}
|
|
||||||
klog.Infof("CZ: Executing as user %s : %s %v\n", currentUser.Name, shell, command)
|
|
||||||
*/
|
|
||||||
cmd := &exec.Cmd{
|
|
||||||
Path: shell,
|
|
||||||
Args: command,
|
|
||||||
}
|
|
||||||
cmd.Stdin = os.Stdin
|
|
||||||
cmd.Stdout = &so //&buffer
|
|
||||||
cmd.Stderr = os.Stderr
|
|
||||||
err := cmd.Run()
|
err := cmd.Run()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
klog.Errorf("Script return error: %s\n%s\n", err, string(so.buffer))
|
klog.Errorf("Script returned error: %s\nout:\n%serr:\n%s============\n", err, outb.String(), errb.String())
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
klog.Infof("Script returned success:\n%s\n", string(so.buffer))
|
klog.Infof("Script returned success:\nout:\n%s============\n", outb.String())
|
||||||
return true, nil
|
return true, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -83,8 +83,7 @@ func (loc *LocalDNSProviderSolver) Present(ch *v1alpha1.ChallengeRequest) error
|
|||||||
klog.Infof("Presenting record for %s, ch: %s, domain: %s", ch.DNSName, ch.ResolvedFQDN, domainName)
|
klog.Infof("Presenting record for %s, ch: %s, domain: %s", ch.DNSName, ch.ResolvedFQDN, domainName)
|
||||||
// TODO: convert shell script to golang
|
// TODO: convert shell script to golang
|
||||||
localip := getOutboundIP(dnsserver_net)
|
localip := getOutboundIP(dnsserver_net)
|
||||||
// shell command
|
success, _ := Execute(
|
||||||
settxtcommand := []string{
|
|
||||||
shell,
|
shell,
|
||||||
acmeAuthCmd,
|
acmeAuthCmd,
|
||||||
"set",
|
"set",
|
||||||
@ -94,8 +93,7 @@ func (loc *LocalDNSProviderSolver) Present(ch *v1alpha1.ChallengeRequest) error
|
|||||||
"-l",
|
"-l",
|
||||||
localip,
|
localip,
|
||||||
"-v",
|
"-v",
|
||||||
}
|
)
|
||||||
success, _ := Execute(shell, settxtcommand)
|
|
||||||
klog.Infof("Execute set TXT returned success: %t", success)
|
klog.Infof("Execute set TXT returned success: %t", success)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
@ -110,8 +108,7 @@ func (loc *LocalDNSProviderSolver) CleanUp(ch *v1alpha1.ChallengeRequest) error
|
|||||||
//domainName := extractDomainName(ch.ResolvedZone)
|
//domainName := extractDomainName(ch.ResolvedZone)
|
||||||
// TODO: add code that deletes a record from the DNS provider's console
|
// TODO: add code that deletes a record from the DNS provider's console
|
||||||
localip := getOutboundIP(dnsserver_net)
|
localip := getOutboundIP(dnsserver_net)
|
||||||
// shell command
|
success, _ := Execute(
|
||||||
unsetxtcommand := []string{
|
|
||||||
shell,
|
shell,
|
||||||
acmeAuthCmd,
|
acmeAuthCmd,
|
||||||
"unset",
|
"unset",
|
||||||
@ -121,8 +118,7 @@ func (loc *LocalDNSProviderSolver) CleanUp(ch *v1alpha1.ChallengeRequest) error
|
|||||||
"-l",
|
"-l",
|
||||||
localip,
|
localip,
|
||||||
"-v",
|
"-v",
|
||||||
}
|
)
|
||||||
success, _ := Execute(shell, unsetxtcommand)
|
|
||||||
klog.Infof("Execute unset TXT returned success: %t", success)
|
klog.Infof("Execute unset TXT returned success: %t", success)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,3 +1,3 @@
|
|||||||
0.0.4-alpha.93
|
0.0.4-alpha.100
|
||||||
20240401-2346
|
20240402-1118
|
||||||
93
|
100
|
||||||
Loading…
Reference in New Issue
Block a user