You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Automated Test Environment for AKS Applications Changelog
2
2
3
-
<aname="x.y.z"></a>
4
-
# x.y.z (yyyy-mm-dd)
3
+
<aname="1.0.0"></a>
4
+
# 1.0.0 (2020-08-03)
5
5
6
6
*Features*
7
-
* ...
7
+
* Create/Delete `kind` cluster in CI environment
8
+
* Optional - [Azure Key Vault Provider for Secrets Store CSI Driver](https://github.com/Azure/secrets-store-csi-driver-provider-azure)[installation](https://github.com/Azure/secrets-store-csi-driver-provider-azure#install-the-secrets-store-csi-driver-and-the-azure-keyvault-provider) and [configuration](https://github.com/Azure/secrets-store-csi-driver-provider-azure/blob/master/docs/service-principal-mode.md)
* Install `helm` charts of application (values needed for integration test environment can be overwritten easily)
11
+
* Validate if the respective Kubernetes `pods` are up and running (multiple `pods` can be provided that are having selector - `app.kubernetes.io/name`)
12
+
*[Port-Froward](https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/#forward-a-local-port-to-a-port-on-the-pod) the respective Kubernetes `services` needed to perform integration testing (multiple `services` can be provided and the respective local ports will be starting from `8080` to `808[number of services]` maintaining the order as provided)
(short, 1-3 sentenced, description of the project)
3
+
Framework to create Automated Test Environment using [kind](https://kind.sigs.k8s.io/) for testing Azure Kubernetes Service (AKS) based applications in CI (Continuous Integration) Pipeline (Azure DevOps), where required dependencies/infrastructure will be provisioned for executing automated tests and deprovisioned after completion.
4
+
5
+
## Tools Used
6
+
1.[kind](https://kind.sigs.k8s.io/) - a tool for running local Kubernetes clusters using Docker container “nodes”.
7
+
2.[helm](https://helm.sh/) - the package manager for Kubernetes
8
+
3.[kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) - command line tool to control Kubernetes clusters
9
+
4.[bash](https://www.gnu.org/software/bash/) - the GNU Project's shell
4
10
5
11
## Features
6
12
7
-
This project framework provides the following features:
13
+
This is a very simple Framework, that creates Automated Test Environment to enable automated testing of applications hosted in [Azure Kubernetes Service (AKS)](https://docs.microsoft.com/en-us/azure/aks/) with the following features -
8
14
9
-
* Feature 1
10
-
* Feature 2
11
-
* ...
15
+
1. Create/Delete `kind` cluster in CI environment
16
+
2. Optional - [Azure Key Vault Provider for Secrets Store CSI Driver](https://github.com/Azure/secrets-store-csi-driver-provider-azure)[installation](https://github.com/Azure/secrets-store-csi-driver-provider-azure#install-the-secrets-store-csi-driver-and-the-azure-keyvault-provider) and [configuration](https://github.com/Azure/secrets-store-csi-driver-provider-azure/blob/master/docs/service-principal-mode.md)
4. Install `helm` charts of application (values needed for integration test environment can be overwritten easily)
19
+
5. Validate if the respective Kubernetes `pods` are up and running (multiple `pods` can be provided that are having selector - `app.kubernetes.io/name`)
20
+
6.[Port-Froward](https://kubernetes.io/docs/tasks/access-application-cluster/port-forward-access-application-cluster/#forward-a-local-port-to-a-port-on-the-pod) the respective Kubernetes `services` needed to perform integration testing (multiple `services` can be provided and the respective local ports will be starting from `8080` to `808[number of services]` maintaining the order as provided)
12
21
13
22
## Getting Started
14
23
15
-
### Prerequisites
16
-
17
-
(ideally very short, if any)
18
-
19
-
- OS
20
-
- Library version
21
-
- ...
22
-
23
-
### Installation
24
-
25
-
(ideally very short)
26
-
27
-
- npm install [package name]
28
-
- mvn install
29
-
- ...
30
-
31
-
### Quickstart
32
-
(Add steps to get up and running quickly)
33
-
34
-
1. git clone [repository clone url]
35
-
2. cd [respository name]
36
-
3. ...
37
-
24
+
This framework contains the following script and their options -
25
+
26
+
1.`start.sh`: Download all the dependencies and create `kind` cluster -
*[Azure DevOps Pipeline](https://azure.microsoft.com/en-us/services/devops/pipelines/) that demonstrate end-to-end flow of automated start/deploy/test/publish of integration test using this framework
66
+
*[Python Test Framework](https://docs.python.org/3/library/unittest.html) to perform some basic Integration Test
44
67
45
-
(Add steps to start up the demo)
68
+
## Expected Outcome
69
+
It is expected to get Integration Test executed from CI Pipeline independently without disturbing existing development. The below images represents the outcome of the [sample for demonstrating the framework](./sample) -
* While using Private Endpoint enabled `Azure Key Vault (AKV)` or `Azure Container Registry (ACR)` for applications, make sure the to use CI Pipeline Agent deployed in the same subnet where `AKV` or `ACR` endpoints are enabled
0 commit comments