-
Notifications
You must be signed in to change notification settings - Fork 0
RHEL_Openfaas
The instructions provided below specify the steps to build OpenFaas and OpenFaas Cloud components on Linux on IBM Z for following distributions:
- RHEL (7.6)
General Notes:
- When following the steps below please use a super user unless otherwise specified.
- A directory
/<source_root>/
will be referred to in these instructions, this is a temporary writable directory anywhere you'd like to place it.
- Docker 18.06.2
- Kubernetes v1.10 or newer cluster
export SOURCE_ROOT=/<source_root>/
yum install -y make curl tar wget git vim patch
- Install Go 1.11.4
wget https://raw.githubusercontent.com/linux-on-ibm-z/scripts/master/Go/build_go.sh bash build_go.sh -v 1.11.4 mkdir $SOURCE_ROOT/go export GOPATH=$SOURCE_ROOT/go
-
-
Download the source code
go get github.com/openfaas/faas/gateway cd $GOPATH/src/github.com/openfaas/faas/gateway git checkout tags/0.13.4
-
Create Dockerfile named
Dockerfile.gate-s390x
with following contentFROM s390x/golang:1.10.4 as build WORKDIR /go/src/github.com/openfaas/faas/gateway # RUN curl -sL https://github.com/alexellis/license-check/releases/download/0.1/license-check > /usr/bin/license-check && chmod +x /usr/bin/license-check COPY vendor vendor COPY handlers handlers COPY metrics metrics COPY requests requests COPY tests tests COPY types types COPY queue queue COPY plugin plugin COPY version version COPY scaling scaling COPY server.go . #Run a gofmt and exclude all vendored code. #RUN license-check -path ./ --verbose=false \ RUN GOARCH=s390x CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o gateway . FROM s390x/alpine:3.8 RUN addgroup -S app \ && adduser -S -g app app WORKDIR /home/app EXPOSE 8080 EXPOSE 8082 ENV http_proxy "" ENV https_proxy "" COPY --from=build /go/src/github.com/openfaas/faas/gateway/gateway . COPY assets assets RUN chown -R app:app ./ USER app RUN sed -ie s/store.json/store-s390x.json/g /home/app/assets/script/funcstore.js CMD ["./gateway"]
-
Build the image
docker build -f Dockerfile.gate-s390x -t openfaas/gateway:0.13.4-s390x .
-
-
-
Download the source code
go get -d github.com/openfaas/faas-swarm cd $GOPATH/src/github.com/openfaas/faas-swarm git checkout 0.6.2
-
Modify the
Dockerfile
sed -i 's/RUN license-check/#RUN license-check/g' Dockerfile sed -i 's/RUN curl -sL/#RUN curl -sL/g' Dockerfile sed -i 's/ && chmod +x/# && chmod +x/g' Dockerfile
-
Build the image
docker build -f Dockerfile -t openfaas/faas-swarm:0.6.2-s390x .
-
-
- Download the source code
cd $GOPATH/src/github.com mkdir -p Prometheus && cd Prometheus wget https://raw.githubusercontent.com/linux-on-ibm-z/dockerfile-examples/master/Prometheus/Dockerfile
- Build the image
docker build -f Dockerfile -t prom/prometheus:v2.7.1-s390x .
- Download the source code
-
- Download the source code
go get github.com/openfaas/nats-queue-worker cd $GOPATH/src/github.com/openfaas/nats-queue-worker git checkout 0.7.2
- Build the image
docker build -f Dockerfile -t openfaas/queue-worker:0.7.2-s390x .
- Download the source code
-
-
Download the source code
go get github.com/prometheus/alertmanager cd $GOPATH/src/github.com/prometheus/alertmanager git checkout v0.16.2
-
Create Dockerfile named
Dockerfile.s390x
with following contentFROM s390x/golang:1.11.4 MAINTAINER The Prometheus Authors <[email protected]> WORKDIR /go/src/github.com/prometheus/alertmanager COPY . /go/src/github.com/prometheus/alertmanager RUN apt-get install make \ && make build \ && cp alertmanager /bin/ \ && mkdir -p /etc/alertmanager/template \ && mv ./doc/examples/simple.yml /etc/alertmanager/config.yml \ && rm -rf /go EXPOSE 9093 VOLUME [ "/alertmanager" ] WORKDIR /alertmanager ENTRYPOINT [ "/bin/alertmanager" ] CMD [ "-config.file=/etc/alertmanager/config.yml", \ "-storage.path=/alertmanager" ]
-
Build the image
docker build -f Dockerfile.s390x -t prom/alertmanager:v0.16.2-s390x .
-
-
- Download the source code
go get github.com/nats-io/nats-streaming-server cd $GOPATH/src/github.com/nats-io/nats-streaming-server git checkout v0.11.2
- Modify the
Dockerfile
as belowsed -i '/window/a RUN CGO_ENABLED=0 GOOS=linux GOARCH=s390x go build -v -a -tags netgo -installsuffix netgo -ldflags "-s -w -X github.com/nats-io/nats-streaming-server/version.GITCOMMIT=`git rev-parse --short HEAD`" -o pkg/linux-s390x/nats-streaming-server && cp pkg/linux-s390x/nats-streaming-server /' Dockerfile
- Build the image
docker build -f Dockerfile -t nats-streaming:0.11.2-s390x .
- Download the source code
-
-
Download the source code
cd $GOPATH/src/github.com/openfaas go get github.com/openfaas/faas-cli && cd faas-cli/ git checkout 0.8.14 CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -installsuffix cgo -o faas-cli . cp faas-cli /usr/bin
-
Modify the
Dockerfile
as belowsed -i 's/RUN curl -sLSf/#RUN curl -sLSf/g' Dockerfile sed -i 's/RUN \/usr\/bin\/license-check/#RUN \/usr\/bin\/license-check/g' Dockerfile
-
Build the image
docker build -f Dockerfile -t openfaas/faas-cli:0.8.14-s390x .
-
-
- Download the source code
go get github.com/openfaas/faas/watchdog cd $GOPATH/src/github.com/openfaas/faas/watchdog git checkout tags/0.13.4 GOARCH=s390x CGO_ENABLED=0 GOOS=linux go build -a -ldflags "-s -w -X main.GitCommit=$GIT_COMMIT -X main.Version=$VERSION" -installsuffix cgo -o watchdog . && cp watchdog /usr/bin/fwatchdog
- Create Dockerfile named
Dockerfile.s390x
with following contentFROM s390x/golang:1.10 as build ARG VERSION ARG GIT_COMMIT RUN mkdir -p /go/src/github.com/openfaas/faas/watchdog WORKDIR /go/src/github.com/openfaas/faas/watchdog COPY vendor vendor COPY metrics metrics COPY types types COPY main.go . COPY handler.go . COPY readconfig.go . COPY readconfig_test.go . COPY requesthandler_test.go . COPY version.go . # Run a gofmt and exclude all vendored code. RUN test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" RUN go test -v ./... # Stripping via -ldflags "-s -w" RUN GOARCH=s390x CGO_ENABLED=0 GOOS=linux go build -a -ldflags "-s -w \ -X main.GitCommit=$GIT_COMMIT \ -X main.Version=$VERSION" \ -installsuffix cgo -o watchdog . \ && cp watchdog /fwatchdog
- Build the image
docker build -f Dockerfile.s390x -t openfaas/classic-watchdog:0.13.4 .
- Download the source code
-
go get -d github.com/openfaas-incubator/ofc-bootstrap cd $GOPATH/src/github.com/openfaas-incubator/ofc-bootstrap/ git checkout 0.6.4 go build
-
- Download the source code
go get github.com/openfaas-incubator/kafka-connector cd $GOPATH/src/github.com/openfaas-incubator/kafka-connector git checkout 0.3.3
- Build the image
docker build -f Dockerfile -t openfaas/kafka-connector:0.3.3-s390x .
- Download the source code
-
- Download the source code
go get -d github.com/helm/helm cd $GOPATH/src/github.com/helm/helm git checkout v2.13.1 cd rootfs && wget https://storage.googleapis.com/kubernetes-helm/helm-v2.13.1-linux-s390x.tar.gz tar -xzvf helm-v2.13.1-linux-s390x.tar.gz && cp linux-s390x/tiller . && cp linux-s390x/helm . cp linux-s390x/helm /usr/bin cp linux-s390x/tiller /usr/bin rm -rf helm-v2.13.1-linux-s390x.tar.gz linux-s390x/
- Build the image
docker build -f Dockerfile -t gcr.io/kubernetes-helm/tiller:v2.13.1 .
- Initialize Helm
kubectl create clusterrolebinding tiller-cluster-admin \ --clusterrole=cluster-admin \ --serviceaccount=kube-system:default helm init --tiller-image gcr.io/kubernetes-helm/tiller:v2.13.1
- Download the source code
-
-
Download the source code
go get github.com/openfaas/faas-netes cd $GOPATH/src/github.com/openfaas/faas-netes git checkout 0.7.5
-
Modify the
Dockerfile
as belowsed -i 's/RUN license-check/#RUN license-check/g' Dockerfile
-
Modify the
chart/kafka-connector/values.yaml
as belowsed -i 's/0.3.3/0.3.3-s390x/g' chart/kafka-connector/values.yaml sed -i 's/0.7.3/0.7.5-s390x/g' chart/openfaas/values.yaml sed -i 's/Always/IfNotPresent/g' chart/openfaas/values.yaml sed -i 's/0.13.0/0.13.4-s390x/g' chart/openfaas/values.yaml sed -i 's/0.7.1/0.7.2-s390x/g' chart/openfaas/values.yaml sed -i 's/0.9.4/0.9.4-s390x/g' chart/openfaas/values.yaml sed -i 's/v2.7.1/v2.7.1-s390x/g' chart/openfaas/values.yaml sed -i 's/v0.16.1/v0.16.2-s390x/g' chart/openfaas/values.yaml sed -i 's/0.11.2/0.11.2-s390x/g' chart/openfaas/values.yaml sed -i 's/0.1.9/0.1.9-s390x/g' chart/openfaas/values.yaml
-
Modify the
chart/openfaas/templates/alertmanager-dep.yaml
as belowsed -i '/--spider/d' chart/openfaas/templates/alertmanager-dep.yaml
-
Modify the
chart/openfaas/templates/prometheus-dep.yaml
as belowsed -i '/--spider/d' chart/openfaas/templates/prometheus-dep.yaml
-
Package the openfaas and kafka-connector charts
cd chart/ helm package openfaas/ helm package kafka-connector/ mv openfaas-3.2.3.tgz ../docs && mv kafka-connector-0.2.2.tgz ../docs && cd ../
-
Build the image
docker build -f Dockerfile -t openfaas/faas-netes:0.7.5-s390x .
-
-
- Download the source code
go get github.com/openfaas-incubator/openfaas-operator cd $GOPATH/src/github.com/openfaas-incubator/openfaas-operator git checkout 0.9.4
- Build the image
docker build -f Dockerfile -t openfaas/openfaas-operator:0.9.4-s390x .
- Download the source code
-
-
Download the source code
go get github.com/openfaas-incubator/faas-idler cd $GOPATH/src/github.com/openfaas-incubator/faas-idler git checkout 0.1.9
-
Create the patch
patch_idler
diff --git a/main.go b/main.go index 35a4fc0..c703469 100644 --- a/main.go +++ b/main.go @@ -42,15 +42,6 @@ func main() { credentials := Credentials{} - client := &http.Client{} - version, err := getVersion(client, config.GatewayURL, &credentials) - - if err != nil { - panic(err) - } - - log.Printf("Gateway version: %s, SHA: %s\n", version.Version.Release, version.Version.SHA) - val, err := readFile("/var/secrets/basic-auth-user") if err == nil { credentials.Username = val @@ -65,6 +56,15 @@ func main() { log.Printf("Unable to read password: %s", err) } + client := &http.Client{} + version, err := getVersion(client, config.GatewayURL, &credentials) + + if err != nil { + panic(err) + } + + log.Printf("Gateway version: %s, SHA: %s\n", version.Version.Release, version.Version.SHA) + fmt.Printf(`dry_run: %t gateway_url: %s inactivity_duration: %s `, dryRun, config.GatewayURL, config.InactivityDuration)
-
Apply the above patch to
main.go
patch --ignore-whitespace main.go patch_idler
-
Build the image
docker build -f Dockerfile -t openfaas/faas-idler:0.1.9-s390x .
-
-
- Download the source code
go get -d github.com/minio/minio cd $GOPATH/src/github.com/minio/minio git checkout RELEASE.2019-05-14T23-57-45Z
- Build the image
Note: Docker build may hang while fetching/building Go modules. You may want to kill the build process and start over again.
docker build -t minio/minio:RELEASE.2019-05-14T23-57-45Z .
- Download the source code
-
- Download the source code
go get -d github.com/minio/mc cd $GOPATH/src/github.com/minio/mc git checkout RELEASE.2019-05-01T23-27-44Z
- Build the image
docker build -f Dockerfile -t minio/mc:RELEASE.2019-05-01T23-27-44Z .
- Download the source code
-
mkdir $SOURCE_ROOT/sealed-secrets cd $SOURCE_ROOT/sealed-secrets
- Create
Dockerfile
with following content.FROM golang:1.12-alpine RUN apk add --no-cache make git && go get github.com/bitnami-labs/sealed-secrets/cmd/kubeseal \ && cd src/github.com/bitnami-labs/sealed-secrets/ && git checkout v0.7.0 \ && make && chmod +x controller kubeseal \ && cp controller /usr/local/bin/ && cp kubeseal /usr/local/bin/ EXPOSE 8080 ENTRYPOINT ["controller"]
- Build the image
docker build -t quay.io/bitnami/sealed-secrets-controller:v0.7.0 .
- Create
-
-
Build the image
cd $SOURCE_ROOT mkdir nginx-ingress-controller && cd $SOURCE_ROOT/nginx-ingress-controller wget -q https://raw.githubusercontent.com/linux-on-ibm-z/scripts/master/NGINX-ingress-controller/0.24.1/build_nginx-ingress-controller.sh bash build_nginx-ingress-controller.sh -y docker tag quay.io/kubernetes-ingress-controller/nginx-ingress-controller-s390x:0.24.1 quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.24.1
-
Customize the
nginx-ingress-controller
helm chartscd $SOURCE_ROOT/nginx-ingress-controller git clone --recursive https://github.com/helm/charts.git cd charts/stable
-
Apply the below patch to
nginx-ingress/values.yaml
--- nginx-ingress/values.yaml_orig 2019-07-12 00:07:23.846879737 -0400 +++ nginx-ingress/values.yaml 2019-07-12 00:54:20.447029528 -0400 @@ -5,7 +5,7 @@ name: controller image: repository: quay.io/kubernetes-ingress-controller/nginx-ingress-controller - tag: "0.25.0" + tag: "0.24.1" pullPolicy: IfNotPresent # www-data -> uid 33 runAsUser: 33
-
Package the helm charts
helm package nginx-ingress cp nginx-ingress-1.10.0.tgz $GOPATH/src/github.com/openfaas/faas-netes/docs/
-
-
-
go get -d github.com/bitnami-labs/sealed-secrets/cmd/kubeseal cd $GOPATH/src/github.com/bitnami-labs/sealed-secrets/cmd/kubeseal git checkout v0.7.0 go build cp kubeseal /usr/bin/kubeseal
Note: Warnings related to No GO files should be ignored.
-
go get -d github.com/openfaas/openfaas-cloud cd $GOPATH/src/github.com/openfaas/openfaas-cloud git checkout 0.9.4 cd edge-router && docker build -f Dockerfile -t openfaas/edge-router:0.6.1 . cd ../of-builder && docker build -f Dockerfile -t openfaas/of-builder:0.6.2 .
Note: Warnings related to No GO files should be ignored.
-
- Download the source code
go get -d github.com/kubernetes/ingress-gce cd $GOPATH/src/github.com/kubernetes/ingress-gce git checkout v1.5.0
- Modify the
Dockerfile.404-server
as below:sed -i 's/ARG_BIN/404-server/g' Dockerfile.404-server sed -i 's/ARG_ARCH/s390x/g' Dockerfile.404-server
- Modify the
Makefile
as below:sed -i 's/amd64/s390x/g' Makefile
- Build
make && cp .go/bin/404-server bin/s390x/
- Build the image
Note: Leave the tag as amd64 otherwise we need to create local helm charts.
docker build -f Dockerfile.404-server -t k8s.gcr.io/defaultbackend-amd64:1.5 .
- Download the source code
-
-
Download the source code
go get github.com/openfaas-incubator/of-watchdog cd $GOPATH/src/github.com/openfaas-incubator/of-watchdog git checkout 0.5.3 CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -installsuffix cgo -o of-watchdog . && cp of-watchdog /usr/bin/of-watchdog
-
Create
Dockerfile.s390x
with below contentFROM s390x/golang:1.10 RUN mkdir -p /go/src/github.com/openfaas-incubator/of-watchdog WORKDIR /go/src/github.com/openfaas-incubator/of-watchdog COPY vendor vendor COPY config config COPY executor executor COPY metrics metrics COPY metrics metrics COPY main.go . # Run a gofmt and exclude all vendored code. #RUN test -z "$(gofmt -l $(find . -type f -name '*.go' -not -path "./vendor/*"))" #RUN go test -v ./... # Stripping via -ldflags "-s -w" RUN CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' -installsuffix cgo -o of-watchdog . \ && cp of-watchdog /fwatchdog
-
Build the image
docker build -f Dockerfile.s390x -t openfaas/of-watchdog:0.5.3 .
-
-
-
Build image
functions/of-git-tar
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/git-tar rm -rf template/ cp /usr/bin/faas-cli . cp /usr/bin/fwatchdog .
-
Modify the
handler.go
file.--- function/handler.go_org 2019-07-14 01:03:19.934133583 -0400 +++ function/handler.go 2019-07-14 01:11:46.033434436 -0400 @@ -8,6 +8,7 @@ "log" "net/http" "os" + "os/exec" "path" "strconv" "strings" @@ -155,6 +156,15 @@ } os.Exit(-1) } + repCmd := exec.Command("cp", "/tmp/fixtemplate.sh", clonePath) + err = repCmd.Start() + err = repCmd.Wait() + + repCmd = exec.Command("sh", "fixtemplate.sh") + repCmd.Dir = clonePath + err = repCmd.Start() + err = repCmd.Wait() var shrinkWrapPath string shrinkWrapPath, err = shrinkwrap(pushEvent, clonePath)
-
Modify the
Dockerfile
as below.--- Dockerfile_orig 2019-07-14 00:57:14.794503742 -0400 +++ Dockerfile 2019-07-14 01:01:49.044223601 -0400 @@ -1,9 +1,8 @@ FROM golang:1.10-alpine3.9 as build + COPY faas-cli /usr/local/bin/faas-cli + COPY fwatchdog /usr/bin/fwatchdog RUN apk --no-cache add curl \ - && echo "Pulling watchdog binary from GitHub." \ - && curl -sSL https://github.com/openfaas/faas/releases/download/0.13.0/fwatchdog > /usr/bin/fwatchdog \ - && curl -sSL https://github.com/openfaas/faas-cli/releases/download/0.8.10/faas-cli > /usr/local/bin/faas-cli \ && chmod +x /usr/bin/fwatchdog \ && chmod +x /usr/local/bin/faas-cli \ && apk del curl --no-cache @@ -38,6 +37,16 @@ COPY --from=build /go/src/handler/handler . COPY --from=build /usr/bin/fwatchdog . + RUN echo "#!/bin/sh" >> /tmp/fixtemplate.sh && \ + echo "for dir in template/*" >> /tmp/fixtemplate.sh && \ + echo "do" >> /tmp/fixtemplate.sh && \ + echo " dockerfile=\`find \$dir -name Dockerfile\`" >> /tmp/fixtemplate.sh && \ + echo " sed -i 's/--from=watchdog \/fwatchdog/fwatchdog/' \$dockerfile" >> /tmp/fixtemplate.sh && \ + echo " sed -i '/classic-watchdog/d' \$dockerfile" >> /tmp/fixtemplate.sh && \ + echo " dirD=\`echo \$dockerfile|rev|cut -d\"/\" -f2-|rev\`" >> /tmp/fixtemplate.sh && \ + echo " cp /home/app/fwatchdog \$dirD/" >> /tmp/fixtemplate.sh && \ + echo "done" >> /tmp/fixtemplate.sh && \ + chmod 755 /tmp/fixtemplate.sh COPY --from=build /usr/local/bin/faas-cli /usr/local/bin/faas-cli RUN chmod 777 /tmp
-
Build the image
faas-cli build --image functions/of-git-tar:0.12.2 --lang Dockerfile --handler . --name git-tar
-
-
Build image
functions/of-buildshiprun
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/buildshiprun faas-cli build --image functions/of-buildshiprun:0.11.1 --lang go --handler . --name buildshiprun
-
Build image
functions/github-event
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/github-event faas-cli build --image functions/github-event:0.8.0 --lang go --handler . --name github-event
-
Build image
functions/import-secrets
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/import-secrets faas-cli build --image functions/import-secrets:0.3.3 --lang go --handler . --name import-secrets
-
Build image
functions/system-metrics
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/system-metrics faas-cli build --image functions/system-metrics:0.1.1 --lang go --handler . --name system-metrics
-
Build image
functions/github-status
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/github-status faas-cli build --image functions/github-status:0.3.6 --lang go --handler . --name github-status
-
Build image
functions/garbage-collect
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/garbage-collect faas-cli build --image functions/garbage-collect:0.4.4 --lang go --handler . --name garbage-collect
-
Build image
functions/pipeline-log:0.3.3
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/pipeline-log faas-cli build --image functions/pipeline-log:0.3.3 --lang go --handler . --name pipeline-log
-
Build image
functions/github-push
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/github-push faas-cli build --image functions/github-push:0.7.3 --lang go --handler . --name github-push
-
Build image
functions/audit-event
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/audit-event faas-cli build --image functions/audit-event:0.1.2 --lang go --handler . --name audit-event
-
Build image
functions/list-functions
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/list-functions faas-cli build --image functions/list-functions:0.4.7 --lang go --handler . --name list-functions
-
Build image
functions/of-cloud-dashboard
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/dashboard make faas-cli template pull https://github.com/openfaas-incubator/node10-express-template faas-cli build --image functions/of-cloud-dashboard:0.4.3 --lang node --handler . --name dashboard
-
Build image
functions/gitlab-status
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/gitlab-status faas-cli build --image functions/gitlab-status:0.1.1 --lang go --handler . --name gitlab-status
-
Build image
functions/gitlab-push
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/gitlab-push faas-cli build --image functions/gitlab-push:0.2.1 --lang go --handler . --name gitlab-push
-
Build image
functions/gitlab-event
cd $GOPATH/src/github.com/openfaas/openfaas-cloud/gitlab-event faas-cli build --image functions/gitlab-event:0.1.2 --lang go --handler . --name gitlab-event
-
-
cd $GOPATH/src/github.com/openfaas/openfaas-cloud mkdir alpine && cd alpine && wget -q https://raw.githubusercontent.com/openfaas/faas/master/sample-functions/AlpineFunction/Dockerfile sed -i 's/0.14.4/0.13.4/g' Dockerfile docker build -f Dockerfile -t functions/alpine:latest . cd ../ && rm -rf alpine/
-
cd $GOPATH/src/github.com/openfaas-incubator/ofc-bootstrap/ sed -i 's/Always/IfNotPresent/g' templates/edge-auth-dep.yml
-
cd $GOPATH/src/github.com/openfaas-incubator/ofc-bootstrap/
Note: If the patch fails use --ignore-whitespace option.
-
Apply the below patch to
scripts/deploy-cloud-components.sh
.--- scripts/deploy-cloud-components.sh_orig 2019-07-08 10:51:46.268870198 +0000 +++ scripts/deploy-cloud-components.sh 2019-07-08 10:52:21.891227857 +0000 @@ -17,7 +17,7 @@ kubectl apply -f ./tmp/openfaas-cloud/yaml/core/edge-router-dep.yml else # Disable auth service by pointing the router at the echo function: - sed s/auth.openfaas/echo.openfaas-fn/g ./tmp/openfaas-cloud/yaml/core/edge-router-dep.yml | kubectl apply -f - + sed 's/edge-auth.openfaas/echo.openfaas-fn/g' ./tmp/openfaas-cloud/yaml/core/edge-router-dep.yml | kubectl apply -f - fi kubectl apply -f ./tmp/openfaas-cloud/yaml/core/edge-router-svc.yml @@ -66,7 +66,7 @@ if [ "$GITLAB" = "true" ] ; then cp ../generated-gitlab.yml ./gitlab.yml echo "Deploying gitlab functions..." - faas deploy -f ./gitlab.yml + faas-cli deploy -f ./gitlab.yml fi cd ./dashboard
-
Apply the below patch to
scripts/clone-cloud-components.sh
diff --git a/scripts/clone-cloud-components.sh b/scripts/clone-cloud-components.sh index 781ed24..ef629a8 100755 --- a/scripts/clone-cloud-components.sh +++ b/scripts/clone-cloud-components.sh @@ -7,3 +7,5 @@ git clone https://github.com/openfaas/openfaas-cloud ./tmp/openfaas-cloud cd ./tmp/openfaas-cloud echo "Checking out openfaas/openfaas-cloud@$TAG" git checkout $TAG +sed -i 's/Always/IfNotPresent/g' yaml/core/edge-router-dep.yml +sed -i 's/Always/IfNotPresent/g' yaml/core/of-builder-dep.yml
-
Apply the below patch to
templates/stack.yml
--- stack.yml_old 2019-07-14 11:37:57.845814918 -0400 +++ stack.yml 2019-07-14 11:39:26.415784855 -0400 @@ -49,7 +49,7 @@ git-tar: lang: dockerfile handler: ./git-tar - image: functions/of-git-tar:0.13.0 + image: functions/of-git-tar:0.12.2 labels: openfaas-cloud: "1" role: openfaas-system @@ -179,7 +179,7 @@ list-functions: lang: go handler: ./list-functions - image: functions/list-functions:0.4.8 + image: functions/list-functions:0.4.7 labels: openfaas-cloud: "1" role: openfaas-system
-
Apply the below patch to
scripts/create-tiller.sh
diff --git a/scripts/create-tiller.sh b/scripts/create-tiller.sh index 30b9623..fee4b55 100755 --- a/scripts/create-tiller.sh +++ b/scripts/create-tiller.sh @@ -1,3 +1,2 @@ #!/bin/bash - -helm init --skip-refresh --upgrade --service-account tiller +helm init --skip-refresh --service-account tiller
-
Apply the below patch to
scripts/export-sealed-secret-pubcert.sh
diff --git a/scripts/export-sealed-secret-pubcert.sh b/scripts/export-sealed-secret-pubcert.sh index babee7d..b560418 100755 --- a/scripts/export-sealed-secret-pubcert.sh +++ b/scripts/export-sealed-secret-pubcert.sh @@ -5,14 +5,12 @@ then GOOS=$(go env GOOS) GOARCH=$(go env GOARCH) - release=$(curl -sI https://github.com/bitnami-labs/sealed-secrets/releases/latest | grep Location | awk -F"/" '{ printf "%s", $NF }' | tr -d '\r') + #release=$(curl -sI https://github.com/bitnami-labs/sealed-secrets/releases/latest | grep Location | awk -F"/" '{ printf "%s", $NF }' | tr -d '\r') # release=$(curl --silent "https://api.github.com/repos/bitnami-labs/sealed-secrets/releases/latest" | sed -n 's/.*"tag_name": *"\([^"]*\)".*/\1/p') - echo "SealedSecrets release: $release" - - curl -sLSf https://github.com/bitnami/sealed-secrets/releases/download/$release/kubeseal-$GOOS-$GOARCH > kubeseal && \ - chmod +x kubeseal + cd $GOPATH/src/github.com/bitnami-labs/sealed-secrets/cmd/kubeseal + cp kubeseal /usr/bin/kubeseal fi -./kubeseal --fetch-cert --controller-name=ofc-sealedsecrets-sealed-secrets > tmp/pub-cert.pem && \ +/usr/bin/kubeseal --fetch-cert --controller-name=ofc-sealedsecrets-sealed-secrets > tmp/pub-cert.pem && \ cat tmp/pub-cert.pem
-
Apply the below patch to
scripts/install-openfaas.sh
diff --git a/scripts/install-openfaas.sh b/scripts/install-openfaas.sh index a99504e..6b89fdc 100755 --- a/scripts/install-openfaas.sh +++ b/scripts/install-openfaas.sh @@ -1,6 +1,6 @@ #!/bin/bash -helm repo add openfaas https://openfaas.github.io/faas-netes +helm repo add openfaas http://127.0.0.1:8879/charts helm repo update && \ helm upgrade openfaas --install openfaas/openfaas \
-
Add the file
minio-sa.yml
inofc-bootstrap/scripts
apiVersion: v1 kind: ServiceAccount metadata: namespace: openfaas name: cloud-minio
-
Apply the below patch to
scripts/install-minio.sh
@@ -3,6 +3,7 @@ export ACCESS_KEY=$(kubectl get secret -n openfaas-fn s3-access-key -o jsonpath='{.data.s3-access-key}'| base64 --decode) export SECRET_KEY=$(kubectl get secret -n openfaas-fn s3-secret-key -o jsonpath='{.data.s3-secret-key}'| base64 --decode) +kubectl apply -f $GOPATH/src/github.com/openfaas-incubator/ofc-bootstrap/scripts/minio-sa.yml helm install --name cloud-minio --namespace openfaas \ --set accessKey="$ACCESS_KEY",secretKey="$SECRET_KEY",replicas=1,persistence.enabled=false,service.port=9000,service.type=NodePort \ stable/minio
-
Apply the below patch to
scripts/install-nginx.sh
--- install-nginx.sh_orig 2019-07-12 00:14:36.146909734 -0400 +++ install-nginx.sh 2019-07-12 00:47:41.037009544 -0400 @@ -1,4 +1,5 @@ #!/bin/bash -echo helm install stable/nginx-ingress --name nginxingress --set rbac.create=true$ADDITIONAL_SET -helm install stable/nginx-ingress --name nginxingress --set rbac.create=true$ADDITIONAL_SET +echo helm install openfaas/nginx-ingress --name nginxingress --set rbac.create=true$ADDITIONAL_SET +helm repo add openfaas http://127.0.0.1:8879/charts +helm install openfaas/nginx-ingress --name nginxingress --set rbac.create=true$ADDITIONAL_SET
-
-
cd $GOPATH/src/github.com/openfaas/faas-netes helm repo index docs --url https://openfaas.github.io/faas-netes/ --merge ./docs/index.yaml helm serve &
-
Note: These guidelines supplement ofc-bootstrap instructions. Before you can deploy OpenFaas Cloud using ofc-bootstap make sure your environment is ready for deployment.
- Ensure you have a private Docker registry setup to hold OpenFaas functions deployed by the OpenFaas Cloud pipeline.
- Gitlab acount to host your OpenFaaS functions and appropriate Hooks to trigger the build.
- A DNS server as required by OpenFaas Cloud installation
Once all the required images have been built by preceding steps and init.yaml file has been created as per ofc-bootstarp instructions, you can start the deployment as follows:
cd $GOPATH/src/github.com/openfaas-incubator/ofc-bootstrap/ ./ofc-bootstrap -yaml=init.yaml
https://github.com/openfaas-incubator/ofc-bootstrap#create-your-own-inityaml
https://github.com/openfaas/openfaas-cloud/blob/0.9.4/docs/GITLAB.md