Skip to content

Instantly share code, notes, and snippets.

View AdamIsrael's full-sized avatar

Adam Israel AdamIsrael

View GitHub Profile
#!/bin/bash
# Huge pages 1G auto mount
mkdir -p /mnt/huge
if ! grep -q "Huge pages" /etc/fstab
then
echo "" >> /etc/fstab
echo "# Huge pages" >> /etc/fstab
echo "nodev /mnt/huge hugetlbfs pagesize=1GB 0 0" >> /etc/fstab
@AdamIsrael
AdamIsrael / README.md
Created January 25, 2017 11:15
OSM SO UI plugin development - Bind mounts with LXD

This document is intended to aid the development workflow described in Developer HowTo for UI Module for Open Source Mano.

In order to develop in your preferred IDE/text editor, you can "bind mount" a directory from your local computer into an LXD container running on the same host.

First, find out your uid:

$ id
id
uid=1000(stone) gid=1000(stone) groups=1000(stone),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),113(lpadmin),128(sambashare),129(lxd),131(kismet),138(libvirtd)
@AdamIsrael
AdamIsrael / README.md
Last active June 15, 2017 22:10
Contributing to the Juju Documentation

Juju Documentation Virtual Sprint

Why participate?

Good documentation saves you time, and writing documentation makes you a better developer.

Who can participate?

Anyone! We're looking for feedback from developers, casual and new users alike.

@AdamIsrael
AdamIsrael / snap-lxd.md
Created January 16, 2018 20:58
Snap on LXD
lxc launch ubuntu:16.04 charm-snap -c security.nesting=true -c security.privileged=true
lxc exec charm-snap -- apt update
lxc exec charm-snap -- apt install -y squashfuse
# Restart required to avoid 'Setup snap "core" (3748) security profiles (cannot setup udev for snap "core": cannot reload udev rules: exit status 2'
lxc restart charm-snap
lxc exec charm-snap -- snap install charm
lxc exec charm-snap -- sh -c "rm -rf charms/layers; mkdir -p charms/layers; cd charms/layers; charm create simple; cd simple; charm build"

INFO: Using default charm template (reactive-python). To select a different template, use the -t option.                                
@AdamIsrael
AdamIsrael / update-juju-lxd-image.sh
Last active June 5, 2018 17:35
Pre-cache the LXD image used when launching Juju machines
#!/bin/bash
#
# This script will create xenial (and trusty, et al) lxd images that will
# be used by the lxd provider in juju 2.1+ It is for use with the lxd
# provider for local development and preinstalls a common set of production
# packages.
#
# This is important, as between them, basenode and layer-basic install ~111
# packages, before we even get to any packages installed by your charm.
#
@AdamIsrael
AdamIsrael / README.md
Last active June 7, 2018 19:16
pylxd testing

An example of connecting to your local LXD daemon.

juju-log: Connecting to controller... ws://10.182.5.117:17070 as admin/admin
Traceback (most recent call last):
File "test_controller.py", line 253, in <module>
main()
File "test_controller.py", line 246, in main
if ns.login():
File "test_controller.py", line 122, in login
self.client = self.loop.run_until_complete(self.connect())
File "/usr/lib/python3.7/asyncio/base_events.py", line 584, in run_until_complete
return future.result()
@AdamIsrael
AdamIsrael / ingest_charm.py
Last active April 17, 2019 21:14
Ingest a charm into gitlab and perform some common review queue steps
#!/usr/bin/env python
"""
Setup notes:
Git needs to be configured on the machine doing the ingestion.
git config --global user.name "Administrator"
git config --global user.email "admin@example.com"
In Gitlab:
@AdamIsrael
AdamIsrael / gist:7ead3157593f87b98de9
Created March 25, 2015 00:49
Generate yaml for haproxy charm
#!/usr/bin/env python
import json
service = [
{
'service_name': 'demo',
'service_options': ['mode http', 'balance leastconn', 'option httpchk GET / HTTP/1.0'],
'server_options': ['maxconn 100'],
'servers': [
[
@AdamIsrael
AdamIsrael / test_config_changed.py
Created September 28, 2018 02:26
Example reactive charm to test register_trigger
from charms.reactive import when, when_not, set_flag
from charmhelpers.core.hookenv import log, config
from charms.reactive.flags import register_trigger
# Register a trigger so that we can respond to config.changed, even if
# it's being cleared by another handler
register_trigger(when='config.changed',
set_flag='trigger.config')