forked from kubevela/terraform-controller
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathucloud.go
36 lines (32 loc) · 1012 Bytes
/
ucloud.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
package provider
import (
"github.com/pkg/errors"
"gopkg.in/yaml.v2"
"k8s.io/klog/v2"
)
const (
envUCloudPrivateKey = "UCLOUD_PRIVATE_KEY"
envUCloudProjectID = "UCLOUD_PROJECT_ID"
envUCloudPublicKey = "UCLOUD_PUBLIC_KEY"
envUCloudRegion = "UCLOUD_REGION"
)
// UCloudCredentials are credentials for UCloud
type UCloudCredentials struct {
PublicKey string `yaml:"publicKey"`
PrivateKey string `yaml:"privateKey"`
Region string `yaml:"region"`
ProjectID string `yaml:"projectID"`
}
func getUCloudCredentials(secretData []byte, name, namespace, region string) (map[string]string, error) {
var ak UCloudCredentials
if err := yaml.Unmarshal(secretData, &ak); err != nil {
klog.ErrorS(err, errConvertCredentials, "Name", name, "Namespace", namespace)
return nil, errors.Wrap(err, errConvertCredentials)
}
return map[string]string{
envUCloudPublicKey: ak.PublicKey,
envUCloudPrivateKey: ak.PrivateKey,
envUCloudRegion: region,
envUCloudProjectID: ak.ProjectID,
}, nil
}