gitextract_vd94vg5x/ ├── .dockerignore ├── .github/ │ └── workflows/ │ ├── 1-actions-ci-cd-aks.yml │ ├── 2-actions-ci-cd-aks-tf.yml │ ├── 3-actions-ci-cd-aks-tf-backend.yml │ └── 4-actions-ci-cd-aks-tf-backend-jobs.yml ├── .gitignore ├── .vscode/ │ ├── launch.json │ ├── settings.json │ └── tasks.json ├── MvcApp/ │ ├── Controllers/ │ │ ├── HomeController.cs │ │ └── ProductsController.cs │ ├── Data/ │ │ └── ProductsContext.cs │ ├── Dockerfile │ ├── Microscanner.Dockerfile │ ├── Models/ │ │ ├── ErrorViewModel.cs │ │ └── product.cs │ ├── MvcApp.csproj │ ├── Program.cs │ ├── Properties/ │ │ └── launchSettings.json │ ├── Startup.cs │ ├── Views/ │ │ ├── Home/ │ │ │ ├── About.cshtml │ │ │ ├── Contact.cshtml │ │ │ ├── Index.cshtml │ │ │ └── Privacy.cshtml │ │ ├── Products/ │ │ │ ├── Create.cshtml │ │ │ ├── Delete.cshtml │ │ │ ├── Details.cshtml │ │ │ ├── Edit.cshtml │ │ │ └── Index.cshtml │ │ ├── Shared/ │ │ │ ├── Error.cshtml │ │ │ ├── _CookieConsentPartial.cshtml │ │ │ ├── _Layout.cshtml │ │ │ └── _ValidationScriptsPartial.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot/ │ ├── css/ │ │ └── site.css │ ├── js/ │ │ └── site.js │ └── lib/ │ ├── bootstrap/ │ │ ├── .bower.json │ │ ├── LICENSE │ │ └── dist/ │ │ ├── css/ │ │ │ ├── bootstrap-theme.css │ │ │ └── bootstrap.css │ │ └── js/ │ │ ├── bootstrap.js │ │ └── npm.js │ ├── jquery/ │ │ ├── .bower.json │ │ ├── LICENSE.txt │ │ └── dist/ │ │ └── jquery.js │ ├── jquery-validation/ │ │ ├── .bower.json │ │ ├── LICENSE.md │ │ └── dist/ │ │ ├── additional-methods.js │ │ └── jquery.validate.js │ └── jquery-validation-unobtrusive/ │ ├── .bower.json │ ├── LICENSE.txt │ └── jquery.validate.unobtrusive.js ├── ProductsStoreOnKubernetes.sln ├── README.demo.md ├── README.md ├── WebApp/ │ ├── Controllers/ │ │ ├── HomeController.cs │ │ └── ProductsController.cs │ ├── Data/ │ │ └── ProductsContext.cs │ ├── Dockerfile │ ├── Models/ │ │ ├── ErrorViewModel.cs │ │ └── Product.cs │ ├── Program.cs │ ├── Properties/ │ │ ├── launchSettings.json │ │ ├── serviceDependencies.json │ │ └── serviceDependencies.local.json │ ├── Startup.cs │ ├── Views/ │ │ ├── Home/ │ │ │ ├── Index.cshtml │ │ │ └── Privacy.cshtml │ │ ├── Products/ │ │ │ ├── Create.cshtml │ │ │ ├── Delete.cshtml │ │ │ ├── Details.cshtml │ │ │ ├── Edit.cshtml │ │ │ └── Index.cshtml │ │ ├── Shared/ │ │ │ ├── Error.cshtml │ │ │ ├── _Layout.cshtml │ │ │ └── _ValidationScriptsPartial.cshtml │ │ ├── _ViewImports.cshtml │ │ └── _ViewStart.cshtml │ ├── WebApp.csproj │ ├── appsettings.Development.json │ ├── appsettings.json │ └── wwwroot/ │ ├── css/ │ │ └── site.css │ ├── js/ │ │ └── site.js │ └── lib/ │ ├── bootstrap/ │ │ ├── LICENSE │ │ └── dist/ │ │ ├── css/ │ │ │ ├── bootstrap-grid.css │ │ │ ├── bootstrap-reboot.css │ │ │ └── bootstrap.css │ │ └── js/ │ │ ├── bootstrap.bundle.js │ │ └── bootstrap.js │ ├── jquery/ │ │ ├── LICENSE.txt │ │ └── dist/ │ │ └── jquery.js │ ├── jquery-validation/ │ │ ├── LICENSE.md │ │ └── dist/ │ │ ├── additional-methods.js │ │ └── jquery.validate.js │ └── jquery-validation-unobtrusive/ │ ├── LICENSE.txt │ └── jquery.validate.unobtrusive.js ├── ansible/ │ └── aks-ansible.yml ├── arm-template/ │ ├── parameters.json │ └── template.json ├── azure-pipelines.yml ├── charts/ │ ├── commands.ps1 │ ├── firstchart/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── templates/ │ │ │ ├── NOTES.txt │ │ │ ├── _helpers.tpl │ │ │ ├── deployment.yaml │ │ │ ├── hpa.yaml │ │ │ ├── ingress.yaml │ │ │ ├── service.yaml │ │ │ ├── serviceaccount.yaml │ │ │ └── tests/ │ │ │ └── test-connection.yaml │ │ └── values.yaml │ └── productsstore/ │ ├── .helmignore │ ├── Chart.yaml │ ├── templates/ │ │ ├── _helpers.tpl │ │ ├── helm-namespace.yaml │ │ ├── mssql-config-map.yaml │ │ ├── mssql-deployment.yaml │ │ ├── mssql-pv.azure.yaml │ │ └── mvc-deployment.azure.yaml │ └── values.yaml ├── create-aks-cluster.sh ├── docker-compose.yaml ├── docs/ │ └── presentation.pptx ├── hpa/ │ ├── commands.ps1 │ ├── hpa.yaml │ └── tester-pod.yaml ├── infra/ │ ├── backend.tf │ ├── create-azure-storage-tfstate.sh │ ├── main.tf │ ├── output.tf │ ├── provider.tf │ ├── terraform.local.tfvars │ ├── terraform.tfvars │ ├── tf.commands.sh │ └── variables.tf ├── ingress-controller/ │ ├── ingress.yaml │ └── workshop.sh ├── istio/ │ ├── 1-app-gateway.yaml │ ├── 2-app-virtualservice.yaml │ ├── 3-app-virtualservice-destinationrule.yaml │ ├── 4-mssql-svc-deploy.yaml │ ├── 5-mssql-virtualservice-destinationrule.yaml │ ├── 6-mssql-deploy-2-0.yaml │ ├── grafana.secret.yaml │ ├── istio.aks.yaml │ ├── kiali.secret.yaml │ ├── mvc-app-v1.0.yaml │ ├── mvc-deployment.v1.1.yaml │ ├── mvc-deployment.v2.0.yaml │ └── steps.sh ├── kubernetes/ │ ├── mssql-configmap.yaml │ ├── mssql-deployment.yaml │ ├── mssql-pv.azure.yaml │ ├── mssql-secret.yaml │ └── mvc-deployment.azure.yaml ├── logging-efk/ │ ├── commands.sh │ ├── fluentd-daemonset-elasticsearch.yaml │ └── kibana-values.yaml ├── network-policy/ │ ├── 1-backend-policy-deny.yaml │ ├── 1-namespace-development.yaml │ ├── 2-backend-policy-allow-pod.yaml │ ├── 2-pod-nginx-backend.yaml │ ├── 3-backend-policy-allow-pod-namespace.yaml │ ├── 3-pod-alpine-test.yaml │ └── commands.sh ├── opa-gatekeeper/ │ ├── all_ns_must_have_gatekeeper.yaml │ ├── bad-namespace.yaml │ ├── commands.ps1 │ ├── good-namespace.yaml │ └── k8srequiredlabels_template.yaml ├── prometheus/ │ ├── prometheus.values.yaml │ └── steps.sh ├── rbac/ │ ├── cert/ │ │ ├── houssem.crt │ │ ├── houssem.csr │ │ └── houssem.key │ ├── rbac-aad/ │ │ ├── rbac-aad-group.yaml │ │ └── rbac-aad-user.yaml │ ├── role-binding.yaml │ ├── role-deployment-manager.yaml │ ├── role.yaml │ ├── rolebinding-deployment-manager.yaml │ └── steps.bash ├── start/ │ └── mvc-deployment.simple.yaml └── terraform/ ├── aks-cluster.tf └── create-service-principal.sh