4
4
"flag"
5
5
"fmt"
6
6
"os"
7
+ "strings"
7
8
"testing"
8
9
9
10
"github.com/k3s-io/k3s/tests"
@@ -153,7 +154,7 @@ var _ = AfterEach(func() {
153
154
154
155
var _ = AfterSuite (func () {
155
156
if failed {
156
- AddReportEntry ( "journald-logs" , e2e .TailJournalLogs ( 1000 , tc .Servers ))
157
+ Expect ( e2e .SaveJournalLogs ( tc .Servers )). To ( Succeed ( ))
157
158
} else {
158
159
Expect (e2e .GetCoverageReport (tc .Servers )).To (Succeed ())
159
160
}
@@ -162,3 +163,38 @@ var _ = AfterSuite(func() {
162
163
Expect (os .Remove (tc .KubeconfigFile )).To (Succeed ())
163
164
}
164
165
})
166
+
167
+ // RunCmdOnRootlessNode executes a command from within the given node as user vagrant
168
+ func RunCmdOnRootlessNode (cmd string , nodename string ) (string , error ) {
169
+ injectEnv := ""
170
+ if _ , ok := os .LookupEnv ("E2E_GOCOVER" ); ok && strings .HasPrefix (cmd , "k3s" ) {
171
+ injectEnv = "GOCOVERDIR=/tmp/k3scov "
172
+ }
173
+ runcmd := "vagrant ssh " + nodename + " -c \" " + injectEnv + cmd + "\" "
174
+ out , err := e2e .RunCommand (runcmd )
175
+ if err != nil {
176
+ return out , fmt .Errorf ("failed to run command: %s on node %s: %s, %v" , cmd , nodename , out , err )
177
+ }
178
+ return out , nil
179
+ }
180
+
181
+ func GenRootlessKubeconfigFile (serverName string ) (string , error ) {
182
+ kubeConfig , err := RunCmdOnRootlessNode ("cat /home/vagrant/.kube/k3s.yaml" , serverName )
183
+ if err != nil {
184
+ return "" , err
185
+ }
186
+ vNode := e2e .VagrantNode (serverName )
187
+ nodeIP , err := vNode .FetchNodeExternalIP ()
188
+ if err != nil {
189
+ return "" , err
190
+ }
191
+ kubeConfig = strings .Replace (kubeConfig , "127.0.0.1" , nodeIP , 1 )
192
+ kubeConfigFile := fmt .Sprintf ("kubeconfig-%s" , serverName )
193
+ if err := os .WriteFile (kubeConfigFile , []byte (kubeConfig ), 0644 ); err != nil {
194
+ return "" , err
195
+ }
196
+ if err := os .Setenv ("E2E_KUBECONFIG" , kubeConfigFile ); err != nil {
197
+ return "" , err
198
+ }
199
+ return kubeConfigFile , nil
200
+ }
0 commit comments