-
Notifications
You must be signed in to change notification settings - Fork 88
/
types.go
132 lines (116 loc) · 3.56 KB
/
types.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
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package types
import (
"path"
"time"
kotsv1beta1 "github.com/replicatedhq/kots/kotskinds/apis/kots/v1beta1"
kotsscheme "github.com/replicatedhq/kots/kotskinds/client/kotsclientset/scheme"
reportingtypes "github.com/replicatedhq/kots/pkg/api/reporting/types"
"k8s.io/client-go/kubernetes/scheme"
)
func init() {
kotsscheme.AddToScheme(scheme.Scheme)
}
type UpstreamFile struct {
Path string
Content []byte
}
type Upstream struct {
URI string
Name string
Type string
Files []UpstreamFile
UpdateCursor string
ChannelID string
ChannelName string
VersionLabel string
IsRequired bool
ReleaseNotes string
ReleasedAt *time.Time
EncryptionKey string
}
type Update struct {
ChannelID string `json:"channelID"`
ChannelName string `json:"channelName"`
Cursor string `json:"cursor"`
VersionLabel string `json:"versionLabel"`
IsRequired bool `json:"isRequired"`
ReleaseNotes string `json:"releaseNotes"`
ReleasedAt *time.Time `json:"releasedAt"`
AppSequence *int64 `json:"appSequence"` // can have a sequence if update is available as a pending download app version
}
type UpdateCheckResult struct {
UpdateCheckTime time.Time `json:"updateCheckTime"`
Updates []Update `json:"updates"`
}
type WriteOptions struct {
RootDir string
Namespace string
CreateAppDir bool
IncludeAdminConsole bool
IncludeMinio bool
HTTPProxyEnvValue string
HTTPSProxyEnvValue string
NoProxyEnvValue string
IsMinimalRBAC bool
AdditionalNamespaces []string
// This should be set to true when updating due to license sync, config update, registry settings update.
// and should be false when it's an upstream update.
// When true, the channel name in Installation yaml will not be changed.
PreserveInstallation bool
// Set to true on initial installation when an unencrypted config file is provided
EncryptConfig bool
SharedPassword string
IsOpenShift bool
}
type FetchOptions struct {
RootDir string
UseAppDir bool
HelmRepoURI string
LocalPath string
License *kotsv1beta1.License
ConfigValues *kotsv1beta1.ConfigValues
IdentityConfig *kotsv1beta1.IdentityConfig
Airgap *kotsv1beta1.Airgap
EncryptionKey string
LastUpdateCheckAt *time.Time
CurrentCursor string
CurrentChannelID string
CurrentChannelName string
CurrentVersionLabel string
CurrentVersionIsRequired bool
ChannelChanged bool
AppSlug string
AppSequence int64
AppVersionLabel string
LocalRegistry LocalRegistry
ReportingInfo *reportingtypes.ReportingInfo
SkipCompatibilityCheck bool
}
type LocalRegistry struct {
Host string
Namespace string
Username string
Password string
ReadOnly bool
}
func (u *Upstream) GetUpstreamDir(options WriteOptions) string {
renderDir := options.RootDir
if options.CreateAppDir {
renderDir = path.Join(renderDir, u.Name)
}
return path.Join(renderDir, "upstream")
}
func (u *Upstream) GetBaseDir(options WriteOptions) string {
renderDir := options.RootDir
if options.CreateAppDir {
renderDir = path.Join(renderDir, u.Name)
}
return path.Join(renderDir, "base")
}
func (u *Upstream) GetSkippedDir(options WriteOptions) string {
renderDir := options.RootDir
if options.CreateAppDir {
renderDir = path.Join(renderDir, u.Name)
}
return path.Join(renderDir, "skippedFiles")
}