Skip to content

Instantly share code, notes, and snippets.

@danopia
Last active May 25, 2019 05:34
Show Gist options
  • Save danopia/3f39e2cdca44be67b85a1d00ac01f794 to your computer and use it in GitHub Desktop.
Save danopia/3f39e2cdca44be67b85a1d00ac01f794 to your computer and use it in GitHub Desktop.
apiVersion: batch/v1
kind: Job
metadata:
name: push-lambdabot
labels:
purpose: build
spec:
ttlSecondsAfterFinished: 30
template:
spec:
containers:
- name: docker
image: gcr.io/stardust-156404/build-shell:latest
securityContext:
privileged: true
args:
- bash
- -exc
- |
dockerd --host=unix:///var/run/docker.sock &
cat << EOF > Dockerfile
FROM centos:7
MAINTAINER ricky@elrod.me
RUN yum clean all \
&& yum -y install deltarpm yum-plugin-fastestmirror \
&& yum -y update \
&& curl -o /etc/yum.repos.d/ghc.repo \
https://copr.fedorainfracloud.org/coprs/petersen/ghc-8.6.1/repo/epel-7/petersen-ghc-8.6.1-epel-7.repo && \
sed -i s/gpgcheck=1/gpgcheck=0/ /etc/yum.repos.d/ghc.repo \
&& yum -y install cabal-install ghc pcre-devel zlib-devel git
ENV PATH="${HOME}/.cabal/bin:${PATH}"
RUN cabal update \
&& cabal install happy alex dependent-sum-0.4 \
&& cabal install haskell-src-exts-simple \
&& git clone git://github.com/relrod/djinn $HOME/djinn \
&& cabal install $HOME/djinn/djinn.cabal \
&& rm -rf $HOME/djinn \
&& cabal install --constraint 'transformers installed' lambdabot \
&& hoogle generate \
&& hoogle data \
&& cabal install lens
ENTRYPOINT ["${HOME}/.cabal/bin/lambdabot"]
EOF
Image="gcr.io/stardust-156404/lambdabot:latest"
docker build -t "$Image" .
docker push "$Image"
restartPolicy: Never
nodeSelector:
purpose: build
tolerations:
- key: cloud.google.com/gke-preemptible
operator: Equal
value: "true"
effect: NoSchedule
backoffLimit: 0
---
apiVersion: v1
kind: ConfigMap
metadata:
name: lambdabot-config
labels:
app: lambdabot
data:
lambdabot: |
irc-connect freenode chat.freenode.net 6667 haskell lambda:bot
admin + freenode:danopia
admin + freenode:relrod
join freenode:#onechannel
join freenode:#twochannel
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: lambdabot
labels:
app: lambdabot
spec:
replicas: 1
template:
metadata:
labels:
app: lambdabot
spec:
containers:
- name: lambdabot
image: gcr.io/stardust-156404/lambdabot:latest
imagePullPolicy: IfNotPresent
args:
- --trust=lambdabot-trusted
- --trust=base
- --trust=random
- --trust=lens
- --trust=containers
- --trust=bytestring
- --trust=array
- --trust=semigroups
- --trust=comonad
- -e
- rc /config/lambdabot.rc
volumeMounts:
- name: config
mountPath: /config
#- name: data
# mountPath: /root/.lambdabot/State
workingDir: /root/.lambdabot/State
resources:
requests:
memory: 100Mi
cpu: 25m
limits:
memory: 150Mi
cpu: 1000m
volumes:
- name: config
configMap:
name: lambdabot-config
items:
- key: lambdabot
path: lambdabot.rc
#- name: data
# hostPath:
# path: /data/lambdabot
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment