Skip to content

Commit 4dc44b6

Browse files
committed
ApplicationCredential Tests and Config Samples
On-behalf-of: SAP [email protected]
1 parent f5ed5b3 commit 4dc44b6

37 files changed

Lines changed: 459 additions & 276 deletions
Lines changed: 50 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,59 @@
11
---
22
apiVersion: openstack.k-orc.cloud/v1alpha1
3+
kind: Role
4+
metadata:
5+
name: appcred-sample
6+
spec:
7+
cloudCredentialsRef:
8+
cloudName: openstack-admin
9+
secretName: openstack-clouds
10+
managementPolicy: managed
11+
resource: {}
12+
---
13+
apiVersion: openstack.k-orc.cloud/v1alpha1
14+
kind: User
15+
metadata:
16+
name: appcred-sample
17+
spec:
18+
cloudCredentialsRef:
19+
cloudName: openstack-admin
20+
secretName: openstack-clouds
21+
managementPolicy: unmanaged
22+
import:
23+
filter:
24+
name: admin
25+
---
26+
apiVersion: openstack.k-orc.cloud/v1alpha1
27+
kind: Service
28+
metadata:
29+
name: appcred-sample
30+
spec:
31+
cloudCredentialsRef:
32+
cloudName: openstack-admin
33+
secretName: openstack-clouds
34+
managementPolicy: unmanaged
35+
import:
36+
filter:
37+
type: "compute"
38+
---
39+
apiVersion: openstack.k-orc.cloud/v1alpha1
340
kind: ApplicationCredential
441
metadata:
5-
name: applicationcredential-sample
42+
name: appcred-sample
643
spec:
744
cloudCredentialsRef:
8-
# TODO(scaffolding): Use openstack-admin if the resource needs admin credentials to be created
9-
cloudName: openstack
45+
cloudName: openstack-admin
1046
secretName: openstack-clouds
1147
managementPolicy: managed
1248
resource:
13-
description: Sample ApplicationCredential
14-
# TODO(scaffolding): Add all fields the resource supports
49+
description: Sample Application Credential
50+
userRef: appcred-sample
51+
unrestricted: true
52+
secretRef: kubernetes-secret
53+
roleRefs:
54+
- appcred-sample
55+
accessRules:
56+
- method: "GET"
57+
serviceRef: appcred-sample
58+
path: "/v2.1/servers"
59+
expiresAt: "2033-03-03T22:22:22Z"

