Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add binding expiration tests to SKR tests #1261

Merged
merged 67 commits into from
Oct 8, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
6112a53
Add binding expiration tests to SKR tests
MarekMichali Oct 4, 2024
843bb6f
Test
MarekMichali Oct 4, 2024
b4991ee
Pass
MarekMichali Oct 4, 2024
2f71cff
Fail
MarekMichali Oct 4, 2024
2fa7f3c
Fail
MarekMichali Oct 4, 2024
0664557
Error handling
MarekMichali Oct 4, 2024
c7afb2a
Change message
MarekMichali Oct 4, 2024
347571c
Next test
MarekMichali Oct 4, 2024
7d4d4af
Test
MarekMichali Oct 4, 2024
dac43ef
Logs
MarekMichali Oct 4, 2024
a3c7a47
Refactor
MarekMichali Oct 4, 2024
2f52a5f
Better expect
MarekMichali Oct 7, 2024
d11e18c
Increase timeout
MarekMichali Oct 7, 2024
a720c4c
Change assertion
MarekMichali Oct 7, 2024
e1c2cbf
Tiemout
MarekMichali Oct 7, 2024
b0a4f6e
Timeout
MarekMichali Oct 7, 2024
2af22f1
Increase timeout
MarekMichali Oct 7, 2024
9d41829
More test
MarekMichali Oct 7, 2024
0e34c4a
Change expiration
MarekMichali Oct 7, 2024
f33574a
Test
MarekMichali Oct 7, 2024
4cc9dc7
Test
MarekMichali Oct 7, 2024
ab41578
Test
MarekMichali Oct 7, 2024
929b8d4
Tiemouts
MarekMichali Oct 7, 2024
3a82ee2
Tiemouts
MarekMichali Oct 7, 2024
a9f163a
Refactor
MarekMichali Oct 7, 2024
43592af
Refactor
MarekMichali Oct 7, 2024
93c505d
Reject
MarekMichali Oct 7, 2024
ecfb413
Import chai
MarekMichali Oct 7, 2024
3c421c7
Change test
MarekMichali Oct 7, 2024
6d092c3
Change logs
MarekMichali Oct 7, 2024
7c780a5
Change call
MarekMichali Oct 7, 2024
8d67966
Change call
MarekMichali Oct 7, 2024
57d04b3
Test alternative
MarekMichali Oct 7, 2024
1aff080
Test alternative
MarekMichali Oct 7, 2024
647adad
Test alternative
MarekMichali Oct 7, 2024
fdbd86b
Test alternative
MarekMichali Oct 7, 2024
11cdac6
Test alternative
MarekMichali Oct 7, 2024
261b872
Test alternative
MarekMichali Oct 7, 2024
d54a328
Fail test
MarekMichali Oct 7, 2024
7dba80a
Expect fail
MarekMichali Oct 7, 2024
61e9cff
Expect fail
MarekMichali Oct 7, 2024
b095823
Error repsonse
MarekMichali Oct 7, 2024
0c0e9c7
Logs
MarekMichali Oct 7, 2024
dcfdf1a
Logs
MarekMichali Oct 7, 2024
882020c
Change fail
MarekMichali Oct 7, 2024
45a8a73
Change fail
MarekMichali Oct 7, 2024
4326eeb
Add asert
MarekMichali Oct 7, 2024
7da749f
Change to done
MarekMichali Oct 7, 2024
73798cc
Fix client
MarekMichali Oct 7, 2024
9434f97
Fix bug
MarekMichali Oct 7, 2024
57b13ea
Expect
MarekMichali Oct 7, 2024
7f1d906
Dont log
MarekMichali Oct 7, 2024
1d87ec1
Dont log
MarekMichali Oct 7, 2024
f57543e
Test
MarekMichali Oct 7, 2024
de26ec8
Fix test
MarekMichali Oct 7, 2024
e7d5618
Prepare second test
MarekMichali Oct 7, 2024
aca6e83
Better timeouts
MarekMichali Oct 7, 2024
ab407d0
Better timeouts
MarekMichali Oct 7, 2024
a6b07e4
Full test
MarekMichali Oct 7, 2024
a2c621d
Full test
MarekMichali Oct 7, 2024
99afb32
Fix function
MarekMichali Oct 7, 2024
3883ac8
Add missing return
MarekMichali Oct 7, 2024
c988cf7
Fix access
MarekMichali Oct 7, 2024
c19a71b
Lint fix
MarekMichali Oct 7, 2024
540b4e2
Fix
MarekMichali Oct 7, 2024
020beeb
Disable leaks check
MarekMichali Oct 7, 2024
fc450e2
To const
MarekMichali Oct 7, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions testing/e2e/skr/kyma-environment-broker/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -284,10 +284,12 @@ class KEBClient {
};
const bindingID = Math.random().toString(36).substring(2, 18);
const endpoint = `service_instances/${instanceID}/service_bindings/${bindingID}?accepts_incomplete=true`;
const config = await this.buildRequest(payload, endpoint, 'put');

