diff --git a/posts/2021-07-28_work-related_Icons SVGs Fonts and Icomoon.md b/posts/2021-07-28_work-related_Icons SVGs Fonts and Icomoon.md index 4efea6c..a218796 100644 --- a/posts/2021-07-28_work-related_Icons SVGs Fonts and Icomoon.md +++ b/posts/2021-07-28_work-related_Icons SVGs Fonts and Icomoon.md @@ -14,47 +14,44 @@ I noticed the use of some clever CSS/font work, creating a tag and prepending it The basics of the solution are below. -```scss -@charset "UTF-8"; -@font-face { - font-family: "icomoon"; - src: url("fonts/icomoon.eot?36cs2a"); - src: url("fonts/icomoon.eot?36cs2a#iefix") format("embedded-opentype"), url("fonts/icomoon.ttf?36cs2a") - format("truetype"), url("fonts/icomoon.woff?36cs2a") format("woff"), - url("fonts/icomoon.svg?36cs2a#icomoon") format("svg"); - font-weight: normal; - font-style: normal; - font-display: block; -} -[class^="my-icons-"], -[class*=" my-icons-"] { - /* use !important to prevent issues with browser extensions that change fonts */ - font-family: "icomoon" !important; - speak: never; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - line-height: 1; - /* Better Font Rendering =========== */ - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} + #!scss + @charset "UTF-8"; + @font-face { + font-family: "icomoon"; + src: url("fonts/icomoon.eot?36cs2a"); + src: url("fonts/icomoon.eot?36cs2a#iefix") format("embedded-opentype"), url("fonts/icomoon.ttf?36cs2a") + format("truetype"), url("fonts/icomoon.woff?36cs2a") format("woff"), + url("fonts/icomoon.svg?36cs2a#icomoon") format("svg"); + font-weight: normal; + font-style: normal; + font-display: block; + } + [class^="my-icons-"], + [class*=" my-icons-"] { + /* use !important to prevent issues with browser extensions that change fonts */ + font-family: "icomoon" !important; + speak: never; + font-style: normal; + font-weight: normal; + font-variant: normal; + text-transform: none; + line-height: 1; + /* Better Font Rendering =========== */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } -.my-icons-icon-1:before { - content: ""; -} + .my-icons-icon-1:before { + content: ""; + } -.my-icons-icon-2:before { - content: ""; -} -``` + .my-icons-icon-2:before { + content: ""; + } Then to insert the icon where it is wanted one can simply do the following -```html - -``` +`` And the icon specified as content in the scss above will sit in the place of the `` tag. @@ -72,10 +69,6 @@ And with that, I had found our solution. Icomoon is really a magical black box but what it produces is brilliant. -``` -detail in long how solution works -``` - Source controlling the processed files and building the font and css into an npm package that we store in a private registry worked great and we have been using the same solution since, approx. 8 months I think. If ever you need a simple way of producing your own set of easily usable icons for a project, I suggest Icomoon. -ink. diff --git a/posts/2021-08-09_servers_K3s on Odroid MC1s, a Guide.md b/posts/2021-08-09_servers_K3s on Odroid MC1s, a Guide.md index 6c77d2d..750c967 100644 --- a/posts/2021-08-09_servers_K3s on Odroid MC1s, a Guide.md +++ b/posts/2021-08-09_servers_K3s on Odroid MC1s, a Guide.md @@ -30,24 +30,21 @@ Both network and hostname can be setup by mounting rootfs and manually editing/a Example netplan '10-config.yaml': -```yaml - network: - version: 2 - renderer: networkd - ethernets: - eth0: - addresses: [192.168.0.XXX/16] - gateway4: 192.168.0.1 - nameservers: - addresses: [192.168.0.1, 1.1.1.1] - search: [mydomain] -``` + #!yaml + network: + version: 2 + renderer: networkd + ethernets: + eth0: + addresses: [192.168.0.XXX/16] + gateway4: 192.168.0.1 + nameservers: + addresses: [192.168.0.1, 1.1.1.1] + search: [mydomain] Also set timezone if you want. -```shell -sudo timedatectl set-timezone Australia/Adelaide -``` +`sudo timedatectl set-timezone Australia/Adelaide` In my case the following was used: @@ -64,62 +61,56 @@ We must rebuild kernel with updated options so that cgroup_pids is enabled. Hard note that the following tools are required for the build: bison, flex, libssl-dev, and bc -```shell -apt install bison flex libssl-dev bc -y -``` +`apt install bison flex libssl-dev bc -y` ### The K3S install Run the following on all nodes: -```shell - iptables -F \ - && update-alternatives --set iptables /usr/sbin/iptables-legacy \ - && update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy \ - && reboot + #!shell + iptables -F \ + && update-alternatives --set iptables /usr/sbin/iptables-legacy \ + && update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy \ + && reboot - apt update; apt upgrade -y; apt autoremove -y; apt clean; apt install docker.io curl -y - reboot + apt update; apt upgrade -y; apt autoremove -y; apt clean; apt install docker.io curl -y + reboot - systemctl start docker - systemctl enable docker + systemctl start docker + systemctl enable docker - systemctl status docker + systemctl status docker - # Be sure that the firewall is disabled for ease - ufw disable -``` + # Be sure that the firewall is disabled for ease + ufw disable Then run the following only on the master node: -```shell - # for master - curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" sh -s - --docker + #!shell + # for master + curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" sh -s - --docker - # check its running - systemctl status k3s - kubectl get nodes + # check its running + systemctl status k3s + kubectl get nodes - # Get token from master, make sure to store it somewhere - cat /var/lib/rancher/k3s/server/node-token -``` + # Get token from master, make sure to store it somewhere + cat /var/lib/rancher/k3s/server/node-token Then run the following on the worker nodes, updating the command for each: -```shell - # for workers - # Fill this out ... - curl -sfL http://get.k3s.io | K3S_URL=https://:6443 K3S_TOKEN= K3S_NODE_NAME="odroid-mc1-X" sh -s - --docker + #!shell + # for workers + # Fill this out ... + curl -sfL http://get.k3s.io | K3S_URL=https://:6443 K3S_TOKEN= K3S_NODE_NAME="odroid-mc1-X" sh -s - --docker - systemctl status k3s-agent -``` + systemctl status k3s-agent And thus you should be done, check the master node to see: -```shell - # Check node was added on master - kubectl get nodes -``` + #!shell + # Check node was added on master + kubectl get nodes And all should be up and running correctly, it was for me at least. @@ -137,10 +128,10 @@ Once these have been set up with ip addresses and hostnames (odroid-n2, odroid-m Either the following to set up users and access: -```yml - - hosts: all - become: yes - tasks: + #!yml + - hosts: all + become: yes + tasks: - name: create the 'kuber' user user: name=kuber append=yes state=present createhome=yes bash=/bin/bash @@ -154,57 +145,49 @@ Either the following to set up users and access: authorized_key: user=kuber key="{{item}}" with_file: - ~/.ssh/id_rsa.pub -``` + Or if you already set up users: -```yml - - hosts: all - become: yes - tasks: - - name: set up authorised keys for the 'root' user - authorized_key: user=root key="{{item}}" - with_file: - - ~/.ssh/id_rsa.pub -``` + #!yml + - hosts: all + become: yes + tasks: + - name: set up authorised keys for the 'root' user + authorized_key: user=root key="{{item}}" + with_file: + - ~/.ssh/id_rsa.pub The above can be used with a hosts file such as the following -``` - [masters] - master ansible_host=192.168.0.XXX ansible_user= ansible_ssh_pass= + [masters] + master ansible_host=192.168.0.XXX ansible_user= ansible_ssh_pass= - [workers] - worker1 ansible_host=192.168.0.XXX ansible_user= ansible_ssh_pass= - worker2... - ... + [workers] + worker1 ansible_host=192.168.0.XXX ansible_user= ansible_ssh_pass= + worker2... + ... - [all:vars] - ansible_python_interpreter=/usr/bin/python3 -``` + [all:vars] + ansible_python_interpreter=/usr/bin/python3 Then the following commands: -```shell - sudo iptables -F \ - && sudo update-alternatives --set iptables /usr/sbin/iptables-legacy \ - && sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy \ - && sudo reboot -``` + #!shell + sudo iptables -F \ + && sudo update-alternatives --set iptables /usr/sbin/iptables-legacy \ + && sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy \ + && sudo reboot useful command formatted from step 2.2.1 of reference material [here](https://learn.networkchuck.com/courses/take/ad-free-youtube-videos/lessons/26093614-i-built-a-raspberry-pi-super-computer-ft-kubernetes-k3s-cluster-w-rancher) Then the following on the master node: -```shell -curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" sh -s - -``` +`curl -sfL https://get.k3s.io | K3S_KUBECONFIG_MODE="644" sh -s -` Then on the master node grab its node token -```shell -sudo cat /var/lib/rancher/k3s/server/node-token -``` +`sudo cat /var/lib/rancher/k3s/server/node-token` Then run the following on each of the workers: (note in my case curl was not installed) @@ -215,11 +198,10 @@ YOURTOKEN = token from above servername = unique name for node (I use hostname) -```shell - curl -sfL https://get.k3s.io | K3S_TOKEN="YOURTOKEN" K3S_URL="https://[your server]:6443" K3S_NODE_NAME="servername" sh -z + #!shell + curl -sfL https://get.k3s.io | K3S_TOKEN="YOURTOKEN" K3S_URL="https://[your server]:6443" K3S_NODE_NAME="servername" sh -z - # I used - apt install curl -y && curl -sfL https://get.k3s.io | K3S_TOKEN="YOURTOKEN" K3S_URL="https://[your server]:6443" K3S_NODE_NAME="servername" sh -z -``` + # I used + apt install curl -y && curl -sfL https://get.k3s.io | K3S_TOKEN="YOURTOKEN" K3S_URL="https://[your server]:6443" K3S_NODE_NAME="servername" sh -z Sadly this is where my notes ended as, although the install worked, all of the system pods were failing and thus I moved on to the method listed above.