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
4
5
-
## Features
6
-
7
-
This project framework provides the following features:
8
-
9
-
* Feature 1
10
-
* Feature 2
11
-
* ...
12
-
13
-
## Getting Started
5
+
Testing the applications to be deployed over Kubernetes means either the Cluster is already available or is to be deployed on the go before you test, in former case its a cost to keep the Cluster live and in later it takes a lot of time to bring up the kubernetes cluster.
14
6
15
-
### Prerequisites
7
+
This framework uses [KIND](https://kind.sigs.k8s.io/) which itself was primarily designed for testing Kubernetes itself. KIND is often used by developers to test their applications in local dev environments and can very well be used for automated testing.
16
8
17
-
(ideally very short, if any)
9
+
## Tools Used
10
+
1.[KIND](https://kind.sigs.k8s.io/) - a tool for running local Kubernetes clusters using Docker container “nodes”
11
+
2.[helm](https://helm.sh/) - the package manager for Kubernetes
12
+
3.[kubectl](https://kubernetes.io/docs/reference/kubectl/overview/) - command line tool to control Kubernetes clusters
13
+
4.[bash](https://www.gnu.org/software/bash/) - the GNU Project's shell
18
14
19
-
- OS
20
-
- Library version
21
-
- ...
22
-
23
-
### Installation
24
-
25
-
(ideally very short)
15
+
## Features
26
16
27
-
- npm install [package name]
28
-
- mvn install
29
-
- ...
17
+
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 -
30
18
31
-
### Quickstart
32
-
(Add steps to get up and running quickly)
19
+
1. Create/Delete `KIND` cluster in CI environment
20
+
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)
23
+
5. Validate if the respective Kubernetes `pods` are up and running (multiple `pods` can be provided that are having selector - `app.kubernetes.io/name`)
24
+
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)
33
25
34
-
1. git clone [repository clone url]
35
-
2. cd [respository name]
36
-
3. ...
26
+
## Getting Started
37
27
28
+
This framework contains the following script and their options -
29
+
30
+
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
70
+
*[Python Test Framework](https://docs.python.org/3/library/unittest.html) to perform some basic Integration Test
44
71
45
-
(Add steps to start up the demo)
72
+
## Expected Outcome
73
+
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