summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.obsidian/workspace.json210
-rw-r--r--Ansible ad-hoc commands.md16
-rw-r--r--Bash process substition (tmp file).md13
-rw-r--r--Enable logging with Libvirt.md18
-rw-r--r--Examples of proper JQ usage.md5
-rw-r--r--GroupVPS Platform.md11
-rw-r--r--Hypotheekrenteaftrek.md19
-rw-r--r--Income tax statement and reductions from mortgage.md20
-rw-r--r--Nix derivations.md5
-rw-r--r--Nix flake.md20
-rw-r--r--OVN Clusters.md59
-rw-r--r--Prometheus endpoints.md10
-rw-r--r--Reinstalling packages with APT.md6
-rw-r--r--Use ssh -O exit user@host to exit a control master session.md6
-rw-r--r--Using JQ to construct an array and filtering empty strings.md18
-rw-r--r--ceilometer data is going into Prometheus as Ihor fixed the out of order issue.md10
-rw-r--r--daily/22-Apr-2025.md32
-rw-r--r--daily/23-Apr-2025.md68
-rw-r--r--daily/24-Apr-2025.md7
-rw-r--r--daily/25-Apr-2025.md17
20 files changed, 358 insertions, 212 deletions
diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json
deleted file mode 100644
index 201a685..0000000
--- a/.obsidian/workspace.json
+++ /dev/null
@@ -1,210 +0,0 @@
-{
- "main": {
- "id": "7f0b11e44951b0ae",
- "type": "split",
- "children": [
- {
- "id": "d7ac73dacb8efdbe",
- "type": "tabs",
- "children": [
- {
- "id": "84e32b3623ed3a00",
- "type": "leaf",
- "state": {
- "type": "markdown",
- "state": {
- "file": "weekly/2025 W16.md",
- "mode": "source",
- "backlinks": true,
- "source": false
- },
- "icon": "lucide-file",
- "title": "2025 W16"
- }
- }
- ]
- }
- ],
- "direction": "vertical"
- },
- "left": {
- "id": "04edd518860eb1eb",
- "type": "split",
- "children": [
- {
- "id": "2397effb8763e885",
- "type": "tabs",
- "children": [
- {
- "id": "f1111e0bbe22e125",
- "type": "leaf",
- "state": {
- "type": "file-explorer",
- "state": {
- "sortOrder": "alphabetical"
- },
- "icon": "lucide-folder-closed",
- "title": "Files"
- }
- },
- {
- "id": "a7d38b9dfcdb980e",
- "type": "leaf",
- "state": {
- "type": "search",
- "state": {
- "query": "nix shell",
- "matchingCase": false,
- "explainSearch": false,
- "collapseAll": false,
- "extraContext": false,
- "sortOrder": "alphabetical"
- },
- "icon": "lucide-search",
- "title": "Search"
- }
- },
- {
- "id": "ab6d5f81f8263ef7",
- "type": "leaf",
- "state": {
- "type": "bookmarks",
- "state": {},
- "icon": "lucide-bookmark",
- "title": "Bookmarks"
- }
- }
- ]
- }
- ],
- "direction": "horizontal",
- "width": 300
- },
- "right": {
- "id": "4c2d9261a6d27fe3",
- "type": "split",
- "children": [
- {
- "id": "72d892cdc5001398",
- "type": "tabs",
- "children": [
- {
- "id": "85b7e37f12e873f6",
- "type": "leaf",
- "state": {
- "type": "backlink",
- "state": {
- "file": "NixOS - Imperative container management.md",
- "collapseAll": false,
- "extraContext": false,
- "sortOrder": "alphabetical",
- "showSearch": false,
- "searchQuery": "",
- "backlinkCollapsed": false,
- "unlinkedCollapsed": true
- },
- "icon": "links-coming-in",
- "title": "Backlinks for NixOS - Imperative container management"
- }
- },
- {
- "id": "0cd81621ed683245",
- "type": "leaf",
- "state": {
- "type": "outgoing-link",
- "state": {
- "file": "NixOS - Imperative container management.md",
- "linksCollapsed": false,
- "unlinkedCollapsed": true
- },
- "icon": "links-going-out",
- "title": "Outgoing links from NixOS - Imperative container management"
- }
- },
- {
- "id": "2196498eb2fbdd42",
- "type": "leaf",
- "state": {
- "type": "tag",
- "state": {
- "sortOrder": "frequency",
- "useHierarchy": true
- },
- "icon": "lucide-tags",
- "title": "Tags"
- }
- },
- {
- "id": "00a689c4c9b061ac",
- "type": "leaf",
- "state": {
- "type": "outline",
- "state": {},
- "icon": "lucide-list",
- "title": "Outline"
- }
- },
- {
- "id": "b0f1c4ab2b436d68",
- "type": "leaf",
- "state": {
- "type": "git-view",
- "state": {},
- "icon": "git-pull-request",
- "title": "Source Control"
- }
- }
- ],
- "currentTab": 4
- }
- ],
- "direction": "horizontal",
- "width": 300
- },
- "left-ribbon": {
- "hiddenItems": {
- "switcher:Open quick switcher": false,
- "graph:Open graph view": false,
- "canvas:Create new canvas": false,
- "daily-notes:Open today's daily note": false,
- "templates:Insert template": false,
- "command-palette:Open command palette": false,
- "obsidian-git:Open Git source control": false,
- "obsidian-excalidraw-plugin:New drawing": false
- }
- },
- "active": "84e32b3623ed3a00",
- "lastOpenFiles": [
- "A useful Go oneliner to run a fileserver.md",
- "weekly/2025 W16.md",
- "daily/10-Apr-2025.md",
- "A reason for becoming senior is that when Rutger is off I take most of his responsibilities.md",
- "daily/11-Apr-2025.md",
- "daily/18-Apr-2025.md",
- "daily/16-Apr-2025.md",
- "daily/17-Apr-2025.md",
- "daily/14-Apr-2025.md",
- "weekly",
- "archive",
- "Network outage on single hypervisor causes Freenet to shutdown EVERYTHING.md",
- "We don't support filesystem discard syscalls on our openstack platform.md",
- "Exposing development headers on Nixos.md",
- "Working with Nix shells.md",
- "Inheriting from sets.md",
- "daily/15-Apr-2025.md",
- "Importing GPG keys from a keyserver.md",
- "Build custom modules as profiles to manage various NixOS hosts.md",
- "List of tags I use in this Vault and their purpose.md",
- "NixOS - Advantage of imperative container management.md",
- "NixOS - Imperative container management.md",
- "conflict-files-obsidian-git.md",
- "daily",
- "YAGNI.md",
- "Writing a test double before the real implementation gives feedback on design.md",
- "Using Libvirt to manage QEMU image bitmaps.md",
- "Updating the image os admin user to fix password resets.md",
- "The volume type of a Cinder volume can be changed.md",
- "ESP",
- "Excalidraw"
- ]
-} \ No newline at end of file
diff --git a/Ansible ad-hoc commands.md b/Ansible ad-hoc commands.md
new file mode 100644
index 0000000..38c4286
--- /dev/null
+++ b/Ansible ad-hoc commands.md
@@ -0,0 +1,16 @@
+---
+tags:
+ - ansible
+---
+Configure ansible.cfg with:\
+```
+stdout_callback=json
+bin_ansible_callbacks = True
+```
+Outputs result as json, so we can jq it
+
+Can also be done with env var:
+```
+ANSIBLE_LOAD_CALLBACK_PLUGINS=1 \
+ANSIBLE_STDOUT_CALLBACK=json \
+``` \ No newline at end of file
diff --git a/Bash process substition (tmp file).md b/Bash process substition (tmp file).md
new file mode 100644
index 0000000..3540f70
--- /dev/null
+++ b/Bash process substition (tmp file).md
@@ -0,0 +1,13 @@
+---
+tags:
+ - bash
+ - howto
+---
+Process substitution connects the output of a command to a file. This enables a command to accept the output of multiple commands.
+Useful with diff for example:
+
+```bash
+diff <(ls dirA) <(ls dirB)
+```
+
+> Important! Don't but the <() inside quotes.. it will report: cannot find file \ No newline at end of file
diff --git a/Enable logging with Libvirt.md b/Enable logging with Libvirt.md
new file mode 100644
index 0000000..526f39d
--- /dev/null
+++ b/Enable logging with Libvirt.md
@@ -0,0 +1,18 @@
+---
+tags:
+ - libvirt
+ - howto
+---
+Configure `/etc/libvirt/libvirtd.conf`
+
+set `log_filters` and `log_outputs`.
+
+### Tracing QMP queries
+```
+log_filters="1:libvirt 1:qemu.qemu_monitor_json"
+log_outputs="1:file:/var/log/libvirt/libvirtd.log"
+```
+
+
+---
+https://libvirt.org/logging.html \ No newline at end of file
diff --git a/Examples of proper JQ usage.md b/Examples of proper JQ usage.md
index b63ee4e..2b68d01 100644
--- a/Examples of proper JQ usage.md
+++ b/Examples of proper JQ usage.md
@@ -1,6 +1,5 @@
---
tags:
- - linux
- jq
- howto
---
@@ -8,4 +7,6 @@ Double escapes are important!
```
jq -r '.fixed_ips[] | select(.ip_address | test("\\.")) | .ip_address'
-``` \ No newline at end of file
+```
+
+An example of constructing an array from stdin and filtering empty lines is found in [[Using JQ to construct an array and filtering empty strings]]. \ No newline at end of file
diff --git a/GroupVPS Platform.md b/GroupVPS Platform.md
new file mode 100644
index 0000000..f01a449
--- /dev/null
+++ b/GroupVPS Platform.md
@@ -0,0 +1,11 @@
+---
+tags:
+ - work
+ - groupvps
+---
+Our [[OVN Clusters]].
+
+
+
+
+Nowadays [[ceilometer data is going into Prometheus as Ihor fixed the out of order issue]] \ No newline at end of file
diff --git a/Hypotheekrenteaftrek.md b/Hypotheekrenteaftrek.md
new file mode 100644
index 0000000..3b2ba5f
--- /dev/null
+++ b/Hypotheekrenteaftrek.md
@@ -0,0 +1,19 @@
+---
+tags:
+ - tax
+---
+1ste hypotheek op of na 1 januari 2013 afgesloten: recht op 30 jaar hypotheekrenteaftrek.
+
+**Voorwaarden**
+- Lening **moet** voor eigen woning zijn
+ - Koop, onderhoud, verbouwen allemaal valide
+- Moet binnen 30 jaar aflossen
+ - Elk jaar moet er een bedrag afgelost worden
+
+
+*Verhoging van lening*
+Termijn gaat opnieuw in voor het verhoogde bedrag, originele bedrag behoud dus de oorspronkelijke termijn
+
+**Voorwaarden**
+- Lening is voor koop duurdere eigen woning, verbouwing of onderhoud ervan.
+- Moet ook binnen 30 jaar afgelost en elke jaar een bedrag aflossen. \ No newline at end of file
diff --git a/Income tax statement and reductions from mortgage.md b/Income tax statement and reductions from mortgage.md
new file mode 100644
index 0000000..5df3c5f
--- /dev/null
+++ b/Income tax statement and reductions from mortgage.md
@@ -0,0 +1,20 @@
+---
+tags:
+ - tax
+---
+Income tax can be reduced in the year in which we buy a house. For us:
+- 2024 bought house
+- Filled in temporary income tax statement with Christiaan
+ - Used highest salary, from 2022 the year which i received a major bonus
+ - He calculated reducables: costs from receipt, interest rate
+ - [[Hypotheekrenteaftrek]]; 0.6%
+- Definitive income tax statement:
+ - Got 142 euro more back, my salary over 2024 was lower than 2022
+ - Belastingdienst calculates the reducable part based on cost details that we provide
+ - notary costs and such, all found on the receipt
+- Following years will be easier: only hypotheekrenteaftrek.
+
+
+
+---
+https://www.belastingdienst.nl/wps/wcm/connect/bldcontentnl/belastingdienst/prive/inkomstenbelasting/aftrekposten/hypotheekrenteaftrek/ \ No newline at end of file
diff --git a/Nix derivations.md b/Nix derivations.md
new file mode 100644
index 0000000..9bd25a9
--- /dev/null
+++ b/Nix derivations.md
@@ -0,0 +1,5 @@
+---
+tags:
+ - nix
+---
+Are sort of recipes for how to build a program. \ No newline at end of file
diff --git a/Nix flake.md b/Nix flake.md
new file mode 100644
index 0000000..09b9b09
--- /dev/null
+++ b/Nix flake.md
@@ -0,0 +1,20 @@
+---
+tags:
+ - nix
+---
+Root directory contains flake.nix:
+Specifies inputs (other flakes) and outputs ([[Nix derivations]]). Allows pinning versions of inputs (dependencies) making it easier to write reproducable expressions.
+
+Avoid multiple nixpkgs by including a follows on the input:
+```
+inputs = {
+ nixpkgs.url = "github:NixOS/nixpkgs/<branch name>";
+ hyprland = {
+ url = "github:hyprwm/Hyprland";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+};
+```
+
+Outputs:
+[Flake check](https://github.com/NixOS/nix/blob/master/src/nix/flake-check.md)
diff --git a/OVN Clusters.md b/OVN Clusters.md
new file mode 100644
index 0000000..2bed4f3
--- /dev/null
+++ b/OVN Clusters.md
@@ -0,0 +1,59 @@
+---
+tags:
+ - work
+ - groupvps
+---
+Created the following inventory and put it in ansible for the [[OVN upgrade]]
+# CPH8
+```
+9cf3 (9cf3 at tcp:10.67.1.41:6644) (self)
+d9b2 (d9b2 at tcp:10.67.9.41:6644)
+6c0f (6c0f at tcp:10.67.1.42:6644) last msg 127 ms ago
+```
+n01.network.vps1: 10.67.1.41
+n02.network.vps1: 10.67.1.42
+n01.network.vps2: 10.67.9.41
+
+
+vps1: 10.67.1.0/24
+vps2: 10.67.9.0/24
+vps3: 10.67.17.0/24
+
+# LEJ1
+```
+6f0a (6f0a at tcp:10.69.9.41:6643) next_index=6378278 match_index=6378277 last msg 163 ms ago
+6e42 (6e42 at tcp:10.69.1.41:6643) (self) next_index=6373918 match_index=6378277
+cec5 (cec5 at tcp:10.69.1.42:6643) next_index=6378278 match_index=6378277 last msg 163 ms ago
+3f04 (3f04 at tcp:10.69.17.41:6643) next_index=6378278 match_index=6378277 last msg 163 ms ago
+
+```
+n01.network.vps1: 10.69.1.41
+n02.network.vps1: 10.69.1.42
+n01.network.vps2: 10.69.9.41
+n01.network.vps3: 10.69.17.41
+
+vps1: 10.69.1.0/24
+vps2: 10.69.9.0/24
+vps3: 10.69.17.0/24
+# Freenet
+```
+66b0 (66b0 at tcp:10.69.25.41:6643) (self) next_index=426770 match_index=433645
+0a3f (0a3f at tcp:10.69.33.41:6643) next_index=433646 match_index=433645 last msg 85 ms ago
+8739 (8739 at tcp:10.69.41.41:6643) next_index=433646 match_index=433645 last msg 85 ms ago
+```
+n01.network.vps1: 10.69.25.41
+n01.network.vps2: 10.69.33.41
+n01.network.vps3: 10.69.41.41
+
+vps1: 10.69.25.0/24
+vps2: 10.69.33.0/24
+vps3: 10.69.41.0/24
+# Testpod
+```
+5627 (5627 at tcp:10.64.101.4:6643) (self) next_index=452726 match_index=456341
+22de (22de at tcp:10.64.101.3:6643) next_index=456342 match_index=456341 last msg 280 ms ago
+aed8 (aed8 at tcp:10.64.101.26:6643) next_index=456342 match_index=456341 last msg 280 ms ago
+```
+n01.network: 10.64.101.4
+n01.compute: 10.64.101.3
+- [ ] n02.compute: 10.64.101.26 \ No newline at end of file
diff --git a/Prometheus endpoints.md b/Prometheus endpoints.md
new file mode 100644
index 0000000..081c1c9
--- /dev/null
+++ b/Prometheus endpoints.md
@@ -0,0 +1,10 @@
+---
+tags:
+ - groupvps
+ - work
+ - prometheus
+---
+[[ceilometer data is going into Prometheus as Ihor fixed the out of order issue]]
+
+[Testpod](https://prometheus2.prv.h19-testpod-cph3.one.com)
+- [Free memory](https://prometheus2.prv.h19-testpod-cph3.one.com/graph?g0.expr=instance%3Anode_memory_free%3Aratio%7Bnode%3D%22lxchost1.prv.vps1-testpod-cph3.one.com%22%7D&g0.tab=0&g0.display_mode=lines&g0.show_exemplars=0&g0.range_input=2h)
diff --git a/Reinstalling packages with APT.md b/Reinstalling packages with APT.md
new file mode 100644
index 0000000..f1ee6bf
--- /dev/null
+++ b/Reinstalling packages with APT.md
@@ -0,0 +1,6 @@
+---
+tags:
+ - apt
+ - howto
+---
+Simply run `apt reinstall <packagename>` \ No newline at end of file
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
new file mode 100644
index 0000000..b00b7b5
--- /dev/null
+++ b/Use ssh -O exit user@host to exit a control master session.md
@@ -0,0 +1,6 @@
+---
+tags:
+ - ssh
+ - howto
+---
+To exit an existing session use `ssh -O exit <user>@<host>` \ No newline at end of file
diff --git a/Using JQ to construct an array and filtering empty strings.md b/Using JQ to construct an array and filtering empty strings.md
new file mode 100644
index 0000000..d04c593
--- /dev/null
+++ b/Using JQ to construct an array and filtering empty strings.md
@@ -0,0 +1,18 @@
+---
+tags:
+ - jq
+ - howto
+---
+Today I learned how to use JQ to construct an array from stdin, while also filtering empty strings.
+
+In below examples the -R switch makes jq process input as raw non-json data, and the -n switch stops it from discarding the first line.
+
+```
+sudo virsh checkpoint-list --name instance-0002c4d7 | jq -Rn '[inputs | if length > 0 then . else empty end]'
+```
+^ Demonstrates use of empty
+
+```
+sudo virsh checkpoint-list --name instance-0002c4d7 | jq -Rn '[inputs | select(length > 0)]'
+```
+^ easier using select \ No newline at end of file
diff --git a/ceilometer data is going into Prometheus as Ihor fixed the out of order issue.md b/ceilometer data is going into Prometheus as Ihor fixed the out of order issue.md
new file mode 100644
index 0000000..f95653f
--- /dev/null
+++ b/ceilometer data is going into Prometheus as Ihor fixed the out of order issue.md
@@ -0,0 +1,10 @@
+---
+tags:
+ - groupvps
+ - work
+ - openstack
+---
+In the [VM Dashboard](https://grafana.one.com/d/nuqoyM4Vz/vm-dashboard) there are examples of usage of this.
+
+Useful examples:
+`cpu{resource_id="97028f50-4a7c-4cd1-9de2-6e504d34cc8d"}` \ No newline at end of file
diff --git a/daily/22-Apr-2025.md b/daily/22-Apr-2025.md
new file mode 100644
index 0000000..192eebe
--- /dev/null
+++ b/daily/22-Apr-2025.md
@@ -0,0 +1,32 @@
+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/23-Apr-2025.md b/daily/23-Apr-2025.md
new file mode 100644
index 0000000..6c9b6c6
--- /dev/null
+++ b/daily/23-Apr-2025.md
@@ -0,0 +1,68 @@
+
+# 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/24-Apr-2025.md b/daily/24-Apr-2025.md
new file mode 100644
index 0000000..371dd15
--- /dev/null
+++ b/daily/24-Apr-2025.md
@@ -0,0 +1,7 @@
+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/25-Apr-2025.md b/daily/25-Apr-2025.md
new file mode 100644
index 0000000..9514ec3
--- /dev/null
+++ b/daily/25-Apr-2025.md
@@ -0,0 +1,17 @@
+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: