Skip to content

Instantly share code, notes, and snippets.

View pulumipus's full-sized avatar

Pulumipus pulumipus

View GitHub Profile
@pulumipus
pulumipus / containerFunction.ts
Last active February 14, 2021 23:47
Class to create an AWS container Lambda
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
import * as aws from "@pulumi/aws";
import * as awsx from "@pulumi/awsx";
import * as pulumi from "@pulumi/pulumi";
import * as docker from "@pulumi/docker";
const opts = { };
export class ContainerFunction extends pulumi.ComponentResource {
@pulumipus
pulumipus / index.ts
Last active November 18, 2020 14:22
Extended Pulumi Automation API workflow orchestration example
import { InlineProgramArgs, LocalWorkspace } from "@pulumi/pulumi/x/automation";
import * as aws from "@pulumi/aws";
import * as awsx from "@pulumi/awsx";
import * as pulumi from "@pulumi/pulumi";
import * as mysql from "mysql";
const process = require('process');
const args = process.argv.slice(2);
let destroy = false;
@pulumipus
pulumipus / Automation_API_requests.json
Created November 6, 2020 22:01
Requests for the Automation API Pulumi over HTTP example
{
"info": {
"_postman_id": "c2accb64-9814-4d66-85c8-389413cc012e",
"name": "Automation API - infrastructure over HTTP",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Update hello website",
"request": {
@pulumipus
pulumipus / index.ts
Created October 26, 2020 22:33
Kubernetes deployment
import * as gcp from "@pulumi/gcp";
import * as k8s from "@pulumi/kubernetes";
import * as pulumi from "@pulumi/pulumi";
const name = "helloworld";
const config = new pulumi.Config();
export const masterVersion = config.get("masterVersion") ||
gcp.container.getEngineVersions().then(it => it.latestMasterVersion);
volumeClaimTemplates: [
{
metadata: {
name: "data",
labels: {
app: "mariadb",
component: "master",
release: "example",
}
},
volumeClaimTemplates: [
{
metadata: {
name: "data",
labels: {
app: "mariadb",
component: "master",
release: "example",
}
},
containers: [
// skip container configuration
livenessProbe: {
exec: {
command: ["sh", "-c", "exec mysqladmin status -uroot -p$MARIADB_ROOT_PASSWORD"],
},
initialDelaySeconds: 120,
periodSeconds: 10,
timeoutSeconds: 1,
spec: {
serviceAccountName: "default",
securityContext: {
fsGroup: 1001,
runAsUser: 1001
},
affinity: {
podAntiAffinity: {
preferredDuringSchedulingIgnoredDuringExecution: [
{
const mariadb = new k8s.apps.v1.StatefulSet("mariadb", {
spec: {
selector: {
matchLabels: {
app: "mariadb",
release: "example",
component: "master"
}
},
serviceName: "mariadb",
@pulumipus
pulumipus / index.ts (stateful app:headless service)
Last active July 17, 2020 18:08
Headless service spec for stateless application
const mariadbSvc = new k8s.core.v1.Service("mariadb", {
metadata: {
name: "mariadb",
},
spec: {
type: "ClusterIP",
clusterIP: "None",
ports: [
{
name: "mysql",