2023年6月13日
今まで kubeadm でクラスター運用をしていたのですが、ラズパイくんたちのお引越しの関係で再構築することにしました。Raspberry Pi 4B 2GB や 3A+(RAM 512MB)も join させたかったこともあり、エッジ環境での動作も想定されている K3s を選びました。 ## 環境 * Raspberry Pi 4B 8GB x 2, Raspberry Pi 4B 4GB x 1, Raspberry Pi 4B 2GB x 1 * SSD ブート * PoE+ 電源
2023年5月15日
前回の記事では SQLAlchemy の Session について解説しました。今回はその応用として、Celery においてどのように Session を管理するかを考えたいと思います。 関連記事: * SQLAlchemyのセッション・トランザクションを理解する * SQLAlchemyで'MySQL server has gone away'が発生した時の対処法2つ ## 結論 以下のように DB 操作を行うタスクのためのクラスを作ります。 ```python from typing impo
2023年5月14日
SQLAlchemy の Session や scoped_session、トランザクションに関して理解していきます。 ## 用語おさらい ### セッション(Session) SQLAlchemy の Session オブジェクトは、ORM マッピングされたオブジェクトの永続化に関する操作を管理するオブジェクトです。 `sqlalchemy.orm.Session` を直接インスタンス化しても良いですが、実環境では sessionmaker を使うことが一般的です。sessionmaker は
2023年4月22日
最近、MUI の妹分の UI ライブラリである Joy-UI を使ってます。現在進行形で活発に開発が進んでいて、設計(デザイン)も今時な感じで好感触です。ところどころまだ開発されていないコンポーネントもちらほらあるものの、ドキュメントには代替策がコード付きで載っていてとても親切です。 MUI X というより発展的なコンポーネントをもつ UI ライブラリもあるのですが、そこに今回のテーマである「データテーブル」に該当する Data Grid というものがあります。これは超すごくて、雑に言うと Excel
2023年4月18日
!ぜんぜんわからない 俺たちは雰囲気でカニコをやっている 恥ずかしながら、わたしは雰囲気で kaniko にコンテナイメージのビルドをしてもらっていることに気づきました。1年以上 GitLab CI で kaniko を使っておきながら、ただ「特権コンテナを使わずにイメージつくれるやつ」くらいの認識しかしていなかったです。 続きの記事: Kanikoでcache=trueにするなら1コンテナ1ビルドで ## kaniko の cache=true オプション kaniko には `--cache`
2023年4月15日
PPPoE 回線が遅いので IPoE(IPv4 over IPv6)へ移行しようと思いました。以前は2つのルーターを使って、PPPoE と IPoE の2セッションを張ることができたのですが、ある時からできなくなり、しばらく PPPoE だけで生活していました。とはいえやはり遅い、遅すぎる……ということで、今回の記事に至ります。 IPoE に移行するにあたっての課題は**任意のポートを開放できないこと**です。 代わりの方法を考えていたところ、ちょうど手元に1台 AWS Lightsail のサーバー
2023年3月30日
2023年3月30日に Certified Kubernetes Application Developer (CKAD) を受験し、合格しましたのでその受検記録記事です。ちょうど1年前に Certified Kuberenetes Administrator (CKA) を取っていたので、その続きとなります。 前回の記事:新卒エンジニアがCKA取得を目指してKubernetesを勉強したときの記録 ## 対象読者 * Kubernetes を使っているが、資格はまだ取ってない人 * CKA を取っ
2023年3月6日
前回の記事を書くときに WebAssembly でブログのコードブロックのコードを実行させられたら面白いかも、ということで PyScript を使って実装してみました。React & Next.js で使う際の注意点についても書こうと思います。 以下については前提知識としてこの記事では解説しません。 * PyScript * Pyodide * WebAssembly * react-markdown のコードブロック(バッククォート3つ \```)をカスタマイズする方法 ## やったこと * r
2023年3月4日
Python 公式ドキュメントの unittest.mock のページにドンピシャの内容が書いてありますが、なかなか気づけずにハマってしまっていたのでメモです。 `unittest.mock.patch` でパッチしたけど当たってない気がする人は参考にしてみてください。 下記の引用に要点が凝縮されています。 > ### どこにパッチするか > > `patch()` は (一時的に) ある 名前 が参照しているオブジェクトを別のものに変更することで適用されます。任意のオブジェクトには、それを参照する
2023年3月1日
apt を使って docker や terraform をインストールする時など、提供元のサードパーティ apt リポジトリを追加する場合が結構ありますよね。その際に、今までは `apt-key` を使って OpenPGP 公開鍵をインポートしていたのですが、`apt-key` は Debian 11 と Ubuntu 22.04 を最後に使えなくなる ので、今後は `gnupg` を使った方法が主流になっていきます。 Ansible にも ansible.builtin.apt_key module