internal/controllers/applicationcredential/tests/applicationcredential-create-full/00-assert.yaml

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,12 @@ status:
77
resource:
88
name: applicationcredential-create-full-override
99
description: ApplicationCredential from "create full" test
10-
# TODO(scaffolding): Add all fields the resource supports
10+
unrestricted: true
11+
accessRules:
12+
- method: "GET"
13+
path: "/v2.1/servers"
14+
service: "compute"
15+
expiresAt: "2033-03-03T22:22:22Z"
1116
conditions:
1217
- type: Available
1318
status: "True"
@@ -27,7 +32,16 @@ resourceRefs:
2732
kind: User
2833
name: applicationcredential-create-full
2934
ref: user
35+
- apiVersion: openstack.k-orc.cloud/v1alpha1
36+
kind: Role
37+
name: applicationcredential-create-full
38+
ref: role
3039
assertAll:
3140
- celExpr: "applicationcredential.status.id != ''"
32-
- celExpr: "applicationcredential.status.resource.userID == user.status.id"
33-
# TODO(scaffolding): Add more checks
41+
- celExpr: "applicationcredential.status.resource.projectID != ''"
42+
- celExpr: "applicationcredential.status.resource.accessRules.size() == 1"
43+
- celExpr: "applicationcredential.status.resource.accessRules[0].id != ''"
44+
- celExpr: "applicationcredential.status.resource.roles.size() == 1"
45+
- celExpr: "applicationcredential.status.resource.roles[0].id == role.status.id"
46+
- celExpr: "applicationcredential.status.resource.roles[0].name == role.status.resource.name"
47+
- celExpr: "!has(applicationcredential.status.resource.roles[0].domainID)"
Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,62 @@
11
---
22
apiVersion: openstack.k-orc.cloud/v1alpha1
3+
kind: Role
4+
metadata:
5+
name: applicationcredential-create-full
6+
spec:
7+
cloudCredentialsRef:
8+
cloudName: openstack-admin
9+
secretName: openstack-clouds
10+
managementPolicy: unmanaged
11+
import:
12+
filter:
13+
name: reader
14+
---
15+
apiVersion: openstack.k-orc.cloud/v1alpha1
316
kind: User
417
metadata:
518
name: applicationcredential-create-full
619
spec:
720
cloudCredentialsRef:
8-
# TODO(scaffolding): Use openstack-admin if the resource needs admin credentials to be created
9-
cloudName: openstack
21+
cloudName: openstack-admin
1022
secretName: openstack-clouds
11-
managementPolicy: managed
12-
# TODO(scaffolding): Add the necessary fields to create the resource
13-
resource: {}
23+
managementPolicy: unmanaged
24+
import:
25+
filter:
26+
name: admin
27+
---
28+
apiVersion: openstack.k-orc.cloud/v1alpha1
29+
kind: Service
30+
metadata:
31+
name: applicationcredential-create-full
32+
spec:
33+
cloudCredentialsRef:
34+
cloudName: openstack-admin
35+
secretName: openstack-clouds
36+
managementPolicy: unmanaged
37+
import:
38+
filter:
39+
type: "compute"
1440
---
1541
apiVersion: openstack.k-orc.cloud/v1alpha1
1642
kind: ApplicationCredential
1743
metadata:
1844
name: applicationcredential-create-full
1945
spec:
2046
cloudCredentialsRef:
21-
# TODO(scaffolding): Use openstack-admin if the resource needs admin credentials to be created
22-
cloudName: openstack
47+
cloudName: openstack-admin
2348
secretName: openstack-clouds
2449
managementPolicy: managed
2550
resource:
2651
name: applicationcredential-create-full-override
2752
description: ApplicationCredential from "create full" test
2853
userRef: applicationcredential-create-full
29-
# TODO(scaffolding): Add all fields the resource supports
54+
unrestricted: true
55+
secretRef: applicationcredential-secret
56+
roleRefs:
57+
- applicationcredential-create-full
58+
accessRules:
59+
- method: "GET"
60+
serviceRef: applicationcredential-create-full
61+
path: "/v2.1/servers"
62+
expiresAt: "2033-03-03T22:22:22Z"

internal/controllers/applicationcredential/tests/applicationcredential-create-full/00-secret.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@ kind: TestStep
44
commands:
55
- command: kubectl create secret generic openstack-clouds --from-file=clouds.yaml=${E2E_KUTTL_OSCLOUDS} ${E2E_KUTTL_CACERT_OPT}
66
namespaced: true
7+
- command: kubectl create secret generic applicationcredential-secret --from-literal=value=abc123
8+
namespaced: true

internal/controllers/applicationcredential/tests/applicationcredential-create-minimal/00-assert.yaml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@ metadata:
55
name: applicationcredential-create-minimal
66
status:
77
resource:
8+
# Name should default to object name
89
name: applicationcredential-create-minimal
9-
# TODO(scaffolding): Add all fields the resource supports
10+
unrestricted: false
1011
conditions:
1112
- type: Available
1213
status: "True"
@@ -28,5 +29,9 @@ resourceRefs:
2829
ref: user
2930
assertAll:
3031
- celExpr: "applicationcredential.status.id != ''"
31-
- celExpr: "applicationcredential.status.resource.userID == user.status.id"
32-
# TODO(scaffolding): Add more checks
32+
- celExpr: "applicationcredential.status.resource.projectID != ''"
33+
- celExpr: "!has(applicationcredential.status.resource.accessRules)"
34+
- celExpr: "!has(applicationcredential.status.resource.description)"
35+
- celExpr: "applicationcredential.status.resource.roles.size() >= 2"
36+
- celExpr: "applicationcredential.status.resource.roles.exists(r, r.name == 'member')"
37+
- celExpr: "applicationcredential.status.resource.roles.exists(r, r.name == 'reader')"

