Creating a VM with an existing disk image:
export VM_NAME="Neon Dev"
VBoxManage list ostypes | less
VBoxManage createvm --name "${VM_NAME}" --ostype Ubuntu22_LTS_64 --register
# Recursively searches a Python object (composed of both dicts and lists) to find all items with key name `key` | |
def finditems(obj, key, results: list = None) -> list: | |
if results is None: | |
# this is the outermost function call, so init storage for all recursive calls | |
results = [] | |
if isinstance(obj, dict): | |
if key in obj: | |
results.append(obj[key]) | |
# recurse through dict |
(Courtesy of bradrox.)
One of the things that interested me most about joining this team was the opportunity to work with a bunch of very competent people. Smart people, working hard can accomplish a tremendous amount more than any process and training can do. Thank you for this opportunity!
Smart people get bored easily. Meetings provide a perfect breeding ground for boredom. Once you’ve said what you need to say, it can be difficult to listen to everyone else who needs to say what they came to say. Smart, bored people have very clever ways of creating distractions that reduce the effectiveness of meetings. However, “effective listening” is one of the most important techniques to master if you want to shorten meetings…and thereby reduce boredom. Here are a few reminders that should improve the effectiveness of your next meeting. You can find many other resources available on the web.
This is how I do it. Considerations going into this approach are:
The examples here will assume that you are going to create a dev cluster for a fictional product named "Bigmoney". It is suggested to not use your product name in your cluster names, since product names are at the whim of marketing and other business tides. Instead, we will use a project codename of "ampersand" to signify "my team's clusters".
KUBE_TOKEN=$(</var/run/secrets/kubernetes.io/serviceaccount/token) | |
NAMESPACE=myapp-dev | |
CONFIGMAP_NAME=testconfig | |
curl -sSk \ | |
-X PATCH \ | |
-d @- \ | |
-H "Authorization: Bearer $KUBE_TOKEN" \ | |
-H 'Accept: application/json' \ | |
-H'Content-Type: application/strategic-merge-patch+json' \ | |
https://$KUBERNETES_SERVICE_HOST:$KUBERNETES_PORT_443_TCP_PORT/api/v1/namespaces/$NAMESPACE/configmaps/$CONFIGMAP_NAME <<'EOF' |
#!/bin/bash | |
ifconfig | grep -E 'inet |inet addr' | awk '{print $2}' | cut -d ':' -f 2 | grep -E '^(192\.168|10\.|172\.1[6789]\.|172\.2[0-9]\.|172\.3[01]\.)' |
This document provides a rapid-fire overview of Kubernetes concepts, vocabulary, and operations. The target audience is anyone who runs applications in a cloud environment today, and who wants to understand the basic mechanics of a Kubernetes cluster. The goal is that within 10 minutes, managers who read this should be able to listen in on a Kubernetes conversation and follow along at a high level, and engineers should be ready to deploy a sample app to a toy cluster of their own.
This orientation doc was written because the official Kubernetes docs are a great reference, but they present a small cliff to climb for newcomers.
If you want to understand why you should consider running Kubernetes, see the official Kubernetes conceptual overview document. This document is intended to complement that one, but one layer deeper.
For a deep dive, see [Kubernetes concepts](https://kubernetes.io/docs/co
I hereby claim:
To claim this, I am signing this object:
#!/bin/bash | |
#Assumes that you already have jq installed | |
curl 'localhost:9200/_nodes' | jq '.nodes[] | if (.plugins | map(.name == "cloud-aws") | any) == false then {name: .name, ip: .ip} else empty end' |