Skip to content

Instantly share code, notes, and snippets.

View l2fprod's full-sized avatar
💭
embrace the change ☀️

Frederic Lavigne l2fprod

💭
embrace the change ☀️
View GitHub Profile
@l2fprod
l2fprod / ingress.yaml
Last active October 7, 2018 14:57
knative / lw / ingress
# redirect iks ingress to knative ingress
# HTTP only
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: lw-knative-ingress
namespace: istio-system
annotations:
# give 30s to services to start from "cold start"
ingress.bluemix.net/upstream-fail-timeout: "serviceName=knative-ingressgateway fail-timeout=30"
@l2fprod
l2fprod / service-webui.yaml
Created October 7, 2018 12:53
knative / lw / webui
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
name: lw-webui
namespace: default
labels:
knative.dev/type: "app"
spec:
runLatest:
configuration:
@l2fprod
l2fprod / Dockerfile
Created October 7, 2018 12:35
knative / lw / web / Dockerfile
# build
FROM node:6-alpine AS build
WORKDIR /app
COPY . .
ARG CONTROLLER_SERVICE=http://lw-controller:8080
ENV CONTROLLER_SERVICE="${CONTROLLER_SERVICE}"
RUN cd /app \
@l2fprod
l2fprod / onestep.Dockerfile
Last active October 7, 2018 12:34
knative / lw / web / onestep.Dockerfile
# similar to Dockerfile, but uses Apache HTTPd and does not use multi-stage build
FROM httpd:2.4
ARG CONTROLLER_SERVICE=http://lw-controller:8080
ENV CONTROLLER_SERVICE="${CONTROLLER_SERVICE}"
RUN echo "Using ${CONTROLLER_SERVICE}"
WORKDIR /app
COPY . .
@l2fprod
l2fprod / service-controller.yaml
Created October 5, 2018 13:13
knative / lw / controller
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
name: lw-controller
namespace: default
labels:
knative.dev/type: "app"
spec:
runLatest:
configuration:
@l2fprod
l2fprod / service-erp.yaml
Last active October 5, 2018 13:13
knative / lw / erp
apiVersion: serving.knative.dev/v1alpha1
kind: Service
metadata:
name: lw-erp
namespace: default
labels:
knative.dev/type: "app"
spec:
runLatest:
configuration:
@l2fprod
l2fprod / tf.sh
Last active April 16, 2018 11:35
Run terraform and the IBM Cloud provider in DevOps toolchain
#!/bin/bash
# get the latest terraform
curl -LO "https://releases.hashicorp.com/terraform/$(curl -s https://checkpoint-api.hashicorp.com/v1/check/terraform | jq -r -M '.current_version')/terraform_$(curl -s https://checkpoint-api.hashicorp.com/v1/check/terraform | jq -r -M '.current_version')_linux_amd64.zip"
unzip terraform*.zip
rm -f terraform*.zip
chmod 755 terraform
./terraform version
# get the latest IBM Cloud provider
curl -LO $(curl -I https://github.com/IBM-Cloud/terraform-provider-ibm/releases/latest | grep Location | awk '{print $2}' | sed 's/tag/download/g' | tr -d '[:space:]')/linux_amd64.zip
@l2fprod
l2fprod / wsksync.sh
Last active December 20, 2016 16:31
Sync Bluemix OpenWhisk credentials with Bluemix Cloud Foundry
#!/bin/bash
OPENWHISK_API_HOST=openwhisk.ng.bluemix.net
ACCESS_TOKEN=`cat ~/.cf/config.json | jq -r .AccessToken | awk '{print $2}'`
REFRESH_TOKEN=`cat ~/.cf/config.json | jq -r .RefreshToken`
ORG_NAME=`cat ~/.cf/config.json | jq -r .OrganizationFields.Name`
SPACE_NAME=`cat ~/.cf/config.json | jq -r .SpaceFields.Name`
ALL_KEYS=`curl -XPOST -k -d "{ \"accessToken\" : \"$ACCESS_TOKEN\", \"refreshToken\" : \"$REFRESH_TOKEN\" }" \
-H 'Content-Type:application/json' https://$OPENWHISK_API_HOST/bluemix/v2/authenticate`
@l2fprod
l2fprod / openwhisk-darkvision-DEPLOY-openwhisk.sh
Created November 8, 2016 16:55
A toolchain for Dark Vision
#!/bin/bash
# Get the OpenWhisk CLI
mkdir ~/wsk
curl https://openwhisk.ng.bluemix.net/cli/go/download/linux/amd64/wsk > ~/wsk/wsk
chmod +x ~/wsk/wsk
export PATH=$PATH:~/wsk
# Configure the OpenWhisk CLI
wsk property set --apihost openwhisk.ng.bluemix.net --auth "${OPENWHISK_AUTH}" --namespace "${CF_ORG}_${CF_SPACE}"
@l2fprod
l2fprod / extract-from-weather.js
Last active November 27, 2015 14:29
Calling the Insights for Weather service
// http://twcservice.mybluemix.net/rest-api/
var defaultOptions = {
language: "en-US",
units: "e"
};
var callByGeolocation = function (endPoint, latitude, longitude, options, callback) {
options = _.merge({}, defaultOptions, options);
var callURL = url + endPoint +