├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ ├── config.yml │ ├── feature_request.md │ └── workshop-module-template.md └── workflows │ └── spellcheck.yml ├── .gitignore ├── .pre-commit-config.yaml ├── .prettierignore ├── .spelling ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── Taskfile.yaml ├── assets ├── eks-blueprints-workshop-central-stack-self.json └── eks-blueprints-workshop-team-stack-self.json ├── cdk ├── .gitignore ├── .npmignore ├── README.md ├── bin │ └── cdk.ts ├── cdk.json ├── jest.config.js ├── lib │ ├── central-stack.ts │ ├── index.ts │ └── team-stack.ts ├── package.json ├── resources │ ├── bootstrap.sh │ ├── buildspec-common.yaml │ ├── buildspec-hub.yaml │ └── buildspec-spoke.yaml ├── test │ └── cdk.test.ts └── tsconfig.json ├── content ├── 010-prerequisites.md ├── 020_setup │ ├── aws_event │ │ └── index.en.md │ ├── ide │ │ └── index.en.md │ ├── index.en.md │ └── self_paced │ │ └── index.en.md ├── 030_base │ ├── 030_create-vpc │ │ ├── 010-create-vpc.md │ │ └── index.en.md │ ├── 035_gitrepo │ │ ├── 010-create-repo.md │ │ └── index.en.md │ ├── 040_create_hub_cluster │ │ ├── 010-provision-hub.md │ │ └── index.en.md │ ├── 050_install_argocd │ │ ├── 010-bootstrap-argocd.md │ │ └── index.en.md │ ├── 060_addons │ │ ├── 010-create-loadbalancer-ui.md │ │ ├── 020-applicationset.md │ │ ├── 030-update-metadata.md │ │ ├── 033-argocd-repos.md │ │ ├── 035-bootstrap.md │ │ ├── 040-addons-applicationset.md │ │ ├── 050-loadbalancer-addon.md │ │ └── index.en.md │ ├── 070_selfmanage_argocd │ │ ├── 010-argocd-selfmanaged.md │ │ └── index.en.md │ ├── 075_namespace │ │ ├── 010-enable-namespace.md │ │ └── index.en.md │ ├── 078_workload │ │ ├── 010-deploy-workloads.md │ │ └── index.en.md │ └── index.en.md ├── 040_advanced │ ├── 010_hub_and_spoke │ │ ├── 010_hub_cluster_cleanup.md │ │ ├── 020_create-spoke-cluster │ │ │ ├── 010-provision-spoke.md │ │ │ └── index.en.md │ │ ├── 030_hub_spoke_connectivity │ │ │ ├── 010-configure-hub-cluster.md │ │ │ ├── 020-configure-spoke-staging.md │ │ │ ├── 030-test-hub-spoke-connectivity.md │ │ │ └── index.en.md │ │ ├── 040_project │ │ │ ├── 010-create-project.md │ │ │ └── index.en.md │ │ ├── 050-enable-namespace.md │ │ ├── 060-explore.md │ │ ├── 070-conclusion.md │ │ └── index.en.md │ └── index.en.md ├── 090_cleanup │ └── index.en.md ├── credits.en.md ├── index.en.md └── summary │ └── index.en.md ├── contentspec.yaml ├── cspell.config.yaml ├── gitops ├── addons │ ├── charts │ │ ├── adot-collector │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── clusterrole.yaml │ │ │ │ ├── clusterrolebinding.yaml │ │ │ │ ├── opentelemetrycollector.yaml │ │ │ │ └── serviceaccount.yaml │ │ │ └── values.yaml │ │ ├── cw-prometheus │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── _helpers.tpl │ │ │ ├── templates │ │ │ │ └── prometheus-eks.yaml │ │ │ └── values.yaml │ │ ├── eks-upgrade-insights-demo │ │ │ ├── Chart.yaml │ │ │ ├── README.md │ │ │ └── templates │ │ │ │ └── prioritylevelconfigurations.v1beta3.yaml │ │ ├── gitops-bridge │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── _helpers.tpl │ │ │ │ └── applicationsets.yaml │ │ │ └── values.yaml │ │ └── resources │ │ │ ├── gatekeeper │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── _helpers.tpl │ │ │ ├── templates │ │ │ │ └── disallowedrepos │ │ │ │ │ ├── samples │ │ │ │ │ └── repo-must-not-be-k8s-gcr-io │ │ │ │ │ │ └── constraint.yaml │ │ │ │ │ └── template.yaml │ │ │ └── values.yaml │ │ │ ├── grafana-operator │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── templates │ │ │ │ ├── amg_grafana-amp-datasource.yaml │ │ │ │ ├── amg_grafana-dashboard.yaml │ │ │ │ └── amg_grafana-identity.yaml │ │ │ └── values.yaml │ │ │ ├── karpenter │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── LICENSE │ │ │ ├── README-REPO.md │ │ │ ├── README.md │ │ │ ├── examples │ │ │ │ ├── argocd_example.yaml │ │ │ │ ├── common.yaml │ │ │ │ ├── generate.sh │ │ │ │ ├── nodegroups.yaml │ │ │ │ ├── output │ │ │ │ │ └── output.yaml │ │ │ │ └── userdata.yaml │ │ │ ├── grafana │ │ │ │ ├── Karpenter-OverView.json │ │ │ │ └── Karpenter-Per-NodeGroup.json │ │ │ ├── templates │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── headroom.yaml │ │ │ │ ├── nodeclass.yaml │ │ │ │ ├── nodepool.yaml │ │ │ │ └── priorityclass.yaml │ │ │ ├── tests │ │ │ │ ├── headroom_nodes_default_test.yaml │ │ │ │ ├── headroom_nodes_workers_test.yaml │ │ │ │ ├── nodeclass_test.yaml │ │ │ │ ├── nodepool_nodes_default_test.yaml │ │ │ │ ├── nodepool_nodes_explicittypes_test.yaml │ │ │ │ ├── nodepool_nodes_noclass_test.yaml │ │ │ │ ├── nodepool_nodes_workers_test.yaml │ │ │ │ ├── priorityclass_test.yaml │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ └── kyverno │ │ │ ├── .helmignore │ │ │ ├── Chart.yaml │ │ │ ├── _helpers.tpl │ │ │ ├── templates │ │ │ ├── disallowedrepos.yaml │ │ │ └── secrets-not-from-env-vars.yaml │ │ │ └── values.yaml │ ├── clusters │ │ ├── hub-cluster │ │ │ └── addons │ │ │ │ ├── argocd │ │ │ │ └── values.yaml │ │ │ │ └── gitops-bridge │ │ │ │ └── values.yaml │ │ └── spoke-staging │ │ │ └── addons │ │ │ └── gitops-bridge │ │ │ └── values.yaml │ ├── default │ │ └── addons │ │ │ ├── argocd │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── aws-cloudwatch-metrics │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── aws-load-balancer-controller │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── cni-metrics-helper │ │ │ └── values.yaml │ │ │ ├── cw-prometheus │ │ │ └── values.yaml │ │ │ ├── external-dns │ │ │ └── values.yaml │ │ │ ├── external-secrets │ │ │ └── values.yaml │ │ │ ├── gitops-bridge │ │ │ └── values.yaml │ │ │ ├── grafana-operator │ │ │ └── resources │ │ │ │ └── values.yaml │ │ │ ├── karpenter │ │ │ ├── resources │ │ │ │ ├── .keep │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── kyverno │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ └── metrics-server │ │ │ ├── resources │ │ │ └── values.yaml │ │ │ └── values.yaml │ ├── environments │ │ ├── control-plane │ │ │ └── addons │ │ │ │ ├── argocd │ │ │ │ ├── resources │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ ├── aws-load-balancer-controller │ │ │ │ ├── resources │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ ├── gatekeeper │ │ │ │ ├── resources │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ ├── gitops-bridge │ │ │ │ └── values.yaml │ │ │ │ ├── karpenter │ │ │ │ ├── resources │ │ │ │ │ ├── .keep │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ ├── metrics-server │ │ │ │ ├── resources │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ └── volcano │ │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ ├── dev │ │ │ └── addons │ │ │ │ ├── argocd │ │ │ │ ├── resources │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ ├── aws-load-balancer-controller │ │ │ │ ├── resources │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ ├── gatekeeper │ │ │ │ ├── resources │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ ├── gitops-bridge │ │ │ │ └── values.yaml │ │ │ │ ├── karpenter │ │ │ │ ├── resources │ │ │ │ │ ├── .keep │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ ├── metrics-server │ │ │ │ ├── resources │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ └── volcano │ │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ ├── prod │ │ │ └── addons │ │ │ │ ├── argocd │ │ │ │ ├── resources │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ ├── aws-load-balancer-controller │ │ │ │ ├── resources │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ ├── gatekeeper │ │ │ │ ├── resources │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ ├── gitops-bridge │ │ │ │ └── values.yaml │ │ │ │ ├── karpenter │ │ │ │ ├── resources │ │ │ │ │ ├── .keep │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ ├── metrics-server │ │ │ │ ├── resources │ │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ │ │ └── volcano │ │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ │ └── values.yaml │ │ └── staging │ │ │ └── addons │ │ │ ├── argocd │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── aws-load-balancer-controller │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── gatekeeper │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── gitops-bridge │ │ │ └── values.yaml │ │ │ ├── karpenter │ │ │ ├── resources │ │ │ │ ├── .keep │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── metrics-server │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ └── volcano │ │ │ ├── resources │ │ │ └── values.yaml │ │ │ └── values.yaml │ ├── grafana-charts │ │ ├── apiserver-advanced.json │ │ ├── apiserver-basic.json │ │ ├── apiserver-troubleshooting.json │ │ ├── cluster.json │ │ ├── coredns.json │ │ ├── fleet-monitoring.json │ │ ├── karpenter-capacity-dashboard.json │ │ ├── karpenter-performance-dashboard.json │ │ ├── karpenter.json │ │ ├── kube-apiserver-basic.json │ │ ├── kube-state-metrics.json │ │ ├── kubelet.json │ │ ├── namespace-workloads.json │ │ ├── nodeexporter-nodes.json │ │ ├── nodes.json │ │ ├── vpccni.json │ │ └── workloads.json │ └── tenants │ │ └── tenant1 │ │ ├── clusters │ │ └── cluster1 │ │ │ └── addons │ │ │ ├── argocd │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── aws-load-balancer-controller │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── gatekeeper │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── karpenter │ │ │ ├── resources │ │ │ │ ├── .keep │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ └── volcano │ │ │ ├── resources │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ ├── default │ │ └── addons │ │ │ ├── argocd │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── aws-load-balancer-controller │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── gitops-bridge │ │ │ └── values.yaml │ │ │ ├── karpenter │ │ │ ├── resources │ │ │ │ ├── .keep │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── kyverno │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ └── metrics-server │ │ │ ├── resources │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ └── environments │ │ ├── control-plane │ │ └── addons │ │ │ ├── argocd │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── aws-load-balancer-controller │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── gatekeeper │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── gitops-bridge │ │ │ └── values.yaml │ │ │ ├── karpenter │ │ │ ├── resources │ │ │ │ ├── .keep │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── metrics-server │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ └── volcano │ │ │ ├── resources │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ ├── dev │ │ └── addons │ │ │ ├── argocd │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── aws-load-balancer-controller │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── gatekeeper │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── gitops-bridge │ │ │ └── values.yaml │ │ │ ├── karpenter │ │ │ ├── resources │ │ │ │ ├── .keep │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── metrics-server │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ └── volcano │ │ │ ├── resources │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ ├── prod │ │ └── addons │ │ │ ├── argocd │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── aws-load-balancer-controller │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── gatekeeper │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── gitops-bridge │ │ │ └── values.yaml │ │ │ ├── karpenter │ │ │ ├── resources │ │ │ │ ├── .keep │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ ├── metrics-server │ │ │ ├── resources │ │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ │ └── volcano │ │ │ ├── resources │ │ │ └── values.yaml │ │ │ └── values.yaml │ │ └── staging │ │ └── addons │ │ ├── argocd │ │ ├── resources │ │ │ └── values.yaml │ │ └── values.yaml │ │ ├── aws-load-balancer-controller │ │ ├── resources │ │ │ └── values.yaml │ │ └── values.yaml │ │ ├── gatekeeper │ │ ├── resources │ │ │ └── values.yaml │ │ └── values.yaml │ │ ├── gitops-bridge │ │ └── values.yaml │ │ ├── karpenter │ │ ├── resources │ │ │ ├── .keep │ │ │ └── values.yaml │ │ └── values.yaml │ │ ├── metrics-server │ │ ├── resources │ │ │ └── values.yaml │ │ └── values.yaml │ │ └── volcano │ │ ├── resources │ │ └── values.yaml │ │ └── values.yaml ├── platform │ ├── bootstrap │ │ └── .gitignore │ └── charts │ │ └── namespace │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── README.md │ │ ├── templates │ │ ├── _helpers.tpl │ │ ├── limitrange │ │ │ └── limitrange.yaml │ │ ├── namespace │ │ │ └── namespace.yaml │ │ ├── networkpolicy │ │ │ ├── egress │ │ │ │ ├── allow-dns.yaml │ │ │ │ └── deny-all.yaml │ │ │ ├── ingress │ │ │ │ └── deny-all.yaml │ │ │ └── networkpolicy.yaml │ │ ├── rbac │ │ │ ├── role.yaml │ │ │ └── rolebinding.yaml │ │ └── resourcequota │ │ │ └── resourcequota.yaml │ │ ├── values-test.yaml │ │ ├── values.schema.json │ │ └── values.yaml └── workload │ └── webstore │ ├── assets │ ├── base │ │ ├── configMap.yaml │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ ├── service.yaml │ │ └── serviceAccount.yaml │ ├── control-plane │ │ └── kustomization.yaml │ ├── prod │ │ └── kustomization.yaml │ └── staging │ │ └── kustomization.yaml │ ├── carts │ ├── base │ │ ├── deployment.yaml │ │ ├── infra-mng │ │ │ ├── configMap.yaml │ │ │ ├── ddb-table.yaml │ │ │ └── kustomization.yaml │ │ ├── infra │ │ │ ├── configMap.yaml │ │ │ ├── deployment-db.yaml │ │ │ ├── kustomization.yaml │ │ │ └── service-db.yaml │ │ ├── kustomization-mng.yaml │ │ ├── kustomization.yaml │ │ ├── service.yaml │ │ └── serviceAccount.yaml │ ├── control-plane │ │ └── kustomization.yaml │ ├── prod │ │ ├── kustomization-mng.yaml │ │ └── kustomization.yaml │ └── staging │ │ ├── kustomization-mng.yaml │ │ ├── kustomization.yaml │ │ └── try-namespace.yaml │ ├── catalog │ ├── base │ │ ├── configMap.yaml │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ ├── secrets.yaml │ │ ├── service-mysql.yaml │ │ ├── service.yaml │ │ ├── serviceAccount.yaml │ │ └── statefulset-mysql.yaml │ ├── control-plane │ │ └── kustomization.yaml │ ├── prod │ │ └── kustomization.yaml │ └── staging │ │ └── kustomization.yaml │ ├── checkout │ ├── base │ │ ├── configMap.yaml │ │ ├── deployment-redis.yaml │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ ├── service-redis.yaml │ │ ├── service.yaml │ │ └── serviceAccount.yaml │ ├── control-plane │ │ └── kustomization.yaml │ ├── prod │ │ └── kustomization.yaml │ └── staging │ │ └── kustomization.yaml │ ├── orders │ ├── base │ │ ├── configMap.yaml │ │ ├── deployment-mysql.yaml │ │ ├── deployment.yaml │ │ ├── kustomization.yaml │ │ ├── secrets.yaml │ │ ├── service-mysql.yaml │ │ ├── service.yaml │ │ └── serviceAccount.yaml │ ├── control-plane │ │ └── kustomization.yaml │ ├── prod │ │ └── kustomization.yaml │ └── staging │ │ └── kustomization.yaml │ └── ui │ ├── base │ ├── configMap.yaml │ ├── deployment.yaml │ ├── hpa.yaml │ ├── kustomization.yaml │ ├── nlb.yaml │ ├── service.yaml │ └── serviceAccount.yaml │ ├── control-plane │ └── kustomization.yaml │ ├── prod │ ├── hpa.yaml │ └── kustomization.yaml │ └── staging │ └── kustomization.yaml ├── hack ├── .bashrc.d │ ├── answers.bash │ ├── argocd.bash │ ├── deploy-fleet-dashboard.bash │ ├── git.bash │ ├── kubectx-eks.bash │ ├── monitoring.bash │ └── variables.bash ├── .p10k.zsh ├── .zshrc ├── review-style-guide.md └── scripts │ ├── destroy-applications.sh │ ├── destroy-clusters.sh │ ├── destroy-git.sh │ ├── destroy-hub.sh │ ├── destroy-secrets.sh │ ├── destroy-spoke.sh │ ├── destroy-vpc.sh │ ├── destroy.sh │ └── functions.sh ├── link-check-config.json ├── package.json ├── setup-git.sh ├── solution ├── gitops │ ├── addons │ │ └── clusters │ │ │ └── hub-cluster │ │ │ └── addons │ │ │ └── gitops-bridge │ │ │ └── values.yaml │ └── platform │ │ ├── bootstrap │ │ └── addons-applicationset.yaml │ │ └── config │ │ └── workload │ │ └── webstore │ │ └── namespace │ │ └── values │ │ └── default-values.yaml └── hub │ └── pod-identity.tf ├── static ├── cloud9-init.sh ├── eks-blueprints-workshop-central-stack.json ├── eks-blueprints-workshop-team-stack.json ├── iam_policy.json ├── images │ ├── 10-IDE-Password.jpg │ ├── 10-IDE-Terminal.jpg │ ├── 10-IDE.jpg │ ├── access-denied.png │ ├── add_git_repos.png │ ├── addon-lb-role.png │ ├── addons-applicationset.png │ ├── addons-rootapp-addons.png │ ├── addons-rootapp.jpg │ ├── app-of-apps.png │ ├── applicationset-controlplane.png │ ├── applicationset-workloads.png │ ├── applicationset.png │ ├── archdiagram.png │ ├── argo-cd-architecture.png │ ├── argo-rollout-green-prev.png │ ├── argo-rollouts-installed.png │ ├── argo_dashboard.png │ ├── argocd-after-addon-metadata.png │ ├── argocd-before-addon-metadata.png │ ├── argocd-bootstrap-eks.jpg │ ├── argocd-bootstrap-install.jpg │ ├── argocd-bootstrap-install.png │ ├── argocd-bootstrap-manage-addon.png │ ├── argocd-cluster-object.png │ ├── argocd-eks-blue.png │ ├── argocd-fb-restart.png │ ├── argocd-hub-spoke.jpg │ ├── argocd-login.png │ ├── argocd-main-page-workshop.png │ ├── argocd-main-page.png │ ├── argocd-manage-metrics-addon.png │ ├── argocd-multicluster-addons.png │ ├── argocd-promote-green.png │ ├── argocd-repositories.jpg │ ├── argocd-rollout-preview-promoted.png │ ├── argocd-rollout-preview.png │ ├── argocd-selfmanage.jpg │ ├── argocd-standalone.png │ ├── argocd-sync.png │ ├── argocd-update-metadata.jpg │ ├── argocd-values.jpg │ ├── argocd_architecture.png │ ├── argocd_values_targetgroup.png │ ├── argocdlogin.png │ ├── argocdui.png │ ├── asset-github-folders.png │ ├── aws-console-role.png │ ├── aws-logo.png │ ├── blue-green-alb-eks.png │ ├── blue-green-alb-tg-vpc.png │ ├── blue-green-targetgroup.png │ ├── blueprint.png │ ├── bootstrap-application.jpg │ ├── bootstrap-appofapps.png │ ├── bootstrap-namespace-applicationset.jpg │ ├── c06-tracing-arch.png │ ├── c06-tracing-xray-console.png │ ├── c06-tracing-xray-traces.png │ ├── c9-step4.png │ ├── cfn_quickstart.jpg │ ├── clone_starterfiles.png │ ├── cloud9-main-screen.png │ ├── cloud9-open.png │ ├── cloud9.png │ ├── cloud92.png │ ├── cloud_formation3.png │ ├── cloud_formation4.png │ ├── cloudformation1.png │ ├── cloudformation2.png │ ├── cloudwatch-dev.png │ ├── cluster-addon-creation-flow.jpg │ ├── cluster-addons-applicationset.jpg │ ├── cluster-addons-applicationsets.jpg │ ├── codecommit_platform.png │ ├── create-addons-application.png │ ├── crystal.svg │ ├── delete-lb.png │ ├── developer-webstore.jpg │ ├── eks-addon-blueprintaddon.png │ ├── eks-addon-default.png │ ├── eks-addon-label.png │ ├── eks-addons.png │ ├── eks-blue.png │ ├── eks-blueprint-blue.png │ ├── eks-blueprints-application-team-login.png │ ├── eks-blueprints-c9-disable-temp-cred.png │ ├── eks-blueprints-cdk-json.png │ ├── eks-blueprints-cloud9-directory.png │ ├── eks-blueprints-console-access.png │ ├── eks-blueprints-diagram.png │ ├── eks-blueprints-iam-role.png │ ├── eks-blueprints-pipeline-prod.png │ ├── eks-blueprints-pipeline-waves.png │ ├── eks-blueprints-pipelines-home.png │ ├── eks-blueprints-workshop-attach-iam-role.png │ ├── eks-blueprints-workshop-cloud9-instance.png │ ├── eks-blueprints-workshop-modify-iam-role.png │ ├── eks-console-na.png │ ├── eks-console-switch1.png │ ├── eks-console-switch2.png │ ├── eks-console-switch3.png │ ├── eks-console-switch4.png │ ├── eks-managed-addons.png │ ├── eks-node-conf1-deploy-14-1.png │ ├── eks-node-conf1-deploy-14-2.png │ ├── eks-node-conf1-rollout1.png │ ├── eks-node-scale29-rollout1.png │ ├── eks-node-viewer.jpg │ ├── eks-observability.png │ ├── eks_cluster_1.svg │ ├── eks_cluster_workloads.svg │ ├── environment.jpg │ ├── event-output-ideurl.jpg │ ├── git_local_ide.jpg │ ├── gitea_login.jpg │ ├── gitea_repos.jpg │ ├── github-codespace.png │ ├── github-create-file-ingress.png │ ├── github-create-file.png │ ├── github-deployment.png │ ├── github-fork.png │ ├── github-permission.png │ ├── github-personal-access-token-scope.png │ ├── github-setting.png │ ├── gitops-bridge-applicationset.png │ ├── gitops-bridge.png │ ├── hub-cluster-workload-before-after.png │ ├── hub-manage-spoke-addons.jpg │ ├── hub-spoke-hub-role.jpg │ ├── hub-spoke-spoke-role.jpg │ ├── hubcluster-initial-metadata.png │ ├── hubcluster-lb-addon.png │ ├── hubcluster-update-metadata.png │ ├── iam-1-create-user.png │ ├── iam-2-attach-policy.png │ ├── iam-3-create-user.png │ ├── iam-4-save-url.png │ ├── karpenter-consolidation-2.png │ ├── karpenter-consolidation.png │ ├── karpenter-consolidation_spot1.png │ ├── karpenter-consolidation_spot2.png │ ├── karpenter-overview.png │ ├── kubecost-skiapp.png │ ├── kubernetes-addons.jpg │ ├── kubernetes-addons.png │ ├── lb-application-ui.png │ ├── lb-application.png │ ├── lb-helmchart-folder.png │ ├── lb-sync.png │ ├── local_platform.png │ ├── logs-metrics-traces.png │ ├── logsStreamprefix.png │ ├── multicluster-addons.png │ ├── namespace-begin.jpg │ ├── namespace-create-webstore-namespace.jpg │ ├── namespace-helm.jpg │ ├── namespace-helmchart.png │ ├── namespace-hub-webstore.png │ ├── namespace-namespace-applicationset.jpg │ ├── namespace-namespace-applicationset.png │ ├── namespace-process-webstore-applicationset.png │ ├── namespace-values.png │ ├── namespace-webstore-applicationset.jpg │ ├── namespace-webstore-defalut-values.jpg │ ├── namespace.jpg │ ├── namespace_webstore.jpg │ ├── nginx-ingress-tgb.png │ ├── platform-github-folders.png │ ├── prod-stack-deletion.png │ ├── project-applicationset.jpg │ ├── project-values.jpg │ ├── rollout_promote_karpenter.png │ ├── rollout_promote_karpenter_ok.png │ ├── setup_ws_signin1.png │ ├── setup_ws_signin2.png │ ├── setup_ws_signin3.png │ ├── setup_ws_signin4.png │ ├── skiapp-ingress-nginx.png │ ├── skiapp-ingress.png │ ├── skiapp_workload.png │ ├── spoke-staging-cluster.png │ ├── spoke-staging.jpg │ ├── spoke_applications.jpg │ ├── spot_fis.png │ ├── team_riker_app.png │ ├── terraform-argo-app-app.png │ ├── uncomment-aws-lb.png │ ├── webstore-project.png │ ├── webstore-ui.png │ ├── webstore.png │ ├── workload-appofapps-iteration.jpg │ ├── workload-appofapps-monitor.jpg │ ├── workload-appofapps.jpg │ ├── workload-github-folders.png │ ├── workload-webstore-deployment.png │ ├── workload-webstore.jpg │ └── workload_webstore.jpg └── slides │ ├── EKS blue-green.pptx │ ├── blue-green-alb-eks.excalidraw │ ├── blue-green-alb-tg-vpc.excalidraw │ ├── blue-green-targetgroup.excalidraw │ └── workshop.excalidraw ├── terraform └── common │ ├── .gitignore │ ├── deploy.sh │ ├── destroy.sh │ ├── git.tf │ ├── iam.tf │ ├── locals.tf │ ├── outputs.tf │ ├── variables.tf │ └── versions.tf └── yarn.lock /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: "[Bug]: " 5 | labels: bug, enhancement, Module 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: "[Feature Request]: " 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/workshop-module-template.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Workshop Module Template 3 | about: This template is specific to workshop modules. 4 | title: "[New Module] : " 5 | labels: enhancement, Module 6 | assignees: '' 7 | 8 | --- 9 | 10 | ***Module Overview*** 11 | 12 | 13 | *** Technical Details ** 14 | 15 | 16 | :information_source: All modules need to assume that the user has gone through the baseline EKS provisioning in the workshop, and should build progressively on top of that. 17 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode 2 | demo 3 | TODO 4 | demo-lt 5 | terraform.tfstate 6 | .DS_Store 7 | **/.DS_Store 8 | preview_build 9 | .DS_Store 10 | node_modules 11 | .envrc 12 | .vscode 13 | venv 14 | tmp 15 | us-west-2 16 | eu-west-1 17 | content/review-style-guide.md 18 | -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | repos: 2 | - repo: local 3 | hooks: 4 | - id: lint-staged 5 | language: node 6 | name: Run linting staged 7 | entry: task lint-staged 8 | stages: [pre-commit] 9 | verbose: true 10 | pass_filenames: false 11 | - id: lint 12 | language: node 13 | name: Run linting 14 | entry: task lint 15 | stages: [pre-commit] 16 | verbose: true 17 | pass_filenames: false 18 | - id: cfn 19 | language: node 20 | name: Generate Cfn 21 | entry: task cfn 22 | # uses current branch for WORKSHOP_GIT_BRANCH 23 | stages: [pre-commit] 24 | verbose: true 25 | pass_filenames: false 26 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | **/cdk.out 2 | cdk/bin/*.d.ts 3 | cdk/bin/*.js 4 | cdk/lib/*.d.ts 5 | cdk/lib/*.js 6 | cdk/test/*.js 7 | static/*.json 8 | assets/*.json 9 | gitops/* 10 | -------------------------------------------------------------------------------- /.spelling: -------------------------------------------------------------------------------- 1 | EKS 2 | Kubernetes 3 | AWS 4 | ASG 5 | EC2 6 | VPC 7 | CNI 8 | Applicationset 9 | Appof 10 | Bluerint 11 | Bootcamps 12 | contentspec 13 | Fargate 14 | Gitops 15 | Gitea 16 | gitops 17 | direnv 18 | Karpenter 19 | Kubecost 20 | Observabiilty 21 | Rollouts 22 | Stagging 23 | Webstore 24 | applicationset 25 | appofapps 26 | appset 27 | autoscaler 28 | binpacking 29 | boostrapped 30 | coming 31 | envsubst 32 | eventbridge 33 | fargate 34 | fluentbit 35 | gavinbunney 36 | hubcluster 37 | karpenter 38 | kctx 39 | kubectx 40 | kyverno 41 | limitrange 42 | loadbalancer 43 | metadatas 44 | networkpolicy 45 | privateca 46 | rabbitmq 47 | rollouts 48 | rootapp 49 | stagging 50 | hookspath 51 | tfblueprint 52 | tfvars 53 | undeployed 54 | velero 55 | webstore 56 | kustomization 57 | Taskfile 58 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT No Attribution 2 | 3 | Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of 6 | this software and associated documentation files (the "Software"), to deal in 7 | the Software without restriction, including without limitation the rights to 8 | use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 | the Software, and to permit persons to whom the Software is furnished to do so. 10 | 11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 12 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 13 | FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 14 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 15 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 16 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 17 | 18 | -------------------------------------------------------------------------------- /cdk/.gitignore: -------------------------------------------------------------------------------- 1 | *.js 2 | !jest.config.js 3 | *.d.ts 4 | node_modules 5 | 6 | # CDK asset staging directory 7 | .cdk.staging 8 | cdk.out 9 | -------------------------------------------------------------------------------- /cdk/.npmignore: -------------------------------------------------------------------------------- 1 | *.ts 2 | !*.d.ts 3 | 4 | # CDK asset staging directory 5 | .cdk.staging 6 | cdk.out 7 | -------------------------------------------------------------------------------- /cdk/README.md: -------------------------------------------------------------------------------- 1 | # Welcome to your CDK TypeScript project 2 | 3 | This is a blank project for CDK development with TypeScript. 4 | 5 | The `cdk.json` file tells the CDK Toolkit how to execute your app. 6 | 7 | ## Useful commands 8 | 9 | - `npm run build` compile typescript to js 10 | - `npm run watch` watch for changes and compile 11 | - `npm run test` perform the jest unit tests 12 | - `npx cdk deploy` deploy this stack to your default AWS account/region 13 | - `npx cdk diff` compare deployed stack with current state 14 | - `npx cdk synth` emits the synthesized CloudFormation template 15 | -------------------------------------------------------------------------------- /cdk/bin/cdk.ts: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import "source-map-support/register"; 3 | import * as cdk from "aws-cdk-lib"; 4 | import { CentralAccountStack, TeamStack } from "../lib"; 5 | 6 | const app = new cdk.App(); 7 | new TeamStack(app, "eks-blueprints-workshop"); 8 | new CentralAccountStack(app, "CentralAccountStack"); 9 | -------------------------------------------------------------------------------- /cdk/jest.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | testEnvironment: "node", 3 | roots: ["/test"], 4 | testMatch: ["**/*.test.ts"], 5 | transform: { 6 | "^.+\\.tsx?$": "ts-jest", 7 | }, 8 | }; 9 | -------------------------------------------------------------------------------- /cdk/lib/central-stack.ts: -------------------------------------------------------------------------------- 1 | import { Construct } from "constructs"; 2 | 3 | import { WorkshopStudioCentralStack } from "@workshop-cdk-constructs/workshop-studio-utils"; 4 | 5 | export class CentralAccountStack extends WorkshopStudioCentralStack { 6 | constructor(scope: Construct, id: string) { 7 | super(scope, id); 8 | 9 | const { bucketPrefix, deployedBucket } = this.getAssetsBucket("../assets"); 10 | 11 | // Add resources for central account if required 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /cdk/lib/index.ts: -------------------------------------------------------------------------------- 1 | export * from "./central-stack"; 2 | export * from "./team-stack"; 3 | -------------------------------------------------------------------------------- /cdk/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "cdk", 3 | "version": "0.1.0", 4 | "license": "MIT", 5 | "bin": { 6 | "cdk": "bin/cdk.js" 7 | }, 8 | "scripts": { 9 | "build": "tsc", 10 | "watch": "tsc -w", 11 | "test": "jest", 12 | "cdk": "cdk" 13 | }, 14 | "devDependencies": { 15 | "@types/jest": "^29.5.8", 16 | "@types/node": "20.9.0", 17 | "aws-cdk": "^2.110.1", 18 | "jest": "^29.7.0", 19 | "ts-jest": "^29.1.1", 20 | "ts-node": "^10.9.1", 21 | "typescript": "~5.2.2" 22 | }, 23 | "dependencies": { 24 | "@workshop-cdk-constructs/codebuild-custom-resource": "^0.2.0", 25 | "@workshop-cdk-constructs/vscode-ide": "^0.8.1", 26 | "@workshop-cdk-constructs/workshop-studio-utils": "^0.2.3", 27 | "aws-cdk-lib": "^2.189.1", 28 | "constructs": "^10.0.0", 29 | "source-map-support": "^0.5.21" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /cdk/test/cdk.test.ts: -------------------------------------------------------------------------------- 1 | // import * as cdk from 'aws-cdk-lib'; 2 | // import { Template } from 'aws-cdk-lib/assertions'; 3 | // import * as Cdk from '../lib/cdk-stack'; 4 | 5 | // example test. To run these tests, uncomment this file along with the 6 | // example resource in lib/cdk-stack.ts 7 | test("SQS Queue Created", () => { 8 | // const app = new cdk.App(); 9 | // // WHEN 10 | // const stack = new Cdk.CdkStack(app, 'MyTestStack'); 11 | // // THEN 12 | // const template = Template.fromStack(stack); 13 | // template.hasResourceProperties('AWS::SQS::Queue', { 14 | // VisibilityTimeout: 300 15 | // }); 16 | }); 17 | -------------------------------------------------------------------------------- /cdk/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "types": ["jest", "node", "@types/jest"], 4 | "target": "ES2020", 5 | "module": "commonjs", 6 | "lib": ["es2020", "dom"], 7 | "declaration": true, 8 | "strict": true, 9 | "noImplicitAny": true, 10 | "strictNullChecks": true, 11 | "noImplicitThis": true, 12 | "alwaysStrict": true, 13 | "noUnusedLocals": false, 14 | "noUnusedParameters": false, 15 | "noImplicitReturns": true, 16 | "noFallthroughCasesInSwitch": false, 17 | "inlineSourceMap": true, 18 | "inlineSources": true, 19 | "experimentalDecorators": true, 20 | "strictPropertyInitialization": false, 21 | "typeRoots": ["../node_modules/@types"] 22 | }, 23 | "exclude": ["node_modules", "cdk.out"] 24 | } 25 | -------------------------------------------------------------------------------- /content/010-prerequisites.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Prerequisites" 3 | weight: 10 4 | --- 5 | 6 | ### Prerequisites 7 | 8 | 1. Basic understanding of [Terraform](https://developer.hashicorp.com/terraform/tutorials/aws-get-started) and Terraform [workspaces](https://developer.hashicorp.com/terraform/language/state/workspaces) 9 | 2. Basic understanding of [Argo CD](https://argo-cd.readthedocs.io/en/stable/operator-manual/declarative-setup/) concepts including: 10 | - Applications 11 | - ApplicationSets 12 | - Projects 13 | - App of Apps pattern 14 | - Generator types (Cluster, Git, Matrix) 15 | 3. Familiarity with Git CLI commands (clone, commit, pull, push) 16 | 4. Basic understanding of [GitOps Bridge](https://github.com/gitops-bridge-dev/kubecon-2023-na-argocon/blob/main/terraform/eks-argocd/README.md) 17 | 5. Basic understanding of [Helm](https://helm.sh/docs/) 18 | -------------------------------------------------------------------------------- /content/020_setup/index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Workshop setup" 3 | weight: 20 4 | --- 5 | 6 | In this section, we will prepare our environment for the workshop by following the installation instructions. 7 | 8 | If we are attending an AWS guided event, we'll set up our environment here: 9 | 10 | :button[AWS EVENT]{variant="primary" href="aws-event"} 11 | 12 | If we are not participating in an AWS guided event, we'll set up our environment here: 13 | 14 | :button[ON YOUR OWN]{href="self-paced"} 15 | 16 | ::alert[When running this workshop in our own AWS account, remember to delete all resources by following the [cleanup instructions](/090-cleanup/) to avoid unnecessary charges.]{header=Note} 17 | -------------------------------------------------------------------------------- /content/030_base/030_create-vpc/index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Amazon VPC Architecture" 3 | weight: 30 4 | --- 5 | 6 | In this chapter, we will create a Terraform stack to provision an Amazon Virtual Private Cloud (VPC) with public and private subnets spanning multiple Availability Zones. Using multiple Availability Zones ensures high availability and fault tolerance for our resources, as they are distributed across physically separate data centers within the same AWS Region. We use public subnets for resources that need to be accessible from the internet, such as load balancers or bastion hosts, while private subnets are used for resources that should not be directly accessible from the internet, such as application servers or databases, for enhanced security. 7 | 8 | The VPC will include an Internet Gateway for external access and a Network Address Translation (NAT) Gateway to enable outbound internet access for resources in the private subnets. For this workshop, we will use a single NAT Gateway, but in production environments, it is recommended to have a NAT Gateway in each Availability Zone for high availability and fault tolerance. 9 | 10 | We will deploy all the Elastic Kubernetes Service (EKS) clusters created throughout this workshop within this VPC. 11 | 12 | ![Environment architecture diagram](/static/images/environment.jpg) 13 | -------------------------------------------------------------------------------- /content/030_base/035_gitrepo/index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Workshop Git repositories" 3 | weight: 35 4 | --- 5 | 6 | In this chapter, we will work with three Git repositories using a [gitea](https://github.com/go-gitea/gitea) server that has been pre-installed in our IDE instance: 7 | 8 | ![CodeCommit Repository](/static/images/gitea_repos.jpg) 9 | 10 | 1. **eks-blueprints-workshop-gitops-apps** - Used by developers to store Kubernetes manifests for the webstore microservices workload 11 | 12 | 2. **eks-blueprints-workshop-gitops-platform** - Used by platform engineers to store infrastructure artifacts like namespace configurations 13 | 14 | 3. **eks-blueprints-workshop-gitops-addons** - Used by platform engineers to store Kubernetes add-on manifests 15 | 16 | The separation between workload and platform repositories illustrates the distinct roles and responsibilities of developers and platform engineers. 17 | 18 | We are using Gitea in this workshop for convenience, but any Git management system can serve as a replacement. 19 | -------------------------------------------------------------------------------- /content/030_base/070_selfmanage_argocd/index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Self Manage Argo CD" 3 | weight: 70 4 | --- 5 | 6 | In the "Install Argo CD" chapter, we installed Argo CD with a default configuration using GitOps Bridge. Since Argo CD is itself an addon, we can leverage its own capabilities for self-management. By having Argo CD manage its own deployment and lifecycle through GitOps, we demonstrate several key benefits of addon management: 7 | 8 | - GitOps-based configuration: All manifests are stored in Git, enabling version control, collaboration, and review processes. 9 | 10 | - Automated synchronization: Argo CD continuously syncs cluster state to match the Git repository, providing true continuous delivery. 11 | 12 | - Rollback capability and audit trail: Changes are tracked and can be easily rolled back, improving overall reliability. 13 | 14 | - Flexible lifecycle management: Upgrades, scaling, and other operations can be easily automated. 15 | 16 | - Multi-cluster support: Addons can be managed consistently across multiple clusters. 17 | 18 | - Health monitoring: Argo CD provides health status and alerts for addon deployments. 19 | 20 | By implementing self-management for Argo CD through GitOps practices, we establish a foundation for managing all cluster addons in a consistent and automated way. 21 | -------------------------------------------------------------------------------- /content/030_base/078_workload/index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Workload" 3 | weight: 78 4 | --- 5 | 6 | In this chapter, we will deploy the webstore workload across the namespaces we previously provisioned. The webstore workload comprises multiple microservices that work together to provide the complete application functionality: 7 | 8 | - UI service 9 | - Orders service 10 | - Checkout service 11 | - Carts service 12 | - Catalog service 13 | - Assets service 14 | - RabbitMQ messaging service 15 | 16 | ![Webstore](/static/images/webstore.png) 17 | 18 | The webstore workload code is located in our Git repository in the `~/environment/gitops-repo/workload/webstore/` directory. We can examine these files that will be deployed using Argo CD. 19 | 20 | ![Webstore](/static/images/developer-webstore.jpg) 21 | 22 | The webstore workload supports multiple environments including hub, staging, and production. Environment-specific configurations are managed through Kustomization files. 23 | -------------------------------------------------------------------------------- /content/030_base/index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Module Standalone GitOps cluster" 3 | weight: 30 4 | --- 5 | 6 | In this module, we will create a single EKS cluster using Terraform and configure it with Argo CD for managing addons and workloads. 7 | 8 | ![eks-blueprint-blue](/static/images/argocd-update-metadata.jpg) 9 | -------------------------------------------------------------------------------- /content/040_advanced/010_hub_and_spoke/020_create-spoke-cluster/index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Create Spoke Staging" 3 | weight: 10 4 | --- 5 | 6 | In this chapter, we will create another EKS cluster called spoke-staging. 7 | 8 | ![spoke-staging](/static/images/spoke-staging.jpg) 9 | 10 | ::::expand{header="What is Terraform workspaces?"} 11 | 12 | Terraform [workspaces](https://developer.hashicorp.com/terraform/language/state/workspaces) are a feature that enables managing multiple distinct infrastructures or environments using the same Terraform configuration. 13 | 14 | In this chapter, we will create the spoke-staging cluster. The spoke-prod cluster will be created in upcoming chapters. These clusters are identical except for a few variable changes. We will use Terraform workspaces to create the clusters and maintain two different states with the same Terraform files. 15 | :::: 16 | -------------------------------------------------------------------------------- /content/040_advanced/010_hub_and_spoke/030_hub_spoke_connectivity/index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Hub to Spoke Connectivity" 3 | weight: 30 4 | --- 5 | 6 | In this chapter, we will configure the Argo CD installation in the Hub Cluster to assume an IAM role in the spoke cluster. This setup enables the Hub Cluster's Argo CD to manage (install, uninstall, update) addons, namespaces, and workloads on the spoke cluster. 7 | 8 | The following diagram illustrates the connectivity between the Hub and Spoke clusters: 9 | 10 | ![Hub Role](/static/images/hub-manage-spoke-addons.jpg) 11 | 12 | By establishing this connection, we create a centralized management structure that allows for efficient control and deployment across multiple clusters from a single Hub. This approach simplifies cluster management, ensures consistency, and streamlines operations across our Kubernetes infrastructure. 13 | -------------------------------------------------------------------------------- /content/040_advanced/010_hub_and_spoke/040_project/index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Project" 3 | weight: 40 4 | --- 5 | 6 | Argo CD [Projects](https://argo-cd.readthedocs.io/en/stable/user-guide/projects/) provide logical groupings of Argo CD Applications. They offer several key capabilities: 7 | 8 | - Control over what can be deployed: 9 | 10 | - Define trusted Git source repositories. In this workshop, we use an ApplicationSet named `argoprojects` to dynamically create ArgoProjects that point to the platform git repository. 11 | 12 | - Control over deployment destinations: 13 | 14 | - Specify allowed destination clusters and namespaces. We will restrict webstore microservices (UI, catalog, etc.) to the spoke-staging namespace, preventing accidental deployment to the hub cluster. 15 | 16 | - Control over allowed resource types: 17 | 18 | - We have already configured limit ranges and resource quotas on the namespaces. We need to prevent application teams from overriding these restrictions while allowing them to create pods, deployments, and other resources in their namespace. 19 | 20 | - Project role definitions: 21 | - While this workshop does not cover project roles, we encourage exploring this functionality independently. 22 | 23 | By leveraging these capabilities, Argo CD Projects enable fine-grained control over application deployments, enhancing security and maintaining consistency across your Kubernetes environments. 24 | -------------------------------------------------------------------------------- /content/040_advanced/010_hub_and_spoke/index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Advanced modules" 3 | weight: 79 4 | --- 5 | 6 | In this section, we will explore advanced modules that demonstrate additional capabilities of the EKS Blueprints and GitOps projects: 7 | 8 | - Argo CD Hub-Spoke deployment 9 | - Blue/Green Deployment with Argo Rollouts (coming soon) 10 | - Autoscaling with Karpenter (coming soon) 11 | - Day 2 operations: Blue/Green EKS cluster Upgrade (coming soon) 12 | 13 | These advanced modules will provide deeper insights into managing complex Kubernetes environments and implementing sophisticated deployment strategies. 14 | -------------------------------------------------------------------------------- /content/040_advanced/index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Advanced modules" 3 | weight: 79 4 | --- 5 | 6 | In this section, we will explore advanced modules that demonstrate additional capabilities of these projects: 7 | 8 | - Argo CD Hub-Spoke deployment 9 | - Blue/Green Deployment with Argo Rollouts (coming soon) 10 | - Autoscaling with Karpenter (coming soon) 11 | - Day 2 operations: Blue/Green EKS cluster Upgrade (coming soon) 12 | 13 | These modules will provide deeper insights into more complex deployment patterns and operational techniques, allowing us to further leverage the power of EKS Blueprints and GitOps principles in our infrastructure management. 14 | -------------------------------------------------------------------------------- /content/090_cleanup/index.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Clean up" 3 | weight: 90 4 | --- 5 | 6 | In this workshop, we have created a VPC and multiple EKS clusters. Although the clusters were created using Terraform, the Applications were deployed using Argo CD. 7 | 8 | As Terraform is not aware of the Argo CD Applications installed on each EKS cluster, we need to clean up those applications before destroying the clusters with Terraform. 9 | 10 | To simplify this process, we have prepared a `destroy.sh` script that will properly clean up the installed resources in the appropriate order. 11 | 12 | If we have deployed additional resources that may have created Cloud resources, we should also clean those up prior to destroying the clusters. Otherwise, those resources may not be properly cleaned up. 13 | 14 | ### Using the cleanup script 15 | 16 | We can execute the cleanup script to remove all resources. The script may display some errors during execution, which is normal as it repeats certain actions until cleanup succeeds. 17 | 18 | ```bash 19 | $BASE_DIR/hack/scripts/destroy.sh 20 | ``` 21 | 22 | ::alert[Removing resources in this specific order ensures dependencies are deleted entirely. VPCs, subnets, and IP addresses attached to ENIs are all deleted last.]{header="Important"} 23 | 24 | > Congratulations! We should have now removed everything installed by the workshop. 25 | -------------------------------------------------------------------------------- /content/credits.en.md: -------------------------------------------------------------------------------- 1 | --- 2 | disableToc: true 3 | title: Credits 4 | --- 5 | 6 | ## Version 1.1 - Oscar Médina & Sébastien Allamand 7 | 8 | - EKS Blueprints step-by-step guide 9 | - Ski app integration 10 | 11 | ## Version 1.2 - Oscar Médina 12 | 13 | - Integration of Argo Rollout 14 | 15 | ## Version 1.3 - fill 16 | 17 | - Addition of Observability Module 18 | 19 | ## Version 1.4 - Sébastien Allamand (May, 2023) 20 | 21 | - Integration of Event Engine 22 | - Update to EKS Blueprint v5 23 | - Workshop Studio with SSM documents 24 | 25 | ## Version 1.5 - Sébastien Allamand (June, 2023) 26 | 27 | - Addition of Day 2 module focused on Blue/Green cluster upgrade with external Application Load Balancer 28 | - Addition of serving cluster name in the app 29 | 30 | ## Version 2.0 - Satish Patil & Sébastien Allamand (June, 2024) 31 | 32 | - Complete rewrite using a more progressive approach 33 | - Migration to EKS Blueprint v5, GitOps Bridge, EKS Access Entries 34 | - Introduction of Standalone and Hub/Spoke patterns 35 | 36 | # Roadmap 37 | 38 | ## Version 2.1 - planned 39 | 40 | - Argo Rollout 41 | - Karpenter Module 42 | - Blue/Green Cluster Upgrade 43 | 44 | We welcome contributions to enhance the workshop content. To request additional modules, please submit an issue in our GitHub repository: https://github.com/aws-samples/eks-blueprints-for-terraform-workshop/issues 45 | -------------------------------------------------------------------------------- /contentspec.yaml: -------------------------------------------------------------------------------- 1 | version: 2.0 2 | 3 | defaultLocaleCode: en-US 4 | localeCodes: 5 | - en-US 6 | awsAccountConfig: 7 | accountSources: 8 | - WorkshopStudio 9 | serviceLinkedRoles: 10 | - spot.amazonaws.com 11 | - spotfleet.amazonaws.com 12 | participantRole: 13 | managedPolicies: 14 | - 'arn:aws:iam::aws:policy/AmazonEC2FullAccess' 15 | - 'arn:aws:iam::aws:policy/IAMReadOnlyAccess' 16 | - 'arn:aws:iam::aws:policy/AmazonPrometheusFullAccess' 17 | - 'arn:aws:iam::aws:policy/AWSGrafanaAccountAdministrator' 18 | - "arn:aws:iam::aws:policy/AWSCloudFormationReadOnlyAccess" 19 | - "arn:aws:iam::aws:policy/AWSCloud9Administrator" 20 | - "arn:aws:iam::aws:policy/AWSSecurityHubFullAccess" 21 | iamPolicies: 22 | - static/iam_policy.json 23 | regionConfiguration: 24 | minAccessibleRegions: 1 25 | maxAccessibleRegions: 3 26 | deployableRegions: 27 | recommended: 28 | - us-west-2 29 | optional: 30 | - us-east-2 31 | - us-east-1 32 | - eu-west-1 33 | - eu-west-3 34 | 35 | infrastructure: 36 | cloudformationTemplates: 37 | - templateLocation: static/eks-blueprints-workshop-team-stack.json 38 | label: Fleet Workshop Team Stack 39 | parameters: 40 | - templateParameter: AssetsBucketName 41 | defaultValue: "{{.AssetsBucketName}}" 42 | - templateParameter: AssetsBucketPrefix 43 | defaultValue: "{{.AssetsBucketPrefix}}" 44 | 45 | participantVisibleStackOutputs: 46 | - IdeUrl 47 | - IdePassword -------------------------------------------------------------------------------- /cspell.config.yaml: -------------------------------------------------------------------------------- 1 | patterns: 2 | - name: markdown_code_block 3 | pattern: "/^```[\\s\\S]*?^\\s*```/gm" 4 | - name: markdown_code_snippet 5 | pattern: "/`(.*)`/g" 6 | - name: code_block 7 | pattern: "/^:::code[\\s\\S]*?^\\s*:::/gm" 8 | - name: mardown_comment 9 | pattern: "/ 24 | [Apache 2.0 License](https://github.com/fiverr/public_charts/blob/master/LICENSE). 25 | 26 | ## Helm charts build status 27 | 28 | ![Release Charts](https://github.com/fiverr/public_charts/actions/workflows/release.yml/badge.svg?branch=master) 29 | ![Tests](https://github.com/fiverr/public_charts/actions/workflows/test.yml/badge.svg) 30 | 31 | ## Charts 32 | [Karpenter Nodes](https://github.com/fiverr/public_charts/tree/master/charts/karpenter_nodes) 33 | -------------------------------------------------------------------------------- /gitops/addons/charts/resources/karpenter/examples/argocd_example.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | apiVersion: argoproj.io/v1alpha1 3 | kind: Application 4 | metadata: 5 | name: karpenter-nodes 6 | namespace: argocd 7 | spec: 8 | project: infra 9 | sources: 10 | - repoURL: 'https://opensource.fiverr.com/public_charts/' 11 | chart: karpenter_nodes 12 | targetRevision: 1.0.3 13 | helm: 14 | valueFiles: 15 | - $values/karpenter_nodes/eks-dev/common.yaml 16 | - $values/karpenter_nodes/eks-dev/nodegroups.yaml 17 | - $values/karpenter_nodes/eks-dev/userdata.yaml 18 | - repoURL: https://github.com/my_values_repo.git 19 | targetRevision: HEAD 20 | ref: values 21 | destination: 22 | server: https://kubernetes 23 | -------------------------------------------------------------------------------- /gitops/addons/charts/resources/karpenter/examples/common.yaml: -------------------------------------------------------------------------------- 1 | clusterName: "eks-dev" 2 | 3 | subnetSelectorTerms: 4 | - tags: 5 | Name: eks-dev-eu-west-1a 6 | - tags: 7 | Name: eks-dev-eu-west-1b 8 | - tags: 9 | Name: eks-dev-eu-west-1c 10 | 11 | securityGroupSelectorTerms: 12 | - tags: 13 | Name: eks-nodes 14 | - tags: 15 | Name: eks-dev 16 | 17 | availabilityZones: 18 | - eu-west-1a 19 | - eu-west-1b 20 | - eu-west-1c 21 | 22 | excludeInstanceSize: 23 | - metal 24 | 25 | blockDeviceMappings: 26 | - deviceName: /dev/xvda 27 | ebs: 28 | volumeSize: 100Gi 29 | volumeType: gp3 30 | encrypted: true 31 | deleteOnTermination: true 32 | iops: 3000 33 | throughput: 125 34 | 35 | instances: 36 | minGeneration: 4 37 | architecture: "amd64" 38 | categories: 39 | - m 40 | - r 41 | - c 42 | cores: 43 | - "4" 44 | - "8" 45 | - "12" 46 | - "16" 47 | - "24" 48 | - "32" 49 | - "48" 50 | capacityType: 51 | - spot 52 | 53 | 54 | nodeTags: 55 | team: devops 56 | component: eks-karpenter-nodes 57 | created_by: helm 58 | 59 | amiFamily: AL2 60 | autoTaint: "true" 61 | excludeFamilies: 62 | - c6a 63 | - m6a 64 | - r6a 65 | - c5a 66 | - m5a 67 | - r5a 68 | - c6ad 69 | - m6ad 70 | - r6ad 71 | - m5ad 72 | - r5ad 73 | - r5ad 74 | -------------------------------------------------------------------------------- /gitops/addons/charts/resources/karpenter/examples/generate.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | helm template karpenter-nodes ../ -f common.yaml -f nodegroups.yaml -f userdata.yaml > output/output.yaml 3 | -------------------------------------------------------------------------------- /gitops/addons/charts/resources/karpenter/templates/_helpers.tpl: -------------------------------------------------------------------------------- 1 | {{/*Define headroom sizes*/}} 2 | {{- define "headroom.sizing" -}} 3 | {{- range $key, $val := .Args }} 4 | {{- if eq $val "small" }} 5 | cpu: "1" 6 | memory: "4Gi" 7 | {{- end }} 8 | {{- if eq $val "medium" }} 9 | cpu: "2" 10 | memory: "8Gi" 11 | {{- end }} 12 | {{- if eq $val "large" }} 13 | cpu: "4" 14 | memory: "16Gi" 15 | {{- end }} 16 | {{- if eq $val "xlarge" }} 17 | cpu: "8" 18 | memory: "32Gi" 19 | {{- end }} 20 | {{- end }} 21 | {{- end }} 22 | -------------------------------------------------------------------------------- /gitops/addons/charts/resources/karpenter/templates/priorityclass.yaml: -------------------------------------------------------------------------------- 1 | {{- if .Values.headRoom -}} 2 | apiVersion: scheduling.k8s.io/v1 3 | kind: PriorityClass 4 | metadata: 5 | name: karpenter-headroom 6 | value: -1000000 7 | globalDefault: false 8 | description: "Used for dummy pods to generate headroom in karpenter" 9 | {{- end -}} 10 | -------------------------------------------------------------------------------- /gitops/addons/charts/resources/karpenter/tests/priorityclass_test.yaml: -------------------------------------------------------------------------------- 1 | suite: test priorityclass 2 | templates: 3 | - priorityclass.yaml 4 | 5 | values: 6 | - values.yaml 7 | tests: 8 | - it: Verify priorityclass 9 | documentIndex: 0 10 | asserts: 11 | - isKind: 12 | of: PriorityClass 13 | - equal: 14 | path: metadata.name 15 | value: karpenter-headroom 16 | - equal: 17 | path: value 18 | value: -1000000 19 | - equal: 20 | path: globalDefault 21 | value: false 22 | -------------------------------------------------------------------------------- /gitops/addons/charts/resources/kyverno/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /gitops/addons/charts/resources/kyverno/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: kyverno-resources 3 | description: A Helm chart for Kubernetes 4 | 5 | # A chart can be either an 'application' or a 'library' chart. 6 | # 7 | # Application charts are a collection of templates that can be packaged into versioned archives 8 | # to be deployed. 9 | # 10 | # Library charts provide useful utilities or functions for the chart developer. They're included as 11 | # a dependency of application charts to inject those utilities and functions into the rendering 12 | # pipeline. Library charts do not define any templates and therefore cannot be deployed. 13 | type: application 14 | 15 | # This is the chart version. This version number should be incremented each time you make changes 16 | # to the chart and its templates, including the app version. 17 | # Versions are expected to follow Semantic Versioning (https://semver.org/) 18 | version: 1.0.0 19 | 20 | -------------------------------------------------------------------------------- /gitops/addons/charts/resources/kyverno/templates/disallowedrepos.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kyverno.io/v1 2 | kind: ClusterPolicy 3 | metadata: 4 | name: restrict-image-registries 5 | annotations: 6 | argocd.argoproj.io/sync-wave: "1" 7 | argocd.argoproj.io/sync-options: "SkipDryRunOnMissingResource=true" 8 | policies.kyverno.io/title: Restrict Image Registries 9 | policies.kyverno.io/category: Best Practices, EKS Best Practices 10 | policies.kyverno.io/severity: medium 11 | policies.kyverno.io/minversion: 1.6.0 12 | kyverno.io/kubernetes-version: "1.26" 13 | policies.kyverno.io/subject: Pod 14 | policies.kyverno.io/description: >- 15 | Images from unknown, public registries can be of dubious quality and may not be 16 | scanned and secured, representing a high degree of risk. Requiring use of known, approved 17 | registries helps reduce threat exposure by ensuring image pulls only come from them. This 18 | policy validates that container images originate from valide registries and NOT originate from the registry `k8s.gcr.io`. 19 | Use of this policy requires customization to define your non allowable or allowable registries. 20 | spec: 21 | validationFailureAction: audit 22 | background: true 23 | failurePolicy: Fail 24 | rules: 25 | - name: validate-registries 26 | match: 27 | any: 28 | - resources: 29 | kinds: 30 | - Pod 31 | skipBackgroundRequests: false 32 | validate: 33 | message: "Unknown image registry." 34 | pattern: 35 | {{- toYaml .Values.disallowedrepos | nindent 8 -}} 36 | -------------------------------------------------------------------------------- /gitops/addons/charts/resources/kyverno/values.yaml: -------------------------------------------------------------------------------- 1 | disallowedrepos: 2 | spec: 3 | =(ephemeralContainers): 4 | - image: "ghcr.io/* | *.amazonaws.com/* | quay.io/* | registry.k8s.io/* | docker.io/* | gcr.io/* | !k8s.gcr.io/*" 5 | =(initContainers): 6 | - image: "ghcr.io/* | *.amazonaws.com/* | quay.io/* | registry.k8s.io/* | docker.io/* | gcr.io/* | !k8s.gcr.io/*" 7 | containers: 8 | - image: "ghcr.io/* | *.amazonaws.com/* | quay.io/* | registry.k8s.io/* | docker.io/* | gcr.io/* | !k8s.gcr.io/*" 9 | -------------------------------------------------------------------------------- /gitops/addons/clusters/hub-cluster/addons/argocd/values.yaml: -------------------------------------------------------------------------------- 1 | configs: 2 | cm: 3 | ui.bannerurl: "https://us-west-2.console.aws.amazon.com/eks/home?region=us-west-2#/clusters/fleet-hub-cluster" 4 | -------------------------------------------------------------------------------- /gitops/addons/clusters/hub-cluster/addons/gitops-bridge/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | addons: 3 | aws_load_balancer_controller: 4 | enabled: true 5 | aws_ebs_csi_resources: 6 | enabled: false 7 | metrics_server: 8 | enabled: false 9 | karpenter: 10 | enabled: false 11 | kyverno: 12 | enabled: false 13 | external_secrets: 14 | enabled: false 15 | cni_metrics_helper: 16 | enabled: false 17 | cw_prometheus: 18 | enabled: false 19 | grafana_operator: 20 | enabled: false 21 | argocd: 22 | enabled: true # ArgoCD is enabled to replace the argocd installed at bootstrap time via terraform helm provider 23 | prometheus_node_exporter: 24 | enabled: false 25 | kube_state_metrics: 26 | enabled: false 27 | 28 | -------------------------------------------------------------------------------- /gitops/addons/clusters/spoke-staging/addons/gitops-bridge/values.yaml: -------------------------------------------------------------------------------- 1 | # values for spoke-staging 2 | -------------------------------------------------------------------------------- /gitops/addons/default/addons/argocd/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/default/addons/aws-cloudwatch-metrics/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/default/addons/aws-cloudwatch-metrics/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | tolerations: 3 | - key: "CriticalAddonsOnly" 4 | operator: "Exists" 5 | -------------------------------------------------------------------------------- /gitops/addons/default/addons/aws-load-balancer-controller/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/default/addons/aws-load-balancer-controller/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | tolerations: 3 | - key: "CriticalAddonsOnly" 4 | operator: "Exists" 5 | -------------------------------------------------------------------------------- /gitops/addons/default/addons/cni-metrics-helper/values.yaml: -------------------------------------------------------------------------------- 1 | tolerations: 2 | - key: CriticalAddonsOnly 3 | operator: Exists 4 | -------------------------------------------------------------------------------- /gitops/addons/default/addons/cw-prometheus/values.yaml: -------------------------------------------------------------------------------- 1 | tolerations: 2 | - key: "CriticalAddonsOnly" 3 | operator: "Exists" -------------------------------------------------------------------------------- /gitops/addons/default/addons/external-dns/values.yaml: -------------------------------------------------------------------------------- 1 | global: 2 | tolerations: 3 | - key: CriticalAddonsOnly 4 | operator: Exists -------------------------------------------------------------------------------- /gitops/addons/default/addons/external-secrets/values.yaml: -------------------------------------------------------------------------------- 1 | global: 2 | tolerations: 3 | - key: CriticalAddonsOnly 4 | operator: Exists -------------------------------------------------------------------------------- /gitops/addons/default/addons/gitops-bridge/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | addons: 3 | external_secrets: 4 | values: 5 | serviceAccount: 6 | annotations: 7 | eks.amazonaws.com/role-arn: '' # override with empty string because we are using pod identity not IRSA 8 | karpenter: 9 | values: 10 | serviceAccount: 11 | annotations: 12 | eks.amazonaws.com/role-arn: '' # override with empty string because we are using pod identity not IRSA 13 | aws_load_balancer_controller: 14 | values: 15 | serviceAccount: 16 | annotations: 17 | eks.amazonaws.com/role-arn: '' # override with empty string because we are using pod identity not IRSA 18 | -------------------------------------------------------------------------------- /gitops/addons/default/addons/karpenter/resources/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/gitops/addons/default/addons/karpenter/resources/.keep -------------------------------------------------------------------------------- /gitops/addons/default/addons/karpenter/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # karpenter resources like nodepool and nodeclass 2 | environment: dev 3 | 4 | nodeGroups: 5 | nodes-default: 6 | instances: 7 | categories: 8 | - c 9 | - m 10 | - r 11 | limits: 12 | # cpu: 1000 13 | # memory: 1000Gi 14 | cpu: 50 15 | memory: 50Gi 16 | nvidia.com/gpu: 0 17 | 18 | instances: 19 | minGeneration: 5 20 | architecture: "amd64" 21 | categories: 22 | - m 23 | - r 24 | cores: 25 | - "4" 26 | - "8" 27 | - "16" 28 | capacityType: 29 | #- spot 30 | - on-demand 31 | operatingSystems: 32 | - linux 33 | minGeneration: 5 34 | 35 | 36 | clusterName: in-cluster 37 | IamRole: myRole 38 | #amiFamily: Bottlerocket 39 | amiSelectorTerms: 40 | - alias: al2023@latest 41 | securityGroupSelectorTerms: 42 | - tags: 43 | karpenter.sh/discovery: 'in-cluster' 44 | subnetSelectorTerms: 45 | - tags: 46 | karpenter.sh/discovery: 'in-cluster' 47 | nodeTags: 48 | component: gitops-bridge 49 | team: gitops-bridge 50 | blockDeviceMappings: 51 | - deviceName: /dev/xvda 52 | ebs: 53 | volumeSize: 20Gi 54 | volumeType: gp3 55 | encrypted: true 56 | - deviceName: /dev/xvdb 57 | ebs: 58 | volumeSize: 20Gi 59 | volumeType: gp3 60 | encrypted: true 61 | -------------------------------------------------------------------------------- /gitops/addons/default/addons/karpenter/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | tolerations: 3 | - key: CriticalAddonsOnly 4 | operator: Exists 5 | -------------------------------------------------------------------------------- /gitops/addons/default/addons/kyverno/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/default/addons/metrics-server/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/default/addons/metrics-server/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | tolerations: 3 | - key: CriticalAddonsOnly 4 | operator: Exists 5 | -------------------------------------------------------------------------------- /gitops/addons/environments/control-plane/addons/argocd/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/control-plane/addons/argocd/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | configs: 3 | cm: 4 | ui.bannercontent: "Management Environment ArgoCD" 5 | params: 6 | server.basehref: /proxy/8081/ 7 | -------------------------------------------------------------------------------- /gitops/addons/environments/control-plane/addons/aws-load-balancer-controller/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/control-plane/addons/aws-load-balancer-controller/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | tolerations: 3 | - key: "CriticalAddonsOnly" 4 | operator: "Exists" 5 | -------------------------------------------------------------------------------- /gitops/addons/environments/control-plane/addons/gatekeeper/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/control-plane/addons/gatekeeper/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/environments/control-plane/addons/gitops-bridge/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/control-plane/addons/karpenter/resources/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/gitops/addons/environments/control-plane/addons/karpenter/resources/.keep -------------------------------------------------------------------------------- /gitops/addons/environments/control-plane/addons/karpenter/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # karpenter resources like nodepool and nodeclass 2 | environment: dev 3 | 4 | -------------------------------------------------------------------------------- /gitops/addons/environments/control-plane/addons/karpenter/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/environments/control-plane/addons/metrics-server/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/control-plane/addons/metrics-server/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/control-plane/addons/volcano/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/control-plane/addons/volcano/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/dev/addons/argocd/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/dev/addons/argocd/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/dev/addons/aws-load-balancer-controller/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/dev/addons/aws-load-balancer-controller/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | tolerations: 3 | - key: "CriticalAddonsOnly" 4 | operator: "Exists" 5 | -------------------------------------------------------------------------------- /gitops/addons/environments/dev/addons/gatekeeper/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/dev/addons/gatekeeper/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/environments/dev/addons/gitops-bridge/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/dev/addons/karpenter/resources/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/gitops/addons/environments/dev/addons/karpenter/resources/.keep -------------------------------------------------------------------------------- /gitops/addons/environments/dev/addons/karpenter/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # karpenter resources like nodepool and nodeclass 2 | environment: dev 3 | 4 | -------------------------------------------------------------------------------- /gitops/addons/environments/dev/addons/karpenter/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/environments/dev/addons/metrics-server/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/dev/addons/metrics-server/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/dev/addons/volcano/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/dev/addons/volcano/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/prod/addons/argocd/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/prod/addons/argocd/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | configs: 3 | cm: 4 | ui.bannercontent: "Production Environment" 5 | params: 6 | server.basehref: /proxy/8083/ -------------------------------------------------------------------------------- /gitops/addons/environments/prod/addons/aws-load-balancer-controller/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/prod/addons/aws-load-balancer-controller/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | tolerations: 3 | - key: "CriticalAddonsOnly" 4 | operator: "Exists" 5 | -------------------------------------------------------------------------------- /gitops/addons/environments/prod/addons/gatekeeper/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/prod/addons/gatekeeper/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/environments/prod/addons/gitops-bridge/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/prod/addons/karpenter/resources/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/gitops/addons/environments/prod/addons/karpenter/resources/.keep -------------------------------------------------------------------------------- /gitops/addons/environments/prod/addons/karpenter/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # karpenter resources like nodepool and nodeclass 2 | environment: dev 3 | 4 | -------------------------------------------------------------------------------- /gitops/addons/environments/prod/addons/karpenter/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/environments/prod/addons/metrics-server/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/prod/addons/metrics-server/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/prod/addons/volcano/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/prod/addons/volcano/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/staging/addons/argocd/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/staging/addons/argocd/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | configs: 3 | cm: 4 | ui.bannercontent: "Staging Environment" 5 | params: 6 | server.basehref: /proxy/8082/ 7 | -------------------------------------------------------------------------------- /gitops/addons/environments/staging/addons/aws-load-balancer-controller/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/staging/addons/aws-load-balancer-controller/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | tolerations: 3 | - key: "CriticalAddonsOnly" 4 | operator: "Exists" 5 | -------------------------------------------------------------------------------- /gitops/addons/environments/staging/addons/gatekeeper/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/staging/addons/gatekeeper/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/environments/staging/addons/gitops-bridge/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/staging/addons/karpenter/resources/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/gitops/addons/environments/staging/addons/karpenter/resources/.keep -------------------------------------------------------------------------------- /gitops/addons/environments/staging/addons/karpenter/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # karpenter resources like nodepool and nodeclass 2 | environment: dev 3 | 4 | -------------------------------------------------------------------------------- /gitops/addons/environments/staging/addons/karpenter/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/environments/staging/addons/metrics-server/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/staging/addons/metrics-server/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/staging/addons/volcano/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/environments/staging/addons/volcano/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/clusters/cluster1/addons/argocd/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/clusters/cluster1/addons/argocd/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/clusters/cluster1/addons/aws-load-balancer-controller/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/clusters/cluster1/addons/aws-load-balancer-controller/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | tolerations: 3 | - key: "CriticalAddonsOnly" 4 | operator: "Exists" 5 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/clusters/cluster1/addons/gatekeeper/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/clusters/cluster1/addons/gatekeeper/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/clusters/cluster1/addons/karpenter/resources/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/gitops/addons/tenants/tenant1/clusters/cluster1/addons/karpenter/resources/.keep -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/clusters/cluster1/addons/karpenter/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # karpenter resources like nodepool and nodeclass 2 | environment: dev 3 | 4 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/clusters/cluster1/addons/karpenter/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/clusters/cluster1/addons/volcano/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/clusters/cluster1/addons/volcano/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/default/addons/argocd/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/default/addons/aws-load-balancer-controller/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/default/addons/aws-load-balancer-controller/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | tolerations: 3 | - key: "CriticalAddonsOnly" 4 | operator: "Exists" 5 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/default/addons/gitops-bridge/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | addons: 3 | external_secrets: 4 | values: 5 | serviceAccount: 6 | annotations: 7 | eks.amazonaws.com/role-arn: '' # override with empty string because we are using pod identity not IRSA 8 | karpenter: 9 | values: 10 | serviceAccount: 11 | annotations: 12 | eks.amazonaws.com/role-arn: '' # override with empty string because we are using pod identity not IRSA 13 | aws_load_balancer_controller: 14 | values: 15 | serviceAccount: 16 | annotations: 17 | eks.amazonaws.com/role-arn: '' # override with empty string because we are using pod identity not IRSA 18 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/default/addons/karpenter/resources/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/gitops/addons/tenants/tenant1/default/addons/karpenter/resources/.keep -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/default/addons/karpenter/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # karpenter resources like nodepool and nodeclass 2 | environment: dev 3 | 4 | nodeGroups: 5 | nodes-default: 6 | instances: 7 | categories: 8 | - c 9 | - m 10 | - r 11 | 12 | instances: 13 | minGeneration: 5 14 | architecture: "amd64" 15 | categories: 16 | - m 17 | - r 18 | cores: 19 | - "4" 20 | - "8" 21 | - "16" 22 | capacityType: 23 | - spot 24 | - on-demand 25 | operatingSystems: 26 | - linux 27 | minGeneration: 5 28 | 29 | 30 | clusterName: in-cluster 31 | IamRole: myRole 32 | amiFamily: Bottlerocket 33 | securityGroupSelectorTerms: 34 | - tags: 35 | karpenter.sh/discovery: 'in-cluster' 36 | subnetSelectorTerms: 37 | - tags: 38 | karpenter.sh/discovery: 'in-cluster' 39 | nodeTags: 40 | component: gitops-bridge 41 | team: gitops-bridge 42 | blockDeviceMappings: 43 | - deviceName: /dev/xvda 44 | ebs: 45 | volumeSize: 10Gi 46 | volumeType: gp3 47 | encrypted: true 48 | - deviceName: /dev/xvdb 49 | ebs: 50 | volumeSize: 20Gi 51 | volumeType: gp3 52 | encrypted: true 53 | 54 | 55 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/default/addons/karpenter/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/default/addons/kyverno/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/default/addons/kyverno/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/default/addons/metrics-server/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/default/addons/metrics-server/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/control-plane/addons/argocd/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/control-plane/addons/argocd/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/control-plane/addons/aws-load-balancer-controller/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/control-plane/addons/aws-load-balancer-controller/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | tolerations: 3 | - key: "CriticalAddonsOnly" 4 | operator: "Exists" 5 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/control-plane/addons/gatekeeper/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/control-plane/addons/gatekeeper/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/control-plane/addons/gitops-bridge/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/control-plane/addons/karpenter/resources/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/gitops/addons/tenants/tenant1/environments/control-plane/addons/karpenter/resources/.keep -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/control-plane/addons/karpenter/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # karpenter resources like nodepool and nodeclass 2 | environment: dev 3 | 4 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/control-plane/addons/karpenter/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/control-plane/addons/metrics-server/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/control-plane/addons/metrics-server/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/control-plane/addons/volcano/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/control-plane/addons/volcano/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/dev/addons/argocd/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/dev/addons/argocd/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/dev/addons/aws-load-balancer-controller/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/dev/addons/aws-load-balancer-controller/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | tolerations: 3 | - key: "CriticalAddonsOnly" 4 | operator: "Exists" 5 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/dev/addons/gatekeeper/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/dev/addons/gatekeeper/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/dev/addons/gitops-bridge/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/dev/addons/karpenter/resources/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/gitops/addons/tenants/tenant1/environments/dev/addons/karpenter/resources/.keep -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/dev/addons/karpenter/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # karpenter resources like nodepool and nodeclass 2 | environment: dev 3 | 4 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/dev/addons/karpenter/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/dev/addons/metrics-server/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/dev/addons/metrics-server/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/dev/addons/volcano/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/dev/addons/volcano/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/prod/addons/argocd/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/prod/addons/argocd/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/prod/addons/aws-load-balancer-controller/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/prod/addons/aws-load-balancer-controller/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | tolerations: 3 | - key: "CriticalAddonsOnly" 4 | operator: "Exists" 5 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/prod/addons/gatekeeper/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/prod/addons/gatekeeper/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/prod/addons/gitops-bridge/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/prod/addons/karpenter/resources/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/gitops/addons/tenants/tenant1/environments/prod/addons/karpenter/resources/.keep -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/prod/addons/karpenter/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # karpenter resources like nodepool and nodeclass 2 | environment: dev 3 | 4 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/prod/addons/karpenter/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/prod/addons/metrics-server/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/prod/addons/metrics-server/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/prod/addons/volcano/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/prod/addons/volcano/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/staging/addons/argocd/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/staging/addons/argocd/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/staging/addons/aws-load-balancer-controller/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/staging/addons/aws-load-balancer-controller/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | tolerations: 3 | - key: "CriticalAddonsOnly" 4 | operator: "Exists" 5 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/staging/addons/gatekeeper/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # resources for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/staging/addons/gatekeeper/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/staging/addons/gitops-bridge/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/staging/addons/karpenter/resources/.keep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/gitops/addons/tenants/tenant1/environments/staging/addons/karpenter/resources/.keep -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/staging/addons/karpenter/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # karpenter resources like nodepool and nodeclass 2 | environment: dev 3 | 4 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/staging/addons/karpenter/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | 3 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/staging/addons/metrics-server/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/staging/addons/metrics-server/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/staging/addons/volcano/resources/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the resources of the addon 2 | -------------------------------------------------------------------------------- /gitops/addons/tenants/tenant1/environments/staging/addons/volcano/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | -------------------------------------------------------------------------------- /gitops/platform/bootstrap/.gitignore: -------------------------------------------------------------------------------- 1 | !.gitignore -------------------------------------------------------------------------------- /gitops/platform/charts/namespace/.helmignore: -------------------------------------------------------------------------------- 1 | # Patterns to ignore when building packages. 2 | # This supports shell glob matching, relative path matching, and 3 | # negation (prefixed with !). Only one pattern per line. 4 | .DS_Store 5 | # Common VCS dirs 6 | .git/ 7 | .gitignore 8 | .bzr/ 9 | .bzrignore 10 | .hg/ 11 | .hgignore 12 | .svn/ 13 | # Common backup files 14 | *.swp 15 | *.bak 16 | *.tmp 17 | *.orig 18 | *~ 19 | # Various IDEs 20 | .project 21 | .idea/ 22 | *.tmproj 23 | .vscode/ 24 | -------------------------------------------------------------------------------- /gitops/platform/charts/namespace/Chart.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v2 2 | name: team 3 | description: A Helm Chart to bootstrap a Namespace in a Multi-Tenancy setup 4 | version: 1.0.0 5 | type: application 6 | 7 | -------------------------------------------------------------------------------- /gitops/platform/charts/namespace/README.md: -------------------------------------------------------------------------------- 1 | # team 2 | 3 | A Helm Chart to bootstrap a Namespace in a Multi-Tenancy setup 4 | -------------------------------------------------------------------------------- /gitops/platform/charts/namespace/templates/limitrange/limitrange.yaml: -------------------------------------------------------------------------------- 1 | {{- range $name, $tenant := .Values.namespaces }} 2 | {{- range $tenant.limitRanges }} 3 | --- 4 | apiVersion: v1 5 | kind: LimitRange 6 | metadata: 7 | name: {{ .name }} 8 | namespace: {{ $name }} 9 | annotations: 10 | {{- include "team.annotations" $ | nindent 4 }} 11 | {{- if .annotations }} 12 | {{- with .annotations }} 13 | {{- toYaml . | nindent 4 }} 14 | {{- end }} 15 | {{- end }} 16 | labels: 17 | {{- include "team.labels" $ | nindent 4 }} 18 | {{- if .labels }} 19 | {{- with .labels }} 20 | {{- toYaml . | nindent 4 }} 21 | {{- end }} 22 | {{- end }} 23 | spec: 24 | limits: 25 | {{- toYaml .limits | nindent 4}} 26 | {{- end }} 27 | {{- end }} -------------------------------------------------------------------------------- /gitops/platform/charts/namespace/templates/networkpolicy/egress/deny-all.yaml: -------------------------------------------------------------------------------- 1 | {{- if and (.Values.networkPolicies.enabled) (.Values.networkPolicies.egress.deny.all) }} 2 | {{- range $name, $tenant := .Values.namespaces }} 3 | --- 4 | apiVersion: networking.k8s.io/v1 5 | kind: NetworkPolicy 6 | metadata: 7 | annotations: 8 | {{- include "team.annotations" $ | nindent 4 }} 9 | {{- if $.Values.networkPolicies.annotations }} 10 | {{- with $.Values.networkPolicies.annotations }} 11 | {{- toYaml . | nindent 4 }} 12 | {{- end }} 13 | {{- end }} 14 | labels: 15 | {{- include "team.labels" $ | nindent 4 }} 16 | {{- if $.Values.networkPolicies.labels }} 17 | {{- with $.Values.networkPolicies.labels }} 18 | {{- toYaml . | nindent 4 }} 19 | {{- end }} 20 | {{- end }} 21 | name: {{ include "team.networkPolicy.egress.deny.all.name" $ | quote }} 22 | namespace: {{ $name }} 23 | spec: 24 | {{- if $.Values.networkPolicies.egress.deny.all.podSelector }} 25 | podSelector: 26 | {{- toYaml $.Values.networkPolicies.egress.deny.all.podSelector | nindent 4 }} 27 | {{- else }} 28 | podSelector: {} 29 | {{- end }} 30 | policyTypes: 31 | - Egress 32 | egress: [] 33 | {{- end }} 34 | {{- end }} -------------------------------------------------------------------------------- /gitops/platform/charts/namespace/templates/networkpolicy/ingress/deny-all.yaml: -------------------------------------------------------------------------------- 1 | {{- if and (.Values.networkPolicies.enabled) (.Values.networkPolicies.ingress.deny.all) }} 2 | {{- range $name, $tenant := .Values.namespaces }} 3 | --- 4 | apiVersion: networking.k8s.io/v1 5 | kind: NetworkPolicy 6 | metadata: 7 | annotations: 8 | {{- include "team.annotations" $ | nindent 4 }} 9 | {{- if $.Values.networkPolicies.annotations }} 10 | {{- with $.Values.networkPolicies.annotations }} 11 | {{- toYaml . | nindent 4 }} 12 | {{- end }} 13 | {{- end }} 14 | labels: 15 | {{- include "team.labels" $ | nindent 4 }} 16 | {{- if $.Values.networkPolicies.labels }} 17 | {{- with $.Values.networkPolicies.labels }} 18 | {{- toYaml . | nindent 4 }} 19 | {{- end }} 20 | {{- end }} 21 | name: {{ include "team.networkPolicy.ingress.deny.all.name" $ | quote }} 22 | namespace: {{ $name }} 23 | spec: 24 | {{- if $.Values.networkPolicies.ingress.deny.all.podSelector }} 25 | podSelector: 26 | {{- toYaml $.Values.networkPolicies.ingress.deny.all.podSelector | nindent 4 }} 27 | {{- else }} 28 | podSelector: {} 29 | {{- end }} 30 | policyTypes: 31 | - Ingress 32 | ingress: [] 33 | {{- end }} 34 | {{- end }} 35 | -------------------------------------------------------------------------------- /gitops/platform/charts/namespace/templates/networkpolicy/networkpolicy.yaml: -------------------------------------------------------------------------------- 1 | {{- range $name, $tenant := .Values.namespaces }} 2 | {{- range $tenant.networkPolicies }} 3 | --- 4 | apiVersion: networking.k8s.io/v1 5 | kind: NetworkPolicy 6 | metadata: 7 | name: {{ .name }} 8 | namespace: {{ $name }} 9 | annotations: 10 | {{- include "team.annotations" $ | nindent 4 }} 11 | {{- if .annotations }} 12 | {{- with .annotations }} 13 | {{- toYaml . | nindent 4 }} 14 | {{- end }} 15 | {{- end }} 16 | labels: 17 | {{- include "team.labels" $ | nindent 4 }} 18 | {{- if .labels }} 19 | {{- with .labels }} 20 | {{- toYaml . | nindent 4 }} 21 | {{- end }} 22 | {{- end }} 23 | spec: 24 | {{- toYaml .spec | nindent 2 }} 25 | {{- end }} 26 | {{- end }} 27 | 28 | -------------------------------------------------------------------------------- /gitops/platform/charts/namespace/templates/rbac/role.yaml: -------------------------------------------------------------------------------- 1 | {{- range $name, $tenant := .Values.namespaces }} 2 | {{- range $tenant.roles }} 3 | --- 4 | apiVersion: rbac.authorization.k8s.io/v1 5 | kind: Role 6 | metadata: 7 | name: {{ .name }} 8 | namespace: {{ $name }} 9 | annotations: 10 | {{- include "team.annotations" $ | nindent 4 }} 11 | {{- if .annotations }} 12 | {{- with .annotations }} 13 | {{- toYaml . | nindent 4 }} 14 | {{- end }} 15 | {{- end }} 16 | labels: 17 | {{- include "team.labels" $ | nindent 4 }} 18 | {{- if .labels }} 19 | {{- with .labels }} 20 | {{- toYaml . | nindent 4 }} 21 | {{- end }} 22 | {{- end }} 23 | rules: 24 | {{- toYaml .rules | nindent 2 }} 25 | {{- end }} 26 | {{- end }} 27 | -------------------------------------------------------------------------------- /gitops/platform/charts/namespace/templates/rbac/rolebinding.yaml: -------------------------------------------------------------------------------- 1 | {{- range $name, $tenant := .Values.namespaces }} 2 | {{- range $tenant.roleBindings }} 3 | --- 4 | apiVersion: rbac.authorization.k8s.io/v1 5 | kind: RoleBinding 6 | metadata: 7 | name: {{ .name }} 8 | namespace: {{ $name }} 9 | annotations: 10 | {{- include "team.annotations" $ | nindent 4 }} 11 | {{- if .annotations }} 12 | {{- with .annotations }} 13 | {{- toYaml . | nindent 4 }} 14 | {{- end }} 15 | {{- end }} 16 | labels: 17 | {{- include "team.labels" $ | nindent 4 }} 18 | {{- if .labels }} 19 | {{- with .labels }} 20 | {{- toYaml . | nindent 4 }} 21 | {{- end }} 22 | {{- end }} 23 | subjects: 24 | {{- toYaml .subjects | nindent 2 }} 25 | roleRef: 26 | {{- toYaml .roleRef | nindent 2 }} 27 | {{- end }} 28 | {{- end }} 29 | -------------------------------------------------------------------------------- /gitops/platform/charts/namespace/templates/resourcequota/resourcequota.yaml: -------------------------------------------------------------------------------- 1 | {{- range $name, $tenant := .Values.namespaces }} 2 | {{- range $tenant.resourceQuotas }} 3 | --- 4 | apiVersion: v1 5 | kind: ResourceQuota 6 | metadata: 7 | name: {{ .name }} 8 | namespace: {{ $name }} 9 | annotations: 10 | {{- include "team.annotations" $ | nindent 4 }} 11 | {{- if .annotations }} 12 | {{- with .annotations }} 13 | {{- toYaml . | nindent 4 }} 14 | {{- end }} 15 | {{- end }} 16 | labels: 17 | {{- include "team.labels" $ | nindent 4 }} 18 | {{- if .labels }} 19 | {{- with .labels }} 20 | {{- toYaml . | nindent 4 }} 21 | {{- end }} 22 | {{- end }} 23 | spec: 24 | {{- toYaml .spec | nindent 2 }} 25 | {{- end }} 26 | {{- end }} -------------------------------------------------------------------------------- /gitops/workload/webstore/assets/base/configMap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: assets 5 | data: 6 | PORT: '8080' 7 | -------------------------------------------------------------------------------- /gitops/workload/webstore/assets/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - configMap.yaml 5 | - serviceAccount.yaml 6 | - service.yaml 7 | - deployment.yaml 8 | -------------------------------------------------------------------------------- /gitops/workload/webstore/assets/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: assets 5 | labels: 6 | app.kubernetes.io/created-by: eks-workshop 7 | spec: 8 | type: ClusterIP 9 | ports: 10 | - port: 80 11 | targetPort: http 12 | protocol: TCP 13 | name: http 14 | selector: 15 | app.kubernetes.io/name: assets 16 | app.kubernetes.io/instance: assets 17 | app.kubernetes.io/component: service 18 | -------------------------------------------------------------------------------- /gitops/workload/webstore/assets/base/serviceAccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: assets 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/assets/control-plane/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/assets/prod/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/assets/staging/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | #- try-namespace.yaml # namespaces are not allowed to be created by apps team in project workloads 6 | -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/base/infra-mng/configMap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: carts 5 | data: 6 | CARTS_DYNAMODB_TABLENAME: Items 7 | CARTS_DYNAMODB_CREATETABLE: "false" 8 | #AWS_ACCESS_KEY_ID: key 9 | #AWS_SECRET_ACCESS_KEY: secret 10 | #CARTS_DYNAMODB_ENDPOINT: http://carts-dynamodb:8000 11 | -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/base/infra-mng/ddb-table.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: dynamodb.services.k8s.aws/v1alpha1 2 | kind: Table 3 | metadata: 4 | name: items 5 | spec: 6 | tableName: Items 7 | billingMode: PAY_PER_REQUEST 8 | tableClass: STANDARD 9 | attributeDefinitions: 10 | - attributeName: id 11 | attributeType: S 12 | - attributeName: customerId 13 | attributeType: S 14 | keySchema: 15 | - attributeName: id 16 | keyType: HASH 17 | globalSecondaryIndexes: 18 | - indexName: idx_global_customerId 19 | keySchema: 20 | - attributeName: customerId 21 | keyType: HASH 22 | projection: 23 | projectionType: ALL -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/base/infra-mng/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - configMap.yaml 5 | - ddb-table.yaml -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/base/infra/configMap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: carts 5 | data: 6 | CARTS_DYNAMODB_TABLENAME: Items 7 | CARTS_DYNAMODB_CREATETABLE: "true" 8 | AWS_ACCESS_KEY_ID: key 9 | AWS_SECRET_ACCESS_KEY: secret 10 | CARTS_DYNAMODB_ENDPOINT: http://carts-dynamodb:8000 11 | -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/base/infra/deployment-db.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: carts-dynamodb 5 | labels: 6 | app.kubernetes.io/created-by: eks-workshop 7 | app.kubernetes.io/team: database 8 | spec: 9 | replicas: 1 10 | selector: 11 | matchLabels: 12 | app.kubernetes.io/name: carts 13 | app.kubernetes.io/instance: carts 14 | app.kubernetes.io/component: dynamodb 15 | template: 16 | metadata: 17 | labels: 18 | app.kubernetes.io/name: carts 19 | app.kubernetes.io/instance: carts 20 | app.kubernetes.io/component: dynamodb 21 | app.kubernetes.io/created-by: eks-workshop 22 | app.kubernetes.io/team: database 23 | spec: 24 | containers: 25 | - name: dynamodb 26 | image: "amazon/dynamodb-local:1.13.1" 27 | imagePullPolicy: IfNotPresent 28 | ports: 29 | - name: dynamodb 30 | containerPort: 8000 31 | protocol: TCP 32 | -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/base/infra/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - configMap.yaml 5 | - deployment-db.yaml 6 | - service-db.yaml -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/base/infra/service-db.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: carts-dynamodb 5 | labels: 6 | app.kubernetes.io/created-by: eks-workshop 7 | spec: 8 | type: ClusterIP 9 | ports: 10 | - port: 8000 11 | targetPort: dynamodb 12 | protocol: TCP 13 | name: dynamodb 14 | selector: 15 | app.kubernetes.io/name: carts 16 | app.kubernetes.io/instance: carts 17 | app.kubernetes.io/component: dynamodb 18 | -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/base/kustomization-mng.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - serviceAccount.yaml 5 | - service.yaml 6 | - deployment.yaml 7 | - infra-mng -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - serviceAccount.yaml 5 | - service.yaml 6 | - deployment.yaml 7 | - infra -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: carts 5 | labels: 6 | app.kubernetes.io/created-by: eks-workshop 7 | spec: 8 | type: ClusterIP 9 | ports: 10 | - port: 80 11 | targetPort: http 12 | protocol: TCP 13 | name: http 14 | selector: 15 | app.kubernetes.io/name: carts 16 | app.kubernetes.io/instance: carts 17 | app.kubernetes.io/component: service 18 | -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/base/serviceAccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: carts 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/control-plane/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/prod/kustomization-mng.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | 6 | configMapGenerator: 7 | - name: carts 8 | behavior: merge 9 | literals: 10 | - CARTS_DYNAMODB_TABLENAME=Items-Prod 11 | patches: 12 | - patch: |- 13 | apiVersion: dynamodb.services.k8s.aws/v1alpha1 14 | kind: Table 15 | metadata: 16 | name: items 17 | spec: 18 | tableName: Items-Prod 19 | - patch: |- 20 | apiVersion: v1 21 | kind: ServiceAccount 22 | metadata: 23 | name: carts 24 | annotations: 25 | eks.amazonaws.com/role-arn: arn:aws:iam::ACCOUNT_ID:role/carts-prod-role 26 | -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/prod/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | 6 | -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/staging/kustomization-mng.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | #- try-namespace.yaml # namespaces are not allowed to be created by app teams 6 | 7 | configMapGenerator: 8 | - name: carts 9 | behavior: merge 10 | literals: 11 | - CARTS_DYNAMODB_TABLENAME=Items-Staging 12 | patches: 13 | - patch: |- 14 | apiVersion: dynamodb.services.k8s.aws/v1alpha1 15 | kind: Table 16 | metadata: 17 | name: items 18 | spec: 19 | tableName: Items-Staging 20 | - patch: |- 21 | apiVersion: v1 22 | kind: ServiceAccount 23 | metadata: 24 | name: carts 25 | annotations: 26 | eks.amazonaws.com/role-arn: arn:aws:iam::ACCOUNT_ID:role/carts-staging-role 27 | -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/staging/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/carts/staging/try-namespace.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Namespace 3 | metadata: 4 | name: try-namespace 5 | labels: 6 | app.kubernetes.io/created-by: eks-workshop -------------------------------------------------------------------------------- /gitops/workload/webstore/catalog/base/configMap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: catalog 5 | data: 6 | DB_NAME: catalog 7 | DB_ENDPOINT: catalog-mysql:3306 8 | DB_READ_ENDPOINT: catalog-mysql:3306 9 | -------------------------------------------------------------------------------- /gitops/workload/webstore/catalog/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - secrets.yaml 5 | - configMap.yaml 6 | - serviceAccount.yaml 7 | - service.yaml 8 | - service-mysql.yaml 9 | - deployment.yaml 10 | - statefulset-mysql.yaml 11 | -------------------------------------------------------------------------------- /gitops/workload/webstore/catalog/base/secrets.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: catalog-db 5 | data: 6 | username: "Y2F0YWxvZ191c2Vy" 7 | password: "ZGVmYXVsdF9wYXNzd29yZA==" 8 | -------------------------------------------------------------------------------- /gitops/workload/webstore/catalog/base/service-mysql.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: catalog-mysql 5 | labels: 6 | app.kubernetes.io/created-by: eks-workshop 7 | spec: 8 | type: ClusterIP 9 | ports: 10 | - port: 3306 11 | targetPort: mysql 12 | protocol: TCP 13 | name: mysql 14 | selector: 15 | app.kubernetes.io/name: catalog 16 | app.kubernetes.io/instance: catalog 17 | app.kubernetes.io/component: mysql 18 | -------------------------------------------------------------------------------- /gitops/workload/webstore/catalog/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: catalog 5 | labels: 6 | app.kubernetes.io/created-by: eks-workshop 7 | spec: 8 | type: ClusterIP 9 | ports: 10 | - port: 80 11 | targetPort: http 12 | protocol: TCP 13 | name: http 14 | selector: 15 | app.kubernetes.io/name: catalog 16 | app.kubernetes.io/instance: catalog 17 | app.kubernetes.io/component: service 18 | -------------------------------------------------------------------------------- /gitops/workload/webstore/catalog/base/serviceAccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: catalog 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/catalog/control-plane/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/catalog/prod/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/catalog/staging/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | #- try-namespace.yaml # namespaces are not allowed to be created by apps team in project workloads 6 | -------------------------------------------------------------------------------- /gitops/workload/webstore/checkout/base/configMap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: checkout 5 | data: 6 | REDIS_URL: redis://checkout-redis.checkout:6379 7 | ENDPOINTS_ORDERS: http://orders.orders.svc:80 8 | -------------------------------------------------------------------------------- /gitops/workload/webstore/checkout/base/deployment-redis.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: checkout-redis 5 | labels: 6 | app.kubernetes.io/created-by: eks-workshop 7 | app.kubernetes.io/team: database 8 | spec: 9 | replicas: 1 10 | selector: 11 | matchLabels: 12 | app.kubernetes.io/name: checkout 13 | app.kubernetes.io/instance: checkout 14 | app.kubernetes.io/component: redis 15 | template: 16 | metadata: 17 | labels: 18 | app.kubernetes.io/name: checkout 19 | app.kubernetes.io/instance: checkout 20 | app.kubernetes.io/component: redis 21 | app.kubernetes.io/created-by: eks-workshop 22 | app.kubernetes.io/team: database 23 | spec: 24 | containers: 25 | - name: redis 26 | image: "public.ecr.aws/docker/library/redis:6.0-alpine" 27 | imagePullPolicy: IfNotPresent 28 | ports: 29 | - name: redis 30 | containerPort: 6379 31 | protocol: TCP 32 | -------------------------------------------------------------------------------- /gitops/workload/webstore/checkout/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - configMap.yaml 5 | - serviceAccount.yaml 6 | - service.yaml 7 | - service-redis.yaml 8 | - deployment.yaml 9 | - deployment-redis.yaml 10 | -------------------------------------------------------------------------------- /gitops/workload/webstore/checkout/base/service-redis.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: checkout-redis 5 | labels: 6 | app.kubernetes.io/created-by: eks-workshop 7 | spec: 8 | type: ClusterIP 9 | ports: 10 | - port: 6379 11 | targetPort: redis 12 | protocol: TCP 13 | name: redis 14 | selector: 15 | app.kubernetes.io/name: checkout 16 | app.kubernetes.io/instance: checkout 17 | app.kubernetes.io/component: redis 18 | -------------------------------------------------------------------------------- /gitops/workload/webstore/checkout/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: checkout 5 | labels: 6 | app.kubernetes.io/created-by: eks-workshop 7 | spec: 8 | type: ClusterIP 9 | ports: 10 | - port: 80 11 | targetPort: http 12 | protocol: TCP 13 | name: http 14 | selector: 15 | app.kubernetes.io/name: checkout 16 | app.kubernetes.io/instance: checkout 17 | app.kubernetes.io/component: service 18 | -------------------------------------------------------------------------------- /gitops/workload/webstore/checkout/base/serviceAccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: checkout 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/checkout/control-plane/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/checkout/prod/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/checkout/staging/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | #- try-namespace.yaml # namespaces are not allowed to be created by apps team in project workloads 6 | -------------------------------------------------------------------------------- /gitops/workload/webstore/orders/base/configMap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: orders 5 | data: 6 | SPRING_PROFILES_ACTIVE: mysql,rabbitmq 7 | SPRING_RABBITMQ_HOST: rabbitmq.rabbitmq.svc 8 | -------------------------------------------------------------------------------- /gitops/workload/webstore/orders/base/deployment-mysql.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: apps/v1 2 | kind: Deployment 3 | metadata: 4 | name: orders-mysql 5 | labels: 6 | app.kubernetes.io/created-by: eks-workshop 7 | app.kubernetes.io/team: database 8 | spec: 9 | replicas: 1 10 | selector: 11 | matchLabels: 12 | app.kubernetes.io/name: orders 13 | app.kubernetes.io/instance: orders 14 | app.kubernetes.io/component: mysql 15 | template: 16 | metadata: 17 | labels: 18 | app.kubernetes.io/name: orders 19 | app.kubernetes.io/instance: orders 20 | app.kubernetes.io/component: mysql 21 | app.kubernetes.io/created-by: eks-workshop 22 | app.kubernetes.io/team: database 23 | spec: 24 | containers: 25 | - name: mysql 26 | image: "public.ecr.aws/docker/library/mysql:5.7" 27 | imagePullPolicy: IfNotPresent 28 | env: 29 | - name: MYSQL_ROOT_PASSWORD 30 | value: my-secret-pw 31 | - name: MYSQL_DATABASE 32 | value: orders 33 | - name: MYSQL_USER 34 | value: orders_user 35 | - name: MYSQL_PASSWORD 36 | value: default_password 37 | ports: 38 | - name: mysql 39 | containerPort: 3306 40 | protocol: TCP 41 | -------------------------------------------------------------------------------- /gitops/workload/webstore/orders/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - secrets.yaml 5 | - configMap.yaml 6 | - serviceAccount.yaml 7 | - service.yaml 8 | - service-mysql.yaml 9 | - deployment.yaml 10 | - deployment-mysql.yaml 11 | -------------------------------------------------------------------------------- /gitops/workload/webstore/orders/base/secrets.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Secret 3 | metadata: 4 | name: orders-db 5 | data: 6 | url: "amRiYzptYXJpYWRiOi8vb3JkZXJzLW15c3FsOjMzMDYvb3JkZXJz" 7 | username: "b3JkZXJzX3VzZXI=" 8 | password: "ZGVmYXVsdF9wYXNzd29yZA==" 9 | -------------------------------------------------------------------------------- /gitops/workload/webstore/orders/base/service-mysql.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: orders-mysql 5 | labels: 6 | app.kubernetes.io/created-by: eks-workshop 7 | spec: 8 | type: ClusterIP 9 | ports: 10 | - port: 3306 11 | targetPort: mysql 12 | protocol: TCP 13 | name: mysql 14 | selector: 15 | app.kubernetes.io/name: orders 16 | app.kubernetes.io/instance: orders 17 | app.kubernetes.io/component: mysql 18 | -------------------------------------------------------------------------------- /gitops/workload/webstore/orders/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: orders 5 | labels: 6 | app.kubernetes.io/created-by: eks-workshop 7 | spec: 8 | type: ClusterIP 9 | ports: 10 | - port: 80 11 | targetPort: http 12 | protocol: TCP 13 | name: http 14 | selector: 15 | app.kubernetes.io/name: orders 16 | app.kubernetes.io/instance: orders 17 | app.kubernetes.io/component: service 18 | -------------------------------------------------------------------------------- /gitops/workload/webstore/orders/base/serviceAccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: orders 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/orders/control-plane/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/orders/prod/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/orders/staging/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | #- try-namespace.yaml # namespaces are not allowed to be created by apps team in project workloads 6 | -------------------------------------------------------------------------------- /gitops/workload/webstore/ui/base/configMap.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ConfigMap 3 | metadata: 4 | name: ui 5 | data: 6 | ENDPOINTS_CATALOG: http://catalog.catalog.svc:80 7 | ENDPOINTS_CARTS: http://carts.carts.svc:80 8 | ENDPOINTS_ORDERS: http://orders.orders.svc:80 9 | ENDPOINTS_ASSETS: http://assets.assets.svc:80 10 | ENDPOINTS_CHECKOUT: http://checkout.checkout.svc:80 11 | -------------------------------------------------------------------------------- /gitops/workload/webstore/ui/base/hpa.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: autoscaling/v1 2 | kind: HorizontalPodAutoscaler 3 | metadata: 4 | name: ui 5 | spec: 6 | maxReplicas: 2 7 | minReplicas: 1 8 | scaleTargetRef: 9 | apiVersion: apps/v1 10 | kind: Deployment 11 | name: ui 12 | targetCPUUtilizationPercentage: 80 13 | -------------------------------------------------------------------------------- /gitops/workload/webstore/ui/base/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - configMap.yaml 5 | - serviceAccount.yaml 6 | - service.yaml 7 | - deployment.yaml 8 | - hpa.yaml 9 | - nlb.yaml 10 | 11 | -------------------------------------------------------------------------------- /gitops/workload/webstore/ui/base/nlb.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: ui-nlb 5 | annotations: 6 | service.beta.kubernetes.io/aws-load-balancer-type: external 7 | service.beta.kubernetes.io/aws-load-balancer-scheme: internet-facing 8 | service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: instance 9 | namespace: ui 10 | spec: 11 | type: LoadBalancer 12 | ports: 13 | - port: 80 14 | targetPort: 8080 15 | name: http 16 | selector: 17 | app.kubernetes.io/name: ui 18 | app.kubernetes.io/instance: ui 19 | app.kubernetes.io/component: service 20 | -------------------------------------------------------------------------------- /gitops/workload/webstore/ui/base/service.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: Service 3 | metadata: 4 | name: ui 5 | labels: 6 | helm.sh/chart: ui-0.0.1 7 | app.kubernetes.io/name: ui 8 | app.kubernetes.io/instance: ui 9 | app.kubernetes.io/component: service 10 | app.kubernetes.io/managed-by: Helm 11 | app.kubernetes.io/created-by: eks-workshop 12 | spec: 13 | type: ClusterIP 14 | ports: 15 | - port: 80 16 | targetPort: http 17 | protocol: TCP 18 | name: http 19 | selector: 20 | app.kubernetes.io/name: ui 21 | app.kubernetes.io/instance: ui 22 | app.kubernetes.io/component: service 23 | -------------------------------------------------------------------------------- /gitops/workload/webstore/ui/base/serviceAccount.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: v1 2 | kind: ServiceAccount 3 | metadata: 4 | name: ui 5 | labels: 6 | helm.sh/chart: ui-0.0.1 7 | app.kubernetes.io/name: ui 8 | app.kubernetes.io/instance: ui 9 | app.kubernetes.io/component: service 10 | app.kubernetes.io/managed-by: Helm 11 | -------------------------------------------------------------------------------- /gitops/workload/webstore/ui/control-plane/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | -------------------------------------------------------------------------------- /gitops/workload/webstore/ui/prod/hpa.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: autoscaling/v1 2 | kind: HorizontalPodAutoscaler 3 | metadata: 4 | name: ui 5 | spec: 6 | maxReplicas: 2 7 | minReplicas: 2 8 | -------------------------------------------------------------------------------- /gitops/workload/webstore/ui/prod/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | patchesStrategicMerge: 6 | - hpa.yaml -------------------------------------------------------------------------------- /gitops/workload/webstore/ui/staging/kustomization.yaml: -------------------------------------------------------------------------------- 1 | apiVersion: kustomize.config.k8s.io/v1beta1 2 | kind: Kustomization 3 | resources: 4 | - ../base 5 | -------------------------------------------------------------------------------- /hack/.bashrc.d/argocd.bash: -------------------------------------------------------------------------------- 1 | function argocd_kill_port_forward (){ 2 | pkill -9 -f "kubectl --context $1 port-forward svc/argocd-server -n argocd $2:80" 3 | } 4 | 5 | function argocd_credentials (){ 6 | # This might not need it during workshop 7 | # argocd_kill_port_forward $1 $2 8 | kubectl --context $1 port-forward svc/argocd-server -n argocd $2:80 >/dev/null 2>&1 & 9 | # wait for port-forward to be up 10 | sleep 3 11 | export ARGOCD_PWD=$(kubectl get secrets argocd-initial-admin-secret -n argocd --template='{{index .data.password | base64decode}}' --context $1) 12 | argocd login "localhost:$2" --plaintext --username admin --password $ARGOCD_PWD --name $1 13 | echo "ArgoCD Username: admin" 14 | echo "ArgoCD Password: $ARGOCD_PWD" 15 | echo "ArgoCD URL: $IDE_URL/proxy/$2" 16 | } 17 | 18 | function gitea_credentials (){ 19 | echo "Gitea Username: workshop-user" 20 | echo "Gitea Password: $GITEA_PASSWORD" 21 | echo $GITEA_EXTERNAL_URL/workshop-user/ 22 | } 23 | 24 | function argocd_hub_credentials (){ 25 | argocd_credentials hub-cluster 8081 26 | } 27 | function argocd_staging_credentials (){ 28 | argocd_credentials staging-cluster 8082 29 | } 30 | function argocd_prod_credentials (){ 31 | argocd_credentials prod-cluster 8083 32 | } 33 | 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /hack/.bashrc.d/deploy-fleet-dashboard.bash: -------------------------------------------------------------------------------- 1 | function deploy_fleet_dashboard (){ 2 | export TF_VAR_aws_default_region=$AWS_REGION 3 | export TF_VAR_eks_dashboard_qs_region=$AWS_REGION 4 | echo "Deploying EKS Fleet Dashboard... this can take couple of minutes..." 5 | terraform -chdir=$WORKSHOP_DIR/terraform/fleet-dashboard init >/dev/null 6 | terraform -chdir=$WORKSHOP_DIR/terraform/fleet-dashboard apply -auto-approve >/dev/null 7 | echo "EKS Fleet Dashboard successfully deployed..." 8 | } 9 | -------------------------------------------------------------------------------- /hack/.bashrc.d/git.bash: -------------------------------------------------------------------------------- 1 | git config --global user.name "Workshop User" 2 | git config --global user.email "workshopuser@example.com" 3 | -------------------------------------------------------------------------------- /hack/.bashrc.d/kubectx-eks.bash: -------------------------------------------------------------------------------- 1 | 2 | #!/usr/bin/env bash 3 | 4 | # Function to check if a cluster context exists 5 | cluster_context_exists() { 6 | local cluster_name=$1 7 | kubectl config get-contexts -o name | grep -q "^${cluster_name}$" 8 | } 9 | 10 | # Function to update kubeconfig if context doesn't exist 11 | update_kubeconfig_if_needed() { 12 | local cluster_name=$1 13 | local alias_name=$2 14 | 15 | if ! cluster_context_exists "$alias_name"; then 16 | echo "Updating kubeconfig for $cluster_name" 17 | aws eks --region $AWS_REGION update-kubeconfig --name "$cluster_name" --alias "$alias_name" 18 | fi 19 | } 20 | 21 | update_kubeconfig_if_needed_with_role() { 22 | local cluster_name=$1 23 | local alias_name=$2 24 | local user_alias=$3 25 | local role_arn=$4 26 | 27 | if ! cluster_context_exists "$alias_name"; then 28 | echo "Updating kubeconfig for $alias_name" 29 | aws eks --region $AWS_REGION update-kubeconfig --name "$cluster_name" --alias "$alias_name" --user-alias "$user_alias" --role-arn "$role_arn" 30 | fi 31 | } 32 | 33 | #update_kubeconfig_if_needed "hub-cluster" "hub-cluster" -------------------------------------------------------------------------------- /hack/.bashrc.d/monitoring.bash: -------------------------------------------------------------------------------- 1 | function grafana (){ 2 | kubectl --context fleet-hub-cluster -n grafana-operator port-forward svc/grafana-service 3000:3000 3 | } 4 | -------------------------------------------------------------------------------- /hack/.bashrc.d/variables.bash: -------------------------------------------------------------------------------- 1 | export GITOPS_DIR=$HOME/environment/gitops-repos 2 | export WORKSHOP_DIR=$HOME/environment/fleet-management-on-amazon-eks-workshop 3 | -------------------------------------------------------------------------------- /hack/review-style-guide.md: -------------------------------------------------------------------------------- 1 | 1. The reader should be referred to as "we", not as "you" 2 | 2. Markdown page titles should use sentence case capitalization and NOT title case capitalization 3 | 3. Ensure that inclusive language is used 4 | 4. Do not add a space " " at the end of title or sentences -------------------------------------------------------------------------------- /hack/scripts/destroy-applications.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -uo pipefail 4 | 5 | 6 | #Activate AutoSync 7 | #kubectl --context hub-cluster patch applicationset bootstrap -n argocd --type=json -p='[{"op": "add", "path": "/spec/template/spec/syncPolicy", "value": {"automated": {"prune": true, "selfHeal": true}}}]' 8 | #Deactivate auto-sync 9 | kubectl --context hub-cluster patch applicationset bootstrap -n argocd --type=json -p='[{"op": "remove", "path": "/spec/template/spec/syncPolicy"}]' 10 | 11 | #Clean Workloads 12 | kubectl --context hub-cluster delete applicationset -n argocd workload --cascade=foreground 13 | #Clean namespaces 14 | kubectl --context hub-cluster delete applicationset -n argocd namespace --cascade=foreground 15 | #Clea projects 16 | kubectl --context hub-cluster delete applicationset -n argocd argoprojects --cascade=foreground 17 | #Clean addons (but the have preserve On) 18 | kubectl --context hub-cluster delete applicationset -n argocd cluster-addons --cascade=foreground 19 | 20 | #Clean app of apps 21 | kubectl --context hub-cluster delete applicationset -n argocd bootstrap --cascade=foreground 22 | 23 | -------------------------------------------------------------------------------- /hack/scripts/destroy-clusters.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Get the directory of the current script 4 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" 5 | . "$SCRIPT_DIR/functions.sh" 6 | 7 | 8 | CLUSTERS=("spoke-staging" "hub-cluster") 9 | 10 | parse_arguments "$@" 11 | delete_eks_clusters -------------------------------------------------------------------------------- /hack/scripts/destroy-git.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -uo pipefail 4 | 5 | [[ -n "${DEBUG:-}" ]] && set -x 6 | 7 | cd $BASE_DIR/terraform/common 8 | 9 | TF_VAR_gitea_external_url=$GITEA_EXTERNAL_URL TF_VAR_gitea_password=$GITEA_PASSWORD terraform destroy -auto-approve -------------------------------------------------------------------------------- /hack/scripts/destroy-hub.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -uo pipefail 4 | 5 | [[ -n "${DEBUG:-}" ]] && set -x 6 | 7 | cd ~/environment/hub/ 8 | 9 | 10 | terraform destroy -target="module.gitops_bridge_bootstrap" -auto-approve 11 | terraform destroy -target="module.eks_blueprints_addons" -auto-approve 12 | 13 | #Remove EKS cluster 14 | terraform destroy -target="module.eks" -auto-approve 15 | 16 | # clean everything else 17 | terraform destroy -auto-approve 18 | 19 | if [ $? -eq 0 ]; then 20 | echo "Success: VPC $VPCID deleted successfully." 21 | else 22 | echo "Error: Failed to delete VPC $VPCID, you may need to do some manuals cleanups" 23 | fi 24 | 25 | -------------------------------------------------------------------------------- /hack/scripts/destroy-secrets.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Get the directory of the current script 4 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" 5 | 6 | # Source the functions file using the script directory 7 | if [ -f "$SCRIPT_DIR/functions.sh" ]; then 8 | . "$SCRIPT_DIR/functions.sh" 9 | else 10 | echo "Error: functions.sh not found in $SCRIPT_DIR" 11 | exit 1 12 | fi 13 | 14 | ASK_DELETE=true 15 | ACCEPT_DELETE=true 16 | SECRET_NAMES=("eks-blueprints-workshop-gitops-workloads" "eks-blueprints-workshop-gitops-platform" "eks-blueprints-workshop-gitops-addons") 17 | 18 | 19 | delete_secrets_manager_secrets -------------------------------------------------------------------------------- /hack/scripts/destroy-spoke.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -uo pipefail 4 | 5 | [[ -n "${DEBUG:-}" ]] && set -x 6 | 7 | 8 | # Check if a parameter is provided 9 | if [ -z "$1" ]; then 10 | echo "Error: No workspace provided." 11 | echo "Usage: $0 " 12 | exit 1 13 | fi 14 | 15 | WORKSPACE=$1 16 | 17 | cd ~/environment/spoke/ 18 | 19 | terraform workspace select $WORKSPACE 20 | 21 | 22 | terraform destroy -target="module.gitops_bridge_bootstrap" -auto-approve 23 | terraform destroy -target="module.eks_blueprints_addons" -auto-approve 24 | 25 | #Remove EKS cluster 26 | terraform destroy -target="module.eks" -auto-approve 27 | 28 | # clean everything else 29 | terraform destroy -auto-approve 30 | 31 | if [ $? -eq 0 ]; then 32 | echo "Success: EKS Spoke $WORKSPACE deleted successfully." 33 | else 34 | echo "Error: Failed to delete EKS Spoke $WORKSPACE, you may need to do some manuals cleanups" 35 | fi 36 | 37 | -------------------------------------------------------------------------------- /hack/scripts/destroy-vpc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -uo pipefail 4 | 5 | SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" 6 | . "$SCRIPT_DIR/functions.sh" 7 | 8 | 9 | VPC_NAMES=("eks-blueprints-workshop") 10 | 11 | 12 | 13 | parse_arguments "$@" 14 | 15 | #cleanup_vpc_resources 16 | delete_vpc_endpoints 17 | 18 | # # clean everything else 19 | cd ~/environment/vpc/ 20 | terraform destroy -auto-approve || true 21 | 22 | #Do it 2 tims to be sure to delete everything 23 | #cleanup_vpc_resources 24 | delete_vpcs 25 | 26 | 27 | terraform destroy -auto-approve 28 | -------------------------------------------------------------------------------- /hack/scripts/destroy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -uo pipefail 4 | 5 | $BASE_DIR/hack/scripts/destroy-applications.sh 6 | 7 | $BASE_DIR/hack/scripts/destroy-spoke.sh default 8 | 9 | $BASE_DIR/hack/scripts/destroy-hub.sh 10 | 11 | $BASE_DIR/hack/scripts/destroy-git.sh 12 | 13 | $BASE_DIR/hack/scripts/destroy-vpc.sh 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /link-check-config.json: -------------------------------------------------------------------------------- 1 | { 2 | "replacementPatterns": [ 3 | { 4 | "pattern": "^/static", 5 | "replacement": "{{BASEURL}}/static" 6 | }, 7 | { 8 | "pattern": "^/.*/$", 9 | "replacement": "{{BASEURL}}/content/index.en.md" 10 | }, 11 | { 12 | "pattern": "^/", 13 | "replacement": "{{BASEURL}}/content/" 14 | } 15 | ], 16 | "ignorePatterns": [ 17 | { 18 | "pattern": "gitlab.aws.dev" 19 | }, 20 | { 21 | "pattern": "^file:///" 22 | }, 23 | { 24 | "pattern": "../" 25 | } 26 | ] 27 | } 28 | -------------------------------------------------------------------------------- /solution/gitops/addons/clusters/hub-cluster/addons/gitops-bridge/values.yaml: -------------------------------------------------------------------------------- 1 | # values for the addon 2 | addons: 3 | aws_load_balancer_controller: 4 | enabled: true 5 | aws_ebs_csi_resources: 6 | enabled: false 7 | metrics_server: 8 | enabled: false 9 | karpenter: 10 | enabled: false 11 | kyverno: 12 | enabled: false 13 | external_secrets: 14 | enabled: false 15 | cni_metrics_helper: 16 | enabled: false 17 | cw_prometheus: 18 | enabled: false 19 | grafana_operator: 20 | enabled: false 21 | argocd: 22 | enabled: false # ArgoCD is enabled to replace the argocd installed at bootstrap time via terraform helm provider 23 | prometheus_node_exporter: 24 | enabled: false 25 | kube_state_metrics: 26 | enabled: false 27 | 28 | -------------------------------------------------------------------------------- /static/eks-blueprints-workshop-central-stack.json: -------------------------------------------------------------------------------- 1 | { 2 | "Description": "Creates the lab environment for the workshop", 3 | "Parameters": { 4 | "AssetsBucketName": { 5 | "Type": "String" 6 | }, 7 | "AssetsBucketPrefix": { 8 | "Type": "String" 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /static/iam_policy.json: -------------------------------------------------------------------------------- 1 | { 2 | "Version": "2012-10-17", 3 | "Statement": [ 4 | { 5 | "Sid": "EksWorkshopParticipant", 6 | "Effect": "Allow", 7 | "Action": [ 8 | "ecr:*", 9 | "eks:*", 10 | "elasticloadbalancing:*", 11 | "cloudwatch:*", 12 | "logs:*", 13 | "cloud9:*", 14 | "secretsmanager:*", 15 | "dynamodb:*", 16 | "kms:*", 17 | "guardduty:*", 18 | "codebuild:*", 19 | "s3:*", 20 | "codecommit:*", 21 | "glue:*", 22 | "quicksight:*", 23 | "ds:*", 24 | "iam:CreateRole", 25 | "iam:CreatePolicy", 26 | "iam:AttachRolePolicy", 27 | "iam:CreatePolicyVersion", 28 | "iam:DeletePolicyVersion", 29 | "iam:ListAttachedRolePolicies", 30 | "iam:GetRole", 31 | "iam:GetPolicy", 32 | "iam:DetachRolePolicy", 33 | "iam:GetPolicyVersion", 34 | "fis:*", 35 | "iam:ListPolicyVersions", 36 | "resiliencehub:*" 37 | ], 38 | "Resource": ["*"] 39 | }, 40 | { 41 | "Sid": "AllowIamPassRole", 42 | "Effect": "Allow", 43 | "Action": ["iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy"], 44 | "Resource": ["arn:aws:iam::*:role/service-role/SPOTAWSFISIAMRole*"] 45 | } 46 | ] 47 | } 48 | -------------------------------------------------------------------------------- /static/images/10-IDE-Password.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/10-IDE-Password.jpg -------------------------------------------------------------------------------- /static/images/10-IDE-Terminal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/10-IDE-Terminal.jpg -------------------------------------------------------------------------------- /static/images/10-IDE.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/10-IDE.jpg -------------------------------------------------------------------------------- /static/images/access-denied.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/access-denied.png -------------------------------------------------------------------------------- /static/images/add_git_repos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/add_git_repos.png -------------------------------------------------------------------------------- /static/images/addon-lb-role.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/addon-lb-role.png -------------------------------------------------------------------------------- /static/images/addons-applicationset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/addons-applicationset.png -------------------------------------------------------------------------------- /static/images/addons-rootapp-addons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/addons-rootapp-addons.png -------------------------------------------------------------------------------- /static/images/addons-rootapp.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/addons-rootapp.jpg -------------------------------------------------------------------------------- /static/images/app-of-apps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/app-of-apps.png -------------------------------------------------------------------------------- /static/images/applicationset-controlplane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/applicationset-controlplane.png -------------------------------------------------------------------------------- /static/images/applicationset-workloads.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/applicationset-workloads.png -------------------------------------------------------------------------------- /static/images/applicationset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/applicationset.png -------------------------------------------------------------------------------- /static/images/archdiagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/archdiagram.png -------------------------------------------------------------------------------- /static/images/argo-cd-architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argo-cd-architecture.png -------------------------------------------------------------------------------- /static/images/argo-rollout-green-prev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argo-rollout-green-prev.png -------------------------------------------------------------------------------- /static/images/argo-rollouts-installed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argo-rollouts-installed.png -------------------------------------------------------------------------------- /static/images/argo_dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argo_dashboard.png -------------------------------------------------------------------------------- /static/images/argocd-after-addon-metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-after-addon-metadata.png -------------------------------------------------------------------------------- /static/images/argocd-before-addon-metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-before-addon-metadata.png -------------------------------------------------------------------------------- /static/images/argocd-bootstrap-eks.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-bootstrap-eks.jpg -------------------------------------------------------------------------------- /static/images/argocd-bootstrap-install.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-bootstrap-install.jpg -------------------------------------------------------------------------------- /static/images/argocd-bootstrap-install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-bootstrap-install.png -------------------------------------------------------------------------------- /static/images/argocd-bootstrap-manage-addon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-bootstrap-manage-addon.png -------------------------------------------------------------------------------- /static/images/argocd-cluster-object.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-cluster-object.png -------------------------------------------------------------------------------- /static/images/argocd-eks-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-eks-blue.png -------------------------------------------------------------------------------- /static/images/argocd-fb-restart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-fb-restart.png -------------------------------------------------------------------------------- /static/images/argocd-hub-spoke.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-hub-spoke.jpg -------------------------------------------------------------------------------- /static/images/argocd-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-login.png -------------------------------------------------------------------------------- /static/images/argocd-main-page-workshop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-main-page-workshop.png -------------------------------------------------------------------------------- /static/images/argocd-main-page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-main-page.png -------------------------------------------------------------------------------- /static/images/argocd-manage-metrics-addon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-manage-metrics-addon.png -------------------------------------------------------------------------------- /static/images/argocd-multicluster-addons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-multicluster-addons.png -------------------------------------------------------------------------------- /static/images/argocd-promote-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-promote-green.png -------------------------------------------------------------------------------- /static/images/argocd-repositories.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-repositories.jpg -------------------------------------------------------------------------------- /static/images/argocd-rollout-preview-promoted.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-rollout-preview-promoted.png -------------------------------------------------------------------------------- /static/images/argocd-rollout-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-rollout-preview.png -------------------------------------------------------------------------------- /static/images/argocd-selfmanage.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-selfmanage.jpg -------------------------------------------------------------------------------- /static/images/argocd-standalone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-standalone.png -------------------------------------------------------------------------------- /static/images/argocd-sync.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-sync.png -------------------------------------------------------------------------------- /static/images/argocd-update-metadata.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-update-metadata.jpg -------------------------------------------------------------------------------- /static/images/argocd-values.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd-values.jpg -------------------------------------------------------------------------------- /static/images/argocd_architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd_architecture.png -------------------------------------------------------------------------------- /static/images/argocd_values_targetgroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocd_values_targetgroup.png -------------------------------------------------------------------------------- /static/images/argocdlogin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocdlogin.png -------------------------------------------------------------------------------- /static/images/argocdui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/argocdui.png -------------------------------------------------------------------------------- /static/images/asset-github-folders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/asset-github-folders.png -------------------------------------------------------------------------------- /static/images/aws-console-role.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/aws-console-role.png -------------------------------------------------------------------------------- /static/images/aws-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/aws-logo.png -------------------------------------------------------------------------------- /static/images/blue-green-alb-eks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/blue-green-alb-eks.png -------------------------------------------------------------------------------- /static/images/blue-green-alb-tg-vpc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/blue-green-alb-tg-vpc.png -------------------------------------------------------------------------------- /static/images/blue-green-targetgroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/blue-green-targetgroup.png -------------------------------------------------------------------------------- /static/images/blueprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/blueprint.png -------------------------------------------------------------------------------- /static/images/bootstrap-application.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/bootstrap-application.jpg -------------------------------------------------------------------------------- /static/images/bootstrap-appofapps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/bootstrap-appofapps.png -------------------------------------------------------------------------------- /static/images/bootstrap-namespace-applicationset.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/bootstrap-namespace-applicationset.jpg -------------------------------------------------------------------------------- /static/images/c06-tracing-arch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/c06-tracing-arch.png -------------------------------------------------------------------------------- /static/images/c06-tracing-xray-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/c06-tracing-xray-console.png -------------------------------------------------------------------------------- /static/images/c06-tracing-xray-traces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/c06-tracing-xray-traces.png -------------------------------------------------------------------------------- /static/images/c9-step4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/c9-step4.png -------------------------------------------------------------------------------- /static/images/cfn_quickstart.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/cfn_quickstart.jpg -------------------------------------------------------------------------------- /static/images/clone_starterfiles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/clone_starterfiles.png -------------------------------------------------------------------------------- /static/images/cloud9-main-screen.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/cloud9-main-screen.png -------------------------------------------------------------------------------- /static/images/cloud9-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/cloud9-open.png -------------------------------------------------------------------------------- /static/images/cloud9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/cloud9.png -------------------------------------------------------------------------------- /static/images/cloud92.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/cloud92.png -------------------------------------------------------------------------------- /static/images/cloud_formation3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/cloud_formation3.png -------------------------------------------------------------------------------- /static/images/cloud_formation4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/cloud_formation4.png -------------------------------------------------------------------------------- /static/images/cloudformation1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/cloudformation1.png -------------------------------------------------------------------------------- /static/images/cloudformation2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/cloudformation2.png -------------------------------------------------------------------------------- /static/images/cloudwatch-dev.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/cloudwatch-dev.png -------------------------------------------------------------------------------- /static/images/cluster-addon-creation-flow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/cluster-addon-creation-flow.jpg -------------------------------------------------------------------------------- /static/images/cluster-addons-applicationset.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/cluster-addons-applicationset.jpg -------------------------------------------------------------------------------- /static/images/cluster-addons-applicationsets.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/cluster-addons-applicationsets.jpg -------------------------------------------------------------------------------- /static/images/codecommit_platform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/codecommit_platform.png -------------------------------------------------------------------------------- /static/images/create-addons-application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/create-addons-application.png -------------------------------------------------------------------------------- /static/images/delete-lb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/delete-lb.png -------------------------------------------------------------------------------- /static/images/developer-webstore.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/developer-webstore.jpg -------------------------------------------------------------------------------- /static/images/eks-addon-blueprintaddon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-addon-blueprintaddon.png -------------------------------------------------------------------------------- /static/images/eks-addon-default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-addon-default.png -------------------------------------------------------------------------------- /static/images/eks-addon-label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-addon-label.png -------------------------------------------------------------------------------- /static/images/eks-addons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-addons.png -------------------------------------------------------------------------------- /static/images/eks-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blue.png -------------------------------------------------------------------------------- /static/images/eks-blueprint-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blueprint-blue.png -------------------------------------------------------------------------------- /static/images/eks-blueprints-application-team-login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blueprints-application-team-login.png -------------------------------------------------------------------------------- /static/images/eks-blueprints-c9-disable-temp-cred.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blueprints-c9-disable-temp-cred.png -------------------------------------------------------------------------------- /static/images/eks-blueprints-cdk-json.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blueprints-cdk-json.png -------------------------------------------------------------------------------- /static/images/eks-blueprints-cloud9-directory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blueprints-cloud9-directory.png -------------------------------------------------------------------------------- /static/images/eks-blueprints-console-access.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blueprints-console-access.png -------------------------------------------------------------------------------- /static/images/eks-blueprints-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blueprints-diagram.png -------------------------------------------------------------------------------- /static/images/eks-blueprints-iam-role.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blueprints-iam-role.png -------------------------------------------------------------------------------- /static/images/eks-blueprints-pipeline-prod.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blueprints-pipeline-prod.png -------------------------------------------------------------------------------- /static/images/eks-blueprints-pipeline-waves.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blueprints-pipeline-waves.png -------------------------------------------------------------------------------- /static/images/eks-blueprints-pipelines-home.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blueprints-pipelines-home.png -------------------------------------------------------------------------------- /static/images/eks-blueprints-workshop-attach-iam-role.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blueprints-workshop-attach-iam-role.png -------------------------------------------------------------------------------- /static/images/eks-blueprints-workshop-cloud9-instance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blueprints-workshop-cloud9-instance.png -------------------------------------------------------------------------------- /static/images/eks-blueprints-workshop-modify-iam-role.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-blueprints-workshop-modify-iam-role.png -------------------------------------------------------------------------------- /static/images/eks-console-na.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-console-na.png -------------------------------------------------------------------------------- /static/images/eks-console-switch1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-console-switch1.png -------------------------------------------------------------------------------- /static/images/eks-console-switch2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-console-switch2.png -------------------------------------------------------------------------------- /static/images/eks-console-switch3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-console-switch3.png -------------------------------------------------------------------------------- /static/images/eks-console-switch4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-console-switch4.png -------------------------------------------------------------------------------- /static/images/eks-managed-addons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-managed-addons.png -------------------------------------------------------------------------------- /static/images/eks-node-conf1-deploy-14-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-node-conf1-deploy-14-1.png -------------------------------------------------------------------------------- /static/images/eks-node-conf1-deploy-14-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-node-conf1-deploy-14-2.png -------------------------------------------------------------------------------- /static/images/eks-node-conf1-rollout1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-node-conf1-rollout1.png -------------------------------------------------------------------------------- /static/images/eks-node-scale29-rollout1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-node-scale29-rollout1.png -------------------------------------------------------------------------------- /static/images/eks-node-viewer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-node-viewer.jpg -------------------------------------------------------------------------------- /static/images/eks-observability.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/eks-observability.png -------------------------------------------------------------------------------- /static/images/environment.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/environment.jpg -------------------------------------------------------------------------------- /static/images/event-output-ideurl.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/event-output-ideurl.jpg -------------------------------------------------------------------------------- /static/images/git_local_ide.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/git_local_ide.jpg -------------------------------------------------------------------------------- /static/images/gitea_login.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/gitea_login.jpg -------------------------------------------------------------------------------- /static/images/gitea_repos.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/gitea_repos.jpg -------------------------------------------------------------------------------- /static/images/github-codespace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/github-codespace.png -------------------------------------------------------------------------------- /static/images/github-create-file-ingress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/github-create-file-ingress.png -------------------------------------------------------------------------------- /static/images/github-create-file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/github-create-file.png -------------------------------------------------------------------------------- /static/images/github-deployment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/github-deployment.png -------------------------------------------------------------------------------- /static/images/github-fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/github-fork.png -------------------------------------------------------------------------------- /static/images/github-permission.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/github-permission.png -------------------------------------------------------------------------------- /static/images/github-personal-access-token-scope.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/github-personal-access-token-scope.png -------------------------------------------------------------------------------- /static/images/github-setting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/github-setting.png -------------------------------------------------------------------------------- /static/images/gitops-bridge-applicationset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/gitops-bridge-applicationset.png -------------------------------------------------------------------------------- /static/images/gitops-bridge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/gitops-bridge.png -------------------------------------------------------------------------------- /static/images/hub-cluster-workload-before-after.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/hub-cluster-workload-before-after.png -------------------------------------------------------------------------------- /static/images/hub-manage-spoke-addons.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/hub-manage-spoke-addons.jpg -------------------------------------------------------------------------------- /static/images/hub-spoke-hub-role.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/hub-spoke-hub-role.jpg -------------------------------------------------------------------------------- /static/images/hub-spoke-spoke-role.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/hub-spoke-spoke-role.jpg -------------------------------------------------------------------------------- /static/images/hubcluster-initial-metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/hubcluster-initial-metadata.png -------------------------------------------------------------------------------- /static/images/hubcluster-lb-addon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/hubcluster-lb-addon.png -------------------------------------------------------------------------------- /static/images/hubcluster-update-metadata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/hubcluster-update-metadata.png -------------------------------------------------------------------------------- /static/images/iam-1-create-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/iam-1-create-user.png -------------------------------------------------------------------------------- /static/images/iam-2-attach-policy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/iam-2-attach-policy.png -------------------------------------------------------------------------------- /static/images/iam-3-create-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/iam-3-create-user.png -------------------------------------------------------------------------------- /static/images/iam-4-save-url.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/iam-4-save-url.png -------------------------------------------------------------------------------- /static/images/karpenter-consolidation-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/karpenter-consolidation-2.png -------------------------------------------------------------------------------- /static/images/karpenter-consolidation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/karpenter-consolidation.png -------------------------------------------------------------------------------- /static/images/karpenter-consolidation_spot1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/karpenter-consolidation_spot1.png -------------------------------------------------------------------------------- /static/images/karpenter-consolidation_spot2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/karpenter-consolidation_spot2.png -------------------------------------------------------------------------------- /static/images/karpenter-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/karpenter-overview.png -------------------------------------------------------------------------------- /static/images/kubecost-skiapp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/kubecost-skiapp.png -------------------------------------------------------------------------------- /static/images/kubernetes-addons.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/kubernetes-addons.jpg -------------------------------------------------------------------------------- /static/images/kubernetes-addons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/kubernetes-addons.png -------------------------------------------------------------------------------- /static/images/lb-application-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/lb-application-ui.png -------------------------------------------------------------------------------- /static/images/lb-application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/lb-application.png -------------------------------------------------------------------------------- /static/images/lb-helmchart-folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/lb-helmchart-folder.png -------------------------------------------------------------------------------- /static/images/lb-sync.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/lb-sync.png -------------------------------------------------------------------------------- /static/images/local_platform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/local_platform.png -------------------------------------------------------------------------------- /static/images/logs-metrics-traces.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/logs-metrics-traces.png -------------------------------------------------------------------------------- /static/images/logsStreamprefix.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/logsStreamprefix.png -------------------------------------------------------------------------------- /static/images/multicluster-addons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/multicluster-addons.png -------------------------------------------------------------------------------- /static/images/namespace-begin.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/namespace-begin.jpg -------------------------------------------------------------------------------- /static/images/namespace-create-webstore-namespace.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/namespace-create-webstore-namespace.jpg -------------------------------------------------------------------------------- /static/images/namespace-helm.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/namespace-helm.jpg -------------------------------------------------------------------------------- /static/images/namespace-helmchart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/namespace-helmchart.png -------------------------------------------------------------------------------- /static/images/namespace-hub-webstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/namespace-hub-webstore.png -------------------------------------------------------------------------------- /static/images/namespace-namespace-applicationset.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/namespace-namespace-applicationset.jpg -------------------------------------------------------------------------------- /static/images/namespace-namespace-applicationset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/namespace-namespace-applicationset.png -------------------------------------------------------------------------------- /static/images/namespace-process-webstore-applicationset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/namespace-process-webstore-applicationset.png -------------------------------------------------------------------------------- /static/images/namespace-values.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/namespace-values.png -------------------------------------------------------------------------------- /static/images/namespace-webstore-applicationset.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/namespace-webstore-applicationset.jpg -------------------------------------------------------------------------------- /static/images/namespace-webstore-defalut-values.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/namespace-webstore-defalut-values.jpg -------------------------------------------------------------------------------- /static/images/namespace.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/namespace.jpg -------------------------------------------------------------------------------- /static/images/namespace_webstore.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/namespace_webstore.jpg -------------------------------------------------------------------------------- /static/images/nginx-ingress-tgb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/nginx-ingress-tgb.png -------------------------------------------------------------------------------- /static/images/platform-github-folders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/platform-github-folders.png -------------------------------------------------------------------------------- /static/images/prod-stack-deletion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/prod-stack-deletion.png -------------------------------------------------------------------------------- /static/images/project-applicationset.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/project-applicationset.jpg -------------------------------------------------------------------------------- /static/images/project-values.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/project-values.jpg -------------------------------------------------------------------------------- /static/images/rollout_promote_karpenter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/rollout_promote_karpenter.png -------------------------------------------------------------------------------- /static/images/rollout_promote_karpenter_ok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/rollout_promote_karpenter_ok.png -------------------------------------------------------------------------------- /static/images/setup_ws_signin1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/setup_ws_signin1.png -------------------------------------------------------------------------------- /static/images/setup_ws_signin2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/setup_ws_signin2.png -------------------------------------------------------------------------------- /static/images/setup_ws_signin3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/setup_ws_signin3.png -------------------------------------------------------------------------------- /static/images/setup_ws_signin4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/setup_ws_signin4.png -------------------------------------------------------------------------------- /static/images/skiapp-ingress-nginx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/skiapp-ingress-nginx.png -------------------------------------------------------------------------------- /static/images/skiapp-ingress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/skiapp-ingress.png -------------------------------------------------------------------------------- /static/images/skiapp_workload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/skiapp_workload.png -------------------------------------------------------------------------------- /static/images/spoke-staging-cluster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/spoke-staging-cluster.png -------------------------------------------------------------------------------- /static/images/spoke-staging.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/spoke-staging.jpg -------------------------------------------------------------------------------- /static/images/spoke_applications.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/spoke_applications.jpg -------------------------------------------------------------------------------- /static/images/spot_fis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/spot_fis.png -------------------------------------------------------------------------------- /static/images/team_riker_app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/team_riker_app.png -------------------------------------------------------------------------------- /static/images/terraform-argo-app-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/terraform-argo-app-app.png -------------------------------------------------------------------------------- /static/images/uncomment-aws-lb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/uncomment-aws-lb.png -------------------------------------------------------------------------------- /static/images/webstore-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/webstore-project.png -------------------------------------------------------------------------------- /static/images/webstore-ui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/webstore-ui.png -------------------------------------------------------------------------------- /static/images/webstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/webstore.png -------------------------------------------------------------------------------- /static/images/workload-appofapps-iteration.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/workload-appofapps-iteration.jpg -------------------------------------------------------------------------------- /static/images/workload-appofapps-monitor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/workload-appofapps-monitor.jpg -------------------------------------------------------------------------------- /static/images/workload-appofapps.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/workload-appofapps.jpg -------------------------------------------------------------------------------- /static/images/workload-github-folders.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/workload-github-folders.png -------------------------------------------------------------------------------- /static/images/workload-webstore-deployment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/workload-webstore-deployment.png -------------------------------------------------------------------------------- /static/images/workload-webstore.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/workload-webstore.jpg -------------------------------------------------------------------------------- /static/images/workload_webstore.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/images/workload_webstore.jpg -------------------------------------------------------------------------------- /static/slides/EKS blue-green.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/aws-samples/eks-blueprints-for-terraform-workshop/c32c9418cb2cd9f4dfd22f1ef9e8f930302400f5/static/slides/EKS blue-green.pptx -------------------------------------------------------------------------------- /terraform/common/.gitignore: -------------------------------------------------------------------------------- 1 | codecommit-repo/ 2 | # Local .terraform directories 3 | **/.terraform/* 4 | .terraform.lock.hcl 5 | # .tfstate files 6 | *.tfstate 7 | *.tfstate.* 8 | tfstate.* 9 | .terraform 10 | 11 | # Crash log files 12 | crash.log 13 | 14 | # Exclude all .tfvars files, which might contain sensitive data, such as 15 | # password, private keys, and other secrets. 16 | 17 | # Ignore override files as they are usually used to override resources locally. 18 | override.tf 19 | override.tf.json 20 | *_override.tf 21 | *_override.tf.json 22 | 23 | # Ignore CLI configuration files 24 | .terraformrc 25 | terraform.rc 26 | 27 | # Ignore log files 28 | *.log 29 | 30 | # Ignore temporary files 31 | *.tmp 32 | *.temp 33 | -------------------------------------------------------------------------------- /terraform/common/deploy.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -euo pipefail 4 | 5 | SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 6 | ROOTDIR="$(cd ${SCRIPTDIR}/../..; pwd )" 7 | [[ -n "${DEBUG:-}" ]] && set -x 8 | 9 | 10 | # Initialize Terraform 11 | terraform -chdir=$SCRIPTDIR init --upgrade 12 | 13 | echo "Applying git resources" 14 | 15 | echo TF_VAR_gitea_external_url=$GITEA_EXTERNAL_URL TF_VAR_gitea_password=$GITEA_PASSWORD terraform -chdir=$SCRIPTDIR apply -auto-approve 16 | TF_VAR_gitea_external_url=$GITEA_EXTERNAL_URL TF_VAR_gitea_password=$GITEA_PASSWORD terraform -chdir=$SCRIPTDIR apply -auto-approve 17 | 18 | if [[ ${PIPESTATUS[0]} -eq 0 ]]; then 19 | # wait for ssh access allowed 20 | sleep 10 21 | echo "SUCCESS: Terraform apply of all modules completed successfully" 22 | else 23 | echo "FAILED: Terraform apply of all modules failed" 24 | exit 1 25 | fi 26 | 27 | -------------------------------------------------------------------------------- /terraform/common/destroy.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | set -uo pipefail 4 | 5 | SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 6 | ROOTDIR="$(cd ${SCRIPTDIR}/..; pwd )" 7 | [[ -n "${DEBUG:-}" ]] && set -x 8 | 9 | echo "Destroying AWS git and iam resources" 10 | terraform -chdir=$SCRIPTDIR init --upgrade 11 | TF_VAR_gitea_external_url=$GITEA_EXTERNAL_URL TF_VAR_gitea_password=$GITEA_PASSWORD terraform -chdir=$SCRIPTDIR destroy -auto-approve 12 | echo TF_VAR_gitea_external_url=$GITEA_EXTERNAL_URL TF_VAR_gitea_password=$GITEA_PASSWORD terraform -chdir=$SCRIPTDIR destroy -auto-approve 13 | 14 | # Delete parameter created in the bootstrap 15 | aws ssm delete-parameter --name EksBlueprintGiteaExternalUrl || true 16 | 17 | -------------------------------------------------------------------------------- /terraform/common/locals.tf: -------------------------------------------------------------------------------- 1 | data "aws_region" "current" {} 2 | data "aws_caller_identity" "current" {} 3 | data "aws_iam_session_context" "current" { 4 | # This data source provides information on the IAM source role of an STS assumed role 5 | # For non-role ARNs, this data source simply passes the ARN through issuer ARN 6 | # Ref https://github.com/terraform-aws-modules/terraform-aws-eks/issues/2327#issuecomment-1355581682 7 | # Ref https://github.com/hashicorp/terraform-provider-aws/issues/28381 8 | arn = data.aws_caller_identity.current.arn 9 | } 10 | locals { 11 | 12 | context_prefix = var.project_context_prefix 13 | 14 | tags = { 15 | Blueprint = local.context_prefix 16 | GithubRepo = "github.com/aws-samples/eks-blueprints-for-terraform-workshop" 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /terraform/common/outputs.tf: -------------------------------------------------------------------------------- 1 | 2 | # This output is informational only and is not used by any other module 3 | output "git_secrets_urls" { 4 | value = local.git_secrets_urls 5 | description = "The URLs for the Git repositories" 6 | } 7 | output "git_secrets_names" { 8 | value = local.git_secrets_names 9 | description = "The names of the AWS Secrets for the Git repositories" 10 | } 11 | 12 | output "gitops_user_name" { 13 | value = var.gitea_user 14 | description = "Name of the IAM user created for GitOps access" 15 | } 16 | 17 | -------------------------------------------------------------------------------- /terraform/common/versions.tf: -------------------------------------------------------------------------------- 1 | terraform { 2 | required_version = ">= 1.0" 3 | 4 | required_providers { 5 | aws = { 6 | source = "hashicorp/aws" 7 | version = ">= 4.67.0" 8 | } 9 | github = { 10 | source = "integrations/github" 11 | version = "~> 6.0" 12 | } 13 | } 14 | 15 | # ## Used for end-to-end testing on project; update to suit your needs 16 | # backend "s3" { 17 | # bucket = "terraform-state-duektsah" 18 | # region = "eu-west-1" 19 | # key = "argocd-on-amazon-eks-workshop/codecommit" 20 | # } 21 | } 22 | --------------------------------------------------------------------------------