├── .github └── workflows │ └── release.yaml ├── .gitignore ├── .gitmodules ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── archetypes └── default.md ├── config.toml ├── content ├── 05_introduction │ ├── 10_introduction.md │ ├── 20_about_weaveworks.md │ └── _index.md ├── 100_Cleanup │ ├── 10_cleanup.md │ └── _index.md ├── 10_aws_prerequisites │ ├── 10_aws_event.md │ ├── 20_self_paced.md │ └── _index.md ├── 20_weaveworks_prerequisites │ ├── 10_workspace.md │ ├── 11_install_eksctl.md │ ├── 12_install_kubectl.md │ ├── 13_install_helm.md │ ├── 14_install_fluxctl.md │ ├── 15_install_kustomize.md │ ├── 16_install_aws-iam.md │ ├── 17_create_iam_policy_and_role.md │ ├── 18_attach_the_role.md │ ├── 50_workspaceiam.md │ └── _index.md ├── 22_workshop_1 │ ├── 10_setup_gitops_prequisites │ │ ├── 11_enable_git_access.md │ │ └── _index.md │ ├── 20_create_cluster │ │ ├── 21-create-cluster.md │ │ └── _index.md │ ├── 30_gitops_enable │ │ ├── 33_using_flux_v2.md │ │ ├── 34_update_flux_for_demo.md │ │ └── _index.md │ ├── 40_deploy_sample_app │ │ ├── 41_Import_k8s_labels_annotations.md │ │ └── _index.md │ └── _index.md ├── 25_workshop_2_HA-DR │ ├── 01_prerequisites │ │ └── _index.md │ ├── 20_create_git_repo │ │ └── _index.md │ ├── 30_create_two_clusters │ │ └── _index.md │ ├── 40_gitops_enable_clusters │ │ ├── 41_enable_gitops.md │ │ └── _index.md │ ├── 50_add_yamls │ │ ├── 10_alb_ingress.md │ │ ├── 20_hello_kubernetes_introduction.md │ │ ├── 21_hello_kubernetes_deploy.md │ │ ├── 22_hello_kubernetes_hpa.md │ │ ├── 25_check_everything.md │ │ └── _index.md │ ├── 60_test_ingresses │ │ └── _index.md │ ├── 70_adjust_hpa │ │ └── _index.md │ ├── 80_configure_route53 │ │ └── _index.md │ └── _index.md ├── 30_workshop_03_grc │ ├── 010_prerequisites │ │ └── _index.md │ ├── 120_deploy_opa_gatekeeper │ │ ├── 20_intro-to-opa.md │ │ ├── 30_deploy-opa-gatekeeper.md │ │ ├── _index.md │ │ └── deploy.files │ │ │ ├── allowed-repos-policy.yaml │ │ │ ├── allowed-repos-template.yaml │ │ │ ├── bad-namespace-example.yaml │ │ │ ├── opa-gatekeeper-deployment.yaml │ │ │ ├── pod-aunauthorized-repo-example.yaml │ │ │ ├── required-labels-policy.yaml │ │ │ └── required-labels-template.yaml │ ├── 125_create_policy_templates │ │ ├── 20_creating-contraint-template.md │ │ └── _index.md │ ├── 130_create_policy_contraints │ │ ├── _index.md │ │ └── creating-contraints.md │ ├── 140_test-policy-contraints │ │ ├── 20_deploy-test-apps.md │ │ └── _index.md │ ├── 150_iam-groups │ │ ├── 10_intro.md │ │ ├── 20_create-iam-roles.md │ │ ├── 21_create-iam-groups.md │ │ ├── 22_create_iam_users.md │ │ ├── 30_create-k8s-rbac.md │ │ ├── 31_configure-aws-auth.md │ │ ├── 40_test-cluster-access.md │ │ ├── 70_cleanup.md │ │ ├── _index.md │ │ └── deploy.files │ │ │ ├── development-ns.yaml │ │ │ └── integration-ns.yaml │ ├── _index.md │ └── deploy.files │ │ ├── allowed-repos-policy.yaml │ │ ├── allowed-repos-template.yaml │ │ ├── bad-namespace-example.yaml │ │ ├── development-ns.yaml │ │ ├── integration-ns.yaml │ │ ├── opa-gatekeeper-deployment.yaml │ │ ├── pod-aunauthorized-repo-example.yaml │ │ ├── required-labels-policy.yaml │ │ └── required-labels-template.yaml ├── 40_workshop_4_hipo-teams │ ├── 01_prerequisites │ │ └── _index.md │ ├── 20_create-eks-cluster │ │ └── _index.md │ ├── 30_gitops_enable_clusters │ │ ├── 10_create-github.md │ │ ├── 30_enable_gitops.md │ │ ├── 40_verify_flux_op.md │ │ └── _index.md │ ├── 40_install-app-mesh │ │ ├── 10_create_namespace.md │ │ ├── 20_install_appmesh_crds.md │ │ ├── 30_install_appmesh_controller.md │ │ ├── 40_install_appmesh_injector.md │ │ ├── 50_install_appmesh_prometheus.md │ │ ├── 90_verify_mesh.md │ │ └── _index.md │ ├── 50_install_container_insights │ │ ├── 10_create_namespace.md │ │ ├── 20_install_container_insights.md │ │ ├── 30_verify_container_insights.md │ │ ├── 40_explore_container_insights.md │ │ └── _index.md │ ├── 60_install-pod-info │ │ ├── 10_about_podinfo.md │ │ ├── 20_create_namespace.md │ │ ├── 30_create_podinfo.md │ │ ├── 40_add_app_mesh.md │ │ ├── 50_verify_app_mesh.md │ │ ├── 60_test_routing.md │ │ ├── 70_update_routing.md │ │ ├── 80_revert_routing.md │ │ ├── 90_app_mesh_perf.md │ │ ├── _index.md │ │ └── deploy.files │ │ │ ├── 1-podinfo.yaml │ │ │ ├── 2-podinfo-virtual-nodes.yaml │ │ │ ├── 3-podinfo-virtual-services.yaml │ │ │ └── 4-podinfo-placeholder-services.yaml │ └── _index.md ├── 50_workshop_5_accelerating_sdlc │ ├── 00_prerequisites.md │ │ ├── 01_create_workspace.md │ │ ├── 10_install_eksctl.md │ │ ├── 20_install_kubectl.md │ │ ├── 30_install_fluxctl.md │ │ ├── 40_install_kustomize.md │ │ ├── 50_install_aws_iam_auth.md │ │ ├── 60_add_iam_role.md │ │ ├── 70_workspace_iam.md │ │ └── _index.md │ ├── 10_create_cluster │ │ ├── 01_create_eks_cluster.md │ │ └── _index.md │ ├── 15_deployment_strategies │ │ ├── 01_recreate.md │ │ ├── 02_rolling_update.md │ │ ├── 03_blue_green.md │ │ ├── 04_canary.md │ │ └── _index.md │ ├── 20_enable_gitops │ │ ├── 01_create_git_repo.md │ │ ├── 02_eksctl_enable_repo.md │ │ └── _index.md │ ├── 30_install_appmesh │ │ ├── 01_install_app_mesh.md │ │ ├── 02_sync_repo.md │ │ └── _index.md │ ├── 40_progressive_delivery │ │ ├── 01_install_podinfo.md │ │ ├── 02_review_flagger.md │ │ ├── 03_canary_release.md │ │ ├── 04_canary_rollback.md │ │ └── _index.md │ └── _index.md ├── 60_workshop_6_ml │ ├── 00_prerequisites.md │ │ ├── 01_create_workspace.md │ │ ├── 10_install_eksctl.md │ │ ├── 20_install_kubectl.md │ │ ├── 30_install_fluxctl.md │ │ ├── 40_install_kustomize.md │ │ ├── 50_install_aws_iam_auth.md │ │ ├── 60_add_iam_role.md │ │ ├── 70_workspace_iam.md │ │ └── _index.md │ ├── 05_setup │ │ ├── 01_git-config-ssh-key.md │ │ └── _index.md │ ├── 10_create_cluster │ │ ├── 01_create_eks_cluster.md │ │ └── _index.md │ ├── 20_enable_gitops │ │ ├── 01_create_git_repo.md │ │ ├── 02_eksctl_enable_repo.md │ │ └── _index.md │ ├── 30_deploy_appdev_profile │ │ ├── 01_app_dev.md │ │ └── _index.md │ ├── 40_kubeflow │ │ ├── 01_install_kubeflow.md │ │ └── _index.md │ ├── 50_titanic_sample_application │ │ ├── 01_aws_k8s-setup.md │ │ ├── 02_kubeflow_ui.md │ │ ├── 03_build model.md │ │ ├── 04_build pipeline.md │ │ ├── 05_run.md │ │ └── _index.md │ └── _index.md ├── 70_workshop_7_multicloud │ ├── 10_prerequisites │ │ ├── 10_workspace.md │ │ ├── 11_add_the_role.md │ │ ├── 12_install_aws-iam.md │ │ ├── 13_workspaceiam.md │ │ ├── 14_install_eksctl.md │ │ ├── 15_create_eks_cluster.md │ │ ├── 16_install_kubectl.md │ │ ├── 17_install_helm.md │ │ ├── 18_install_fluxctl.md │ │ ├── 19_direnv.md │ │ ├── 20_clusterctl.md │ │ └── _index.md │ ├── 15_setup_git_repo │ │ └── _index.md │ ├── 20_credentials │ │ └── _index.md │ ├── 30_bootstrap_management_cluster │ │ └── _index.md │ ├── 31_add_yamls │ │ └── _index.md │ ├── 40_gitops_enable_clusters │ │ └── _index.md │ ├── 50_cleanup │ │ └── _index.md │ └── _index.md ├── 80_workshop_8_hybrid_ssp │ ├── 00_prerequisites │ │ └── _index.md │ ├── 05_architecture │ │ └── _index.md │ ├── 10_create_eksd_cluster │ │ └── _index.md │ ├── 15_connect_development_cluster │ │ └── _index.md │ ├── 20_create_infrastructure_repository │ │ └── _index.md │ ├── 25_enable_cluster_gitops │ │ └── _index.md │ ├── 30_onboard_your_clusters │ │ └── _index.md │ ├── 50_promote_releases │ │ └── _index.md │ └── _index.md ├── 90_workshop_9_multistage_ssp │ ├── 00_prerequisites │ │ └── _index.md │ ├── 10_create_ssp_repository │ │ └── _index.md │ ├── 20_add_core_components │ │ └── _index.md │ ├── 30_create_team_base │ │ └── _index.md │ ├── 40_onboard_teams │ │ └── _index.md │ ├── 50_create_environnments │ │ └── _index.md │ ├── 60_spin_up_infrastructure │ │ └── _index.md │ └── _index.md ├── 95_workshop_hybrid_eks │ ├── 00_install_flux │ │ └── _index.md │ ├── 10_install_weave_gitops │ │ └── _index.md │ ├── 15_install_cluster_api │ │ └── _index.md │ ├── 20_create_a_cluster │ │ └── _index.md │ ├── 25_upgrade_your_cluster │ │ └── _index.md │ └── _index.md └── _index.md ├── layouts └── partials │ ├── header.html │ ├── logo.html │ └── menu-footer.html ├── modules ├── EKS-workshop-stack.yaml └── webhosting │ ├── README.md │ ├── cloudfront-s3-website.yaml │ └── pipeline.yaml ├── public ├── css │ ├── atom-one-dark-reasonable.css │ ├── auto-complete.css │ ├── featherlight.min.css │ ├── fontawesome-all.min.css │ ├── hugo-theme.css │ ├── hybrid.css │ ├── nucleus.css │ ├── perfect-scrollbar.min.css │ ├── tags.css │ ├── theme-blue.css │ ├── theme-green.css │ ├── theme-mine.css │ ├── theme-red.css │ └── theme.css ├── fonts │ ├── Inconsolata.eot │ ├── Inconsolata.svg │ ├── Inconsolata.ttf │ ├── Inconsolata.woff │ ├── Novecentosanswide-Normal-webfont.eot │ ├── Novecentosanswide-Normal-webfont.svg │ ├── Novecentosanswide-Normal-webfont.ttf │ ├── Novecentosanswide-Normal-webfont.woff │ ├── Novecentosanswide-Normal-webfont.woff2 │ ├── Novecentosanswide-UltraLight-webfont.eot │ ├── Novecentosanswide-UltraLight-webfont.svg │ ├── Novecentosanswide-UltraLight-webfont.ttf │ ├── Novecentosanswide-UltraLight-webfont.woff │ ├── Novecentosanswide-UltraLight-webfont.woff2 │ ├── Work_Sans_200.eot │ ├── Work_Sans_200.svg │ ├── Work_Sans_200.ttf │ ├── Work_Sans_200.woff │ ├── Work_Sans_200.woff2 │ ├── Work_Sans_300.eot │ ├── Work_Sans_300.svg │ ├── Work_Sans_300.ttf │ ├── Work_Sans_300.woff │ ├── Work_Sans_300.woff2 │ ├── Work_Sans_500.eot │ ├── Work_Sans_500.svg │ ├── Work_Sans_500.ttf │ ├── Work_Sans_500.woff │ └── Work_Sans_500.woff2 ├── images │ ├── ActiveGate_linux_installation.png │ ├── Deck_Arrows2.png │ ├── Kubernetes_menu.png │ ├── PG_naming_rule_preview.png │ ├── PG_naming_rules.png │ ├── PG_naming_validation.png │ ├── account_settings.png │ ├── add_tag_rule.png │ ├── alerting_profile_carts_dev.png │ ├── alerting_profile_carts_ops.png │ ├── alerting_profile_k8s_infra.png │ ├── api_token.png │ ├── api_token_value.png │ ├── app_urls.png │ ├── application_view.png │ ├── applications.png │ ├── aws_console_appmesh.png │ ├── blue-green-deployment-ww.png │ ├── built-in_service_naming_rules.png │ ├── c9after.png │ ├── c9attachrole.png │ ├── c9before.png │ ├── c9disableiam.png │ ├── c9instancerole.png │ ├── c9open.png │ ├── canary-deployment-ww.png │ ├── carts_dev_method_hotspots.png │ ├── carts_dev_problem.png │ ├── carts_dev_purepath.png │ ├── carts_dev_response_time_analysis.png │ ├── carts_dev_rollout_history.png │ ├── carts_promo_failure_analysis.png │ ├── carts_promo_problem.png │ ├── cf_confirm.png │ ├── cf_create.png │ ├── cf_done.png │ ├── chrome_extension.png │ ├── ci_app_mesh.png │ ├── ci_perf_monitoring.png │ ├── clippy.svg │ ├── cloud9_new_terminal.png │ ├── cluster_connection_error.png │ ├── cluster_connection_setup.png │ ├── cluster_management_zone.png │ ├── cluster_monitoring_dashboard.png │ ├── cluster_nodes.png │ ├── config_token.png │ ├── cpu_saturation_problems.png │ ├── cr_yaml.png │ ├── create-keypair.png │ ├── create_management_zone.png │ ├── create_management_zone_enter_name.png │ ├── custom_PG_naming_rule.png │ ├── custom_service_naming_rule.png │ ├── cw_app_logs.png │ ├── cw_log_groups.png │ ├── cw_metrics_container_insights.png │ ├── cw_metrics_graph.png │ ├── cw_select_metrics.png │ ├── deploy-dt.png │ ├── deployment_status.png │ ├── deployments.png │ ├── drill_down_to_PurePaths.png │ ├── dt-capabilities.png │ ├── dt-problem.png │ ├── dt-topology.png │ ├── dt-trial.png │ ├── dt.png │ ├── dynatrace_pods.png │ ├── edit_application.png │ ├── email_notification_cpu.png │ ├── enable_session_replay.png │ ├── event-engine-aws-console.png │ ├── event-engine-dashboard.png │ ├── event-engine-initial-screen.png │ ├── extend_management_zone_rule.png │ ├── favicon.png │ ├── filter_by_tag.png │ ├── generate-paas-token-two.png │ ├── generate-paas-token.png │ ├── generate_api_token.png │ ├── generate_paas_token.png │ ├── gh_deploy_key.png │ ├── gh_repo_init.png │ ├── gopher-404.jpg │ ├── guestbook_app.png │ ├── guestbook_dt_services.png │ ├── guestbook_services.png │ ├── host_consuming_processes.png │ ├── host_cpu_usage.png │ ├── host_view.png │ ├── hosts.png │ ├── iam-1-create-user.png │ ├── iam-2-attach-policy.png │ ├── iam-3-create-user.png │ ├── iam-4-save-url.png │ ├── install_ActiveGate.png │ ├── invitation_email.png │ ├── invite_new_user.png │ ├── k8-dashboard.png │ ├── k8-log.png │ ├── k8-pod-metadata.png │ ├── k8-tracing.png │ ├── k8s_infra_resource_alert_rule.png │ ├── k8s_team_notification_setup.png │ ├── keep_calm.png │ ├── keypair-menu.png │ ├── keypair.png │ ├── kubernetes_node_analysis.png │ ├── kubernetes_problematic_nodes.png │ ├── management_zone_rule_guestbook.png │ ├── management_zone_rule_namespace.png │ ├── management_zone_rule_sockshop.png │ ├── management_zones.png │ ├── management_zones_filter.png │ ├── new_user_group.png │ ├── node_analysis_filter.png │ ├── oneagent-operator.png │ ├── opa-gatekeeper.png │ ├── operator_pod.png │ ├── paas_token.png │ ├── paas_token_value.png │ ├── pg_labels_annotations.png │ ├── pod_describe.png │ ├── podinfo_app_mesh.png │ ├── podinfo_screen.png │ ├── preview_management_zone_rule_infra.png │ ├── preview_management_zone_rule_services.png │ ├── problem_notification_setup.png │ ├── promo_socks.png │ ├── route53-eks-1.png │ ├── save-environment.png │ ├── save_tag_rule.png │ ├── service.png │ ├── service_naming_rule_preview.png │ ├── service_naming_rules.png │ ├── service_naming_validation.png │ ├── services.png │ ├── services_filtered_by_management_zone.png │ ├── services_filtered_dev_namespace.png │ ├── slack_carts_dev_problem_open.png │ ├── slack_carts_dev_problem_resolved.png │ ├── slack_carts_dev_test_run.png │ ├── slack_carts_support_ops_problem_open.png │ ├── slack_carts_support_ops_problem_resolved.png │ ├── slack_channels.png │ ├── sockshop-topology.png │ ├── sockshop.png │ ├── super_search_box_tag.png │ ├── synthetic.png │ ├── user_group_assignation.png │ ├── user_session_replay.png │ ├── user_sessions.png │ ├── validate.png │ ├── workshop.png │ └── workshop02_gitops-operating-model.png ├── js │ ├── auto-complete.js │ ├── clipboard.min.js │ ├── featherlight.min.js │ ├── highlight.pack.js │ ├── hugo-learn.js │ ├── jquery-3.3.1.min.js │ ├── jquery.sticky.js │ ├── learn.js │ ├── lunr.min.js │ ├── modernizr.custom-3.6.0.js │ ├── perfect-scrollbar.jquery.min.js │ ├── perfect-scrollbar.min.js │ └── search.js ├── mermaid │ ├── mermaid.css │ ├── mermaid.dark.css │ ├── mermaid.forest.css │ └── mermaid.js └── webfonts │ ├── fa-brands-400.eot │ ├── fa-brands-400.svg │ ├── fa-brands-400.ttf │ ├── fa-brands-400.woff │ ├── fa-brands-400.woff2 │ ├── fa-regular-400.eot │ ├── fa-regular-400.svg │ ├── fa-regular-400.ttf │ ├── fa-regular-400.woff │ ├── fa-regular-400.woff2 │ ├── fa-solid-900.eot │ ├── fa-solid-900.svg │ ├── fa-solid-900.ttf │ ├── fa-solid-900.woff │ └── fa-solid-900.woff2 ├── static ├── css │ └── theme-mine.css └── images │ ├── ActiveGate_linux_installation.png │ ├── Deck_Arrows2.png │ ├── Kubernetes_menu.png │ ├── PG_naming_rule_preview.png │ ├── PG_naming_rules.png │ ├── PG_naming_validation.png │ ├── account_settings.png │ ├── add_tag_rule.png │ ├── alerting_profile_carts_dev.png │ ├── alerting_profile_carts_ops.png │ ├── alerting_profile_k8s_infra.png │ ├── api_token.png │ ├── api_token_value.png │ ├── app_urls.png │ ├── application_view.png │ ├── applications.png │ ├── aws_console_appmesh.png │ ├── blue-green-deployment-ww.png │ ├── built-in_service_naming_rules.png │ ├── c9after.png │ ├── c9attachrole.png │ ├── c9before.png │ ├── c9disableiam.png │ ├── c9instancerole.png │ ├── c9open.png │ ├── canary-deployment-ww.png │ ├── carts_dev_method_hotspots.png │ ├── carts_dev_problem.png │ ├── carts_dev_purepath.png │ ├── carts_dev_response_time_analysis.png │ ├── carts_dev_rollout_history.png │ ├── carts_promo_failure_analysis.png │ ├── carts_promo_problem.png │ ├── cf_confirm.png │ ├── cf_create.png │ ├── cf_done.png │ ├── chrome_extension.png │ ├── ci_app_mesh.png │ ├── ci_perf_monitoring.png │ ├── cloud9_new_terminal.png │ ├── cluster_connection_error.png │ ├── cluster_connection_setup.png │ ├── cluster_management_zone.png │ ├── cluster_monitoring_dashboard.png │ ├── cluster_nodes.png │ ├── config_token.png │ ├── cpu_saturation_problems.png │ ├── cr_yaml.png │ ├── create-keypair.png │ ├── create-policy-json.png │ ├── create-policy-save.png │ ├── create-policy.png │ ├── create-role-create.png │ ├── create-role-policy.png │ ├── create-role-service.png │ ├── create-role.png │ ├── create_management_zone.png │ ├── create_management_zone_enter_name.png │ ├── custom_PG_naming_rule.png │ ├── custom_service_naming_rule.png │ ├── cw_app_logs.png │ ├── cw_log_groups.png │ ├── cw_metrics_container_insights.png │ ├── cw_metrics_graph.png │ ├── cw_select_metrics.png │ ├── deploy-dt.png │ ├── deployment_status.png │ ├── deployments.png │ ├── drill_down_to_PurePaths.png │ ├── dt-capabilities.png │ ├── dt-problem.png │ ├── dt-topology.png │ ├── dt-trial.png │ ├── dt.png │ ├── dynatrace_pods.png │ ├── ebs-mod.png │ ├── ebs1.png │ ├── edit_application.png │ ├── email_notification_cpu.png │ ├── enable_session_replay.png │ ├── event-engine-aws-console.png │ ├── event-engine-dashboard.png │ ├── event-engine-initial-screen.png │ ├── extend_management_zone_rule.png │ ├── favicon.png │ ├── filter_by_tag.png │ ├── generate-paas-token-two.png │ ├── generate-paas-token.png │ ├── generate_api_token.png │ ├── generate_paas_token.png │ ├── gh_deploy_key.png │ ├── gh_repo_init.png │ ├── guestbook_app.png │ ├── guestbook_dt_services.png │ ├── guestbook_services.png │ ├── hello-kubernetes.png │ ├── host_consuming_processes.png │ ├── host_cpu_usage.png │ ├── host_view.png │ ├── hosts.png │ ├── iam-1-create-user.png │ ├── iam-2-attach-policy.png │ ├── iam-3-create-user.png │ ├── iam-4-save-url.png │ ├── install_ActiveGate.png │ ├── invitation_email.png │ ├── invite_new_user.png │ ├── k8-dashboard.png │ ├── k8-log.png │ ├── k8-pod-metadata.png │ ├── k8-tracing.png │ ├── k8s_infra_resource_alert_rule.png │ ├── k8s_team_notification_setup.png │ ├── keep_calm.png │ ├── keypair-menu.png │ ├── keypair.png │ ├── kubernetes_node_analysis.png │ ├── kubernetes_problematic_nodes.png │ ├── management_zone_rule_guestbook.png │ ├── management_zone_rule_namespace.png │ ├── management_zone_rule_sockshop.png │ ├── management_zones.png │ ├── management_zones_filter.png │ ├── module_8-add-security-groups.png │ ├── module_8-clusters.png │ ├── module_8-modify-security-groups.png │ ├── new_user_group.png │ ├── node_analysis_filter.png │ ├── oneagent-operator.png │ ├── opa-gatekeeper.png │ ├── operator_pod.png │ ├── paas_token.png │ ├── paas_token_value.png │ ├── personal_token_scopes.png │ ├── pg_labels_annotations.png │ ├── pod_describe.png │ ├── podinfo_app_mesh.png │ ├── podinfo_screen.png │ ├── preview_management_zone_rule_infra.png │ ├── preview_management_zone_rule_services.png │ ├── problem_notification_setup.png │ ├── promo_socks.png │ ├── route53-eks-1.png │ ├── save-environment.png │ ├── save_tag_rule.png │ ├── service.png │ ├── service_naming_rule_preview.png │ ├── service_naming_rules.png │ ├── service_naming_validation.png │ ├── services.png │ ├── services_filtered_by_management_zone.png │ ├── services_filtered_dev_namespace.png │ ├── slack_carts_dev_problem_open.png │ ├── slack_carts_dev_problem_resolved.png │ ├── slack_carts_dev_test_run.png │ ├── slack_carts_support_ops_problem_open.png │ ├── slack_carts_support_ops_problem_resolved.png │ ├── slack_channels.png │ ├── sockshop-topology.png │ ├── sockshop.png │ ├── super_search_box_tag.png │ ├── synthetic.png │ ├── user_group_assignation.png │ ├── user_session_replay.png │ ├── user_sessions.png │ ├── validate.png │ ├── workshop.png │ ├── workshop02_gitops-operating-model.png │ └── workshop7-management-cluster.svg └── webspec.yml /.github/workflows/release.yaml: -------------------------------------------------------------------------------- 1 | name: publish 2 | on: push 3 | 4 | jobs: 5 | deploy: 6 | runs-on: ubuntu-latest 7 | 8 | steps: 9 | - name: checkout 10 | uses: actions/checkout@v2 11 | with: 12 | submodules: true 13 | fetch-depth: 0 14 | 15 | - name: get hugo 16 | uses: peaceiris/actions-hugo@v2 17 | with: 18 | hugo-version: "0.70.0" 19 | 20 | - name: clean output 21 | run: rm -rf public 22 | 23 | - name: build 24 | run: hugo 25 | 26 | - name: deploy 27 | uses: peaceiris/actions-gh-pages@v3 28 | with: 29 | github_token: ${{ secrets.GITHUB_TOKEN }} 30 | publish_dir: ./public 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | *.*~ 3 | project.lock.json 4 | .DS_Store 5 | *.pyc 6 | 7 | # User-specific files 8 | *.suo 9 | *.user 10 | *.userosscache 11 | *.sln.docstates 12 | 13 | # Build results 14 | [Dd]ebug/ 15 | [Dd]ebugPublic/ 16 | [Rr]elease/ 17 | [Rr]eleases/ 18 | x64/ 19 | x86/ 20 | build/ 21 | bld/ 22 | [Bb]in/ 23 | [Oo]bj/ 24 | msbuild.log 25 | msbuild.err 26 | msbuild.wrn 27 | 28 | # Visual Studio 29 | .vs/ 30 | .vscode/ 31 | 32 | # JetBrains IDEs 33 | .idea 34 | 35 | # Node Modules 36 | node_modules/ 37 | dynatrace-k8s/ 38 | notes.txt 39 | *.pptx 40 | public/ 41 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "themes/hugo-theme-learn"] 2 | path = themes/hugo-theme-learn 3 | url = https://github.com/matcornic/hugo-theme-learn.git 4 | branch = master 5 | 6 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | ## Code of Conduct 2 | This project has adopted the [Amazon Open Source Code of Conduct](https://aws.github.io/code-of-conduct). 3 | For more information see the [Code of Conduct FAQ](https://aws.github.io/code-of-conduct-faq) or contact 4 | opensource-codeofconduct@amazon.com with any additional questions or comments. 5 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Overview 2 | 3 | This repo contains the content for a workshop that shows how Weaveworks helps DevOps and AppDev gain end-to-end visibility and immediate insight to identify root cases to problems when managing EKS. 4 | 5 | This workshop is available at https://weaveworks-gitops.awsworkshop.io/ 6 | 7 | # To view this content locally 8 | 9 | * install [hugo](https://gohugo.io/) 10 | * macOS: `brew install hugo` 11 | * Windows: `choco install hugo -confirm` 12 | * clone this repo 13 | * execute in the root folder: 14 | * `git submodule init` 15 | * `git submodule update --recursive --remote` 16 | * run ```hugo server``` 17 | * open website 18 | 19 | # Reference 20 | 21 | * [AWS workshop content documentation guide](https://aws-samples.github.io/aws-modernization-workshop-sample/) 22 | * [AWS sample workshop](https://github.com/aws-samples/aws-modernization-workshop-sample) 23 | -------------------------------------------------------------------------------- /archetypes/default.md: -------------------------------------------------------------------------------- 1 | --- 2 | title = "{{ replace .Name "-" " " | title }}" 3 | date: {{ .Date }} 4 | draft: true 5 | --- 6 | 7 | -------------------------------------------------------------------------------- /content/10_aws_prerequisites/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Start the Workshop" 3 | chapter = true 4 | weight = 10 5 | +++ 6 | 7 | # Getting Started 8 | 9 | To start the workshop, you first need an AWS account and to provision the resources for the workshop. Please choose the link from one of the following options: 10 | 11 | **Option 1:** 12 | [Running the workshop on your own (in your own AWS account)](/10_aws_prerequisites/20_self_paced.html) 13 | 14 | **Option 2:** 15 | [Attending an AWS hosted event (using AWS provided hashes)](/10_aws_prerequisites/10_aws_event.html) 16 | -------------------------------------------------------------------------------- /content/20_weaveworks_prerequisites/11_install_eksctl.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install eksctl" 3 | chapter = false 4 | weight = 11 5 | 6 | +++ 7 | 8 | For this workshop you will use [eksctl](https://eksctl.io/introduction/#installation). Once you install eksctl, you will be ready to get started. 9 | 10 | At the terminal command prompt, enter the following two commands: 11 | 12 | ``` 13 | curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp 14 | ``` 15 | 16 | ``` 17 | sudo mv /tmp/eksctl /usr/local/bin 18 | ``` 19 | 20 | This will install `eksctl` in your **Cloud9** environment. To test to make sure the command is installed properly, execute the command: 21 | 22 | ``` 23 | eksctl get cluster 24 | ``` 25 | 26 | You should get a "No clusters found" message. Running the following command will indicate which version of the command line tool you have installed: 27 | 28 | ``` 29 | eksctl version 30 | ``` 31 | 32 | For the current workshop, we will be using `eksctl` **0.53** or newer. Please verify the version, as some features are only available in the **0.53** version of `eksctl` and newer. 33 | -------------------------------------------------------------------------------- /content/20_weaveworks_prerequisites/12_install_kubectl.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install kubectl" 3 | chapter = false 4 | weight = 12 5 | 6 | +++ 7 | 8 | The Kubernetes command-line tool, [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux), allows you to run commands against Kubernetes clusters. You can use kubectl to deploy applications, inspect and manage cluster resources, and view logs. 9 | 10 | At the terminal command prompt, enter the following two commands: 11 | 12 | ``` 13 | curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl 14 | ``` 15 | 16 | ``` 17 | chmod +x ./kubectl 18 | ``` 19 | 20 | ``` 21 | sudo mv ./kubectl /usr/local/bin/kubectl 22 | ``` 23 | 24 | This will install `kubectl` in your **Cloud9** environment. To test to make sure the command is installed properly, execute the command: 25 | 26 | ``` 27 | kubectl version --client 28 | ``` 29 | 30 | You should see the `kubectl` version message. 31 | 32 | 33 | -------------------------------------------------------------------------------- /content/20_weaveworks_prerequisites/14_install_fluxctl.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install Required CLIs" 3 | chapter = false 4 | weight = 14 5 | +++ 6 | 7 | # Install the required CLIs 8 | 9 | Throughout the workshops you may need one of the following two products, both built by Weaveworks. 10 | 11 | ## Install Fluxctl 12 | 13 | [Flux CLI](https://fluxcd.io/docs/installation/) is a CLI tool that is able to talk to [Weave Flux](https://github.com/fluxcd/flux2). 14 | 15 | Install by running this command: 16 | 17 | ```sh 18 | curl -s https://fluxcd.io/install.sh | sudo bash 19 | ``` 20 | 21 | Verify the installation: 22 | 23 | ```sh 24 | flux -v 25 | ``` 26 | 27 | ## Install Weave GitOps 28 | 29 | Weave GitOps Core is the latest product from Weaveworks, and enables a streamlined and effective GitOps Workflow. 30 | 31 | ```sh 32 | curl -L https://github.com/weaveworks/weave-gitops/releases/download/v0.2.1/wego-$(uname)-$(uname -m) -o wego 33 | chmod +x wego 34 | sudo mv ./wego /usr/local/bin/wego 35 | ``` 36 | 37 | Verify the installation: 38 | 39 | ```sh 40 | wego version 41 | ``` -------------------------------------------------------------------------------- /content/20_weaveworks_prerequisites/15_install_kustomize.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install kustomize" 3 | chapter = false 4 | weight = 15 5 | 6 | +++ 7 | 8 | ## Install Kustomize 9 | 10 | [Kustomize](https://github.com/kubernetes-sigs/kustomize) lets you customize raw, template-free YAML files for multiple purposes, leaving the original YAML untouched and usable as is. 11 | 12 | Install kustomize for Linux: 13 | 14 | ```sh 15 | curl --silent --location --remote-name \ 16 | "https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.2.3/kustomize_kustomize.v3.2.3_linux_amd64" && \ 17 | chmod a+x kustomize_kustomize.v3.2.3_linux_amd64 && \ 18 | sudo mv kustomize_kustomize.v3.2.3_linux_amd64 /usr/local/bin/kustomize 19 | ``` 20 | 21 | Verify the install with: 22 | 23 | ```sh 24 | kustomize version 25 | ``` 26 | -------------------------------------------------------------------------------- /content/20_weaveworks_prerequisites/16_install_aws-iam.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install AWS IAM Authenticator" 3 | chapter = false 4 | weight = 16 5 | 6 | +++ 7 | 8 | Amazon EKS uses IAM to provide authentication to your Kubernetes cluster through the AWS IAM authenticator for Kubernetes. You can configure the stock kubectl client to work with Amazon EKS by installing the AWS IAM authenticator for Kubernetes and modifying your kubectl configuration file to use it for authentication. 9 | 10 | To install `aws-iam-authenticator` on Cloud9 11 | 12 | Download the Amazon EKS-vended `aws-iam-authenticator binary` from Amazon S3: 13 | 14 | ``` 15 | curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.15.10/2020-02-22/bin/linux/amd64/aws-iam-authenticator 16 | ``` 17 | 18 | Make the downloaded binary executable: 19 | 20 | ``` 21 | chmod +x ./aws-iam-authenticator 22 | ``` 23 | 24 | And move it into a common directory: 25 | 26 | ``` 27 | sudo mv ./aws-iam-authenticator /usr/local/bin 28 | ``` 29 | 30 | Test that the aws-iam-authenticator binary works: 31 | 32 | ``` 33 | aws-iam-authenticator help 34 | ``` 35 | -------------------------------------------------------------------------------- /content/20_weaveworks_prerequisites/17_create_iam_policy_and_role.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Grant permissions to role" 3 | chapter = false 4 | weight = 17 5 | +++ 6 | 7 | Your event engine seat has been pre-provisioned with an IAM role with basic access rights, for the purpose of the workshop and considering you are running in a sandboxed environment, we will grant wider privileges to the precreated role. 8 | 9 | {{% notice warning %}} 10 | Granting full privileges to a role is **not** something to do in any scenario outside of sandboxed and ephemeral event engine use cases. 11 | {{% /notice %}} 12 | 13 | - Navigate to the Identity and Access Management (IAM) service in AWS. 14 | - Click on `Roles` and look for a role that begins with `mod-` with `AWS Service: ec2` for Trusted Entities. 15 | - Click on the Role and then click on `Attach policies` 16 | - Select `AdministratorAccess` and click on `Attach policy` -------------------------------------------------------------------------------- /content/20_weaveworks_prerequisites/18_attach_the_role.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Attach Role to instance" 3 | chapter = false 4 | weight = 18 5 | +++ 6 | 7 | Now, we need to attach the IAM role we created in the previous step, to the Cloud9 Instance that you will be working on: 8 | 9 | - Switch to the **AWS Console** (You can open the console from the "Team Dashboard") 10 | - Under **Services**, select **EC2** 11 | - Click **Running Instances** 12 | - Select the instance named "aws-cloud9-..." by clicking the check box to the left of the name 13 | - On **Actions** pull down, select **Security -> Modify IAM Role** 14 | - In the **IAM role** pull down, select the role that starts with `mod-` 15 | - Click **Save** 16 | -------------------------------------------------------------------------------- /content/20_weaveworks_prerequisites/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Prerequisites for all GitOps Workshop Modules" 3 | chapter = true 4 | weight = 20 5 | +++ 6 | 7 | # Setup All the Required Tools & Permissions 8 | 9 | To complete these workshop modules, you will first need to install eksctl. Instructions for doing this can be found at [eksctl.io](https://eksctl.io/introduction/#installation). eksctl (pronounced "eks control") is a simple CLI tool for creating clusters on EKS. It is written in Go, uses CloudFormation, was created by [Weaveworks](https://weave.works) and it welcomes contributions from the community. 10 | 11 | {{% notice warning %}} 12 | If you are using your own AWS account, you will need permissions to create EKS clusters plus admin rights within your EKS cluster to configure configuration rules and install agents. Ensure you have authority within your organization to do this in your tenant. 13 | {{% /notice %}} 14 | 15 | -------------------------------------------------------------------------------- /content/22_workshop_1/10_setup_gitops_prequisites/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Setup Prerequisites" 3 | chapter = true 4 | weight = 10 5 | +++ 6 | 7 | ## Getting ready for gitops 8 | 9 | [gitops](https://www.weave.works/technologies/gitops/) is a way to do Kubernetes application delivery. It works by using Git as a single source of truth for Kubernetes resources and everything else. With Git at the center of your delivery pipelines, you and your team can make pull requests to accelerate and simplify application deployments and operations tasks to Kubernetes. 10 | -------------------------------------------------------------------------------- /content/22_workshop_1/20_create_cluster/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Create a Cluster" 3 | chapter = true 4 | weight = 21 5 | +++ 6 | 7 | # eksctl Setup 8 | 9 | To complete the workshop, you first need to install eksctl v0.53.0 or newer. Instructions for doing this can be found at [eksctl.io](https://eksctl.io/introduction/#installation). eksctl (pronounced "eks control") is a simple CLI tool for creating clusters on EKS. It is written in Go, uses CloudFormation, was created by [Weaveworks](https://weave.works) and it welcomes contributions from the community. 10 | 11 | {{% notice warning %}} 12 | If you are using your own AWS account, you will need permissions to create EKS clusters plus admin rights within your EKS cluster to configure configuration rules and install agents. Ensure you have authority within your organization to do this in your tenant. 13 | {{% /notice %}} 14 | 15 | -------------------------------------------------------------------------------- /content/22_workshop_1/30_gitops_enable/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Doing GitOps with Flux v2" 3 | chapter = true 4 | weight = 30 5 | +++ 6 | 7 | ## GitOps and Flux v2 8 | 9 | [gitops](https://www.weave.works/technologies/gitops/) is a way to do Kubernetes application delivery and cluster management. It works by using Git as a single source of truth for Kubernetes resources and everything else. 10 | 11 | With Git at the center of your delivery pipelines, you and your team can make pull requests to accelerate and simplify application deployments and operations tasks to Kubernetes. 12 | 13 | Flux v2 runs in your EKS cluster and tracks changes to one or more Git repositories. These repositories store all manifests that define the desired state of your cluster, Flux will continuously and automatically reconcile the running state of the cluster with the state declared in code. 14 | -------------------------------------------------------------------------------- /content/22_workshop_1/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Workshop Module 1: Introduction to GitOps on EKS" 3 | chapter = true 4 | weight = 22 5 | +++ 6 | 7 | # Workshop Module 1: Introduction to GitOps on EKS 8 | 9 | In this module we'll introduce you to the concepts of GitOps and how to create and operate an EKS cluster using the eksctl tool. This workshop is a prerequisite for all other workshops in this series. 10 | 11 | 12 | {{% notice warning %}} 13 | If you are using your own AWS account, you will need permissions to create EKS clusters plus admin rights within your EKS cluster to configure configuration rules and install agents. Ensure you have authority within your organization to do this in your tenant. 14 | {{% /notice %}} 15 | 16 | -------------------------------------------------------------------------------- /content/25_workshop_2_HA-DR/01_prerequisites/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Workshop Prerequisites" 3 | chapter = true 4 | weight = 5 5 | +++ 6 | 7 | # Prerequisites 8 | 9 | Please note that in order to complete this workshop, you should have completed [Prerequisites for all GitOps Workshops](/20_weaveworks_prerequisites.html). Once you have completed the Introduction to GitOps Workshop, please return to perform this workshop. 10 | 11 | 12 | {{% notice warning %}} 13 | If you are using your own AWS account, you will need permissions to create EKS clusters plus admin rights within your EKS cluster to configure configuration rules and install agents. Ensure you have authority within your organization to do this in your tenant. 14 | {{% /notice %}} 15 | 16 | -------------------------------------------------------------------------------- /content/25_workshop_2_HA-DR/40_gitops_enable_clusters/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "GitOps Enable Clusters" 3 | chapter = true 4 | weight = 40 5 | +++ 6 | 7 | # GitOps Enable the Two EKS Clusters 8 | 9 | Having created two clusters, you will now have two different contexts available for `kubectl`, you should be careful with selecting the right context as you proceed enabling GitOps on each of them. 10 | 11 | Running the command `kubectl config get-contexts` will show you the available contexts and which is currently active, as marked by the `*` in the first column. 12 | 13 |
14 | AdministratorAccess:~/environment $ kubectl config get-contexts
15 | CURRENT   NAME                                                           CLUSTER                                    AUTHINFO                                                       NAMESPACE
16 | *         i-041b36df51a73d3da@aws-workshop-cluster.us-east-2.eksctl.io   aws-workshop-cluster.us-east-2.eksctl.io   i-041b36df51a73d3da@aws-workshop-cluster.us-east-2.eksctl.io   
17 |           i-041b36df51a73d3da@aws-workshop-cluster.us-west-1.eksctl.io   aws-workshop-cluster.us-west-1.eksctl.io   i-041b36df51a73d3da@aws-workshop-cluster.us-west-1.eksctl.io   
18 | 
19 | 20 | You should always make sure you are paying attention to which cluster you are interacting with when using `kubectl` or the `flux` CLI. -------------------------------------------------------------------------------- /content/25_workshop_2_HA-DR/50_add_yamls/20_hello_kubernetes_introduction.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Introducing Hello Kubernetes" 3 | chapter = false 4 | weight = 20 5 | +++ 6 | 7 | `Hello Kubernetes` is a very simple web application created by Paul Bouwer, open source and [available in GitHub](https://github.com/paulbouwer/hello-kubernetes). 8 | 9 | For our workshop, we will be using `Hello Kubernetes` to quickly demonstrate how load balancing and high availability can be simply implemented with ingresses and Kubernetes. 10 | 11 | Our configuration will enable internal Kubernetes load balancing and scaling. Optionally, AWS **Route 53** can be used to balance between your actual clusters in different regions. 12 | -------------------------------------------------------------------------------- /content/25_workshop_2_HA-DR/50_add_yamls/22_hello_kubernetes_hpa.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Enable Hello Kubernetes to Scale Automatically" 3 | chapter = false 4 | weight = 22 5 | +++ 6 | 7 | A very useful feature in Kubernetes is to enable auto-scaling. This is accomplished by created a Horizontal Pod Autoscaler (HPA) object that is targeted at a specific pod. Each HPA has criteria that Kubernetes uses in order add pods to the running deployment. This HPA will scale the podinfo deployment to a minimum of 2 replicas, and a maximum of 4 replicas. 8 | 9 | Create a file called `clusters/eks-ha/hello-kubernetes/hpa.yaml` in your git repository: 10 | 11 | ```yaml 12 | apiVersion: autoscaling/v2beta1 13 | kind: HorizontalPodAutoscaler 14 | metadata: 15 | name: hello-kubernetes-eks-ha 16 | namespace: hello-kubernetes 17 | spec: 18 | scaleTargetRef: 19 | apiVersion: apps/v1 20 | kind: Deployment 21 | name: hello-kubernetes-eks-ha 22 | minReplicas: 2 23 | maxReplicas: 4 24 | metrics: 25 | - type: Resource 26 | resource: 27 | name: cpu 28 | targetAverageUtilization: 99 29 | ``` 30 | -------------------------------------------------------------------------------- /content/25_workshop_2_HA-DR/50_add_yamls/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Manage your cluster using GitOps" 3 | chapter = true 4 | weight = 50 5 | +++ 6 | 7 | # Modify the desired state of your cluster using GitOps 8 | 9 | In this section, we will be modifying the desired state of our clusters, by adding Kubernetes manifests to your git repository. Each one of the manifests installs specific features and applications. 10 | 11 | You can either edit these files directly in your git repository using the "Create File" function in the web user interface of your Git service provider of choice, or you can clone the repository into your **Cloud9** development environment, and edit them there. 12 | 13 | If you use the `git clone` method, do not forget to `git add .` and `git commit -m "add commit message"` your changes, and `git push` them to the repository. 14 | 15 | The software agent, `flux`, will check for new commits to the git repository, and apply any changes automatically to your cluster. 16 | 17 | You must pay attention to the directory structure in the repository. When running the Flux CLI previously, you specified a `--path` option, this defines the root path where all manifests will be stored. 18 | 19 | You will find a `flux-system/` sub-directory, this is where we will be adding the various manifests in the following sections. -------------------------------------------------------------------------------- /content/25_workshop_2_HA-DR/60_test_ingresses/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Test Ingress Settings" 3 | chapter = true 4 | weight = 60 5 | +++ 6 | In each of your terminal windows, execute: 7 | ``` 8 | kubectl get ingress -A 9 | ``` 10 | You should see output similar to this: 11 | 12 |
13 | NAMESPACE          NAME                       CLASS    HOSTS   ADDRESS                                                                         PORTS   AGE
14 | hello-kubernetes   hello-kubernetes-ingress      *       a94ff1031fbaf4a7e98124de4f1cfe48-541c97dd6045340c.elb.us-east-2.amazonaws.com   80      11h
15 | 
16 | 17 | Now, using your browser, access each of you ingresses with HTTP. From the above, the URL would be: 18 | 19 |
20 | http://a94ff1031fbaf4a7e98124de4f1cfe48-541c97dd6045340c.elb.us-east-2.amazonaws.com
21 | 
22 | 23 | You should see the `Hello Kubernetes` status page. Refreshing the browser several times will show you that the `Pod` value will change as Kubernetes routes between your two `hello-kubernetes` pods. 24 | 25 | ![Hello Kubernetes](/images/hello-kubernetes.png) 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /content/25_workshop_2_HA-DR/70_adjust_hpa/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Adjust HPA Settings" 3 | chapter = true 4 | weight = 70 5 | +++ 6 | A Horizontal Pod Autoscaler would normally be triggered by the thresholds set in the manifest. However, there are times when you know that the minimum (or maximum) number of pods should be adjusted. This is done very easily by editing the `clusters/eks-ha/hello-kubernetes/hpa.yaml` file you created earlier. 7 | 8 | Edit the file, and change the number of replicas to something different: 9 | 10 |
11 |   minReplicas: 3
12 |   maxReplicas: 6
13 | 
14 | 15 | Don't forget to commit and push the changes. After a few minutes, check the clusters to see your changes reflected. 16 | 17 | ``` 18 | kubectl get pods -n hello-kubernetes 19 | ``` 20 | 21 | If you can generate enough traffic, you should also be able to see the number of replicas scale up. 22 | -------------------------------------------------------------------------------- /content/25_workshop_2_HA-DR/80_configure_route53/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Configure Route53 (Optional)" 3 | chapter = true 4 | weight = 80 5 | +++ 6 | To see what your ingress controller and cluster look like, head to the console -> EC2 -> LoadBalancers. 7 | 8 | You'll see that there is a load balancer between the nodes of your kubernetes cluster, and it is assigned a host name. That is the same host name that appears s output from this command: 9 | ``` 10 | kubectl get ingress -A 11 | ``` 12 | 13 | To finish a complete HA solution, you could add a **Route 53** DNS round robin (Simple) or a `Failover` type of entry, using one cluster's `Ingress` for `primary` and the other cluster's for `secondary`. This would complete the simplest high availability configuration for EKS. 14 | 15 | There are other ingress available for EKS that provide additional features. 16 | -------------------------------------------------------------------------------- /content/30_workshop_03_grc/010_prerequisites/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Workshop Prerequsites" 3 | chapter = true 4 | weight = 10 5 | +++ 6 | 7 | # Prerequisites 8 | 9 | Please note that in order to complete this workshop, you should have completed [Workshop 1: Introduction to GitOps on EKS](/22_workshop_1/). Once you have completed the Introduction to GitOps Workshop, please return to perform this workshop. 10 | 11 | 12 | {{% notice warning %}} 13 | If you are using your own AWS account, you will need permissions to create EKS clusters plus admin rights within your EKS cluster to configure configuration rules and install agents. Ensure you have authority within your organization to do this in your tenant. 14 | {{% /notice %}} 15 | 16 | -------------------------------------------------------------------------------- /content/30_workshop_03_grc/120_deploy_opa_gatekeeper/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Deploy OPA gatekeeper" 3 | chapter = true 4 | weight = 120 5 | +++ 6 | 7 | ### Manage Policies and Compliance using OPA Gatekeeper 8 | 9 | 10 | This workshop will run through the following: 11 | 12 | - **Intro to OPA** 13 | - what is OPA? 14 | - How does Kubernetes controls what is created. 15 | - How can we extend this with OPA. 16 | - Overview of OPA gatekeeper 17 | 18 | - **Deploying OPA Gatekeeper** 19 | - Download and install OPA Gatekeeper 20 | - A run thorugh of its componnents and whats installed 21 | -------------------------------------------------------------------------------- /content/30_workshop_03_grc/120_deploy_opa_gatekeeper/deploy.files/allowed-repos-policy.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: constraints.gatekeeper.sh/v1beta1 2 | kind: K8sAllowedRepos 3 | metadata: 4 | name: prod-repo-is-openpolicyagent 5 | spec: 6 | match: 7 | kinds: 8 | - apiGroups: [""] 9 | kinds: ["Pod"] 10 | namespaces: 11 | - "production" 12 | parameters: 13 | repos: 14 | - "only-this-repo" 15 | -------------------------------------------------------------------------------- /content/30_workshop_03_grc/120_deploy_opa_gatekeeper/deploy.files/bad-namespace-example.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: test-namespace 5 | -------------------------------------------------------------------------------- /content/30_workshop_03_grc/120_deploy_opa_gatekeeper/deploy.files/pod-aunauthorized-repo-example.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: opa 5 | namespace: production 6 | labels: 7 | owner: me.agilebank.demo 8 | spec: 9 | containers: 10 | - name: opa 11 | image: openpolicyagent/opa:0.9.2 12 | args: 13 | - "run" 14 | - "--server" 15 | - "--addr=localhost:8080" 16 | resources: 17 | limits: 18 | cpu: "100m" 19 | memory: "30Mi" 20 | -------------------------------------------------------------------------------- /content/30_workshop_03_grc/120_deploy_opa_gatekeeper/deploy.files/required-labels-policy.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: constraints.gatekeeper.sh/v1beta1 2 | kind: K8sRequiredLabels 3 | metadata: 4 | name: all-must-have-owner 5 | spec: 6 | match: 7 | kinds: 8 | - apiGroups: [""] 9 | kinds: ["Namespace"] 10 | parameters: 11 | message: "All namespaces must have an `owner` label that points to your company username" 12 | labels: 13 | - key: owner 14 | allowedRegex: "^[a-zA-Z]+.agilebank.demo$" 15 | -------------------------------------------------------------------------------- /content/30_workshop_03_grc/125_create_policy_templates/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Create Policy Constraint Templates" 3 | chapter = true 4 | weight = 125 5 | +++ 6 | 7 | ### Manage Policies and Compliance using OPA Gatekeeper 8 | 9 | 10 | This workshop will run through how to create Constraint Templates to use with OPA Gatekeeper. We will run how to write a template, what component of a template does and also run through some example`rego` policies. 11 | 12 | All policies are written in rego, for detailed information on how this works please visit [here](https://www.openpolicyagent.org/docs/latest/policy-language/). 13 | 14 | Rego is a declaritive query language that can be used to support document models such as JSON. Making it a great fit for Kubernetes! -------------------------------------------------------------------------------- /content/30_workshop_03_grc/130_create_policy_contraints/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Create Policy Constraints" 3 | chapter = true 4 | weight = 130 5 | +++ 6 | 7 | # Create Policy Constraints 8 | 9 | We will now run through how to use the CRDs we defined in the `ContraintTemplates` to create policies in our cluster. 10 | 11 | -------------------------------------------------------------------------------- /content/30_workshop_03_grc/140_test-policy-contraints/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Test Policy Constraints" 3 | chapter = true 4 | weight = 140 5 | +++ 6 | 7 | In this workshop we are going to create some resources and attempt to deploy them in to our cluster. 8 | 9 | {{% notice info %}} 10 | These will be intentially violating policies we defined in our previous workshop. 11 | {{% /notice %}} 12 | -------------------------------------------------------------------------------- /content/30_workshop_03_grc/150_iam-groups/10_intro.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Kubernetes Authentication" 3 | date: 2020-05-12T18:00:00-00:00 4 | draft: false 5 | weight: 10 6 | --- 7 | 8 | In this workshop we will run through how to map IAM roles to rbac. 9 | 10 | If you have different teams which needs different kind of cluster access, it would be difficult to manually add or remove access for each EKS clusters you want them to give or remove access from. 11 | 12 | We can leverage on AWS [IAM Groups](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) to easilly add or remove users and give them permission to whole cluster, or just part of it depending on which groups they belong to. 13 | 14 | In this lesson, we will create 3 IAM roles that we will map to 3 IAM groups. -------------------------------------------------------------------------------- /content/30_workshop_03_grc/150_iam-groups/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Using IAM Groups to manage Kubernetes access" 3 | chapter = true 4 | weight = 150 5 | +++ 6 | In this chapter, we'll learn about how to simplify access to different parts of the kubernetes clusters 7 | depending on IAM Groups 8 | -------------------------------------------------------------------------------- /content/30_workshop_03_grc/150_iam-groups/deploy.files/development-ns.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: development 5 | labels: 6 | owner: me.agilebank.demo -------------------------------------------------------------------------------- /content/30_workshop_03_grc/150_iam-groups/deploy.files/integration-ns.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: integration 5 | labels: 6 | owner: me.agilebank.demo -------------------------------------------------------------------------------- /content/30_workshop_03_grc/deploy.files/allowed-repos-policy.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: constraints.gatekeeper.sh/v1beta1 2 | kind: K8sAllowedRepos 3 | metadata: 4 | name: prod-repo-is-openpolicyagent 5 | spec: 6 | match: 7 | kinds: 8 | - apiGroups: [""] 9 | kinds: ["Pod"] 10 | namespaces: 11 | - "production" 12 | parameters: 13 | repos: 14 | - "only-this-repo" 15 | -------------------------------------------------------------------------------- /content/30_workshop_03_grc/deploy.files/allowed-repos-template.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: templates.gatekeeper.sh/v1beta1 2 | kind: ConstraintTemplate 3 | metadata: 4 | name: k8sallowedrepos 5 | spec: 6 | crd: 7 | spec: 8 | names: 9 | kind: K8sAllowedRepos 10 | validation: 11 | # Schema for the `parameters` field 12 | openAPIV3Schema: 13 | properties: 14 | repos: 15 | type: array 16 | items: 17 | type: string 18 | targets: 19 | - target: admission.k8s.gatekeeper.sh 20 | rego: | 21 | package k8sallowedrepos 22 | 23 | violation[{"msg": msg}] { 24 | container := input.review.object.spec.containers[_] 25 | satisfied := [good | repo = input.parameters.repos[_] ; good = startswith(container.image, repo)] 26 | not any(satisfied) 27 | msg := sprintf("container <%v> has an invalid image repo <%v>, allowed repos are %v", [container.name, container.image, input.parameters.repos]) 28 | } 29 | 30 | violation[{"msg": msg}] { 31 | container := input.review.object.spec.initContainers[_] 32 | satisfied := [good | repo = input.parameters.repos[_] ; good = startswith(container.image, repo)] 33 | not any(satisfied) 34 | msg := sprintf("container <%v> has an invalid image repo <%v>, allowed repos are %v", [container.name, container.image, input.parameters.repos]) 35 | } 36 | -------------------------------------------------------------------------------- /content/30_workshop_03_grc/deploy.files/bad-namespace-example.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: test-namespace 5 | -------------------------------------------------------------------------------- /content/30_workshop_03_grc/deploy.files/development-ns.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: development 5 | labels: 6 | owner: me.agilebank.demo -------------------------------------------------------------------------------- /content/30_workshop_03_grc/deploy.files/integration-ns.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: integration 5 | labels: 6 | owner: me.agilebank.demo -------------------------------------------------------------------------------- /content/30_workshop_03_grc/deploy.files/pod-aunauthorized-repo-example.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Pod 3 | metadata: 4 | name: opa 5 | namespace: production 6 | labels: 7 | owner: me.agilebank.demo 8 | spec: 9 | containers: 10 | - name: opa 11 | image: openpolicyagent/opa:0.9.2 12 | args: 13 | - "run" 14 | - "--server" 15 | - "--addr=localhost:8080" 16 | resources: 17 | limits: 18 | cpu: "100m" 19 | memory: "30Mi" 20 | -------------------------------------------------------------------------------- /content/30_workshop_03_grc/deploy.files/required-labels-policy.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: constraints.gatekeeper.sh/v1beta1 2 | kind: K8sRequiredLabels 3 | metadata: 4 | name: all-must-have-owner 5 | spec: 6 | match: 7 | kinds: 8 | - apiGroups: [""] 9 | kinds: ["Namespace"] 10 | parameters: 11 | message: "All namespaces must have an `owner` label that points to your company username" 12 | labels: 13 | - key: owner 14 | allowedRegex: "^[a-zA-Z]+.agilebank.demo$" 15 | -------------------------------------------------------------------------------- /content/40_workshop_4_hipo-teams/01_prerequisites/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Workshop Prerequisites" 3 | chapter = true 4 | weight = 1 5 | +++ 6 | 7 | # Prerequisites 8 | 9 | Please note that in order to complete this workshop, you should have: 10 | 11 | * Completed [Workshop 1: Introduction to GitOps on EKS](/22_workshop_1/) 12 | * Setup you environment using [Prerequisites for all GitOps Workshops](/20_weaveworks_prerequisites.html) 13 | 14 | Once you have completed both of these, please return here and run the following command in the **Cloud9** terminal: 15 | 16 | ```bash 17 | aws sts get-caller-identity --query Arn | grep TeamRole -q && echo "IAM role valid" || echo "IAM role NOT valid" 18 | ``` 19 | 20 | If the IAM role is not valid, **DO NOT PROCEED**. Go back and confirm the steps on this page. 21 | 22 | {{% notice warning %}} 23 | If you are using your own AWS account, you will need permissions to create EKS clusters plus admin rights within your EKS cluster to configure configuration rules and install agents. Ensure you have authority within your organization to do this in your tenant. 24 | {{% /notice %}} 25 | -------------------------------------------------------------------------------- /content/40_workshop_4_hipo-teams/30_gitops_enable_clusters/40_verify_flux_op.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Verify Flux and Helm are Operational" 3 | chapter = false 4 | weight = 40 5 | +++ 6 | 7 | Now we have installed Flux and Helm Operator we need to verify that they are both operational. 8 | 9 | Run the following command in your **Cloud9** terminal: 10 | 11 | ```bash 12 | kubectl get pods -n flux 13 | ``` 14 | 15 | You should see that there are 3 pods and the status should be **Running**: 16 | 17 | ```bash 18 | NAME READY STATUS RESTARTS AGE 19 | flux-5884545b8c-thfxh 1/1 Running 0 22m 20 | flux-memcached-97fc488-zwn8w 1/1 Running 0 22m 21 | helm-operator-6489b5cc6b-5pdvl 1/1 Running 0 7m21s 22 | ``` 23 | 24 | {{% notice warning %}} 25 | If the status isn't running then don't proceed with the workshop until it's fixed. Please ask for help. 26 | {{% /notice %}} 27 | -------------------------------------------------------------------------------- /content/40_workshop_4_hipo-teams/30_gitops_enable_clusters/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "GitOps Enable Clusters" 3 | chapter = true 4 | weight = 30 5 | +++ 6 | 7 | # GitOps Enable Your EKS Cluster 8 | 9 | [gitops](https://www.weave.works/technologies/gitops/) is a way to do Kubernetes application delivery. It works by using Git as a single source of truth for Kubernetes resources and everything else. With Git at the center of your delivery pipelines, you and your team can make pull requests to accelerate and simplify application deployments and operations tasks to Kubernetes. 10 | 11 | It's assumed that you have already completed [Workshop 1: Introduction to GitOps on EKS](/22_workshop_1/) and as such we will be speeding through some of the base Flux commands. 12 | -------------------------------------------------------------------------------- /content/40_workshop_4_hipo-teams/40_install-app-mesh/90_verify_mesh.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Verify the Service Mesh is Active" 3 | chapter = false 4 | weight = 90 5 | +++ 6 | 7 | When we installed the App Mesh Injector we asked it to create a new service mesh called **apps**. A service mesh is a logical boundary for network traffic between the services that reside within it. 8 | 9 | To check that the mesh has been created we can use the AWS CLI. Run the following command: 10 | 11 | ```bash 12 | aws appmesh list-meshes 13 | ``` 14 | 15 | The output should be similar to below and you should see **apps** listed: 16 | 17 | ```json 18 | { 19 | "meshes": [ 20 | { 21 | "arn": "arn:aws:appmesh:us-west-2:1234567890:mesh/apps", 22 | "meshName": "apps", 23 | "meshOwner": "1234567890", 24 | "resourceOwner": "1234567890" 25 | } 26 | ] 27 | } 28 | ``` 29 | 30 | You can also check by going to the AWS Console and choosing **AWS App Mesh** from the **Services** menu: 31 | 32 | ![aws_console_appmesh](/images/aws_console_appmesh.png) 33 | 34 | And we need to check out out cluster by running: 35 | 36 | ```bash 37 | kubectl get meshes -A 38 | ``` 39 | 40 | You should see output similar to: 41 | 42 | ```bash 43 | NAME AGE 44 | apps 51m 45 | ``` 46 | -------------------------------------------------------------------------------- /content/40_workshop_4_hipo-teams/50_install_container_insights/30_verify_container_insights.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Verify metric collection" 3 | chapter = false 4 | weight = 20 5 | +++ 6 | 7 | Now that Container Insights with additional Prometheus metrics collection is setup we should start to see metrics appear in CloudWatch. 8 | 9 | Go to the **AWS Console** and open **CloudWatch**. 10 | 11 | Now click **Metrics** on the left pane. On the right portion of the page you should now see **ContainerInsights** and **ContainerInsights/Prometheus** listed: 12 | 13 | ![Container Insights Metrics](/images/cw_metrics_container_insights.png) 14 | -------------------------------------------------------------------------------- /content/40_workshop_4_hipo-teams/50_install_container_insights/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install Container Insights" 3 | chapter = true 4 | weight = 50 5 | +++ 6 | 7 | # Install Container Insights 8 | 9 | In the previous section we setup Prometheus to collect the metrics from App Mesh. Ideally we want to have the metrics available in Cloudwatch. We can use the [Container Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) which recently [added support for collecting prometheus metrics](https://aws.amazon.com/blogs/containers/using-prometheus-metrics-in-amazon-cloudwatch/). 10 | 11 | We will follow a GitOps methodology to install Container Insights. 12 | -------------------------------------------------------------------------------- /content/40_workshop_4_hipo-teams/60_install-pod-info/10_about_podinfo.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Introducing Podinfo" 3 | chapter = false 4 | weight = 10 5 | +++ 6 | 7 | Podinfo is a tiny web application made with Go that showcases best practices of running microservices in Kubernetes. It provides a simple web interface that allows you verify the operation of ingresses and/or service meshes. Podinfo was written by Stefan Prodan of Weaveworks, and is freely available on **github.** There are many options, and URLs are available to provide a wealth of information. [More information on Podinfo is available here.](https://github.com/stefanprodan/podinfo) 8 | 9 | For our workshop, we will be using `podinfo` to show how to use App Mesh and the observability it gives us. 10 | 11 | We will be deploying podinfo in the following logical architecture: 12 | 13 | ![PodInfo Logical Architecture](/images/podinfo_app_mesh.png) 14 | -------------------------------------------------------------------------------- /content/40_workshop_4_hipo-teams/60_install-pod-info/70_update_routing.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Update the routing" 3 | chapter = false 4 | weight = 70 5 | +++ 6 | 7 | We are happy that **v2** of the backend service is behaving as expected and want to switch 100% of the traffic to it. 8 | 9 | Edit the `apps/3-podinfo-virtual-services.yaml` file so it looks like this: 10 | 11 | ```bash 12 | apiVersion: appmesh.k8s.aws/v1beta1 13 | kind: VirtualService 14 | metadata: 15 | name: backend-podinfo.apps.svc.cluster.local 16 | namespace: apps 17 | spec: 18 | meshName: apps 19 | virtualRouter: 20 | name: backend-podinfo-router 21 | routes: 22 | - name: podinfo-route 23 | http: 24 | match: 25 | prefix: / 26 | action: 27 | weightedTargets: 28 | - virtualNodeName: backend-podinfo-v2 29 | weight: 100 30 | ``` 31 | 32 | {{% notice note %}} 33 | We have removed the target for **v1** and updated the target for **v2** to be 100. 34 | {{% /notice %}} 35 | 36 | Open a new terminal window in **Cloud9** (make sure you leave the other terminal window running the query). 37 | 38 | Use the second terminal window to add and then commit **3-podinfo-virtual-services.yaml**. Push the the changes to your GitHub repo. Flux will pick this change up and apply it. 39 | 40 | Go back to the original terminal window. In about a minutes you will see the output change and the **hostname** will always show **v2**. 41 | -------------------------------------------------------------------------------- /content/40_workshop_4_hipo-teams/60_install-pod-info/80_revert_routing.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Revert the routing" 3 | chapter = false 4 | weight = 80 5 | +++ 6 | 7 | The support department is receiving calls from customers about errors they are getting after the new release. You want to put the routing back to a 50:50 split. 8 | 9 | This can be done in 2 ways: 10 | 11 | * Revert the last commit and force push - rewrites history 12 | * Fix forward - by updating the file and committing/push 13 | 14 | If you revert the change you will lose the history of the routing changes. Many companies prefer a **Fix Forward** approach because of this. 15 | 16 | We will revert the change and push just to demonstrate this approach. Run the following commands from your second terminal window (make sure you leave the other terminal window running the query): 17 | 18 | ```bash 19 | # Undo last commit and don't keep the changes 20 | git reset --hard HEAD~1 21 | 22 | # Force push the changes so Flux picks them up 23 | git push -f 24 | ``` 25 | 26 | Go back to the original terminal window. In about a minutes you will see the output change and the **hostname** will show **v1** and **v2**. 27 | 28 | Once you happy boht version are being called go back to the second terminal window and enter the following command: 29 | 30 | ```bash 31 | git log --oneline 32 | ``` 33 | 34 | You will see that there is no history of the change where 100% traffic went to **v2**. 35 | -------------------------------------------------------------------------------- /content/40_workshop_4_hipo-teams/60_install-pod-info/90_app_mesh_perf.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Performance Monitoring" 3 | chapter = false 4 | weight = 90 5 | +++ 6 | 7 | As we've made some request using App Mesh lets return to **Container Insights** to have a look at the App Mesh performnace monitoring. 8 | 9 | In the **AWS Console** make sure you are in **CloudWatch**. 10 | 11 | On the left navigation pane click **Performance Monitoring** under **Container Insights**. 12 | 13 | In the left most dropdown box choose **Prometheus AppMesh** and then in the dropdown box next to this select our cluster **gitopsworkshop**. 14 | 15 | When you do this you will see perforamne metrics that are specific to App Mesh. For example: 16 | 17 | ![Container Insights App Mesh](/images/ci_app_mesh.png) 18 | 19 | This will show useful metrics such as request per second, number of meshed pods, error codes. 20 | -------------------------------------------------------------------------------- /content/40_workshop_4_hipo-teams/60_install-pod-info/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install Sample App (PodInfo)" 3 | chapter = true 4 | weight = 60 5 | +++ 6 | 7 | # Install a sample app (PodInfo) 8 | 9 | This this section, we will be deploying a sample application called PodInfo. 10 | We will be adding Kubernetes manifests to your git repository. Each one of the manifests installs specific features and applications. 11 | 12 | You can either edit these files directly in your git repository using the "Create File" function in the git repository web user interface, or you can clone the repository into one of your **Cloud9** terminal sessions, and edit them there. If you use the `git clone` method, do not forget to add, commit, and push your changes to the repository. 13 | 14 | The software agent, `flux`, will check for new commits to the git repository, and apply the changes to the manifests automatically to each of your clusters. 15 | -------------------------------------------------------------------------------- /content/40_workshop_4_hipo-teams/60_install-pod-info/deploy.files/3-podinfo-virtual-services.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: appmesh.k8s.aws/v1beta1 2 | kind: VirtualService 3 | metadata: 4 | name: backend-podinfo.apps.svc.cluster.local 5 | namespace: apps 6 | spec: 7 | meshName: apps 8 | virtualRouter: 9 | name: backend-podinfo-router 10 | routes: 11 | - name: podinfo-route 12 | http: 13 | match: 14 | prefix: / 15 | action: 16 | weightedTargets: 17 | - virtualNodeName: backend-podinfo-v1 18 | weight: 50 19 | - virtualNodeName: backend-podinfo-v2 20 | weight: 50 -------------------------------------------------------------------------------- /content/40_workshop_4_hipo-teams/60_install-pod-info/deploy.files/4-podinfo-placeholder-services.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: backend-podinfo 5 | namespace: apps 6 | labels: 7 | app: backend-podinfo 8 | spec: 9 | ports: 10 | - port: 9898 11 | name: http -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/00_prerequisites.md/10_install_eksctl.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install eksctl" 3 | chapter = false 4 | weight = 10 5 | 6 | +++ 7 | 8 | For this workshop you will use [eksctl](https://eksctl.io/introduction/#installation). Once you install eksctl, you will be ready to get started. 9 | 10 | At the terminal command prompt, enter the following two commands: 11 | 12 | ```sh 13 | curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp && \ 14 | sudo mv /tmp/eksctl /usr/local/bin 15 | ``` 16 | 17 | This will install `eksctl` in your **Cloud9** environment. To test to make sure the command is installed properly, execute the command: 18 | 19 | ```sh 20 | eksctl get cluster 21 | ``` 22 | 23 | You should get a "No clusters found" message. 24 | 25 | ```sh 26 | eksctl version 27 | ``` 28 | 29 | For the current workshops, we will be using `eksctl` **0.19-rc.1** or newer. Please verify the version, as some features are only available in the **0.19** version of `eksctl` 30 | -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/00_prerequisites.md/20_install_kubectl.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install kubectl" 3 | chapter = false 4 | weight = 20 5 | 6 | +++ 7 | 8 | The Kubernetes command-line tool, [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux), allows you to run commands against Kubernetes clusters. You can use kubectl to deploy applications, inspect and manage cluster resources, and view logs. 9 | 10 | At the terminal command prompt, enter the following two commands: 11 | 12 | ```sh 13 | curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl && \ 14 | chmod +x ./kubectl && \ 15 | sudo mv ./kubectl /usr/local/bin/kubectl 16 | ``` 17 | 18 | This will install `kubectl` in your **Cloud9** environment. To test to make sure the command is installed properly, execute the command: 19 | 20 | ```sh 21 | kubectl version --client 22 | ``` 23 | 24 | You should see the `kubectl` version message. 25 | -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/00_prerequisites.md/30_install_fluxctl.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install fluxctl" 3 | chapter = false 4 | weight = 30 5 | 6 | +++ 7 | 8 | We will be using [Fluxctl](https://docs.fluxcd.io/en/1.17.1/references/fluxctl.html), a CLI tool that is able to talk to [Weave Flux](https://github.com/fluxcd/flux) to immediately apply and deploy changes we make to our repository. 9 | 10 | ```sh 11 | curl -Ls https://fluxcd.io/install | sh && \ 12 | sudo mv $HOME/.fluxcd/bin/fluxctl /usr/local/bin/fluxctl 13 | ``` 14 | 15 | Verify the installation: 16 | 17 | ```sh 18 | fluxctl version 19 | ``` 20 | -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/00_prerequisites.md/40_install_kustomize.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install kustomize" 3 | chapter = false 4 | weight = 40 5 | 6 | +++ 7 | 8 | [Kustomize](https://github.com/kubernetes-sigs/kustomize) lets you customize raw, template-free YAML files for multiple purposes, leaving the original YAML untouched and usable as is. 9 | 10 | We will be using kustomize to create more targeted patches that make our code easier to factor, understand, and reuse. 11 | 12 | Install kustomize for Linux: 13 | 14 | ```sh 15 | curl --silent --location --remote-name \ 16 | "https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.2.3/kustomize_kustomize.v3.2.3_linux_amd64" && \ 17 | chmod a+x kustomize_kustomize.v3.2.3_linux_amd64 && \ 18 | sudo mv kustomize_kustomize.v3.2.3_linux_amd64 /usr/local/bin/kustomize 19 | ``` 20 | 21 | Verify the install with: 22 | 23 | ```sh 24 | kustomize version 25 | ``` 26 | -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/00_prerequisites.md/50_install_aws_iam_auth.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install aws iam authenticator" 3 | chapter = false 4 | weight = 50 5 | 6 | +++ 7 | 8 | Amazon EKS uses IAM to provide authentication to your Kubernetes cluster through the AWS IAM authenticator for Kubernetes. You can configure the stock kubectl client to work with Amazon EKS by installing the AWS IAM authenticator for Kubernetes and modifying your kubectl configuration file to use it for authentication. 9 | 10 | To install aws-iam-authenticator on Cloud9 11 | 12 | Download the Amazon EKS-vended aws-iam-authenticator binary from Amazon S3: 13 | 14 | ```sh 15 | curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.15.10/2020-02-22/bin/linux/amd64/aws-iam-authenticator 16 | ``` 17 | 18 | Apply execute permissions to the binary: 19 | 20 | ```sh 21 | chmod +x ./aws-iam-authenticator 22 | ``` 23 | 24 | And move it into a common directory: 25 | 26 | ```sh 27 | sudo mv ./aws-iam-authenticator /usr/local/bin 28 | ``` 29 | 30 | Test that the aws-iam-authenticator binary works: 31 | 32 | ```sh 33 | aws-iam-authenticator help 34 | ``` 35 | -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/00_prerequisites.md/60_add_iam_role.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Add the Required IAM Role" 3 | chapter = false 4 | weight = 60 5 | 6 | +++ 7 | 8 | Creating and using EKS clusters in AWS requires specific IAM roles for the user creating and accessing EKS clusters. 9 | 10 | - Click the **A** button next to the `Share` button in the upper right hand corner of your Cloud9 workspace 11 | - Click **Manage EC2 Instance** 12 | - Make sure your `aws-cloud9-*` instance is selected 13 | - On **Actions** pull down, select **Instance Settings -> Attach/Replace IAM Role** 14 | - In the **IAM role** pull down, select **TeamRoleInstanceProfile** 15 | - To the right, click **Apply** 16 | -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/00_prerequisites.md/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Prerequisites" 3 | chapter = true 4 | weight = 1 5 | +++ 6 | 7 | ## Prerequisites 8 | 9 | Before proceeding through this workshop, please ensure that you have installed the following to your Cloud9 environment: 10 | 11 | * [Cloud9 Workspace](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/01_create_workspace.html) 12 | * [Eksctl](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/10_install_eksctl.html) 13 | * [Kubectl](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/20_install_kubectl.html) 14 | * [Fluxctl](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/30_install_fluxctl.html) 15 | * [Kustomize](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/40_install_kustomize.html) 16 | * [AWS IAM Authenticator](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/50_install_aws_iam_auth.html) 17 | * [Add IAM role](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/60_add_iam_role.html) 18 | * [Workspace IAM](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/70_workspace_iam.html) 19 | -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/10_create_cluster/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Create Cluster" 3 | chapter = true 4 | weight = 10 5 | +++ 6 | 7 | ## Create the EKS Cluster 8 | 9 | We will be creating our EKS cluster using `eksctl`. 10 | 11 | [eksctl](https://github.com/weaveworks/eksctl) is the official CLI tool for creating clusters on Amazon EKS. It is an open source project created by Weaveworks in partnership with AWS. 12 | -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/15_deployment_strategies/03_blue_green.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Blue / Green" 3 | chapter = false 4 | weight = 503 5 | +++ 6 | 7 | In Blue / Green deployments, you will have two nearly identical environments, one of which is serving live traffic (Blue). New versions of your applications can be deployed as Green. Once any testing or quality assurance has been performed on the upgraded Green environment, traffic can be routed to the Green, and the blue will eventually be scaled down. 8 | 9 | ![Blue Green Deployment](/images/blue-green-deployment-ww.png) 10 | 11 | ### Benefits of Blue/Green Deployment 12 | 13 | * Avoids versioning issues 14 | * Instant rollout and rollback (while the blue deployment still exists) 15 | 16 | ### Drawbacks of Blue/Green Deployment 17 | 18 | * Requires resource duplication 19 | * Data synchronization between the two environments can lead to partial service interruption 20 | 21 | ### Suitable Use Cases 22 | 23 | * Monolithic legacy applications 24 | * Autonomous microservices 25 | -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/15_deployment_strategies/04_canary.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Canary" 3 | chapter = false 4 | weight = 504 5 | +++ 6 | 7 | In Canary deployments, you will incrementally introduce upgraded versions of your services. Upgraded versions of your service are introduced as Canary deployments, where percentages of live traffic are routed to the upgraded services. Depending on the success / failure threshold, the rollout of the upgraded service will continue through to accepting 100% of live traffic in the instance of successful metrics / requests, or rolled back in the instance of failed requests. 8 | 9 | ![Canary Deployments](/images/canary-deployment-ww.png) 10 | 11 | ## Benefits of Canary Deployments 12 | 13 | * Low impact as the new version is released only to a subset of users 14 | * Controlled rollout with no downtime 15 | * Fast rollback 16 | 17 | ## Drawbacks of Canary Deployments 18 | 19 | * Typically requires a traffic management solution / service mesh (Envoy, Istio, Linkerd, App Mesh) 20 | * Requires backwards compatibility between API versions and database migrations 21 | 22 | ## Suitable Use Cases 23 | 24 | * User facing applications 25 | * Stateless microservices 26 | -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/15_deployment_strategies/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Deployment Strategies" 3 | chapter = true 4 | weight = 15 5 | +++ 6 | 7 | ## Deployment Strategies 8 | 9 | In this section, we will visit some deployment strategies. They include: 10 | 11 | * [Recreate](/50_workshop_5_accelerating_sdlc/15_deployment_strategies/01_recreate.html) 12 | * [Rolling Update](/50_workshop_5_accelerating_sdlc/15_deployment_strategies/02_rolling_update.html) 13 | * [Blue / Green](/50_workshop_5_accelerating_sdlc/15_deployment_strategies/03_blue_green.html) 14 | * [Canary](/50_workshop_5_accelerating_sdlc/15_deployment_strategies/04_canary.html) 15 | 16 | Today's workshop will focus on Canary deployments. 17 | -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/20_enable_gitops/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Enable GitOps" 3 | chapter = true 4 | weight = 20 5 | +++ 6 | 7 | ## Create Workshop Git Repository 8 | 9 | A GitOps workflow requires several components, including a Git repository that acts as the source of truth for your Kubernetes resources. 10 | 11 | We will be using [`eksctl enable repo`](https://eksctl.io/usage/experimental/gitops/) on our newly-built cluster to install GitOps operator components. 12 | -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/30_install_appmesh/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install App Mesh" 3 | chapter = true 4 | weight = 30 5 | +++ 6 | 7 | ## Install App Mesh 8 | 9 | In this section, we will be using an experimental feature of `eksctl` to install App Mesh. 10 | 11 | The [eksctl appmesh profile](https://github.com/weaveworks/eks-appmesh-profile) will deploy the App Mesh Kubernetes components along with monitoring and progressive delivery tooling on an EKS cluster. 12 | 13 | Components that this profile will install include: 14 | 15 | * Kubernetes custom resources: mesh, virtual nodes and virtual services 16 | * CRD controller: keeps the custom resources in sync with the App Mesh control plane 17 | * Admission controller: injects the Envoy sidecar and assigns pods to App Mesh virtual nodes 18 | * Telemetry service: Prometheus instance that collects and stores Envoy's metrics 19 | * Progressive delivery operator: [Flagger](https://flagger.app) instance that automates canary releases on top of App Mesh 20 | -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/40_progressive_delivery/01_install_podinfo.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install Podinfo demo app" 3 | chapter = false 4 | weight = 401 5 | +++ 6 | 7 | In the `/base/demo` folder, you will find several components that will help us deploy our sample `podinfo` application. 8 | 9 | Install the demo app by setting `fluxcd.io/ignore` to `false` in base/demo/namespace.yaml: 10 | 11 | ```sh 12 | cat << EOF | tee base/demo/namespace.yaml 13 | apiVersion: v1 14 | kind: Namespace 15 | metadata: 16 | name: demo 17 | annotations: 18 | fluxcd.io/ignore: "false" 19 | labels: 20 | appmesh.k8s.aws/sidecarInjectorWebhook: enabled 21 | EOF 22 | ``` 23 | 24 | Push the changes to your git repository and apply using `fluxctl`: 25 | 26 | ```sh 27 | git add -A && \ 28 | git commit -m "init demo" && \ 29 | git push origin master && \ 30 | fluxctl sync --k8s-fwd-ns flux 31 | ``` 32 | 33 | Wait for Flagger to initialize the canary: 34 | 35 | ```sh 36 | kubectl get canary -n demo 37 | ``` 38 | 39 | Find the ingress public address with: 40 | 41 | ```sh 42 | export URL="http://$(kubectl -n demo get svc/appmesh-gateway -ojson | jq -r ".status.loadBalancer.ingress[].hostname")" 43 | echo $URL 44 | ``` 45 | 46 | In a few minutes or so, podinfo will be accessible via the public URL. 47 | 48 | While we wait for podinfo to be accessible, let's review some of the components that Flagger creates / uses in order to canary your deployments on the next page. 49 | -------------------------------------------------------------------------------- /content/50_workshop_5_accelerating_sdlc/40_progressive_delivery/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Progressive Delivery" 3 | chapter = true 4 | weight = 40 5 | +++ 6 | 7 | ## Progressive Delivery 8 | 9 | In this section, we will create a Canary deployment using [Flagger](https://github.com/weaveworks/flagger) to incrementally introduce traffic to new versions of your services. Documentation for Flagger can be found [here](https://docs.flagger.app). 10 | 11 | We will demonstrate a successful Canary deployment and how an unsuccessful Canary deployment automatically gets rolled back without impacting application uptime. 12 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/00_prerequisites.md/10_install_eksctl.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install eksctl" 3 | chapter = false 4 | weight = 10 5 | 6 | +++ 7 | 8 | For this workshop you will use [eksctl](https://eksctl.io/introduction/#installation). Once you install eksctl, you will be ready to get started. 9 | 10 | At the terminal command prompt, enter the following two commands: 11 | 12 | ```sh 13 | curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp && \ 14 | sudo mv /tmp/eksctl /usr/local/bin 15 | ``` 16 | 17 | This will install `eksctl` in your **Cloud9** environment. To test to make sure the command is installed properly, execute the command: 18 | 19 | ```sh 20 | eksctl get cluster 21 | ``` 22 | 23 | You should get a "No clusters found" message. 24 | 25 | ```sh 26 | eksctl version 27 | ``` 28 | 29 | For the current workshops, we will be using `eksctl` **0.19-rc.1** or newer. Please verify the version, as some features are only available in the **0.19** version of `eksctl` 30 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/00_prerequisites.md/20_install_kubectl.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install kubectl" 3 | chapter = false 4 | weight = 20 5 | 6 | +++ 7 | 8 | The Kubernetes command-line tool, [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux), allows you to run commands against Kubernetes clusters. You can use kubectl to deploy applications, inspect and manage cluster resources, and view logs. 9 | 10 | At the terminal command prompt, enter the following two commands: 11 | 12 | ```sh 13 | curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl && \ 14 | chmod +x ./kubectl && \ 15 | sudo mv ./kubectl /usr/local/bin/kubectl 16 | ``` 17 | 18 | This will install `kubectl` in your **Cloud9** environment. To test to make sure the command is installed properly, execute the command: 19 | 20 | ```sh 21 | kubectl version --client 22 | ``` 23 | 24 | You should see the `kubectl` version message. 25 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/00_prerequisites.md/30_install_fluxctl.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install fluxctl" 3 | chapter = false 4 | weight = 30 5 | 6 | +++ 7 | 8 | We will be using [Fluxctl](https://docs.fluxcd.io/en/1.17.1/references/fluxctl.html), a CLI tool that is able to talk to [Weave Flux](https://github.com/fluxcd/flux) to immediately apply and deploy changes we make to our repository. 9 | 10 | ```sh 11 | curl -Ls https://fluxcd.io/install | sh && \ 12 | sudo mv $HOME/.fluxcd/bin/fluxctl /usr/local/bin/fluxctl 13 | ``` 14 | 15 | Verify the installation: 16 | 17 | ```sh 18 | fluxctl version 19 | ``` 20 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/00_prerequisites.md/40_install_kustomize.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install kustomize" 3 | chapter = false 4 | weight = 40 5 | 6 | +++ 7 | 8 | [Kustomize](https://github.com/kubernetes-sigs/kustomize) lets you customize raw, template-free YAML files for multiple purposes, leaving the original YAML untouched and usable as is. 9 | 10 | We will be using kustomize to create more targeted patches that make our code easier to factor, understand, and reuse. 11 | 12 | Install kustomize for Linux: 13 | 14 | ```sh 15 | curl --silent --location --remote-name \ 16 | "https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v3.2.3/kustomize_kustomize.v3.2.3_linux_amd64" && \ 17 | chmod a+x kustomize_kustomize.v3.2.3_linux_amd64 && \ 18 | sudo mv kustomize_kustomize.v3.2.3_linux_amd64 /usr/local/bin/kustomize 19 | ``` 20 | 21 | Verify the install with: 22 | 23 | ```sh 24 | kustomize version 25 | ``` 26 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/00_prerequisites.md/50_install_aws_iam_auth.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install aws iam authenticator" 3 | chapter = false 4 | weight = 50 5 | 6 | +++ 7 | 8 | Amazon EKS uses IAM to provide authentication to your Kubernetes cluster through the AWS IAM authenticator for Kubernetes. You can configure the stock kubectl client to work with Amazon EKS by installing the AWS IAM authenticator for Kubernetes and modifying your kubectl configuration file to use it for authentication. 9 | 10 | To install aws-iam-authenticator on Cloud9 11 | 12 | Download the Amazon EKS-vended aws-iam-authenticator binary from Amazon S3: 13 | 14 | ```sh 15 | curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.15.10/2020-02-22/bin/linux/amd64/aws-iam-authenticator 16 | ``` 17 | 18 | Apply execute permissions to the binary: 19 | 20 | ```sh 21 | chmod +x ./aws-iam-authenticator 22 | ``` 23 | 24 | And move it into a common directory: 25 | 26 | ```sh 27 | sudo mv ./aws-iam-authenticator /usr/local/bin 28 | ``` 29 | 30 | Test that the aws-iam-authenticator binary works: 31 | 32 | ```sh 33 | aws-iam-authenticator help 34 | ``` 35 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/00_prerequisites.md/60_add_iam_role.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Add the Required IAM Role" 3 | chapter = false 4 | weight = 60 5 | 6 | +++ 7 | 8 | Creating and using EKS clusters in AWS requires specific IAM roles for the user creating and accessing EKS clusters. 9 | 10 | - Click the **A** button next to the `Share` button in the upper right hand corner of your Cloud9 workspace 11 | - Click **Manage EC2 Instance** 12 | - Make sure your `aws-cloud9-*` instance is selected 13 | - On **Actions** pull down, select **Instance Settings -> Attach/Replace IAM Role** 14 | - In the **IAM role** pull down, select **modernization-admin** 15 | - To the right, click **Apply** 16 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/00_prerequisites.md/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Prerequisites" 3 | chapter = true 4 | weight = 1 5 | +++ 6 | 7 | ## Prerequisites 8 | 9 | Before proceeding through this workshop, please ensure that you have installed the following to your Cloud9 environment: 10 | 11 | * [Cloud9 Workspace](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/01_create_workspace.html) 12 | * [Eksctl](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/10_install_eksctl.html) 13 | * [Kubectl](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/20_install_kubectl.html) 14 | * [Fluxctl](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/30_install_fluxctl.html) 15 | * [Kustomize](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/40_install_kustomize.html) 16 | * [AWS IAM Authenticator](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/50_install_aws_iam_auth.html) 17 | * [Add IAM role](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/60_add_iam_role.html) 18 | * [Workspace IAM](/50_workshop_5_accelerating_sdlc/00_prerequisites.md/70_workspace_iam.html) 19 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/05_setup/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Cloud9 Setup" 3 | chapter = true 4 | weight = 5 5 | +++ 6 | 7 | ## Cloud9 Setup 8 | We will be setting up our git client environment on cloud9 and resizing the cloud9 instance filesystem 9 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/10_create_cluster/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Create Cluster" 3 | chapter = true 4 | weight = 10 5 | +++ 6 | 7 | ## Create the EKS Cluster 8 | 9 | We will be creating our EKS cluster using `eksctl`. 10 | 11 | [eksctl](https://github.com/weaveworks/eksctl) is the official CLI tool for creating clusters on Amazon EKS. It is an open source project created by Weaveworks in partnership with AWS. 12 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/20_enable_gitops/02_eksctl_enable_repo.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Eksctl Enable Repo" 3 | chapter = false 4 | weight = 202 5 | +++ 6 | 7 | Ensure you are in the root of your Cloud9 Environment and clone your repository. 8 | 9 | ```sh 10 | GITHUB_DIR=$PWD/src/github.com 11 | GIT_EMAIL=$(git config -f ~/.gitconfig --get user.email) 12 | GIT_ORG=$(git config -f ~/.gitconfig --get user.name) 13 | 14 | eksctl enable repo \ 15 | --git-url git@github.com:$GIT_ORG/${EKS_CLUSTER_NAME}-config \ 16 | --git-email $GIT_EMAIL \ 17 | --cluster $EKS_CLUSTER_NAME \ 18 | --region "$AWS_DEFAULT_REGION" 19 | ``` 20 | 21 | `eksctl enable repo` will install FluxCD and the Helm Operator (with support for Helm v3). 22 | 23 | When the command finishes, you will be prompted to add Flux's SSH public key to your GitHub repository. 24 | 25 | Copy the public key and create a deploy key with write access to your GitHub repository. 26 | 27 | You can add a deploy key to your repository by going to: **Settings > Deploy keys**. Click on **Add deploy key**, and check **Allow write access**. Then paste the Flux public key and click **Add key**. 28 | 29 | Once you have added the deploy key, Flux will pick up the changes in the repository and deploy them to the cluster. 30 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/20_enable_gitops/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Enable GitOps" 3 | chapter = true 4 | weight = 20 5 | +++ 6 | 7 | ## Create Workshop Git Repository 8 | 9 | A GitOps workflow requires several components, including a Git repository that acts as the source of truth for your Kubernetes resources. 10 | 11 | We will be using [`eksctl enable repo`](https://eksctl.io/usage/experimental/gitops/) on our newly-built cluster to install GitOps operator components. 12 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/30_deploy_appdev_profile/01_app_dev.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Deploy app-dev profile" 3 | chapter = false 4 | weight = 301 5 | +++ 6 | 7 | ```sh 8 | EKSCTL_EXPERIMENTAL=true eksctl enable profile app-dev \ 9 | --git-url git@github.com:$GIT_ORG/${EKS_CLUSTER_NAME}-config \ 10 | --git-email $GIT_EMAIL \ 11 | --cluster $EKS_CLUSTER_NAME \ 12 | --region "$AWS_DEFAULT_REGION" 13 | 14 | mkdir -p $GITHUB_DIR/$GIT_ORG 15 | cd $GITHUB_DIR/$GIT_ORG 16 | git clone git@github.com:$GIT_ORG/${EKS_CLUSTER_NAME}-config.git 17 | cd ${EKS_CLUSTER_NAME}-config 18 | ``` 19 | Wait a minute or two for flux to deploy applications, verify with 'kubectl get pods -A' -------------------------------------------------------------------------------- /content/60_workshop_6_ml/30_deploy_appdev_profile/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Deploy Application Development Profile" 3 | chapter = true 4 | weight = 30 5 | +++ 6 | 7 | ## Deploy Application Development Profile 8 | 9 | Add [app-dev](https://eksctl.io/gitops-quickstart/) profile 10 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/40_kubeflow/01_install_kubeflow.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Deploy Kubeflow" 3 | chapter = false 4 | weight = 401 5 | +++ 6 | 7 | Install the kubeflow: 8 | 9 | ```sh 10 | cd $GITHUB_DIR/$GIT_ORG 11 | wget https://github.com/kubeflow/kfctl/releases/download/v1.0.2/kfctl_v1.0.2-0-ga476281_linux.tar.gz 12 | tar -zxvf kfctl_v1.0.2-0-ga476281_linux.tar.gz 13 | sudo mv kfctl /usr/bin 14 | rm kfctl_v1.0.2-0-ga476281_linux.tar.gz 15 | 16 | export AWS_CLUSTER_NAME=$EKS_CLUSTER_NAME 17 | export KF_NAME=${AWS_CLUSTER_NAME} 18 | export BASE_DIR=$GITHUB_DIR/$GIT_ORG/kubeflow-config 19 | export KF_DIR=${BASE_DIR}/${KF_NAME} 20 | mkdir -p ${KF_DIR} 21 | cd ${KF_DIR} 22 | export CONFIG_URI=https://raw.githubusercontent.com/kubeflow/manifests/v1.0-branch/kfdef/kfctl_aws.v1.0.2.yaml 23 | wget -O kfctl_aws.yaml $CONFIG_URI 24 | 25 | grep -v eksctl kfctl_aws.yaml > kfctl.yaml 26 | sed -i s/kubeflow-aws/${AWS_CLUSTER_NAME}/ kfctl.yaml 27 | sed -i s/roles:/enablePodIamPolicy\:\ true/ kfctl.yaml 28 | sed -i s/us-west-2/${AWS_DEFAULT_REGION}/ kfctl.yaml 29 | sed -i s/roles:/enablePodIamPolicy\:\ true/ kfctl.yaml 30 | 31 | export CONFIG_FILE=${KF_DIR}/kfctl.yaml 32 | kfctl apply -V -f ${CONFIG_FILE} 33 | ``` 34 | 35 | In a few minutes or so you will see deployments in 'kubeflow' namespace, verify using 'kubectl get all -n kubeflow' 36 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/40_kubeflow/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Kubeflow" 3 | chapter = true 4 | weight = 40 5 | +++ 6 | 7 | In this section, we will deploy [Kubeflow](https://github.com/kubeflow/kubeflow) 8 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/50_titanic_sample_application/02_kubeflow_ui.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Kubeflow UI" 3 | chapter = false 4 | weight = 502 5 | +++ 6 | 7 | To enable the mlops-user to do a kubectl port-forward: 8 | 9 | ```sh 10 | # This repo no longer works. Removed a potential security flaw. 11 | aws iam attach-user-policy --user-name mlops-user --policy-arn arn:aws:iam::aws:policy/AdministratorAccess 12 | eksctl create iamidentitymapping --cluster $EKS_CLUSTER_NAME --group system:masters --username mlops-user --arn $(aws iam get-user --user-name mlops-user | jq -r '."User"["Arn"]') 13 | ``` 14 | 15 | A shell script is provided to generate the commands required to run kubectl port-forward on workstation 16 | 17 | ```sh 18 | aws-titanic/get-port-forward-cmds.sh $EKS_CLUSTER_NAME 19 | ``` 20 | 21 | Run the commands generated on a terminal on your workstation (not cloud9 session) 22 | 23 | Access UI via: http://127.0.0.1:8080/ 24 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/50_titanic_sample_application/03_build model.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Build Model" 3 | chapter = false 4 | weight = 503 5 | +++ 6 | 7 | 8 | ## Install sbt 9 | 10 | ```sh 11 | curl -s "https://get.sdkman.io" | bash 12 | source "$HOME/.sdkman/bin/sdkman-init.sh" 13 | sdk install java 14 | sdk install sbt 15 | ``` 16 | 17 | ## Build Spark Jars 18 | 19 | ```sh 20 | sbt clean package 21 | aws s3api put-object --bucket $BUCKET_NAME --key emr/titanic/titanic-survivors-prediction_2.11-1.0.jar --body target/scala-2.11/titanic-survivors-prediction_2.11-1.0.jar 22 | ``` 23 | 24 | > Note: EMR has all spark libariries and this project doesn't reply on third-party library. We don't need to build fat jars. 25 | 26 | ## The dataset 27 | 28 | Check Kaggle [Titanic: Machine Learning from Disaster](https://www.kaggle.com/c/titanic) for more details about this problem. 70% training dataset is used to train model and rest 30% for validation. 29 | 30 | A copy of train.csv is included in this repository, it needs to be uploaded to S3. 31 | 32 | ```sh 33 | aws s3api put-object --bucket $BUCKET_NAME --key emr/titanic/train.csv --body train.csv 34 | ``` 35 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/50_titanic_sample_application/04_build pipeline.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Build Pipeline" 3 | chapter = false 4 | weight = 504 5 | +++ 6 | 7 | ## Install 8 | 9 | See [building a pipeline](https://www.kubeflow.org/docs/guides/pipelines/build-pipeline/) to install the Kubeflow Pipelines SDK. 10 | The following command will install the tools required 11 | 12 | ```sh 13 | wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh 14 | bash Miniconda3-latest-Linux-x86_64.sh 15 | ``` 16 | 17 | ```sh 18 | source /home/ec2-user/.bashrc 19 | conda create --name mlpipeline python=3.7 20 | ``` 21 | 22 | ```sh 23 | pip3 install --user kfp --upgrade 24 | rm Miniconda3-latest-Linux-x86_64.sh 25 | ``` 26 | 27 | ## Compiling the pipeline template 28 | 29 | ```sh 30 | cd aws-titanic 31 | mkdir -p build 32 | sed s/mlops-kubeflow-pipeline-data/$BUCKET_NAME/g titanic-survival-prediction.py | sed s/aws-region/$EMR_REGION/ > build/titanic-survival-prediction.py 33 | dsl-compile --py build/titanic-survival-prediction.py --output build/titanic-survival-prediction.tar.gz 34 | aws s3api put-object --bucket $BUCKET_NAME --key emr/titanic/titanic-survival-prediction.tar.gz --body build/titanic-survival-prediction.tar.gz 35 | ``` 36 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/50_titanic_sample_application/05_run.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Run Pipeline" 3 | chapter = false 4 | weight = 505 5 | +++ 6 | 7 | ## Download the pipeline tar to workstation 8 | 9 | Using the portforward access to the Kubeflow UI the upload from URL option does not work so it is necessary to download the file to your workstation. 10 | A shell script is provided to generate the commands required. 11 | ```sh 12 | ./get-tar-cmds.sh 13 | ``` 14 | 15 | ## Run experiment 16 | 17 | Now use the kubeflow UI to upload the pipeline file and run an experiment. 18 | 19 | ## Check results 20 | 21 | Open the Kubeflow pipelines UI. Create a new pipeline, and then upload the compiled specification (`.tar.gz` file) as a new pipeline template. 22 | 23 | Once the pipeline done, you can go to the S3 path specified in `output` to check your prediction results. There're three columes, `PassengerId`, `prediction`, `Survived` (Ground True value) 24 | 25 | ``` 26 | ... 27 | 4,1,1 28 | 5,0,0 29 | 6,0,0 30 | 7,0,0 31 | ... 32 | ``` 33 | 34 | Find the result file name: 35 | 36 | ```sh 37 | aws s3api list-objects --bucket $BUCKET_NAME --prefix emr/titanic/output 38 | ``` 39 | 40 | Download it and analyse: 41 | 42 | ```sh 43 | export RESULT_FILE= 44 | aws s3api get-object --bucket $BUCKET_NAME --key emr/titanic/output/$RESULT_FILE $HOME/$RESULT_FILE 45 | grep ",1,1\|,0,0" $HOME/$RESULT_FILE | wc -l # To count correct results 46 | wc -l $RESULT_FILE # To count items in file 47 | ``` 48 | -------------------------------------------------------------------------------- /content/60_workshop_6_ml/50_titanic_sample_application/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Example application - Titanic Survival Prediction" 3 | chapter = true 4 | weight = 50 5 | +++ 6 | 7 | ## Titanic Survival Prediction 8 | 9 | In this section, we will build and deploy a sample application [Titanic Survival Prediction](https://github.com/paulcarlton-ww/mlops-titanic) 10 | 11 | The sample runs a Spark ML pipeline to train a classfication model using random forest on AWS Elastic Map Reduce(EMR). 12 | 13 | [Titanic: Machine Learning from Disaster](https://www.kaggle.com/c/titanic) 14 | copy of [Jeffwan's code](https://github.com/Jeffwan/aws-emr-titanic-ml-example) for gitops workshop 15 | Also pipeline sample from [kubeflow/pipeline](https://github.com/kubeflow/pipelines/tree/master/samples/contrib/aws-samples/titanic-survival-prediction) -------------------------------------------------------------------------------- /content/70_workshop_7_multicloud/10_prerequisites/11_add_the_role.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Add the Required IAM Role" 3 | chapter = false 4 | weight = 11 5 | 6 | +++ 7 | 8 | Creating and using EKS clusters in AWS requires specific IAM roles for the user creating and accessing EKS clusters. 9 | 10 | ## Attach to cloud9 instance 11 | 12 | - Switch to the **AWS Console** (You can open the console from the "Team Dashboard") 13 | - Under **Services**, select **EC2** 14 | - Click **Running Instances** 15 | - Select the instance named "aws-cloud9-..." by clicking the check box to the left of the name 16 | - On **Actions** pull down, select **Instance Settings -> Attach/Replace IAM Role** 17 | - In the **IAM role** pull down, select **eksworkshop-admin** 18 | - To the right, click **Apply** 19 | -------------------------------------------------------------------------------- /content/70_workshop_7_multicloud/10_prerequisites/12_install_aws-iam.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install AWS IAM" 3 | chapter = false 4 | weight = 12 5 | 6 | +++ 7 | 8 | Amazon EKS uses IAM to provide authentication to your Kubernetes cluster through the AWS IAM authenticator for Kubernetes. You can configure the stock kubectl client to work with Amazon EKS by installing the AWS IAM authenticator for Kubernetes and modifying your kubectl configuration file to use it for authentication. 9 | 10 | To install aws-iam-authenticator on Cloud9 11 | 12 | Download the Amazon EKS-vended aws-iam-authenticator binary from Amazon S3: 13 | 14 | ``` 15 | curl -o aws-iam-authenticator https://amazon-eks.s3.us-west-2.amazonaws.com/1.15.10/2020-02-22/bin/linux/amd64/aws-iam-authenticator 16 | chmod +x ./aws-iam-authenticator 17 | sudo mv ./aws-iam-authenticator /usr/local/bin 18 | ``` 19 | 20 | Test that the aws-iam-authenticator binary works: 21 | 22 | ``` 23 | aws-iam-authenticator help 24 | ``` 25 | -------------------------------------------------------------------------------- /content/70_workshop_7_multicloud/10_prerequisites/14_install_eksctl.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install eksctl" 3 | chapter = false 4 | weight = 14 5 | 6 | +++ 7 | 8 | For this workshop you will use a [eksctl](https://eksctl.io/introduction/#installation). Once you install eksctl, you will be ready to get started. 9 | 10 | At the terminal command prompt, enter the following two commands: 11 | 12 | ``` 13 | curl --silent --location "https://github.com/weaveworks/eksctl/releases/latest/download/eksctl_$(uname -s)_amd64.tar.gz" | tar xz -C /tmp 14 | sudo mv /tmp/eksctl /usr/local/bin 15 | ``` 16 | 17 | This will install `eksctl` in your **Cloud9** environment. To test to make sure the command is installed properly, execute the command: 18 | 19 | ``` 20 | eksctl version 21 | ``` 22 | -------------------------------------------------------------------------------- /content/70_workshop_7_multicloud/10_prerequisites/15_create_eks_cluster.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Create EKS cluster" 3 | chapter = false 4 | weight = 15 5 | +++ 6 | 7 | # Create EKS Cluster 8 | 9 | - In a seperate terminal, run 10 | 11 | ```sh 12 | eksctl create cluster --version 1.17 --nodes 1 -t t3.large my-management-cluster 13 | ``` 14 | 15 | This will save us time while we go through next steps -------------------------------------------------------------------------------- /content/70_workshop_7_multicloud/10_prerequisites/16_install_kubectl.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install kubectl" 3 | chapter = false 4 | weight = 16 5 | +++ 6 | 7 | The Kubernetes command-line tool, [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-kubectl-on-linux), allows you to run commands against Kubernetes clusters. You can use kubectl to deploy applications, inspect and manage cluster resources, and view logs. 8 | 9 | At the terminal command prompt, enter the following two commands: 10 | 11 | ``` 12 | curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl 13 | chmod +x ./kubectl 14 | sudo mv ./kubectl /usr/local/bin/kubectl 15 | ``` 16 | 17 | This will install `kubectl` in your **Cloud9** environment. To test to make sure the command is installed properly, execute the command: 18 | 19 | ``` 20 | kubectl version --client 21 | ``` 22 | 23 | You should see the `kubectl` version message. 24 | 25 | 26 | -------------------------------------------------------------------------------- /content/70_workshop_7_multicloud/10_prerequisites/17_install_helm.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install helm" 3 | chapter = false 4 | weight = 17 5 | +++ 6 | 7 | [Helm](https://helm.sh/) describes itself as a 'package manager for kubernetes' and can be used to deploy resources to Kubernetes. 8 | 9 | You package your application as a **chart** which can contain templated files (usually Kubernetes resources) and default configuration **values** too use when rendering the template. Charts are reusable and values can be overriden for specific environments. 10 | 11 | {{% notice tip %}} 12 | We are using Helm v3 in the workshops. So there is no `tiller`. If you are using your own environment and not the workshops **Cloud9** environment and you have Helm v2 the commands should work ok. 13 | {{% /notice %}} 14 | 15 | At the terminal command prompt, enter the following command to download Helm: 16 | 17 | ```bash 18 | curl -L https://get.helm.sh/helm-v3.1.2-linux-amd64.tar.gz -o helm.tar.gz 19 | tar xvfz helm.tar.gz linux-amd64/helm 20 | chmod +x ./linux-amd64/helm 21 | sudo mv ./linux-amd64/helm /usr/local/bin 22 | rm -rf ./linux-amd64 23 | rm helm.tar.gz 24 | ``` 25 | 26 | This will install `helm` in your **Cloud9** environment. To test to make sure the command is installed properly, execute the command: 27 | 28 | ```bash 29 | helm version 30 | ``` 31 | 32 | You should see the `helm` version message. 33 | 34 | -------------------------------------------------------------------------------- /content/70_workshop_7_multicloud/10_prerequisites/18_install_fluxctl.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install fluxctl" 3 | chapter = false 4 | weight = 18 5 | 6 | +++ 7 | 8 | ## Install Fluxctl 9 | 10 | [Fluxctl](https://docs.fluxcd.io/en/1.17.1/references/fluxctl.html) is a CLI tool that is able to talk to [Weave Flux](https://github.com/fluxcd/flux). 11 | 12 | Install by running this command: 13 | 14 | ```sh 15 | curl -Ls https://fluxcd.io/install | sh && \ 16 | sudo mv $HOME/.fluxcd/bin/fluxctl /usr/local/bin/fluxctl 17 | ``` 18 | 19 | Verify the installation: 20 | 21 | ```sh 22 | fluxctl version 23 | ``` 24 | -------------------------------------------------------------------------------- /content/70_workshop_7_multicloud/10_prerequisites/19_direnv.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install direnv" 3 | chapter = false 4 | weight = 19 5 | +++ 6 | 7 | [direnv](https://direnv.net) takes care of exporting environment variables automatically based on the directory we're in. 8 | 9 | To install direnv, run the following commands. 10 | 11 | ```sh 12 | curl -sfL https://direnv.net/install.sh | bash 13 | echo "eval '$(direnv hook bash)'" >> ~/.bashrc 14 | source ~/.bashrc 15 | ``` -------------------------------------------------------------------------------- /content/70_workshop_7_multicloud/10_prerequisites/20_clusterctl.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install clusterctl" 3 | chapter = false 4 | weight = 20 5 | +++ 6 | 7 | The CluserAPI (CAPI) is a project of SIG Cluster Lifecycle to bring declarative, Kubernetes-style APIs to cluster creation, configuration, and management. 8 | 9 | [cluserctl](https://cluster-api.sigs.k8s.io/) is the cli that we'll use to bootstrap the CAPI controllers. 10 | 11 | ```sh 12 | curl -L https://github.com/kubernetes-sigs/cluster-api/releases/download/v0.3.6/clusterctl-linux-amd64 -o clusterctl 13 | chmod +x ./clusterctl 14 | sudo mv ./clusterctl /usr/local/bin/clusterctl 15 | ``` 16 | 17 | Validate that it's working 18 | 19 | ```sh 20 | clusterctl version 21 | ``` -------------------------------------------------------------------------------- /content/70_workshop_7_multicloud/10_prerequisites/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Prerequisites for Workshop" 3 | chapter = true 4 | weight = 10 5 | +++ 6 | 7 | # Setup All the Required Tools & Permissions 8 | 9 | To complete these workshops, you will first need to install eksctl. Instructions for doing this can be found at [eksctl.io](https://eksctl.io/introduction/#installation). eksctl (pronounced "eks control") is a simple CLI tool for creating clusters on EKS. It is written in Go, uses CloudFormation, was created by [Weaveworks](https://weave.works) and it welcomes contributions from the community. 10 | 11 | {{% notice warning %}} 12 | If you are using your own AWS account, you will need permissions to create EKS clusters plus admin rights within your EKS cluster to configure configuration rules and install agents. Ensure you have authority within your organization to do this in your tenant. 13 | {{% /notice %}} 14 | 15 | -------------------------------------------------------------------------------- /content/70_workshop_7_multicloud/15_setup_git_repo/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Set up git repo" 3 | chapter = true 4 | weight = 15 5 | +++ 6 | 7 | # Set up Git repo 8 | 9 | ## Github SSH key 10 | 11 | * Add ssh key to your Github account 12 | * On Cloud9, run: `ssh-keygen -t rsa -b 4096` and accept defaults 13 | * Run `cat ~/.ssh/id_rsa.pub` and copy the output 14 | * Go to [Github > Settings > SSH Keys > New SSH key](https://github.com/settings/ssh/new) and paste your public key 15 | 16 | ## Create git repo 17 | 18 | * Create new repo Github called `aws-gitops-multicloud` and turn on "Initialize this repository with a README" 19 | * Init the repo 20 | 21 | ```sh 22 | mkdir aws-gitops-multicloud 23 | cd aws-gitops-multicloud 24 | echo "# aws-gitops-multicloud" >> README.md 25 | git init 26 | git add README.md 27 | git commit -m "first commit" 28 | ``` 29 | 30 | * Push the changes. Make sure you set the url correctly 31 | 32 | ```sh 33 | git remote add origin 34 | git push -u origin master 35 | ``` 36 | 37 | * Create two directories in the repo: `mkdir flux-mgmt` and `mkdir flux-ec2` 38 | 39 | ## Clone Workshop Repo to use examples 40 | 41 | We'll use some examples from the below repo 42 | 43 | * Clone the [workshop repo](https://github.com/saada/gitops-cluster-management) 44 | 45 | ```sh 46 | cd .. 47 | git clone git@github.com:saada/gitops-cluster-management.git 48 | ``` -------------------------------------------------------------------------------- /content/70_workshop_7_multicloud/50_cleanup/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Cleanup" 3 | chapter = true 4 | weight = 50 5 | +++ 6 | 7 | 8 | 9 | # Cleanup 10 | 11 | * Delete the [ssh key](https://github.com/settings/keys) we added to your github 12 | * Delete the deploy key in https://github.com/YOURUSERNAME/gitops-cluster-management/settings/keys we added to your github -------------------------------------------------------------------------------- /content/80_workshop_8_hybrid_ssp/05_architecture/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Cluster Architecture" 3 | chapter = true 4 | weight = 5 5 | +++ 6 | 7 | # Create Clusters 8 | 9 | For this workshop we will simulate a three cluster architecture, running in fully isolated environments. One AWS account will be used for our Development workloads, a separate AWS Account will be used for Integration workloads, and lastly EKS-Distro will be running on a set of virtual machines deployed on premises. 10 | 11 | {{% notice info %}} 12 | To keep the scope of the workshop within the available time and resources, some of the architecture detailed above will be simulated by using namespacess as well a minimal version of EKS-Distro running in an EC2 instance in AWS. 13 | {{% /notice %}} 14 | 15 | ![Cluster Architecture](/images/module_8-clusters.png) -------------------------------------------------------------------------------- /content/95_workshop_hybrid_eks/00_install_flux/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Install Flux and Bootstrap your Cluster" 3 | chapter = true 4 | weight = 1 5 | +++ 6 | 7 | # Install Flux and Bootstrap your Cluster 8 | 9 | ## Create a GitHub Personal Access Token 10 | 11 | Follow the official GitHub Instructions on how to [create a Personal Access Token](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token). Make sure to grant `repo` scope to your token. 12 | 13 | Note that you will only be able to see this token once at the time of creation, make sure to copy it and keep it safe. You should delete the token at the end of this workshop. 14 | 15 | ## Install Flux 16 | 17 | ```shell 18 | curl -s https://fluxcd.io/install.sh | sudo bash 19 | ``` 20 | 21 | ## Export your PAT to the environment 22 | 23 | ```shell 24 | export GITHUB_TOKEN={your PAT} 25 | ``` 26 | 27 | ## Make sure you can talk to your EKS cluster 28 | 29 | ```shell 30 | kubectl get nodes 31 | ``` 32 | 33 | ## Bootstrap your cluster 34 | 35 | ```shell 36 | flux bootstrap github --owner={your GitHub Username} --repository=workshop-devops --path=clusters/workshop --personal --private=false 37 | ``` 38 | 39 | ## Clone the Repo created to your Cloud9 Instance 40 | 41 | ```shell 42 | git clone https://github.com/{your GitHub Username}/workshop-devops 43 | cd workshop-devops 44 | ``` -------------------------------------------------------------------------------- /content/95_workshop_hybrid_eks/25_upgrade_your_cluster/_index.md: -------------------------------------------------------------------------------- 1 | +++ 2 | title = "Upgrade your Cluster" 3 | chapter = true 4 | weight = 25 5 | +++ 6 | 7 | # Upgrade your Cluster 8 | 9 | ## Modify your cluster manifest to a newer K8s version 10 | 11 | Open `capi-quickstart.yaml` and look for the two references to `version: v1.21.5`, change those to `version: v1.22.6` 12 | 13 | ## Push the change to your repository 14 | 15 | ```shell 16 | git commit -am "Moving version of cluster to 1.22.6" 17 | git push 18 | ``` 19 | 20 | ## Watch as the cluster upgrades 21 | 22 | ```shell 23 | clusterctl describe cluster capi-quickstart 24 | ``` -------------------------------------------------------------------------------- /layouts/partials/menu-footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Privacy | Site Terms | © 2020, Amazon Web Services, Inc. or its 5 | affiliates. All rights reserved. 6 | 7 | 8 | -------------------------------------------------------------------------------- /modules/EKS-workshop-stack.yaml: -------------------------------------------------------------------------------- 1 | AWSTemplateFormatVersion: '2010-09-09' 2 | 3 | Description: AWS EKS Workshop 4 | 5 | Resources: 6 | 7 | EKS: 8 | Type: AWS::CloudFormation::Stack 9 | Properties: 10 | TemplateURL: https://s3.amazonaws.com/aws-quickstart/quickstart-amazon-eks/templates/amazon-eks-master.template.yaml 11 | Parameters: 12 | RemoteAccessCIDR: 0.0.0.0/0 13 | NodeInstanceType: m5.2xlarge 14 | AvailabilityZones: us-west-2a, us-west-2b, us-west-2c 15 | KeyPairName: eksworkshop 16 | 17 | Outputs: {} -------------------------------------------------------------------------------- /modules/webhosting/README.md: -------------------------------------------------------------------------------- 1 | ## Webhosting and Pipeline Setup 2 | 3 | **Purpose:** Instructions for hosting the website and creating a pipeline that automatically builds new static html files and uploads them to the appropriate S3 Bucket. 4 | 5 | 1. Edit and deploy the CloudFront site in cloudfront-s3-website.yaml. You should only need to change the parameter for WorkshopHostname. Once that is complete run a command similar to the following but change the stackname 6 | 7 | > Stack takes about 20 minutes 8 | ``` 9 | ### DO NOT FORGET TO CHANGE THE STACK NAME 10 | aws cloudformation create-stack --stack-name MY-Workshop --template-body file://cloudfront-s3-website.yaml 11 | ``` 12 | 13 | 2. Edit and deploy the pipeline in pipeline.yaml. In this one you will probably want to change the first 4 parameters. ProjectName should match whatever you put for WorkshopHostname in the cloudfront-s3-website.yaml. 14 | 15 | > Stack completes in about 1-2 minutes 16 | ``` 17 | ### DO NOT FORGET TO CHANGE THE STACK NAME 18 | aws cloudformation create-stack --stack-name MY-Website-Pipeline --template-body file://pipeline.yaml --capabilities CAPABILITY_NAMED_IAM 19 | ``` 20 | 21 | If you check the Build Pipeline and Build logs you should see files successfully copied to your S3 bucket. -------------------------------------------------------------------------------- /public/css/auto-complete.css: -------------------------------------------------------------------------------- 1 | .autocomplete-suggestions { 2 | text-align: left; 3 | cursor: default; 4 | border: 1px solid #ccc; 5 | border-top: 0; 6 | background: #fff; 7 | box-shadow: -1px 1px 3px rgba(0,0,0,.1); 8 | 9 | /* core styles should not be changed */ 10 | position: absolute; 11 | display: none; 12 | z-index: 9999; 13 | max-height: 254px; 14 | overflow: hidden; 15 | overflow-y: auto; 16 | box-sizing: border-box; 17 | 18 | } 19 | .autocomplete-suggestion { 20 | position: relative; 21 | cursor: pointer; 22 | padding: 7px; 23 | line-height: 23px; 24 | white-space: nowrap; 25 | overflow: hidden; 26 | text-overflow: ellipsis; 27 | color: #333; 28 | } 29 | 30 | .autocomplete-suggestion b { 31 | font-weight: normal; 32 | color: #1f8dd6; 33 | } 34 | 35 | .autocomplete-suggestion.selected { 36 | background: #333; 37 | color: #fff; 38 | } 39 | 40 | .autocomplete-suggestion:hover { 41 | background: #444; 42 | color: #fff; 43 | } 44 | 45 | .autocomplete-suggestion > .context { 46 | font-size: 12px; 47 | } 48 | -------------------------------------------------------------------------------- /public/css/tags.css: -------------------------------------------------------------------------------- 1 | /* Tags */ 2 | 3 | #head-tags{ 4 | margin-left:1em; 5 | margin-top:1em; 6 | } 7 | 8 | #body .tags a.tag-link { 9 | display: inline-block; 10 | line-height: 2em; 11 | font-size: 0.8em; 12 | position: relative; 13 | margin: 0 16px 8px 0; 14 | padding: 0 10px 0 12px; 15 | background: #8451a1; 16 | 17 | -webkit-border-bottom-right-radius: 3px; 18 | border-bottom-right-radius: 3px; 19 | -webkit-border-top-right-radius: 3px; 20 | border-top-right-radius: 3px; 21 | 22 | -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.2); 23 | box-shadow: 0 1px 2px rgba(0,0,0,0.2); 24 | color: #fff; 25 | } 26 | 27 | #body .tags a.tag-link:before { 28 | content: ""; 29 | position: absolute; 30 | top:0; 31 | left: -1em; 32 | width: 0; 33 | height: 0; 34 | border-color: transparent #8451a1 transparent transparent; 35 | border-style: solid; 36 | border-width: 1em 1em 1em 0; 37 | } 38 | 39 | #body .tags a.tag-link:after { 40 | content: ""; 41 | position: absolute; 42 | top: 10px; 43 | left: 1px; 44 | width: 5px; 45 | height: 5px; 46 | -webkit-border-radius: 50%; 47 | border-radius: 100%; 48 | background: #fff; 49 | } 50 | -------------------------------------------------------------------------------- /public/fonts/Inconsolata.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Inconsolata.eot -------------------------------------------------------------------------------- /public/fonts/Inconsolata.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Inconsolata.ttf -------------------------------------------------------------------------------- /public/fonts/Inconsolata.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Inconsolata.woff -------------------------------------------------------------------------------- /public/fonts/Novecentosanswide-Normal-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Novecentosanswide-Normal-webfont.eot -------------------------------------------------------------------------------- /public/fonts/Novecentosanswide-Normal-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Novecentosanswide-Normal-webfont.ttf -------------------------------------------------------------------------------- /public/fonts/Novecentosanswide-Normal-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Novecentosanswide-Normal-webfont.woff -------------------------------------------------------------------------------- /public/fonts/Novecentosanswide-Normal-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Novecentosanswide-Normal-webfont.woff2 -------------------------------------------------------------------------------- /public/fonts/Novecentosanswide-UltraLight-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Novecentosanswide-UltraLight-webfont.eot -------------------------------------------------------------------------------- /public/fonts/Novecentosanswide-UltraLight-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Novecentosanswide-UltraLight-webfont.ttf -------------------------------------------------------------------------------- /public/fonts/Novecentosanswide-UltraLight-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Novecentosanswide-UltraLight-webfont.woff -------------------------------------------------------------------------------- /public/fonts/Novecentosanswide-UltraLight-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Novecentosanswide-UltraLight-webfont.woff2 -------------------------------------------------------------------------------- /public/fonts/Work_Sans_200.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Work_Sans_200.eot -------------------------------------------------------------------------------- /public/fonts/Work_Sans_200.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Work_Sans_200.ttf -------------------------------------------------------------------------------- /public/fonts/Work_Sans_200.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Work_Sans_200.woff -------------------------------------------------------------------------------- /public/fonts/Work_Sans_200.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Work_Sans_200.woff2 -------------------------------------------------------------------------------- /public/fonts/Work_Sans_300.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Work_Sans_300.eot -------------------------------------------------------------------------------- /public/fonts/Work_Sans_300.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Work_Sans_300.ttf -------------------------------------------------------------------------------- /public/fonts/Work_Sans_300.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Work_Sans_300.woff -------------------------------------------------------------------------------- /public/fonts/Work_Sans_300.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Work_Sans_300.woff2 -------------------------------------------------------------------------------- /public/fonts/Work_Sans_500.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Work_Sans_500.eot -------------------------------------------------------------------------------- /public/fonts/Work_Sans_500.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Work_Sans_500.ttf -------------------------------------------------------------------------------- /public/fonts/Work_Sans_500.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Work_Sans_500.woff -------------------------------------------------------------------------------- /public/fonts/Work_Sans_500.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/fonts/Work_Sans_500.woff2 -------------------------------------------------------------------------------- /public/images/ActiveGate_linux_installation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/ActiveGate_linux_installation.png -------------------------------------------------------------------------------- /public/images/Deck_Arrows2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/Deck_Arrows2.png -------------------------------------------------------------------------------- /public/images/Kubernetes_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/Kubernetes_menu.png -------------------------------------------------------------------------------- /public/images/PG_naming_rule_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/PG_naming_rule_preview.png -------------------------------------------------------------------------------- /public/images/PG_naming_rules.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/PG_naming_rules.png -------------------------------------------------------------------------------- /public/images/PG_naming_validation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/PG_naming_validation.png -------------------------------------------------------------------------------- /public/images/account_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/account_settings.png -------------------------------------------------------------------------------- /public/images/add_tag_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/add_tag_rule.png -------------------------------------------------------------------------------- /public/images/alerting_profile_carts_dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/alerting_profile_carts_dev.png -------------------------------------------------------------------------------- /public/images/alerting_profile_carts_ops.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/alerting_profile_carts_ops.png -------------------------------------------------------------------------------- /public/images/alerting_profile_k8s_infra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/alerting_profile_k8s_infra.png -------------------------------------------------------------------------------- /public/images/api_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/api_token.png -------------------------------------------------------------------------------- /public/images/api_token_value.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/api_token_value.png -------------------------------------------------------------------------------- /public/images/app_urls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/app_urls.png -------------------------------------------------------------------------------- /public/images/application_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/application_view.png -------------------------------------------------------------------------------- /public/images/applications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/applications.png -------------------------------------------------------------------------------- /public/images/aws_console_appmesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/aws_console_appmesh.png -------------------------------------------------------------------------------- /public/images/blue-green-deployment-ww.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/blue-green-deployment-ww.png -------------------------------------------------------------------------------- /public/images/built-in_service_naming_rules.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/built-in_service_naming_rules.png -------------------------------------------------------------------------------- /public/images/c9after.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/c9after.png -------------------------------------------------------------------------------- /public/images/c9attachrole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/c9attachrole.png -------------------------------------------------------------------------------- /public/images/c9before.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/c9before.png -------------------------------------------------------------------------------- /public/images/c9disableiam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/c9disableiam.png -------------------------------------------------------------------------------- /public/images/c9instancerole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/c9instancerole.png -------------------------------------------------------------------------------- /public/images/c9open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/c9open.png -------------------------------------------------------------------------------- /public/images/canary-deployment-ww.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/canary-deployment-ww.png -------------------------------------------------------------------------------- /public/images/carts_dev_method_hotspots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/carts_dev_method_hotspots.png -------------------------------------------------------------------------------- /public/images/carts_dev_problem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/carts_dev_problem.png -------------------------------------------------------------------------------- /public/images/carts_dev_purepath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/carts_dev_purepath.png -------------------------------------------------------------------------------- /public/images/carts_dev_response_time_analysis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/carts_dev_response_time_analysis.png -------------------------------------------------------------------------------- /public/images/carts_dev_rollout_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/carts_dev_rollout_history.png -------------------------------------------------------------------------------- /public/images/carts_promo_failure_analysis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/carts_promo_failure_analysis.png -------------------------------------------------------------------------------- /public/images/carts_promo_problem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/carts_promo_problem.png -------------------------------------------------------------------------------- /public/images/cf_confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cf_confirm.png -------------------------------------------------------------------------------- /public/images/cf_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cf_create.png -------------------------------------------------------------------------------- /public/images/cf_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cf_done.png -------------------------------------------------------------------------------- /public/images/chrome_extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/chrome_extension.png -------------------------------------------------------------------------------- /public/images/ci_app_mesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/ci_app_mesh.png -------------------------------------------------------------------------------- /public/images/ci_perf_monitoring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/ci_perf_monitoring.png -------------------------------------------------------------------------------- /public/images/clippy.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/images/cloud9_new_terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cloud9_new_terminal.png -------------------------------------------------------------------------------- /public/images/cluster_connection_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cluster_connection_error.png -------------------------------------------------------------------------------- /public/images/cluster_connection_setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cluster_connection_setup.png -------------------------------------------------------------------------------- /public/images/cluster_management_zone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cluster_management_zone.png -------------------------------------------------------------------------------- /public/images/cluster_monitoring_dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cluster_monitoring_dashboard.png -------------------------------------------------------------------------------- /public/images/cluster_nodes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cluster_nodes.png -------------------------------------------------------------------------------- /public/images/config_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/config_token.png -------------------------------------------------------------------------------- /public/images/cpu_saturation_problems.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cpu_saturation_problems.png -------------------------------------------------------------------------------- /public/images/cr_yaml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cr_yaml.png -------------------------------------------------------------------------------- /public/images/create-keypair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/create-keypair.png -------------------------------------------------------------------------------- /public/images/create_management_zone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/create_management_zone.png -------------------------------------------------------------------------------- /public/images/create_management_zone_enter_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/create_management_zone_enter_name.png -------------------------------------------------------------------------------- /public/images/custom_PG_naming_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/custom_PG_naming_rule.png -------------------------------------------------------------------------------- /public/images/custom_service_naming_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/custom_service_naming_rule.png -------------------------------------------------------------------------------- /public/images/cw_app_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cw_app_logs.png -------------------------------------------------------------------------------- /public/images/cw_log_groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cw_log_groups.png -------------------------------------------------------------------------------- /public/images/cw_metrics_container_insights.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cw_metrics_container_insights.png -------------------------------------------------------------------------------- /public/images/cw_metrics_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cw_metrics_graph.png -------------------------------------------------------------------------------- /public/images/cw_select_metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/cw_select_metrics.png -------------------------------------------------------------------------------- /public/images/deploy-dt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/deploy-dt.png -------------------------------------------------------------------------------- /public/images/deployment_status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/deployment_status.png -------------------------------------------------------------------------------- /public/images/deployments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/deployments.png -------------------------------------------------------------------------------- /public/images/drill_down_to_PurePaths.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/drill_down_to_PurePaths.png -------------------------------------------------------------------------------- /public/images/dt-capabilities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/dt-capabilities.png -------------------------------------------------------------------------------- /public/images/dt-problem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/dt-problem.png -------------------------------------------------------------------------------- /public/images/dt-topology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/dt-topology.png -------------------------------------------------------------------------------- /public/images/dt-trial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/dt-trial.png -------------------------------------------------------------------------------- /public/images/dt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/dt.png -------------------------------------------------------------------------------- /public/images/dynatrace_pods.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/dynatrace_pods.png -------------------------------------------------------------------------------- /public/images/edit_application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/edit_application.png -------------------------------------------------------------------------------- /public/images/email_notification_cpu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/email_notification_cpu.png -------------------------------------------------------------------------------- /public/images/enable_session_replay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/enable_session_replay.png -------------------------------------------------------------------------------- /public/images/event-engine-aws-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/event-engine-aws-console.png -------------------------------------------------------------------------------- /public/images/event-engine-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/event-engine-dashboard.png -------------------------------------------------------------------------------- /public/images/event-engine-initial-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/event-engine-initial-screen.png -------------------------------------------------------------------------------- /public/images/extend_management_zone_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/extend_management_zone_rule.png -------------------------------------------------------------------------------- /public/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/favicon.png -------------------------------------------------------------------------------- /public/images/filter_by_tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/filter_by_tag.png -------------------------------------------------------------------------------- /public/images/generate-paas-token-two.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/generate-paas-token-two.png -------------------------------------------------------------------------------- /public/images/generate-paas-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/generate-paas-token.png -------------------------------------------------------------------------------- /public/images/generate_api_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/generate_api_token.png -------------------------------------------------------------------------------- /public/images/generate_paas_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/generate_paas_token.png -------------------------------------------------------------------------------- /public/images/gh_deploy_key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/gh_deploy_key.png -------------------------------------------------------------------------------- /public/images/gh_repo_init.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/gh_repo_init.png -------------------------------------------------------------------------------- /public/images/gopher-404.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/gopher-404.jpg -------------------------------------------------------------------------------- /public/images/guestbook_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/guestbook_app.png -------------------------------------------------------------------------------- /public/images/guestbook_dt_services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/guestbook_dt_services.png -------------------------------------------------------------------------------- /public/images/guestbook_services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/guestbook_services.png -------------------------------------------------------------------------------- /public/images/host_consuming_processes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/host_consuming_processes.png -------------------------------------------------------------------------------- /public/images/host_cpu_usage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/host_cpu_usage.png -------------------------------------------------------------------------------- /public/images/host_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/host_view.png -------------------------------------------------------------------------------- /public/images/hosts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/hosts.png -------------------------------------------------------------------------------- /public/images/iam-1-create-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/iam-1-create-user.png -------------------------------------------------------------------------------- /public/images/iam-2-attach-policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/iam-2-attach-policy.png -------------------------------------------------------------------------------- /public/images/iam-3-create-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/iam-3-create-user.png -------------------------------------------------------------------------------- /public/images/iam-4-save-url.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/iam-4-save-url.png -------------------------------------------------------------------------------- /public/images/install_ActiveGate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/install_ActiveGate.png -------------------------------------------------------------------------------- /public/images/invitation_email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/invitation_email.png -------------------------------------------------------------------------------- /public/images/invite_new_user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/invite_new_user.png -------------------------------------------------------------------------------- /public/images/k8-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/k8-dashboard.png -------------------------------------------------------------------------------- /public/images/k8-log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/k8-log.png -------------------------------------------------------------------------------- /public/images/k8-pod-metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/k8-pod-metadata.png -------------------------------------------------------------------------------- /public/images/k8-tracing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/k8-tracing.png -------------------------------------------------------------------------------- /public/images/k8s_infra_resource_alert_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/k8s_infra_resource_alert_rule.png -------------------------------------------------------------------------------- /public/images/k8s_team_notification_setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/k8s_team_notification_setup.png -------------------------------------------------------------------------------- /public/images/keep_calm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/keep_calm.png -------------------------------------------------------------------------------- /public/images/keypair-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/keypair-menu.png -------------------------------------------------------------------------------- /public/images/keypair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/keypair.png -------------------------------------------------------------------------------- /public/images/kubernetes_node_analysis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/kubernetes_node_analysis.png -------------------------------------------------------------------------------- /public/images/kubernetes_problematic_nodes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/kubernetes_problematic_nodes.png -------------------------------------------------------------------------------- /public/images/management_zone_rule_guestbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/management_zone_rule_guestbook.png -------------------------------------------------------------------------------- /public/images/management_zone_rule_namespace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/management_zone_rule_namespace.png -------------------------------------------------------------------------------- /public/images/management_zone_rule_sockshop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/management_zone_rule_sockshop.png -------------------------------------------------------------------------------- /public/images/management_zones.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/management_zones.png -------------------------------------------------------------------------------- /public/images/management_zones_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/management_zones_filter.png -------------------------------------------------------------------------------- /public/images/new_user_group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/new_user_group.png -------------------------------------------------------------------------------- /public/images/node_analysis_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/node_analysis_filter.png -------------------------------------------------------------------------------- /public/images/oneagent-operator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/oneagent-operator.png -------------------------------------------------------------------------------- /public/images/opa-gatekeeper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/opa-gatekeeper.png -------------------------------------------------------------------------------- /public/images/operator_pod.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/operator_pod.png -------------------------------------------------------------------------------- /public/images/paas_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/paas_token.png -------------------------------------------------------------------------------- /public/images/paas_token_value.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/paas_token_value.png -------------------------------------------------------------------------------- /public/images/pg_labels_annotations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/pg_labels_annotations.png -------------------------------------------------------------------------------- /public/images/pod_describe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/pod_describe.png -------------------------------------------------------------------------------- /public/images/podinfo_app_mesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/podinfo_app_mesh.png -------------------------------------------------------------------------------- /public/images/podinfo_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/podinfo_screen.png -------------------------------------------------------------------------------- /public/images/preview_management_zone_rule_infra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/preview_management_zone_rule_infra.png -------------------------------------------------------------------------------- /public/images/preview_management_zone_rule_services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/preview_management_zone_rule_services.png -------------------------------------------------------------------------------- /public/images/problem_notification_setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/problem_notification_setup.png -------------------------------------------------------------------------------- /public/images/promo_socks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/promo_socks.png -------------------------------------------------------------------------------- /public/images/route53-eks-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/route53-eks-1.png -------------------------------------------------------------------------------- /public/images/save-environment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/save-environment.png -------------------------------------------------------------------------------- /public/images/save_tag_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/save_tag_rule.png -------------------------------------------------------------------------------- /public/images/service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/service.png -------------------------------------------------------------------------------- /public/images/service_naming_rule_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/service_naming_rule_preview.png -------------------------------------------------------------------------------- /public/images/service_naming_rules.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/service_naming_rules.png -------------------------------------------------------------------------------- /public/images/service_naming_validation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/service_naming_validation.png -------------------------------------------------------------------------------- /public/images/services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/services.png -------------------------------------------------------------------------------- /public/images/services_filtered_by_management_zone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/services_filtered_by_management_zone.png -------------------------------------------------------------------------------- /public/images/services_filtered_dev_namespace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/services_filtered_dev_namespace.png -------------------------------------------------------------------------------- /public/images/slack_carts_dev_problem_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/slack_carts_dev_problem_open.png -------------------------------------------------------------------------------- /public/images/slack_carts_dev_problem_resolved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/slack_carts_dev_problem_resolved.png -------------------------------------------------------------------------------- /public/images/slack_carts_dev_test_run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/slack_carts_dev_test_run.png -------------------------------------------------------------------------------- /public/images/slack_carts_support_ops_problem_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/slack_carts_support_ops_problem_open.png -------------------------------------------------------------------------------- /public/images/slack_carts_support_ops_problem_resolved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/slack_carts_support_ops_problem_resolved.png -------------------------------------------------------------------------------- /public/images/slack_channels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/slack_channels.png -------------------------------------------------------------------------------- /public/images/sockshop-topology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/sockshop-topology.png -------------------------------------------------------------------------------- /public/images/sockshop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/sockshop.png -------------------------------------------------------------------------------- /public/images/super_search_box_tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/super_search_box_tag.png -------------------------------------------------------------------------------- /public/images/synthetic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/synthetic.png -------------------------------------------------------------------------------- /public/images/user_group_assignation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/user_group_assignation.png -------------------------------------------------------------------------------- /public/images/user_session_replay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/user_session_replay.png -------------------------------------------------------------------------------- /public/images/user_sessions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/user_sessions.png -------------------------------------------------------------------------------- /public/images/validate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/validate.png -------------------------------------------------------------------------------- /public/images/workshop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/workshop.png -------------------------------------------------------------------------------- /public/images/workshop02_gitops-operating-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/images/workshop02_gitops-operating-model.png -------------------------------------------------------------------------------- /public/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /public/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /public/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /public/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /public/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /public/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /public/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /public/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /public/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /public/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /public/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /public/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/public/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /static/images/ActiveGate_linux_installation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/ActiveGate_linux_installation.png -------------------------------------------------------------------------------- /static/images/Deck_Arrows2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/Deck_Arrows2.png -------------------------------------------------------------------------------- /static/images/Kubernetes_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/Kubernetes_menu.png -------------------------------------------------------------------------------- /static/images/PG_naming_rule_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/PG_naming_rule_preview.png -------------------------------------------------------------------------------- /static/images/PG_naming_rules.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/PG_naming_rules.png -------------------------------------------------------------------------------- /static/images/PG_naming_validation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/PG_naming_validation.png -------------------------------------------------------------------------------- /static/images/account_settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/account_settings.png -------------------------------------------------------------------------------- /static/images/add_tag_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/add_tag_rule.png -------------------------------------------------------------------------------- /static/images/alerting_profile_carts_dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/alerting_profile_carts_dev.png -------------------------------------------------------------------------------- /static/images/alerting_profile_carts_ops.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/alerting_profile_carts_ops.png -------------------------------------------------------------------------------- /static/images/alerting_profile_k8s_infra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/alerting_profile_k8s_infra.png -------------------------------------------------------------------------------- /static/images/api_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/api_token.png -------------------------------------------------------------------------------- /static/images/api_token_value.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/api_token_value.png -------------------------------------------------------------------------------- /static/images/app_urls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/app_urls.png -------------------------------------------------------------------------------- /static/images/application_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/application_view.png -------------------------------------------------------------------------------- /static/images/applications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/applications.png -------------------------------------------------------------------------------- /static/images/aws_console_appmesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/aws_console_appmesh.png -------------------------------------------------------------------------------- /static/images/blue-green-deployment-ww.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/blue-green-deployment-ww.png -------------------------------------------------------------------------------- /static/images/built-in_service_naming_rules.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/built-in_service_naming_rules.png -------------------------------------------------------------------------------- /static/images/c9after.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/c9after.png -------------------------------------------------------------------------------- /static/images/c9attachrole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/c9attachrole.png -------------------------------------------------------------------------------- /static/images/c9before.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/c9before.png -------------------------------------------------------------------------------- /static/images/c9disableiam.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/c9disableiam.png -------------------------------------------------------------------------------- /static/images/c9instancerole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/c9instancerole.png -------------------------------------------------------------------------------- /static/images/c9open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/c9open.png -------------------------------------------------------------------------------- /static/images/canary-deployment-ww.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/canary-deployment-ww.png -------------------------------------------------------------------------------- /static/images/carts_dev_method_hotspots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/carts_dev_method_hotspots.png -------------------------------------------------------------------------------- /static/images/carts_dev_problem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/carts_dev_problem.png -------------------------------------------------------------------------------- /static/images/carts_dev_purepath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/carts_dev_purepath.png -------------------------------------------------------------------------------- /static/images/carts_dev_response_time_analysis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/carts_dev_response_time_analysis.png -------------------------------------------------------------------------------- /static/images/carts_dev_rollout_history.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/carts_dev_rollout_history.png -------------------------------------------------------------------------------- /static/images/carts_promo_failure_analysis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/carts_promo_failure_analysis.png -------------------------------------------------------------------------------- /static/images/carts_promo_problem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/carts_promo_problem.png -------------------------------------------------------------------------------- /static/images/cf_confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cf_confirm.png -------------------------------------------------------------------------------- /static/images/cf_create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cf_create.png -------------------------------------------------------------------------------- /static/images/cf_done.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cf_done.png -------------------------------------------------------------------------------- /static/images/chrome_extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/chrome_extension.png -------------------------------------------------------------------------------- /static/images/ci_app_mesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/ci_app_mesh.png -------------------------------------------------------------------------------- /static/images/ci_perf_monitoring.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/ci_perf_monitoring.png -------------------------------------------------------------------------------- /static/images/cloud9_new_terminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cloud9_new_terminal.png -------------------------------------------------------------------------------- /static/images/cluster_connection_error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cluster_connection_error.png -------------------------------------------------------------------------------- /static/images/cluster_connection_setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cluster_connection_setup.png -------------------------------------------------------------------------------- /static/images/cluster_management_zone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cluster_management_zone.png -------------------------------------------------------------------------------- /static/images/cluster_monitoring_dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cluster_monitoring_dashboard.png -------------------------------------------------------------------------------- /static/images/cluster_nodes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cluster_nodes.png -------------------------------------------------------------------------------- /static/images/config_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/config_token.png -------------------------------------------------------------------------------- /static/images/cpu_saturation_problems.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cpu_saturation_problems.png -------------------------------------------------------------------------------- /static/images/cr_yaml.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cr_yaml.png -------------------------------------------------------------------------------- /static/images/create-keypair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/create-keypair.png -------------------------------------------------------------------------------- /static/images/create-policy-json.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/create-policy-json.png -------------------------------------------------------------------------------- /static/images/create-policy-save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/create-policy-save.png -------------------------------------------------------------------------------- /static/images/create-policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/create-policy.png -------------------------------------------------------------------------------- /static/images/create-role-create.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/create-role-create.png -------------------------------------------------------------------------------- /static/images/create-role-policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/create-role-policy.png -------------------------------------------------------------------------------- /static/images/create-role-service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/create-role-service.png -------------------------------------------------------------------------------- /static/images/create-role.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/create-role.png -------------------------------------------------------------------------------- /static/images/create_management_zone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/create_management_zone.png -------------------------------------------------------------------------------- /static/images/create_management_zone_enter_name.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/create_management_zone_enter_name.png -------------------------------------------------------------------------------- /static/images/custom_PG_naming_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/custom_PG_naming_rule.png -------------------------------------------------------------------------------- /static/images/custom_service_naming_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/custom_service_naming_rule.png -------------------------------------------------------------------------------- /static/images/cw_app_logs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cw_app_logs.png -------------------------------------------------------------------------------- /static/images/cw_log_groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cw_log_groups.png -------------------------------------------------------------------------------- /static/images/cw_metrics_container_insights.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cw_metrics_container_insights.png -------------------------------------------------------------------------------- /static/images/cw_metrics_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cw_metrics_graph.png -------------------------------------------------------------------------------- /static/images/cw_select_metrics.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/cw_select_metrics.png -------------------------------------------------------------------------------- /static/images/deploy-dt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/deploy-dt.png -------------------------------------------------------------------------------- /static/images/deployment_status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/deployment_status.png -------------------------------------------------------------------------------- /static/images/deployments.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/deployments.png -------------------------------------------------------------------------------- /static/images/drill_down_to_PurePaths.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/drill_down_to_PurePaths.png -------------------------------------------------------------------------------- /static/images/dt-capabilities.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/dt-capabilities.png -------------------------------------------------------------------------------- /static/images/dt-problem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/dt-problem.png -------------------------------------------------------------------------------- /static/images/dt-topology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/dt-topology.png -------------------------------------------------------------------------------- /static/images/dt-trial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/dt-trial.png -------------------------------------------------------------------------------- /static/images/dt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/dt.png -------------------------------------------------------------------------------- /static/images/dynatrace_pods.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/dynatrace_pods.png -------------------------------------------------------------------------------- /static/images/ebs-mod.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/ebs-mod.png -------------------------------------------------------------------------------- /static/images/ebs1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/ebs1.png -------------------------------------------------------------------------------- /static/images/edit_application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/edit_application.png -------------------------------------------------------------------------------- /static/images/email_notification_cpu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/email_notification_cpu.png -------------------------------------------------------------------------------- /static/images/enable_session_replay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/enable_session_replay.png -------------------------------------------------------------------------------- /static/images/event-engine-aws-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/event-engine-aws-console.png -------------------------------------------------------------------------------- /static/images/event-engine-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/event-engine-dashboard.png -------------------------------------------------------------------------------- /static/images/event-engine-initial-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/event-engine-initial-screen.png -------------------------------------------------------------------------------- /static/images/extend_management_zone_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/extend_management_zone_rule.png -------------------------------------------------------------------------------- /static/images/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/favicon.png -------------------------------------------------------------------------------- /static/images/filter_by_tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/filter_by_tag.png -------------------------------------------------------------------------------- /static/images/generate-paas-token-two.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/generate-paas-token-two.png -------------------------------------------------------------------------------- /static/images/generate-paas-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/generate-paas-token.png -------------------------------------------------------------------------------- /static/images/generate_api_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/generate_api_token.png -------------------------------------------------------------------------------- /static/images/generate_paas_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/generate_paas_token.png -------------------------------------------------------------------------------- /static/images/gh_deploy_key.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/gh_deploy_key.png -------------------------------------------------------------------------------- /static/images/gh_repo_init.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/gh_repo_init.png -------------------------------------------------------------------------------- /static/images/guestbook_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/guestbook_app.png -------------------------------------------------------------------------------- /static/images/guestbook_dt_services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/guestbook_dt_services.png -------------------------------------------------------------------------------- /static/images/guestbook_services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/guestbook_services.png -------------------------------------------------------------------------------- /static/images/hello-kubernetes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/hello-kubernetes.png -------------------------------------------------------------------------------- /static/images/host_consuming_processes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/host_consuming_processes.png -------------------------------------------------------------------------------- /static/images/host_cpu_usage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/host_cpu_usage.png -------------------------------------------------------------------------------- /static/images/host_view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/host_view.png -------------------------------------------------------------------------------- /static/images/hosts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/hosts.png -------------------------------------------------------------------------------- /static/images/iam-1-create-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/iam-1-create-user.png -------------------------------------------------------------------------------- /static/images/iam-2-attach-policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/iam-2-attach-policy.png -------------------------------------------------------------------------------- /static/images/iam-3-create-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/iam-3-create-user.png -------------------------------------------------------------------------------- /static/images/iam-4-save-url.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/iam-4-save-url.png -------------------------------------------------------------------------------- /static/images/install_ActiveGate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/install_ActiveGate.png -------------------------------------------------------------------------------- /static/images/invitation_email.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/invitation_email.png -------------------------------------------------------------------------------- /static/images/invite_new_user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/invite_new_user.png -------------------------------------------------------------------------------- /static/images/k8-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/k8-dashboard.png -------------------------------------------------------------------------------- /static/images/k8-log.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/k8-log.png -------------------------------------------------------------------------------- /static/images/k8-pod-metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/k8-pod-metadata.png -------------------------------------------------------------------------------- /static/images/k8-tracing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/k8-tracing.png -------------------------------------------------------------------------------- /static/images/k8s_infra_resource_alert_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/k8s_infra_resource_alert_rule.png -------------------------------------------------------------------------------- /static/images/k8s_team_notification_setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/k8s_team_notification_setup.png -------------------------------------------------------------------------------- /static/images/keep_calm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/keep_calm.png -------------------------------------------------------------------------------- /static/images/keypair-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/keypair-menu.png -------------------------------------------------------------------------------- /static/images/keypair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/keypair.png -------------------------------------------------------------------------------- /static/images/kubernetes_node_analysis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/kubernetes_node_analysis.png -------------------------------------------------------------------------------- /static/images/kubernetes_problematic_nodes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/kubernetes_problematic_nodes.png -------------------------------------------------------------------------------- /static/images/management_zone_rule_guestbook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/management_zone_rule_guestbook.png -------------------------------------------------------------------------------- /static/images/management_zone_rule_namespace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/management_zone_rule_namespace.png -------------------------------------------------------------------------------- /static/images/management_zone_rule_sockshop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/management_zone_rule_sockshop.png -------------------------------------------------------------------------------- /static/images/management_zones.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/management_zones.png -------------------------------------------------------------------------------- /static/images/management_zones_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/management_zones_filter.png -------------------------------------------------------------------------------- /static/images/module_8-add-security-groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/module_8-add-security-groups.png -------------------------------------------------------------------------------- /static/images/module_8-clusters.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/module_8-clusters.png -------------------------------------------------------------------------------- /static/images/module_8-modify-security-groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/module_8-modify-security-groups.png -------------------------------------------------------------------------------- /static/images/new_user_group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/new_user_group.png -------------------------------------------------------------------------------- /static/images/node_analysis_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/node_analysis_filter.png -------------------------------------------------------------------------------- /static/images/oneagent-operator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/oneagent-operator.png -------------------------------------------------------------------------------- /static/images/opa-gatekeeper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/opa-gatekeeper.png -------------------------------------------------------------------------------- /static/images/operator_pod.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/operator_pod.png -------------------------------------------------------------------------------- /static/images/paas_token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/paas_token.png -------------------------------------------------------------------------------- /static/images/paas_token_value.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/paas_token_value.png -------------------------------------------------------------------------------- /static/images/personal_token_scopes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/personal_token_scopes.png -------------------------------------------------------------------------------- /static/images/pg_labels_annotations.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/pg_labels_annotations.png -------------------------------------------------------------------------------- /static/images/pod_describe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/pod_describe.png -------------------------------------------------------------------------------- /static/images/podinfo_app_mesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/podinfo_app_mesh.png -------------------------------------------------------------------------------- /static/images/podinfo_screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/podinfo_screen.png -------------------------------------------------------------------------------- /static/images/preview_management_zone_rule_infra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/preview_management_zone_rule_infra.png -------------------------------------------------------------------------------- /static/images/preview_management_zone_rule_services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/preview_management_zone_rule_services.png -------------------------------------------------------------------------------- /static/images/problem_notification_setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/problem_notification_setup.png -------------------------------------------------------------------------------- /static/images/promo_socks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/promo_socks.png -------------------------------------------------------------------------------- /static/images/route53-eks-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/route53-eks-1.png -------------------------------------------------------------------------------- /static/images/save-environment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/save-environment.png -------------------------------------------------------------------------------- /static/images/save_tag_rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/save_tag_rule.png -------------------------------------------------------------------------------- /static/images/service.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/service.png -------------------------------------------------------------------------------- /static/images/service_naming_rule_preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/service_naming_rule_preview.png -------------------------------------------------------------------------------- /static/images/service_naming_rules.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/service_naming_rules.png -------------------------------------------------------------------------------- /static/images/service_naming_validation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/service_naming_validation.png -------------------------------------------------------------------------------- /static/images/services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/services.png -------------------------------------------------------------------------------- /static/images/services_filtered_by_management_zone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/services_filtered_by_management_zone.png -------------------------------------------------------------------------------- /static/images/services_filtered_dev_namespace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/services_filtered_dev_namespace.png -------------------------------------------------------------------------------- /static/images/slack_carts_dev_problem_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/slack_carts_dev_problem_open.png -------------------------------------------------------------------------------- /static/images/slack_carts_dev_problem_resolved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/slack_carts_dev_problem_resolved.png -------------------------------------------------------------------------------- /static/images/slack_carts_dev_test_run.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/slack_carts_dev_test_run.png -------------------------------------------------------------------------------- /static/images/slack_carts_support_ops_problem_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/slack_carts_support_ops_problem_open.png -------------------------------------------------------------------------------- /static/images/slack_carts_support_ops_problem_resolved.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/slack_carts_support_ops_problem_resolved.png -------------------------------------------------------------------------------- /static/images/slack_channels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/slack_channels.png -------------------------------------------------------------------------------- /static/images/sockshop-topology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/sockshop-topology.png -------------------------------------------------------------------------------- /static/images/sockshop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/sockshop.png -------------------------------------------------------------------------------- /static/images/super_search_box_tag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/super_search_box_tag.png -------------------------------------------------------------------------------- /static/images/synthetic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/synthetic.png -------------------------------------------------------------------------------- /static/images/user_group_assignation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/user_group_assignation.png -------------------------------------------------------------------------------- /static/images/user_session_replay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/user_session_replay.png -------------------------------------------------------------------------------- /static/images/user_sessions.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/user_sessions.png -------------------------------------------------------------------------------- /static/images/validate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/validate.png -------------------------------------------------------------------------------- /static/images/workshop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/workshop.png -------------------------------------------------------------------------------- /static/images/workshop02_gitops-operating-model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/aws-modernization-gitops-with-weaveworks/699c6ab5e71fc4e7b6593fd4802f79b65794976b/static/images/workshop02_gitops-operating-model.png -------------------------------------------------------------------------------- /webspec.yml: -------------------------------------------------------------------------------- 1 | version: 0.2 2 | 3 | phases: 4 | install: 5 | runtime-versions: 6 | docker: 18 7 | dotnet: 2.2 8 | python: 3.7 9 | ruby: 2.6 10 | pre_build: 11 | commands: 12 | - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-7) 13 | - IMAGE_TAG=${COMMIT_HASH:=latest} 14 | - echo Initializing Git Repo 15 | - git init 16 | - git remote add origin $FULL_REPO_URL 17 | - git fetch 18 | - git checkout -f "$CODEBUILD_RESOLVED_SOURCE_VERSION" 19 | - git submodule init 20 | - git submodule update --recursive 21 | - echo Install Hugo 22 | - wget https://github.com/gohugoio/hugo/releases/download/v0.71.0/hugo_extended_0.71.0_Linux-64bit.tar.gz -O hugo_extended_0.71.0_Linux-64bit.tar.gz 23 | - HUGO_TAR="$(find . -name "*Linux-64bit.tar.gz")" 24 | - tar -xzf $HUGO_TAR 25 | - chmod +x hugo 26 | 27 | build: 28 | commands: 29 | - echo Build Website 30 | - ./hugo -D 31 | - echo Deploy Copy Website to S3 Bucket 32 | - aws s3 cp public/ s3://${WEB_SITE_BUCKET}/ --recursive 33 | 34 | --------------------------------------------------------------------------------