-
Notifications
You must be signed in to change notification settings - Fork 0
/
context.go
54 lines (45 loc) · 1.61 KB
/
context.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*
Copyright 2019 The KubeOne Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package util
import (
"github.com/sirupsen/logrus"
kubeoneapi "github.com/kubermatic/kubeone/pkg/apis/kubeone"
"github.com/kubermatic/kubeone/pkg/ssh"
"k8s.io/client-go/rest"
dynclient "sigs.k8s.io/controller-runtime/pkg/client"
)
// Context hold together currently test flags and parsed info, along with
// utilities like logger
type Context struct {
Cluster *kubeoneapi.KubeOneCluster
Logger logrus.FieldLogger
Connector *ssh.Connector
Configuration *Configuration
Runner *Runner
WorkDir string
JoinCommand string
JoinToken string
RESTConfig *rest.Config
DynamicClient dynclient.Client
Verbose bool
BackupFile string
DestroyWorkers bool
RemoveBinaries bool
ForceUpgrade bool
UpgradeMachineDeployments bool
}
// Clone returns a shallow copy of the context.
func (c *Context) Clone() *Context {
newCtx := *c
return &newCtx
}