gitextract_25g9uy8m/ ├── .gitignore ├── README.md ├── ReadMe_static.md ├── _config.yml └── home/ ├── cloud_certifications/ │ └── aws/ │ ├── ReadMe.md │ └── taskset_aws_cloud_certifications/ │ └── task_001_aws_certified_solutions_architect_professional/ │ ├── ReadMe.md │ ├── apiGateway.md │ ├── applicationDiscoveryService.md │ ├── aurora.md │ ├── awsControlTower.md │ ├── backup.md │ ├── batch.md │ ├── bestPractices.md │ ├── billingAndCostManagement.md │ ├── certificateManager.md │ ├── cloudAdoptionReadinessTool.md │ ├── cloudFormation.md │ ├── cloudFront.md │ ├── cloudHSM.md │ ├── cloudTrail.md │ ├── cloudWatchLogs.md │ ├── cloudsearch.md │ ├── cloudwatch.md │ ├── codeBuild.md │ ├── codeCommit.md │ ├── codeDeploy.md │ ├── codePipeline.md │ ├── cognito.md │ ├── commandLineInterface.md │ ├── config.md │ ├── connect.md │ ├── dataMigrationService.md │ ├── developerToolsConsole.md │ ├── directConnect.md │ ├── dynamodb.md │ ├── ec2.md │ ├── ec2AutoScaling.md │ ├── ecs.md │ ├── elasticBeanStalk.md │ ├── elasticCache.md │ ├── elasticFileSystem.md │ ├── elasticLoadBalancing.md │ ├── eventBridge.md │ ├── guardDuty.md │ ├── iam.md │ ├── inspector.md │ ├── kinesis.md │ ├── lambda.md │ ├── lex.md │ ├── macie.md │ ├── mechanicalTurk.md │ ├── migrationHub.md │ ├── opswork.md │ ├── opsworks.md │ ├── organizations.md │ ├── quickSight.md │ ├── rds.md │ ├── redShift.md │ ├── rekognition.md │ ├── resourceAccessManager.md │ ├── route53.md │ ├── s3.md │ ├── sageMaker.md │ ├── schemaConversionTool.md │ ├── secretsManager.md │ ├── securityTokenService.md │ ├── serverMigrationService.md │ ├── serverlessApplicationModel.md │ ├── serviceCatalog.md │ ├── shield.md │ ├── simpleNotificationService.md │ ├── simpleQueueService.md │ ├── simpleWorkflowService.md │ ├── singleSignOn.md │ ├── snowball.md │ ├── snowballEdge.md │ ├── storageGateway.md │ ├── systemManager.md │ ├── transcribe.md │ ├── vpc.md │ ├── waf.md │ ├── webIdentifyFederation.md │ ├── wellArchitected.md │ └── whitepapers.md ├── cloud_providers/ │ ├── aws/ │ │ ├── ReadMe-static.md │ │ ├── ReadMe.md │ │ └── taskset_aws_cloud_providers/ │ │ ├── task_001_kms/ │ │ │ └── ReadMe.md │ │ ├── task_002_monitoring_msk/ │ │ │ └── ReadMe.md │ │ ├── task_003_redirection_using_s3_cloudfront/ │ │ │ └── ReadMe.md │ │ ├── task_004_trigger_codebuild_PR_events__eventbridge__static_branc/ │ │ │ └── ReadMe.md │ │ ├── task_005_trigger_codebuild_PR_events__eventbridge__lambda__dynamic_branches/ │ │ │ ├── ReadMe.md │ │ │ ├── buildspec.yaml │ │ │ └── lambda.py │ │ ├── task_006_codebuild_codecommit_test_reports_gradle/ │ │ │ ├── ReadMe-static.md │ │ │ ├── ReadMe.md │ │ │ └── buildspec.yaml │ │ ├── task_007_codebuild_codecommit_test_reports_mvn/ │ │ │ ├── ReadMe.md │ │ │ └── buildspec.yaml │ │ ├── task_008_trigger_lambda_from_codecommit_using_event_bridge/ │ │ │ └── ReadMe.md │ │ └── task_009_pass_vars_dynamically_from_codebuild_to_codepipeline/ │ │ └── ReadMe.md │ ├── azure/ │ │ ├── ReadMe.md │ │ └── taskset_azure_cloud_providers/ │ │ ├── task_001_capture_web_app_logs_with_app_service_diagnostics_logging/ │ │ │ └── ReadMe.md │ │ ├── task_002_devbox/ │ │ │ └── ReadMe.md │ │ ├── task_003_create_a_windows_virtual_machine/ │ │ │ └── ReadMe.md │ │ ├── task_004_connect_to_windows_virtual_machine_via_rdp/ │ │ │ └── ReadMe.md │ │ ├── task_005_create_a_generalized_image/ │ │ │ └── ReadMe.md │ │ ├── task_006_create_a_new_virtual_machine_from_a_managed_image/ │ │ │ └── ReadMe.md │ │ ├── task_007_create_an_image_of_azure_vm_from_az_cli_and_provision_a_new_vm/ │ │ │ └── ReadMe.md │ │ ├── task_008_create_an_azure_virtual_machine/ │ │ │ └── ReadMe.md │ │ ├── task_009_configure_network_access/ │ │ │ └── ReadMe.md │ │ ├── task_010_create_a_storage_blob/ │ │ │ └── ReadMe.md │ │ └── task_011_deploy_a_container_app/ │ │ └── ReadMe.md │ ├── gcp/ │ │ ├── ReadMe-static.md │ │ ├── ReadMe.md │ │ └── taskset_gcp_cloud_providers/ │ │ ├── task_001_create_budget__and_alerts/ │ │ │ └── ReadMe.md │ │ ├── task_001_intro_console_projects_iam_apis/ │ │ │ └── ReadMe.md │ │ ├── task_002_getting_started_with_cloud_market_place/ │ │ │ └── ReadMe.md │ │ ├── task_002_getting_started_with_cloud_market_place__lamp_stack/ │ │ │ └── ReadMe.md │ │ ├── task_003_vpc_networking_and_google_compute_engine/ │ │ │ └── ReadMe.md │ │ ├── task_004_getting_started_with_cloud_storage_and_cloud_sql__php/ │ │ │ ├── ReadMe.md │ │ │ └── index.php │ │ ├── task_005_getting_started_with_gke__nginx/ │ │ │ └── ReadMe.md │ │ ├── task_006_hello_cloud_run__node/ │ │ │ ├── ReadMe.md │ │ │ └── hello-world-node/ │ │ │ ├── Dockerfile │ │ │ ├── index.js │ │ │ └── package.json │ │ ├── task_007_building_a_devops_pipeline__python/ │ │ │ ├── Dockerfile │ │ │ ├── ReadMe.md │ │ │ ├── main.py │ │ │ ├── requirements.txt │ │ │ └── templates/ │ │ │ ├── index.html │ │ │ └── layout.html │ │ ├── task_008_deploying_app_to_app_engine_and_gke_and_cloudrun/ │ │ │ ├── Dockerfile │ │ │ ├── ReadMe.md │ │ │ ├── app.yaml │ │ │ ├── k8s-manifests.yaml │ │ │ ├── main.py │ │ │ ├── requirements.txt │ │ │ └── templates/ │ │ │ ├── index.html │ │ │ └── layout.html │ │ ├── task_008_deploying_app_to_app_engine_and_gke_and_cloudrun__python/ │ │ │ ├── Dockerfile │ │ │ ├── ReadMe.md │ │ │ ├── app.yaml │ │ │ ├── k8s-manifests.yaml │ │ │ ├── main.py │ │ │ ├── requirements.txt │ │ │ └── templates/ │ │ │ ├── index.html │ │ │ └── layout.html │ │ ├── task_009_monitoring_applications_in_gcp__python/ │ │ │ ├── Dockerfile │ │ │ ├── ReadMe.md │ │ │ ├── app.yaml │ │ │ ├── main.py │ │ │ ├── requirements.txt │ │ │ └── templates/ │ │ │ ├── index.html │ │ │ └── layout.html │ │ ├── task_010_alerting_in_google_cloud/ │ │ │ └── ReadMe.md │ │ ├── task_010_alerting_in_google_cloud__python/ │ │ │ ├── Dockerfile │ │ │ ├── ReadMe.md │ │ │ ├── app-engine-error-percent-policy.json │ │ │ ├── app.yaml │ │ │ ├── main.py │ │ │ ├── requirements.txt │ │ │ └── templates/ │ │ │ ├── index.html │ │ │ └── layout.html │ │ ├── task_011_service_monitoring__node/ │ │ │ └── ReadMe.md │ │ ├── task_011_service_monitoring__node_app/ │ │ │ └── ReadMe.md │ │ ├── task_012_monitoring_and_dashboarding_multiple_projects_from_a_single_workspace/ │ │ │ └── ReadMe.md │ │ ├── task_012_monitoring_and_dashboarding_multiple_projects_from_a_single_workspace__nginx/ │ │ │ └── ReadMe.md │ │ ├── task_013_compute_logging_and_monitoring/ │ │ │ └── ReadMe.md │ │ ├── task_014_log_analysis/ │ │ │ └── ReadMe.md │ │ ├── task_014_log_analysis_cloud_run__node/ │ │ │ └── ReadMe.md │ │ ├── task_015_cloud_audit_logs/ │ │ │ └── ReadMe.md │ │ ├── task_015_cloud_storage_audit_logs/ │ │ │ └── ReadMe.md │ │ ├── task_016_analyzing_network_traffic_with_vpc_flow_logs/ │ │ │ └── ReadMe.md │ │ ├── task_017_application_performance_management/ │ │ │ └── ReadMe.md │ │ ├── task_017_application_performance_management__python_and_nodejs/ │ │ │ └── ReadMe.md │ │ ├── task_018_2inst_2buckets_2iam/ │ │ │ └── ReadMe.md │ │ ├── task_019_working_with_cloud_build/ │ │ │ └── ReadMe.md │ │ ├── task_020_deploying_google_kubernetes_engine/ │ │ │ └── ReadMe.md │ │ ├── task_021_creating_google_kubernetes_engine_deployments/ │ │ │ ├── ReadMe.md │ │ │ ├── nginx-canary.yaml │ │ │ ├── nginx-deployment.yaml │ │ │ ├── nginx-svc-session-affinity.yaml │ │ │ └── service-nginx.yaml │ │ ├── task_022_configuring_persistent_storage_for_google_kubernetes_engine/ │ │ │ ├── ReadMe.md │ │ │ ├── pod-volume-demo.yaml │ │ │ ├── pvc-demo.yaml │ │ │ └── statefulset-demo.yaml │ │ ├── task_023_anthos_service_mesh_walkthrough/ │ │ │ └── ReadMe.md │ │ ├── task_024_observing_anthos_services/ │ │ │ └── ReadMe.md │ │ ├── task_025_managing_traffic_with_anthos_service_mesh/ │ │ │ ├── ReadMe.md │ │ │ ├── conditional-routing-labels.yaml │ │ │ ├── conditional-routing-req-headers.yaml │ │ │ ├── fault-injection-aborts.yaml │ │ │ ├── fault-injection-delays.yaml │ │ │ ├── manifests/ │ │ │ │ ├── destinationrule--productpage-circuit-breaker.yaml │ │ │ │ ├── destinationrule-all.yaml │ │ │ │ ├── gateway--bookinfo-gateway-port-80-http.yaml │ │ │ │ ├── virtualService-2-or-1-second-delay-to-calls-to-ratings-service.yaml │ │ │ │ ├── virtualservice--all-to-v1.yaml │ │ │ │ ├── virtualservice--bookinfo-based-on-exact-and-prefix-uri-match.yaml │ │ │ │ ├── virtualservice--half-second-timeout-for-calls-to-reviews.yaml │ │ │ │ ├── virtualservice--productpage-per-try-timeout-2s.yaml │ │ │ │ ├── virtualservice--reviews-v2-based-on-header.yaml │ │ │ │ ├── virtualservice--reviews-v3.yaml │ │ │ │ ├── virtualservice--route-req-to-v2-reviews.yaml │ │ │ │ └── virtualservice-reviews-50-v3-and-50-v1.yaml │ │ │ ├── retry.yaml │ │ │ ├── timeouts.yaml │ │ │ └── traffic-splitting.yaml │ │ ├── task_026_securing_traffic_through_anthos_service_mesh/ │ │ │ ├── PeerAuthentication--mesh-wide-mtls.yaml │ │ │ ├── PeerAuthentication--restricted-mtls.yaml │ │ │ ├── ReadMe.md │ │ │ └── manifests/ │ │ │ ├── AuthorizationPolicy--require-jwt-v2.yaml │ │ │ ├── AuthorizationPolicy--require-jwt.yaml │ │ │ ├── RequestAuthentication--jwt-example.yaml │ │ │ ├── httpbin.yaml │ │ │ └── sleep.yaml │ │ ├── task_027_cloud_source_repositories_overview/ │ │ │ └── ReadMe.md │ │ ├── task_028_managing_deployments_using_kubernetes_engine/ │ │ │ ├── ReadMe.md │ │ │ ├── cleanup.sh │ │ │ ├── deployments/ │ │ │ │ ├── auth.yaml │ │ │ │ ├── frontend.yaml │ │ │ │ ├── hello-canary.yaml │ │ │ │ ├── hello-green.yaml │ │ │ │ └── hello.yaml │ │ │ ├── nginx/ │ │ │ │ ├── frontend.conf │ │ │ │ └── proxy.conf │ │ │ ├── pods/ │ │ │ │ ├── healthy-monolith.yaml │ │ │ │ ├── monolith.yaml │ │ │ │ └── secure-monolith.yaml │ │ │ └── services/ │ │ │ ├── auth.yaml │ │ │ ├── frontend.yaml │ │ │ ├── hello-blue.yaml │ │ │ ├── hello-green.yaml │ │ │ ├── hello.yaml │ │ │ └── monolith.yaml │ │ ├── task_029_trouble_shooting_workloads_on_gke_for_sre/ │ │ │ └── ReadMe.md │ │ ├── task_030_minimal_nodejs_app_dockerize_google_artifact_registry/ │ │ │ ├── ReadMe.md │ │ │ └── test/ │ │ │ ├── Dockerfile │ │ │ └── app.js │ │ ├── task_031_hello_node_kubernetes__node/ │ │ │ ├── Dockerfile │ │ │ ├── ReadMe.md │ │ │ └── server.js │ │ ├── task_032_setting_up_jenkins_on_kubernetes_engine/ │ │ │ ├── ReadMe.md │ │ │ └── values.yaml │ │ └── task_033_continuous_delivery_with_jenkins_in_kubernetes_engine/ │ │ ├── Jenkinsfile │ │ ├── ReadMe.md │ │ └── values.yaml │ └── oci/ │ ├── ReadMe.md │ └── taskset_oci_cloud_providers/ │ ├── task_000_set_up_oci_cli/ │ │ └── ReadMe.md │ ├── task_001_oci_cli_commands/ │ │ └── ReadMe.md │ └── task_002_create_k8s_quick_create/ │ └── ReadMe.md ├── containers/ │ ├── docker/ │ │ ├── ReadMe.md │ │ └── taskset_docker_containers/ │ │ ├── task_000_commands/ │ │ │ └── ReadMe.md │ │ ├── task_001_docker_overview/ │ │ │ └── ReadMe.md │ │ ├── task_002_docker_run__detached_vs_foreground/ │ │ │ └── ReadMe.md │ │ ├── task_003_getting_started/ │ │ │ └── ReadMe.md │ │ ├── task_004_docker_run__pid_setting_and_choosing_image_with_tag/ │ │ │ └── ReadMe.md │ │ ├── task_005_docker_run__assign_name_and_allocate_pseudo_tty/ │ │ │ └── ReadMe.md │ │ ├── task_006_docker_run__expose_port_and_pull_policy_and_environment_vars/ │ │ │ └── ReadMe.md │ │ ├── task_006_run_commands_in_container/ │ │ │ └── ReadMe.md │ │ ├── task_007_docker_run__full_container_capabilities_and_set_working_dir_and_volume_mounts/ │ │ │ └── ReadMe.md │ │ ├── task_008_docker_run__hostsfile_ulimit_mem_limit/ │ │ │ └── ReadMe.md │ │ ├── task_008_docker_run__metadata_and_network_and_attach_to_stdout/ │ │ │ └── ReadMe.md │ │ ├── task_009_docker_attach/ │ │ │ └── ReadMe.md │ │ ├── task_010_docker_build/ │ │ │ ├── Dockerfile │ │ │ ├── ReadMe.md │ │ │ └── index.html │ │ ├── task_011_mongo/ │ │ │ └── ReadMe.md │ │ ├── task_012_postgres/ │ │ │ └── ReadMe.md │ │ ├── task_013_prometheus_blackbox_exporter/ │ │ │ ├── ReadMe.md │ │ │ ├── blackbox.yml │ │ │ └── prometheus.yml │ │ ├── task_014_elastic_search/ │ │ │ └── ReadMe.md │ │ ├── task_015_elastic_search_bkp_restore/ │ │ │ ├── Dockerfile │ │ │ ├── ReadMe.md │ │ │ ├── register.json │ │ │ ├── restoresnapshot.json │ │ │ └── snapshotsetting.json │ │ ├── task_016_elastic_search_backup_restore_sample_data/ │ │ │ ├── Dockerfile │ │ │ ├── ReadMe.md │ │ │ ├── createdata.json │ │ │ ├── register.json │ │ │ ├── restoresnapshot.json │ │ │ └── snapshotsetting.json │ │ ├── task_017_mem_and_cpu_limit_container/ │ │ │ └── ReadMe.md │ │ ├── task_018_mysql/ │ │ │ └── ReadMe.md │ │ ├── task_019_nginx_https_domain_test/ │ │ │ └── ReadMe.md │ │ ├── task_020_docker_commit/ │ │ │ └── ReadMe.md │ │ ├── task_021_kibana/ │ │ │ └── ReadMe.md │ │ ├── task_022_sample_app/ │ │ │ ├── ReadMe.md │ │ │ └── app/ │ │ │ ├── Dockerfile │ │ │ ├── package.json │ │ │ ├── spec/ │ │ │ │ ├── persistence/ │ │ │ │ │ └── sqlite.spec.js │ │ │ │ └── routes/ │ │ │ │ ├── addItem.spec.js │ │ │ │ ├── deleteItem.spec.js │ │ │ │ ├── getItems.spec.js │ │ │ │ └── updateItem.spec.js │ │ │ └── src/ │ │ │ ├── index.js │ │ │ ├── persistence/ │ │ │ │ ├── index.js │ │ │ │ ├── mysql.js │ │ │ │ └── sqlite.js │ │ │ ├── routes/ │ │ │ │ ├── addItem.js │ │ │ │ ├── deleteItem.js │ │ │ │ ├── getItems.js │ │ │ │ └── updateItem.js │ │ │ └── static/ │ │ │ ├── css/ │ │ │ │ ├── font-awesome/ │ │ │ │ │ ├── fa-brands-400.svg#fontawesome │ │ │ │ │ ├── fa-regular-400.svg#fontawesome │ │ │ │ │ └── fa-solid-900.svg#fontawesome │ │ │ │ └── styles.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── app.js │ │ │ └── react-bootstrap.js │ │ ├── task_023_update_sample_app/ │ │ │ ├── ReadMe.md │ │ │ └── app/ │ │ │ ├── Dockerfile │ │ │ ├── package.json │ │ │ ├── spec/ │ │ │ │ ├── persistence/ │ │ │ │ │ └── sqlite.spec.js │ │ │ │ └── routes/ │ │ │ │ ├── addItem.spec.js │ │ │ │ ├── deleteItem.spec.js │ │ │ │ ├── getItems.spec.js │ │ │ │ └── updateItem.spec.js │ │ │ └── src/ │ │ │ ├── index.js │ │ │ ├── persistence/ │ │ │ │ ├── index.js │ │ │ │ ├── mysql.js │ │ │ │ └── sqlite.js │ │ │ ├── routes/ │ │ │ │ ├── addItem.js │ │ │ │ ├── deleteItem.js │ │ │ │ ├── getItems.js │ │ │ │ └── updateItem.js │ │ │ └── static/ │ │ │ ├── css/ │ │ │ │ ├── font-awesome/ │ │ │ │ │ ├── fa-brands-400.svg#fontawesome │ │ │ │ │ ├── fa-regular-400.svg#fontawesome │ │ │ │ │ └── fa-solid-900.svg#fontawesome │ │ │ │ └── styles.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── app.js │ │ │ └── react-bootstrap.js │ │ ├── task_024_sample_app_persist_db/ │ │ │ ├── ReadMe.md │ │ │ └── app/ │ │ │ ├── Dockerfile │ │ │ ├── package.json │ │ │ ├── spec/ │ │ │ │ ├── persistence/ │ │ │ │ │ └── sqlite.spec.js │ │ │ │ └── routes/ │ │ │ │ ├── addItem.spec.js │ │ │ │ ├── deleteItem.spec.js │ │ │ │ ├── getItems.spec.js │ │ │ │ └── updateItem.spec.js │ │ │ └── src/ │ │ │ ├── index.js │ │ │ ├── persistence/ │ │ │ │ ├── index.js │ │ │ │ ├── mysql.js │ │ │ │ └── sqlite.js │ │ │ ├── routes/ │ │ │ │ ├── addItem.js │ │ │ │ ├── deleteItem.js │ │ │ │ ├── getItems.js │ │ │ │ └── updateItem.js │ │ │ └── static/ │ │ │ ├── css/ │ │ │ │ ├── font-awesome/ │ │ │ │ │ ├── fa-brands-400.svg#fontawesome │ │ │ │ │ ├── fa-regular-400.svg#fontawesome │ │ │ │ │ └── fa-solid-900.svg#fontawesome │ │ │ │ └── styles.css │ │ │ ├── index.html │ │ │ └── js/ │ │ │ ├── app.js │ │ │ └── react-bootstrap.js │ │ ├── task_025_sonarqube__keycloak__saml/ │ │ │ ├── .gitignore │ │ │ └── ReadMe.md │ │ ├── task_026_mssql/ │ │ │ └── ReadMe.md │ │ ├── task_027_docker_openvpn/ │ │ │ ├── Readme.md │ │ │ └── setup_vpn.sh │ │ ├── task_028_docker_engine__networking__overview/ │ │ │ └── ReadMe.md │ │ ├── task_029_docker_engine__networking__bridge_network_tutorial/ │ │ │ └── ReadMe.md │ │ └── task_030_docker_engine__networking__host_networking_tutorial/ │ │ └── ReadMe.md │ ├── docker_compose/ │ │ ├── ReadMe.md │ │ └── taskset_docker_compose_containers/ │ │ ├── task_001__gcp__traefik_letsEncrypt_tls_challenge/ │ │ │ ├── ReadMe.md │ │ │ └── docker-compose.yaml │ │ ├── task_002__gcp__traefik_letsEncrypt_http_challenge/ │ │ │ ├── ReadMe.md │ │ │ └── docker-compose.yaml │ │ ├── task_003__gcp__datadog/ │ │ │ ├── ReadMe.md │ │ │ └── docker-compose.yaml │ │ ├── task_004__local__elastic_search_backup_restore_local_with_sample_data/ │ │ │ ├── ReadMe.md │ │ │ ├── docker-compose.yml │ │ │ ├── elasticsearch.yml │ │ │ ├── restoresnapshot.json │ │ │ └── snapshotsetting.json │ │ ├── task_005__local__elastic_search_kibana/ │ │ │ ├── ReadMe.md │ │ │ └── docker-compose.yml │ │ ├── task_006__local__logstash/ │ │ │ ├── ReadMe.md │ │ │ ├── conf/ │ │ │ │ └── filter.conf │ │ │ ├── docker-compose.yml │ │ │ ├── log-sample/ │ │ │ │ └── access.log │ │ │ └── logstash.yml │ │ ├── task_007__local__prometheus_blackboxexporter_alertmanager/ │ │ │ ├── ReadMe.md │ │ │ ├── alertmanager/ │ │ │ │ └── configuration.yml │ │ │ ├── blackboxexporter/ │ │ │ │ └── config.yml │ │ │ ├── docker-compose.yml │ │ │ └── prometheus/ │ │ │ ├── alert.rules.yml │ │ │ └── prometheus.yml │ │ ├── task_008__local__mongodb_metricbeat_elasticsearch_kibana/ │ │ │ ├── ReadMe.md │ │ │ ├── docker/ │ │ │ │ └── metricbeat/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── entrypoint.sh │ │ │ │ └── metricbeat.yml │ │ │ └── docker-compose.yml │ │ ├── task_009__local__natsStreaming_metricbeat_elasticsearch_kibana/ │ │ │ ├── ReadMe.md │ │ │ ├── docker/ │ │ │ │ └── metricbeat/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── entrypoint.sh │ │ │ │ └── metricbeat.yml │ │ │ └── docker-compose.yml │ │ ├── task_010__local__mysql_metricbeat_elasticsearch_kibana/ │ │ │ ├── ReadMe.md │ │ │ ├── docker/ │ │ │ │ └── metricbeat/ │ │ │ │ ├── Dockerfile │ │ │ │ ├── entrypoint.sh │ │ │ │ └── metricbeat.yml │ │ │ └── docker-compose.yml │ │ ├── task_011__gcp__nginx_https_domain_test/ │ │ │ ├── ReadMe.md │ │ │ ├── certs/ │ │ │ │ ├── star_domain.com.key │ │ │ │ └── star_domain_com.chained.crt │ │ │ ├── docker-compose.yml │ │ │ └── nginx.conf │ │ ├── task_012__local__caddy_https_domain_test_with_custom_certs/ │ │ │ ├── Caddyfile │ │ │ ├── ReadMe.md │ │ │ ├── certs/ │ │ │ │ ├── star_domain.com.key │ │ │ │ └── star_domain_com.chained.crt │ │ │ ├── docker-compose.yml │ │ │ ├── index.html-renameme-to-html │ │ │ └── password-generation.yml │ │ ├── task_013__local__caddy_https_acme_and_save_certs/ │ │ │ ├── Caddyfile │ │ │ ├── ReadMe.md │ │ │ └── docker-compose.yml │ │ ├── task_014__local__reverse_proxy_nginx_home_using_caddy/ │ │ │ ├── Caddyfile │ │ │ ├── ReadMe.md │ │ │ ├── certs/ │ │ │ │ ├── chained-cert.crt │ │ │ │ └── private-key.key │ │ │ ├── docker-compose.yml │ │ │ ├── index.html-rename-me-to-html │ │ │ ├── nginx-home/ │ │ │ │ └── index.html │ │ │ └── password-generation.yml │ │ ├── task_015__local__mem_and_cpu_limit_nginx_container/ │ │ │ ├── ReadMe.md │ │ │ ├── docker-compose-v2.4.yaml │ │ │ └── docker-compose-v3.8.yaml │ │ └── task_016__gcp_local__grafana__tempo__prometheus__xk6_client_tracing/ │ │ ├── ReadMe.md │ │ ├── docker-compose.yaml │ │ └── shared/ │ │ ├── grafana-datasources.yaml │ │ ├── prometheus.yaml │ │ └── tempo.yaml │ └── kubernetes/ │ ├── README.md │ ├── concepts/ │ │ ├── ReadMe.md │ │ ├── task_001_blue_green_deployment/ │ │ │ └── ReadMe.md │ │ └── task_002_networking/ │ │ └── ReadMe.md │ └── taskset_kubernetes_containers/ │ ├── task_001__local__configure_default_CPU_requests_and_limits_for_a_namespace/ │ │ ├── ReadMe.md │ │ ├── limitrange-object.yaml │ │ ├── pod-limit-cpu.yaml │ │ ├── pod-no-limit-specified.yaml │ │ └── pod-request-cpu.yaml │ ├── task_002__local__configure_default_memory_requests_and_limits_for_a_namespace/ │ │ ├── ReadMe.md │ │ ├── limitrange-object.yaml │ │ ├── pod-limit-memory.yaml │ │ ├── pod-no-limit-specified.yaml │ │ └── pod-request-memory.yaml │ ├── task_003__local__understanding_k8s_port_forward/ │ │ └── ReadMe.md │ ├── task_004__local__expose_svc_via_nodeport/ │ │ └── ReadMe.md │ ├── task_005__local__access_svc_nodeport_via_ingress/ │ │ ├── ReadMe.md │ │ └── ingress.yaml │ ├── task_006__local__access_svc_clusterip_via_ingress/ │ │ ├── ReadMe.md │ │ └── ingress.yaml │ ├── task_007__local__jenkins_k8s/ │ │ ├── ReadMe.md │ │ ├── jenkins-agent.Dockerfile │ │ ├── jenkins-controller.Dockerfile │ │ ├── jenkins-k8s-manifests.yaml │ │ └── values.yaml │ ├── task_008__local__kafka/ │ │ ├── ReadMe.md │ │ ├── kafka-manifests.yaml │ │ └── values.yaml │ ├── task_009__local__kafdrop/ │ │ ├── ReadMe.md │ │ ├── kafdrop-manifests.yaml │ │ └── values.yaml │ ├── task_010__aws__deploy_traefik_kops_k8s_helm/ │ │ ├── ReadMe.md │ │ ├── traefik-resources.yaml │ │ └── values.yaml │ ├── task_011__aws__traefik_kops_whoami/ │ │ ├── ReadMe.md │ │ ├── traefik-resources.yaml │ │ ├── values.yaml │ │ └── whoami.yaml │ ├── task_012__aws__kops_with_traefik_customization/ │ │ ├── ReadMe.md │ │ ├── echo-app/ │ │ │ ├── dep.yaml │ │ │ ├── ingress.yaml │ │ │ └── svc.yaml │ │ ├── httpbin-app/ │ │ │ ├── dep.yaml │ │ │ ├── ingress.yaml │ │ │ └── svc.yaml │ │ ├── traefik-custom-image/ │ │ │ ├── Dockerfile │ │ │ ├── middleware/ │ │ │ │ └── middleware.yaml │ │ │ └── traefik-add-trace-id/ │ │ │ ├── .traefik.yml │ │ │ ├── README.md │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── rand-utils.go │ │ │ ├── trace-id.go │ │ │ └── trace-id_test.go │ │ └── traefik-helm-chart/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── Guidelines.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── crds/ │ │ │ ├── ingressroute.yaml │ │ │ ├── ingressroutetcp.yaml │ │ │ ├── ingressrouteudp.yaml │ │ │ ├── middlewares.yaml │ │ │ ├── middlewarestcp.yaml │ │ │ ├── serverstransports.yaml │ │ │ ├── tlsoptions.yaml │ │ │ ├── tlsstores.yaml │ │ │ └── traefikservices.yaml │ │ ├── templates/ │ │ │ ├── _helpers.tpl │ │ │ ├── _podtemplate.tpl │ │ │ ├── daemonset.yaml │ │ │ ├── dashboard-hook-ingressroute.yaml │ │ │ ├── deployment.yaml │ │ │ ├── gateway.yaml │ │ │ ├── gatewayclass.yaml │ │ │ ├── hpa.yaml │ │ │ ├── ingressclass.yaml │ │ │ ├── poddisruptionbudget.yaml │ │ │ ├── pvc.yaml │ │ │ ├── rbac/ │ │ │ │ ├── clusterrole.yaml │ │ │ │ ├── clusterrolebinding.yaml │ │ │ │ ├── podsecuritypolicy.yaml │ │ │ │ ├── role.yaml │ │ │ │ ├── rolebinding.yaml │ │ │ │ └── serviceaccount.yaml │ │ │ ├── service.yaml │ │ │ └── tlsoption.yaml │ │ ├── tests/ │ │ │ ├── container-config_test.yaml │ │ │ ├── daemonset-config_test.yaml │ │ │ ├── default-install_test.yaml │ │ │ ├── deployment-config_test.yaml │ │ │ ├── gateway-config_test.yaml │ │ │ ├── gatewayclass-config_test.yaml │ │ │ ├── pod-config_test.yaml │ │ │ ├── poddisruptionbudget-config_test.yaml │ │ │ ├── podsecuritypolicy-config_test.yaml │ │ │ ├── ports-config_test.yaml │ │ │ ├── rbac-config_test.yaml │ │ │ ├── service-config_test.yaml │ │ │ └── traefik-config_test.yaml │ │ ├── traefik-manifests.yaml │ │ └── values.yaml │ ├── task_013__aws__oauth2_proxy/ │ │ ├── ReadMe.md │ │ ├── kafdrop-chart/ │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── kafdrop-manifests.yaml │ │ │ ├── templates/ │ │ │ │ ├── NOTES.txt │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── deployment.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── ingressroute.yaml │ │ │ │ ├── service.yaml │ │ │ │ └── traefik-middleware.yaml │ │ │ └── values.yaml │ │ ├── oauth2-proxy/ │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── README.md │ │ │ ├── charts/ │ │ │ │ ├── common/ │ │ │ │ │ ├── .helmignore │ │ │ │ │ ├── Chart.yaml │ │ │ │ │ ├── README.md │ │ │ │ │ ├── templates/ │ │ │ │ │ │ ├── _affinities.tpl │ │ │ │ │ │ ├── _capabilities.tpl │ │ │ │ │ │ ├── _errors.tpl │ │ │ │ │ │ ├── _images.tpl │ │ │ │ │ │ ├── _ingress.tpl │ │ │ │ │ │ ├── _labels.tpl │ │ │ │ │ │ ├── _names.tpl │ │ │ │ │ │ ├── _secrets.tpl │ │ │ │ │ │ ├── _storage.tpl │ │ │ │ │ │ ├── _tplvalues.tpl │ │ │ │ │ │ ├── _utils.tpl │ │ │ │ │ │ ├── _warnings.tpl │ │ │ │ │ │ └── validations/ │ │ │ │ │ │ ├── _cassandra.tpl │ │ │ │ │ │ ├── _mariadb.tpl │ │ │ │ │ │ ├── _mongodb.tpl │ │ │ │ │ │ ├── _postgresql.tpl │ │ │ │ │ │ ├── _redis.tpl │ │ │ │ │ │ └── _validations.tpl │ │ │ │ │ └── values.yaml │ │ │ │ └── redis/ │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.yaml │ │ │ │ ├── README.md │ │ │ │ ├── charts/ │ │ │ │ │ └── common/ │ │ │ │ │ ├── .helmignore │ │ │ │ │ ├── Chart.yaml │ │ │ │ │ ├── README.md │ │ │ │ │ ├── templates/ │ │ │ │ │ │ ├── _affinities.tpl │ │ │ │ │ │ ├── _capabilities.tpl │ │ │ │ │ │ ├── _errors.tpl │ │ │ │ │ │ ├── _images.tpl │ │ │ │ │ │ ├── _ingress.tpl │ │ │ │ │ │ ├── _labels.tpl │ │ │ │ │ │ ├── _names.tpl │ │ │ │ │ │ ├── _secrets.tpl │ │ │ │ │ │ ├── _storage.tpl │ │ │ │ │ │ ├── _tplvalues.tpl │ │ │ │ │ │ ├── _utils.tpl │ │ │ │ │ │ ├── _warnings.tpl │ │ │ │ │ │ └── validations/ │ │ │ │ │ │ ├── _cassandra.tpl │ │ │ │ │ │ ├── _mariadb.tpl │ │ │ │ │ │ ├── _mongodb.tpl │ │ │ │ │ │ ├── _postgresql.tpl │ │ │ │ │ │ ├── _redis.tpl │ │ │ │ │ │ └── _validations.tpl │ │ │ │ │ └── values.yaml │ │ │ │ ├── ci/ │ │ │ │ │ ├── extra-flags-values.yaml │ │ │ │ │ ├── sentinel-values.yaml │ │ │ │ │ └── standalone-values.yaml │ │ │ │ ├── templates/ │ │ │ │ │ ├── NOTES.txt │ │ │ │ │ ├── _helpers.tpl │ │ │ │ │ ├── configmap.yaml │ │ │ │ │ ├── extra-list.yaml │ │ │ │ │ ├── headless-svc.yaml │ │ │ │ │ ├── health-configmap.yaml │ │ │ │ │ ├── master/ │ │ │ │ │ │ ├── psp.yaml │ │ │ │ │ │ ├── service.yaml │ │ │ │ │ │ └── statefulset.yaml │ │ │ │ │ ├── metrics-svc.yaml │ │ │ │ │ ├── networkpolicy.yaml │ │ │ │ │ ├── pdb.yaml │ │ │ │ │ ├── prometheusrule.yaml │ │ │ │ │ ├── replicas/ │ │ │ │ │ │ ├── hpa.yaml │ │ │ │ │ │ ├── service.yaml │ │ │ │ │ │ └── statefulset.yaml │ │ │ │ │ ├── role.yaml │ │ │ │ │ ├── rolebinding.yaml │ │ │ │ │ ├── scripts-configmap.yaml │ │ │ │ │ ├── secret.yaml │ │ │ │ │ ├── sentinel/ │ │ │ │ │ │ ├── service.yaml │ │ │ │ │ │ └── statefulset.yaml │ │ │ │ │ ├── serviceaccount.yaml │ │ │ │ │ ├── servicemonitor.yaml │ │ │ │ │ └── tls-secret.yaml │ │ │ │ ├── values.schema.json │ │ │ │ └── values.yaml │ │ │ ├── oauth2-manifests.yaml │ │ │ ├── templates/ │ │ │ │ ├── NOTES.txt │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── configmap.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ ├── extra-list.yaml │ │ │ │ ├── ingress-route.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── pdb.yaml │ │ │ │ ├── secret-authenticated-emails-file.yaml │ │ │ │ ├── secret-google.yaml │ │ │ │ ├── secret-htpasswd-file.yaml │ │ │ │ ├── secret.yaml │ │ │ │ ├── service-account.yaml │ │ │ │ ├── service.yaml │ │ │ │ └── traefik-middlewares.yaml │ │ │ └── values.yaml │ │ └── traefik/ │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── Guidelines.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── crds/ │ │ │ ├── ingressroute.yaml │ │ │ ├── ingressroutetcp.yaml │ │ │ ├── ingressrouteudp.yaml │ │ │ ├── middlewares.yaml │ │ │ ├── middlewarestcp.yaml │ │ │ ├── serverstransports.yaml │ │ │ ├── tlsoptions.yaml │ │ │ ├── tlsstores.yaml │ │ │ └── traefikservices.yaml │ │ ├── templates/ │ │ │ ├── _helpers.tpl │ │ │ ├── _podtemplate.tpl │ │ │ ├── daemonset.yaml │ │ │ ├── dashboard-hook-ingressroute.yaml │ │ │ ├── deployment.yaml │ │ │ ├── gateway.yaml │ │ │ ├── gatewayclass.yaml │ │ │ ├── hpa.yaml │ │ │ ├── ingressclass.yaml │ │ │ ├── poddisruptionbudget.yaml │ │ │ ├── pvc.yaml │ │ │ ├── rbac/ │ │ │ │ ├── clusterrole.yaml │ │ │ │ ├── clusterrolebinding.yaml │ │ │ │ ├── podsecuritypolicy.yaml │ │ │ │ ├── role.yaml │ │ │ │ ├── rolebinding.yaml │ │ │ │ └── serviceaccount.yaml │ │ │ ├── service.yaml │ │ │ └── tlsoption.yaml │ │ ├── tests/ │ │ │ ├── container-config_test.yaml │ │ │ ├── daemonset-config_test.yaml │ │ │ ├── default-install_test.yaml │ │ │ ├── deployment-config_test.yaml │ │ │ ├── gateway-config_test.yaml │ │ │ ├── gatewayclass-config_test.yaml │ │ │ ├── pod-config_test.yaml │ │ │ ├── poddisruptionbudget-config_test.yaml │ │ │ ├── podsecuritypolicy-config_test.yaml │ │ │ ├── ports-config_test.yaml │ │ │ ├── rbac-config_test.yaml │ │ │ ├── service-config_test.yaml │ │ │ └── traefik-config_test.yaml │ │ └── values.yaml │ ├── task_014__aws__traefik_kops_whoami_middleware/ │ │ ├── ReadMe.md │ │ ├── middleware.yaml │ │ ├── traefik-resources.yaml │ │ ├── values.yaml │ │ └── whoami.yaml │ ├── task_015__aws__lets_encrypt_kops_cluster/ │ │ ├── ReadMe.md │ │ ├── cluster-issuer.yaml │ │ ├── ingress.yaml │ │ ├── k8s-resources.yaml │ │ └── whoami.yaml │ ├── task_016__aws__k8s_cluster_using_kops/ │ │ └── ReadMe.md │ ├── task_017__aws__updating_a_kops_cluster/ │ │ └── ReadMe.md │ ├── task_018_aws__kong_ingress_on_eks/ │ │ ├── ReadMe.md │ │ ├── echo-app/ │ │ │ ├── dep.yaml │ │ │ ├── ingress-with-plugin.yaml │ │ │ ├── ingress.yaml │ │ │ ├── plugin.yaml │ │ │ ├── ratelimitplugin.yaml │ │ │ └── svc.yaml │ │ ├── global-plugins/ │ │ │ └── ratelimitplugin.yaml │ │ ├── httpbin-app/ │ │ │ ├── add-response-header-plugin.yaml │ │ │ ├── consumer.yaml │ │ │ ├── customizedKongIngress.yaml │ │ │ ├── dep.yaml │ │ │ ├── ingress.yaml │ │ │ ├── plugin-svc-http-auth.yaml │ │ │ ├── specific-consumer-plugin.yaml │ │ │ └── svc.yaml │ │ └── kong/ │ │ └── values.yaml │ ├── task_019__gcp__elastic_search/ │ │ └── ReadMe.md │ ├── task_020__gcp__basic_namespace_wide_kubeconfig/ │ │ ├── README.md │ │ ├── admin-run.sh │ │ ├── client-run.sh │ │ ├── csr.cnf │ │ ├── csr.yaml │ │ ├── dev-ns.yaml │ │ ├── kubeconfig.tpl │ │ ├── reset.sh │ │ ├── role-binding.yaml │ │ ├── role.yaml │ │ └── www.yaml │ ├── task_021__gcp__intermediate_namespace_wide_kubeconfig/ │ │ ├── README.md │ │ ├── admin-run.sh │ │ ├── client-run.sh │ │ ├── common-resources/ │ │ │ ├── csr.cnf-template │ │ │ ├── csr.yaml │ │ │ ├── kubeconfig.tpl │ │ │ ├── role-binding.yaml-template │ │ │ ├── role-readonly.yaml-template │ │ │ └── role-readwrite.yaml-template │ │ ├── dev/ │ │ │ ├── default/ │ │ │ │ └── groupQA/ │ │ │ │ ├── csr.yaml │ │ │ │ ├── dave.key │ │ │ │ ├── kubeconfig │ │ │ │ ├── role-binding.yaml │ │ │ │ └── role-readonly.yaml │ │ │ └── kube-system/ │ │ │ └── groupDEV/ │ │ │ ├── csr.yaml │ │ │ ├── dave.key │ │ │ ├── kubeconfig │ │ │ ├── role-binding.yaml │ │ │ └── role-readwrite.yaml │ │ ├── reset.sh │ │ ├── run-all.sh │ │ └── www.yaml │ ├── task_022__gcp__k8s_dashboard/ │ │ ├── 00-namespace.yaml │ │ ├── 05-service-account.yaml │ │ ├── 10-service.yaml │ │ ├── 15-secret.yaml │ │ ├── 20-configmap.yaml │ │ ├── 25-role.yaml │ │ ├── 30-clusterRole.yaml │ │ ├── 35-roleBinding.yaml │ │ ├── 40-clusterRoleBinding.yaml │ │ ├── 45-deployment.yaml │ │ ├── 50-service-kubernetes-dashboard.yaml │ │ ├── 55-service-dashboard-metrics-scraper.yaml │ │ ├── 60-admin-service-account.yaml │ │ └── README.md │ ├── task_023__gcp__traefik_whoami/ │ │ ├── 00-resource-crd-definition.yml │ │ ├── 05-traefik-rbac.yml │ │ ├── 10-service-account.yaml │ │ ├── 15-traefik-deployment.yaml │ │ ├── 16-traefik.toml │ │ ├── 20-traefik-service.yaml │ │ ├── 25-whoami-deployment.yaml │ │ ├── 30-whoami-service.yaml │ │ ├── 35-whoami-ingress-route.yaml │ │ └── ReadMe.md │ ├── task_024__gcp__traefik_whoami_tomlInConfigMap/ │ │ ├── 00-resource-crd-definition.yml │ │ ├── 05-traefik-rbac.yml │ │ ├── 10-service-account.yaml │ │ ├── 15-traefik-deployment.yaml │ │ ├── 20-traefik-service.yaml │ │ ├── 24-traefik-configMap.yaml │ │ ├── 25-whoami-deployment.yaml │ │ ├── 30-whoami-service.yaml │ │ ├── 35-whoami-ingress-route.yaml │ │ └── ReadMe.md │ ├── task_025__gcp__traefik_whoami_lets_encrypt/ │ │ ├── 00-resource-crd-definition.yml │ │ ├── 05-traefik-rbac.yml │ │ ├── 10-service-account.yaml │ │ ├── 15-traefik-deployment.yaml │ │ ├── 20-traefik-service.yaml │ │ ├── 25-whoami-deployment.yaml │ │ ├── 30-whoami-service.yaml │ │ ├── 35-ingress-route.yaml │ │ └── ReadMe.md │ ├── task_026__gcp__external_IP_to_access_Application_In_Cluster/ │ │ ├── ReadMe.md │ │ └── service/ │ │ └── load-balancer-example.yaml │ ├── task_027__gcp__intermediate_cluster_wide_kubeconfig/ │ │ ├── README.md │ │ ├── admin-run.sh │ │ ├── client-run.sh │ │ ├── common-resources/ │ │ │ ├── clusterRole-binding.yaml-template │ │ │ ├── clusterRole-readonly.yaml-template │ │ │ ├── clusterRole-readwrite.yaml-template │ │ │ ├── csr.cnf-template │ │ │ ├── csr.yaml │ │ │ └── kubeconfig.tpl │ │ ├── dev/ │ │ │ ├── groupDEV/ │ │ │ │ ├── clusterRole-binding.yaml │ │ │ │ ├── clusterRole-readwrite.yaml │ │ │ │ ├── csr.yaml │ │ │ │ ├── dave.key │ │ │ │ └── kubeconfig │ │ │ └── groupQA/ │ │ │ ├── clusterRole-binding.yaml │ │ │ ├── clusterRole-readonly.yaml │ │ │ ├── csr.yaml │ │ │ ├── dave.key │ │ │ └── kubeconfig │ │ ├── reset.sh │ │ ├── run-all.sh │ │ └── www.yaml │ ├── task_028__gcp__configuring_datadog/ │ │ ├── 00-clusterrole.yaml │ │ ├── 01-cluster-role.yaml │ │ ├── 05-serviceaccount.yaml │ │ ├── 06-service-account.yaml │ │ ├── 10-clusterrolebinding.yaml │ │ ├── 11-cluster-role-binding.yaml │ │ ├── 20-datadog-cluster-agent.yaml │ │ ├── 25-datadog-agent.yaml │ │ ├── 30-service.yaml │ │ ├── 35-deployment.yaml │ │ └── ReadMe.md │ ├── task_029__gcp__configuring_dns_with_static_IPs_k8_using_Ingress/ │ │ ├── ReadMe.md │ │ ├── helloweb-deployment.yaml │ │ └── helloweb-ingress.yaml │ ├── task_030__gcp__PodSecurityPolicy/ │ │ ├── ReadMe.md │ │ └── example-psp.yaml │ ├── task_031__gcp__kube_state_metrics/ │ │ ├── ReadMe.md │ │ ├── cluster-role-binding.yaml │ │ ├── cluster-role.yaml │ │ ├── deployment.yaml │ │ ├── service-account.yaml │ │ └── service.yaml │ ├── task_032__gcp__traefik_whoami_tls_custom_certs/ │ │ ├── 00-resource-crd-definition.yml │ │ ├── 05-traefik-rbac.yml │ │ ├── 10-service-account.yaml │ │ ├── 11-traefik-configmap.yaml │ │ ├── 12-secret.yaml │ │ ├── 15-traefik-deployment.yaml │ │ ├── 20-traefik-service.yaml │ │ ├── 25-whoami-deployment.yaml │ │ ├── 30-whoami-service.yaml │ │ ├── 35-whoami-ingress-route.yaml │ │ └── ReadMe.md │ ├── task_033__gcp__configuring_dns_with_static_IPs_k8_using_Service/ │ │ ├── ReadMe.md │ │ ├── helloweb-deployment.yaml │ │ └── helloweb-service.yaml │ ├── task_034__gcp__metricbeat/ │ │ ├── 00-service-account.yaml │ │ ├── 04-cluster-role.yaml │ │ ├── 08-cluster-role-binding.yaml │ │ ├── 12-configmap-metricbeat-deployment.yaml │ │ ├── 16-configmap-metricbeat-daemonset.yaml │ │ ├── 20-daemonset.yaml │ │ ├── 24-deployment.yaml │ │ └── ReadMe.md │ ├── task_035__gcp__journalbeat/ │ │ ├── 00-service-account.yaml │ │ ├── 02-cluster-role.yaml │ │ ├── 03-cluster-role-binding.yaml │ │ ├── 04-pod-security-policy.yaml │ │ ├── 08-configmap.yaml │ │ ├── 12-daemonset.yaml │ │ └── ReadMe.md │ ├── task_036__gcp_vm__cert_manager_lets_encypt_http_validation/ │ │ ├── ReadMe.md │ │ ├── cert-manager.yaml │ │ ├── certificate.yaml │ │ ├── cluster-issuer.yaml │ │ ├── dep-whoami.yaml │ │ ├── ingress.yaml │ │ └── service.yaml │ ├── task_037__gcp_k8s__cert_manager_lets_encypt_http_validation/ │ │ ├── ReadMe.md │ │ ├── cert-manager.yaml │ │ ├── certificate.yaml │ │ ├── cluster-issuer.yaml │ │ ├── dep-whoami.yaml │ │ ├── ingress.yaml │ │ ├── service.yaml │ │ └── svc.yaml │ ├── task_038__local__kind__extramounts_for_pv_and_pvc/ │ │ ├── ReadMe.md │ │ ├── kind_extramounts_config.yaml │ │ ├── pod.yaml │ │ ├── pv.yaml │ │ └── pvc.yaml │ ├── task_039__local__kind__prometheus_operator__kube_prometheus_grafana_alertmanager/ │ │ ├── ReadMe.md │ │ └── kind-config.yaml │ ├── task_040__local__kind__bitnami_loki___using_39/ │ │ ├── ReadMe.md │ │ ├── log-generator-pod.yaml │ │ └── loki.yaml │ ├── task_041__gcp_k8s__nginx_ingress/ │ │ ├── ReadMe.md │ │ ├── base/ │ │ │ ├── app/ │ │ │ │ ├── dep_whoami.yaml │ │ │ │ ├── ingress_whoami.yaml │ │ │ │ └── svc_whoami.yaml │ │ │ └── ingress-nginx/ │ │ │ ├── configmap_patch.yaml │ │ │ ├── deployment_patch.yaml │ │ │ ├── ingressclass_patch.yaml │ │ │ ├── kustomization.yaml │ │ │ ├── namespace.yaml │ │ │ └── service_patch.yaml │ │ ├── build/ │ │ │ └── ingress_nginx_ext_all.yaml │ │ └── vendor/ │ │ └── ingress-nginx/ │ │ ├── ingress-nginx-ext-vendor.yaml │ │ └── kustomization.yaml │ ├── task_042__gcp_k8s__cert_manager_dns_validation___using_41/ │ │ ├── ReadMe.md │ │ ├── base/ │ │ │ ├── app/ │ │ │ │ ├── dep_echo.yaml │ │ │ │ ├── dep_whoami.yaml │ │ │ │ ├── ingress_echo.yaml │ │ │ │ ├── ingress_whoami.yaml │ │ │ │ ├── kustomization.yaml │ │ │ │ ├── svc_echo.yaml │ │ │ │ └── svc_whoami.yaml │ │ │ └── cert-manager/ │ │ │ ├── certificate-letsEncryptProd.yaml │ │ │ ├── certificate-letsEncryptStaging.yaml │ │ │ ├── clusterIssuer-letsEncryptProd.yaml │ │ │ ├── clusterIssuer-letsEncryptStaging.yaml │ │ │ ├── kustomization.yaml │ │ │ └── namespace.yaml │ │ ├── build/ │ │ │ ├── app_all.yaml │ │ │ └── cert_manager_all.yaml │ │ └── vendor/ │ │ └── cert-manager/ │ │ ├── cert-manager-vendor.yaml │ │ └── kustomization.yaml │ ├── task_043_gcp_k8s__codecentric_keycloak__bitnami_postgres___using_41_42/ │ │ ├── ReadMe.md │ │ ├── base/ │ │ │ ├── keycloakx/ │ │ │ │ ├── ingress_keycloak.yaml │ │ │ │ └── kustomization.yaml │ │ │ └── postgresql/ │ │ │ └── namespace.yaml │ │ └── build/ │ │ └── keycloakx_all.yaml │ ├── task_044_gcp_k8s__prometheus_operator__kube_prometheus_grafana_alertmanager___using_41_42_43/ │ │ ├── ReadMe.md │ │ ├── base/ │ │ │ └── kube_prometheus/ │ │ │ ├── alertmanager_ingress.yaml │ │ │ ├── grafana_ingress.yaml │ │ │ ├── kustomization.yaml │ │ │ └── prometheus_ingress.yaml │ │ ├── build/ │ │ │ └── kube_prometheus_all.yaml │ │ └── vendor/ │ │ └── kube_prometheus/ │ │ ├── kustomization.yaml │ │ └── manifests/ │ │ ├── alertmanager-alertmanager.yaml │ │ ├── alertmanager-networkPolicy.yaml │ │ ├── alertmanager-podDisruptionBudget.yaml │ │ ├── alertmanager-prometheusRule.yaml │ │ ├── alertmanager-secret.yaml │ │ ├── alertmanager-service.yaml │ │ ├── alertmanager-serviceAccount.yaml │ │ ├── alertmanager-serviceMonitor.yaml │ │ ├── blackboxExporter-clusterRole.yaml │ │ ├── blackboxExporter-clusterRoleBinding.yaml │ │ ├── blackboxExporter-configuration.yaml │ │ ├── blackboxExporter-deployment.yaml │ │ ├── blackboxExporter-networkPolicy.yaml │ │ ├── blackboxExporter-service.yaml │ │ ├── blackboxExporter-serviceAccount.yaml │ │ ├── blackboxExporter-serviceMonitor.yaml │ │ ├── grafana-config.yaml │ │ ├── grafana-dashboardDatasources.yaml │ │ ├── grafana-dashboardDefinitions.yaml │ │ ├── grafana-dashboardSources.yaml │ │ ├── grafana-deployment.yaml │ │ ├── grafana-networkPolicy.yaml │ │ ├── grafana-prometheusRule.yaml │ │ ├── grafana-service.yaml │ │ ├── grafana-serviceAccount.yaml │ │ ├── grafana-serviceMonitor.yaml │ │ ├── kubePrometheus-prometheusRule.yaml │ │ ├── kubeStateMetrics-clusterRole.yaml │ │ ├── kubeStateMetrics-clusterRoleBinding.yaml │ │ ├── kubeStateMetrics-deployment.yaml │ │ ├── kubeStateMetrics-networkPolicy.yaml │ │ ├── kubeStateMetrics-prometheusRule.yaml │ │ ├── kubeStateMetrics-service.yaml │ │ ├── kubeStateMetrics-serviceAccount.yaml │ │ ├── kubeStateMetrics-serviceMonitor.yaml │ │ ├── kubernetesControlPlane-prometheusRule.yaml │ │ ├── kubernetesControlPlane-serviceMonitorApiserver.yaml │ │ ├── kubernetesControlPlane-serviceMonitorCoreDNS.yaml │ │ ├── kubernetesControlPlane-serviceMonitorKubeControllerManager.yaml │ │ ├── kubernetesControlPlane-serviceMonitorKubeScheduler.yaml │ │ ├── kubernetesControlPlane-serviceMonitorKubelet.yaml │ │ ├── nodeExporter-clusterRole.yaml │ │ ├── nodeExporter-clusterRoleBinding.yaml │ │ ├── nodeExporter-daemonset.yaml │ │ ├── nodeExporter-networkPolicy.yaml │ │ ├── nodeExporter-prometheusRule.yaml │ │ ├── nodeExporter-service.yaml │ │ ├── nodeExporter-serviceAccount.yaml │ │ ├── nodeExporter-serviceMonitor.yaml │ │ ├── prometheus-clusterRole.yaml │ │ ├── prometheus-clusterRoleBinding.yaml │ │ ├── prometheus-networkPolicy.yaml │ │ ├── prometheus-podDisruptionBudget.yaml │ │ ├── prometheus-prometheus.yaml │ │ ├── prometheus-prometheusRule.yaml │ │ ├── prometheus-roleBindingConfig.yaml │ │ ├── prometheus-roleBindingSpecificNamespaces.yaml │ │ ├── prometheus-roleConfig.yaml │ │ ├── prometheus-roleSpecificNamespaces.yaml │ │ ├── prometheus-service.yaml │ │ ├── prometheus-serviceAccount.yaml │ │ ├── prometheus-serviceMonitor.yaml │ │ ├── prometheusAdapter-apiService.yaml │ │ ├── prometheusAdapter-clusterRole.yaml │ │ ├── prometheusAdapter-clusterRoleAggregatedMetricsReader.yaml │ │ ├── prometheusAdapter-clusterRoleBinding.yaml │ │ ├── prometheusAdapter-clusterRoleBindingDelegator.yaml │ │ ├── prometheusAdapter-clusterRoleServerResources.yaml │ │ ├── prometheusAdapter-configMap.yaml │ │ ├── prometheusAdapter-deployment.yaml │ │ ├── prometheusAdapter-networkPolicy.yaml │ │ ├── prometheusAdapter-podDisruptionBudget.yaml │ │ ├── prometheusAdapter-roleBindingAuthReader.yaml │ │ ├── prometheusAdapter-service.yaml │ │ ├── prometheusAdapter-serviceAccount.yaml │ │ ├── prometheusAdapter-serviceMonitor.yaml │ │ ├── prometheusOperator-clusterRole.yaml │ │ ├── prometheusOperator-clusterRoleBinding.yaml │ │ ├── prometheusOperator-deployment.yaml │ │ ├── prometheusOperator-networkPolicy.yaml │ │ ├── prometheusOperator-prometheusRule.yaml │ │ ├── prometheusOperator-service.yaml │ │ ├── prometheusOperator-serviceAccount.yaml │ │ ├── prometheusOperator-serviceMonitor.yaml │ │ └── setup/ │ │ ├── 0alertmanagerConfigCustomResourceDefinition.yaml │ │ ├── 0alertmanagerCustomResourceDefinition.yaml │ │ ├── 0podmonitorCustomResourceDefinition.yaml │ │ ├── 0probeCustomResourceDefinition.yaml │ │ ├── 0prometheusCustomResourceDefinition.yaml │ │ ├── 0prometheusagentCustomResourceDefinition.yaml │ │ ├── 0prometheusruleCustomResourceDefinition.yaml │ │ ├── 0scrapeconfigCustomResourceDefinition.yaml │ │ ├── 0servicemonitorCustomResourceDefinition.yaml │ │ ├── 0thanosrulerCustomResourceDefinition.yaml │ │ └── namespace.yaml │ ├── task_045__local__kind__extra_port_mappings/ │ │ ├── ReadMe.md │ │ ├── kind_nodeport_config.yaml │ │ └── pod.yaml │ ├── task_046__local__kind__nodeport_with_port_mapping/ │ │ ├── ReadMe.md │ │ ├── kind_config_node_port.yaml │ │ ├── pod.yaml │ │ └── svc.yaml │ ├── task_047__local__kind__ingress_nginx/ │ │ ├── ReadMe.md │ │ ├── ingress.yaml │ │ ├── kind_config_ingress_nginx.yaml │ │ ├── pod_bar_app.yaml │ │ ├── pod_foo_app.yaml │ │ ├── svc_bar.yaml │ │ └── svc_foo.yaml │ ├── task_048__local__kind__cilium__hubble_ui__nginx_ingress/ │ │ ├── ReadMe.md │ │ ├── ingress.yaml │ │ └── kind-config.yaml │ ├── task_049__openshift__deploy_sample_backend_app/ │ │ ├── ReadMe.md │ │ └── k8s-qotd-python/ │ │ ├── deploymentconfig.yaml │ │ ├── ingress.yaml │ │ ├── quotes-deployment.yaml │ │ ├── route.yaml │ │ └── service.yaml │ ├── task_050__local__kind__headless_svc/ │ │ ├── ReadMe.md │ │ ├── headless-svc.yaml │ │ └── nginx-pods.yaml │ ├── task_051__local__kind__linkerd/ │ │ └── ReadMe.md │ ├── task_052__local__kind__linkerd_with_custom_certs/ │ │ ├── ReadMe.md │ │ ├── ca.crt │ │ ├── ca.key │ │ ├── issuer.crt │ │ └── issuer.key │ ├── task_053__local__kind__linkerd_auto_rotate_control_plane_TLS_credentials/ │ │ ├── ReadMe.md │ │ ├── ca.crt │ │ ├── ca.key │ │ ├── certificate.yaml │ │ └── issuer.yaml │ ├── task_054__local__kind__linkerd_auto_rotate_webhook_tls_credentials/ │ │ ├── ReadMe.md │ │ ├── ca.crt │ │ ├── ca.key │ │ ├── certificate-linkerd-proxy-injector.yaml │ │ ├── certificate-linkerd-proxy-validator.yaml │ │ ├── certificate-linkerd-sp-validator.yaml │ │ ├── certificate-linkerd-tap-injector.yaml │ │ ├── certificate-tap.yaml │ │ ├── webhook-issuer-viz.yaml │ │ └── webhook-issuer.yaml │ ├── task_055__aws_eks__gcp_gke___istio_getting_started/ │ │ ├── ReadMe.md │ │ ├── gateway.yaml │ │ └── virtualservice.yaml │ ├── task_056__aws_eks__gcp_gke__istio__request_routing/ │ │ ├── ReadMe.md │ │ ├── concepts.md │ │ ├── destination-rule-all.yaml │ │ ├── virtual-service-all-v1.yaml │ │ └── virtual-service-reviews-test-v2.yaml │ ├── task_057__aws_eks__gcp_gke__istio__fault_injection__http_delay__http_abort/ │ │ ├── ReadMe.md │ │ ├── destination-rule-all.yaml │ │ ├── virtual-service-all-v1.yaml │ │ ├── virtual-service-ratings-test-abort.yaml │ │ ├── virtual-service-ratings-test-delay.yaml │ │ └── virtual-service-reviews-test-v2.yaml │ ├── task_058__aws_eks__gcp_gke__istio__traffic_shifting/ │ │ ├── ReadMe.md │ │ ├── destination-rule-all.yaml │ │ ├── virtual-service-all-v1.yaml │ │ ├── virtual-service-reviews-50-v3.yaml │ │ └── virtual-service-reviews-v3.yaml │ ├── task_059__aws_eks__gcp_gke__istio__request_timeouts/ │ │ ├── ReadMe.md │ │ ├── destination-rule-all.yaml │ │ └── virtual-service-all-v1.yaml │ ├── task_060__gcp_gke__istio__tcp_traffic_shifting/ │ │ ├── ReadMe.md │ │ ├── destination-rule-all.yaml │ │ └── virtual-service-all-v1.yaml │ ├── task_061__gcp_gke__istio__circuit_breaking/ │ │ ├── ReadMe.md │ │ └── fortio-deploy.yaml │ ├── task_062__gcp_gke__istio__mirroring/ │ │ ├── ReadMe.md │ │ └── fortio-deploy.yaml │ ├── task_063__gcp_gke__istio__ingress__ingress_gateways/ │ │ └── ReadMe.md │ ├── task_064__gcp_gke__istio__ingres__secure_gateways__TLS__mTLS/ │ │ ├── ReadMe.md │ │ └── helloworld.yaml │ ├── task_065__gcp_gke__ingress_gateway_without_TLS_Termination/ │ │ ├── ReadMe.md │ │ └── nginx.conf │ ├── task_066__gcp_gke__ingress_kubernetes_ingress/ │ │ └── ReadMe.md │ └── task_067__gcp_gke__egress__accessing_external_service/ │ └── ReadMe.md ├── databases/ │ ├── mongo/ │ │ ├── ReadMe-static.md │ │ ├── ReadMe.md │ │ └── taskset_mongo_databases/ │ │ ├── task_001_connecting_to_db/ │ │ │ └── ReadMe.md │ │ ├── task_002_creating_db_inserting_data/ │ │ │ └── ReadMe.md │ │ ├── task_003_mongodump/ │ │ │ └── ReadMe.md │ │ └── task_004_mongorestore/ │ │ └── ReadMe.md │ ├── mssql/ │ │ ├── ReadMe.md │ │ ├── ReadMe_static.md │ │ └── taskset_mssql_databases/ │ │ ├── ReadMe-static.md │ │ ├── task_000_docs_and_vscode_setup/ │ │ │ ├── ReadMe.md │ │ │ └── settings.json │ │ ├── task_001_connecting_to_db/ │ │ │ └── ReadMe.md │ │ ├── task_002_show_databases/ │ │ │ └── ReadMe.md │ │ ├── task_003_drop_database/ │ │ │ └── ReadMe.md │ │ ├── task_004_get_current_database/ │ │ │ └── ReadMe.md │ │ ├── task_005_create_database/ │ │ │ └── ReadMe.md │ │ ├── task_006_check_version/ │ │ │ └── ReadMe.md │ │ ├── task_007_create_database__if_not_exists__vars_navchar/ │ │ │ └── ReadMe.md │ │ ├── task_008_count_tables_in_database/ │ │ │ └── ReadMe.md │ │ ├── task_009_switch_to_particular_db/ │ │ │ └── ReadMe.md │ │ ├── task_010_create_table__if_not_exists/ │ │ │ └── ReadMe.md │ │ ├── task_011_insert_records__if_not_exists/ │ │ │ └── ReadMe.md │ │ ├── task_012_select_all_from_table/ │ │ │ └── ReadMe.md │ │ ├── task_013_create_credential_and_select_credential/ │ │ │ └── ReadMe.md │ │ ├── task_014_full_backup_to_s3_compatible_object_storage__with_format/ │ │ │ └── ReadMe.md │ │ ├── task_015_get_connection_info__kill/ │ │ │ └── ReadMe.md │ │ ├── task_016_full_backup_to_disk__with_format/ │ │ │ └── ReadMe.md │ │ ├── task_017_show_all_tables_in_specific_database/ │ │ │ └── ReadMe.md │ │ ├── task_018_inspect_backup_to_disk__with_init_and_differential/ │ │ │ └── ReadMe.md │ │ ├── task_019_restore_full_backup__from_disk/ │ │ │ └── ReadMe.md │ │ ├── task_020_full_backup_to_disk__with_init_and_differential/ │ │ │ └── ReadMe.md │ │ ├── task_021_restore_from_full_backup_on_disk__with_init_and_differential/ │ │ │ └── ReadMe.md │ │ ├── task_022_full_base_and_differential_backup_to_s3/ │ │ │ └── ReadMe.md │ │ ├── task_023_restore_full_base_and_differential_backup_to_s3/ │ │ │ └── ReadMe.md │ │ ├── task_024_get_current_date_and_time/ │ │ │ └── ReadMe.md │ │ ├── task_025_licence_and_version/ │ │ │ └── ReadMe.md │ │ ├── task_026_check_default_schema/ │ │ │ └── ReadMe.md │ │ ├── task_027_stored_procedures/ │ │ │ └── ReadMe.md │ │ ├── task_028_create_and_validate_jobs/ │ │ │ └── ReadMe.md │ │ ├── task_029_add_jobstep_and_validate/ │ │ │ └── ReadMe.md │ │ ├── task_030_add_job_schedule_and_validate/ │ │ │ └── ReadMe.md │ │ ├── task_031_attach_schedule_to_job_and_validate/ │ │ │ └── ReadMe.md │ │ ├── task_032_add_job_to_server_and_validate/ │ │ │ └── ReadMe.md │ │ ├── task_033_logical_backup/ │ │ │ └── ReadMe.md │ │ ├── task_034_check_when_tables_in_given_database_were_last_updated/ │ │ │ └── ReadMe.md │ │ ├── task_035_slow_queries/ │ │ │ └── ReadMe.md │ │ └── task_036_monitoring_using_influxdb_telegraf_grafana/ │ │ ├── ReadMe.md │ │ └── docker-compose.yaml │ ├── mysql/ │ │ ├── ReadMe.md │ │ ├── ReadMe_static.md │ │ └── taskset_mysql_databases/ │ │ ├── task_001_connecting_to_db/ │ │ │ └── ReadMe.md │ │ ├── task_002_mysqldump/ │ │ │ └── ReadMe.md │ │ ├── task_003_managing_databases/ │ │ │ └── ReadMe.md │ │ ├── task_004_managing_user/ │ │ │ └── ReadMe.md │ │ ├── task_005_set_transaction_isolation_levels/ │ │ │ └── ReadMe.md │ │ └── task_006_managing_tables/ │ │ └── ReadMe.md │ ├── oracle19c/ │ │ ├── ReadMe.md │ │ └── taskset_oracle19c_databases/ │ │ └── task_000_clients_setup/ │ │ ├── ReadMe.md │ │ └── wallet-unzipped/ │ │ ├── cwallet.sso │ │ ├── ewallet.p12 │ │ ├── keystore.jks │ │ ├── ojdbc.properties │ │ ├── sqlnet.ora │ │ ├── tnsnames.ora │ │ └── truststore.jks │ └── postgreSQL/ │ ├── ReadMe-static.md │ ├── ReadMe.md │ └── taskset_postgreSQL_databases/ │ ├── task_001_connecting_to_db/ │ │ └── ReadMe.md │ ├── task_002_managing_tables/ │ │ └── ReadMe.md │ ├── task_003_managing_users/ │ │ └── ReadMe.md │ ├── task_004_managing_database/ │ │ └── ReadMe.md │ ├── task_005_managing_schemas/ │ │ └── ReadMe.md │ ├── task_006_checking_deadlock/ │ │ └── ReadMe.md │ └── task_007_set__show__transaction_isolation_levels/ │ └── ReadMe.md ├── devops_blogs/ │ └── ReadMe.md ├── infrastructure_as_code/ │ ├── ansible/ │ │ ├── README.md │ │ ├── ReadMe-static.md │ │ ├── install-ansible.sh │ │ └── taskset_ansible_infrastructure_as_code/ │ │ ├── task_001_commons/ │ │ │ └── playbooks/ │ │ │ ├── ansible.cfg │ │ │ ├── inventory.ini │ │ │ ├── inventory.yml │ │ │ └── playbook-install-commons.yaml │ │ ├── task_002_datadog_agent/ │ │ │ └── playbooks/ │ │ │ ├── ansible.cfg │ │ │ ├── inventory.ini │ │ │ ├── inventory.yml │ │ │ ├── playbook-install-datadog.yaml │ │ │ └── roles/ │ │ │ └── datadog-agent/ │ │ │ ├── ReadMe.md │ │ │ ├── defaults/ │ │ │ │ └── main.yml │ │ │ ├── handlers/ │ │ │ │ └── main.yml │ │ │ ├── tasks/ │ │ │ │ ├── agent-linux.yml │ │ │ │ ├── agent-win.yml │ │ │ │ ├── agent5-linux.yml │ │ │ │ ├── integration.yml │ │ │ │ ├── main.yml │ │ │ │ ├── os-check.yml │ │ │ │ ├── parse-version.yml │ │ │ │ ├── pkg-debian/ │ │ │ │ │ ├── install-latest.yml │ │ │ │ │ └── install-pinned.yml │ │ │ │ ├── pkg-debian.yml │ │ │ │ ├── pkg-redhat/ │ │ │ │ │ ├── install-latest.yml │ │ │ │ │ └── install-pinned.yml │ │ │ │ ├── pkg-redhat.yml │ │ │ │ ├── pkg-suse/ │ │ │ │ │ ├── install-latest.yml │ │ │ │ │ └── install-pinned.yml │ │ │ │ ├── pkg-suse.yml │ │ │ │ ├── pkg-windows-opts.yml │ │ │ │ ├── pkg-windows.yml │ │ │ │ ├── set-parse-version.yml │ │ │ │ ├── win_agent_latest.yml │ │ │ │ └── win_agent_version.yml │ │ │ └── templates/ │ │ │ ├── checks.yaml.j2 │ │ │ ├── datadog.conf.j2 │ │ │ ├── datadog.yaml.j2 │ │ │ ├── system-probe.yaml.j2 │ │ │ └── zypper.repo.j2 │ │ ├── task_003_user/ │ │ │ └── playbooks/ │ │ │ ├── ansible.cfg │ │ │ ├── inventory.ini │ │ │ ├── inventory.yml │ │ │ ├── playbook-create-user.yaml │ │ │ └── roles/ │ │ │ └── user/ │ │ │ ├── ReadMe.md │ │ │ ├── defaults/ │ │ │ │ └── main.yml │ │ │ └── tasks/ │ │ │ ├── main.yml │ │ │ └── users.yml │ │ ├── task_004_directory/ │ │ │ └── playbooks/ │ │ │ ├── ansible.cfg │ │ │ ├── inventory.ini │ │ │ ├── inventory.yml │ │ │ ├── playbook-create-directory.yaml │ │ │ └── roles/ │ │ │ └── user/ │ │ │ ├── ReadMe.md │ │ │ ├── defaults/ │ │ │ │ └── main.yml │ │ │ └── tasks/ │ │ │ ├── main.yml │ │ │ └── users.yml │ │ ├── task_005_docker/ │ │ │ └── playbooks/ │ │ │ ├── ansible.cfg │ │ │ ├── docker-compose-install.yml │ │ │ ├── docker-drone-ci-setup.yml │ │ │ ├── drone-ci.yml │ │ │ ├── drone-runner.yml │ │ │ ├── inventory.ini │ │ │ ├── inventory.yml │ │ │ ├── monit-install.yml │ │ │ ├── playbook-create-directory.yaml │ │ │ ├── playbook-create-user.yaml │ │ │ ├── playbook-install-commons.yaml │ │ │ ├── playbook-install-datadog.yaml │ │ │ ├── playbook-install-docker_docker-compose.yaml │ │ │ ├── playbook-install-elastic-search-cluster-docker.yaml │ │ │ ├── playbook-install-jenkins-docker.yaml │ │ │ ├── playbook-install-kibana-docker.yaml │ │ │ ├── playbook-install-monit.yaml │ │ │ └── roles/ │ │ │ └── docker/ │ │ │ ├── README.md │ │ │ ├── defaults/ │ │ │ │ └── main.yml │ │ │ ├── handlers/ │ │ │ │ └── main.yml │ │ │ └── tasks/ │ │ │ ├── docker-compose.yml │ │ │ ├── docker-users.yml │ │ │ ├── main.yml │ │ │ ├── setup-Debian.yml │ │ │ └── setup-RedHat.yml │ │ ├── task_005_drone_ci/ │ │ │ └── playbooks/ │ │ │ ├── ansible.cfg │ │ │ ├── docker-drone-ci-setup.yml │ │ │ ├── drone-ci.yml │ │ │ ├── drone-runner.yml │ │ │ ├── inventory.ini │ │ │ ├── inventory.yml │ │ │ └── roles/ │ │ │ └── drone-ci/ │ │ │ ├── defaults/ │ │ │ │ └── main.yml │ │ │ ├── tasks/ │ │ │ │ └── main.yml │ │ │ └── templates/ │ │ │ ├── conf/ │ │ │ │ ├── docker-compose.yml │ │ │ │ └── server.env │ │ │ └── system/ │ │ │ └── drone.service │ │ ├── task_006_elastic_search_cluster_docker/ │ │ │ └── playbooks/ │ │ │ ├── ansible.cfg │ │ │ ├── inventory.ini │ │ │ ├── inventory.yml │ │ │ └── playbook-install-elastic-search-cluster-docker.yaml │ │ ├── task_007_jenkins_docker/ │ │ │ └── playbooks/ │ │ │ ├── ansible.cfg │ │ │ ├── inventory.ini │ │ │ ├── inventory.yml │ │ │ ├── playbook-install-jenkins-docker.yaml │ │ │ └── roles/ │ │ │ ├── commons/ │ │ │ │ ├── ReadMe.md │ │ │ │ ├── defaults/ │ │ │ │ │ └── main.yml │ │ │ │ └── tasks/ │ │ │ │ ├── Debian/ │ │ │ │ │ ├── install-atom-ide.yml │ │ │ │ │ ├── setup-Debian.yml │ │ │ │ │ └── setup-my-workstation.yml │ │ │ │ └── main.yml │ │ │ ├── directory/ │ │ │ │ ├── ReadMe.md │ │ │ │ ├── defaults/ │ │ │ │ │ └── main.yml │ │ │ │ └── tasks/ │ │ │ │ ├── configure.yml │ │ │ │ └── main.yml │ │ │ ├── docker/ │ │ │ │ ├── README.md │ │ │ │ ├── defaults/ │ │ │ │ │ └── main.yml │ │ │ │ ├── handlers/ │ │ │ │ │ └── main.yml │ │ │ │ └── tasks/ │ │ │ │ ├── docker-compose.yml │ │ │ │ ├── docker-users.yml │ │ │ │ ├── main.yml │ │ │ │ ├── setup-Debian.yml │ │ │ │ └── setup-RedHat.yml │ │ │ ├── jenkins-docker/ │ │ │ │ ├── defaults/ │ │ │ │ │ └── main.yml │ │ │ │ ├── handlers/ │ │ │ │ │ └── main.yaml │ │ │ │ ├── tasks/ │ │ │ │ │ ├── install-jenkins.yaml │ │ │ │ │ ├── main.yml │ │ │ │ │ └── plugins.yml │ │ │ │ └── templates/ │ │ │ │ ├── Caddyfile │ │ │ │ ├── docker-compose.yml │ │ │ │ ├── install-plugins.groovy │ │ │ │ └── plugins.txt │ │ │ └── user/ │ │ │ ├── ReadMe.md │ │ │ ├── defaults/ │ │ │ │ └── main.yml │ │ │ └── tasks/ │ │ │ ├── main.yml │ │ │ └── users.yml │ │ ├── task_008_kibana_docker/ │ │ │ └── playbooks/ │ │ │ ├── ansible.cfg │ │ │ ├── inventory.ini │ │ │ ├── inventory.yml │ │ │ ├── playbook-install-kibana-docker.yaml │ │ │ └── roles/ │ │ │ ├── commons/ │ │ │ │ ├── ReadMe.md │ │ │ │ ├── defaults/ │ │ │ │ │ └── main.yml │ │ │ │ └── tasks/ │ │ │ │ ├── Debian/ │ │ │ │ │ ├── install-atom-ide.yml │ │ │ │ │ ├── setup-Debian.yml │ │ │ │ │ └── setup-my-workstation.yml │ │ │ │ └── main.yml │ │ │ ├── directory/ │ │ │ │ ├── ReadMe.md │ │ │ │ ├── defaults/ │ │ │ │ │ └── main.yml │ │ │ │ └── tasks/ │ │ │ │ ├── configure.yml │ │ │ │ └── main.yml │ │ │ ├── docker/ │ │ │ │ ├── README.md │ │ │ │ ├── defaults/ │ │ │ │ │ └── main.yml │ │ │ │ ├── handlers/ │ │ │ │ │ └── main.yml │ │ │ │ └── tasks/ │ │ │ │ ├── docker-compose.yml │ │ │ │ ├── docker-users.yml │ │ │ │ ├── main.yml │ │ │ │ ├── setup-Debian.yml │ │ │ │ └── setup-RedHat.yml │ │ │ ├── kibana-docker/ │ │ │ │ ├── ReadMe.md │ │ │ │ ├── defaults/ │ │ │ │ │ └── main.yaml │ │ │ │ ├── handlers/ │ │ │ │ │ └── main.yaml │ │ │ │ ├── tasks/ │ │ │ │ │ ├── install-kibana.yaml │ │ │ │ │ └── main.yaml │ │ │ │ └── templates/ │ │ │ │ ├── docker-compose.yaml │ │ │ │ └── kibana.yml │ │ │ └── user/ │ │ │ ├── ReadMe.md │ │ │ ├── defaults/ │ │ │ │ └── main.yml │ │ │ └── tasks/ │ │ │ ├── main.yml │ │ │ └── users.yml │ │ └── task_009_monit/ │ │ └── playbooks/ │ │ ├── ansible.cfg │ │ ├── inventory.ini │ │ ├── inventory.yml │ │ ├── monit-install.yml │ │ └── roles/ │ │ └── monit/ │ │ ├── ReadMe.md │ │ ├── defaults/ │ │ │ └── main.yml │ │ ├── handlers/ │ │ │ └── main.yml │ │ ├── tasks/ │ │ │ ├── main.yml │ │ │ ├── os-check.yml │ │ │ ├── pkg-debian/ │ │ │ │ ├── install-monit-specific.yml │ │ │ │ └── install-monit.yml │ │ │ └── pkg-redhat/ │ │ │ └── install-monit.yaml │ │ └── templates/ │ │ └── monit/ │ │ ├── conf.d/ │ │ │ ├── sshd.conf │ │ │ └── system.conf │ │ ├── monit.id │ │ └── monitrc.conf │ └── terraform/ │ ├── aws/ │ │ ├── README.md │ │ ├── ReadMe-static.md │ │ ├── credentials.txt.example │ │ └── taskset_aws_terraform_infrastructure_as_code/ │ │ ├── task_000_initialization_setup/ │ │ │ └── ReadMe.md │ │ ├── task_001_vars_provider_ec2_dataSources/ │ │ │ ├── 00-vars.tf │ │ │ ├── 02-provider.tf │ │ │ ├── 05-instance.tf │ │ │ ├── ReadMe.md │ │ │ └── versions.tf │ │ ├── task_002_defaultVPC_sbnt_sg_kp_ec2/ │ │ │ ├── 00-var.tf │ │ │ ├── 05-vpc.tf │ │ │ ├── 15-subnet.tf │ │ │ ├── 25-security-group.tf │ │ │ ├── 30-keypair.tf │ │ │ ├── 35-ec2-instance.tf │ │ │ └── README.md │ │ ├── task_003_defaultVPC_kp_sbnt_sg_ec2_script/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 07-vpc.tf │ │ │ ├── 10-key-pair.tf │ │ │ ├── 15-subnet.tf │ │ │ ├── 20-security-group.tf │ │ │ ├── 25-instance.tf │ │ │ ├── ReadMe.md │ │ │ ├── script.sh │ │ │ └── versions.tf │ │ ├── task_004_vars_provider_ec2_output/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 10-instance.tf │ │ │ ├── ReadMe.md │ │ │ ├── private_ips.txt │ │ │ └── versions.tf │ │ ├── task_005_vars_provider_ec2_remoteStateInS3/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 10-instance.tf │ │ │ ├── 15-backend.tf │ │ │ ├── ReadMe.md │ │ │ └── versions.tf │ │ ├── task_006_defaultVPC_defaultSbnt_modules_kp/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 10-default_vpc.tf │ │ │ ├── 15-modules.tf │ │ │ ├── 20-key.tf │ │ │ ├── ReadMe.md │ │ │ ├── mykey │ │ │ ├── mykey.pub │ │ │ └── versions.tf │ │ ├── task_007_customVPC_igw_sbnt_rt_sg_kp_ec2/ │ │ │ ├── 00-var.tf │ │ │ ├── 05-vpc.tf │ │ │ ├── 10-igw.tf │ │ │ ├── 15-subnet.tf │ │ │ ├── 20-route-tables.tf │ │ │ ├── 25-security-group.tf │ │ │ ├── 30-keypair.tf │ │ │ ├── 35-ec2-instance.tf │ │ │ ├── README.md │ │ │ └── versions.tf │ │ ├── task_008_customVPC_3PriSbnts_3PubSbnts_nat_igw_rt/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 15-vpc.tf │ │ │ ├── 20-nat.tf │ │ │ ├── ReadMe.md │ │ │ └── versions.tf │ │ ├── task_009_customVPC_3PriSbnts_3PubSbnts_nat_igw_rt_ec2_ebs/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 15-vpc.tf │ │ │ ├── 16-securitygroup.tf │ │ │ ├── 17-key.tf │ │ │ ├── 20-nat.tf │ │ │ ├── 25-instance.tf │ │ │ ├── ReadMe.md │ │ │ └── versions.tf │ │ ├── task_010_customVPC_3PriSbnts_3PubSbnts_nat_igw_rt_ec2_ebs_withMount/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 15-vpc.tf │ │ │ ├── 16-securitygroup.tf │ │ │ ├── 17-key.tf │ │ │ ├── 20-nat.tf │ │ │ ├── 22-cloudinit.tf │ │ │ ├── 25-instance.tf │ │ │ ├── ReadMe.md │ │ │ ├── scripts/ │ │ │ │ ├── init.cfg │ │ │ │ └── volumes.sh │ │ │ └── versions.tf │ │ ├── task_011_route53/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 250-r53-devopslink_zone.tf │ │ │ ├── 30-output.tf │ │ │ ├── ReadMe.md │ │ │ └── versions.tf │ │ ├── task_012_rds_vpc_ec2/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 15-vpc.tf │ │ │ ├── 17-key.tf │ │ │ ├── 18-securitygroup.tf │ │ │ ├── 20-instance.tf │ │ │ ├── 25-rds.tf │ │ │ ├── 30-output.tf │ │ │ ├── ReadMe.md │ │ │ └── versions.tf │ │ ├── task_013_IAM/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 10-iam.tf │ │ │ ├── ReadMe.md │ │ │ └── versions.tf │ │ ├── task_014_IAM_roles_s3_upload_to_s3/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 10-iam.tf │ │ │ ├── 15-vpc.tf │ │ │ ├── 17-key.tf │ │ │ ├── 18-securitygroup.tf │ │ │ ├── 20-instance.tf │ │ │ ├── 25-s3.tf │ │ │ ├── 30-output.tf │ │ │ ├── ReadMe.md │ │ │ └── versions.tf │ │ ├── task_015_autoscaling_cloudwatchAlarm_ec2_launchConfiguration/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 15-vpc.tf │ │ │ ├── 17-key.tf │ │ │ ├── 18-securitygroup.tf │ │ │ ├── 20-autoscalingpolicy.tf │ │ │ ├── 25-autoscaling.tf │ │ │ ├── 30-sns.tf │ │ │ ├── ReadMe.md │ │ │ └── versions.tf │ │ ├── task_016_ELB_autoscaling/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 15-vpc.tf │ │ │ ├── 17-key.tf │ │ │ ├── 18-securitygroup.tf │ │ │ ├── 19-elb.tf │ │ │ ├── 20-autoscaling.tf │ │ │ ├── 30-output.tf │ │ │ ├── ReadMe.md │ │ │ └── versions.tf │ │ ├── task_017_Elastic_Beanstalk/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 10-iam.tf │ │ │ ├── 15-vpc.tf │ │ │ ├── 17-key.tf │ │ │ ├── 18-securitygroup.tf │ │ │ ├── 25-rds.tf │ │ │ ├── 28-elasticbeanstalk.tf │ │ │ ├── 30-output.tf │ │ │ ├── ReadMe.md │ │ │ └── versions.tf │ │ ├── task_018_create_ECR_repo/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 15-ecr.tf │ │ │ ├── ReadMe.md │ │ │ ├── output.tf │ │ │ └── versions.tf │ │ ├── task_019_ECS/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 10-iam.tf │ │ │ ├── 15-vpc.tf │ │ │ ├── 17-key.tf │ │ │ ├── 18-securitygroup.tf │ │ │ ├── 20-ecr.tf │ │ │ ├── 25-ecs.tf │ │ │ ├── 28-myapp.tf │ │ │ ├── 30-output.tf │ │ │ ├── templates/ │ │ │ │ └── app.json.tpl │ │ │ └── versions.tf │ │ ├── task_020_s3_iam_using_modules/ │ │ │ ├── ReadMe.md │ │ │ └── s3-bucket.tf │ │ ├── task_021_k8s_cluster_typhoon/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 25-cluster.tf │ │ │ ├── 30-output.tf │ │ │ └── ReadMe.md │ │ ├── task_022_route53_ec2/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-instance.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 10-route53.tf │ │ │ ├── 250-r53-devopslink_zone.tf │ │ │ ├── 30-output.tf │ │ │ ├── ReadMe.md │ │ │ └── versions.tf │ │ ├── task_023_terragrunt_ec2/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 10-ec2.tf │ │ │ ├── ReadMe.md │ │ │ └── run.sh │ │ ├── task_024_certificate_manager/ │ │ │ └── ReadMe.md │ │ ├── task_025_terragrunt_iam_user/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 10-iam-user.tf │ │ │ ├── ReadMe.md │ │ │ └── run.sh │ │ ├── task_026_terragrunt_s3_bucket/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 10-s3-bucket.tf │ │ │ ├── ReadMe.md │ │ │ ├── hello.txt │ │ │ └── run.sh │ │ ├── task_027_terragrunt_cdn/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 10-cdn.tf │ │ │ ├── ReadMe.md │ │ │ ├── index.html-rename-me-to-html │ │ │ ├── run.sh │ │ │ └── secret.tfvars.example │ │ ├── task_029_ec2_jenkins_instance_and_slave_instance/ │ │ │ ├── 00-vars.tf │ │ │ ├── 05-provider.tf │ │ │ ├── 10-data.tf │ │ │ ├── 101-ec2-jenkins.tf │ │ │ ├── 102-ec2-jenkins-slave.tf │ │ │ ├── 105-sg.tf │ │ │ ├── 15-key-pair.tf │ │ │ ├── ReadMe.md │ │ │ ├── jenkins.pem.pub │ │ │ └── run.sh │ │ ├── task_030_creating_eks/ │ │ │ ├── README.md │ │ │ ├── eks-cluster.tf │ │ │ ├── kubernetes-dashboard-admin.rbac.yaml │ │ │ ├── kubernetes.tf │ │ │ ├── outputs.tf │ │ │ ├── run.sh │ │ │ ├── security-groups.tf │ │ │ ├── versions.tf │ │ │ └── vpc.tf │ │ └── task_031_creating_eks_spot/ │ │ ├── README.md │ │ ├── eks-cluster.tf │ │ ├── kubernetes-dashboard-admin.rbac.yaml │ │ ├── kubernetes.tf │ │ ├── outputs.tf │ │ ├── run.sh │ │ ├── security-groups.tf │ │ ├── versions.tf │ │ └── vpc.tf │ ├── gcp/ │ │ ├── ReadMe-auto-v2.md │ │ ├── ReadMe.md │ │ ├── taskset_gcp_terraform_infrastructure_as_code/ │ │ │ ├── task_001_vpc_2inst_cloudshell/ │ │ │ │ ├── ReadMe.md │ │ │ │ ├── instance/ │ │ │ │ │ ├── main.tf │ │ │ │ │ └── variables.tf │ │ │ │ ├── mynetwork.tf │ │ │ │ └── provider.tf │ │ │ ├── task_002_1inst_dflt_vpc/ │ │ │ │ ├── ReadMe.md │ │ │ │ └── main.tf │ │ │ ├── task_003_vars_and_resource_dependencies/ │ │ │ │ ├── ReadMe.md │ │ │ │ ├── exp.tf │ │ │ │ ├── instance.tf │ │ │ │ ├── outputs.tf │ │ │ │ ├── provider.tf │ │ │ │ └── variables.tf │ │ │ ├── task_004_creating_remote_backend/ │ │ │ │ ├── ReadMe.md │ │ │ │ └── main.tf │ │ │ ├── task_005_deploy_k8s_loadbalancer_service/ │ │ │ │ ├── ReadMe.md │ │ │ │ ├── k8s.tf │ │ │ │ ├── main.tf │ │ │ │ ├── test.sh │ │ │ │ └── versions.tf │ │ │ ├── task_006_modular_load_balancing_regional_load_balancer/ │ │ │ │ ├── ReadMe.md │ │ │ │ ├── apply.log │ │ │ │ ├── main.tf │ │ │ │ ├── outputs.tf │ │ │ │ ├── terraform-google-lb/ │ │ │ │ │ └── examples/ │ │ │ │ │ └── basic/ │ │ │ │ │ ├── locals.tf │ │ │ │ │ ├── main.tf │ │ │ │ │ ├── network.tf │ │ │ │ │ ├── outputs.tf │ │ │ │ │ ├── provider.tf │ │ │ │ │ ├── templates/ │ │ │ │ │ │ └── gceme.sh.tpl │ │ │ │ │ ├── variables.tf │ │ │ │ │ └── versions.tf │ │ │ │ ├── variables.tf │ │ │ │ └── versions.tf │ │ │ ├── task_007_cloud_sql/ │ │ │ │ ├── ReadMe.md │ │ │ │ ├── main.tf │ │ │ │ ├── outputs.tf │ │ │ │ └── variables.tf │ │ │ └── task_008_building_a_vpn_between_gcp_and_aws/ │ │ │ ├── ReadMe.md │ │ │ └── autonetdeploy-multicloudvpn/ │ │ │ ├── aws_set_credentials.sh │ │ │ ├── create_instance.sh │ │ │ ├── gcp_set_credentials.sh │ │ │ ├── gcp_set_project.sh │ │ │ ├── get_terraform.sh │ │ │ ├── migrate_sa_roles.sh │ │ │ └── terraform/ │ │ │ ├── aws_compute.tf │ │ │ ├── aws_networking.tf │ │ │ ├── aws_outputs.tf │ │ │ ├── aws_security.tf │ │ │ ├── aws_variables.tf │ │ │ ├── gcp_compute.tf │ │ │ ├── gcp_networking.tf │ │ │ ├── gcp_outputs.tf │ │ │ ├── gcp_security.tf │ │ │ ├── gcp_variables.tf │ │ │ ├── main.tf │ │ │ ├── run_graph.sh │ │ │ └── vm_userdata.sh │ │ └── update-readme.php │ └── oci/ │ ├── ReadMe-static.md │ ├── ReadMe.md │ └── taskset_oci_terraform_infrastructure_as_code/ │ ├── task_000_initialization_setup/ │ │ ├── 00-vars.tf │ │ ├── ReadMe.md │ │ ├── availability-domains.tf │ │ ├── output.tf │ │ └── provider.tf │ ├── task_001_create_a_compartment/ │ │ ├── 00-vars.tf │ │ ├── 01-provider.tf │ │ ├── 02-compartments.tf │ │ ├── 03-outputs.tf │ │ └── ReadMe.md │ ├── task_002_create_vcn/ │ │ ├── 00-vars.tf │ │ ├── 01-provider.tf │ │ ├── 02-vcn-module.tf │ │ ├── 05-private-security-list.tf │ │ ├── 06-public-security-list.tf │ │ ├── 08-private-subnet.tf │ │ ├── 09-public-subnet.tf │ │ ├── 10-outputs.tf │ │ └── ReadMe.md │ └── task_003_create_instance/ │ ├── 00-vars.tf │ ├── 01-provider.tf │ ├── 02-compartments.tf │ ├── 03-outputs.tf │ ├── 04-compute.tf │ ├── ReadMe.md │ └── availability-domains.tf ├── interview/ │ ├── ReadMe-static.md │ ├── ReadMe.md │ └── coding_assignments/ │ ├── ReadMe.md │ └── taskset_coding_assignments_interview/ │ ├── ReadMe.md │ ├── task_001_nodejs_docker_app/ │ │ ├── ReadMe.md │ │ └── node_project/ │ │ ├── .dockerignore │ │ ├── Dockerfile │ │ ├── app.js │ │ ├── package.json │ │ └── views/ │ │ ├── css/ │ │ │ └── styles.css │ │ ├── index.html │ │ └── sharks.html │ ├── task_002_nodejs_mongo_docker/ │ │ ├── ReadMe.md │ │ └── node_project/ │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── app.js │ │ ├── controllers/ │ │ │ └── sharks.js │ │ ├── db.js │ │ ├── models/ │ │ │ └── sharks.js │ │ ├── package.json │ │ ├── routes/ │ │ │ ├── index.js │ │ │ └── sharks.js │ │ └── views/ │ │ ├── css/ │ │ │ └── styles.css │ │ ├── getshark.html │ │ ├── index.html │ │ └── sharks.html │ ├── task_003_nodejs_mongo_docker_compose/ │ │ ├── README.md │ │ └── node_project/ │ │ ├── .dockerignore │ │ ├── .gitignore │ │ ├── Dockerfile │ │ ├── app.js │ │ ├── controllers/ │ │ │ └── sharks.js │ │ ├── db.js │ │ ├── docker-compose.yaml │ │ ├── models/ │ │ │ └── sharks.js │ │ ├── package.json │ │ ├── routes/ │ │ │ ├── index.js │ │ │ └── sharks.js │ │ ├── views/ │ │ │ ├── css/ │ │ │ │ └── styles.css │ │ │ ├── getshark.html │ │ │ ├── index.html │ │ │ └── sharks.html │ │ └── wait-for.sh │ ├── task_004_nodejs_mongo_k8s/ │ │ ├── README.md │ │ ├── db-deployment.yaml │ │ ├── db-service.yaml │ │ ├── dbdata-persistentvolumeclaim.yaml │ │ ├── node_project/ │ │ │ ├── .dockerignore │ │ │ ├── .gitignore │ │ │ ├── Dockerfile │ │ │ ├── app.js │ │ │ ├── controllers/ │ │ │ │ └── sharks.js │ │ │ ├── db.js │ │ │ ├── docker-compose.yaml │ │ │ ├── models/ │ │ │ │ └── sharks.js │ │ │ ├── package.json │ │ │ ├── routes/ │ │ │ │ ├── index.js │ │ │ │ └── sharks.js │ │ │ ├── views/ │ │ │ │ ├── css/ │ │ │ │ │ └── styles.css │ │ │ │ ├── getshark.html │ │ │ │ ├── index.html │ │ │ │ └── sharks.html │ │ │ └── wait-for.sh │ │ ├── nodejs-deployment.yaml │ │ ├── nodejs-env-configmap.yaml │ │ ├── nodejs-service.yaml │ │ └── secret.yaml │ ├── task_005_nodejs_mongo_k8s_helm_scale/ │ │ ├── README.md │ │ ├── mongodb-values.yaml │ │ ├── node_project/ │ │ │ ├── .dockerignore │ │ │ ├── .gitignore │ │ │ ├── Dockerfile │ │ │ ├── app.js │ │ │ ├── controllers/ │ │ │ │ └── sharks.js │ │ │ ├── db.js │ │ │ ├── docker-compose.yaml │ │ │ ├── models/ │ │ │ │ └── sharks.js │ │ │ ├── package.json │ │ │ ├── routes/ │ │ │ │ ├── index.js │ │ │ │ └── sharks.js │ │ │ ├── views/ │ │ │ │ ├── css/ │ │ │ │ │ └── styles.css │ │ │ │ ├── getshark.html │ │ │ │ ├── index.html │ │ │ │ └── sharks.html │ │ │ └── wait-for.sh │ │ ├── nodeapp/ │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── templates/ │ │ │ │ ├── NOTES.txt │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── configmap.yaml │ │ │ │ ├── deployment.yaml │ │ │ │ ├── hpa.yaml │ │ │ │ ├── ingress.yaml │ │ │ │ ├── secret.yaml │ │ │ │ ├── service.yaml │ │ │ │ ├── serviceaccount.yaml │ │ │ │ └── tests/ │ │ │ │ └── test-connection.yaml │ │ │ └── values.yaml │ │ ├── resources-app.yaml │ │ ├── resources-db.yaml │ │ └── secret.yaml │ ├── task_006_nginx_docker/ │ │ ├── Dockerfile │ │ ├── ReadMe.md │ │ ├── conf.d/ │ │ │ └── default.conf │ │ └── html/ │ │ └── index.html │ ├── task_007_eks_on_demand/ │ │ ├── README.md │ │ ├── credentials.txt.example │ │ ├── eks-cluster.tf │ │ ├── kubernetes-dashboard-admin.rbac.yaml │ │ ├── kubernetes.tf │ │ ├── outputs.tf │ │ ├── run.sh │ │ ├── security-groups.tf │ │ ├── versions.tf │ │ └── vpc.tf │ ├── task_008_k8s_nginx/ │ │ ├── ReadMe.md │ │ ├── dep.yaml │ │ ├── hpa.yaml │ │ ├── ingress.yaml │ │ └── nginx-svc-nodeport.yaml │ ├── task_009_eks_spot_and_on_demand/ │ │ ├── README.md │ │ ├── credentials.txt.example │ │ ├── eks-cluster.tf │ │ ├── kubernetes-dashboard-admin.rbac.yaml │ │ ├── kubernetes.tf │ │ ├── outputs.tf │ │ ├── run.sh │ │ ├── security-groups.tf │ │ ├── versions.tf │ │ └── vpc.tf │ └── task_010_logging_and_monitoring/ │ ├── ReadMe.md │ ├── nginx.yaml │ └── values.yaml ├── observability/ │ ├── ReadMe.md │ ├── metrics/ │ │ ├── README.md │ │ └── taskset_metrics_observability/ │ │ ├── task_001_host/ │ │ │ └── ReadMe.md │ │ ├── task_002_system/ │ │ │ └── ReadMe.md │ │ └── task_003_kubernetes/ │ │ └── ReadMe.md │ ├── opentelemetry/ │ │ ├── ReadMe.md │ │ └── taskset_opentelemetry_observability/ │ │ ├── task_001_go_dice__traces_and_metrics_to_console/ │ │ │ ├── ReadMe.md │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── main.go │ │ │ ├── otel.go │ │ │ └── rolldice.go │ │ └── task_002_go__traces_gRPC_OTLP__jaeger/ │ │ ├── ReadMe.md │ │ ├── go.mod │ │ ├── go.sum │ │ └── main.go │ └── prometheus/ │ ├── ReadMe.md │ └── taskset_prometheus_observability/ │ ├── task_001_getting_started_with_prometheus/ │ │ ├── ReadMe.md │ │ ├── prometheus_1.yml │ │ └── prometheus_2.yml │ ├── task_002_understanding_metric_types/ │ │ └── ReadMe.md │ └── task_003_instrumenting_http_server_in_go/ │ ├── ReadMe.md │ ├── go.mod │ ├── go.sum │ ├── prometheus.yml │ └── server.go ├── os_and_concepts/ │ ├── ReadMe.md │ ├── commands_linux/ │ │ ├── ReadMe.md │ │ └── taskset_commands_linux_os_and_concepts/ │ │ ├── task_001_arp/ │ │ │ └── ReadMe.md │ │ ├── task_002_awk/ │ │ │ └── ReadMe.md │ │ ├── task_003_chage/ │ │ │ └── ReadMe.md │ │ ├── task_004_chmod/ │ │ │ └── ReadMe.md │ │ ├── task_005_chown/ │ │ │ └── ReadMe.md │ │ ├── task_006_cksum/ │ │ │ └── ReadMe.md │ │ ├── task_007_clear/ │ │ │ └── ReadMe.md │ │ ├── task_008_cp/ │ │ │ └── ReadMe.md │ │ ├── task_009_crontab/ │ │ │ └── ReadMe.md │ │ ├── task_010_curl/ │ │ │ └── ReadMe.md │ │ ├── task_011_cut/ │ │ │ └── ReadMe.md │ │ ├── task_012_df/ │ │ │ └── ReadMe.md │ │ ├── task_013_diff/ │ │ │ └── ReadMe.md │ │ ├── task_014_dig/ │ │ │ └── ReadMe.md │ │ ├── task_015_dir/ │ │ │ └── ReadMe.md │ │ ├── task_016_dos2unix/ │ │ │ └── ReadMe.md │ │ ├── task_017_du/ │ │ │ └── ReadMe.md │ │ ├── task_018_export/ │ │ │ └── ReadMe.md │ │ ├── task_019_fc/ │ │ │ └── ReadMe.md │ │ ├── task_020_find/ │ │ │ └── ReadMe.md │ │ ├── task_021_firewall_cmd/ │ │ │ └── ReadMe.md │ │ ├── task_022_free/ │ │ │ └── ReadMe.md │ │ ├── task_023_ftp/ │ │ │ └── ReadMe.md │ │ ├── task_024_git/ │ │ │ └── ReadMe.md │ │ ├── task_025_gunzip_gzip/ │ │ │ └── ReadMe.md │ │ ├── task_026_head/ │ │ │ └── ReadMe.md │ │ ├── task_027_history/ │ │ │ └── ReadMe.md │ │ ├── task_028_host/ │ │ │ └── ReadMe.md │ │ ├── task_029_hostname/ │ │ │ └── ReadMe.md │ │ ├── task_030_ifconfig/ │ │ │ └── ReadMe.md │ │ ├── task_031_ip/ │ │ │ └── ReadMe.md │ │ ├── task_032_jar/ │ │ │ └── ReadMe.md │ │ ├── task_033_jobs/ │ │ │ └── ReadMe.md │ │ ├── task_034_jq/ │ │ │ ├── ReadMe.md │ │ │ ├── example1.json │ │ │ ├── example2.json │ │ │ ├── example3.json │ │ │ └── example4.json │ │ ├── task_035_jstack/ │ │ │ └── ReadMe.md │ │ ├── task_036_keytool/ │ │ │ └── ReadMe.md │ │ ├── task_037_ln/ │ │ │ └── ReadMe.md │ │ ├── task_038_lsof/ │ │ │ └── ReadMe.md │ │ ├── task_039_mail/ │ │ │ └── ReadMe.md │ │ ├── task_040_mkdir/ │ │ │ └── ReadMe.md │ │ ├── task_041_mount/ │ │ │ └── ReadMe.md │ │ ├── task_042_nc/ │ │ │ └── ReadMe.md │ │ ├── task_043_netstat/ │ │ │ └── ReadMe.md │ │ ├── task_044_nmap/ │ │ │ └── ReadMe.md │ │ ├── task_045_nohup/ │ │ │ └── ReadMe.md │ │ ├── task_046_nslookup/ │ │ │ └── ReadMe.md │ │ ├── task_047_openssl/ │ │ │ └── ReadMe.md │ │ ├── task_048_passwd/ │ │ │ └── ReadMe.md │ │ ├── task_049_ping/ │ │ │ └── ReadMe.md │ │ ├── task_050_ps/ │ │ │ └── ReadMe.md │ │ ├── task_051_rm/ │ │ │ └── ReadMe.md │ │ ├── task_052_route/ │ │ │ └── ReadMe.md │ │ ├── task_053_rsync/ │ │ │ └── ReadMe.md │ │ ├── task_054_scp/ │ │ │ └── ReadMe.md │ │ ├── task_055_sed/ │ │ │ └── ReadMe.md │ │ ├── task_056_sh/ │ │ │ └── ReadMe.md │ │ ├── task_057_setenforce/ │ │ │ └── ReadMe.md │ │ ├── task_058_sort/ │ │ │ └── ReadMe.md │ │ ├── task_059_ssh/ │ │ │ └── ReadMe.md │ │ ├── task_060_sudo/ │ │ │ └── ReadMe.md │ │ ├── task_061_sysctl/ │ │ │ └── ReadMe.md │ │ ├── task_062_system/ │ │ │ └── ReadMe.md │ │ ├── task_063_systemctl/ │ │ │ └── ReadMe.md │ │ ├── task_064_tail/ │ │ │ └── ReadMe.md │ │ ├── task_065_tar/ │ │ │ └── ReadMe.md │ │ ├── task_066_tee/ │ │ │ └── ReadMe.md │ │ ├── task_067_telnet/ │ │ │ └── ReadMe.md │ │ ├── task_068_gradle/ │ │ │ └── ReadMe.md │ │ ├── task_069_tr/ │ │ │ └── ReadMe.md │ │ ├── task_070_traceroute/ │ │ │ └── ReadMe.md │ │ ├── task_071_top/ │ │ │ └── ReadMe.md │ │ ├── task_072_tty/ │ │ │ └── ReadMe.md │ │ ├── task_073_ulimit/ │ │ │ └── ReadMe.md │ │ ├── task_074_umask/ │ │ │ └── ReadMe.md │ │ ├── task_075_uname/ │ │ │ └── ReadMe.md │ │ ├── task_076_uniq/ │ │ │ └── ReadMe.md │ │ ├── task_077_unzip/ │ │ │ └── ReadMe.md │ │ ├── task_078_uptime/ │ │ │ └── ReadMe.md │ │ ├── task_079_vi/ │ │ │ └── ReadMe.md │ │ ├── task_080_vmstat/ │ │ │ └── ReadMe.md │ │ ├── task_081_wall/ │ │ │ └── ReadMe.md │ │ ├── task_082_wc/ │ │ │ └── ReadMe.md │ │ ├── task_083_wget/ │ │ │ └── ReadMe.md │ │ ├── task_084_whatis/ │ │ │ └── ReadMe.md │ │ ├── task_085_whereis/ │ │ │ └── ReadMe.md │ │ ├── task_086_which/ │ │ │ └── ReadMe.md │ │ ├── task_087_xargs/ │ │ │ └── ReadMe.md │ │ ├── task_088_zcat/ │ │ │ └── ReadMe.md │ │ ├── task_089_zip/ │ │ │ └── ReadMe.md │ │ ├── task_090_ansible/ │ │ │ └── ReadMe.md │ │ ├── task_091_terraform/ │ │ │ └── ReadMe.md │ │ ├── task_092_kubectl/ │ │ │ ├── ReadMe-static.md │ │ │ ├── ReadMe-table.md │ │ │ └── ReadMe.md │ │ ├── task_093_kustomize/ │ │ │ └── ReadMe.md │ │ ├── task_094_helm/ │ │ │ └── ReadMe.md │ │ ├── task_095_7z/ │ │ │ └── ReadMe.md │ │ ├── task_096_grep/ │ │ │ └── ReadMe.md │ │ ├── task_097_egrep/ │ │ │ └── ReadMe.md │ │ ├── task_098_growpart/ │ │ │ └── ReadMe.md │ │ ├── task_099_resize2fs/ │ │ │ └── ReadMe.md │ │ ├── task_100_lsblk/ │ │ │ └── ReadMe.md │ │ ├── task_101_kops/ │ │ │ └── ReadMe.md │ │ ├── task_102_mongo/ │ │ │ └── ReadMe.md │ │ ├── task_103_mongorestore/ │ │ │ └── ReadMe.md │ │ ├── task_104_mysql/ │ │ │ └── ReadMe.md │ │ ├── task_105_mysqldump/ │ │ │ └── ReadMe.md │ │ ├── task_106_ssh_keygen/ │ │ │ └── ReadMe.md │ │ ├── task_107_iptables/ │ │ │ └── ReadMe.md │ │ ├── task_108_adduser/ │ │ │ └── ReadMe.md │ │ ├── task_109_chgrp/ │ │ │ └── ReadMe.md │ │ ├── task_110_sqlcmd/ │ │ │ └── ReadMe.md │ │ ├── task_111_tcpdump/ │ │ │ └── ReadMe.md │ │ ├── task_112_step/ │ │ │ └── ReadMe.md │ │ ├── task_113_set/ │ │ │ ├── ReadMe.md │ │ │ ├── called_script.sh │ │ │ ├── caller_script.sh │ │ │ ├── using_set_eu_with_pipefail.sh │ │ │ ├── with_pipefail.sh │ │ │ └── without_pipefail.sh │ │ ├── task_114_mvn/ │ │ │ └── ReadMe.md │ │ ├── task_115_source/ │ │ │ ├── 1.sh │ │ │ ├── 2.sh │ │ │ └── ReadMe.md │ │ ├── task_116_whoami/ │ │ │ └── ReadMe.md │ │ ├── task_117_who/ │ │ │ └── ReadMe.md │ │ ├── task_118_last/ │ │ │ └── ReadMe.md │ │ ├── task_119_az/ │ │ │ └── ReadMe.md │ │ ├── task_120_dpkg/ │ │ │ └── ReadMe.md │ │ ├── task_121_cat/ │ │ │ └── ReadMe.md │ │ ├── task_122_tar/ │ │ │ └── ReadMe.md │ │ ├── task_123_code/ │ │ │ └── ReadMe.md │ │ ├── task_124_unset/ │ │ │ └── ReadMe.md │ │ ├── task_125_ssh_keygen/ │ │ │ └── ReadMe.md │ │ ├── task_126_command/ │ │ │ └── ReadMe.md │ │ ├── task_127_shasum/ │ │ │ └── ReadMe.md │ │ ├── task_128_sh/ │ │ │ └── ReadMe.md │ │ ├── task_129_yq/ │ │ │ └── ReadMe.md │ │ ├── task_130_basename/ │ │ │ └── ReadMe.md │ │ └── task_131_readlink/ │ │ └── ReadMe.md │ ├── commands_windows/ │ │ ├── ReadMe-static.md │ │ ├── ReadMe.md │ │ └── taskset_commands_windows_os_and_concepts/ │ │ ├── task_001_systeminfo/ │ │ │ └── ReadMe.md │ │ ├── task_002_dir/ │ │ │ └── ReadMe.md │ │ ├── task_003_findstr/ │ │ │ └── ReadMe.md │ │ ├── task_004_del/ │ │ │ └── ReadMe.md │ │ ├── task_005_rmdir/ │ │ │ └── ReadMe.md │ │ ├── task_006_echo/ │ │ │ └── ReadMe.md │ │ └── task_007_setx/ │ │ └── ReadMe.md │ └── concepts_linux/ │ ├── ReadMe.md │ └── taskset_concepts_linux_os_and_concepts/ │ ├── task_001_etc_os_release_file/ │ │ └── ReadMe.md │ ├── task_002_etc_passwd/ │ │ └── ReadMe.md │ ├── task_003_etc_group/ │ │ └── ReadMe.md │ ├── task_003_etc_sudoers/ │ │ └── ReadMe.md │ ├── task_004_etc_hosts/ │ │ └── ReadMe.md │ ├── task_005_etc_resolv.conf/ │ │ └── ReadMe.md │ ├── task_006_proc_sys_net_ipv4_ip_forward/ │ │ └── ReadMe.md │ ├── task_007_etc_sysctl.conf/ │ │ └── ReadMe.md │ ├── task_008_special_variables/ │ │ └── ReadMe.md │ ├── task_009_etc_fstab/ │ │ └── ReadMe.md │ ├── task_010_shebang_character/ │ │ └── ReadMe.md │ ├── task_011_redirection/ │ │ └── ReadMe.md │ ├── task_012_eof_here_doc/ │ │ └── ReadMe.md │ └── task_013_referring_documentation/ │ └── ReadMe.md ├── productivity_tools/ │ ├── ReadMe-static.md │ ├── ReadMe.md │ └── taskset_productivity_tools/ │ ├── task_000_setting_up_terminal/ │ │ └── ReadMe.md │ ├── task_001_visualizing_subnets_in_vpc/ │ │ └── ReadMe.md │ ├── task_002_visualizing_k8s_using_dashboard/ │ │ └── ReadMe.md │ ├── task_003_if_IP_belongs_to_CIDR/ │ │ └── ReadMe.md │ ├── task_004_virtual_box/ │ │ └── ReadMe.md │ └── task_005_productivity_shortcuts/ │ ├── ReadMe-bkp.md │ └── ReadMe.md ├── security/ │ └── trivy/ │ ├── ReadMe.md │ └── taskset_trivy_security/ │ └── task_001_scans/ │ └── ReadMe.md └── web_servers/ └── nginx/ ├── ReadMe.md └── taskset_nginx_web_servers/ ├── task_001_running_nginx/ │ └── running-nginx.md ├── task_002_nginx_docker_compose_hello_world/ │ ├── docker-compose.yaml │ ├── nginx-docker-compose-hello-world.md │ └── src/ │ └── index.html ├── task_003_nginx_conf/ │ ├── ReadMe.md │ ├── conf.d/ │ │ └── default.conf │ └── html/ │ └── index.html └── task_004_return_different_http_codes/ ├── Dockerfile ├── ReadMe.md ├── conf.d/ │ └── default.conf └── html/ └── index.html