Skip to content

Instantly share code, notes, and snippets.

View trstringer's full-sized avatar

Thomas Stringer trstringer

View GitHub Profile
@trstringer
trstringer / resource_disk_search.py
Created May 4, 2021 17:33
Search an Azure Linux VM for resource disk with walinuxagent logic
import os
STORAGE_DEVICE_PATH = '/sys/bus/vmbus/devices/'
def search_for_resource_disk(gen1_device_prefix, gen2_device_id):
"""
Search the filesystem for a device by ID or prefix.
Args:
gen1_device_prefix (str): Gen1 resource disk prefix.
#!/bin/bash -i
# First create a VM and install the updated cloud-init from my build. Ensure
# that we are able to utilize the "desired" IMDS api version 2020-09-01.
RESOURCE_NAME=$(resource_name)
echo "$(date) - Using resource name $RESOURCE_NAME"
az_vm_create_default
az_vm_deb_install "$RESOURCE_NAME" ~/dev/cloud-init/cloud-init_all.deb
OLD_RESOURCE_NAME=$RESOURCE_NAME
RESOURCE_NAME=$(resource_name)
@trstringer
trstringer / output.log
Created December 11, 2019 20:26
Error output from run_tree for cloud-init cloud tests
Ptmux;]4;0;rgb:23/1e/18\\Ptmux;]4;1;rgb:d3/5c/5c\\Ptmux;]4;2;rgb:b7/ba/53\\Ptmux;]4;3;rgb:e0/ac/16\\Ptmux;]4;4;rgb:88/a4/d3\\Ptmux;]4;5;rgb:bb/90/e2\\Ptmux;]4;6;rgb:6e/b9/58\\Ptmux;]4;7;rgb:ca/bc/b1\\Ptmux;]4;8;rgb:9d/8b/70\\Ptmux;]4;9;rgb:d3/5c/5c\\Ptmux;]4;10;rgb:b7/ba/53\\Ptmux;]4;11;rgb:e0/ac/16\\Ptmux;]4;12;rgb:88/a4/d3\\Ptmux;]4;13;rgb:bb/90/e2\\Ptmux;]4;14;rgb:6e/b9/58\\Ptmux;]4;15;rgb:e4/d4/c8\\Ptmux;]4;16;rgb:ca/7f/32\\Ptmux;]4;17;rgb:b4/93/68\\Ptmux;]4;18;rgb:30/2b/25\\Ptmux;]4;19;rgb:48/41/3a\\Ptmux;]4;20;rgb:b4/a4/90\\Ptmux;]4;21;rgb:d7/c8/bc\\Ptmux;]10;rgb:ca/bc/b1\\Ptmux;]11;rgb:23/1e/18\\Ptmux;]12;7\\WARNING: The default kind for created storage account will change to 'StorageV2' from 'Storage' in the future
Wed 11 Dec 2019 03:06:25 PM EST - Created thstring20191211150341
Warning: Permanently added 'thstring20191211150341.eastus.cloudapp.azure.com
Fri 06 Dec 2019 02:49:24 PM EST - Created thstring20191206144608
Warning: Permanently added 'thstring20191206144608.eastus.cloudapp.azure.com' (ECDSA) to the list of known hosts.
status: done
time: Fri, 06 Dec 2019 19:48:57 +0000
detail:
DataSourceAzure [seed=/dev/sr0]
cloud-init 19.2-36-g059d049c-0ubuntu2~16.04.1
{
"v1": {
#!/bin/bash -i
set -e
# set -x
IMAGE="canonical:ubuntuserver:16.04-lts:latest"
NETCFG="/etc/network/interfaces.d/50-cloud-init.cfg"
KNOWN_HOSTS="/home/trstringer/.ssh/known_hosts"
CLOUD_INIT_VERSION="19.2-404-g5309266f-1~bddeb~16.04.1"
#!/bin/bash -i
DEB_PATH="/home/trstringer/dev/cloud-init/cloud-init_19.2-405-g807e6fcd-1~bddeb~16.04.1_all.deb"
FABRIC_NEGOTIATING_LOG_MESSAGE="negotiating with fabric via agent command __builtin__"
validate_image () {
local IMAGE="$1"
local OUTPUT=$(az_vm_create "$IMAGE" "$IMAGE validation")
local VM_NAME=$(echo "$OUTPUT" | head -n 1 | awk '{print $3}')
@trstringer
trstringer / content.md
Last active February 22, 2021 00:09
cloud-init vendordata overwritten explanation

I’m running into an interesting issue while trying to specify both vendordata and userdata. From the documentation, userdata will overwrite vendordata unless userdata is in cloud-config-jsonp format. But my testing is showing that even in this case, vendordata is still being overwritten. Please see below for findings. Am I missing something? Thanks in advance!

The documentation states: "if both vendor and user have provided ‘runcmd’ then the default merge handler will cause the user’s runcmd to override the one provided by the vendor. To append to ‘runcmd’, the user could better provide multipart input with a cloud-config-jsonp part"

Vendor data

#cloud-config
runcmd:

Issues starting with custom metrics API server

Initialization

$ cd $GOPATH/src/github.com/trstringer
$ mkdir testing01
$ cd testing01
$ dep init
$ touch main.go
BEFORE - Mon Aug 6 14:58:25 EDT 2018
NAME STATUS ROLES AGE VERSION
k8s-agentpool1-25916361-vmss000000 Ready agent 19m v1.10.3
k8s-agentpool1-25916361-vmss000001 Ready agent 19m v1.10.3
k8s-agentpool1-25916361-vmss000002 Ready agent 19m v1.10.3
k8s-master-25916361-0 Ready master 19m v1.10.3
AFTER - Mon Aug 6 14:58:25 EDT 2018
BEFORE - Mon Aug 6 14:58:35 EDT 2018
NAME STATUS ROLES AGE VERSION
k8s-agentpool1-25916361-vmss000000 Ready agent 20m v1.10.3
++ date
++ hostname
+ echo Fri Jun 8 02:26:06 UTC 2018,k8s-agentpool1-44048448-vmss000000, startscript
+ source /opt/azure/containers/provision_source.sh
+ ERR_SYSTEMCTL_ENABLE_FAIL=3
+ ERR_SYSTEMCTL_START_FAIL=4
+ ERR_CLOUD_INIT_TIMEOUT=5
+ ERR_FILE_WATCH_TIMEOUT=6
+ ERR_HOLD_WALINUXAGENT=7
+ ERR_RELEASE_HOLD_WALINUXAGENT=8