internal/controllers/applicationcredential/tests/applicationcredential-create-minimal/00-create-resource.yaml

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,22 @@ metadata:
55
name: applicationcredential-create-minimal
66
spec:
77
cloudCredentialsRef:
8-
# TODO(scaffolding): Use openstack-admin if the resource needs admin credentials to be created
9-
cloudName: openstack
8+
cloudName: openstack-admin
109
secretName: openstack-clouds
11-
managementPolicy: managed
12-
# TODO(scaffolding): Add the necessary fields to create the resource
13-
resource: {}
10+
managementPolicy: unmanaged
11+
import:
12+
filter:
13+
name: admin
1414
---
1515
apiVersion: openstack.k-orc.cloud/v1alpha1
1616
kind: ApplicationCredential
1717
metadata:
1818
name: applicationcredential-create-minimal
1919
spec:
2020
cloudCredentialsRef:
21-
# TODO(scaffolding): Use openstack-admin if the resource needs admin credentials to be created
22-
cloudName: openstack
21+
cloudName: openstack-admin
2322
secretName: openstack-clouds
2423
managementPolicy: managed
25-
# TODO(scaffolding): Only add the mandatory fields. It's possible the resource
26-
# doesn't have mandatory fields, in that case, leave it empty.
2724
resource:
2825
userRef: applicationcredential-create-minimal
26+
secretRef: applicationcredential-secret

internal/controllers/applicationcredential/tests/applicationcredential-create-minimal/00-secret.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,5 @@ kind: TestStep
44
commands:
55
- command: kubectl create secret generic openstack-clouds --from-file=clouds.yaml=${E2E_KUTTL_OSCLOUDS} ${E2E_KUTTL_CACERT_OPT}
66
namespaced: true
7+
- command: kubectl create secret generic applicationcredential-secret --from-literal=value=abc123
8+
namespaced: true

internal/controllers/applicationcredential/tests/applicationcredential-create-minimal/01-delete-secret.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,5 @@ commands:
55
# We expect the deletion to hang due to the finalizer, so use --wait=false
66
- command: kubectl delete secret openstack-clouds --wait=false
77
namespaced: true
8+
- command: kubectl delete secret applicationcredential-secret --wait=false
9+
namespaced: true

internal/controllers/applicationcredential/tests/applicationcredential-dependency/00-assert.yaml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,21 @@ status:
1616
---
1717
apiVersion: openstack.k-orc.cloud/v1alpha1
1818
kind: ApplicationCredential
19+
metadata:
20+
name: applicationcredential-dependency-no-secret-ref
21+
status:
22+
conditions:
23+
- type: Available
24+
message: Waiting for Secret/applicationcredential-dependency-pending to be created
25+
status: "False"
26+
reason: Progressing
27+
- type: Progressing
28+
message: Waiting for Secret/applicationcredential-dependency-pending to be created
29+
status: "True"
30+
reason: Progressing
31+
---
32+
apiVersion: openstack.k-orc.cloud/v1alpha1
33+
kind: ApplicationCredential
1934
metadata:
2035
name: applicationcredential-dependency-no-user
2136
status:
@@ -28,3 +43,33 @@ status:
2843
message: Waiting for User/applicationcredential-dependency-pending to be created
2944
status: "True"
3045
reason: Progressing
46+
---
47+
apiVersion: openstack.k-orc.cloud/v1alpha1
48+
kind: ApplicationCredential
49+
metadata:
50+
name: applicationcredential-dependency-no-role
51+
status:
52+
conditions:
53+
- type: Available
54+
message: Waiting for Role/applicationcredential-dependency-pending to be created
55+
status: "False"
56+
reason: Progressing
57+
- type: Progressing
58+
message: Waiting for Role/applicationcredential-dependency-pending to be created
59+
status: "True"
60+
reason: Progressing
61+
---
62+
apiVersion: openstack.k-orc.cloud/v1alpha1
63+
kind: ApplicationCredential
64+
metadata:
65+
name: applicationcredential-dependency-no-service
66+
status:
67+
conditions:
68+
- type: Available
69+
message: Waiting for Service/applicationcredential-dependency-pending to be created
70+
status: "False"
71+
reason: Progressing
72+
- type: Progressing
73+
message: Waiting for Service/applicationcredential-dependency-pending to be created
74+
status: "True"
75+
reason: Progressing

