Skip to content

Commit

Permalink
Move kopia storage consts to a secrets package (#2059)
Browse files Browse the repository at this point in the history
* move the consts to a secrets package so that they can be reused

* move location key constants to repositoryserver package

* refactor imports
  • Loading branch information
kale-amruta committed May 30, 2023
1 parent fd4624a commit 6169a0f
Show file tree
Hide file tree
Showing 11 changed files with 168 additions and 124 deletions.
9 changes: 3 additions & 6 deletions pkg/controllers/repositoryserver/repository.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,7 @@ import (
)

const (
repoPasswordKey = "repo-password"
defaultRepoConfigFilePath = "/tmp/config.file"
defaultRepoLogDirectory = "/tmp/log.dir"
defaultCacheDirectory = "/tmp/cache.dir"
repoPasswordKey = "repo-password"
)

func (h *RepoServerHandler) connectToKopiaRepository() error {
Expand All @@ -37,9 +34,9 @@ func (h *RepoServerHandler) connectToKopiaRepository() error {
CommandArgs: &command.CommandArgs{
RepoPassword: string(h.RepositoryServerSecrets.repositoryPassword.Data[repoPasswordKey]),
ConfigFilePath: command.DefaultConfigFilePath,
LogDirectory: command.DefaultCacheDirectory,
LogDirectory: command.DefaultLogDirectory,
},
CacheDirectory: defaultCacheDirectory,
CacheDirectory: command.DefaultCacheDirectory,
Hostname: h.RepositoryServer.Spec.Repository.Hostname,
ContentCacheMB: contentCacheMB,
MetadataCacheMB: metadataCacheMB,
Expand Down
2 changes: 1 addition & 1 deletion pkg/controllers/repositoryserver/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ func (h *RepoServerHandler) startRepoProxyServer(ctx context.Context) (err error
CommandArgs: &command.CommandArgs{
RepoPassword: "",
ConfigFilePath: command.DefaultConfigFilePath,
LogDirectory: command.DefaultCacheDirectory,
LogDirectory: command.DefaultLogDirectory,
},
ServerAddress: repoServerAddress,
TLSCertFile: tlsCertPath,
Expand Down
6 changes: 4 additions & 2 deletions pkg/kopia/command/storage/azure_args_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ import (
"fmt"

"gopkg.in/check.v1"

"github.com/kanisterio/kanister/pkg/secrets/repositoryserver"
)

func (s *StorageUtilsSuite) TestAzureArgsUtil(c *check.C) {
Expand All @@ -28,8 +30,8 @@ func (s *StorageUtilsSuite) TestAzureArgsUtil(c *check.C) {
}{
{
location: map[string][]byte{
bucketKey: []byte("test-bucket"),
prefixKey: []byte("test-prefix"),
repositoryserver.BucketKey: []byte("test-bucket"),
repositoryserver.PrefixKey: []byte("test-prefix"),
},
expectedCommand: fmt.Sprint(azureSubCommand,
fmt.Sprintf(" %s=%s ", azureContainerFlag, "test-bucket"),
Expand Down
4 changes: 3 additions & 1 deletion pkg/kopia/command/storage/filesystem_args_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ import (
"fmt"

"gopkg.in/check.v1"

"github.com/kanisterio/kanister/pkg/secrets/repositoryserver"
)

func (s *StorageUtilsSuite) TestFilesystemArgsUtil(c *check.C) {
Expand All @@ -38,7 +40,7 @@ func (s *StorageUtilsSuite) TestFilesystemArgsUtil(c *check.C) {
},
} {
sec := map[string][]byte{
prefixKey: []byte(tc.prefix),
repositoryserver.PrefixKey: []byte(tc.prefix),
}
args := filesystemArgs(sec, tc.repoPathPrefix)
expectedValue := fmt.Sprint(
Expand Down
10 changes: 6 additions & 4 deletions pkg/kopia/command/storage/gcs_args_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,21 @@ import (
"fmt"

"gopkg.in/check.v1"

"github.com/kanisterio/kanister/pkg/secrets/repositoryserver"
)

func (s *StorageUtilsSuite) TestGCSArgsUtil(c *check.C) {
locSecret := map[string][]byte{
prefixKey: []byte("test-prefix"),
bucketKey: []byte("test-bucket"),
repositoryserver.PrefixKey: []byte("test-prefix"),
repositoryserver.BucketKey: []byte("test-bucket"),
}
repoPathPrefix := "dir/sub-dir"
cmd := gcsArgs(locSecret, repoPathPrefix)
c.Assert(cmd.String(), check.Equals, fmt.Sprint(
gcsSubCommand,
fmt.Sprintf(" --%s=%s", bucketKey, locSecret[bucketKey]),
fmt.Sprintf(" --%s=%s", repositoryserver.BucketKey, locSecret[repositoryserver.BucketKey]),
fmt.Sprintf(" %s=/tmp/creds.txt", credentialsFileFlag),
fmt.Sprintf(" --%s=%s/%s/", prefixKey, locSecret[prefixKey], repoPathPrefix),
fmt.Sprintf(" --%s=%s/%s/", repositoryserver.PrefixKey, locSecret[repositoryserver.PrefixKey], repoPathPrefix),
))
}
22 changes: 12 additions & 10 deletions pkg/kopia/command/storage/s3_args_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ import (
"fmt"

"gopkg.in/check.v1"

"github.com/kanisterio/kanister/pkg/secrets/repositoryserver"
)

func (s *StorageUtilsSuite) TestS3ArgsUtil(c *check.C) {
Expand All @@ -28,10 +30,10 @@ func (s *StorageUtilsSuite) TestS3ArgsUtil(c *check.C) {
}{
{
location: map[string][]byte{
bucketKey: []byte("test-bucket"),
prefixKey: []byte("test-prefix"),
regionKey: []byte("test-region"),
skipSSLVerifyKey: []byte("true"),
repositoryserver.BucketKey: []byte("test-bucket"),
repositoryserver.PrefixKey: []byte("test-prefix"),
repositoryserver.RegionKey: []byte("test-region"),
repositoryserver.SkipSSLVerifyKey: []byte("true"),
},
expectedCommand: fmt.Sprint(s3SubCommand,
fmt.Sprintf(" %s=%s", bucketFlag, "test-bucket"),
Expand All @@ -42,9 +44,9 @@ func (s *StorageUtilsSuite) TestS3ArgsUtil(c *check.C) {
},
{
location: map[string][]byte{
bucketKey: []byte("test-bucket"),
prefixKey: []byte("test-prefix"),
endpointKey: []byte("https://test.test:9000/"),
repositoryserver.BucketKey: []byte("test-bucket"),
repositoryserver.PrefixKey: []byte("test-prefix"),
repositoryserver.EndpointKey: []byte("https://test.test:9000/"),
},
expectedCommand: fmt.Sprint(s3SubCommand,
fmt.Sprintf(" %s=%s", bucketFlag, "test-bucket"),
Expand All @@ -53,9 +55,9 @@ func (s *StorageUtilsSuite) TestS3ArgsUtil(c *check.C) {
},
{
location: map[string][]byte{
bucketKey: []byte("test-bucket"),
prefixKey: []byte("test-prefix"),
endpointKey: []byte("http://test.test:9000"),
repositoryserver.BucketKey: []byte("test-bucket"),
repositoryserver.PrefixKey: []byte("test-prefix"),
repositoryserver.EndpointKey: []byte("http://test.test:9000"),
},
expectedCommand: fmt.Sprint(s3SubCommand,
fmt.Sprintf(" %s=%s", bucketFlag, "test-bucket"),
Expand Down
49 changes: 17 additions & 32 deletions pkg/kopia/command/storage/secret_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,54 +25,39 @@ import (
"github.com/kanisterio/kanister/pkg/apis/cr/v1alpha1"
"github.com/kanisterio/kanister/pkg/aws"
"github.com/kanisterio/kanister/pkg/secrets"
"github.com/kanisterio/kanister/pkg/secrets/repositoryserver"
)

type LocType string

const (
// Location secret keys
bucketKey = "bucket"
endpointKey = "endpoint"
prefixKey = "prefix"
regionKey = "region"
skipSSLVerifyKey = "skipSSLVerify"
typeKey = "type"

// Location types
LocTypeS3 LocType = "s3"
LocTypeGCS LocType = "gcs"
LocTypeAzure LocType = "azure"
LocTypeFilestore LocType = "filestore"

// Azure location related environment variables
azureStorageAccountEnv = "AZURE_STORAGE_ACCOUNT"
azureStorageKeyEnv = "AZURE_STORAGE_KEY"
azureStorageDomainEnv = "AZURE_STORAGE_DOMAIN"
)

func getBucketNameFromMap(m map[string][]byte) string {
return string(m[bucketKey])
return string(m[repositoryserver.BucketKey])
}

func getEndpointFromMap(m map[string][]byte) string {
return string(m[endpointKey])
return string(m[repositoryserver.EndpointKey])
}

func getPrefixFromMap(m map[string][]byte) string {
return string(m[prefixKey])
return string(m[repositoryserver.PrefixKey])
}

func getRegionFromMap(m map[string][]byte) string {
return string(m[regionKey])
return string(m[repositoryserver.RegionKey])
}

func checkSkipSSLVerifyFromMap(m map[string][]byte) bool {
v := string(m[skipSSLVerifyKey])
v := string(m[repositoryserver.SkipSSLVerifyKey])
return v == "true"
}

func locationType(m map[string][]byte) LocType {
return LocType(m[typeKey])
func locationType(m map[string][]byte) repositoryserver.LocType {
return repositoryserver.LocType(m[repositoryserver.TypeKey])
}

// GenerateEnvSpecFromCredentialSecret parses the secret and returns
Expand Down Expand Up @@ -159,7 +144,7 @@ func getEnvVar(varName, value string) v1.EnvVar {
// GetMapForLocationValues return a map with valid keys
// for different location values
func GetMapForLocationValues(
locType LocType,
locType repositoryserver.LocType,
prefix,
region,
bucket,
Expand All @@ -168,24 +153,24 @@ func GetMapForLocationValues(
) map[string][]byte {
m := map[string][]byte{}
if bucket != "" {
m[bucketKey] = []byte(bucket)
m[repositoryserver.BucketKey] = []byte(bucket)
}
if endpoint != "" {
m[endpointKey] = []byte(endpoint)
m[repositoryserver.EndpointKey] = []byte(endpoint)
}
if prefix != "" {
m[prefixKey] = []byte(prefix)
m[repositoryserver.PrefixKey] = []byte(prefix)
}
if region != "" {
m[regionKey] = []byte(region)
m[repositoryserver.RegionKey] = []byte(region)
}
if skipSSLVerify != "" {
m[skipSSLVerifyKey] = []byte(skipSSLVerify)
m[repositoryserver.SkipSSLVerifyKey] = []byte(skipSSLVerify)
}
if locType != "" {
m[typeKey] = []byte(locType)
if locType == LocType(v1alpha1.LocationTypeS3Compliant) {
m[typeKey] = []byte(LocTypeS3)
m[repositoryserver.TypeKey] = []byte(locType)
if locType == repositoryserver.LocType(v1alpha1.LocationTypeS3Compliant) {
m[repositoryserver.TypeKey] = []byte(repositoryserver.LocTypeS3)
}
}
return m
Expand Down
Loading

0 comments on commit 6169a0f

Please sign in to comment.