try {
return await this.callKEB(payload, endpoint, 'put');
return await axios.request(config);
} catch (err) {
throw new Error(`error while creating binding: ${err.toString()}`);
throw err;
}
}

Expand Down
46 changes: 41 additions & 5 deletions testing/e2e/skr/skr-binding-test/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,15 @@ describe('SKR Binding test', function() {

it('Create SKR binding for service account using Kubernetes TokenRequest', async function() {
try {
kubeconfigFromBinding = await keb.createBinding(options.instanceID, true);
const resp = await keb.createBinding(options.instanceID, true);
kubeconfigFromBinding = resp.data.credentials.kubeconfig;
} catch (err) {
console.log(err);
}
});

it('Initiate K8s client with kubeconfig from binding', async function() {
await initializeK8sClient({kubeconfig: kubeconfigFromBinding.credentials.kubeconfig});
await initializeK8sClient({kubeconfig: kubeconfigFromBinding});
});

it('Fetch sap-btp-manager secret using binding for service account from Kubernetes TokenRequest', async function() {
Expand All @@ -47,21 +48,56 @@ describe('SKR Binding test', function() {
it('Create SKR binding using Gardener', async function() {
const expirationSeconds = 900;
try {
kubeconfigFromBinding = await keb.createBinding(options.instanceID, false, expirationSeconds);
expect(getKubeconfigValidityInSeconds(kubeconfigFromBinding.credentials.kubeconfig)).to.equal(expirationSeconds);
const resp = await keb.createBinding(options.instanceID, false, expirationSeconds);
kubeconfigFromBinding = resp.data.credentials.kubeconfig;
expect(getKubeconfigValidityInSeconds(kubeconfigFromBinding)).to.equal(expirationSeconds);
} catch (err) {
console.log(err);
}
});

it('Initiate K8s client with kubeconfig from binding', async function() {
await initializeK8sClient({kubeconfig: kubeconfigFromBinding.credentials.kubeconfig});
await initializeK8sClient({kubeconfig: kubeconfigFromBinding});
});

it('Fetch sap-btp-manager secret using binding from Gardener', async function() {
await getSecret(secretName, ns);
});

it('Should not allow creation of SKR binding when expiration seconds value is below the min value', async function() {
const expirationSeconds = 1;
try {
await keb.createBinding(options.instanceID, true, expirationSeconds);
expect.fail('The call was expected to fail but it passed');
} catch (err) {
if (err.response) {
expect(err.response.status).equal(400);
expect(err.response.data.description).to.include('expiration_seconds cannot be less than');
console.log('Got response:');
console.log(err.response.data);
} else {
throw err;
}
}
});

it('Should not allow creation of SKR binding when expiration seconds value is over the max value', async function() {
const expirationSeconds = 999999999;
try {
await keb.createBinding(options.instanceID, true, expirationSeconds);
expect.fail('The call was expected to fail but it passed');
} catch (err) {
if (err.response) {
expect(err.response.status).equal(400);
expect(err.response.data.description).to.include('expiration_seconds cannot be greater than');
console.log('Got response:');
console.log(err.response.data);
} else {
throw err;
}
}
});

after('Cleanup the resources', async function() {
this.timeout(deprovisioningTimeout);
if (process.env['SKIP_DEPROVISIONING'] != 'true') {
Expand Down
Loading