/
types_common.go
117 lines (106 loc) · 3.93 KB
/
types_common.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
/*
Copyright 2020 The Kubernetes 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 config
/*
TODO:
When the INI based cloud-config is deprecated. This file should be deleted and
the structs in types_yaml.go will be renamed to replace the ones in this file.
*/
// Global struct
type Global struct {
// vCenter username.
User string
// vCenter password in clear text.
Password string
// Deprecated. Use VirtualCenter to specify multiple vCenter Servers.
// vCenter IP.
VCenterIP string
// vCenter port.
VCenterPort string
// True if vCenter uses self-signed cert.
InsecureFlag bool
// Datacenter in which VMs are located.
Datacenters string
// Soap round tripper count (retries = RoundTripper - 1)
RoundTripperCount uint
// Specifies the path to a CA certificate in PEM format. Optional; if not
// configured, the system's CA certificates will be used.
CAFile string
// Thumbprint of the VCenter's certificate thumbprint
Thumbprint string
// Name of the secret were vCenter credentials are present.
SecretName string
// Secret Namespace where secret will be present that has vCenter credentials.
SecretNamespace string
// Secret directory in the event that:
// 1) we don't want to use the k8s API to listen for changes to secrets
// 2) we are not in a k8s env, namely DC/OS, since CSI is CO agnostic
// Default: /etc/cloud/credentials
SecretsDirectory string
}
// VirtualCenterConfig struct
type VirtualCenterConfig struct {
// vCenter username.
User string
// vCenter password in clear text.
Password string
// TenantRef (intentionally not exposed via the config) is a unique tenant ref to
// be used in place of the vcServer as the primary connection key. If one label is set,
// all virtual center configs must have a unique label.
TenantRef string
// vCenterIP - If this field in the config is set, it is assumed then that value in [VirtualCenter "<value>"]
// is now the TenantRef above and this field is the actual VCenterIP. Otherwise for backward
// compatibility, the value by default is the IP or FQDN of the vCenter Server.
VCenterIP string
// vCenter port.
VCenterPort string
// True if vCenter uses self-signed cert.
InsecureFlag bool
// Datacenter in which VMs are located.
Datacenters string
// Soap round tripper count (retries = RoundTripper - 1)
RoundTripperCount uint
// Specifies the path to a CA certificate in PEM format. Optional; if not
// configured, the system's CA certificates will be used.
CAFile string
// Thumbprint of the VCenter's certificate thumbprint
Thumbprint string
// SecretRef (intentionally not exposed via the config) is a key to identify which
// InformerManager holds the secret
SecretRef string
// Name of the secret where vCenter credentials are present.
SecretName string
// Namespace where the secret will be present containing vCenter credentials.
SecretNamespace string
// IP Family enables the ability to support IPv4 or IPv6
// Supported values are:
// ipv4 - IPv4 addresses only (Default)
// ipv6 - IPv6 addresses only
IPFamilyPriority []string
}
// Labels struct
type Labels struct {
// Zone describes a zone
Zone string
// Region describes a region
Region string
}
// Config is used to read and store information from the cloud configuration file
type Config struct {
// Global settings
Global Global
// Virtual Center configurations
VirtualCenter map[string]*VirtualCenterConfig
// Tag categories and tags which correspond to "built-in node labels: zones and region"
Labels Labels
}