Skip to content

Instantly share code, notes, and snippets.

View kensipe's full-sized avatar

Ken Sipe kensipe

View GitHub Profile
@kensipe
kensipe / kuttl-talk.md
Created February 18, 2021 22:03
Who needs a KUTTL

The facts are the Kuttling releases a cocktail of hormones in our brains including dopamine, serotonin and oxytocin.  It can lower your blood pressure and heart rate.  Nothing raises your blood pressure more than software written for Kubernetes that isn't tested.  

The KUbernetes Test TooL (kuttl) is a new tool for declarative testing of Kubernetes and Cloud Native software. kuttl empowers developers and end users to test operators, Helm charts, Kubernetes distributions, and Kubernetes itself. This session introduces attendees to testing kubernetes custom controllers using KUTTL with the expectation that all attendees already understand Kubernetes and operators.   The session will include:  

  • Testing in different environments; mocked, KinD and full stack clusters.
  • Test setup
  • Controller injecting
  • Asserting state goals
@kensipe
kensipe / go-common-mistakes.md
Last active August 27, 2020 00:52
Go: Mistakes were Made (but not by me)

Talk

Go: Mistakes were Made (but not by me)

Abstract

Go can be a hyper-production language to develop in but like most languanges, has it's bad and "good parts". Just like what JavaScript: The Good parts did for JavaScript and what Effective Java did for Java, there are nuiances / gotchas to naviagate in Go. This sessions walks through a number of ways you can do it wrong with appropriate solutions.

This session will walking thru:

  • Go best practices
  • Go Common Mistakes
@kensipe
kensipe / author-work.md
Created August 10, 2020 19:49
Authoring History
@kensipe
kensipe / speaking-engagements.md
Last active July 20, 2020 16:56
Speaking and Presentation History

This is intended to capture the speaking engagements I'v presented at over the years. It is a little bit of work in progress as I've been presenting since the end of 1990s and I started in 2020 the recording of this information. Links are provided where available. Links to notes and/or videos are provided as well when available.

Engineering Presentations by Ken Sipe (bio)

2020

JFokus - Stockholm

@kensipe
kensipe / kensipe-bio.md
Last active April 19, 2021 18:45
Biography

Ken Sipe Biography

Ken Sipe is a Distributed Application Engineer working on the challanges around container orchestration. Ken is a committer on the CNCF sandbox projects KUDO and KUTTL working to improve the Kubernetes experience. Ken is an internationally recognized speaker, receiving the Top Speaker and JavaOne Rockstar award in 2009, and continues to speak and be an internationally renowned leader on such topics as distributed application development, micro-service based architectures, web application security, and software engineering best practices.

apiVersion: v1
kind: Pod
metadata:
name: static-web
status:
phase: Running
@kensipe
kensipe / headshot.md
Last active June 23, 2021 15:58
Headshot

gist repo for headshot

@kensipe
kensipe / smooth-operator.md
Last active February 19, 2020 17:30
Smooth Operator

Talk

Smooth Operator

Abstract

One of the challenges of orchestration tools such as Kubernetes is determining who works for who. It is easy to deploy a suite of applications into a cluster, but how do you manage the order and logic of provisioning, upgrading, or failure recovery? Is this left to humans manned with pagers? Operators was introduced a couple of years ago as the solution to this problem in the Kubernetes eco-system.

This talk will walk through the basics of Kubernetes APIs and Custom Resource Definitions (CRDs) which underpins the required basic understanding. We will identify the solution that operators provide with a look at the early stage sdks and frameworks. We will then focus on Kubernetes Universal Declarative Operator (KUDO) which is intended to be a declarative approach for create a new operator. Attends will leave with knowledge of how smooth building a new operator can be.

Speaker

@kensipe
kensipe / DCOS Unreachable Strategy.md
Last active November 6, 2020 05:34
DCOS Unreachable Strategy

Unreachable Strategy

In order for Marathon to provide partition aware unreachable strategy support there are 2 high level events that must occur; 1) Mesos needs to communicate a task is unreachable and 2) Marathon must respond to that event if unresolved within a specified amount of time. Each of these events have configuration options and DCOS system defaults which are worth review in order to fully understand how and when an unreachable task will be managed by Marathon.

Apache Mesos Unreachable Strategies

Apache Meso's ability to communicate a task / node is unreachable is controlled by 2 concepts; 1) mesos-agent health check and 2) node rate limiter. Regarding agent health checks, the mesos-master flags of control are: -max_agent_ping_timeouts and -agent_ping_timeout. While the Mesos defaults are 5 and 15s respectively providing a 75 second notification event by default (assuming the loss of 1 agent). The default for DC/OS for [max_slave_ping_timeouts is 20](https://github.com/dcos/dcos/blob/9

#!/bin/bash
# expect git and aws with prod creds
# expects to be in the marathon dir or have the MARATHON_PROJECT_DIR set
if [ -z "$MARATHON_PROJECT_DIR" ]; then
echo "MARATHON_PROJECT_DIR NOT set... using current directory"
else
pushd $MARATHON_PROJECT_DIR
fi