├── .DS_Store ├── Beacon Subscription.pdf ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── Slide50.jpg ├── _config.yml ├── examples ├── README.md └── app │ ├── README.md │ ├── bookinfo.yaml │ └── bookinfov2.yaml ├── src ├── README.md ├── bigip │ ├── bookinfo-route-reencrypt-ssl.yaml │ ├── f5-bigip-hostsubnet.yaml │ ├── f5-cluster-deployment-route_1.11.yaml │ ├── f5-override-as3-declaration.yaml │ └── test.yaml └── bookinfo │ ├── bookinfo-route-reencrypt-ssl.yaml │ ├── cert │ ├── f5adc.crt │ ├── f5adc.key │ ├── f5asean.local.ca.crt │ ├── httpbin.f5asean.local.crt │ └── httpbin.f5asean.local.key │ ├── config-bookinfo.yaml │ ├── config-bookinfo.yaml.bak_working │ ├── depoly-bookinfo-cj.yaml │ ├── depoly-bookinfo-cj.yaml.bak_working │ ├── index.html │ ├── secret-bookinfo-cert.sh │ ├── temp │ ├── bookinfo-nginx-ssl-modsec.yaml │ ├── bookinfo-scc.yaml │ ├── bookinfo.yaml │ ├── config-bookinfo.yaml │ ├── configmap-detail-nginx.yaml │ ├── configmap-productpage-nginx.yaml │ ├── deploy-detail-nginx.yaml │ ├── deploy-productpage-nginx.yaml │ ├── deploy-productpage-nginx.yaml.bak │ ├── deploy_bookinfo.yaml │ └── test.yaml │ └── testbookinfo │ └── config-bookinfo.yaml └── sre-usecases ├── 01-targeted-canary ├── README.md └── images │ ├── apmLogin.png │ ├── apmPolicy.png │ ├── bookinfoPol.png │ ├── bookinfo_normal.png │ ├── bookinfo_test.png │ ├── bookinfo_testv1.png │ ├── bookinfo_testv2.png │ ├── e2e.png │ ├── nonginx.svg │ └── vs.png ├── 02-blue-green-deployment ├── README.md ├── blue-green.md ├── dns.md ├── gslb-setup.md ├── gslb.png ├── images │ ├── app1-1 │ ├── app1-2 │ ├── app1-22 │ ├── aws-lb.png │ ├── blue-green │ ├── blue-green.png │ ├── blue.png │ ├── blue1 │ ├── bluegreentopology │ ├── green.png │ ├── green1 │ ├── gslb-pool │ ├── gslb-pool2 │ ├── gslb-pool3 │ ├── gslb-service │ ├── map.png │ ├── topology │ ├── topology.png │ └── unmap.png └── troubleshooting.md ├── 03-observability-for-targeted-canary-with-ELK
 ├── README.md ├── Targeted_Canary-Testing_ELK.mp4 ├── iRules ├── images │ ├── Kibana10_add_panel.png │ ├── Kibana10_dashboard.png │ ├── Kibana10_dashboard_create.png │ ├── Kibana10_dashboard_final.png │ ├── Kibana10_dashboard_name.png │ ├── Kibana10_dashboard_save.png │ ├── Kibana10_select_panel.png │ ├── Kibana11_dashboard_refresh.png │ ├── Kibana11_dashboard_update.png │ ├── Kibana11_move_dashboard.png │ ├── Kibana1_main.png │ ├── Kibana2_management.png │ ├── Kibana3_management_detail.png │ ├── Kibana4_index_management.png │ ├── Kibana5_visualize.png │ ├── Kibana6_create.png │ ├── Kibana7_source.png │ ├── Kibana8_Buckets.png │ ├── Kibana8_Metrics.png │ ├── Kibana9_apply_save.png │ ├── Kibana9_save_name.png │ ├── elk_bigip.png │ ├── elk_default_pool.png │ ├── elk_dot.png │ ├── elk_log.png │ ├── elk_map.png │ ├── elk_pool.png │ ├── elk_pool_member.png │ ├── elk_response.png │ ├── elk_topology.png │ └── elk_vip.png ├── logstash.conf └── traffic_generator.sh ├── 05-north_south_protection ├── README.md ├── images │ ├── a │ ├── sre_usecase01-1.png │ ├── sre_usecase01-2.png │ ├── sre_usecase01_attack_01.png │ ├── sre_usecase01_attack_02.png │ ├── sre_usecase01_attack_03.png │ ├── sre_usecase01_attack_04.png │ ├── sre_usecase01_attack_05.png │ ├── sre_usecase01_attack_06.png │ ├── sre_usecase01_awaf_1.png │ ├── sre_usecase01_awaf_2.png │ ├── sre_usecase01_awaf_3.png │ ├── sre_usecase01_awaf_4.png │ ├── sre_usecase01_awaf_5.png │ ├── sre_usecase01_awaf_6.png │ ├── sre_usecase01_awaf_7.png │ ├── sre_usecase01_elk.png │ ├── sre_usecase01_elk_02.png │ └── sre_usecase01_elk_03.png └── scripts │ ├── dvwa-nap-config.yaml │ ├── dvwa-nap-deployment.yaml │ ├── dvwa-route-nap.yaml │ └── logstash.conf ├── 06-east_west_attack ├── README.md ├── create_ansible │ └── README.md ├── elk_config │ └── README.md ├── images │ ├── a │ ├── automation_process1.png │ ├── diagram.png │ ├── elk_dashboard.png │ └── terminating_pod.png ├── install_app │ └── README.md ├── nap_create │ └── README.md ├── scripts │ ├── ansible_ocp.yaml │ ├── critical-app-with-nap.yaml │ ├── devapp_deployment.yaml │ ├── logstash.conf │ ├── nap-config.yaml │ └── watcher_ocp.json └── simulate_demo │ └── README.md └── 07-enhanced_targeted_canary ├── README.md └── images ├── Slide10.jpeg ├── Slide11.jpeg ├── Slide12.jpeg ├── Slide13.jpeg ├── Slide14.jpeg ├── Slide15.jpeg ├── Slide16.jpeg ├── Slide17.jpeg ├── Slide18.jpeg ├── Slide19.jpeg ├── Slide20.jpeg ├── Slide21.jpeg ├── Slide22.jpeg ├── Slide23.jpeg ├── Slide24.jpeg ├── Slide25.jpeg ├── Slide26.jpeg ├── Slide27.jpeg ├── Slide29.jpeg ├── Slide30.jpeg ├── Slide31.jpeg ├── Slide32.jpeg ├── Slide33.jpeg ├── Slide34.jpeg ├── Slide35.jpeg ├── Slide36.jpeg ├── Slide37.jpeg ├── Slide38.jpeg ├── Slide39.jpeg ├── Slide40.jpeg ├── Slide41.jpeg ├── Slide42.jpeg ├── Slide43.jpeg ├── Slide45.jpeg ├── Slide47.jpeg ├── Slide48.jpeg ├── Slide49.jpeg ├── Slide50.jpg ├── Slide51.jpeg ├── Slide52.jpeg ├── Slide6.jpeg ├── Slide7.jpeg ├── Slide8.jpeg ├── Slide9.jpeg └── enhanced_1-1.png /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f5devcentral/f5-bd-sre-demo/6bc0c2d266c3ed9902d8f0c051ba6bff142b3f47/.DS_Store -------------------------------------------------------------------------------- /Beacon Subscription.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/f5devcentral/f5-bd-sre-demo/6bc0c2d266c3ed9902d8f0c051ba6bff142b3f47/Beacon Subscription.pdf -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to Contribute 2 | 3 | This project is [Apache 2.0 licensed](LICENSE) and accept contributions via 4 | GitHub pull requests. This document outlines some of the conventions on 5 | development workflow, commit message formatting, contact points and other 6 | resources to make it easier to get your contribution accepted. 7 | 8 | ## Certificate of Origin 9 | 10 | By contributing to this project you agree to the Developer Certificate of 11 | Origin (DCO). 12 | 13 | ## Security Response 14 | 15 | If you've found a security issue that you'd like to disclose confidentially, please contact F5 Security team. 16 | 17 | ## Getting Started 18 | 19 | - Fork the repository on GitHub 20 | - Read the [README](README.md) for build and test instructions 21 | - Play with the project, submit bugs, submit patches! 22 | 23 | ### Contribution Flow 24 | 25 | Anyone may [file issues][new-issue]. 26 | For contributors who want to work up pull requests, the workflow is roughly: 27 | 28 | 1. Create a topic branch from where you want to base your work (usually master). 29 | 2. Make commits of logical units. 30 | 3. Make sure your commit messages are in the proper format (see [below](#commit-message-format)). 31 | 4. Push your changes to a topic branch in your fork of the repository. 32 | 5. Make sure the tests pass, and add any new tests as appropriate. 33 | 6. Submit a pull request to the original repository. 34 | 7. The repo owners will respond to your issue promptly, following [the ususal Prow workflow][prow-review]. 35 | 36 | Thanks for your contributions! 37 | 38 | ## Coding and Documenting Style 39 | 40 | All the use cases should be developed and documented in a repeatable manner. In another word, you should include all the pieces neccessary for the user to dulplicate the use case in his/her own lab: 41 | - Description of SRE use case with topology 42 | - Pre-requisites and dependencies 43 | - Step-by-step installation and deployment/implementation guide, with screenshots as needed 44 | - All the code/script/configuration/manifest used 45 | - List of limitations if any 46 | - Troubleshooting if possible 47 | 48 | 49 | ## Commit Message Format 50 | 51 | We follow a rough convention for commit messages that is designed to answer two 52 | questions: what changed and why. The subject line should feature the what and 53 | the body of the commit should describe the why. 54 | 55 | ``` 56 | scripts: add the test-cluster command 57 | 58 | this uses tmux to set up a test cluster that you can easily kill and 59 | start for debugging. 60 | 61 | Fixes #38 62 | ``` 63 | 64 | The format can be described more formally as follows: 65 | 66 | ``` 67 | : 68 | 69 | 70 | 71 |