From a9886bf2f8a35369a2c42070c5f83504dfab2bc5 Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Fri, 27 Jun 2025 10:56:03 +0200 Subject: vault backup: 2025-06-27 10:56:02 --- .obsidian/daily-notes.json | 5 +- .trash/25-Jun-2025.md | 3 + .trash/Drawing 2025-04-26 13.13.29.excalidraw.md | 14 +++++ .trash/GroupVPS Platform Knowledge Base.md | 6 ++ .trash/Online trouwkaarten.md | 2 + .trash/Untitled 1.canvas | 1 + .trash/Untitled 2 2.canvas | 1 + .trash/Untitled 2.canvas | 1 + .trash/daily/04-Jun-2025.md | 6 ++ .trash/daily/06-May-2025.md | 31 +++++++++ .trash/daily/07-May-2025.md | 22 +++++++ .trash/daily/09-May-2025.md | 14 +++++ .trash/daily/10-Jun-2025.md | 20 ++++++ .trash/daily/11-Jun-2025.md | 8 +++ .trash/daily/12-May-2025.md | 11 ++++ .trash/daily/17-May-2025.md | 3 + .trash/daily/18-Jun-2025.md | 2 + .trash/daily/18-May-2025.md | 7 +++ .trash/daily/19-May-2025.md | 3 + .trash/daily/22-Jun-2025.md | 4 ++ .trash/daily/25-Jun-2025.md | 3 + .trash/daily/27-May-2025.md | 6 ++ .trash/daily/archive/01-May-2025.md | 8 +++ .trash/daily/archive/10-Apr-2025.md | 20 ++++++ .trash/daily/archive/11-Apr-2025.md | 29 +++++++++ .trash/daily/archive/14-Apr-2025.md | 24 +++++++ .trash/daily/archive/15-Apr-2025.md | 30 +++++++++ .trash/daily/archive/16-Apr-2025.md | 17 +++++ .trash/daily/archive/17-Apr-2025.md | 4 ++ .trash/daily/archive/18-Apr-2025.md | 12 ++++ .trash/daily/archive/22-Apr-2025.md | 34 ++++++++++ .trash/daily/archive/23-Apr-2025.md | 69 +++++++++++++++++++++ .trash/daily/archive/24-Apr-2025.md | 9 +++ .trash/daily/archive/25-Apr-2025.md | 19 ++++++ .trash/weekly/2025 W16.md | 9 +++ .trash/weekly/2025 W17.md | 7 +++ .trash/weekly/2025 W18.md | 1 + ...r is off I take most of his responsibilities.md | 4 ++ About keyboard layout on Wayland.md | 4 ++ BFD = Bidirectional Forwarding Detection.md | 27 ++++++++ Becoming a Senior.md | 7 ++- Benchmarking code in Golang.md | 3 + Bidirectional Forwarding Detection (BFD).md | 27 -------- Bilat 25 juni 2025.md | 25 ++++++++ Bilat 9 july 2025.md | 5 ++ Bilaterale gesprekken met Rutger.md | 2 + Buffer Protocol.md | 4 ++ Changing the volume type of a Cinder volume.md | 4 ++ Chef.md | 1 + ...e your zettelkasten by Morganeua (YT) - 2024.md | 2 + Daily.md | 3 + ...gging issues with updating Puppet dependency.md | 4 ++ Device mapper.md | 5 ++ Enable logging with Libvirt.md | 3 + .../Drawing 2025-04-26 13.13.29.excalidraw.md | 14 ----- Git.md | 0 Go Compiler.md | 7 +++ Go Packages.md | 7 +++ Go Source Files.md | 17 +++++ Go Strings.md | 5 ++ Go Tools.md | 9 +++ Golang.md | 56 ++++++++++++++++- GroupONE.md | 0 GroupVPS Migration.md | 2 + GroupVPS Platform Knowledge Base.md | 11 ---- HTTP Authentication Schemes.md | 2 + HTTP.md | 0 Hardware.md | 0 ...rly do options in a bash script with getopt!.md | 2 + ... which network nodes traffic is being routed.md | 4 ++ How to show the mysql galera cluster status.md | 4 ++ IP migration API.md | 57 +++++++++-------- Ignoring a file that is already committed.md | 4 ++ Libvirt.md | 0 Linux.md | 0 MySQL.md | 0 Notes on Sanoid usage for VPS platform.md | 2 + OVN upgrade.md | 2 + OneHome OneCRM One.com and more fun things.md | 6 ++ Online trouwkaarten.md | 2 - Pasted image 20250623162525.png | Bin 0 -> 331046 bytes Python.md | 0 Raid Controller (BBU).md | 4 ++ ... attributes are taken by last processed role.md | 5 ++ Setting traps.md | 5 +- Submodules.md | 4 ++ Systemd timer.md | 2 + Systemd.md | 3 + ...e image os admin user to fix password resets.md | 3 + ...t user@host to exit a control master session.md | 2 + Using Libvirt to manage QEMU image bitmaps.md | 4 ++ ...m discard syscalls on our openstack platform.md | 2 + Wedding Vows.md | 10 +++ Wedding.md | 0 daily/04-Jun-2025.md | 4 -- daily/06-May-2025.md | 29 --------- daily/07-May-2025.md | 20 ------ daily/09-May-2025.md | 11 ---- daily/10-Jun-2025.md | 17 ----- daily/11-Jun-2025.md | 5 -- daily/12-May-2025.md | 8 --- daily/17-May-2025.md | 30 --------- daily/18-Jun-2025.md | 1 - daily/18-May-2025.md | 12 ---- daily/19-May-2025.md | 12 ---- daily/27-May-2025.md | 3 - daily/archive/01-May-2025.md | 6 -- daily/archive/10-Apr-2025.md | 18 ------ daily/archive/11-Apr-2025.md | 27 -------- daily/archive/14-Apr-2025.md | 22 ------- daily/archive/15-Apr-2025.md | 28 --------- daily/archive/16-Apr-2025.md | 15 ----- daily/archive/17-Apr-2025.md | 2 - daily/archive/18-Apr-2025.md | 10 --- daily/archive/22-Apr-2025.md | 32 ---------- daily/archive/23-Apr-2025.md | 68 -------------------- daily/archive/24-Apr-2025.md | 7 --- daily/archive/25-Apr-2025.md | 17 ----- weekly/2025 W16.md | 16 ----- weekly/2025 W17.md | 14 ----- weekly/2025 W18.md | 3 - 121 files changed, 762 insertions(+), 527 deletions(-) create mode 100644 .trash/25-Jun-2025.md create mode 100644 .trash/Drawing 2025-04-26 13.13.29.excalidraw.md create mode 100644 .trash/GroupVPS Platform Knowledge Base.md create mode 100644 .trash/Online trouwkaarten.md create mode 100644 .trash/Untitled 1.canvas create mode 100644 .trash/Untitled 2 2.canvas create mode 100644 .trash/Untitled 2.canvas create mode 100644 .trash/daily/04-Jun-2025.md create mode 100644 .trash/daily/06-May-2025.md create mode 100644 .trash/daily/07-May-2025.md create mode 100644 .trash/daily/09-May-2025.md create mode 100644 .trash/daily/10-Jun-2025.md create mode 100644 .trash/daily/11-Jun-2025.md create mode 100644 .trash/daily/12-May-2025.md create mode 100644 .trash/daily/17-May-2025.md create mode 100644 .trash/daily/18-Jun-2025.md create mode 100644 .trash/daily/18-May-2025.md create mode 100644 .trash/daily/19-May-2025.md create mode 100644 .trash/daily/22-Jun-2025.md create mode 100644 .trash/daily/25-Jun-2025.md create mode 100644 .trash/daily/27-May-2025.md create mode 100644 .trash/daily/archive/01-May-2025.md create mode 100644 .trash/daily/archive/10-Apr-2025.md create mode 100644 .trash/daily/archive/11-Apr-2025.md create mode 100644 .trash/daily/archive/14-Apr-2025.md create mode 100644 .trash/daily/archive/15-Apr-2025.md create mode 100644 .trash/daily/archive/16-Apr-2025.md create mode 100644 .trash/daily/archive/17-Apr-2025.md create mode 100644 .trash/daily/archive/18-Apr-2025.md create mode 100644 .trash/daily/archive/22-Apr-2025.md create mode 100644 .trash/daily/archive/23-Apr-2025.md create mode 100644 .trash/daily/archive/24-Apr-2025.md create mode 100644 .trash/daily/archive/25-Apr-2025.md create mode 100644 .trash/weekly/2025 W16.md create mode 100644 .trash/weekly/2025 W17.md create mode 100644 .trash/weekly/2025 W18.md create mode 100644 BFD = Bidirectional Forwarding Detection.md delete mode 100644 Bidirectional Forwarding Detection (BFD).md create mode 100644 Bilat 25 juni 2025.md create mode 100644 Bilat 9 july 2025.md create mode 100644 Bilaterale gesprekken met Rutger.md create mode 100644 Chef.md create mode 100644 Daily.md delete mode 100644 Excalidraw/Drawing 2025-04-26 13.13.29.excalidraw.md create mode 100644 Git.md create mode 100644 Go Compiler.md create mode 100644 Go Packages.md create mode 100644 Go Source Files.md create mode 100644 Go Strings.md create mode 100644 Go Tools.md create mode 100644 GroupONE.md create mode 100644 GroupVPS Migration.md delete mode 100644 GroupVPS Platform Knowledge Base.md create mode 100644 HTTP.md create mode 100644 Hardware.md create mode 100644 Libvirt.md create mode 100644 Linux.md create mode 100644 MySQL.md create mode 100644 Notes on Sanoid usage for VPS platform.md create mode 100644 OneHome OneCRM One.com and more fun things.md delete mode 100644 Online trouwkaarten.md create mode 100644 Pasted image 20250623162525.png create mode 100644 Python.md create mode 100644 Recipes run only once and the attributes are taken by last processed role.md create mode 100644 Systemd.md create mode 100644 Wedding Vows.md create mode 100644 Wedding.md delete mode 100644 daily/04-Jun-2025.md delete mode 100644 daily/06-May-2025.md delete mode 100644 daily/07-May-2025.md delete mode 100644 daily/09-May-2025.md delete mode 100644 daily/10-Jun-2025.md delete mode 100644 daily/11-Jun-2025.md delete mode 100644 daily/12-May-2025.md delete mode 100644 daily/17-May-2025.md delete mode 100644 daily/18-Jun-2025.md delete mode 100644 daily/18-May-2025.md delete mode 100644 daily/19-May-2025.md delete mode 100644 daily/27-May-2025.md delete mode 100644 daily/archive/01-May-2025.md delete mode 100644 daily/archive/10-Apr-2025.md delete mode 100644 daily/archive/11-Apr-2025.md delete mode 100644 daily/archive/14-Apr-2025.md delete mode 100644 daily/archive/15-Apr-2025.md delete mode 100644 daily/archive/16-Apr-2025.md delete mode 100644 daily/archive/17-Apr-2025.md delete mode 100644 daily/archive/18-Apr-2025.md delete mode 100644 daily/archive/22-Apr-2025.md delete mode 100644 daily/archive/23-Apr-2025.md delete mode 100644 daily/archive/24-Apr-2025.md delete mode 100644 daily/archive/25-Apr-2025.md delete mode 100644 weekly/2025 W16.md delete mode 100644 weekly/2025 W17.md delete mode 100644 weekly/2025 W18.md diff --git a/.obsidian/daily-notes.json b/.obsidian/daily-notes.json index 3efcc00..b3c77c1 100644 --- a/.obsidian/daily-notes.json +++ b/.obsidian/daily-notes.json @@ -1,4 +1,5 @@ { - "folder": "/daily", - "format": "DD-MMM-Y" + "folder": "/", + "format": "DD-MMM-Y", + "template": "Daily" } \ No newline at end of file diff --git a/.trash/25-Jun-2025.md b/.trash/25-Jun-2025.md new file mode 100644 index 0000000..7899646 --- /dev/null +++ b/.trash/25-Jun-2025.md @@ -0,0 +1,3 @@ +[[Daily]] + +--- diff --git a/.trash/Drawing 2025-04-26 13.13.29.excalidraw.md b/.trash/Drawing 2025-04-26 13.13.29.excalidraw.md new file mode 100644 index 0000000..63fb76c --- /dev/null +++ b/.trash/Drawing 2025-04-26 13.13.29.excalidraw.md @@ -0,0 +1,14 @@ +--- + +excalidraw-plugin: parsed +tags: [excalidraw] + +--- +==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' + + +## Drawing +```compressed-json +N4IgLgngDgpiBcIYA8DGBDANgSwCYCd0B3EAGhADcZ8BnbAewDsEAmcm+gV31TkQAswYKDXgB6MQHNsYfpwBGAOlT0AtmIBeNCtlQbs6RmPry6uA4wC0KDDgLFLUTJ2lH8MTDHQ0YNMWHRJMRZFAE5FFjIkT1UYRjAaBABtAF1ydCgoAGUAsD5QSXw8LOwNPkZOTExyHRgiACF0VABrQq5GXABhekx6fAQQAGIAM1GxkABfCaA== +``` +%% \ No newline at end of file diff --git a/.trash/GroupVPS Platform Knowledge Base.md b/.trash/GroupVPS Platform Knowledge Base.md new file mode 100644 index 0000000..51e8561 --- /dev/null +++ b/.trash/GroupVPS Platform Knowledge Base.md @@ -0,0 +1,6 @@ +--- +tags: + - work + - groupvps +--- + diff --git a/.trash/Online trouwkaarten.md b/.trash/Online trouwkaarten.md new file mode 100644 index 0000000..99b88eb --- /dev/null +++ b/.trash/Online trouwkaarten.md @@ -0,0 +1,2 @@ +basic invitation: with standard rsvp, 5 photo's +premium invitation: advanced rsvp (dietary wishes, specify food being served), 20 photo's \ No newline at end of file diff --git a/.trash/Untitled 1.canvas b/.trash/Untitled 1.canvas new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.trash/Untitled 1.canvas @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.trash/Untitled 2 2.canvas b/.trash/Untitled 2 2.canvas new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.trash/Untitled 2 2.canvas @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.trash/Untitled 2.canvas b/.trash/Untitled 2.canvas new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/.trash/Untitled 2.canvas @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/.trash/daily/04-Jun-2025.md b/.trash/daily/04-Jun-2025.md new file mode 100644 index 0000000..49d99df --- /dev/null +++ b/.trash/daily/04-Jun-2025.md @@ -0,0 +1,6 @@ +[[Daily]] + +**Occurrences** +Trying to install goba/gobs in the global venv of devstack. Had to relax the requirements of dependencies; thus dependencies being newer than tested with. This is suboptimal because now our environment is different from our prod.. + +In a more recent version of sqlalchemy they mask the password in engine.url by default (opposite to not masking it before): this caused a connection error during db sync. I remembered I ran into this before when looking at nova's db sync code and saw the `engine.url.render_as_string(hide_password=False)`. Updated our code with this fixed the issue \ No newline at end of file diff --git a/.trash/daily/06-May-2025.md b/.trash/daily/06-May-2025.md new file mode 100644 index 0000000..a560729 --- /dev/null +++ b/.trash/daily/06-May-2025.md @@ -0,0 +1,31 @@ +[[Daily]] + +Checklist for maintenance OVN upgrade- [ ] Make +- [x] xping all public router ips +- [x] Open Grafana dashboard for OVN leaders +- [x] Open Grafana dashboard for network metrics +- [x] xping one vm on every compute node +- [x] check ovn cluster status +- [x] make sure ansible inventory covers all compute nodes +- [x] make sure ansible inventory covers all network nodes +- [x] make sure ansible inventory covers all ovn cluster database nodes +- [x] Make sure network nodes are reboot proof +- [x] Check ansible netconf for reboot proofness as well +- [x] Check puppet status on all network nodes + + +Xping: window 3 +Ansible playbook: window 4 +OVN db cluster nodes: window 4 +Neutron server tail: window 5 + + +Note +- Moet ff iets slimmers om te xpingen. Freenet veelste veel pub router ips; liefst gwn 1 of ip per netwerk en compute node. + - Query OVN? +- Ff proberen vast te leggen hoe we OVN databases automatisch kunnen checken op compleet up zijn, ipv arbitrair wachten en zelf kijken. +- OVN upgrade 1: ongeveer om 2 uur begonnen, dingen recoveren volledig vanaf mijn POV: 2:09 + - OVN db upgrade stap wacht: check -> lijkt allemaal goed, cluster status OK + - eerste ovn-controller upgrade (n01) -> shit blijft down hoe lang ik ook lijk te wachten: br-int connection timeout + - Besloten om toch gewoon proberen door te duwen + - Zodra ik continue met de volgende lijkt eigenlijk meteen br-int te connecten (toeval?) en gaan dingen recoveren \ No newline at end of file diff --git a/.trash/daily/07-May-2025.md b/.trash/daily/07-May-2025.md new file mode 100644 index 0000000..0070db5 --- /dev/null +++ b/.trash/daily/07-May-2025.md @@ -0,0 +1,22 @@ +[[Daily]] + +Werk aan ZFS backup goba met Mohammed. Mohammed was paar dagen sidetracked met devstack opzetten. Had eigenlijk gehoopt dat hij met een plan van aanpak betreffende implementatie zou komen (daar had ik op gehint vrijdag (of donderdag al?)).. Nu afgesproken dat hij dit gaat maken. Om 15:00 doen we een meet om het door te spreken. + +Rutger hint ernaar dat wij een business service gaan opzetten die producten voor de group op openstack oplevert. +# Non-functional requirements: +Technical constraints: +- Python +- Connexion +- Venv deployed (no apt for dependency hell) +- End to end tests +- Unit tests + +Requirements: +* Retrieving data should always be fast, correctness is less important +* Creating new resources should always be validated properly, doesn't have to be fast as long as its correct. +* Reliable + * Creating or updating resources should be atomic +# Functional requirements: +- Authentication: the system requires users to be authenticated before being able to use its APIs. +- Eventually consistent: it must not be that if a requested resource fails to create that another request has to be made. The creation of a resource is guaranteed. +- Validation: a request must be strictly validated in order to ensure correctness, as soon as a request passes validation we must ensure it is fulfilled. \ No newline at end of file diff --git a/.trash/daily/09-May-2025.md b/.trash/daily/09-May-2025.md new file mode 100644 index 0000000..0fba0ef --- /dev/null +++ b/.trash/daily/09-May-2025.md @@ -0,0 +1,14 @@ +[[Daily]] + + +Again diskspace issues on the testpod. notifications.sample queue was very large (24G). Threw away huge directory containing quorum Q data. +Threw away all mysql backups. +Rebooted lxchost1 tesptod. +Noticed ceilometer also had huge logs. +Purged notifications.info queue as I saw alot of spam in ceilometer-agent-notification.log on ceilometer node about duplicate messages. +Also noticed unread messages in cinder-volume queue. +It shows INTERNAL_ERRORs and failure to connect with rabbitmq. +Stopped the cinder-volume service. +Purged cinder-volume queue. +Started ceilometer-agent-notification +Right away seeing the same INTERNAL_ERROR messages as on cinder before. \ No newline at end of file diff --git a/.trash/daily/10-Jun-2025.md b/.trash/daily/10-Jun-2025.md new file mode 100644 index 0000000..e48f782 --- /dev/null +++ b/.trash/daily/10-Jun-2025.md @@ -0,0 +1,20 @@ +[[Daily]] + + +Performance review + +Beter tijdsinschatting geven. + +Work environment +Feedback: nicest person + +quality of work + +beter estimaten + +Doel: LPIC. + + +--- + +OVN loadbalancer health check. OVN nb: `nbctl show load_balancer_health_check` \ No newline at end of file diff --git a/.trash/daily/11-Jun-2025.md b/.trash/daily/11-Jun-2025.md new file mode 100644 index 0000000..edb7131 --- /dev/null +++ b/.trash/daily/11-Jun-2025.md @@ -0,0 +1,8 @@ +[[Daily]] + + +access to openstack, marcus ripkens. +marcus: cloud-init scripts to setup vms, loadbalancers, 2 dedicated personen, dns migration (yves geen vertrouwen axfr, geen insight in wat wel/niet goed synced is) +bare metal -> 10 vm's, lb needs update: domain -> new ip. +500K+ customers. +Yves overtuigen dat MHC team de proxies moet beheren indien permanent oplossing./ \ No newline at end of file diff --git a/.trash/daily/12-May-2025.md b/.trash/daily/12-May-2025.md new file mode 100644 index 0000000..c6880ab --- /dev/null +++ b/.trash/daily/12-May-2025.md @@ -0,0 +1,11 @@ +[[Daily]] + + +Webglobe migration strategy + +Minimum assistance from us? + +They have a script that incrementally moves data. +Existing to proxmox, modified to move it to virtually anything. + +Ansible, create infra. diff --git a/.trash/daily/17-May-2025.md b/.trash/daily/17-May-2025.md new file mode 100644 index 0000000..e728ec6 --- /dev/null +++ b/.trash/daily/17-May-2025.md @@ -0,0 +1,3 @@ +[[Daily]] + +# Notes on go diff --git a/.trash/daily/18-Jun-2025.md b/.trash/daily/18-Jun-2025.md new file mode 100644 index 0000000..2e8bd2c --- /dev/null +++ b/.trash/daily/18-Jun-2025.md @@ -0,0 +1,2 @@ +[[Daily]] + diff --git a/.trash/daily/18-May-2025.md b/.trash/daily/18-May-2025.md new file mode 100644 index 0000000..3fa1789 --- /dev/null +++ b/.trash/daily/18-May-2025.md @@ -0,0 +1,7 @@ +[[Daily]] + +Some programming problems or programs to make for practicing: +- Echo stdin +- Find duplicate lines on stdin or files passed as arguments. Operating on a stream, or slurp all input and do it at once. + +# Further notes on Go diff --git a/.trash/daily/19-May-2025.md b/.trash/daily/19-May-2025.md new file mode 100644 index 0000000..9135451 --- /dev/null +++ b/.trash/daily/19-May-2025.md @@ -0,0 +1,3 @@ +[[Daily]] + +# Another note on Go diff --git a/.trash/daily/22-Jun-2025.md b/.trash/daily/22-Jun-2025.md new file mode 100644 index 0000000..a34f3c4 --- /dev/null +++ b/.trash/daily/22-Jun-2025.md @@ -0,0 +1,4 @@ +[[Daily]] +## Wedding Vows + + diff --git a/.trash/daily/25-Jun-2025.md b/.trash/daily/25-Jun-2025.md new file mode 100644 index 0000000..aaf8ba3 --- /dev/null +++ b/.trash/daily/25-Jun-2025.md @@ -0,0 +1,3 @@ +**they don't delete volumes** +case cant cover: +redeployment -> reset, crm identifer. \ No newline at end of file diff --git a/.trash/daily/27-May-2025.md b/.trash/daily/27-May-2025.md new file mode 100644 index 0000000..5a271be --- /dev/null +++ b/.trash/daily/27-May-2025.md @@ -0,0 +1,6 @@ +[[Daily]] + + +Decided that devenv is too invasive for use at work; I can't commit its .envrc nor .pre-commit-config.yaml. Therefore I'm setting up just regular shell.nix usage. I quickly ran into an issue where the nix shell is using bash and found a tool called Lorri which promises to be useful for developer environments with shell.nix. Let's hope that is less invasive than devenv. +Thus far it's not very nice, it install stuff on the background ( a systemd daemon that listens for change ) of which you have no idea when its done. + diff --git a/.trash/daily/archive/01-May-2025.md b/.trash/daily/archive/01-May-2025.md new file mode 100644 index 0000000..05bd76c --- /dev/null +++ b/.trash/daily/archive/01-May-2025.md @@ -0,0 +1,8 @@ +[[Daily]] + +# Manila +Share network +Cinder + +**dhss = driver_handles_share_server** +Means that Manilla creates a share server, requiring a share network and a service image. \ No newline at end of file diff --git a/.trash/daily/archive/10-Apr-2025.md b/.trash/daily/archive/10-Apr-2025.md new file mode 100644 index 0000000..71ef3c7 --- /dev/null +++ b/.trash/daily/archive/10-Apr-2025.md @@ -0,0 +1,20 @@ +--- +tags: + - self + - reflection +--- +[[Daily]] + +### I assumed that Mohammed made an oopsie but instead it turned out to be one of us that forgot to clean up. +Today I found out that on the testpod the user sanoid's ssh keys suddenly belonged to Mohammeds' user. I right away went to his chat with the idea that he did something silly probably and even told him that it made me a bit worried. + +I also went to Rutger, who immediately pointed out that it is probably due to us changing the uid of sanoids' user. Which turned out to be true. + +I ask myself the following: why am I quick to jump to a conclusion like "Ah, mohammed might've caused damage by accidentally chowning to much or something like that." +How can I stop myself from that? +I think one way is to ALWAYS force myself to investigate completely, not right away talking about it with others. Keep it to myself, until I really MUST communicate about it. + + +#### Erik doesn't show up at the office for Carlos even though he said that he would be there on Thursday +This kind of triggers a feeling that Erik has a bit of a lax attitude, which often was associated with ops back in the day as well. +He is the designated mentor but I feel he doesn't prepare it well and just "goes with the flow" too much. \ No newline at end of file diff --git a/.trash/daily/archive/11-Apr-2025.md b/.trash/daily/archive/11-Apr-2025.md new file mode 100644 index 0000000..5b80457 --- /dev/null +++ b/.trash/daily/archive/11-Apr-2025.md @@ -0,0 +1,29 @@ +--- +tags: + - weekly +--- +[[Daily]] + +This week: +- [[10-Apr-2025]] + +Today marks another Friday, almost weekend, woohoo. + +This week few notable things happened. + +First of all I finally have restored a Ceph backed volume successfully! The issue was actually kind of silly, I forgot to close the read end of a pipe, thus it kept blocking. Luckily I found it, and fixing it was rather trivial. +After that I refactored a bit, to make it little bit better (still not great), and deployed. +I also fixed the request ID logging that was broken for a while, during refactoring of the agent RPC handler I accidentally moved the ctx.update_store outside of the child thread, so the update was useless. Moving it back into the child thread gave back our precious request ids. +Oh and I also found the cause of some sporadic mysql "object belongs to a different session" issue in the backup service that was haunting me. This happened due the Unit Of Work being instantiated only during application startup, specifically for the RPC handler, and then every RPC request used that same UOW. +Because the UOW creates a new session everytime it wasn't completely broken, but occasionally two RPC calls could come in at the same time and then the latter would override the session of the first. +I fixed this by instantiating a UOW per request, this also happens in the API, and is actually the correct way of using it. + +Then I have kicked off the [[List of tags I use in this Vault and their purpose]] note, which contains a list of tags I use within this vault so I don't forget. +As with the current note i'm writing I added the new "weekly" tag to indicate that this "daily" note is actually a week report which I want to write every friday from now on. + +Just had a little brainfart writing the above.. Is it too long? I plan to use these weekly notes to introspect during self assessments, but of course they shouldn't be too tedious to go through... Hmm, well, I guess we'll have to actually **use** it before deciding that. + +I think it will be good practice to link to the current weeks' notes in this weekly note as well so.. see the top :) I probably should put more stuff into daily notes, and then make this a bit of a TLDR. + +I have also been doing some thinking and note taking about [[TDD]] because I feel kind of bad about the current state of the backup service & agent (no tests). We've been looking at [[OpenStack Tempest]] for a bit which is interesting, but I would also like to just create better and more unit tests, especially during development. [[High Gear Low Gear Testing]] was a phrase from the cosmic python book that particularly seemed to resonate with me, but I haven't yet been able to practice it. + diff --git a/.trash/daily/archive/14-Apr-2025.md b/.trash/daily/archive/14-Apr-2025.md new file mode 100644 index 0000000..998526f --- /dev/null +++ b/.trash/daily/archive/14-Apr-2025.md @@ -0,0 +1,24 @@ +[[Daily]] + +Monday! + +# Standup +OnFailure handlers installeren voor rename script ZFS datasets op backup nodes. +Survey invullen +Puppetrun failed nalopen +Uitzoeken waarom de F QEMU GA sporadisch faalt +- Dit had geloof ik iets te maken met QEMU crash ? Ff dubbel checken, heb er ergens een note van denk ik. +# QA with Webglobe team +Q: Virtual buses, volumes, suggested virtio. Can we do iSCSI instead of VirtIO because we do discards? +A: We don't support discard. NetAPP implements by sending nul bytes. -> increase IO +^ i wouldn't know this + +Q: Can we install from CD? +R: yes, possible. create image, props, iso boot, boot vm rescue from image. +J: documented? +R: Will find dgoc for onehome + +Q: IP addresses, do we really need to let OS handle the allocation? +A: OpenStack does this out of the box; used as single source of tru. +J: Finds reason acceptable; will rewrite.th + diff --git a/.trash/daily/archive/15-Apr-2025.md b/.trash/daily/archive/15-Apr-2025.md new file mode 100644 index 0000000..8b3a3e4 --- /dev/null +++ b/.trash/daily/archive/15-Apr-2025.md @@ -0,0 +1,30 @@ +[[Daily]] + +**Interview Ali** + +Q: +Waarom ga je weg bij Leaseplan? +Over openstack deployment: hoe geautomatiseerd; welke tools? + +> Implemented virtual staging clusters mirroring the production architecture using KVM, libvirt, Linux bridge/virtual interfaces, and iptables, reducing setup time by 90% while significantly optimizing costs. + +Did you directly integrate to KVM/Libvirt, can you tell a bit about that? + +A: +php/wordpress dev +exp with cpanel and such +then switch devops + + ++1 kolla ansible / openstack ++1 cpanel/hosting +-1 geen puppet ervaring ++1 ovn ervaring; meest voorname probleem is met ovs/ovn + +beetje rare sidetrack config mgmt ansible vs puppet; maakt punt over consistency + +Q: regular day +Q: expectations + +In amsterdam +Avail: 1 june \ No newline at end of file diff --git a/.trash/daily/archive/16-Apr-2025.md b/.trash/daily/archive/16-Apr-2025.md new file mode 100644 index 0000000..591f700 --- /dev/null +++ b/.trash/daily/archive/16-Apr-2025.md @@ -0,0 +1,17 @@ +[[Daily]] + +1op1 rutger: niet echt iets besproken. + +***Interview Prep Isabel*** +*Do you live in Amsterdam? If yes, how long? plans to stay?* + +*Very shortly worked for ING (2025 january until now). What happened?* + +*At Civir you mention "deployent & administration of cloud technologies" including openstack, does this mean you deplmoyed an openstack cloud or were you a user of an openstack deployment?* + + +*You mention "24/7 support for troubleshooting issues" on multiple positions. What kind of issues?* + +***Isabel Q to us*** + +**Isabel kwam niet opdagen** \ No newline at end of file diff --git a/.trash/daily/archive/17-Apr-2025.md b/.trash/daily/archive/17-Apr-2025.md new file mode 100644 index 0000000..be3f6cb --- /dev/null +++ b/.trash/daily/archive/17-Apr-2025.md @@ -0,0 +1,4 @@ +[[Daily]] + +`puppet-neutron` gemerged; gezeik met updaten dependency, uiteindelijk commit hash in lock geupdate. Zie [[Debugging issues with updating Puppet dependency]]. + diff --git a/.trash/daily/archive/18-Apr-2025.md b/.trash/daily/archive/18-Apr-2025.md new file mode 100644 index 0000000..1b93076 --- /dev/null +++ b/.trash/daily/archive/18-Apr-2025.md @@ -0,0 +1,12 @@ +--- +tags: [] +--- +[[Daily]] + +# Today +Encountered oom on lxchosts. Turned out that octavia wsgi was using huge amounts of ram. +First we disabled the apache on all octavia to prevent more oom kills. +After that Erik limited their allowed memory usage, and we turned them back on. +Found out that we can see what script is ran by apache in the vhost config. Turned out to be some CGI script. +To profile the memory usage I stopped apache and ran a memory profiler directly against the cgi script, I had to stop the LB from using TLS but apart from that it worked smoothly. +We now have a flamegraph of the memory usage, and it looks like it is something to do with ovs. \ No newline at end of file diff --git a/.trash/daily/archive/22-Apr-2025.md b/.trash/daily/archive/22-Apr-2025.md new file mode 100644 index 0000000..6ba73ae --- /dev/null +++ b/.trash/daily/archive/22-Apr-2025.md @@ -0,0 +1,34 @@ +[[Daily]] + +octavia ovn provider memory leak; found [bug report](https://bugs.launchpad.net/neutron/+bug/2065460) which looks very promising. Trying to patch the driver with this patchset to see if we can fix it. + + +# Interview Ali met Erik +Maand opzegtermijn, geen haast. + +Noemt control plane services +- keystone users projects +werkt voor leaseplan, reason layoff + +migratie workflow: +- legacy cluster + +Live migration, ceph shared, kan geen manier vinden om storage zonder intermediate host te migreren. + +Knows how live migration work. + +Explanation OpenStack, trace server create call: +- keystone, service catalog, token +- nova api, nova scheduler, nova conductor + - doesnt know individual, whole schedules server + - nova libvirt talks libvirt, creates vm + - host aggregates mentioned + flavor extra specs + - vm calls metadata @ 169.169... mentioned + - cloud-init +- nova wants port -> rabbit -> neutron +- neutron api, ovn controller + - ovn northd, nb, sb + - neutron ml2 plugin translates neutron to ovn nb + - northd translates nb to sb + - ovn controller reads sb and translate to ovs on compute +- glance image \ No newline at end of file diff --git a/.trash/daily/archive/23-Apr-2025.md b/.trash/daily/archive/23-Apr-2025.md new file mode 100644 index 0000000..00e741e --- /dev/null +++ b/.trash/daily/archive/23-Apr-2025.md @@ -0,0 +1,69 @@ +[[Daily]] + +# Interview Isabel +devops engineer 7yrs + +Provides maintainance os cloud + +exp with openstack: + - deploying new compute + - maintaining + - remember rabbitmq incident: queueing + - not used puppet + - ansible +exp with openstack: + - deploying new compute + - maintaining + - remember rabbitmq incident: queueing + - not used puppet + - ansible +#### Our questions +How are you in programming? +- Really like it, create many tools +- Python / ansible deploy infra automated instead of manually + - *Realised manual labor and automated it* + +How do you feel about going more into a development role? +- that's what im looking for, prefer to be making. + +Linux or windows experience? +- check fs +- processes +- administrative +- k8s many scripts + +How would you solve a problem where a VM is not starting? +- Check nova compute for error +- If ceilometer/logging check that +- Try with nova-compute to restart if down +- Reload instance (?) + +Have you ever had to go into openstack DBs? +- Not really, +- Do have SQL knowledge + +Do you know how to work with git? +- yes, branch system current job + +**Why are you leaving your current position?** +reason: different tech than banks +same company HCL as in spain, change contract + + +*Deployment, maintenance, and administration of cloud technologies +VMware, Azure, Openstack.* +**Does this mean workloads running on said clouds? Or does this also apply to managing infrastructure such as openstack?** + +*Bash scripting for Linux server automation.* **What sort of automation?** + +*Plan and execute migrations and patching from on-premises infrastructure +to ING Private cloud (IPC)* **Can you talk more about what kind of migrations** + +#### Isabel questions to us + +What does the usage of openstack look like from customer perspective? +- different kinds (brands, direct access) +Own DC? yes +Are you expecting me to create new components, or maintain? +- maintain, puppet etc, + diff --git a/.trash/daily/archive/24-Apr-2025.md b/.trash/daily/archive/24-Apr-2025.md new file mode 100644 index 0000000..d15f8e4 --- /dev/null +++ b/.trash/daily/archive/24-Apr-2025.md @@ -0,0 +1,9 @@ +[[Daily]] + +Ceilometer thaw/freeze gecheckt: linear vs unordered flow. Geen metrics testpod -> prod deploy + +Octavia / system test cph8 onderzocht: kon netwerk niet vinden in ovn. Restart resolved issue. + +OVN database cluster aanmerken in ansible ipv alle netwerk nodes zien als database hosts. Testen op testpod. + +Lijst controleren van backup contracten vs gobs. 170 active contracten vs 191 periodic backups waarvan er 44 disabled. \ No newline at end of file diff --git a/.trash/daily/archive/25-Apr-2025.md b/.trash/daily/archive/25-Apr-2025.md new file mode 100644 index 0000000..9a00665 --- /dev/null +++ b/.trash/daily/archive/25-Apr-2025.md @@ -0,0 +1,19 @@ +[[Daily]] + +Gobs OSC plugin pagination +Deploy goba with ceilometer thaw/freeze to prod + +# Tech interview Isabel +Intro +- [ ] What we will do: some questions then workshop +- [ ] Erik intro +- [ ] Isabel intro + +Questions: +- [ ] What is your experience with `git`, are you comfortable with it? +- [ ] Can you expand a little bit on your programming experiences, what are some examples of projects that you worked on? +- [ ] What did you do with Ansible? +- [ ] Can you talk a little about openstack, what is it and what are the most core components? +- [ ] Workshop + +Isabel questions: diff --git a/.trash/weekly/2025 W16.md b/.trash/weekly/2025 W16.md new file mode 100644 index 0000000..4e55703 --- /dev/null +++ b/.trash/weekly/2025 W16.md @@ -0,0 +1,9 @@ +QA with Webglobe team, who are developing another control panel. Was short. Happy that Rutger was there, they asked some question that I wouldn't be able to answer easily. Which means there is a gap in my knowledge. I added a note about this in my kast. + +We did an interview with Ali. Ali has prior OpenStack experience and seems like a chill guy. We'll have a technical interview at the office on Tuesday. Looking forward to it! + +On Wednesday we were supposed to have an interview with Isabel who couldn't make it. Haven't heard yet if she will meet with us another time. + +Fixed nexthop/gateway in Puppet neutron. Learnt that updating Puppet dependencies in the normal way is nearly impossible. Simply slapped the commit hash in the lock file instead. + +Encountered OOM situation due to Octavia. Learned a little bit about memory profiling. Not yet found the actual cause sadly. \ No newline at end of file diff --git a/.trash/weekly/2025 W17.md b/.trash/weekly/2025 W17.md new file mode 100644 index 0000000..96119f3 --- /dev/null +++ b/.trash/weekly/2025 W17.md @@ -0,0 +1,7 @@ +Did some minor chores and bug fixes. +Prepared for OVN upgrade next week. I'm rather anxious about that. +The team also resolved long-standing issues with OVN in CPH8. We made sure all the configs are up-to-date and the cluster members are n01's in vps1/2/3, as we do in other regions. Hopefully this makes the upgrade go well. + +We conducted more interviews as well. The second (technical) interview with Ali. It went well and we want to make him an offer. +Then we had a first interview with Isabel which was also nice, we figured that she could join instead of Carlos whom we had to let go. +Sadly the second interview that Friday she didn't show up - for the second time. So we'll pass. \ No newline at end of file diff --git a/.trash/weekly/2025 W18.md b/.trash/weekly/2025 W18.md new file mode 100644 index 0000000..3dcfe05 --- /dev/null +++ b/.trash/weekly/2025 W18.md @@ -0,0 +1 @@ +Besides the OVN upgrades we didn't do very much interesting here because being cooked from the nightwork. \ No newline at end of file diff --git a/A reason for becoming senior is that when Rutger is off I take most of his responsibilities.md b/A reason for becoming senior is that when Rutger is off I take most of his responsibilities.md index d76b919..c4cd784 100644 --- a/A reason for becoming senior is that when Rutger is off I take most of his responsibilities.md +++ b/A reason for becoming senior is that when Rutger is off I take most of his responsibilities.md @@ -3,4 +3,8 @@ tags: - work - role --- +[[Bilaterale gesprekken met Rutger]] + +--- + Whenever Rutger has vacation most people he interacts with go to me. That feels a bit weird being the "medior" in our team that also has a "senior". \ No newline at end of file diff --git a/About keyboard layout on Wayland.md b/About keyboard layout on Wayland.md index b4e8550..848781e 100644 --- a/About keyboard layout on Wayland.md +++ b/About keyboard layout on Wayland.md @@ -4,6 +4,10 @@ tags: - hyprland - keyboard --- +[[Linux]] + +--- + In Wayland the keyboard layout is managed by the compositor. In my case that is currently Hyprland. To find variants: diff --git a/BFD = Bidirectional Forwarding Detection.md b/BFD = Bidirectional Forwarding Detection.md new file mode 100644 index 0000000..de1ffe7 --- /dev/null +++ b/BFD = Bidirectional Forwarding Detection.md @@ -0,0 +1,27 @@ +--- +tags: + - network +rfc: https://datatracker.ietf.org/doc/html/rfc5880 +--- +Used to detect faults in any component that is connecting two endpoint; e.g the forwarding engine, link or port. + +It is low-overhead and fast. + +A session is established between two nodes through a three-way handshake. + +It is transport agnostic, thus it can be used over raw ethernet or tunnels, etc. + +Two modes: asynchronous and on-demand. + +**Async**: each peer periodically sends packet; if x time no packets received link is declared down. +**On-demand**: an out-of-band system is expected to do this detection, but BFD can choose to verify whenever it feels like it and sends some array of packets and expecting some in return. + +It is important to note that in async mode each peer sends packets in one direction and doesn't expect a reply to those. In on-demand mode one peer sends packets and **does** expect packets in return. + +> A function exists called "Echo function" that does make it so packets are looped back to the sender. If any of those don't return the link is declared down. + +- Pure Async without echo: less packets than with echo. +- With echo: possibly faster detection, less jitter, more packets +- On-demand: if there are alot of links, thus alot of BFD sessions and the overhead is too big + +> On-demand cannot work if the round-trip time is larger than the desired detection time \ No newline at end of file diff --git a/Becoming a Senior.md b/Becoming a Senior.md index 64ab969..536cb51 100644 --- a/Becoming a Senior.md +++ b/Becoming a Senior.md @@ -3,6 +3,9 @@ tags: - work - role --- -This year I indicated that I would like to become senior. At the time Rutger gave a few reasons, mainly that my architectural skills are still lacking due to me going my own way during the development of gobs, making some (to Rutger) less than ideal decisions about API design and such. - +[[Bilaterale gesprekken met Rutger]] [[A reason for becoming senior is that when Rutger is off I take most of his responsibilities]] + +--- + +This year I indicated that I would like to become senior. At the time Rutger gave a few reasons, mainly that my architectural skills are still lacking due to me going my own way during the development of gobs, making some (to Rutger) less than ideal decisions about API design and such. \ No newline at end of file diff --git a/Benchmarking code in Golang.md b/Benchmarking code in Golang.md index 9bf9cfd..e99f31a 100644 --- a/Benchmarking code in Golang.md +++ b/Benchmarking code in Golang.md @@ -2,6 +2,9 @@ tags: - golang - howto +--- +[[Golang]] + --- Simple timing can be done using the time package. ``` diff --git a/Bidirectional Forwarding Detection (BFD).md b/Bidirectional Forwarding Detection (BFD).md deleted file mode 100644 index de1ffe7..0000000 --- a/Bidirectional Forwarding Detection (BFD).md +++ /dev/null @@ -1,27 +0,0 @@ ---- -tags: - - network -rfc: https://datatracker.ietf.org/doc/html/rfc5880 ---- -Used to detect faults in any component that is connecting two endpoint; e.g the forwarding engine, link or port. - -It is low-overhead and fast. - -A session is established between two nodes through a three-way handshake. - -It is transport agnostic, thus it can be used over raw ethernet or tunnels, etc. - -Two modes: asynchronous and on-demand. - -**Async**: each peer periodically sends packet; if x time no packets received link is declared down. -**On-demand**: an out-of-band system is expected to do this detection, but BFD can choose to verify whenever it feels like it and sends some array of packets and expecting some in return. - -It is important to note that in async mode each peer sends packets in one direction and doesn't expect a reply to those. In on-demand mode one peer sends packets and **does** expect packets in return. - -> A function exists called "Echo function" that does make it so packets are looped back to the sender. If any of those don't return the link is declared down. - -- Pure Async without echo: less packets than with echo. -- With echo: possibly faster detection, less jitter, more packets -- On-demand: if there are alot of links, thus alot of BFD sessions and the overhead is too big - -> On-demand cannot work if the round-trip time is larger than the desired detection time \ No newline at end of file diff --git a/Bilat 25 juni 2025.md b/Bilat 25 juni 2025.md new file mode 100644 index 0000000..5428dbb --- /dev/null +++ b/Bilat 25 juni 2025.md @@ -0,0 +1,25 @@ +[[Bilaterale gesprekken met Rutger]] + +--- + +Blij met Ali. Doet het erg goed, pakt zelf dingen snel op, weinig assistentie nodig gehad dusver. Stelt op tijd vragen en snapt vrijwel direct wat je bedoelt. + +Mohammed vind een ERROR loggen wanneer iets werkt als verwacht normaal.. ik heb duidelijk aangegeven dat dat niet normaal is. + +Ik baal een beetje van die cinder volume backup driver. Het idee is goed maar ik vind het stom dat ik dat zelf niet kon bedenken, vooral omdat ik het idee had dat cinder-backup == bad. + +--- + +Aangegeven dat ik tijdens de stand-up een beetje chagrijnig was over die cinder backup. Gezegd dat ik het idee had dat cinder backup verboden was. Rutger herinnerde zich ongeveer de gesprekken van toen en gaf aan dat het toen stokte op 3 dingen: +- agent +- kan geen local storage backups +- storage +Ik zei dat ik het mezelf dan aanreken dat ik niet de nodige overtuigingskracht heb, en dat ik toen ook niet zelf op het idee kwam om die storage driver te implementeren. +Rutger gaf aan dat hij idd soms nieuwe dingen probeert af te houden, omdat het niet altijd zo mooi is als mensen denken. En het heeft dus overtuiging nodig om iets erdoor te krijgen. + +Verder gesproken over vakantie, bruiloft, Maria's familie etc. Aangegeven dat ik de laatste tijd snel stressed raak. Rutger begreep dit. + +Rutger vroeg mij naar wat ik van Ali vind. Aangegeven dat ik blij met hem ben en dat hij snel dingen oppakt en begrijpt. +Rutger heeft Ali gevraagd om vanuit zijn expertise met OpenStack onze infra te bekijken of hij eventueel verbeterpunten kan vinden. Blijkbaar had Ali al aangegeven dat hij het niet chill vind dat we 3 IAS tools gebruiken. + +Verder nog even gesproken over Mohammed en zijn ERROR log die aangeeft dat het werkt. Rutger gaat de Definition of Done even aanstippen in de volgende standup. \ No newline at end of file diff --git a/Bilat 9 july 2025.md b/Bilat 9 july 2025.md new file mode 100644 index 0000000..37a563d --- /dev/null +++ b/Bilat 9 july 2025.md @@ -0,0 +1,5 @@ +[[Bilaterale gesprekken met Rutger]] + +--- + +--- diff --git a/Bilaterale gesprekken met Rutger.md b/Bilaterale gesprekken met Rutger.md new file mode 100644 index 0000000..a7d6b0f --- /dev/null +++ b/Bilaterale gesprekken met Rutger.md @@ -0,0 +1,2 @@ +[[GroupONE]] +[[Bilat 25 juni 2025]] diff --git a/Buffer Protocol.md b/Buffer Protocol.md index 4284c12..bc2ef66 100644 --- a/Buffer Protocol.md +++ b/Buffer Protocol.md @@ -2,6 +2,10 @@ tags: - python --- +[[Python]] + +--- + The buffer protocol provides access to underlying memory buffer. The producer is the type that wraps a buffer and implements the "buffer interface" through which they export data about the underlying buffer. diff --git a/Changing the volume type of a Cinder volume.md b/Changing the volume type of a Cinder volume.md index 6a786d9..531a2fb 100644 --- a/Changing the volume type of a Cinder volume.md +++ b/Changing the volume type of a Cinder volume.md @@ -4,6 +4,10 @@ tags: - cinder - howto --- +[[GroupVPS Platform]] + +--- + Shelve server, force volume into being available rather than reserved, set new volume type, unshelve server. **Retype command** diff --git a/Chef.md b/Chef.md new file mode 100644 index 0000000..2e65efe --- /dev/null +++ b/Chef.md @@ -0,0 +1 @@ +a \ No newline at end of file diff --git a/DON'T organize your zettelkasten by Morganeua (YT) - 2024.md b/DON'T organize your zettelkasten by Morganeua (YT) - 2024.md index c2ddc77..b24e060 100644 --- a/DON'T organize your zettelkasten by Morganeua (YT) - 2024.md +++ b/DON'T organize your zettelkasten by Morganeua (YT) - 2024.md @@ -1 +1,3 @@ +[[Zettelkasten]] + https://www.youtube.com/watch?v=GUdBI1JSZKA diff --git a/Daily.md b/Daily.md new file mode 100644 index 0000000..7899646 --- /dev/null +++ b/Daily.md @@ -0,0 +1,3 @@ +[[Daily]] + +--- diff --git a/Debugging issues with updating Puppet dependency.md b/Debugging issues with updating Puppet dependency.md index da6e2f2..acfa3d0 100644 --- a/Debugging issues with updating Puppet dependency.md +++ b/Debugging issues with updating Puppet dependency.md @@ -2,6 +2,10 @@ tags: - puppet --- +[[GroupVPS Platform]] + +--- + Updated the ref in Puppetfile to yoga-eol instead of unmaintained/yoga. Stap 1: `librarian-puppet install --verbose`. diff --git a/Device mapper.md b/Device mapper.md index 150338b..6441733 100644 --- a/Device mapper.md +++ b/Device mapper.md @@ -4,6 +4,11 @@ tags: - devices - kernel --- +[[Linux]] +[[GroupVPS Platform]] + +--- + Device mapper is a kernel driver to map physical block devices to virtual ones; this means that for example we can have many physical devices be represented by a single virtual one (linear mapping). How does it work? diff --git a/Enable logging with Libvirt.md b/Enable logging with Libvirt.md index 526f39d..e25ca6e 100644 --- a/Enable logging with Libvirt.md +++ b/Enable logging with Libvirt.md @@ -3,6 +3,9 @@ tags: - libvirt - howto --- +[[Linux]] +[[Libvirt]] + Configure `/etc/libvirt/libvirtd.conf` set `log_filters` and `log_outputs`. diff --git a/Excalidraw/Drawing 2025-04-26 13.13.29.excalidraw.md b/Excalidraw/Drawing 2025-04-26 13.13.29.excalidraw.md deleted file mode 100644 index 63fb76c..0000000 --- a/Excalidraw/Drawing 2025-04-26 13.13.29.excalidraw.md +++ /dev/null @@ -1,14 +0,0 @@ ---- - -excalidraw-plugin: parsed -tags: [excalidraw] - ---- -==⚠ Switch to EXCALIDRAW VIEW in the MORE OPTIONS menu of this document. ⚠== You can decompress Drawing data with the command palette: 'Decompress current Excalidraw file'. For more info check in plugin settings under 'Saving' - - -## Drawing -```compressed-json -N4IgLgngDgpiBcIYA8DGBDANgSwCYCd0B3EAGhADcZ8BnbAewDsEAmcm+gV31TkQAswYKDXgB6MQHNsYfpwBGAOlT0AtmIBeNCtlQbs6RmPry6uA4wC0KDDgLFLUTJ2lH8MTDHQ0YNMWHRJMRZFAE5FFjIkT1UYRjAaBABtAF1ydCgoAGUAsD5QSXw8LOwNPkZOTExyHRgiACF0VABrQq5GXABhekx6fAQQAGIAM1GxkABfCaA== -``` -%% \ No newline at end of file diff --git a/Git.md b/Git.md new file mode 100644 index 0000000..e69de29 diff --git a/Go Compiler.md b/Go Compiler.md new file mode 100644 index 0000000..07ca58f --- /dev/null +++ b/Go Compiler.md @@ -0,0 +1,7 @@ +[[Golang]] + +--- + +Go compiles into native machine code. + +The compiler will **not compile** source code that is not formatted according to **gofmt**. \ No newline at end of file diff --git a/Go Packages.md b/Go Packages.md new file mode 100644 index 0000000..bcf8b9c --- /dev/null +++ b/Go Packages.md @@ -0,0 +1,7 @@ +[[Golang]] + +--- +A golang program can be divided into logical segments called packages. A package is a sort of library containing related code. +A special package exists: `main`, which defines the executable entry point of the application. + +A package consists of [[Go Source Files]]. diff --git a/Go Source Files.md b/Go Source Files.md new file mode 100644 index 0000000..cad6d6d --- /dev/null +++ b/Go Source Files.md @@ -0,0 +1,17 @@ +[[Golang]] +[[Go Packages]] + +--- +A source file has a specific structure. + +1. Package declaration +2. Import declarations + +Only those two declarations above have a mandatory place in the source file. After the import declarations any other declaration may follow **in any order**. +For example: +* variable declarations +- type definitions +- function declarations + +# Todo (maybe split off) +A function declaration : `func () ()`. No semicolons, unless multiple statements on 1 line. \ No newline at end of file diff --git a/Go Strings.md b/Go Strings.md new file mode 100644 index 0000000..51eab51 --- /dev/null +++ b/Go Strings.md @@ -0,0 +1,5 @@ +[[Golang]] + +--- + +Go handles Unicode natively thus any character can be used in a string. \ No newline at end of file diff --git a/Go Tools.md b/Go Tools.md new file mode 100644 index 0000000..4e053ff --- /dev/null +++ b/Go Tools.md @@ -0,0 +1,9 @@ +[[Golang]] +[[Go Compiler]] + +--- + +The philosophy of Go in general is that beside the programming language they provide an entire toolchain and developer experience. + +`gofmt`: automatically format source code according to standards. +`goimports`: (`golang.org/x/tools/cmd/goimports`) manages imports. \ No newline at end of file diff --git a/Golang.md b/Golang.md index 3b3438f..ea9dfcd 100644 --- a/Golang.md +++ b/Golang.md @@ -1 +1,55 @@ -[[What are Type Assertions in Go and when to use them]] \ No newline at end of file +[[What are Type Assertions in Go and when to use them]] + +# TODO +make a note about : +statement -> expression -> declaration, etc. Idea: draw it in some way, making it visual might help remembering. +# DIGEST INTO NOTES +Slices are dynamically sized arrays that can be accessed `s[i]` or a subset can be taken `s[i:j]`. Indexing: half-open (starts at 0). `s[i:j]` yields i through j-1. Either can be omitted. + +Convention: comment describing package preceding package declaration. + +Variables initialised to "zero value".7689 +String concatenation via `+` char. +Supports assignment operators, e.g `+=`, `*=` etc +Short-hand variable declaration requires no type, it is inferred of the value `:=` **only allowed in a function** + +For-loop structure: +``` +for initialization; condition; post { + // code +} +``` +Either part can be left away with different semantics. +All parts gone: loop forever. +Only condition is like a while x == true; +`range` keyword to loop over a slice or array with `for index, arg := range slice` + +`_` is the blank identifier, thus above if we don' need the index we can put `_`. + +--- + +`image/color` package features the Color interface defining a Color as just a type that has a method `RGBA() (r, g, b, a uint32)`. It has a struct `RGBA` defining this method. So for example to define green we can say: `color.RGBA{0x00, 0xFF, 0x00, 0xFF}` R G B A respectively. + +Packaging doing stuff with networking are grouped under `net`, e.g `net/http` + +Using `io.Copy` we can copy output from a reader to a writer. This way we can for example copy a HTTP response directly to stdout instead of buffering the entire output first. + +`strings.HasPrefix` exists + +To get a time delta we can use `time.Since` which returns a `time.Time`. We can just call for example `Seconds()` on that to get the elapsed seconds. + +Goroutines run concurrently and communicate over channels, they are started with the `go` keyword. Sending or receiving on a channel block the goroutine. + +--- + +Order of map iteration is unspecified but random in practice to prevent reliance on ordering. +The Scanner type from the bufio package provides an easy way to read input in lines or words. +Map created with `make` is passed by reference. +Package `io/ioutil` exposes `ReadFile` and other io utility functions and types. +Casting works by `type(var)`, e.g `i := 0; string(i)` +Referencing a multi-component package is done through the last component. E.g `ioutil` for the `io/ioutil` package. +Composite literals are the form of `type{...}` they instantiate composite types, so `[]string{"a"}` is also a composite literal. + +--- + +Gin bool required bind fails if false, needs ptr to bool. https://github.com/gin-gonic/gin/issues/814 \ No newline at end of file diff --git a/GroupONE.md b/GroupONE.md new file mode 100644 index 0000000..e69de29 diff --git a/GroupVPS Migration.md b/GroupVPS Migration.md new file mode 100644 index 0000000..e61e7f8 --- /dev/null +++ b/GroupVPS Migration.md @@ -0,0 +1,2 @@ +[[GroupVPS Platform]] + diff --git a/GroupVPS Platform Knowledge Base.md b/GroupVPS Platform Knowledge Base.md deleted file mode 100644 index 439074f..0000000 --- a/GroupVPS Platform Knowledge Base.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -tags: - - work - - groupvps ---- -This will serve as my internal knowledge base about Group.ONE VPS Platform stuff. Notes on things I encounter in the wild and such should be linked here so I can quickly get an overview. - -[[Updating the image os admin user to fix password resets]] -[[Debugging issues with updating Puppet dependency]] -[[Using Libvirt to manage QEMU image bitmaps]] -[[OVN upgrade]] \ No newline at end of file diff --git a/HTTP Authentication Schemes.md b/HTTP Authentication Schemes.md index 04566ef..3ef109b 100644 --- a/HTTP Authentication Schemes.md +++ b/HTTP Authentication Schemes.md @@ -3,6 +3,8 @@ tags: - http - web --- +[[HTTP]] + https://www.iana.org/assignments/http-authschemes/http-authschemes.xhtml --- diff --git a/HTTP.md b/HTTP.md new file mode 100644 index 0000000..e69de29 diff --git a/Hardware.md b/Hardware.md new file mode 100644 index 0000000..e69de29 diff --git a/How to properly do options in a bash script with getopt!.md b/How to properly do options in a bash script with getopt!.md index 5efe6d2..86bc43b 100644 --- a/How to properly do options in a bash script with getopt!.md +++ b/How to properly do options in a bash script with getopt!.md @@ -2,6 +2,8 @@ tags: - bash --- +[[Bash]] + ``` #!/bin/bash diff --git a/How to see over which network nodes traffic is being routed.md b/How to see over which network nodes traffic is being routed.md index d38e9b8..47d2c9e 100644 --- a/How to see over which network nodes traffic is being routed.md +++ b/How to see over which network nodes traffic is being routed.md @@ -3,6 +3,10 @@ tags: - groupvps - network --- +[[GroupVPS Platform]] + +--- + In group yaml zie external networks en check aan welk netwerk router port hangt ssh netwerk node ( n01 bijv ) diff --git a/How to show the mysql galera cluster status.md b/How to show the mysql galera cluster status.md index 27bb50f..d29dcc3 100644 --- a/How to show the mysql galera cluster status.md +++ b/How to show the mysql galera cluster status.md @@ -4,6 +4,10 @@ tags: - galera - howto --- +[[MySQL]] +[[GroupVPS Platform]] + + Can be queried using `SHOW STATUS`. `sudo mysql --exec "SHOW STATUS LIKE 'wsrep%'"` diff --git a/IP migration API.md b/IP migration API.md index c6bd91b..d567ab5 100644 --- a/IP migration API.md +++ b/IP migration API.md @@ -2,33 +2,7 @@ tags: - work --- -# Previous IP migration API -Stateful: sqlite db: -- subnet state (mode: `migrating`) -- ip state: active location (`CPH|AMS`) - -config: -- LR map file -- db config -- tls -- ip announcement file -- hosts -- key -- user -IP announcement file. - -Flow: -- Prepare subnet (out-of-band) - - Creates a record for the subnet, and puts it in "migrating" mode. -- Call migrate IP (ip, dest) - - Fails if subnet not prepared prior. - - Fails if destination not exists. - - Fails if invalid ip address - - -# New IP migration API - -What is a "link scope"? +[[GroupVPS Migration]] API: - Prepare subnet : cidr @@ -51,6 +25,31 @@ Alle stappen moeten reversable zijn. stap 2 roze: test vm, routes op os verwijderen, op src net toevoegen stap 3 geel: switch network naar openstack, switch gateway ip +# Meeting @ 23 jun 2025 -**How ARP works** -Host A thinks it has direct conn to Host B, thus sends ARP request to learn its MAC. \ No newline at end of file +*cidr/24 subnet scope link maybe monitor for its existence.* + +To handle failover the static routes we configure on the tunnel-dst should not have a nexthop, but a nexthop id. This points the route to a virtual nexthop - if it is updated, all routes pointing to that are updated. + +`ip route add 192.168.0.1/32 nhid 1` + +tunnel-src also just add ip routes +failover: just periodically cmp route and push diff + +![[Pasted image 20250623162525.png]] + + +``` +#!/bin/sh + +# Check all /32 for migrated networks +(ip r; ip -6 r) | grep -E "dev wg. (scope link|metric)" | cut -d ' ' -f1 | grep -v default | sort >/tmp/A +sort routes-in-dst.txt >/tmp/B +for X in $(comm -13 /tmp/A /tmp/B); do echo ip route add $X dev wg0; done +for X in $(comm -23 /tmp/A /tmp/B); do echo ip route del $X dev wg0; done + +# Check for missing IPv6 proxy NDP entries +ip -6 neigh show proxy | cut -d ' ' -f1 | sort >/tmp/A +grep -F : routes-in-dst.txt | sort >/tmp/B +for X in $(comm -13 /tmp/A /tmp/B); do echo ip -6 neigh add proxy $X dev vrrp.98; done +``` \ No newline at end of file diff --git a/Ignoring a file that is already committed.md b/Ignoring a file that is already committed.md index 33fdfb2..2c06c41 100644 --- a/Ignoring a file that is already committed.md +++ b/Ignoring a file that is already committed.md @@ -2,6 +2,10 @@ tags: - git --- +[[Git]] + +--- + This is where `git rm` comes in: If we add `--cached` it removes a file from the git repository (but it will stay in the working directory). ```bash diff --git a/Libvirt.md b/Libvirt.md new file mode 100644 index 0000000..e69de29 diff --git a/Linux.md b/Linux.md new file mode 100644 index 0000000..e69de29 diff --git a/MySQL.md b/MySQL.md new file mode 100644 index 0000000..e69de29 diff --git a/Notes on Sanoid usage for VPS platform.md b/Notes on Sanoid usage for VPS platform.md new file mode 100644 index 0000000..2f02be2 --- /dev/null +++ b/Notes on Sanoid usage for VPS platform.md @@ -0,0 +1,2 @@ +user `sanoid` on computes is managed by chef, using the role `onecom-sanoid`. +backup nodes use `syncoid` to **pull** replicate. \ No newline at end of file diff --git a/OVN upgrade.md b/OVN upgrade.md index 9ae1962..db553a2 100644 --- a/OVN upgrade.md +++ b/OVN upgrade.md @@ -4,6 +4,8 @@ tags: - ovn - upgrade --- +[[GroupVPS Platform]] + https://docs.ovn.org/en/latest/intro/install/ovn-upgrades.html **Fail-safe upgrade procedure** diff --git a/OneHome OneCRM One.com and more fun things.md b/OneHome OneCRM One.com and more fun things.md new file mode 100644 index 0000000..a38369d --- /dev/null +++ b/OneHome OneCRM One.com and more fun things.md @@ -0,0 +1,6 @@ +[[GroupONE]] + +--- + +OneVPS (via OneHome): dogado, zoner, one.com, freenet. +**one.com**: they have their own CRM system instead of onecrm, so their customers see **OneHome** while their employees see **backoffice**. \ No newline at end of file diff --git a/Online trouwkaarten.md b/Online trouwkaarten.md deleted file mode 100644 index 99b88eb..0000000 --- a/Online trouwkaarten.md +++ /dev/null @@ -1,2 +0,0 @@ -basic invitation: with standard rsvp, 5 photo's -premium invitation: advanced rsvp (dietary wishes, specify food being served), 20 photo's \ No newline at end of file diff --git a/Pasted image 20250623162525.png b/Pasted image 20250623162525.png new file mode 100644 index 0000000..84a9d43 Binary files /dev/null and b/Pasted image 20250623162525.png differ diff --git a/Python.md b/Python.md new file mode 100644 index 0000000..e69de29 diff --git a/Raid Controller (BBU).md b/Raid Controller (BBU).md index 34011c5..f38caf0 100644 --- a/Raid Controller (BBU).md +++ b/Raid Controller (BBU).md @@ -2,4 +2,8 @@ tags: - server --- +[[Hardware]] + +--- + This is a battery that ensures data in the write-cache persists in case of power loss, so that it may be written to disk as the server is powered back on. \ No newline at end of file diff --git a/Recipes run only once and the attributes are taken by last processed role.md b/Recipes run only once and the attributes are taken by last processed role.md new file mode 100644 index 0000000..2d26b5d --- /dev/null +++ b/Recipes run only once and the attributes are taken by last processed role.md @@ -0,0 +1,5 @@ +[[Chef]] + +--- + +According to Gemini (so maybe need to confirm this with documentation) when multiple recipes are defined in different roles and the same attributes are set in different roles the behavior is such that instead of being nicely merged , the value is taken of the role with the highest precedence **or** the one that has been processed last. \ No newline at end of file diff --git a/Setting traps.md b/Setting traps.md index cd36e80..b3bc8f3 100644 --- a/Setting traps.md +++ b/Setting traps.md @@ -1,7 +1,8 @@ --- -tags: - - bash +tags: [] --- +[[Bash]] + With traps you can configure a function that is run upon a specific signal or when the script fails or exits normally. `trap fn ERR` > when an error occurrs diff --git a/Submodules.md b/Submodules.md index fe761e2..a1e270f 100644 --- a/Submodules.md +++ b/Submodules.md @@ -1,3 +1,7 @@ +[[Git]] + +--- + To add another repo as a submodule: `git submodule add` To point the submodule to a specific branch: `git submodule set-branch -b submodule-path`. diff --git a/Systemd timer.md b/Systemd timer.md index 72f50b8..43f5e64 100644 --- a/Systemd timer.md +++ b/Systemd timer.md @@ -2,6 +2,8 @@ tags: - systemd --- +[[Systemd]] + Managed similarly to a unit. So we can start/stop/enable them etc. List: `systemctl list-timers [--all]` diff --git a/Systemd.md b/Systemd.md new file mode 100644 index 0000000..ba73f00 --- /dev/null +++ b/Systemd.md @@ -0,0 +1,3 @@ +[[Linux]] + +--- diff --git a/Updating the image os admin user to fix password resets.md b/Updating the image os admin user to fix password resets.md index 48852de..436671c 100644 --- a/Updating the image os admin user to fix password resets.md +++ b/Updating the image os admin user to fix password resets.md @@ -3,6 +3,9 @@ tags: - work - nova --- +[[GroupVPS Platform]] + +--- **instances** ``` diff --git a/Use ssh -O exit user@host to exit a control master session.md b/Use ssh -O exit user@host to exit a control master session.md index b00b7b5..df83463 100644 --- a/Use ssh -O exit user@host to exit a control master session.md +++ b/Use ssh -O exit user@host to exit a control master session.md @@ -3,4 +3,6 @@ tags: - ssh - howto --- +[[Shell]] + To exit an existing session use `ssh -O exit @` \ No newline at end of file diff --git a/Using Libvirt to manage QEMU image bitmaps.md b/Using Libvirt to manage QEMU image bitmaps.md index 72942b3..9a89493 100644 --- a/Using Libvirt to manage QEMU image bitmaps.md +++ b/Using Libvirt to manage QEMU image bitmaps.md @@ -3,6 +3,10 @@ tags: - qemu - libvirt --- +[[GroupVPS Platform]] + +--- + To query info about block devices, including bitmaps we can use a QMP command: ``` sudo virsh qemu-monitor-command --pretty instance-00026133 '{"execute": "query-block", "arguments": {}}' diff --git a/We don't support filesystem discard syscalls on our openstack platform.md b/We don't support filesystem discard syscalls on our openstack platform.md index a8bb498..c2f0b7e 100644 --- a/We don't support filesystem discard syscalls on our openstack platform.md +++ b/We don't support filesystem discard syscalls on our openstack platform.md @@ -4,4 +4,6 @@ tags: - work - groupvps --- +[[GroupVPS Platform]] + This is due to the NetAPP driver implementing discard as sending NUL-bytes, which increases load significantly. \ No newline at end of file diff --git a/Wedding Vows.md b/Wedding Vows.md new file mode 100644 index 0000000..e945282 --- /dev/null +++ b/Wedding Vows.md @@ -0,0 +1,10 @@ +[[Wedding]] + +Dear Maria, honey badger, today as we stand before our loved ones, I express my love for you. +*Mention that I tried to keep it short, but it's so difficult because there's a lot to be said.* + +From the moment we had our first video call, and spent 3 or 4 hours without even noticing it, I knew that you were going to be someone special to me. You, the hardest working student in class, me the laziest. + +Remember, when we went on our first trip to Paris together. I was shocked at just how many photo's a person could make, I almost even got angry at some point. I'm **almost** able to keep up with you now and know how to strike a pose. + +Whenever you describe something, even a simple thing, you use those quirky sound effects, trrkrrrk, and funny movements (swimming). diff --git a/Wedding.md b/Wedding.md new file mode 100644 index 0000000..e69de29 diff --git a/daily/04-Jun-2025.md b/daily/04-Jun-2025.md deleted file mode 100644 index 3cb7031..0000000 --- a/daily/04-Jun-2025.md +++ /dev/null @@ -1,4 +0,0 @@ -**Occurrences** -Trying to install goba/gobs in the global venv of devstack. Had to relax the requirements of dependencies; thus dependencies being newer than tested with. This is suboptimal because now our environment is different from our prod.. - -In a more recent version of sqlalchemy they mask the password in engine.url by default (opposite to not masking it before): this caused a connection error during db sync. I remembered I ran into this before when looking at nova's db sync code and saw the `engine.url.render_as_string(hide_password=False)`. Updated our code with this fixed the issue \ No newline at end of file diff --git a/daily/06-May-2025.md b/daily/06-May-2025.md deleted file mode 100644 index 2568441..0000000 --- a/daily/06-May-2025.md +++ /dev/null @@ -1,29 +0,0 @@ -Checklist for maintenance OVN upgrade- [ ] Make -- [x] xping all public router ips -- [x] Open Grafana dashboard for OVN leaders -- [x] Open Grafana dashboard for network metrics -- [x] xping one vm on every compute node -- [x] check ovn cluster status -- [x] make sure ansible inventory covers all compute nodes -- [x] make sure ansible inventory covers all network nodes -- [x] make sure ansible inventory covers all ovn cluster database nodes -- [x] Make sure network nodes are reboot proof -- [x] Check ansible netconf for reboot proofness as well -- [x] Check puppet status on all network nodes - - -Xping: window 3 -Ansible playbook: window 4 -OVN db cluster nodes: window 4 -Neutron server tail: window 5 - - -Note -- Moet ff iets slimmers om te xpingen. Freenet veelste veel pub router ips; liefst gwn 1 of ip per netwerk en compute node. - - Query OVN? -- Ff proberen vast te leggen hoe we OVN databases automatisch kunnen checken op compleet up zijn, ipv arbitrair wachten en zelf kijken. -- OVN upgrade 1: ongeveer om 2 uur begonnen, dingen recoveren volledig vanaf mijn POV: 2:09 - - OVN db upgrade stap wacht: check -> lijkt allemaal goed, cluster status OK - - eerste ovn-controller upgrade (n01) -> shit blijft down hoe lang ik ook lijk te wachten: br-int connection timeout - - Besloten om toch gewoon proberen door te duwen - - Zodra ik continue met de volgende lijkt eigenlijk meteen br-int te connecten (toeval?) en gaan dingen recoveren \ No newline at end of file diff --git a/daily/07-May-2025.md b/daily/07-May-2025.md deleted file mode 100644 index 1263975..0000000 --- a/daily/07-May-2025.md +++ /dev/null @@ -1,20 +0,0 @@ -Werk aan ZFS backup goba met Mohammed. Mohammed was paar dagen sidetracked met devstack opzetten. Had eigenlijk gehoopt dat hij met een plan van aanpak betreffende implementatie zou komen (daar had ik op gehint vrijdag (of donderdag al?)).. Nu afgesproken dat hij dit gaat maken. Om 15:00 doen we een meet om het door te spreken. - -Rutger hint ernaar dat wij een business service gaan opzetten die producten voor de group op openstack oplevert. -# Non-functional requirements: -Technical constraints: -- Python -- Connexion -- Venv deployed (no apt for dependency hell) -- End to end tests -- Unit tests - -Requirements: -* Retrieving data should always be fast, correctness is less important -* Creating new resources should always be validated properly, doesn't have to be fast as long as its correct. -* Reliable - * Creating or updating resources should be atomic -# Functional requirements: -- Authentication: the system requires users to be authenticated before being able to use its APIs. -- Eventually consistent: it must not be that if a requested resource fails to create that another request has to be made. The creation of a resource is guaranteed. -- Validation: a request must be strictly validated in order to ensure correctness, as soon as a request passes validation we must ensure it is fulfilled. \ No newline at end of file diff --git a/daily/09-May-2025.md b/daily/09-May-2025.md deleted file mode 100644 index abb97cf..0000000 --- a/daily/09-May-2025.md +++ /dev/null @@ -1,11 +0,0 @@ -Again diskspace issues on the testpod. notifications.sample queue was very large (24G). Threw away huge directory containing quorum Q data. -Threw away all mysql backups. -Rebooted lxchost1 tesptod. -Noticed ceilometer also had huge logs. -Purged notifications.info queue as I saw alot of spam in ceilometer-agent-notification.log on ceilometer node about duplicate messages. -Also noticed unread messages in cinder-volume queue. -It shows INTERNAL_ERRORs and failure to connect with rabbitmq. -Stopped the cinder-volume service. -Purged cinder-volume queue. -Started ceilometer-agent-notification -Right away seeing the same INTERNAL_ERROR messages as on cinder before. \ No newline at end of file diff --git a/daily/10-Jun-2025.md b/daily/10-Jun-2025.md deleted file mode 100644 index fff3fbd..0000000 --- a/daily/10-Jun-2025.md +++ /dev/null @@ -1,17 +0,0 @@ -Performance review - -Beter tijdsinschatting geven. - -Work environment -Feedback: nicest person - -quality of work - -beter estimaten - -Doel: LPIC. - - ---- - -OVN loadbalancer health check. OVN nb: `nbctl show load_balancer_health_check` \ No newline at end of file diff --git a/daily/11-Jun-2025.md b/daily/11-Jun-2025.md deleted file mode 100644 index e693fed..0000000 --- a/daily/11-Jun-2025.md +++ /dev/null @@ -1,5 +0,0 @@ -access to openstack, marcus ripkens. -marcus: cloud-init scripts to setup vms, loadbalancers, 2 dedicated personen, dns migration (yves geen vertrouwen axfr, geen insight in wat wel/niet goed synced is) -bare metal -> 10 vm's, lb needs update: domain -> new ip. -500K+ customers. -Yves overtuigen dat MHC team de proxies moet beheren indien permanent oplossing./ \ No newline at end of file diff --git a/daily/12-May-2025.md b/daily/12-May-2025.md deleted file mode 100644 index 92af7d5..0000000 --- a/daily/12-May-2025.md +++ /dev/null @@ -1,8 +0,0 @@ -Webglobe migration strategy - -Minimum assistance from us? - -They have a script that incrementally moves data. -Existing to proxmox, modified to move it to virtually anything. - -Ansible, create infra. diff --git a/daily/17-May-2025.md b/daily/17-May-2025.md deleted file mode 100644 index 7872d2a..0000000 --- a/daily/17-May-2025.md +++ /dev/null @@ -1,30 +0,0 @@ -# Notes on go -Go compiles into native machine code. -Go handles Unicode natively thus any character can be used in a string. -Divided into packages, where a package is sort of a library, except for main which defines an executable. -Import declarations **must** follow the package declaration. -Function declarations: `func () ()`. No semicolons, unless multiple statements on 1 line. -`gofmt` mandatory. `goimports` (`golang.org/x/tools/cmd/goimports`) manages imports. -Slices are dynamically sized arrays that can be accessed `s[i]` or a subset can be taken `s[i:j]`. Indexing: half-open (starts at 0). `s[i:j]` yields i through j-1. Either can be omitted. - -Convention: comment describing package preceding package declaration. - -Variables initialised to "zero value".7689 -String concatenation via `+` char. -Supports assignment operators, e.g `+=`, `*=` etc -Short-hand variable declaration requires no type, it is inferred of the value `:=` **only allowed in a function** - -For-loop structure: -``` -for initialization; condition; post { - // code -} -``` -Either part can be left away with different semantics. -All parts gone: loop forever. -Only condition is like a while x == true; -`range` keyword to loop over a slice or array with `for index, arg := range slice` - -`_` is the blank identifier, thus above if we don' need the index we can put `_`. - -**Type assertion** diff --git a/daily/18-Jun-2025.md b/daily/18-Jun-2025.md deleted file mode 100644 index c7c35a1..0000000 --- a/daily/18-Jun-2025.md +++ /dev/null @@ -1 +0,0 @@ -Gin bool required bind fails if false, needs ptr to bool. https://github.com/gin-gonic/gin/issues/814 \ No newline at end of file diff --git a/daily/18-May-2025.md b/daily/18-May-2025.md deleted file mode 100644 index 2ef64b9..0000000 --- a/daily/18-May-2025.md +++ /dev/null @@ -1,12 +0,0 @@ -Some programming problems or programs to make for practicing: -- Echo stdin -- Find duplicate lines on stdin or files passed as arguments. Operating on a stream, or slurp all input and do it at once. - -# Further notes on Go -Order of map iteration is unspecified but random in practice to prevent reliance on ordering. -The Scanner type from the bufio package provides an easy way to read input in lines or words. -Map created with `make` is passed by reference. -Package `io/ioutil` exposes `ReadFile` and other io utility functions and types. -Casting works by `type(var)`, e.g `i := 0; string(i)` -Referencing a multi-component package is done through the last component. E.g `ioutil` for the `io/ioutil` package. -Composite literals are the form of `type{...}` they instantiate composite types, so `[]string{"a"}` is also a composite literal. \ No newline at end of file diff --git a/daily/19-May-2025.md b/daily/19-May-2025.md deleted file mode 100644 index aa9ab6b..0000000 --- a/daily/19-May-2025.md +++ /dev/null @@ -1,12 +0,0 @@ -# Another note on Go -`image/color` package features the Color interface defining a Color as just a type that has a method `RGBA() (r, g, b, a uint32)`. It has a struct `RGBA` defining this method. So for example to define green we can say: `color.RGBA{0x00, 0xFF, 0x00, 0xFF}` R G B A respectively. - -Packaging doing stuff with networking are grouped under `net`, e.g `net/http` - -Using `io.Copy` we can copy output from a reader to a writer. This way we can for example copy a HTTP response directly to stdout instead of buffering the entire output first. - -`strings.HasPrefix` exists - -To get a time delta we can use `time.Since` which returns a `time.Time`. We can just call for example `Seconds()` on that to get the elapsed seconds. - -Goroutines run concurrently and communicate over channels, they are started with the `go` keyword. Sending or receiving on a channel block the goroutine. \ No newline at end of file diff --git a/daily/27-May-2025.md b/daily/27-May-2025.md deleted file mode 100644 index 1000488..0000000 --- a/daily/27-May-2025.md +++ /dev/null @@ -1,3 +0,0 @@ -Decided that devenv is too invasive for use at work; I can't commit its .envrc nor .pre-commit-config.yaml. Therefore I'm setting up just regular shell.nix usage. I quickly ran into an issue where the nix shell is using bash and found a tool called Lorri which promises to be useful for developer environments with shell.nix. Let's hope that is less invasive than devenv. -Thus far it's not very nice, it install stuff on the background ( a systemd daemon that listens for change ) of which you have no idea when its done. - diff --git a/daily/archive/01-May-2025.md b/daily/archive/01-May-2025.md deleted file mode 100644 index bd368d6..0000000 --- a/daily/archive/01-May-2025.md +++ /dev/null @@ -1,6 +0,0 @@ -# Manila -Share network -Cinder - -**dhss = driver_handles_share_server** -Means that Manilla creates a share server, requiring a share network and a service image. \ No newline at end of file diff --git a/daily/archive/10-Apr-2025.md b/daily/archive/10-Apr-2025.md deleted file mode 100644 index 8ac3187..0000000 --- a/daily/archive/10-Apr-2025.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -tags: - - self - - reflection ---- -### I assumed that Mohammed made an oopsie but instead it turned out to be one of us that forgot to clean up. -Today I found out that on the testpod the user sanoid's ssh keys suddenly belonged to Mohammeds' user. I right away went to his chat with the idea that he did something silly probably and even told him that it made me a bit worried. - -I also went to Rutger, who immediately pointed out that it is probably due to us changing the uid of sanoids' user. Which turned out to be true. - -I ask myself the following: why am I quick to jump to a conclusion like "Ah, mohammed might've caused damage by accidentally chowning to much or something like that." -How can I stop myself from that? -I think one way is to ALWAYS force myself to investigate completely, not right away talking about it with others. Keep it to myself, until I really MUST communicate about it. - - -#### Erik doesn't show up at the office for Carlos even though he said that he would be there on Thursday -This kind of triggers a feeling that Erik has a bit of a lax attitude, which often was associated with ops back in the day as well. -He is the designated mentor but I feel he doesn't prepare it well and just "goes with the flow" too much. \ No newline at end of file diff --git a/daily/archive/11-Apr-2025.md b/daily/archive/11-Apr-2025.md deleted file mode 100644 index 8b0a2cf..0000000 --- a/daily/archive/11-Apr-2025.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -tags: - - weekly ---- -This week: -- [[10-Apr-2025]] - -Today marks another Friday, almost weekend, woohoo. - -This week few notable things happened. - -First of all I finally have restored a Ceph backed volume successfully! The issue was actually kind of silly, I forgot to close the read end of a pipe, thus it kept blocking. Luckily I found it, and fixing it was rather trivial. -After that I refactored a bit, to make it little bit better (still not great), and deployed. -I also fixed the request ID logging that was broken for a while, during refactoring of the agent RPC handler I accidentally moved the ctx.update_store outside of the child thread, so the update was useless. Moving it back into the child thread gave back our precious request ids. -Oh and I also found the cause of some sporadic mysql "object belongs to a different session" issue in the backup service that was haunting me. This happened due the Unit Of Work being instantiated only during application startup, specifically for the RPC handler, and then every RPC request used that same UOW. -Because the UOW creates a new session everytime it wasn't completely broken, but occasionally two RPC calls could come in at the same time and then the latter would override the session of the first. -I fixed this by instantiating a UOW per request, this also happens in the API, and is actually the correct way of using it. - -Then I have kicked off the [[List of tags I use in this Vault and their purpose]] note, which contains a list of tags I use within this vault so I don't forget. -As with the current note i'm writing I added the new "weekly" tag to indicate that this "daily" note is actually a week report which I want to write every friday from now on. - -Just had a little brainfart writing the above.. Is it too long? I plan to use these weekly notes to introspect during self assessments, but of course they shouldn't be too tedious to go through... Hmm, well, I guess we'll have to actually **use** it before deciding that. - -I think it will be good practice to link to the current weeks' notes in this weekly note as well so.. see the top :) I probably should put more stuff into daily notes, and then make this a bit of a TLDR. - -I have also been doing some thinking and note taking about [[TDD]] because I feel kind of bad about the current state of the backup service & agent (no tests). We've been looking at [[OpenStack Tempest]] for a bit which is interesting, but I would also like to just create better and more unit tests, especially during development. [[High Gear Low Gear Testing]] was a phrase from the cosmic python book that particularly seemed to resonate with me, but I haven't yet been able to practice it. - diff --git a/daily/archive/14-Apr-2025.md b/daily/archive/14-Apr-2025.md deleted file mode 100644 index f0209e8..0000000 --- a/daily/archive/14-Apr-2025.md +++ /dev/null @@ -1,22 +0,0 @@ -Monday! - -# Standup -OnFailure handlers installeren voor rename script ZFS datasets op backup nodes. -Survey invullen -Puppetrun failed nalopen -Uitzoeken waarom de F QEMU GA sporadisch faalt -- Dit had geloof ik iets te maken met QEMU crash ? Ff dubbel checken, heb er ergens een note van denk ik. -# QA with Webglobe team -Q: Virtual buses, volumes, suggested virtio. Can we do iSCSI instead of VirtIO because we do discards? -A: We don't support discard. NetAPP implements by sending nul bytes. -> increase IO -^ i wouldn't know this - -Q: Can we install from CD? -R: yes, possible. create image, props, iso boot, boot vm rescue from image. -J: documented? -R: Will find dgoc for onehome - -Q: IP addresses, do we really need to let OS handle the allocation? -A: OpenStack does this out of the box; used as single source of tru. -J: Finds reason acceptable; will rewrite.th - diff --git a/daily/archive/15-Apr-2025.md b/daily/archive/15-Apr-2025.md deleted file mode 100644 index 06ab31a..0000000 --- a/daily/archive/15-Apr-2025.md +++ /dev/null @@ -1,28 +0,0 @@ -**Interview Ali** - -Q: -Waarom ga je weg bij Leaseplan? -Over openstack deployment: hoe geautomatiseerd; welke tools? - -> Implemented virtual staging clusters mirroring the production architecture using KVM, libvirt, Linux bridge/virtual interfaces, and iptables, reducing setup time by 90% while significantly optimizing costs. - -Did you directly integrate to KVM/Libvirt, can you tell a bit about that? - -A: -php/wordpress dev -exp with cpanel and such -then switch devops - - -+1 kolla ansible / openstack -+1 cpanel/hosting --1 geen puppet ervaring -+1 ovn ervaring; meest voorname probleem is met ovs/ovn - -beetje rare sidetrack config mgmt ansible vs puppet; maakt punt over consistency - -Q: regular day -Q: expectations - -In amsterdam -Avail: 1 june \ No newline at end of file diff --git a/daily/archive/16-Apr-2025.md b/daily/archive/16-Apr-2025.md deleted file mode 100644 index 2d22b55..0000000 --- a/daily/archive/16-Apr-2025.md +++ /dev/null @@ -1,15 +0,0 @@ -1op1 rutger: niet echt iets besproken. - -***Interview Prep Isabel*** -*Do you live in Amsterdam? If yes, how long? plans to stay?* - -*Very shortly worked for ING (2025 january until now). What happened?* - -*At Civir you mention "deployent & administration of cloud technologies" including openstack, does this mean you deplmoyed an openstack cloud or were you a user of an openstack deployment?* - - -*You mention "24/7 support for troubleshooting issues" on multiple positions. What kind of issues?* - -***Isabel Q to us*** - -**Isabel kwam niet opdagen** \ No newline at end of file diff --git a/daily/archive/17-Apr-2025.md b/daily/archive/17-Apr-2025.md deleted file mode 100644 index 7a0a296..0000000 --- a/daily/archive/17-Apr-2025.md +++ /dev/null @@ -1,2 +0,0 @@ -`puppet-neutron` gemerged; gezeik met updaten dependency, uiteindelijk commit hash in lock geupdate. Zie [[Debugging issues with updating Puppet dependency]]. - diff --git a/daily/archive/18-Apr-2025.md b/daily/archive/18-Apr-2025.md deleted file mode 100644 index 7105132..0000000 --- a/daily/archive/18-Apr-2025.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -tags: [] ---- -# Today -Encountered oom on lxchosts. Turned out that octavia wsgi was using huge amounts of ram. -First we disabled the apache on all octavia to prevent more oom kills. -After that Erik limited their allowed memory usage, and we turned them back on. -Found out that we can see what script is ran by apache in the vhost config. Turned out to be some CGI script. -To profile the memory usage I stopped apache and ran a memory profiler directly against the cgi script, I had to stop the LB from using TLS but apart from that it worked smoothly. -We now have a flamegraph of the memory usage, and it looks like it is something to do with ovs. \ No newline at end of file diff --git a/daily/archive/22-Apr-2025.md b/daily/archive/22-Apr-2025.md deleted file mode 100644 index 192eebe..0000000 --- a/daily/archive/22-Apr-2025.md +++ /dev/null @@ -1,32 +0,0 @@ -octavia ovn provider memory leak; found [bug report](https://bugs.launchpad.net/neutron/+bug/2065460) which looks very promising. Trying to patch the driver with this patchset to see if we can fix it. - - -# Interview Ali met Erik -Maand opzegtermijn, geen haast. - -Noemt control plane services -- keystone users projects -werkt voor leaseplan, reason layoff - -migratie workflow: -- legacy cluster - -Live migration, ceph shared, kan geen manier vinden om storage zonder intermediate host te migreren. - -Knows how live migration work. - -Explanation OpenStack, trace server create call: -- keystone, service catalog, token -- nova api, nova scheduler, nova conductor - - doesnt know individual, whole schedules server - - nova libvirt talks libvirt, creates vm - - host aggregates mentioned + flavor extra specs - - vm calls metadata @ 169.169... mentioned - - cloud-init -- nova wants port -> rabbit -> neutron -- neutron api, ovn controller - - ovn northd, nb, sb - - neutron ml2 plugin translates neutron to ovn nb - - northd translates nb to sb - - ovn controller reads sb and translate to ovs on compute -- glance image \ No newline at end of file diff --git a/daily/archive/23-Apr-2025.md b/daily/archive/23-Apr-2025.md deleted file mode 100644 index 6c9b6c6..0000000 --- a/daily/archive/23-Apr-2025.md +++ /dev/null @@ -1,68 +0,0 @@ - -# Interview Isabel -devops engineer 7yrs - -Provides maintainance os cloud - -exp with openstack: - - deploying new compute - - maintaining - - remember rabbitmq incident: queueing - - not used puppet - - ansible -exp with openstack: - - deploying new compute - - maintaining - - remember rabbitmq incident: queueing - - not used puppet - - ansible -#### Our questions -How are you in programming? -- Really like it, create many tools -- Python / ansible deploy infra automated instead of manually - - *Realised manual labor and automated it* - -How do you feel about going more into a development role? -- that's what im looking for, prefer to be making. - -Linux or windows experience? -- check fs -- processes -- administrative -- k8s many scripts - -How would you solve a problem where a VM is not starting? -- Check nova compute for error -- If ceilometer/logging check that -- Try with nova-compute to restart if down -- Reload instance (?) - -Have you ever had to go into openstack DBs? -- Not really, -- Do have SQL knowledge - -Do you know how to work with git? -- yes, branch system current job - -**Why are you leaving your current position?** -reason: different tech than banks -same company HCL as in spain, change contract - - -*Deployment, maintenance, and administration of cloud technologies -VMware, Azure, Openstack.* -**Does this mean workloads running on said clouds? Or does this also apply to managing infrastructure such as openstack?** - -*Bash scripting for Linux server automation.* **What sort of automation?** - -*Plan and execute migrations and patching from on-premises infrastructure -to ING Private cloud (IPC)* **Can you talk more about what kind of migrations** - -#### Isabel questions to us - -What does the usage of openstack look like from customer perspective? -- different kinds (brands, direct access) -Own DC? yes -Are you expecting me to create new components, or maintain? -- maintain, puppet etc, - diff --git a/daily/archive/24-Apr-2025.md b/daily/archive/24-Apr-2025.md deleted file mode 100644 index 371dd15..0000000 --- a/daily/archive/24-Apr-2025.md +++ /dev/null @@ -1,7 +0,0 @@ -Ceilometer thaw/freeze gecheckt: linear vs unordered flow. Geen metrics testpod -> prod deploy - -Octavia / system test cph8 onderzocht: kon netwerk niet vinden in ovn. Restart resolved issue. - -OVN database cluster aanmerken in ansible ipv alle netwerk nodes zien als database hosts. Testen op testpod. - -Lijst controleren van backup contracten vs gobs. 170 active contracten vs 191 periodic backups waarvan er 44 disabled. \ No newline at end of file diff --git a/daily/archive/25-Apr-2025.md b/daily/archive/25-Apr-2025.md deleted file mode 100644 index 9514ec3..0000000 --- a/daily/archive/25-Apr-2025.md +++ /dev/null @@ -1,17 +0,0 @@ -Gobs OSC plugin pagination -Deploy goba with ceilometer thaw/freeze to prod - -# Tech interview Isabel -Intro -- [ ] What we will do: some questions then workshop -- [ ] Erik intro -- [ ] Isabel intro - -Questions: -- [ ] What is your experience with `git`, are you comfortable with it? -- [ ] Can you expand a little bit on your programming experiences, what are some examples of projects that you worked on? -- [ ] What did you do with Ansible? -- [ ] Can you talk a little about openstack, what is it and what are the most core components? -- [ ] Workshop - -Isabel questions: diff --git a/weekly/2025 W16.md b/weekly/2025 W16.md deleted file mode 100644 index bd3f392..0000000 --- a/weekly/2025 W16.md +++ /dev/null @@ -1,16 +0,0 @@ -This is the first week in the new format! I almost forgot about doing this.. Let's try to keep it up! - -* [[14-Apr-2025]] -- [[15-Apr-2025]] -- [[16-Apr-2025]] -- [[17-Apr-2025]] - -QA with Webglobe team, who are developing another control panel. Was short. Happy that Rutger was there, they asked some question that I wouldn't be able to answer easily. Which means there is a gap in my knowledge. I added a note about this in my kast. - -We did an interview with Ali. Ali has prior OpenStack experience and seems like a chill guy. We'll have a technical interview at the office on Tuesday. Looking forward to it! - -On Wednesday we were supposed to have an interview with Isabel who couldn't make it. Haven't heard yet if she will meet with us another time. - -Fixed nexthop/gateway in Puppet neutron. Learnt that updating Puppet dependencies in the normal way is nearly impossible. Simply slapped the commit hash in the lock file instead. - -Encountered OOM situation due to Octavia. Learned a little bit about memory profiling. Not yet found the actual cause sadly. \ No newline at end of file diff --git a/weekly/2025 W17.md b/weekly/2025 W17.md deleted file mode 100644 index 7cc20b7..0000000 --- a/weekly/2025 W17.md +++ /dev/null @@ -1,14 +0,0 @@ -Another week - -- [[22-Apr-2025]] -- [[23-Apr-2025]] -- [[24-Apr-2025]] -- [[25-Apr-2025]] - -Did some minor chores and bug fixes. -Prepared for OVN upgrade next week. I'm rather anxious about that. -The team also resolved long-standing issues with OVN in CPH8. We made sure all the configs are up-to-date and the cluster members are n01's in vps1/2/3, as we do in other regions. Hopefully this makes the upgrade go well. - -We conducted more interviews as well. The second (technical) interview with Ali. It went well and we want to make him an offer. -Then we had a first interview with Isabel which was also nice, we figured that she could join instead of Carlos whom we had to let go. -Sadly the second interview that Friday she didn't show up - for the second time. So we'll pass. \ No newline at end of file diff --git a/weekly/2025 W18.md b/weekly/2025 W18.md deleted file mode 100644 index caebf1c..0000000 --- a/weekly/2025 W18.md +++ /dev/null @@ -1,3 +0,0 @@ -[[01-May-2025]] - -Besides the OVN upgrades we didn't do very much interesting here because being cooked from the nightwork. \ No newline at end of file -- cgit v1.2.3