Skip to content

Commit b99b15d

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

36 files changed

Lines changed: 315 additions & 264 deletions
Lines changed: 51 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,60 @@
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+
secret:
53+
secretRef: kubernetes-secret
54+
roleRefs:
55+
- appcred-sample
56+
accessRules:
57+
- method: "GET"
58+
serviceRef: appcred-sample
59+
path: "/v2.1/servers"
60+
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: 42 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,63 @@
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+
secret:
56+
secretRef: "application-credential-secret"
57+
roleRefs:
58+
- applicationcredential-create-full
59+
accessRules:
60+
- method: "GET"
61+
serviceRef: applicationcredential-create-full
62+
path: "/v2.1/servers"
63+
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 application-credential-secret --from-literal=value=abc123
8+
namespaced: true

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

Lines changed: 6 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,7 @@ 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: "applicationcredential.status.resource.roles.size() > 0"
35+
- celExpr: "!has(applicationcredential.status.resource.description)"

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

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,23 @@ 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+
secret:
27+
secretRef: "application-credential-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 application-credential-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 application-credential-secret --wait=false
9+
namespaced: true

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

Lines changed: 15 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:

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

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,38 +5,51 @@ 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+
secret:
27+
secretRef: application-credential-secret
2928
---
3029
apiVersion: openstack.k-orc.cloud/v1alpha1
3130
kind: ApplicationCredential
3231
metadata:
3332
name: applicationcredential-dependency-no-secret
3433
spec:
3534
cloudCredentialsRef:
36-
# TODO(scaffolding): Use openstack-admin if the resource needs admin credentials to be created
37-
cloudName: openstack
35+
cloudName: openstack-admin
3836
secretName: applicationcredential-dependency
3937
managementPolicy: managed
40-
# TODO(scaffolding): Add the necessary fields to create the resource
4138
resource:
4239
userRef: applicationcredential-dependency
40+
secret:
41+
secretRef: application-credential-secret
42+
---
43+
apiVersion: openstack.k-orc.cloud/v1alpha1
44+
kind: ApplicationCredential
45+
metadata:
46+
name: applicationcredential-dependency-no-secret-ref
47+
spec:
48+
cloudCredentialsRef:
49+
cloudName: openstack-admin
50+
secretName: openstack-clouds
51+
managementPolicy: managed
52+
resource:
53+
userRef: applicationcredential-dependency
54+
secret:
55+
secretRef: applicationcredential-dependency-pending

0 commit comments

Comments
 (0)