Most of this comes originally from here: https://computingforgeeks.com/deploy-kubernetes-cluster-on-ubuntu-with-kubeadm/
Do a clean install of ubuntu 20.04 server, then apply updates:
sudo apt update
Most of this comes originally from here: https://computingforgeeks.com/deploy-kubernetes-cluster-on-ubuntu-with-kubeadm/
Do a clean install of ubuntu 20.04 server, then apply updates:
sudo apt update
// Originally written by Jason Sweeney, refactored by Richard Bateman | |
// 2021 | |
import axios from "axios"; | |
import cheerio from "cheerio"; | |
const stateListUrl = "http://www.arrl.org/ve-session-counts"; | |
const stateUrl = "http://www.arrl.org/ve-session-counts?state="; | |
type PromisedReturnType<T extends (...args: any) => any> = T extends (...args: any) => Promise<infer R> ? R : ReturnType<T>; |
function showAgent() { | |
echo The current SSH agent is $(readlink ~/.ssh-agent-link) | |
} | |
function updateSshAgentSock() { | |
NEWSOCK=$2 | |
if [ -z "$NEWSOCK" ]; then | |
echo -n "No socket found for ${1}; not changing agents. " | |
return 1 | |
elif [ ! -S "$NEWSOCK" ]; then |
# Enable gzip compression | |
apiVersion: traefik.containo.us/v1alpha1 | |
kind: Middleware | |
metadata: | |
name: gzip-compress | |
spec: | |
compress: {} |
export const readOnlyExcludeKeysModel = <const>[ | |
'watch', 'bulkWrite', 'create', 'createCollection', | |
'syncIndexes', 'listIndexes', 'ensureIndexes', | |
'createIndexes', 'findByIdAndRemove', 'findByIdAndDelete', | |
'findByIdAndUpdate', 'findOneAndRemove', 'findOneAndDelete', | |
'findOneAndUpdate', 'insertMany', 'remove', 'deleteOne', | |
'deleteMany', 'replaceOne', 'update', 'updateMany', 'updateOne', | |
]; | |
export type readOnlyExcludeKeysModel = typeof readOnlyExcludeKeysModel[number]; | |
export const readOnlyExcludeKeysDoc = <const>[ |
import mongoose, { LeanDocument } from "mongoose"; | |
import '@/lib/PromiseAll'; | |
// Used because Object.keys doesn't give us types for field names | |
export function keys<T extends object>(obj: T) : (keyof T)[] { | |
return Object.keys(obj) as (keyof T)[]; | |
} | |
// Spelled incorrectly on purpose | |
const defaultIgnoreType = '__UNMODIFEID__'; |
// excerpt, not full file | |
@schemaDef({ | |
indexes: [ | |
[{ session_def: 1, sequence_num: 1, owner: 1 }, { unique: true }], | |
[{ start_date: 1, end_date: 1 }], | |
[{ owner: 1, date: 1, session_def: 1, sequence_num: 1 }], | |
[{ password: 1, date: 1 }, { sparse: true }], | |
[{ date: 1 }], | |
], |
// Object.fromEntries polyfill, if you use this your tsconfig.json probably will need to be | |
// updated with something like this in compilerOptions (using this with node 10.17): | |
// "lib": [ | |
// "ES2018", "ES2019.Object", | |
// ] | |
function ObjectFromEntries<A extends PropertyKey, B>(iter: [A, B][]) : Record<A, B> { | |
const obj: Record<A, B> = {} as any; | |
for (const pair of iter) { |
export const velist = { | |
"anchorage": "Anchorage Amateur Radio Club", | |
"arrl": "American Radio Relay League (ARRL)", | |
"cavec": "Central America CAVEC, Inc.", | |
"golden": "Golden Empire Amateur Radio Society", | |
"lagroup": "Greater L.A. Amateur Radio Group", | |
"jefferson": "Jefferson Amateur Radio Club", | |
"laurel": "Laurel Amateur Radio Club, Inc", | |
"mrac": "MRAC VEC, Inc", |