-
Notifications
You must be signed in to change notification settings - Fork 12
/
types.go
113 lines (104 loc) · 3.3 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
package crossplane
type appConfig struct {
MainAppGitPath string `json:"mainAppGitPath"`
ChildAppNames []string `json:"childAppNames"`
SynchApp bool `json:"synchApp"`
}
type clusterUpdateConfig struct {
MainAppGitPath string `json:"mainAppGitPath"`
ClusterValuesFile string `json:"clusterValuesFile"`
DefaultAppListFile string `json:"defaultAppListFile"`
DefaultAppValuesPath string `json:"defaultAppValuesPath"`
ClusterDefaultAppValuesPath string `json:"clusterDefaultAppValuesPath"`
AppRoleTokenVaultPaths []string `json:"appRoleTokenVaultPaths"`
ExternalSecrets []clusterExternalSecret `json:"externalSecrets"`
}
type providerUpdateConfig struct {
SyncAppPath string `json:"syncAppPath"`
}
type CrossplanePluginConfig struct {
TemplateGitRepo string `json:"templateGitRepo"`
CrossplaneConfigSyncPath string `json:"crossplaneConfigSyncPath"`
ProviderConfigSyncPath string `json:"providerConfigSyncPath"`
ProviderPackages map[string]string `json:"providerPackages"`
ArgoCDApps []appConfig `json:"argoCDApps"`
ClusterEndpointUpdates clusterUpdateConfig `json:"clusterUpdateConfig"`
ProviderEndpointUpdates providerUpdateConfig `json:"providerUpdate"`
}
type secretData struct {
SecretKey string `json:"secretKey"`
SecretPath string `json:"secretPath"`
}
type clusterExternalSecret struct {
Namespace string `json:"namespace"`
SecretName string `json:"secretName"`
SecretType string `json:"secretType"`
VaultSecrets []secretData `json:"vaultSecrets"`
}
const (
crossplaneAWSProviderTemplate = `
apiVersion: pkg.crossplane.io/v1alpha1
kind: ControllerConfig
metadata:
name: "%s-vault-config"
spec:
args:
- --debug
metadata:
annotations:
vault.hashicorp.com/agent-inject: "true"
vault.hashicorp.com/role: "vault-role-crossplane"
vault.hashicorp.com/agent-inject-secret-creds.txt: "secret/%s"
vault.hashicorp.com/agent-inject-template-creds.txt: |
{{- with secret "secret/%s" -}}
[default]
aws_access_key_id="{{ .Data.data.accessKey }}"
aws_secret_access_key="{{ .Data.data.secretKey }}"
{{- end -}}
---
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-%s
spec:
package: "%s"
controllerConfigRef:
name: "%s-vault-config"
`
)
const (
crossplaneGCPProviderTemplate = `
apiVersion: pkg.crossplane.io/v1alpha1
kind: ControllerConfig
metadata:
name: "%s-vault-config"
spec:
metadata:
annotations:
vault.hashicorp.com/agent-inject: "true"
vault.hashicorp.com/role: "vault-role-crossplane"
vault.hashicorp.com/agent-inject-secret-creds.txt: "secret/%s"
vault.hashicorp.com/agent-inject-template-creds.txt: |
{{- with secret "secret/%s" -}}
{{ .Data.data | toJSON }}
{{- end -}}
---
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-%s
spec:
package: "%s"
controllerConfigRef:
name: "%s-vault-config"`
)
const (
crossplaneAzureProviderTemplate = `
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-%s
spec:
package: "%s"
`
)