-
Internal Service in Kubernetes Cluster
In Kubernetes(K8s) cluster, 1 or more containers form a pod and every container in the pod can access other container’s port just like apps in the same local host. For example: – pod1 – nginx1 – gunicorn1, port:8000 – pod2 – nginx2 – gunicorn2, port:8000 So nginx1 can access gunicorn1’s port using localhost:8000 and nginx2…
-
Build a Chrome Extension with VueJS
It turns out quite easy to build a Chrome Extension. Basically the extension is a web application containing HTML, JS, images, etc. I tried to build a simple extension using VueJS recommended by colleagues. There’s just 1 limitation that affected me: The eval JS function is disabled in Chrome Extensions for security reasons. That means…
-
Kops: Add Policies for Migrated Apps
When migrating some old applications to a Kubernetes(k8s) cluster provisioned by kops, a lot of things might break and one of them is the missing policy for the node. By default, nodes of a k8s cluster have the following permissions: ec2:Describe* ecr:GetAuthorizationToken ecr:BatchCheckLayerAvailability ecr:GetDownloadUrlForLayer ecr:GetRepositoryPolicy ecr:DescribeRepositories ecr:ListImages ecr:BatchGetImage route53:ListHostedZones route53:GetChange // The following permissions are…
-
Resolved: Arch Linux WiFi issue
When I connected my laptop running Arch Linux to a new WiFi this morning, it worked for a brief moment then all connections were dropped. Connecting to the same WiFi with phone or Macbook works fine so the problem is at Arch LInux(AL)’s end. Then I noticed if I do a route it actually showed 2…
-
Notes: BuildKite and Kubernetes Rolling Update
This is kind of a textbook case that container is much more efficient than VM. The CI pipeline in comparison uses AWS CloudFormation to build new VMs and drain old VMs to do a rolling update, which takes around 10 minutes for everything even if it’s just 1 line of code changed. I did a…
-
Why I like BuildKite
BuildKite is a relative new CI toolkit I would like to replace Jenkins with. Here are some pros and cons I thought I could share: Pros: Designed with containers(docker) in mind. Hybrid architecture, console as a hosted service where agents can run anywhere with internet connectivity Build pipeline as code, also very easy to write…
-
Adding Annotation to Grafana Dashboards, with InfluxDB
It’s very easy to add this super powerful annotations to Grafana charts. I followed the below instructions and created my first annotation in a few minutes on an existing Grafana + InfluxDB setup. https://maxchadwick.xyz/blog/grafana-influxdb-annotations
-
Install Shutter in Arch Linux
It’s quite unexpected that in Arch Linux’s package database I couldn’t find Shutter, which is generally available in other Linux distributions. Although, it’s still possible to install Shutter in Arch. First I use pacaur as my AUR helper. Installation of pacaur can refer to this. Then it’s quite easy to get Shutter installed because it’s in AUR…