Uncategorizedcontainerdockerexpose port wsl to windowspodmanwslwsl exposed port not accessible in windows
Ketika menjalankan container dengan exposed port dengan harapan bisa diakses melalui host, namun ternyata cara ini tidak bisa dilakukan ketika container kita berjalan di WSL. Contohnya seperti PostgreSQL saya yang dijalankan diatas Podman di WSL Windows. Port 5432 sudah di expose namun belum bisa diakses melalui Windows Host. Ternyata kita perlu melakukan konfigurasi tambahan untuk […]
Show full content
Ketika menjalankan container dengan exposed port dengan harapan bisa diakses melalui host, namun ternyata cara ini tidak bisa dilakukan ketika container kita berjalan di WSL.
Contohnya seperti PostgreSQL saya yang dijalankan diatas Podman di WSL Windows. Port 5432 sudah di expose namun belum bisa diakses melalui Windows Host.
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b6263d5bef4a docker.io/library/postgres:16.2-alpine postgres 15 hours ago Up 16 minutes 0.0.0.0:5432->5432/tcp postgres
Ternyata kita perlu melakukan konfigurasi tambahan untuk melakukan port forwarding pada Windows Host.
# Jalankan perintah berikut di host machine, bukan di WSL.
$ sudo netsh interface portproxy add v4tov4 listenport=5432 listenaddress=0.0.0.0 connectport=5432 connectaddress=127.0.0.1
Untuk melakukan pengecekan bisa menggunakan perintah berikut:
$ netsh interface portproxy show all
Listen on ipv4: Connect to ipv4:
Address Port Address Port
--------------- ---------- --------------- ----------
0.0.0.0 5432 127.0.0.1 5432
Langkah terkahir yang perlu dilakukan adalah mengetahui alamat IP dari WSL kita, untuk selanjutnya dipanggil pada client kita.
# Jalankan perintah di Windows Host.
$ wsl hostname -I
17x.xx.x.xx
# Atau bisa jalankan perintah didalam WSL.
$ hostname -I
17x.xx.x.xx
Selanjutnya, kita bisa mengakses menggunakan alamat IP dari perintah hostname diatas.
Akan 3 bagian yang harus di-install dan di konfigurasi, antara lain: Install Grafana Grafana adalah dashboard yang nantinya akan menampilkan semua metric pada service atau sistem dalam bentuk visual chart. Untuk langkah-langkah instalasi bisa mengikuti langkah berikut: 1. Install Grafana via apt. 2. Menjalankan daemon Grafana pada systemd. 3. Setelah selesai, selanjutnya Grafana siap digunakan secara […]
Show full content
Akan 3 bagian yang harus di-install dan di konfigurasi, antara lain:
Akan 3 bagian yang harus di-install dan di konfigurasi, antara lain: Install Node Exporter Node exporter adalah plugin tambahan dari Prometheus, yang bertugas menampilkan metric dari host sistem operasi. Nantinya metric sistem operasi ini akan di ambil oleh Prometheus untuk ditampilkan pada Dashboard. Untuk instalasinya bisa mengikuti langkah-langkah berikut: 1. Install binary node exporter 2. Buat […]
Show full content
Akan 3 bagian yang harus di-install dan di konfigurasi, antara lain:
Node exporter adalah plugin tambahan dari Prometheus, yang bertugas menampilkan metric dari host sistem operasi. Nantinya metric sistem operasi ini akan di ambil oleh Prometheus untuk ditampilkan pada Dashboard.
Untuk instalasinya bisa mengikuti langkah-langkah berikut:
1. Install binary node exporter
$ tar xzvf node_exporter-1.9.0.linux-amd64.tar.gz
$ cd node_exporter-1.9.0.linux-amd64/
$ sudo mv node_exporter /usr/local/bin/
2. Buat konfigurasi node_exporter daemon di systemd.
Cloudgrafanamonitoring grafana and prometheusprometheusprometheus node exportersetuo prometheus monitoringsetup grafana monitoring
Akan 3 bagian yang harus di-install dan di konfigurasi, antara lain: Install Prometheus Prometheus akan bertugas sebagai time-series database yang akan mengkoleksi data-data metrics dari OS atau sistem, dan langkah-langkah instalasinya bisa mengikuti langkah berikut: 1. Install Binary Prometheus. 2. Siapkan directory konfigurasi Prometheus. 3. Buat user & group prometheus dan assign user ke directory […]
Show full content
Akan 3 bagian yang harus di-install dan di konfigurasi, antara lain:
Prometheus akan bertugas sebagai time-series database yang akan mengkoleksi data-data metrics dari OS atau sistem, dan langkah-langkah instalasinya bisa mengikuti langkah berikut:
1. Install Binary Prometheus.
$ wget https://github.com/prometheus/prometheus/releases/download/v3.2.1/prometheus-3.2.1.linux-amd64.tar.gz
$ tar xzvf prometheus-3.2.1.linux-amd64.tar.gz # sesuaikan versi
$ cd prometheus-3.2.1.linux-amd64 # sesuaikan versi
$ sudo mv prometheus promtool /usr/local/bin/
2. Siapkan directory konfigurasi Prometheus.
$ sudo mkdir /etc/prometheus # untuk simpan konfigurasi prometheus
$ sudo mkdir /var/lib/prometheus # untuk simpan data time-series prometheus
3. Buat user & group prometheus dan assign user ke directory /var/lib/.
Cloudkuberneteskubernetes with podman minikubeminikubeminikube with podmanpodman
Pastikan Podman dan Minikube sudah terinstall sesuai petunjuk berikut: Kemudian ikuti langkah berikut untuk menjalankan Minikube menggunakan Podman: Referensi: https://minikube.sigs.k8s.io/docs/drivers/podman/
Show full content
Pastikan Podman dan Minikube sudah terinstall sesuai petunjuk berikut:
Uncategorizedbatterybattery health charging extensionbattery health charging gnome extensionconservative modegnome extensionlaptoplenovolenovo batterylenovo conservative modelenovo yoga slim 7i pro
3 Tahun menggunakan Lenovo Yoga Slim 7i Pro sebagai daily driver pekerjaan, ternyata sudah waktunya ganti baterai laptop dikarenakan kapasitas penuh baterai hanya 0%, artinya untuk menggunakan laptop perlu dalam keadaan “charging” dan laptop akan mati total ketika charger baterai dilepas. Setelah penggantian baterai dan baca berbagai sumber cara perawatan baterai laptop agar awet, khusus […]
Show full content
3 Tahun menggunakan Lenovo Yoga Slim 7i Pro sebagai daily driver pekerjaan, ternyata sudah waktunya ganti baterai laptop dikarenakan kapasitas penuh baterai hanya 0%, artinya untuk menggunakan laptop perlu dalam keadaan “charging” dan laptop akan mati total ketika charger baterai dilepas.
Setelah penggantian baterai dan baca berbagai sumber cara perawatan baterai laptop agar awet, khusus Lenovo ada Conservative Mode dimana mode ini akan menerapkan charging limit di rentang 20%-80%, sehingga baterai tidak pernah terisi penuh ke kapasitas maksimal 100% dan akan memulai charging ketika baterai pada kondisi 20%.
Metode ini bisa membantu memperpanjang umur baterai, karena dapat menghindari overcharging dan stress pada baterai ketika laptop dalam keadaan charging sepanjang hari.
Untuk Conservative Mode ini sudah ada software bawaan untuk OS Windows, tapi karena sekarang menggunakan Fedora, untuk menggunakan Conservative Mode bisa menggunakan alternatif gnome extension“Battery Health Charging”.
windowscmdercmder windows terminalterminalwindows terminal
Install scoop https://scoop.sh/ Install Cmder Buka “Windows Terminal” dan “Settings” Pilih “Add a new profile” dan duplicate profile Bagian “Command Line” ubah menjadi Bagian “Icon” ubah menjadi Save
Bagi kawan-kawan yang sedang menggunakan github action untuk build docker image ke Github Registry / ghcr.io mengalami error. Issue diatas bisa diatasi dengan menambahkan permission di job github action. reference: https://stackoverflow.com/a/76610067/1936697
Show full content
Bagi kawan-kawan yang sedang menggunakan github action untuk build docker image ke Github Registry / ghcr.io mengalami error.
denied: installation not allowed to Create organization package
Issue diatas bisa diatasi dengan menambahkan permission di job github action.
Untuk kebutuhan testing dan mock data, saya biasanya menggunakan https://github.com/golang/mock. Ketika menulis test, mayoritas akan melakukan test sebuah function yang akan saya test return value nya, seperti berikut. Sedikit berbeda, kali ini saya ingin melakukan mock sebuah function, dimana hasil sebuah function akan disimpan ke parameter response seperti contoh function berikut. dan berikut cara melakukan […]
Ketika menulis test, mayoritas akan melakukan test sebuah function yang akan saya test return value nya, seperti berikut.
ctrl := gomock.NewController(t)
defer ctrl.Finish()
var mockedFunc = mocks.NewMockIService(ctrl)
// test mock function.
mockedFunc.
EXPECT().
MyFunction(context.TODO(), 100).
Return(errors.New("error"))
Sedikit berbeda, kali ini saya ingin melakukan mock sebuah function, dimana hasil sebuah function akan disimpan ke parameter response seperti contoh function berikut.
type IHTTPClient interface {
Call(method, path string, body io.Reader, response any) error
}
dan berikut cara melakukan mock testing hasil dari pointer parameter.
ctrl := gomock.NewController(t)
defer ctrl.Finish()
var mockedFunc = mocks.NewMockIService(ctrl)
// test mock function.
mockedFunc.
EXPECT().
Call("GET", "/api/tasks", gomock.Any(), gomock.Any()).
SetArg(3, []string{"tes", "result"}). // set parameter ke-4 (3 karena dimulai dari 0)
Return(nil)