internal/controllers/applicationcredential/tests/applicationcredential-dependency/00-create-resources-missing-deps.yaml

Lines changed: 54 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,38 +5,80 @@ metadata:
55
name: applicationcredential-dependency
66
spec:
77
cloudCredentialsRef:
8-
# TODO(scaffolding): Use openstack-admin if the resource needs admin credentials to be created
9-
cloudName: openstack
8+
cloudName: openstack-admin
109
secretName: openstack-clouds
11-
managementPolicy: managed
12-
# TODO(scaffolding): Add the necessary fields to create the resource
13-
resource: {}
10+
managementPolicy: unmanaged
11+
import:
12+
filter:
13+
name: admin
1414
---
1515
apiVersion: openstack.k-orc.cloud/v1alpha1
1616
kind: ApplicationCredential
1717
metadata:
1818
name: applicationcredential-dependency-no-user
1919
spec:
2020
cloudCredentialsRef:
21-
# TODO(scaffolding): Use openstack-admin if the resource needs admin credentials to be created
22-
cloudName: openstack
21+
cloudName: openstack-admin
2322
secretName: openstack-clouds
2423
managementPolicy: managed
2524
resource:
2625
userRef: applicationcredential-dependency-pending
27-
# TODO(scaffolding): Add the necessary fields to create the resource
28-
26+
secretRef: applicationcredential-secret
2927
---
3028
apiVersion: openstack.k-orc.cloud/v1alpha1
3129
kind: ApplicationCredential
3230
metadata:
3331
name: applicationcredential-dependency-no-secret
3432
spec:
3533
cloudCredentialsRef:
36-
# TODO(scaffolding): Use openstack-admin if the resource needs admin credentials to be created
37-
cloudName: openstack
34+
cloudName: openstack-admin
3835
secretName: applicationcredential-dependency
3936
managementPolicy: managed
40-
# TODO(scaffolding): Add the necessary fields to create the resource
4137
resource:
4238
userRef: applicationcredential-dependency
39+
secretRef: applicationcredential-secret
40+
---
41+
apiVersion: openstack.k-orc.cloud/v1alpha1
42+
kind: ApplicationCredential
43+
metadata:
44+
name: applicationcredential-dependency-no-secret-ref
45+
spec:
46+
cloudCredentialsRef:
47+
cloudName: openstack-admin
48+
secretName: openstack-clouds
49+
managementPolicy: managed
50+
resource:
51+
userRef: applicationcredential-dependency
52+
secretRef: applicationcredential-dependency-pending
53+
---
54+
apiVersion: openstack.k-orc.cloud/v1alpha1
55+
kind: ApplicationCredential
56+
metadata:
57+
name: applicationcredential-dependency-no-role
58+
spec:
59+
cloudCredentialsRef:
60+
cloudName: openstack-admin
61+
secretName: openstack-clouds
62+
managementPolicy: managed
63+
resource:
64+
userRef: applicationcredential-dependency
65+
secretRef: applicationcredential-secret
66+
roleRefs:
67+
- applicationcredential-dependency-pending
68+
---
69+
apiVersion: openstack.k-orc.cloud/v1alpha1
70+
kind: ApplicationCredential
71+
metadata:
72+
name: applicationcredential-dependency-no-service
73+
spec:
74+
cloudCredentialsRef:
75+
cloudName: openstack-admin
76+
secretName: openstack-clouds
77+
managementPolicy: managed
78+
resource:
79+
userRef: applicationcredential-dependency
80+
secretRef: applicationcredential-secret
81+
accessRules:
82+
- method: "GET"
83+
serviceRef: applicationcredential-dependency-pending
84+
path: "/v2.1/servers"

0 commit comments

Comments
 (0)