forked from LaconicNetwork/kompose
adds a unit test for the TestKubernetes_CreateSecrets function where secrets are created in Kubernetes from a KomposeObject, and secrets are taken from a CNAME file. Also, a newSecrets function is added to generate secrets from the provided configuration
Signed-off-by: jose luis <2064537+sosan@users.noreply.github.com>
This commit is contained in:
parent
b544c17472
commit
b095982ddf
@ -1147,15 +1147,23 @@ func TestNamespaceGenerationBlank(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func TestKubernetes_CreateSecrets(t *testing.T) {
|
func TestKubernetes_CreateSecrets(t *testing.T) {
|
||||||
// hardcoded
|
var komposeDefaultObject []kobject.KomposeObject
|
||||||
komposeDefaultObject := kobject.KomposeObject{
|
dataSecrets := []SecretsConfig{
|
||||||
ServiceConfigs: map[string]kobject.ServiceConfig{"app": newServiceConfig()},
|
{
|
||||||
Secrets: types.Secrets{
|
nameSecretConfig: "config-ini",
|
||||||
"config-ini": types.SecretConfig{
|
nameSecret: "debug-config-ini",
|
||||||
Name: "debug-config-ini",
|
pathFile: "../../../docs/CNAME",
|
||||||
File: "../../../docs/CNAME",
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
nameSecretConfig: "new-config-init",
|
||||||
|
nameSecret: "new-debug-config-ini",
|
||||||
|
pathFile: "../../../docs/CNAME",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for i := 0; i < len(dataSecrets); i++ {
|
||||||
|
komposeDefaultObject = append(komposeDefaultObject, newKomposeObject())
|
||||||
|
komposeDefaultObject[i].Secrets = newSecrets(dataSecrets[i])
|
||||||
}
|
}
|
||||||
|
|
||||||
type fields struct {
|
type fields struct {
|
||||||
@ -1172,11 +1180,10 @@ func TestKubernetes_CreateSecrets(t *testing.T) {
|
|||||||
want []*api.Secret
|
want []*api.Secret
|
||||||
wantErr bool
|
wantErr bool
|
||||||
}{
|
}{
|
||||||
// TODO: Add test cases.
|
|
||||||
{
|
{
|
||||||
name: "CreateSecrets from default KomposeObject amd hardcoded secrets",
|
name: "CreateSecrets from default KomposeObject and secrets taken from CNAME file",
|
||||||
args: args{
|
args: args{
|
||||||
komposeObject: komposeDefaultObject,
|
komposeObject: komposeDefaultObject[0],
|
||||||
},
|
},
|
||||||
want: []*api.Secret{
|
want: []*api.Secret{
|
||||||
{
|
{
|
||||||
@ -1185,8 +1192,28 @@ func TestKubernetes_CreateSecrets(t *testing.T) {
|
|||||||
APIVersion: "v1",
|
APIVersion: "v1",
|
||||||
},
|
},
|
||||||
ObjectMeta: metav1.ObjectMeta{
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
Name: FormatResourceName("config-ini"),
|
Name: FormatResourceName(dataSecrets[0].nameSecretConfig),
|
||||||
Labels: transformer.ConfigLabels("config-ini"),
|
Labels: transformer.ConfigLabels(dataSecrets[0].nameSecretConfig),
|
||||||
|
},
|
||||||
|
Type: api.SecretTypeOpaque,
|
||||||
|
Data: map[string][]byte{"CNAME": []byte("kompose.io")},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "CreateSecrets from default KomposeObject and secrets taken from CNAME file",
|
||||||
|
args: args{
|
||||||
|
komposeObject: komposeDefaultObject[1],
|
||||||
|
},
|
||||||
|
want: []*api.Secret{
|
||||||
|
{
|
||||||
|
TypeMeta: metav1.TypeMeta{
|
||||||
|
Kind: "Secret",
|
||||||
|
APIVersion: "v1",
|
||||||
|
},
|
||||||
|
ObjectMeta: metav1.ObjectMeta{
|
||||||
|
Name: FormatResourceName(dataSecrets[1].nameSecretConfig),
|
||||||
|
Labels: transformer.ConfigLabels(dataSecrets[1].nameSecretConfig),
|
||||||
},
|
},
|
||||||
Type: api.SecretTypeOpaque,
|
Type: api.SecretTypeOpaque,
|
||||||
Data: map[string][]byte{"CNAME": []byte("kompose.io")},
|
Data: map[string][]byte{"CNAME": []byte("kompose.io")},
|
||||||
@ -1210,3 +1237,19 @@ func TestKubernetes_CreateSecrets(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type SecretsConfig struct {
|
||||||
|
nameSecretConfig string
|
||||||
|
nameSecret string
|
||||||
|
pathFile string
|
||||||
|
}
|
||||||
|
|
||||||
|
// generate
|
||||||
|
func newSecrets(stringsSecretConfig SecretsConfig) types.Secrets {
|
||||||
|
return types.Secrets{
|
||||||
|
stringsSecretConfig.nameSecretConfig: types.SecretConfig{
|
||||||
|
Name: stringsSecretConfig.nameSecret,
|
||||||
|
File: stringsSecretConfig.pathFile,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user