Looking to level up your DevOps skills? Check out these amazing YouTube channels that offer top-notch tutorials, insights, and hands-on projects:
- Comprehensive DevOps tutorials covering Kubernetes, Docker, Jenkins, and more.
- Watch here
- Clear and concise tutorials on DevOps tools, cloud computing, and CI/CD pipelines.
- Watch here
- Deep dives into DevOps practices, including automation, infrastructure as code, and monitoring.
- Watch here
- Beginner-friendly content on DevOps, cloud-native technologies, and open-source contributions.
- Watch here
- Expert-led tutorials and courses on AWS, Azure, GCP, and DevOps practices.
- Watch here
Dive into these channels and accelerate your DevOps journey today!🚀 ⚙️
Please open Telegram to view this post
VIEW IN TELEGRAM
DevOps professionals can benefit from various certifications to enhance their skills and marketability. Here are some valuable DevOps certifications:
1️⃣ . Certified Kubernetes Administrator (CKA): This certification focuses on Kubernetes, the popular container orchestration tool. It covers installation, configuration, networking, and security aspects of Kubernetes. The CKA credential demonstrates your expertise in managing Kubernetes clusters[1].
2️⃣ . AWS Certified DevOps Engineer - Professional: Offered by Amazon Web Services (AWS), this certification validates your ability to design, deploy, and manage AWS applications and infrastructure using DevOps practices. It's highly regarded by employers[2].
3️⃣ . Docker Certified Associate (DCA): Docker is widely used for containerization. The DCA certification assesses your knowledge of Docker concepts, container management, and orchestration. It's valuable for DevOps engineers working with containers[2].
4️⃣ . Puppet Certified Professional: If you're involved in configuration management, consider this certification. It focuses on Puppet, a popular tool for automating infrastructure management[2].
5️⃣ . Microsoft Certified: DevOps Engineer Expert: For those working in Microsoft Azure environments, this certification demonstrates your expertise in implementing DevOps practices using Azure tools and services[2].
⚡️ Reference links: [1] [2] [3] [4]
⚡️ 𝗙𝗼𝗹𝗹𝗼𝘄 @prodevopsguy 𝐟𝐨𝐫 𝐦𝐨𝐫𝐞 𝐬𝐮𝐜𝐡 𝐜𝐨𝐧𝐭𝐞𝐧𝐭 𝐚𝐫𝐨𝐮𝐧𝐝 𝐜𝐥𝐨𝐮𝐝 & 𝐃𝐞𝐯𝐎𝐩𝐬!!! // 𝐉𝐨𝐢𝐧 𝐟𝐨𝐫 𝐃𝐞𝐯𝐎𝐩𝐬 𝐃𝐎𝐂𝐬: @devopsdocs
Remember to choose certifications based on your career goals and the technologies you work with. Each certification provides a unique skill set that can boost your DevOps career!🚀 🔧
Please open Telegram to view this post
VIEW IN TELEGRAM
DEV Community
Learn AWS Cloud with 0 Knowledge and Why You Need to Learn It
Introduction Amazon Web Services (AWS) is the leading cloud platform, offering over 200...
Curious about cloud computing but don't know where to start? Check out our latest article: "How to Learn AWS Cloud with 0 Knowledge and Why You Need to Learn It"!
- The basics of cloud computing
- Key AWS services you need to know
- Step-by-step learning resources
- Hands-on practice tips
- And much more!
Start your cloud journey today and unlock new career opportunities in the tech world!🌐
Please open Telegram to view this post
VIEW IN TELEGRAM
Here are some common GitHub-related issues that DevOps engineers encounter, along with their solutions:
1️⃣ . Merge Conflicts:
Issue: When multiple contributors modify the same file simultaneously, merge conflicts occur during pull requests.
Solution: Resolve conflicts by carefully reviewing conflicting changes and manually merging them.
2️⃣ . Authentication Issues:
Issue: Improper authentication (SSH keys or personal access tokens) can lead to problems when pushing or pulling from repositories.
Solution: Ensure correct authentication methods to avoid issues.
3️⃣ . Git Submodules:
Issue: Managing Git submodules can be challenging.
Solution: Understand how submodules work and handle them correctly.
4️⃣ . Large Files and LFS:
Issue: GitHub has a file size limit. Large binary files can cause issues.
Solution: Use Git LFS (Large File Storage) for managing large files.
5️⃣ . Branch Protection Rules:
Issue: Accidental force pushes or direct commits to protected branches.
Solution: Set up branch protection rules to prevent such actions.
6️⃣ . Rate Limiting:
Issue: GitHub API requests are rate-limited.
Solution: Use tokens and avoid excessive requests.
7️⃣ . Repository Permissions:
Issue: Incorrect permissions for collaborators.
Solution: Ensure proper permissions to avoid unauthorized access.
8️⃣ . Webhooks and CI/CD Failures:
Issue: Debugging webhook and CI/CD failures.
Solution: Check logs and configurations to identify and fix issues.
📱 𝗙𝗼𝗹𝗹𝗼𝘄 @prodevopsguy 𝐟𝐨𝐫 𝐦𝐨𝐫𝐞 𝐬𝐮𝐜𝐡 𝐜𝐨𝐧𝐭𝐞𝐧𝐭 𝐚𝐫𝐨𝐮𝐧𝐝 𝐜𝐥𝐨𝐮𝐝 & 𝐃𝐞𝐯𝐎𝐩𝐬!!! // 𝐉𝐨𝐢𝐧 𝐟𝐨𝐫 𝐃𝐞𝐯𝐎𝐩𝐬 𝐃𝐎𝐂𝐬: @devopsdocs
Issue: When multiple contributors modify the same file simultaneously, merge conflicts occur during pull requests.
Solution: Resolve conflicts by carefully reviewing conflicting changes and manually merging them.
Issue: Improper authentication (SSH keys or personal access tokens) can lead to problems when pushing or pulling from repositories.
Solution: Ensure correct authentication methods to avoid issues.
Issue: Managing Git submodules can be challenging.
Solution: Understand how submodules work and handle them correctly.
Issue: GitHub has a file size limit. Large binary files can cause issues.
Solution: Use Git LFS (Large File Storage) for managing large files.
Issue: Accidental force pushes or direct commits to protected branches.
Solution: Set up branch protection rules to prevent such actions.
Issue: GitHub API requests are rate-limited.
Solution: Use tokens and avoid excessive requests.
Issue: Incorrect permissions for collaborators.
Solution: Ensure proper permissions to avoid unauthorized access.
Issue: Debugging webhook and CI/CD failures.
Solution: Check logs and configurations to identify and fix issues.
Remember, addressing these challenges will enhance your DevOps skills!😊 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
As a DevOps engineer, mastering the Linux 🐧 command line is crucial for efficient system administration and management. Here are some essential Linux commands you should know:
1️⃣ . File and Directory Management:
2️⃣ . User and Permission Management:
3️⃣ . Process and Service Management:
4️⃣ . Networking and System Monitoring:
➡️ Reference links: [1] [2] [3] [4]
📱 𝗙𝗼𝗹𝗹𝗼𝘄 @prodevopsguy 𝐟𝐨𝐫 𝐦𝐨𝐫𝐞 𝐬𝐮𝐜𝐡 𝐜𝐨𝐧𝐭𝐞𝐧𝐭 𝐚𝐫𝐨𝐮𝐧𝐝 𝐜𝐥𝐨𝐮𝐝 & 𝐃𝐞𝐯𝐎𝐩𝐬!!! // 𝐉𝐨𝐢𝐧 𝐟𝐨𝐫 𝐃𝐞𝐯𝐎𝐩𝐬 𝐃𝐎𝐂𝐬: @devopsdocs
ls: List directory contents.cd: Change directory.pwd: Print working directory.mkdir: Create a new directory.rm: Remove files or directories.cp: Copy files or directories.mv: Move or rename files or directories.useradd: Add a new user.passwd: Set or change user passwords.chown: Change file ownership.chmod: Modify file permissions.su: Switch user.sudo: Execute commands with superuser privileges.ps: Display running processes.top: Monitor system processes.kill: Terminate processes.systemctl: Manage system services (systemd-based systems).service: Manage services (init-based systems).ifconfig or ip: Configure network interfaces.netstat: Display network statistics.ping: Test network connectivity.df: Show disk space usage.free: Display memory usage.uptime: Show system uptime.Remember that this is just a starting point, and there are many more Linux commands and utilities. Feel free to explore and deepen your knowledge as you work with Linux in your DevOps journey!🐧 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
DEV Community
How to start a career in DevOps as a fresher & gaining practical experience?
🌟 What is DevOps? 🌟 In the ever-evolving world of software development, DevOps has emerged...
Are you looking to break into the world of DevOps as a fresher? Check out my latest article on how to gain practical experience and kickstart your DevOps career!
- Essential skills for a DevOps career
- Hands-on projects to build your portfolio
- Tips for landing your first job
Don’t miss out on this comprehensive guide to launching your DevOps journey!
Please open Telegram to view this post
VIEW IN TELEGRAM
𝟭. 𝗥𝗼𝗼𝗸:
𝘊𝘢𝘵𝘦𝘨𝘰𝘳𝘺: Cloud Native Storage
𝘙𝘦𝘱𝘰: https://lnkd.in/gvEq8kXD
𝟮. 𝗖𝗼𝗻𝘁𝗮𝗶𝗻𝗲𝗿𝗱:
𝘊𝘢𝘵𝘦𝘨𝘰𝘳𝘺: Container Runtime
𝘙𝘦𝘱𝘰: https://lnkd.in/gvkKhqv7
𝟯. 𝗖𝗶𝗹𝗶𝘂𝗺:
𝘊𝘢𝘵𝘦𝘨𝘰𝘳𝘺: Cloud Native Network
𝘙𝘦𝘱𝘰: https://lnkd.in/gggWeZzP
𝟰. 𝗞𝘂𝗯𝗲𝗘𝗱𝗴𝗲:
𝘊𝘢𝘵𝘦𝘨𝘰𝘳𝘺: Automation & Configuration
𝘙𝘦𝘱𝘰: https://lnkd.in/gavND-7s
𝟱. 𝗖𝗿𝗼𝘀𝘀𝗽𝗹𝗮𝗻𝗲:
𝘊𝘢𝘵𝘦𝘨𝘰𝘳𝘺: Scheduling & Orchestration
𝘙𝘦𝘱𝘰: https://lnkd.in/gvw4VMS9
𝟲. 𝗛𝗮𝗿𝗯𝗼𝗿:
𝘊𝘢𝘵𝘦𝘨𝘰𝘳𝘺: Container Registry
𝘙𝘦𝘱𝘰: https://lnkd.in/g-sERvjv
𝟳. 𝗙𝗮𝗹𝗰𝗼:
𝘊𝘢𝘵𝘦𝘨𝘰𝘳𝘺: Security & Compliance
𝘙𝘦𝘱𝘰: https://lnkd.in/g2yAc_AJ
𝟴. 𝗧𝗲𝗹𝗲𝗽𝗼𝗿𝘁:
𝘊𝘢𝘵𝘦𝘨𝘰𝘳𝘺: Key Management
𝘙𝘦𝘱𝘰: https://lnkd.in/gW24Wm5z
𝟵. 𝗟𝗶𝗻𝗸𝗲𝗿𝗱:
𝘊𝘢𝘵𝘦𝘨𝘰𝘳𝘺: Service Mesh
𝘙𝘦𝘱𝘰: https://lnkd.in/gNUdKEsz
Please open Telegram to view this post
VIEW IN TELEGRAM
1715923851618.gif
1005.1 KB
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
100 Terms & Services which every DevOps ♾ Engineer should be aware of:
1. Continuous Integration (CI): Automates code integration.
2. Continuous Deployment (CD): Automated code deployment.
3. Version Control System (VCS): Manages code versions.
4. Git: Distributed version control.
5. Jenkins: Automation server for CI/CD.
6. Build Automation: Automates code compilation.
7. Artifact: Build output package.
8. Maven: Build and project management.
9. Gradle: Build automation tool.
10. Containerization: Application packaging and isolation.
11. Docker: Containerization platform.
12. Kubernetes: Container orchestration.
13. Orchestration: Automated coordination of components.
14. Microservices: Architectural design approach.
15. Infrastructure as Code (IaC): Manage infrastructure programmatically.
16. Terraform: IaC provisioning tool.
17. Ansible: IaC automation tool.
18. Chef: IaC automation tool.
19. Puppet: IaC automation tool.
20. Configuration Management: Automates infrastructure configurations.
21. Monitoring: Observing system behavior.
22. Alerting: Notifies on issues.
23. Logging: Recording system events.
24. ELK Stack: Log management tools.
25. Prometheus: Monitoring and alerting toolkit.
26. Grafana: Visualization platform.
27. Application Performance Monitoring (APM): Monitors app performance.
28. Load Balancing: Distributes traffic evenly.
29. Reverse Proxy: Forwards client requests.
30. NGINX: Web server and reverse proxy.
31. Apache: Web server and reverse proxy.
32. Serverless Architecture: Code execution without servers.
33. AWS Lambda: Serverless compute service.
34. Azure Functions: Serverless compute service.
35. Google Cloud Functions: Serverless compute service.
36. Infrastructure Orchestration: Automates infrastructure deployment.
37. AWS CloudFormation: IaC for AWS.
38. Azure Resource Manager (ARM): IaC for Azure.
39. Google Cloud Deployment Manager: IaC for GCP.
40. Continuous Testing: Automated testing at all stages.
41. Unit Testing: Tests individual components.
42. Integration Testing: Tests component interactions.
43. System Testing: Tests entire system.
44. Performance Testing: Evaluates system speed.
45. Security Testing: Identifies vulnerabilities.
46. DevSecOps: Integrates security in DevOps.
47. Code Review: Inspection for quality.
48. Static Code Analysis: Examines code without execution.
49. Dynamic Code Analysis: Analyzes running code.
50. Dependency Management: Handles code dependencies.
51. Artifact Repository: Stores and manages artifacts.
52. Nexus: Repository manager.
53. JFrog Artifactory: Repository manager.
54. Continuous Monitoring: Real-time system observation.
55. Incident Response: Manages system incidents.
56. Site Reliability Engineering (SRE): Ensures system reliability.
57. Collaboration Tools: Facilitates team communication.
58. Slack: Team messaging platform.
59. Microsoft Teams: Collaboration platform.
60. ChatOps: Collaborative development through chat.
✈️ 𝐅𝐨𝐥𝐥𝐨𝐰 @prodevopsguy 𝐟𝐨𝐫 𝐦𝐨𝐫𝐞 𝐬𝐮𝐜𝐡 𝐜𝐨𝐧𝐭𝐞𝐧𝐭 𝐚𝐫𝐨𝐮𝐧𝐝 𝐜𝐥𝐨𝐮𝐝 & 𝐃𝐞𝐯𝐎𝐩𝐬!!! // 𝐉𝐨𝐢𝐧 𝐟𝐨𝐫 𝐃𝐞𝐯𝐎𝐩𝐬 𝐃𝐎𝐂𝐬: @devopsdocs
1. Continuous Integration (CI): Automates code integration.
2. Continuous Deployment (CD): Automated code deployment.
3. Version Control System (VCS): Manages code versions.
4. Git: Distributed version control.
5. Jenkins: Automation server for CI/CD.
6. Build Automation: Automates code compilation.
7. Artifact: Build output package.
8. Maven: Build and project management.
9. Gradle: Build automation tool.
10. Containerization: Application packaging and isolation.
11. Docker: Containerization platform.
12. Kubernetes: Container orchestration.
13. Orchestration: Automated coordination of components.
14. Microservices: Architectural design approach.
15. Infrastructure as Code (IaC): Manage infrastructure programmatically.
16. Terraform: IaC provisioning tool.
17. Ansible: IaC automation tool.
18. Chef: IaC automation tool.
19. Puppet: IaC automation tool.
20. Configuration Management: Automates infrastructure configurations.
21. Monitoring: Observing system behavior.
22. Alerting: Notifies on issues.
23. Logging: Recording system events.
24. ELK Stack: Log management tools.
25. Prometheus: Monitoring and alerting toolkit.
26. Grafana: Visualization platform.
27. Application Performance Monitoring (APM): Monitors app performance.
28. Load Balancing: Distributes traffic evenly.
29. Reverse Proxy: Forwards client requests.
30. NGINX: Web server and reverse proxy.
31. Apache: Web server and reverse proxy.
32. Serverless Architecture: Code execution without servers.
33. AWS Lambda: Serverless compute service.
34. Azure Functions: Serverless compute service.
35. Google Cloud Functions: Serverless compute service.
36. Infrastructure Orchestration: Automates infrastructure deployment.
37. AWS CloudFormation: IaC for AWS.
38. Azure Resource Manager (ARM): IaC for Azure.
39. Google Cloud Deployment Manager: IaC for GCP.
40. Continuous Testing: Automated testing at all stages.
41. Unit Testing: Tests individual components.
42. Integration Testing: Tests component interactions.
43. System Testing: Tests entire system.
44. Performance Testing: Evaluates system speed.
45. Security Testing: Identifies vulnerabilities.
46. DevSecOps: Integrates security in DevOps.
47. Code Review: Inspection for quality.
48. Static Code Analysis: Examines code without execution.
49. Dynamic Code Analysis: Analyzes running code.
50. Dependency Management: Handles code dependencies.
51. Artifact Repository: Stores and manages artifacts.
52. Nexus: Repository manager.
53. JFrog Artifactory: Repository manager.
54. Continuous Monitoring: Real-time system observation.
55. Incident Response: Manages system incidents.
56. Site Reliability Engineering (SRE): Ensures system reliability.
57. Collaboration Tools: Facilitates team communication.
58. Slack: Team messaging platform.
59. Microsoft Teams: Collaboration platform.
60. ChatOps: Collaborative development through chat.
Please open Telegram to view this post
VIEW IN TELEGRAM
1711376018163.gif
1.3 MB
Kubernetes networking is a critical aspect of managing containerized applications in a distributed environment. It ensures that containers within a Kubernetes cluster can communicate with each other, with external users, and with other services smoothly.
Let's explore the key concepts and components of Kubernetes networking:
- Pods share the same network namespace and can communicate via localhost.
- Kubernetes assigns each Pod a unique IP address for inter-node communication.
- Services provide stable endpoints for accessing Pods.
- ClusterIP, NodePort, and LoadBalancer are common Service types for internal and external access.
- Ingress manages external access to Services based on HTTP/HTTPS rules.
- Ingress controllers handle traffic routing to Services within the cluster.
- This defines rules for Pod-to-Pod communication and access to external resources.
- It enables fine-grained control over network traffic within the cluster.
- A standard for defining plugins that handle networking in container runtimes.
- Used by Kubernetes to manage network interfaces and IP addresses.
- Kube-Proxy manages network rules for routing traffic to Services.
- CoreDNS resolves DNS queries for Kubernetes Services and Pods.
Understanding Kubernetes networking is essential for deploying and managing containerized applications effectively within a Kubernetes cluster
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
DevOps & Cloud (AWS, AZURE, GCP) Tech Free Learning
Photo
1. Kubernetes Fundamentals:
- Understanding Kubernetes architecture
- Pods, Nodes, and Clusters
- Namespaces
2. Setup and Configuration:
- Installing Minikube or Kubernetes on local machine
- Understanding kubeadm, kops, and kubectl
3. Basic Objects and Concepts:
- Deployments
- Services
- ReplicaSets
- ConfigMaps and Secrets
4. Networking:
- Cluster IP
- NodePort
- LoadBalancer
- Ingress basics
5. Storage:
- Persistent Volumes (PV)
- Persistent Volume Claims (PVC)
- Storage Classes
6. Basic Usage:
- Creating and managing pods
- Scaling applications
- Rolling updates and rollbacks
- Basic troubleshooting
7. Security:
- Role-Based Access Control (RBAC)
- Service Accounts
8. Monitoring and Logging:
- Basics of monitoring with Prometheus
- Logging with Elasticsearch, Fluentd, and Kibana (EFK stack)
9. Understanding YAML:
- Writing basic YAML files for Kubernetes objects
1. Deployments:
- Blue/Green deployments
- Canary deployments
- A/B testing
2. Networking:
- Service Meshes (Istio, Linkerd)
- Network Policies
- Advanced Ingress configurations
- CNI plugins (Calico, Flannel, Weave)
3. Storage:
- StatefulSets
- Dynamic provisioning
- CSI (Container Storage Interface)
4. Security:
- Pod Security Policies
- Network Policies
- Secrets management (Vault, Sealed Secrets)
- Image security and scanning (Trivy, Clair)
5. Advanced Configuration:
- Helm and Helm Charts
- Kustomize
- Operators and CRDs (Custom Resource Definitions)
6. Performance Tuning:
- Resource limits and requests
- Horizontal Pod Autoscaler (HPA)
- Vertical Pod Autoscaler (VPA)
- Cluster Autoscaler
7. Monitoring and Logging:
- Advanced Prometheus configuration
- Alerting with Alertmanager
- Distributed tracing (Jaeger, OpenTelemetry)
- Centralized logging
8. Cluster Management:
- Multi-cluster management
- Federation
- Backup and restore strategies
9. CI/CD Pipelines:
- Integrating CI/CD with Kubernetes (Jenkins X, Tekton)
- GitOps (ArgoCD, Flux)
10. Disaster Recovery:
- Backup and restore strategies
- High availability and failover planning
11. Scaling and Capacity Planning:
- Handling large-scale deployments
- Capacity planning and resource optimization
12. Service Catalog and Broker:
- Using the Kubernetes service catalog
- Integrating external services
13. Compliance and Auditing:
- Auditing with Kubernetes
- Ensuring compliance with regulatory requirements
14. Troubleshooting:
- Debugging complex issues
- Analyzing logs and metrics
- Using tools like k9s, kubectl-debug, and lens
15. Cost Management:
- Cost optimization strategies
- Using tools like Kubecost
Please open Telegram to view this post
VIEW IN TELEGRAM
1.
ansible-playbook: Executes Ansible playbooks.ex: ansible-playbook -i <inventory_file> <playbook.yml>
2.
ansible: Runs ad-hoc commands or tasks.ex: ansible all -m copy -a "src=/path/to/local/file dest=/path/to/remote/file"
ansible all -m yum -a "name=httpd state=latest"
3.
ansible-galaxy: Manages Ansible roles.ex: ansible-galaxy install <role_name>
4.
ansible-vault: Manages encrypted data within Ansible.ex: ansible-vault encrypt <file>
5.
ansible-galaxy init role_name: Initializes a new Ansible role scaffold.ex: ansible-galaxy init <role_name>
6.
ansible-inventory: Shows Ansible's inventory.ex: ansible-inventory --list -i /path/to/inventory/hosts
7.
ansible-config: Manages Ansible configuration.ex: ansible-config list, ansible-config view
8.
ansible-pull: Pulls playbooks from a version control system and executes them locally.ex: ansible-pull -U <repository_url> <playbook.yml>
9.
ansible-playbook --syntax-check: Checks playbook syntax without executing.ex: ansible-playbook --syntax-check <playbook.yml>
10.
ansible-playbook --list-hosts: Lists hosts defined in a playbook.ex: ansible-playbook --list-hosts playbook.yml
11.
ansible-playbook --tags: Runs specific tagged tasks within a playbook.ex: ansible-playbook --tags=tag1,tag2 playbook.yml
12.
ansible-playbook --limit: Limits playbook execution to specific hosts or groups.ex: ansible-playbook --limit=<host_pattern> <playbook.yml>
13.
ansible-vault edit: Edits an encrypted file.ex: ansible-vault edit secrets.yml
14.
ansible-doc: Displays documentation for Ansible modules.ex: ansible-doc <module_name>
15.
ansible-config view: Displays the current Ansible configuration.ex: ansible-config view
16.
ansible-config dump: Dumps the current Ansible configuration variables.ex: ansible-config dump
17.
ansible-config list: Lists configuration settings.ex: ansible-config list
18.
ansible-console: Starts an interactive console for executing Ansible tasks.ex: ansible-console
19.
ansible-lint: Lints Ansible playbooks for best practices and potential errors.ex: ansible-lint <playbook.yml>
20.
ansible-vault encrypt_string: Encrypts a string for use in a playbook.ex: ansible-vault encrypt_string <string>
21.
ansible-vault rekey: Rekeys an encrypted file with a new password.ex: ansible-vault rekey <file>
Please open Telegram to view this post
VIEW IN TELEGRAM
1709611305572.gif
8.2 MB
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM