Marcin Jasion - Pragmatic DevOps
  • Home
  • About
  • Skills
  • Experiences
  • Accomplishments
  • More
    Presentations
  • Posts
  • Notes
  • Dark Theme
    Light Theme Dark Theme System Theme
  • Posts
  • Cloud
    • Terraform Logs
    • Terraform Parallelism
    • VPN
  • Golang
    • Golang Leader Example
  • Kubernetes
    • Istio
  • Blockchain
  • Gitlab
Hero Image
Implementing Leader Election in Golang using Kubernetes API

Introduction Leader election is a crucial pattern in distributed systems where multiple instances or nodes compete to perform certain tasks. In a Kubernetes cluster, leader election can be used to ensure that only one instance is responsible for executing leader-specific tasks at any given time. This blog post will explore how to implement a leader election mechanism in Kubernetes using lease locks. Overview The leader election mechanism implemented in Go code relies on Kubernetes coordination features, specifically Lease object in the coordination.k8s.io API Group. Lease locks provide a way to acquire a lease on a shared resource, which can be used to determine the leader among a group of nodes.

    Sunday, June 25, 2023 | 4 minutes Read
    Hero Image
    How to setup AWS Site-to-Site VPN with Unifi UDM ๐Ÿ”’

    By default resources, you launch on the cloud (EC2, RDS, and others) cannot communicate with your local networks like home or office. To allow this you can create a Site-to-Site VPN. This VPN connection will be established between your router and AWS VPC. Creating VPN between networks is well documented. However, you can have issues configuring your home router. At home, I have Unifi Dream Machine router, which is designed for small networks, but have features which are matching advanced routers for offices. One of them is a Site-to-Site VPN using the IPSec protocol.

      Wednesday, June 29, 2022 | 6 minutes Read
      Hero Image
      How to configure parallelism in Terraform Cloud

      In my previous post I showed how to enable debug logs. Today I want to present how to improve terraform plan and terraform apply speed by configuring parallelism. Terraform by default runs 10 concurrent operations. To reduce execution time on plan or apply operation we can increase this parameter. By increasing paralellism you can hist rate limit your provider. Some cloud providers (like Cloudflare) informs about number of API request allowed in period of time. Hitting the limit can impact your deployments.

        Tuesday, June 14, 2022 | 2 minutes Read
        Hero Image
        How to enable debug and trace logs in Terraform Cloud and Enterprise

        Terraform Cloud is an application that helps teams use Terraform together. I am using it for side projects like my cloud infrastructure. Last time I had to see trace logs to find issue with one of managed resources. Terraform has detailed logs which can be enabled by setting the TF_LOG environment variable to any value. This will cause detailed logs to appear on execution. Enabling verbose logging in CLI You can set TF_LOG to one of the log levels TRACE, DEBUG, INFO, WARN or ERROR to change the verbosity of the logs. You can set this variable in two ways. First option is to set variable for shell session:

          Friday, June 10, 2022 | 2 minutes Read
          Hero Image
          How to debug Istio Upstream Reset 502 UPE (old 503 UC)

          Istio is a complex system. For the applications, the main component is the sidecar container Istio-Proxy, which proxies while traffic from all containers in Pod. And this can lead to some issues. This post describes one of the most complicated problems I have encountered in my career. The problem - Connection Reset ๐Ÿ› During Istio on a huge system, with more than different 40 microservices, on a single endpoint, QA engineers found a bug. It was POST endpoint, which was returning chunked data.

            Monday, April 25, 2022 | 5 minutes Read
            Hero Image
            Deploy your first blockchain contract to Ethereum

            First contract - Pet owners I am learning blockchain and smarcontract. This post will be my note how I am starting my journey to blockchain technology. In this example I will create a contract for storing who is owning a Pet. Development // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; //build contract on top of Solidity >=0.8.0 and <0.9.0 contract PetOwner { mapping (string => Pet) public petOwners; struct Pet { string name; string petType; } function addPetOwner(string memory ownerName, string memory _name, string memory _petType) public { petOwners[ownerName] = Pet({name: _name, petType: _petType}); } } Put it to the Remix IDE: https://remix.ethereum.org/. It should compile and we can deploy it on local environment:

              Saturday, April 9, 2022 | 2 minutes Read
              Hero Image
              How to label GitLab notification in Gmail by headers?

              ๐Ÿ“จ How GitLab sends notifications? GitLab allows you to stay informed about whatโ€™s happening in your projects sending you the notifications via email. With enabled notifications, you can receive updates about activity in issues, merge requests or build results. All of those emails are sent from a single address which without a doubt makes it harder to do successful filtering and labeling. However GitLab adds custom headers to every sent notification to allow you to better manage received notification and for example, you could add a label to all emails with pipelines results to mark them as important. Similarly, you could make the same scenario for notification about the issue assigned to you. Some of the headers that you can find in emails are:

                Friday, April 17, 2020 | 5 minutes Read
                Navigation
                • About
                • Skills
                • Experiences
                • Accomplishments
                • Presentations
                Contact me:
                • hello@mjasion.pl
                • mjasion
                • Marcin Jasion

                Toha Theme Logo Toha
                ยฉ 2025 Copyright.
                Powered by Hugo Logo