Please open Telegram to view this post
VIEW IN TELEGRAM
In this article, we will explain how to create and manage the public and private subnets using terraform and create instance in the desired subnet.
Please open Telegram to view this post
VIEW IN TELEGRAM
I've just published a comprehensive collection of DevOps Cheatsheets that cover a wide range of tools and topics to help you streamline your workflows and enhance your skills. Whether you're a beginner or looking to deepen your knowledge, these Cheatsheets have got you covered!
- Containerization: Docker, Kubernetes, Helm, Podman
- CI/CD: Jenkins, GitHub Actions, GitLab CI, CircleCI
- Monitoring: Prometheus, Grafana, ELK Stack, Nagios
- Security: Trivy, SonarQube, AquaSec, HashiCorp Vault
- Cloud: AWS, Azure, GCP, Terraform
- DevOps Engineers: Get quick access to the tools you use every day.
- Sysadmins: Simplify operations with easy-to-follow guides.
- Developers: Understand the infrastructure behind your applications.
- DevOps Newcomers: Learn the basics and avoid common pitfalls with our beginner-friendly Cheatsheets.
Explore detailed guides, from basic concepts to advanced techniques, and take your DevOps expertise to the next level!🌟
Feel free to dive in, contribute, and share your thoughts. Happy DevOps-ing!
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Resolving merge conflicts in Git ☁️ can be done using a text editor and Git commands. Here are the steps:
1. Identify the Conflict:
When you encounter a merge conflict, Git will mark the conflicting lines in your files.
Open the conflicted file in your favorite text editor (e.g., Visual Studio Code).
2. Review the Conflict:
➡️ Look for conflict markers in the file:
Decide which changes to keep or modify.
3. Resolve the Conflict:
Edit the file to incorporate the desired changes.
Remove the conflict markers (
Save the file.
4. Stage the Changes:
Use the following command to stage the resolved changes:
5. Commit the Changes:
Create a new commit with the resolved conflict:
That's it! You've successfully resolved the merge conflict. For more details, you can refer to the GitHub Docs or other resources[1]. Let me know if you need further assistance!🚀
➡️ Reference links: [1] [2] [3] [4] [5]
📱 𝗙𝗼𝗹𝗹𝗼𝘄 @prodevopsguy 𝐟𝐨𝐫 𝐦𝐨𝐫𝐞 𝐬𝐮𝐜𝐡 𝐜𝐨𝐧𝐭𝐞𝐧𝐭 𝐚𝐫𝐨𝐮𝐧𝐝 𝐜𝐥𝐨𝐮𝐝 & 𝐃𝐞𝐯𝐎𝐩𝐬!!! // 𝐉𝐨𝐢𝐧 𝐟𝐨𝐫 𝐃𝐞𝐯𝐎𝐩𝐬 𝐃𝐎𝐂𝐬: @devopsdocs
1. Identify the Conflict:
When you encounter a merge conflict, Git will mark the conflicting lines in your files.
Open the conflicted file in your favorite text editor (e.g., Visual Studio Code).
2. Review the Conflict:
<<<<<<< HEAD: This shows the changes from the base or HEAD branch.=======: Separates your changes from the other branch's changes.>>>>>>> BRANCH-NAME: Displays the changes from the other branch.Decide which changes to keep or modify.
3. Resolve the Conflict:
Edit the file to incorporate the desired changes.
Remove the conflict markers (
<<<<<<<, =======, and >>>>>>>).Save the file.
4. Stage the Changes:
Use the following command to stage the resolved changes:
git add FILENAME
5. Commit the Changes:
Create a new commit with the resolved conflict:
git commit -m "Resolved merge conflict"
That's it! You've successfully resolved the merge conflict. For more details, you can refer to the GitHub Docs or other resources[1]. Let me know if you need further assistance!
Please open Telegram to view this post
VIEW IN TELEGRAM
- Manages containers through Docker Daemon.
- Uses a registry to store container images.
- Clients can interact with the service or host to deploy containers.
- Manages multiple containers and nodes.
- Example: Kubernetes is the orchestrator for deploying and managing containerized applications.
- Improves application performance by using distributed caches.
- Reduces database load by temporarily storing frequently accessed data.
- Multiple services (Service A, Service B, Service C) connect to a single, shared database.
- Simplifies data consistency but can create a bottleneck.
- Tracks requests across multiple services in a microservices architecture.
- Useful for troubleshooting and monitoring service interactions.
- Provides visibility across frontend and backend components.
- Ensures performance monitoring and issue detection across services.
- Centralizes logs from different microservices (Microservice 1, Microservice 2).
- Allows for easier tracking and troubleshooting of issues.
- Facilitates communication between microservices through an event-driven architecture.
- Ensures asynchronous processing of events across services.
- Helps services find each other automatically.
- Uses a service registry and load balancer to connect service providers and consumers.
- Distributes incoming requests evenly across multiple servers.
- Improves application scalability and fault tolerance.
- Acts as a single entry point for clients to access multiple services.
- Handles routing, authentication, and rate limiting.
- Hosts infrastructure in the cloud for scalability.
- Allows for flexible resource provisioning and management.
Please open Telegram to view this post
VIEW IN TELEGRAM
Here are the top 10 Scenario based questions you should be ready to answer!
Please open Telegram to view this post
VIEW IN TELEGRAM
1731866723888.gif
96 KB
𝘼𝙒𝙎: 𝙐𝙣𝙡𝙤𝙘𝙠𝙞𝙣𝙜 𝙩𝙝𝙚 𝙋𝙤𝙬𝙚𝙧 𝙤𝙛 𝙩𝙝𝙚 𝘾𝙡𝙤𝙪𝙙 ⚡️
I’ve been diving deeper into 𝐀𝐦𝐚𝐳𝐨𝐧 𝐖𝐞𝐛 𝐒𝐞𝐫𝐯𝐢𝐜𝐞𝐬, and wanted to show why it’s such a game-changer in the tech world.⭐️
𝗪𝗵𝗮𝘁 𝗶𝘀 𝗔𝗪𝗦?
AWS is a 𝑐𝑙𝑜𝑢𝑑 𝑐𝑜𝑚𝑝𝑢𝑡𝑖𝑛𝑔 𝑝𝑙𝑎𝑡𝑓𝑜𝑟𝑚 that provides services like storage, computing power, databases, networking, and so much more!
It allows businesses and individuals to scale their applications without the hassle of 𝐦𝐚𝐧𝐚𝐠𝐢𝐧𝐠 physical hardware.
𝙒𝙝𝙮 𝘼𝙒𝙎?
✅ 𝙎𝙘𝙖𝙡𝙖𝙗𝙞𝙡𝙞𝙩𝙮: Start small and scale big as your needs grow.
✅ 𝘾𝙤𝙨𝙩-𝙀𝙛𝙛𝙚𝙘𝙩𝙞𝙫𝙚𝙣𝙚𝙨𝙨: Pay only for what you use
✅ 𝙂𝙡𝙤𝙗𝙖𝙡 𝙍𝙚𝙖𝙘𝙝: With data centres worldwide, AWS ensures low latency and high availability.
✅ 𝙎𝙚𝙘𝙪𝙧𝙞𝙩𝙮: Built with top-tier security to protect your applications and data.
𝘼𝙒𝙎 𝙘𝙤𝙣𝙨𝙞𝙨𝙩𝙨 𝙤𝙛 𝙨𝙚𝙧𝙫𝙞𝙘𝙚𝙨 𝙡𝙞𝙠𝙚:
☁️ 𝐄𝐂𝟐: Virtual servers to host applications.
📦 𝐒𝟑: Secure, scalable object storage.
🔗 𝐕𝐏𝐂: Customisable networking in the cloud.
🛠 𝐄𝐂𝐒: Running containerised applications.
Whether you’re a tech enthusiast, developer, or entrepreneur, understanding cloud computing is a must in today’s world.🚀
📱 𝗙𝗼𝗹𝗹𝗼𝘄 @prodevopsguy 𝐟𝐨𝐫 𝐦𝐨𝐫𝐞 𝐬𝐮𝐜𝐡 𝐜𝐨𝐧𝐭𝐞𝐧𝐭 𝐚𝐫𝐨𝐮𝐧𝐝 𝐜𝐥𝐨𝐮𝐝 & 𝐃𝐞𝐯𝐎𝐩𝐬!!! // 𝐉𝐨𝐢𝐧 𝐟𝐨𝐫 𝐃𝐞𝐯𝐎𝐩𝐬 𝐃𝐎𝐂𝐬: @devopsdocs
I’ve been diving deeper into 𝐀𝐦𝐚𝐳𝐨𝐧 𝐖𝐞𝐛 𝐒𝐞𝐫𝐯𝐢𝐜𝐞𝐬, and wanted to show why it’s such a game-changer in the tech world.
𝗪𝗵𝗮𝘁 𝗶𝘀 𝗔𝗪𝗦?
AWS is a 𝑐𝑙𝑜𝑢𝑑 𝑐𝑜𝑚𝑝𝑢𝑡𝑖𝑛𝑔 𝑝𝑙𝑎𝑡𝑓𝑜𝑟𝑚 that provides services like storage, computing power, databases, networking, and so much more!
It allows businesses and individuals to scale their applications without the hassle of 𝐦𝐚𝐧𝐚𝐠𝐢𝐧𝐠 physical hardware.
𝙒𝙝𝙮 𝘼𝙒𝙎?
𝘼𝙒𝙎 𝙘𝙤𝙣𝙨𝙞𝙨𝙩𝙨 𝙤𝙛 𝙨𝙚𝙧𝙫𝙞𝙘𝙚𝙨 𝙡𝙞𝙠𝙚:
☁️ 𝐄𝐂𝟐: Virtual servers to host applications.
Whether you’re a tech enthusiast, developer, or entrepreneur, understanding cloud computing is a must in today’s world.
Please open Telegram to view this post
VIEW IN TELEGRAM
1724307322268.gif
891.1 KB
1. Programming and Scripting: Master Python, Bash, and PowerShell for automation and custom solutions.
2. Version Control: Gain proficiency in Git: basics, branching, merging, and common workflows.
3. Configuration Management: Learn tools like Ansible, Chef, and Puppet to automate environment setups.
4. CI/CD: Implement and optimize pipelines using Jenkins and GitLab CI/CD for continuous integration and delivery.
5. Infrastructure as Code (IaC): Manage infrastructure with Terraform and CloudFormation for scalable, repeatable environments.
6. Containerization: Work with Docker and Podman to build, ship, and run applications consistently across environments.
7. Container Orchestration: Use Kubernetes and Docker Swarm to manage containerized applications at scale.
8. Monitoring and Logging: Monitor systems with Prometheus and analyze logs with the ELK Stack (Elasticsearch, Logstash, Kibana).
9. Cloud Platforms: Gain expertise in cloud services from AWS, Azure, and GCP for flexible and scalable solutions.
10. Security and Compliance: Integrate DevSecOps practices to ensure security is a part of the DevOps pipeline.
11. Networking: Understand the basics of cloud networking, including VPCs, load balancers, and DNS.
12. Release Management: Learn advanced deployment strategies like blue-green deployments and canary releases.
13. Collaboration: Embrace Agile methodologies and tools like Jira and Slack for efficient teamwork.
14. Incident Management: Develop on-call strategies, incident response plans, and use tools for tracking and managing incidents.
15. Automation: Continuously enhance your CI/CD and automation skills, focusing on efficiency and reliability.
16. Continuous Learning: Stay updated with industry certifications, trends, and new technologies.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
In This Project, we are Developing and Deploying a video streaming application on EC2 using Docker and AWS Developers Tools.
📣 Note: Fork this Repository🧑💻 for upcoming future projects, Every week releases new Project.
Please open Telegram to view this post
VIEW IN TELEGRAM
In this project, we take you through the full process of deploying an Open AI Chatbot UI on Amazon EKS, leveraging Jenkins for CI/CD and Terraform for infrastructure automation.
- Kubernetes-based Chatbot UI deployment on EKS
- Terraform scripts for scalable infrastructure
- Jenkins pipelines for automated builds and deployments
- Security and best practices with DevSecOps mindset
💻 Ready to dive in? Check out the code and start building your own secure, scalable Chatbot UI deployment!
📣 Note: Fork this Repository🧑💻 for upcoming future projects, Every week releases new Project.
Please open Telegram to view this post
VIEW IN TELEGRAM
Not a joke, many DevOps engineers don’t fully understand the "pod.yaml" file structure or the role each part plays in defining a pod.
📱 𝗙𝗼𝗹𝗹𝗼𝘄 @prodevopsguy 𝐟𝐨𝐫 𝐦𝐨𝐫𝐞 𝐬𝐮𝐜𝐡 𝐜𝐨𝐧𝐭𝐞𝐧𝐭 𝐚𝐫𝐨𝐮𝐧𝐝 𝐜𝐥𝐨𝐮𝐝 & 𝐃𝐞𝐯𝐎𝐩𝐬!!! // 𝐉𝐨𝐢𝐧 𝐟𝐨𝐫 𝐃𝐞𝐯𝐎𝐩𝐬 𝐃𝐎𝐂𝐬: @devopsdocs
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
1. What is Docker?
2. What are Docker containers?
3. How is Docker different from a virtual machine?
4. What is the purpose of Docker images?
5. What is Docker Hub?
6. How do you create a Docker container?
7. What is a Dockerfile, and how is it used?
8. What is the docker ps command?
9. How do you stop and remove a running Docker container?
10. What is the difference between docker run and docker exec?
11. How do you list all the Docker images on your system?
12. What is the docker-compose command used for?
13. How do you copy files from a Docker container to the host?
14. What is a Docker volume?
15. How do you map ports between your Docker container and host?
16. How do you attach to a running Docker container?
17. What is the Docker Compose file format version?
18. What is a Docker registry?
19. How do you view Docker container logs?
20. What is the docker network command?
21. What is Docker Desktop, and how does it differ from Docker Engine?
22. How do you view Docker container resource usage?
23. What is the purpose of the CMD instruction in a Dockerfile?
24. How do you pull an image from Docker Hub?
25. What is the ENTRYPOINT instruction in a Dockerfile?
26. How do you share data between Docker containers?
27. What is the .dockerignore file used for?
28. How do you create a Docker image from a Dockerfile?
29. What is the docker tag command, and how is it used?
30. How do you run a Docker container in the background (detached mode)?
31. What is the purpose of the EXPOSE instruction in a Dockerfile?
32. How do you remove all stopped containers in Docker?
33. How do you set environment variables for a running Docker container? 34. What is Docker Swarm?
35. How do you check the status of all containers running in Docker?
36. What is the difference between Docker’s COPY and ADD instructions in Dockerfile?
37. What is the docker system prune command?
38. What is the docker-compose up command used for?
39. How do you limit a container’s CPU and memory usage?
40. How do you add a volume to a Docker container?
Please open Telegram to view this post
VIEW IN TELEGRAM
DEV Community
Writing Kubernetes Manifests: From Beginner to Advanced
Kubernetes manifests are essential for defining, deploying, and managing workloads in Kubernetes...
Please open Telegram to view this post
VIEW IN TELEGRAM
When Containers Talk: Decoding the Secret Language of Docker Networking.
Please open Telegram to view this post
VIEW IN TELEGRAM
𝗨𝗻𝗱𝗲𝗿𝘀𝘁𝗮𝗻𝗱𝗶𝗻𝗴 𝗖𝗼𝗺𝗺𝗼𝗻𝗹𝘆 𝗨𝘀𝗲𝗱 𝗡𝗲𝘁𝘄𝗼𝗿𝗸 𝗣𝗼𝗿𝘁𝘀 🚀
As DevOps and Cloud Engineers, we frequently deal with networking, where understanding ports is crucial for secure and seamless communication between applications and services. Here’s a quick breakdown of some widely used ports and their significance:
➡️ 𝗛𝗧𝗧𝗣 (𝗣𝗼𝗿𝘁 𝟴𝟬): Used for unencrypted web traffic. It’s the foundation of data communication on the web.
➡️ 𝗛𝗧𝗧𝗣𝗦 (𝗣𝗼𝗿𝘁 𝟰𝟰𝟯): Secures HTTP traffic with encryption using SSL/TLS. Essential for secure web browsing.
➡️ 𝗦𝗦𝗛 (𝗣𝗼𝗿𝘁 𝟮𝟮): Enables secure remote login and command execution on servers. Vital for server administration.
➡️ 𝗙𝗧𝗣 (𝗣𝗼𝗿𝘁 𝟮𝟭): Used for file transfers over a network. Commonly seen in legacy systems.
➡️ 𝗗𝗡𝗦 (𝗣𝗼𝗿𝘁 𝟱𝟯): Resolves domain names to IP addresses, enabling human-friendly URLs.
➡️ 𝗠𝘆𝗦𝗤𝗟 (𝗣𝗼𝗿𝘁 𝟯𝟯𝟬𝟲): The default port for the MySQL database. Allows apps to connect and query the database.
➡️ 𝗞𝘂𝗯𝗲𝗿𝗻𝗲𝘁𝗲𝘀 𝗔𝗣𝗜 𝗦𝗲𝗿𝘃𝗲𝗿 (𝗣𝗼𝗿𝘁 𝟲𝟰𝟰𝟯): Used for controlling and managing Kubernetes clusters.
➡️ 𝗗𝗼𝗰𝗸𝗲𝗿 𝗗𝗮𝗲𝗺𝗼𝗻 𝗔𝗣𝗜 (𝗣𝗼𝗿𝘁𝘀 𝟮𝟯𝟳𝟱/𝟮𝟯𝟳𝟲): Interacts with the Docker Engine for container management.
➡️ 𝗠𝗼𝗻𝗴𝗼𝗗𝗕 (𝗣𝗼𝗿𝘁 𝟮𝟳𝟬𝟭𝟳): Default port for MongoDB, a popular NoSQL database.
➡️ 𝗡𝗚𝗜𝗡𝗫 (𝗣𝗼𝗿𝘁𝘀 𝟴𝟬/𝟰𝟰𝟯): Acts as a web server or reverse proxy, handling HTTP/HTTPS traffic.
➡️ 𝗚𝗿𝗮𝗳𝗮𝗻𝗮 (𝗣𝗼𝗿𝘁 𝟯𝟬𝟬𝟬): Visualizes metrics and logs.
➡️ 𝗣𝗿𝗼𝗺𝗲𝘁𝗵𝗲𝘂𝘀 (𝗣𝗼𝗿𝘁 𝟵𝟬𝟵𝟬): Collects and stores time-series data for monitoring.
➡️ 𝗧𝗼𝗺𝗰𝗮𝘁 (𝗣𝗼𝗿𝘁 𝟴𝟬𝟴𝟬): A web server for Java applications.
➡️ 𝗔𝗽𝗮𝗰𝗵𝗲 𝗞𝗮𝗳𝗸𝗮 (𝗣𝗼𝗿𝘁 𝟵𝟬𝟵𝟮): Used for distributed messaging and data streaming.
➡️ 𝗥𝗲𝗱𝗶𝘀 (𝗣𝗼𝗿𝘁 𝟲𝟯𝟳𝟵): An in-memory database for caching and real-time analytics.
➡️ 𝗥𝗗𝗣 (𝗣𝗼𝗿𝘁 𝟯𝟯𝟴𝟵): For remote desktop connections, mainly in Windows environments.
➡️ 𝗘𝗹𝗮𝘀𝘁𝗶𝗰𝘀𝗲𝗮𝗿𝗰𝗵 𝗔𝗣𝗜 (𝗣𝗼𝗿𝘁 𝟵𝟮𝟬𝟬): Provides search and analytics capabilities.
➡️ 𝗝𝗲𝗻𝗸𝗶𝗻𝘀 (𝗣𝗼𝗿𝘁 𝟴𝟬𝟴𝟬): Automates CI/CD processes in software development.
➡️ 𝗦𝗠𝗧𝗣 (𝗣𝗼𝗿𝘁 𝟮𝟱): Used for sending emails between servers.
Understanding these ports helps in configuring firewalls, troubleshooting connectivity issues, and securing applications.
As DevOps and Cloud Engineers, we frequently deal with networking, where understanding ports is crucial for secure and seamless communication between applications and services. Here’s a quick breakdown of some widely used ports and their significance:
Understanding these ports helps in configuring firewalls, troubleshooting connectivity issues, and securing applications.
Please open Telegram to view this post
VIEW IN TELEGRAM
1704166480229.pdf
248.1 KB
Hey Devops People,
Here is Ansible notes covering the most important topics.
This Doc covered the below mentioned topics in Notes.
· 𝗔𝗻𝘀𝗶𝗯𝗹𝗲 𝗢𝘃𝗲𝗿𝘃𝗶𝗲𝘄
· 𝗖𝗼𝗺𝗽𝗼𝗻𝗲𝗻𝘁𝘀 𝗢𝗳 𝗔𝗻𝘀𝗶𝗯𝗹𝗲
· 𝗖𝗼𝗻𝘁𝗿𝗼𝗹 𝗡𝗼𝗱𝗲 & 𝗠𝗮𝗻𝗮𝗴𝗲𝗱 𝗡𝗼𝗱𝗲 𝗪𝗶𝘁𝗵 𝗘𝘅𝗮𝗺𝗽𝗹𝗲𝘀
· 𝗦𝗲𝘁𝘁𝗶𝗻𝗴 𝘂𝗽 𝗔𝗻𝘀𝗶𝗯𝗹𝗲
· 𝗦𝗲𝘁𝘁𝗶𝗻𝗴 𝗨𝗽 𝗜𝗻𝘃𝗲𝗻𝘁𝗼𝗿𝘆 𝗳𝗶𝗹𝗲
· 𝗔𝗻𝘀𝗶𝗯𝗹𝗲 𝗠𝗼𝗱𝘂𝗹𝗲𝘀 𝘄𝗶𝘁𝗵 𝗲𝘅𝗮𝗺𝗽𝗹𝗲𝘀
· 𝗔𝗻𝘀𝗶𝗯𝗹𝗲 𝗣𝗹𝗮𝘆𝗯𝗼𝗼𝗸𝘀 𝗶𝗻 𝗱𝗲𝘁𝗮𝗶𝗹 𝘄𝗶𝘁𝗵 𝗲𝘅𝗮𝗺𝗽𝗹𝗲𝘀
· 𝗔𝗻𝘀𝗶𝗯𝗹𝗲 𝗣𝗹𝗮𝘆𝗯𝗼𝗼𝗸 𝗥𝗲𝗮𝗹𝘁𝗶𝗺𝗲 𝗘𝘅𝗮𝗺𝗽𝗹𝗲
· 𝗔𝗻𝘀𝗶𝗯𝗹𝗲 𝗘𝗿𝗿𝗼𝗿𝘀 & 𝗧𝗿𝗼𝘂𝗯𝗹𝗲𝘀𝗵𝗼𝗼𝘁𝗶𝗻𝗴
Please open Telegram to view this post
VIEW IN TELEGRAM