Compare commits
84
Commits
v1.18.0-rc1
...
v1.19.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f955d1182a | ||
|
|
1cbc0ba9ff | ||
|
|
0936c6a2d7 | ||
|
|
f0ec328d24 | ||
|
|
2b1ac28300 | ||
|
|
0fb2096788 | ||
|
|
6e375629e7 | ||
|
|
1133386ce9 | ||
|
|
f99f10134c | ||
|
|
6c431e4d9b | ||
|
|
31c81e132e | ||
|
|
a5f3402dbc | ||
|
|
784bd82ec7 | ||
|
|
cd742a6d18 | ||
|
|
32530ac474 | ||
|
|
117c383fac | ||
|
|
3a1db58066 | ||
|
|
ce42dbc647 | ||
|
|
3840a90b54 | ||
|
|
77d4745242 | ||
|
|
715ef8267e | ||
|
|
b622f13ab6 | ||
|
|
2213ebc637 | ||
|
|
1f138d03fa | ||
|
|
a8e8cfb72d | ||
|
|
963081e096 | ||
|
|
a96b92f41f | ||
|
|
a93e9b4074 | ||
|
|
0de8923ea8 | ||
|
|
1cb18a78a6 | ||
|
|
4ebdb16623 | ||
|
|
3c0c96e98e | ||
|
|
e462f9ab71 | ||
|
|
d025022042 | ||
|
|
c4ed12d9c5 | ||
|
|
d3a615211f | ||
|
|
2b017f810a | ||
|
|
5c3c55d52f | ||
|
|
5db09a899a | ||
|
|
0edf2640b1 | ||
|
|
deb3523b59 | ||
|
|
0635a6a644 | ||
|
|
a9d55423ae | ||
|
|
496e4e3162 | ||
|
|
6667d7e383 | ||
|
|
922cb34243 | ||
|
|
fcf4fd2e63 | ||
|
|
69470a68d0 | ||
|
|
8df4fd0e7c | ||
|
|
275cfb55a6 | ||
|
|
3e25f474b0 | ||
|
|
d52c60216e | ||
|
|
16cbb87eab | ||
|
|
5fae765323 | ||
|
|
31f4f8c57e | ||
|
|
3ae1742953 | ||
|
|
d16de59e9f | ||
|
|
61d98152f1 | ||
|
|
300739c031 | ||
|
|
94eead8697 | ||
|
|
612206b033 | ||
|
|
985d94b5b8 | ||
|
|
4dde3c9520 | ||
|
|
9ccd2a4128 | ||
|
|
e9fd13b60c | ||
|
|
ee623d31b2 | ||
|
|
9612baecc0 | ||
|
|
691feaa84f | ||
|
|
6bf0c4124a | ||
|
|
9eb7acf061 | ||
|
|
e015d6d61f | ||
|
|
918214c0a9 | ||
|
|
526b5f0beb | ||
|
|
0aec9e139e | ||
|
|
8a3d8a4762 | ||
|
|
38d380924d | ||
|
|
1e0641d5f9 | ||
|
|
f11902e81b | ||
|
|
8db3d0065a | ||
|
|
92453908c6 | ||
|
|
28daccb3aa | ||
|
|
31639774b0 | ||
|
|
82d066b73a | ||
|
|
9c4fc4a306 |
@@ -24,7 +24,7 @@ jobs:
|
|||||||
- name: Set up Go
|
- name: Set up Go
|
||||||
uses: actions/setup-go@v3
|
uses: actions/setup-go@v3
|
||||||
with:
|
with:
|
||||||
go-version: 1.18.5
|
go-version-file: "go.mod"
|
||||||
|
|
||||||
- name: Install dashboard linter
|
- name: Install dashboard linter
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
env:
|
env:
|
||||||
GOLANGCI_LINT_VERSION: v1.49.0
|
GOLANGCI_LINT_VERSION: v1.51.1
|
||||||
GOLANGCI_LINT_TIMEOUT: 5m
|
GOLANGCI_LINT_TIMEOUT: 5m
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Install Skaffold
|
- name: Install Skaffold
|
||||||
run: |
|
run: |
|
||||||
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/v1.39.2/skaffold-linux-amd64
|
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/v2.0.3/skaffold-linux-amd64
|
||||||
sudo install skaffold /usr/local/bin/
|
sudo install skaffold /usr/local/bin/
|
||||||
skaffold version
|
skaffold version
|
||||||
|
|
||||||
@@ -91,7 +91,8 @@ jobs:
|
|||||||
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
|
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
|
||||||
helm repo update
|
helm repo update
|
||||||
kubectl create ns monitoring
|
kubectl create ns monitoring
|
||||||
helm install monitoring prometheus-community/prometheus -n monitoring
|
helm install prometheus prometheus-community/kube-prometheus-stack -n monitoring \
|
||||||
|
--version 45.28.0 --set grafana.enabled=false --set alertmanager.enabled=false
|
||||||
|
|
||||||
- name: Build and Install Fission CLI
|
- name: Build and Install Fission CLI
|
||||||
run: |
|
run: |
|
||||||
@@ -133,6 +134,12 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
kind export logs --name kind kind-logs
|
kind export logs --name kind kind-logs
|
||||||
|
|
||||||
|
- name: Backup prometheus data
|
||||||
|
timeout-minutes: 10
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
TRACE=1 ./hack/backup-prometheus.sh
|
||||||
|
|
||||||
- name: Archive fission dump
|
- name: Archive fission dump
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
if: ${{ failure() || cancelled() }}
|
if: ${{ failure() || cancelled() }}
|
||||||
@@ -142,6 +149,15 @@ jobs:
|
|||||||
path: fission-dump/*.zip
|
path: fission-dump/*.zip
|
||||||
retention-days: 5
|
retention-days: 5
|
||||||
|
|
||||||
|
- name: Archive prometheus dump
|
||||||
|
timeout-minutes: 10
|
||||||
|
if: ${{ always() }}
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: prom-dump-${{ github.run_id }}-${{ matrix.kindversion }}
|
||||||
|
path: /tmp/prometheus/*
|
||||||
|
retention-days: 5
|
||||||
|
|
||||||
- name: Archive kind logs
|
- name: Archive kind logs
|
||||||
timeout-minutes: 10
|
timeout-minutes: 10
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
@@ -150,3 +166,148 @@ jobs:
|
|||||||
name: kind-logs-${{ github.run_id }}-${{ matrix.kindversion }}
|
name: kind-logs-${{ github.run_id }}-${{ matrix.kindversion }}
|
||||||
path: kind-logs/*
|
path: kind-logs/*
|
||||||
retention-days: 5
|
retention-days: 5
|
||||||
|
|
||||||
|
# Job to ensure backward compatibility if function and builder pods are created
|
||||||
|
# inside functionNamespace and builderNamespace
|
||||||
|
integration-test-old:
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
if: ${{ contains(github.event.pull_request.labels.*.name, 'run-old-ci') }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
kindversion: ["v1.19.16"]
|
||||||
|
os: [ubuntu-latest]
|
||||||
|
steps:
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: setup go
|
||||||
|
uses: actions/setup-go@v3
|
||||||
|
with:
|
||||||
|
go-version-file: "go.mod"
|
||||||
|
cache: true
|
||||||
|
|
||||||
|
- name: Checkout sources
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
repository: fission/examples
|
||||||
|
path: examples
|
||||||
|
|
||||||
|
- name: Helm installation
|
||||||
|
uses: Azure/setup-helm@v3
|
||||||
|
with:
|
||||||
|
version: ${{ env.HELM_VERSION }}
|
||||||
|
|
||||||
|
- name: Kind Cluster
|
||||||
|
uses: engineerd/setup-kind@v0.5.0
|
||||||
|
with:
|
||||||
|
image: kindest/node:${{ matrix.kindversion }}
|
||||||
|
version: ${{ env.KIND_VERSION }}
|
||||||
|
config: kind.yaml
|
||||||
|
|
||||||
|
- name: Configuring and testing the Installation
|
||||||
|
run: |
|
||||||
|
kubectl cluster-info --context kind-kind
|
||||||
|
kubectl get nodes
|
||||||
|
sudo apt-get install -y apache2-utils
|
||||||
|
kubectl config use-context kind-kind
|
||||||
|
kubectl config view
|
||||||
|
|
||||||
|
- name: Helm chart lint
|
||||||
|
run: |
|
||||||
|
helm lint charts/fission-all/
|
||||||
|
|
||||||
|
- name: Install Skaffold
|
||||||
|
run: |
|
||||||
|
curl -Lo skaffold https://storage.googleapis.com/skaffold/releases/v2.0.3/skaffold-linux-amd64
|
||||||
|
sudo install skaffold /usr/local/bin/
|
||||||
|
skaffold version
|
||||||
|
|
||||||
|
- name: Install GoReleaser
|
||||||
|
uses: goreleaser/goreleaser-action@v3
|
||||||
|
with:
|
||||||
|
install-only: true
|
||||||
|
|
||||||
|
- name: Setup Prometheus Stack
|
||||||
|
run: |
|
||||||
|
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
|
||||||
|
helm repo update
|
||||||
|
kubectl create ns monitoring
|
||||||
|
helm install prometheus prometheus-community/kube-prometheus-stack -n monitoring \
|
||||||
|
--version 45.28.0 --set grafana.enabled=false --set alertmanager.enabled=false
|
||||||
|
|
||||||
|
- name: Build and Install Fission CLI
|
||||||
|
run: |
|
||||||
|
make debug-vars
|
||||||
|
make build-fission-cli
|
||||||
|
sudo make install-fission-cli
|
||||||
|
sudo chmod +x /usr/local/bin/fission
|
||||||
|
|
||||||
|
- name: Build and Install Fission
|
||||||
|
timeout-minutes: 10
|
||||||
|
run: |
|
||||||
|
kubectl create ns fission
|
||||||
|
make create-crds
|
||||||
|
SKAFFOLD_PROFILE=kind-ci-old make skaffold-deploy
|
||||||
|
|
||||||
|
- name: Port-forward fission components
|
||||||
|
run: |
|
||||||
|
kubectl port-forward svc/router 8888:80 -nfission &
|
||||||
|
kubectl port-forward svc/controller 8889:80 -nfission &
|
||||||
|
|
||||||
|
- name: Get fission version
|
||||||
|
timeout-minutes: 10
|
||||||
|
run: |
|
||||||
|
fission version
|
||||||
|
|
||||||
|
- name: Integration tests
|
||||||
|
timeout-minutes: 90
|
||||||
|
run: |
|
||||||
|
export FUNCTION_NAMESPACE=fission-function
|
||||||
|
export BUILDER_NAMESPACE=fission-builder
|
||||||
|
./test/kind_CI.sh
|
||||||
|
|
||||||
|
- name: Collect Fission Dump
|
||||||
|
timeout-minutes: 5
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
command -v fission && fission support dump
|
||||||
|
|
||||||
|
- name: Kind export logs
|
||||||
|
timeout-minutes: 10
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
kind export logs --name kind kind-logs
|
||||||
|
|
||||||
|
- name: Backup prometheus data
|
||||||
|
timeout-minutes: 10
|
||||||
|
if: ${{ always() }}
|
||||||
|
run: |
|
||||||
|
TRACE=1 ./hack/backup-prometheus.sh
|
||||||
|
|
||||||
|
- name: Archive fission dump
|
||||||
|
timeout-minutes: 10
|
||||||
|
if: ${{ failure() || cancelled() }}
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: fission-dump-${{ github.run_id }}-${{ github.job_id }}-${{ matrix.kindversion }}
|
||||||
|
path: fission-dump/*.zip
|
||||||
|
retention-days: 5
|
||||||
|
|
||||||
|
- name: Archive prometheus dump
|
||||||
|
timeout-minutes: 10
|
||||||
|
if: ${{ always() }}
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: prom-dump-${{ github.run_id }}-${{ github.job_id }}-${{ matrix.kindversion }}
|
||||||
|
path: /tmp/prometheus/*
|
||||||
|
retention-days: 5
|
||||||
|
|
||||||
|
- name: Archive kind logs
|
||||||
|
timeout-minutes: 10
|
||||||
|
if: ${{ always() }}
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: kind-logs-${{ github.run_id }}-${{ github.job_id }}-${{ matrix.kindversion }}
|
||||||
|
path: kind-logs/*
|
||||||
|
retention-days: 5
|
||||||
@@ -43,7 +43,14 @@ jobs:
|
|||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v2
|
uses: docker/setup-qemu-action@v2
|
||||||
|
|
||||||
- name: Docker Login
|
- name: Login to ghcr.io
|
||||||
|
uses: docker/login-action@v2
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Login to docker.io
|
||||||
uses: docker/login-action@v2
|
uses: docker/login-action@v2
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
||||||
|
|||||||
@@ -37,3 +37,6 @@ manifest/
|
|||||||
coverage.txt
|
coverage.txt
|
||||||
|
|
||||||
cosign.key
|
cosign.key
|
||||||
|
|
||||||
|
# Dumps
|
||||||
|
.dumps/
|
||||||
|
|||||||
+1
-1
@@ -32,4 +32,4 @@ linters-settings:
|
|||||||
goimports:
|
goimports:
|
||||||
# put imports beginning with prefix after 3rd-party packages;
|
# put imports beginning with prefix after 3rd-party packages;
|
||||||
# it's a comma-separated list of prefixes
|
# it's a comma-separated list of prefixes
|
||||||
local-prefixes: github.com/fission/fission
|
local: github.com/fission/fission
|
||||||
|
|||||||
+171
-16
@@ -84,8 +84,11 @@ dockers:
|
|||||||
image_templates:
|
image_templates:
|
||||||
- "fission/builder:latest-amd64"
|
- "fission/builder:latest-amd64"
|
||||||
- "fission/builder:{{ .Tag }}-amd64"
|
- "fission/builder:{{ .Tag }}-amd64"
|
||||||
dockerfile: cmd/builder/Dockerfile.fission-builder
|
- "ghcr.io/fission/builder:latest-amd64"
|
||||||
|
- "ghcr.io/fission/builder:{{ .Tag }}-amd64"
|
||||||
|
dockerfile: cmd/builder/Dockerfile
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
- "--platform=linux/amd64"
|
- "--platform=linux/amd64"
|
||||||
- "--label=org.opencontainers.image.created={{.Date}}"
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
@@ -96,28 +99,60 @@ dockers:
|
|||||||
image_templates:
|
image_templates:
|
||||||
- "fission/fetcher:latest-amd64"
|
- "fission/fetcher:latest-amd64"
|
||||||
- "fission/fetcher:{{ .Tag }}-amd64"
|
- "fission/fetcher:{{ .Tag }}-amd64"
|
||||||
dockerfile: cmd/fetcher/Dockerfile.fission-fetcher
|
- "ghcr.io/fission/fetcher:latest-amd64"
|
||||||
|
- "ghcr.io/fission/fetcher:{{ .Tag }}-amd64"
|
||||||
|
dockerfile: cmd/fetcher/Dockerfile
|
||||||
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
|
- "--platform=linux/amd64"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Tag}}"
|
||||||
- <<: *docker-amd64
|
- <<: *docker-amd64
|
||||||
ids:
|
ids:
|
||||||
- fission-bundle
|
- fission-bundle
|
||||||
image_templates:
|
image_templates:
|
||||||
- "fission/fission-bundle:latest-amd64"
|
- "fission/fission-bundle:latest-amd64"
|
||||||
- "fission/fission-bundle:{{ .Tag }}-amd64"
|
- "fission/fission-bundle:{{ .Tag }}-amd64"
|
||||||
dockerfile: cmd/fission-bundle/Dockerfile.fission-bundle
|
- "ghcr.io/fission/fission-bundle:latest-amd64"
|
||||||
|
- "ghcr.io/fission/fission-bundle:{{ .Tag }}-amd64"
|
||||||
|
dockerfile: cmd/fission-bundle/Dockerfile
|
||||||
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
|
- "--platform=linux/amd64"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Tag}}"
|
||||||
- <<: *docker-amd64
|
- <<: *docker-amd64
|
||||||
ids:
|
ids:
|
||||||
- pre-upgrade-checks
|
- pre-upgrade-checks
|
||||||
image_templates:
|
image_templates:
|
||||||
- "fission/pre-upgrade-checks:latest-amd64"
|
- "fission/pre-upgrade-checks:latest-amd64"
|
||||||
- "fission/pre-upgrade-checks:{{ .Tag }}-amd64"
|
- "fission/pre-upgrade-checks:{{ .Tag }}-amd64"
|
||||||
dockerfile: cmd/preupgradechecks/Dockerfile.fission-preupgradechecks
|
- "ghcr.io/fission/pre-upgrade-checks:latest-amd64"
|
||||||
|
- "ghcr.io/fission/pre-upgrade-checks:{{ .Tag }}-amd64"
|
||||||
|
dockerfile: cmd/preupgradechecks/Dockerfile
|
||||||
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
|
- "--platform=linux/amd64"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Tag}}"
|
||||||
- <<: *docker-amd64
|
- <<: *docker-amd64
|
||||||
ids:
|
ids:
|
||||||
- reporter
|
- reporter
|
||||||
image_templates:
|
image_templates:
|
||||||
- "fission/reporter:latest-amd64"
|
- "fission/reporter:latest-amd64"
|
||||||
- "fission/reporter:{{ .Tag }}-amd64"
|
- "fission/reporter:{{ .Tag }}-amd64"
|
||||||
dockerfile: cmd/reporter/Dockerfile.reporter
|
- "ghcr.io/fission/reporter:latest-amd64"
|
||||||
|
- "ghcr.io/fission/reporter:{{ .Tag }}-amd64"
|
||||||
|
dockerfile: cmd/reporter/Dockerfile
|
||||||
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
|
- "--platform=linux/amd64"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Tag}}"
|
||||||
- &docker-arm64
|
- &docker-arm64
|
||||||
use: buildx
|
use: buildx
|
||||||
goos: linux
|
goos: linux
|
||||||
@@ -127,8 +162,11 @@ dockers:
|
|||||||
image_templates:
|
image_templates:
|
||||||
- "fission/builder:latest-arm64"
|
- "fission/builder:latest-arm64"
|
||||||
- "fission/builder:{{ .Tag }}-arm64"
|
- "fission/builder:{{ .Tag }}-arm64"
|
||||||
dockerfile: cmd/builder/Dockerfile.fission-builder
|
- "ghcr.io/fission/builder:latest-arm64"
|
||||||
|
- "ghcr.io/fission/builder:{{ .Tag }}-arm64"
|
||||||
|
dockerfile: cmd/builder/Dockerfile
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
- "--platform=linux/arm64"
|
- "--platform=linux/arm64"
|
||||||
- "--label=org.opencontainers.image.created={{.Date}}"
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
@@ -139,28 +177,60 @@ dockers:
|
|||||||
image_templates:
|
image_templates:
|
||||||
- "fission/fetcher:latest-arm64"
|
- "fission/fetcher:latest-arm64"
|
||||||
- "fission/fetcher:{{ .Tag }}-arm64"
|
- "fission/fetcher:{{ .Tag }}-arm64"
|
||||||
dockerfile: cmd/fetcher/Dockerfile.fission-fetcher
|
- "ghcr.io/fission/fetcher:latest-arm64"
|
||||||
|
- "ghcr.io/fission/fetcher:{{ .Tag }}-arm64"
|
||||||
|
dockerfile: cmd/fetcher/Dockerfile
|
||||||
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
|
- "--platform=linux/arm64"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Tag}}"
|
||||||
- <<: *docker-arm64
|
- <<: *docker-arm64
|
||||||
ids:
|
ids:
|
||||||
- fission-bundle
|
- fission-bundle
|
||||||
image_templates:
|
image_templates:
|
||||||
- "fission/fission-bundle:latest-arm64"
|
- "fission/fission-bundle:latest-arm64"
|
||||||
- "fission/fission-bundle:{{ .Tag }}-arm64"
|
- "fission/fission-bundle:{{ .Tag }}-arm64"
|
||||||
dockerfile: cmd/fission-bundle/Dockerfile.fission-bundle
|
- "ghcr.io/fission/fission-bundle:latest-arm64"
|
||||||
|
- "ghcr.io/fission/fission-bundle:{{ .Tag }}-arm64"
|
||||||
|
dockerfile: cmd/fission-bundle/Dockerfile
|
||||||
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
|
- "--platform=linux/arm64"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Tag}}"
|
||||||
- <<: *docker-arm64
|
- <<: *docker-arm64
|
||||||
ids:
|
ids:
|
||||||
- pre-upgrade-checks
|
- pre-upgrade-checks
|
||||||
image_templates:
|
image_templates:
|
||||||
- "fission/pre-upgrade-checks:latest-arm64"
|
- "fission/pre-upgrade-checks:latest-arm64"
|
||||||
- "fission/pre-upgrade-checks:{{ .Tag }}-arm64"
|
- "fission/pre-upgrade-checks:{{ .Tag }}-arm64"
|
||||||
dockerfile: cmd/preupgradechecks/Dockerfile.fission-preupgradechecks
|
- "ghcr.io/fission/pre-upgrade-checks:latest-arm64"
|
||||||
|
- "ghcr.io/fission/pre-upgrade-checks:{{ .Tag }}-arm64"
|
||||||
|
dockerfile: cmd/preupgradechecks/Dockerfile
|
||||||
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
|
- "--platform=linux/arm64"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Tag}}"
|
||||||
- <<: *docker-arm64
|
- <<: *docker-arm64
|
||||||
ids:
|
ids:
|
||||||
- reporter
|
- reporter
|
||||||
image_templates:
|
image_templates:
|
||||||
- "fission/reporter:latest-arm64"
|
- "fission/reporter:latest-arm64"
|
||||||
- "fission/reporter:{{ .Tag }}-arm64"
|
- "fission/reporter:{{ .Tag }}-arm64"
|
||||||
dockerfile: cmd/reporter/Dockerfile.reporter
|
- "ghcr.io/fission/reporter:latest-arm64"
|
||||||
|
- "ghcr.io/fission/reporter:{{ .Tag }}-arm64"
|
||||||
|
dockerfile: cmd/reporter/Dockerfile
|
||||||
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
|
- "--platform=linux/arm64"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Tag}}"
|
||||||
- &docker-armv7
|
- &docker-armv7
|
||||||
use: buildx
|
use: buildx
|
||||||
goos: linux
|
goos: linux
|
||||||
@@ -171,8 +241,11 @@ dockers:
|
|||||||
image_templates:
|
image_templates:
|
||||||
- "fission/builder:latest-armv7"
|
- "fission/builder:latest-armv7"
|
||||||
- "fission/builder:{{ .Tag }}-armv7"
|
- "fission/builder:{{ .Tag }}-armv7"
|
||||||
dockerfile: cmd/builder/Dockerfile.fission-builder
|
- "ghcr.io/fission/builder:latest-armv7"
|
||||||
|
- "ghcr.io/fission/builder:{{ .Tag }}-armv7"
|
||||||
|
dockerfile: cmd/builder/Dockerfile
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
- "--platform=linux/arm/v7"
|
- "--platform=linux/arm/v7"
|
||||||
- "--label=org.opencontainers.image.created={{.Date}}"
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
@@ -183,74 +256,156 @@ dockers:
|
|||||||
image_templates:
|
image_templates:
|
||||||
- "fission/fetcher:latest-armv7"
|
- "fission/fetcher:latest-armv7"
|
||||||
- "fission/fetcher:{{ .Tag }}-armv7"
|
- "fission/fetcher:{{ .Tag }}-armv7"
|
||||||
dockerfile: cmd/fetcher/Dockerfile.fission-fetcher
|
- "ghcr.io/fission/fetcher:latest-armv7"
|
||||||
|
- "ghcr.io/fission/fetcher:{{ .Tag }}-armv7"
|
||||||
|
dockerfile: cmd/fetcher/Dockerfile
|
||||||
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
|
- "--platform=linux/arm/v7"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Tag}}"
|
||||||
- <<: *docker-armv7
|
- <<: *docker-armv7
|
||||||
ids:
|
ids:
|
||||||
- fission-bundle
|
- fission-bundle
|
||||||
image_templates:
|
image_templates:
|
||||||
- "fission/fission-bundle:latest-armv7"
|
- "fission/fission-bundle:latest-armv7"
|
||||||
- "fission/fission-bundle:{{ .Tag }}-armv7"
|
- "fission/fission-bundle:{{ .Tag }}-armv7"
|
||||||
dockerfile: cmd/fission-bundle/Dockerfile.fission-bundle
|
- "ghcr.io/fission/fission-bundle:latest-armv7"
|
||||||
|
- "ghcr.io/fission/fission-bundle:{{ .Tag }}-armv7"
|
||||||
|
dockerfile: cmd/fission-bundle/Dockerfile
|
||||||
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
|
- "--platform=linux/arm/v7"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Tag}}"
|
||||||
- <<: *docker-armv7
|
- <<: *docker-armv7
|
||||||
ids:
|
ids:
|
||||||
- pre-upgrade-checks
|
- pre-upgrade-checks
|
||||||
image_templates:
|
image_templates:
|
||||||
- "fission/pre-upgrade-checks:latest-armv7"
|
- "fission/pre-upgrade-checks:latest-armv7"
|
||||||
- "fission/pre-upgrade-checks:{{ .Tag }}-armv7"
|
- "fission/pre-upgrade-checks:{{ .Tag }}-armv7"
|
||||||
dockerfile: cmd/preupgradechecks/Dockerfile.fission-preupgradechecks
|
- "ghcr.io/fission/pre-upgrade-checks:latest-armv7"
|
||||||
|
- "ghcr.io/fission/pre-upgrade-checks:{{ .Tag }}-armv7"
|
||||||
|
dockerfile: cmd/preupgradechecks/Dockerfile
|
||||||
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
|
- "--platform=linux/arm/v7"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Tag}}"
|
||||||
- <<: *docker-armv7
|
- <<: *docker-armv7
|
||||||
ids:
|
ids:
|
||||||
- reporter
|
- reporter
|
||||||
image_templates:
|
image_templates:
|
||||||
- "fission/reporter:latest-armv7"
|
- "fission/reporter:latest-armv7"
|
||||||
- "fission/reporter:{{ .Tag }}-armv7"
|
- "fission/reporter:{{ .Tag }}-armv7"
|
||||||
dockerfile: cmd/reporter/Dockerfile.reporter
|
- "ghcr.io/fission/reporter:latest-armv7"
|
||||||
|
- "ghcr.io/fission/reporter:{{ .Tag }}-armv7"
|
||||||
|
dockerfile: cmd/reporter/Dockerfile
|
||||||
|
build_flag_templates:
|
||||||
|
- "--label=org.opencontainers.image.source={{.GitURL}}"
|
||||||
|
- "--platform=linux/arm/v7"
|
||||||
|
- "--label=org.opencontainers.image.created={{.Date}}"
|
||||||
|
- "--label=org.opencontainers.image.revision={{.FullCommit}}"
|
||||||
|
- "--label=org.opencontainers.image.version={{.Tag}}"
|
||||||
docker_manifests:
|
docker_manifests:
|
||||||
|
- name_template: ghcr.io/fission/builder:{{ .Tag }}
|
||||||
|
image_templates:
|
||||||
|
- ghcr.io/fission/builder:{{ .Tag }}-amd64
|
||||||
|
- ghcr.io/fission/builder:{{ .Tag }}-arm64
|
||||||
|
- ghcr.io/fission/builder:{{ .Tag }}-armv7
|
||||||
- name_template: fission/builder:{{ .Tag }}
|
- name_template: fission/builder:{{ .Tag }}
|
||||||
image_templates:
|
image_templates:
|
||||||
- fission/builder:{{ .Tag }}-amd64
|
- fission/builder:{{ .Tag }}-amd64
|
||||||
- fission/builder:{{ .Tag }}-arm64
|
- fission/builder:{{ .Tag }}-arm64
|
||||||
- fission/builder:{{ .Tag }}-armv7
|
- fission/builder:{{ .Tag }}-armv7
|
||||||
|
- name_template: ghcr.io/fission/fetcher:{{ .Tag }}
|
||||||
|
image_templates:
|
||||||
|
- ghcr.io/fission/fetcher:{{ .Tag }}-amd64
|
||||||
|
- ghcr.io/fission/fetcher:{{ .Tag }}-arm64
|
||||||
|
- ghcr.io/fission/fetcher:{{ .Tag }}-armv7
|
||||||
- name_template: fission/fetcher:{{ .Tag }}
|
- name_template: fission/fetcher:{{ .Tag }}
|
||||||
image_templates:
|
image_templates:
|
||||||
- fission/fetcher:{{ .Tag }}-amd64
|
- fission/fetcher:{{ .Tag }}-amd64
|
||||||
- fission/fetcher:{{ .Tag }}-arm64
|
- fission/fetcher:{{ .Tag }}-arm64
|
||||||
- fission/fetcher:{{ .Tag }}-armv7
|
- fission/fetcher:{{ .Tag }}-armv7
|
||||||
|
- name_template: ghcr.io/fission/fission-bundle:{{ .Tag }}
|
||||||
|
image_templates:
|
||||||
|
- ghcr.io/fission/fission-bundle:{{ .Tag }}-amd64
|
||||||
|
- ghcr.io/fission/fission-bundle:{{ .Tag }}-arm64
|
||||||
|
- ghcr.io/fission/fission-bundle:{{ .Tag }}-armv7
|
||||||
- name_template: fission/fission-bundle:{{ .Tag }}
|
- name_template: fission/fission-bundle:{{ .Tag }}
|
||||||
image_templates:
|
image_templates:
|
||||||
- fission/fission-bundle:{{ .Tag }}-amd64
|
- fission/fission-bundle:{{ .Tag }}-amd64
|
||||||
- fission/fission-bundle:{{ .Tag }}-arm64
|
- fission/fission-bundle:{{ .Tag }}-arm64
|
||||||
- fission/fission-bundle:{{ .Tag }}-armv7
|
- fission/fission-bundle:{{ .Tag }}-armv7
|
||||||
|
- name_template: ghcr.io/fission/pre-upgrade-checks:{{ .Tag }}
|
||||||
|
image_templates:
|
||||||
|
- ghcr.io/fission/pre-upgrade-checks:{{ .Tag }}-amd64
|
||||||
|
- ghcr.io/fission/pre-upgrade-checks:{{ .Tag }}-arm64
|
||||||
|
- ghcr.io/fission/pre-upgrade-checks:{{ .Tag }}-armv7
|
||||||
- name_template: fission/pre-upgrade-checks:{{ .Tag }}
|
- name_template: fission/pre-upgrade-checks:{{ .Tag }}
|
||||||
image_templates:
|
image_templates:
|
||||||
- fission/pre-upgrade-checks:{{ .Tag }}-amd64
|
- fission/pre-upgrade-checks:{{ .Tag }}-amd64
|
||||||
- fission/pre-upgrade-checks:{{ .Tag }}-arm64
|
- fission/pre-upgrade-checks:{{ .Tag }}-arm64
|
||||||
- fission/pre-upgrade-checks:{{ .Tag }}-armv7
|
- fission/pre-upgrade-checks:{{ .Tag }}-armv7
|
||||||
|
- name_template: ghcr.io/fission/reporter:{{ .Tag }}
|
||||||
|
image_templates:
|
||||||
|
- ghcr.io/fission/reporter:{{ .Tag }}-amd64
|
||||||
|
- ghcr.io/fission/reporter:{{ .Tag }}-arm64
|
||||||
|
- ghcr.io/fission/reporter:{{ .Tag }}-armv7
|
||||||
- name_template: fission/reporter:{{ .Tag }}
|
- name_template: fission/reporter:{{ .Tag }}
|
||||||
image_templates:
|
image_templates:
|
||||||
- fission/reporter:{{ .Tag }}-amd64
|
- fission/reporter:{{ .Tag }}-amd64
|
||||||
- fission/reporter:{{ .Tag }}-arm64
|
- fission/reporter:{{ .Tag }}-arm64
|
||||||
- fission/reporter:{{ .Tag }}-armv7
|
- fission/reporter:{{ .Tag }}-armv7
|
||||||
|
- name_template: ghcr.io/fission/builder:latest
|
||||||
|
image_templates:
|
||||||
|
- ghcr.io/fission/builder:latest-amd64
|
||||||
|
- ghcr.io/fission/builder:latest-arm64
|
||||||
|
- ghcr.io/fission/builder:latest-armv7
|
||||||
- name_template: fission/builder:latest
|
- name_template: fission/builder:latest
|
||||||
image_templates:
|
image_templates:
|
||||||
- fission/builder:latest-amd64
|
- fission/builder:latest-amd64
|
||||||
- fission/builder:latest-arm64
|
- fission/builder:latest-arm64
|
||||||
- fission/builder:latest-armv7
|
- fission/builder:latest-armv7
|
||||||
|
- name_template: ghcr.io/fission/fetcher:latest
|
||||||
|
image_templates:
|
||||||
|
- ghcr.io/fission/fetcher:latest-amd64
|
||||||
|
- ghcr.io/fission/fetcher:latest-arm64
|
||||||
|
- ghcr.io/fission/fetcher:latest-armv7
|
||||||
- name_template: fission/fetcher:latest
|
- name_template: fission/fetcher:latest
|
||||||
image_templates:
|
image_templates:
|
||||||
- fission/fetcher:latest-amd64
|
- fission/fetcher:latest-amd64
|
||||||
- fission/fetcher:latest-arm64
|
- fission/fetcher:latest-arm64
|
||||||
- fission/fetcher:latest-armv7
|
- fission/fetcher:latest-armv7
|
||||||
|
- name_template: ghcr.io/fission/fission-bundle:latest
|
||||||
|
image_templates:
|
||||||
|
- ghcr.io/fission/fission-bundle:latest-amd64
|
||||||
|
- ghcr.io/fission/fission-bundle:latest-arm64
|
||||||
|
- ghcr.io/fission/fission-bundle:latest-armv7
|
||||||
- name_template: fission/fission-bundle:latest
|
- name_template: fission/fission-bundle:latest
|
||||||
image_templates:
|
image_templates:
|
||||||
- fission/fission-bundle:latest-amd64
|
- fission/fission-bundle:latest-amd64
|
||||||
- fission/fission-bundle:latest-arm64
|
- fission/fission-bundle:latest-arm64
|
||||||
- fission/fission-bundle:latest-armv7
|
- fission/fission-bundle:latest-armv7
|
||||||
|
- name_template: ghcr.io/fission/pre-upgrade-checks:latest
|
||||||
|
image_templates:
|
||||||
|
- ghcr.io/fission/pre-upgrade-checks:latest-amd64
|
||||||
|
- ghcr.io/fission/pre-upgrade-checks:latest-arm64
|
||||||
|
- ghcr.io/fission/pre-upgrade-checks:latest-armv7
|
||||||
- name_template: fission/pre-upgrade-checks:latest
|
- name_template: fission/pre-upgrade-checks:latest
|
||||||
image_templates:
|
image_templates:
|
||||||
- fission/pre-upgrade-checks:latest-amd64
|
- fission/pre-upgrade-checks:latest-amd64
|
||||||
- fission/pre-upgrade-checks:latest-arm64
|
- fission/pre-upgrade-checks:latest-arm64
|
||||||
- fission/pre-upgrade-checks:latest-armv7
|
- fission/pre-upgrade-checks:latest-armv7
|
||||||
|
- name_template: ghcr.io/fission/reporter:latest
|
||||||
|
image_templates:
|
||||||
|
- ghcr.io/fission/reporter:latest-amd64
|
||||||
|
- ghcr.io/fission/reporter:latest-arm64
|
||||||
|
- ghcr.io/fission/reporter:latest-armv7
|
||||||
- name_template: fission/reporter:latest
|
- name_template: fission/reporter:latest
|
||||||
image_templates:
|
image_templates:
|
||||||
- fission/reporter:latest-amd64
|
- fission/reporter:latest-amd64
|
||||||
|
|||||||
@@ -112,11 +112,11 @@ all-generators: codegen generate-crds generate-swagger-doc generate-cli-docs gen
|
|||||||
|
|
||||||
skaffold-prebuild:
|
skaffold-prebuild:
|
||||||
@GOOS=linux GOARCH=amd64 GORELEASER_CURRENT_TAG=$(VERSION) goreleaser build --snapshot --rm-dist --single-target
|
@GOOS=linux GOARCH=amd64 GORELEASER_CURRENT_TAG=$(VERSION) goreleaser build --snapshot --rm-dist --single-target
|
||||||
@cp -v cmd/builder/Dockerfile.fission-builder dist/builder_linux_amd64_v1/Dockerfile
|
@cp -v cmd/builder/Dockerfile dist/builder_linux_amd64_v1/Dockerfile
|
||||||
@cp -v cmd/fetcher/Dockerfile.fission-fetcher dist/fetcher_linux_amd64_v1/Dockerfile
|
@cp -v cmd/fetcher/Dockerfile dist/fetcher_linux_amd64_v1/Dockerfile
|
||||||
@cp -v cmd/fission-bundle/Dockerfile.fission-bundle dist/fission-bundle_linux_amd64_v1/Dockerfile
|
@cp -v cmd/fission-bundle/Dockerfile dist/fission-bundle_linux_amd64_v1/Dockerfile
|
||||||
@cp -v cmd/reporter/Dockerfile.reporter dist/reporter_linux_amd64_v1/Dockerfile
|
@cp -v cmd/reporter/Dockerfile dist/reporter_linux_amd64_v1/Dockerfile
|
||||||
@cp -v cmd/preupgradechecks/Dockerfile.fission-preupgradechecks dist/pre-upgrade-checks_linux_amd64_v1/Dockerfile
|
@cp -v cmd/preupgradechecks/Dockerfile dist/pre-upgrade-checks_linux_amd64_v1/Dockerfile
|
||||||
|
|
||||||
skaffold-deploy: skaffold-prebuild
|
skaffold-deploy: skaffold-prebuild
|
||||||
skaffold run -p $(SKAFFOLD_PROFILE)
|
skaffold run -p $(SKAFFOLD_PROFILE)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
name: fission-all
|
name: fission-all
|
||||||
version: v1.18.0-rc1
|
version: v1.19.0
|
||||||
appVersion: v1.18.0-rc1
|
appVersion: v1.19.0
|
||||||
description: Fission is a fast serverless framework for Kubernetes.
|
description: Fission is a fast serverless framework for Kubernetes.
|
||||||
home: https://fission.io/
|
home: https://fission.io/
|
||||||
icon: https://fission.io/images/fission-logo-white.svg
|
icon: https://fission.io/images/fission-logo-white.svg
|
||||||
|
|||||||
@@ -0,0 +1,402 @@
|
|||||||
|
{{- define "buildermgr-kuberules" }}
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
- services
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
- secrets
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- apps
|
||||||
|
resources:
|
||||||
|
- deployments
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- apiextensions.k8s.io
|
||||||
|
resources:
|
||||||
|
- customresourcedefinitions
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
{{- end }}
|
||||||
|
{{- define "canaryconfig-kuberules" }}
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- services
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- apiextensions.k8s.io
|
||||||
|
resources:
|
||||||
|
- customresourcedefinitions
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
{{- end }}
|
||||||
|
{{- define "controller-kuberules" }}
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- services
|
||||||
|
verbs:
|
||||||
|
- list
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
- secrets
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- namespaces
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- apiextensions.k8s.io
|
||||||
|
resources:
|
||||||
|
- customresourcedefinitions
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
{{- end }}
|
||||||
|
{{- define "executor-kuberules" }}
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
- services
|
||||||
|
- replicationcontrollers
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
- secrets
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
{{- if .Values.executor.serviceAccountCheck.enabled }}
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- serviceaccounts
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- authorization.k8s.io
|
||||||
|
resources:
|
||||||
|
- localsubjectaccessreviews
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- apiGroups:
|
||||||
|
- rbac.authorization.k8s.io
|
||||||
|
resources:
|
||||||
|
- rolebindings
|
||||||
|
- roles
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
{{- end }}
|
||||||
|
- apiGroups:
|
||||||
|
- apps
|
||||||
|
resources:
|
||||||
|
- deployments
|
||||||
|
- deployments/scale
|
||||||
|
- replicasets
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- apiextensions.k8s.io
|
||||||
|
resources:
|
||||||
|
- customresourcedefinitions
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- autoscaling
|
||||||
|
resources:
|
||||||
|
- horizontalpodautoscalers
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- metrics.k8s.io
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
{{- end }}
|
||||||
|
{{- define "fluentbit-kuberules" }}
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
{{- end }}
|
||||||
|
{{- define "kubewatcher-kuberules" }}
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
- pods
|
||||||
|
- secrets
|
||||||
|
- services
|
||||||
|
- replicationcontrollers
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- batch
|
||||||
|
resources:
|
||||||
|
- jobs
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- apiextensions.k8s.io
|
||||||
|
resources:
|
||||||
|
- customresourcedefinitions
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
{{- end }}
|
||||||
|
{{- define "kafka-kuberules" }}
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
- pods
|
||||||
|
- secrets
|
||||||
|
- services
|
||||||
|
- replicationcontrollers
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
- secrets
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- apps
|
||||||
|
resources:
|
||||||
|
- deployments
|
||||||
|
- deployments/scale
|
||||||
|
- replicasets
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- apiextensions.k8s.io
|
||||||
|
resources:
|
||||||
|
- customresourcedefinitions
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
{{- end }}
|
||||||
|
{{- define "keda-kuberules" }}
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
- services
|
||||||
|
- replicationcontrollers
|
||||||
|
- events
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- delete
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- patch
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- configmaps
|
||||||
|
- secrets
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- apiGroups:
|
||||||
|
- apps
|
||||||
|
resources:
|
||||||
|
- deployments
|
||||||
|
- deployments/scale
|
||||||
|
- replicasets
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- apiextensions.k8s.io
|
||||||
|
resources:
|
||||||
|
- customresourcedefinitions
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- apiGroups:
|
||||||
|
- keda.sh
|
||||||
|
resources:
|
||||||
|
- scaledjobs
|
||||||
|
- scaledobjects
|
||||||
|
- scaledjobs/finalizers
|
||||||
|
- scaledjobs/status
|
||||||
|
- triggerauthentications
|
||||||
|
- triggerauthentications/status
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
{{- if .Values.mqt_keda.enabled }}
|
||||||
|
- apiGroups:
|
||||||
|
- keda.k8s.io
|
||||||
|
resources:
|
||||||
|
- scaledjobs
|
||||||
|
- scaledobjects
|
||||||
|
- scaledjobs/finalizers
|
||||||
|
- scaledjobs/status
|
||||||
|
- triggerauthentications
|
||||||
|
- triggerauthentications/status
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
{{- end }}
|
||||||
|
- apiGroups:
|
||||||
|
- metrics.k8s.io
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
{{- end }}
|
||||||
|
{{- define "preupgrade-kuberules" }}
|
||||||
|
# TODO: Kept for future in case preupgrade needs any permissions in the future
|
||||||
|
rules: []
|
||||||
|
{{- end }}
|
||||||
|
{{- define "router-kuberules" }}
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- networking.k8s.io
|
||||||
|
resources:
|
||||||
|
- ingresses
|
||||||
|
verbs:
|
||||||
|
- create
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
- update
|
||||||
|
- patch
|
||||||
|
- delete
|
||||||
|
- apiGroups:
|
||||||
|
- apiextensions.k8s.io
|
||||||
|
resources:
|
||||||
|
- customresourcedefinitions
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
|
- list
|
||||||
|
- watch
|
||||||
|
{{- end }}
|
||||||
|
{{- define "timer-kuberules" }}
|
||||||
|
rules: []
|
||||||
|
{{- end }}
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
{{- define "kubernetes-role-generator" }}
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
{{- if eq "preupgrade" .component }}
|
||||||
|
annotations:
|
||||||
|
helm.sh/hook: pre-upgrade
|
||||||
|
helm.sh/hook-delete-policy: before-hook-creation
|
||||||
|
helm.sh/hook-weight: "-2"
|
||||||
|
{{- end }}
|
||||||
|
name: "{{ .Release.Name }}-{{ .component }}"
|
||||||
|
namespace: {{ .namespace }}
|
||||||
|
{{- if eq "buildermgr" .component }}
|
||||||
|
{{- include "buildermgr-kuberules" . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "canaryconfig" .component }}
|
||||||
|
{{- include "canaryconfig-kuberules" . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "controller" .component }}
|
||||||
|
{{- include "controller-kuberules" . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "fluentbit" .component }}
|
||||||
|
{{- include "fluentbit-kuberules" . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "executor" .component }}
|
||||||
|
{{- include "executor-kuberules" . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "kubewatcher" .component }}
|
||||||
|
{{- include "kubewatcher-kuberules" . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "kafka" .component }}
|
||||||
|
{{- include "kafka-kuberules" . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "keda" .component }}
|
||||||
|
{{- include "keda-kuberules" . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "preupgrade" .component }}
|
||||||
|
{{- include "preupgrade-kuberules" . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "router" .component }}
|
||||||
|
{{- include "router-kuberules" . }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if eq "timer" .component }}
|
||||||
|
{{- include "timer-kuberules" . }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: RoleBinding
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
metadata:
|
||||||
|
{{- if eq "preupgrade" .component }}
|
||||||
|
annotations:
|
||||||
|
helm.sh/hook: pre-upgrade
|
||||||
|
helm.sh/hook-delete-policy: before-hook-creation
|
||||||
|
{{- end }}
|
||||||
|
name: "{{ .Release.Name }}-{{ .component }}"
|
||||||
|
namespace: {{ .namespace }}
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: "fission-{{ .component }}"
|
||||||
|
namespace: {{ .Release.Namespace }}
|
||||||
|
roleRef:
|
||||||
|
kind: Role
|
||||||
|
name: "{{ .Release.Name }}-{{ .component }}"
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
{{- end }}
|
||||||
@@ -13,18 +13,12 @@ rules:
|
|||||||
- secrets
|
- secrets
|
||||||
verbs:
|
verbs:
|
||||||
- get
|
- get
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- pods
|
|
||||||
verbs:
|
|
||||||
- list
|
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- fission.io
|
- fission.io
|
||||||
resources:
|
resources:
|
||||||
- packages
|
- packages
|
||||||
verbs:
|
verbs:
|
||||||
- "get"
|
- get
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: Role
|
kind: Role
|
||||||
@@ -37,7 +31,7 @@ rules:
|
|||||||
resources:
|
resources:
|
||||||
- packages
|
- packages
|
||||||
verbs:
|
verbs:
|
||||||
- "get"
|
- get
|
||||||
- apiGroups:
|
- apiGroups:
|
||||||
- ""
|
- ""
|
||||||
resources:
|
resources:
|
||||||
@@ -45,6 +39,30 @@ rules:
|
|||||||
- secrets
|
- secrets
|
||||||
verbs:
|
verbs:
|
||||||
- get
|
- get
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: Role
|
||||||
|
metadata:
|
||||||
|
namespace: {{ .namespace }}
|
||||||
|
name: {{ .Release.Name }}-fission-fetcher-websocket
|
||||||
|
rules:
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- "events"
|
||||||
|
verbs:
|
||||||
|
- "get"
|
||||||
|
- "list"
|
||||||
|
- "watch"
|
||||||
|
- "create"
|
||||||
|
- "update"
|
||||||
|
- "patch"
|
||||||
|
- apiGroups:
|
||||||
|
- ""
|
||||||
|
resources:
|
||||||
|
- pods
|
||||||
|
verbs:
|
||||||
|
- get
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
{{- define "fissionFunction.rolebindings" }}
|
{{- define "fissionFunction.rolebindings" }}
|
||||||
@@ -61,7 +79,11 @@ roleRef:
|
|||||||
subjects:
|
subjects:
|
||||||
- kind: ServiceAccount
|
- kind: ServiceAccount
|
||||||
name: fission-fetcher
|
name: fission-fetcher
|
||||||
namespace: {{template "fission-function-ns" . }}
|
{{- if and (.Values.functionNamespace) (eq .namespace "default") }}
|
||||||
|
namespace: {{ .Values.functionNamespace }}
|
||||||
|
{{- else }}
|
||||||
|
namespace: {{ .namespace }}
|
||||||
|
{{- end }}
|
||||||
---
|
---
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
kind: RoleBinding
|
kind: RoleBinding
|
||||||
@@ -75,5 +97,27 @@ roleRef:
|
|||||||
subjects:
|
subjects:
|
||||||
- kind: ServiceAccount
|
- kind: ServiceAccount
|
||||||
name: fission-builder
|
name: fission-builder
|
||||||
namespace: {{ template "fission-builder-ns" . }}
|
{{- if and (.Values.builderNamespace) (eq .namespace "default") }}
|
||||||
|
namespace: {{ .Values.builderNamespace }}
|
||||||
|
{{- else }}
|
||||||
|
namespace: {{ .namespace }}
|
||||||
|
{{- end }}
|
||||||
|
---
|
||||||
|
apiVersion: rbac.authorization.k8s.io/v1
|
||||||
|
kind: RoleBinding
|
||||||
|
metadata:
|
||||||
|
name: {{ .Release.Name }}-fission-fetcher-websocket
|
||||||
|
namespace: {{ .namespace }}
|
||||||
|
roleRef:
|
||||||
|
apiGroup: rbac.authorization.k8s.io
|
||||||
|
kind: Role
|
||||||
|
name: {{ .Release.Name }}-fission-fetcher-websocket
|
||||||
|
subjects:
|
||||||
|
- kind: ServiceAccount
|
||||||
|
name: fission-fetcher
|
||||||
|
{{- if and (.Values.functionNamespace) (eq .namespace "default") }}
|
||||||
|
namespace: {{ .Values.functionNamespace }}
|
||||||
|
{{- else }}
|
||||||
|
namespace: {{ .namespace }}
|
||||||
|
{{- end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|||||||
@@ -55,6 +55,22 @@ This template generates the image name for the deployment depending on the value
|
|||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
|
{{- define "reporterImage" -}}
|
||||||
|
{{- if .Values.repository -}}
|
||||||
|
{{- if eq .Values.imageTag "" -}}
|
||||||
|
{{ .Values.repository }}/{{ .Values.postInstallReportImage }}
|
||||||
|
{{- else -}}
|
||||||
|
{{ .Values.repository }}/{{ .Values.postInstallReportImage }}:{{ .Values.imageTag }}
|
||||||
|
{{- end }}
|
||||||
|
{{- else -}}
|
||||||
|
{{- if eq .Values.imageTag "" -}}
|
||||||
|
{{ .Values.postInstallReportImage }}
|
||||||
|
{{- else -}}
|
||||||
|
{{ .Values.postInstallReportImage }}:{{ .Values.imageTag }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- define "opentelemtry.envs" }}
|
{{- define "opentelemtry.envs" }}
|
||||||
- name: OTEL_EXPORTER_OTLP_ENDPOINT
|
- name: OTEL_EXPORTER_OTLP_ENDPOINT
|
||||||
value: "{{ .Values.openTelemetry.otlpCollectorEndpoint }}"
|
value: "{{ .Values.openTelemetry.otlpCollectorEndpoint }}"
|
||||||
@@ -74,7 +90,7 @@ This template generates the image name for the deployment depending on the value
|
|||||||
|
|
||||||
{{- define "fission-resource-namespace.envs" }}
|
{{- define "fission-resource-namespace.envs" }}
|
||||||
- name: FISSION_RESOURCE_NAMESPACES
|
- name: FISSION_RESOURCE_NAMESPACES
|
||||||
{{- if not .Values.singleDefaultNamespace }}
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
value: "{{ .Values.defaultNamespace }},{{ join "," .Values.additionalFissionNamespaces }}"
|
value: "{{ .Values.defaultNamespace }},{{ join "," .Values.additionalFissionNamespaces }}"
|
||||||
{{- else }}
|
{{- else }}
|
||||||
value: {{ .Values.defaultNamespace }}
|
value: {{ .Values.defaultNamespace }}
|
||||||
@@ -100,6 +116,6 @@ Define the svc's name
|
|||||||
{{- if .Values.builderNamespace -}}
|
{{- if .Values.builderNamespace -}}
|
||||||
{{- printf "%s" .Values.builderNamespace -}}
|
{{- printf "%s" .Values.builderNamespace -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- printf "%s" .Values.builderNamespace -}}
|
{{- printf "%s" .Values.defaultNamespace -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|||||||
@@ -26,15 +26,15 @@ spec:
|
|||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
containers:
|
containers:
|
||||||
- name: post-install-job
|
- name: post-install-job
|
||||||
{{- if .Values.imageTag }}
|
image: {{ include "reporterImage" . | quote }}
|
||||||
image: {{ .Values.postInstallReportImage }}:{{ .Values.imageTag }}
|
|
||||||
{{- else }}
|
|
||||||
image: {{ .Values.postInstallReportImage }}
|
|
||||||
{{- end }}
|
|
||||||
imagePullPolicy: {{ .Values.pullPolicy }}
|
imagePullPolicy: {{ .Values.pullPolicy }}
|
||||||
command: [ "/reporter" ]
|
command: [ "/reporter" ]
|
||||||
args: ["event", "-c", "fission-use", "-a", "yaml-post-install", "-l", "{{ .Chart.Name }}-{{ .Chart.Version }}"]
|
args: ["event", "-c", "fission-use", "-a", "yaml-post-install", "-l", "{{ .Chart.Name }}-{{ .Chart.Version }}"]
|
||||||
env:
|
env:
|
||||||
- name: GA_TRACKING_ID
|
- name: GA_TRACKING_ID
|
||||||
value: "{{ .Values.gaTrackingID }}"
|
value: "{{ .Values.gaTrackingID }}"
|
||||||
|
{{- with .Values.imagePullSecrets }}
|
||||||
|
imagePullSecrets:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -30,11 +30,7 @@ spec:
|
|||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
containers:
|
containers:
|
||||||
- name: post-install-job
|
- name: post-install-job
|
||||||
{{- if .Values.imageTag }}
|
image: {{ include "reporterImage" . | quote }}
|
||||||
image: {{ .Values.postInstallReportImage }}:{{ .Values.imageTag }}
|
|
||||||
{{- else }}
|
|
||||||
image: {{ .Values.postInstallReportImage }}
|
|
||||||
{{- end }}
|
|
||||||
imagePullPolicy: {{ .Values.pullPolicy }}
|
imagePullPolicy: {{ .Values.pullPolicy }}
|
||||||
command: [ "/reporter" ]
|
command: [ "/reporter" ]
|
||||||
args: ["event", "-c", "fission-use", "-a", "helm-post-install", "-l", "{{ .Chart.Name }}-{{ .Chart.Version }}"]
|
args: ["event", "-c", "fission-use", "-a", "helm-post-install", "-l", "{{ .Chart.Name }}-{{ .Chart.Version }}"]
|
||||||
@@ -47,4 +43,8 @@ spec:
|
|||||||
{{- if .Values.terminationMessagePolicy }}
|
{{- if .Values.terminationMessagePolicy }}
|
||||||
terminationMessagePolicy: {{ .Values.terminationMessagePolicy }}
|
terminationMessagePolicy: {{ .Values.terminationMessagePolicy }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.imagePullSecrets }}
|
||||||
|
imagePullSecrets:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -30,11 +30,7 @@ spec:
|
|||||||
restartPolicy: Never
|
restartPolicy: Never
|
||||||
containers:
|
containers:
|
||||||
- name: post-upgrade-job
|
- name: post-upgrade-job
|
||||||
{{- if .Values.imageTag }}
|
image: {{ include "reporterImage" . | quote }}
|
||||||
image: {{ .Values.postInstallReportImage }}:{{ .Values.imageTag }}
|
|
||||||
{{- else }}
|
|
||||||
image: {{ .Values.postInstallReportImage }}
|
|
||||||
{{- end }}
|
|
||||||
imagePullPolicy: {{ .Values.pullPolicy }}
|
imagePullPolicy: {{ .Values.pullPolicy }}
|
||||||
command: [ "/reporter" ]
|
command: [ "/reporter" ]
|
||||||
args: ["event", "-c", "fission-use", "-a", "helm-post-upgrade", "-l", "{{ .Chart.Name }}-{{ .Chart.Version }}"]
|
args: ["event", "-c", "fission-use", "-a", "helm-post-upgrade", "-l", "{{ .Chart.Name }}-{{ .Chart.Version }}"]
|
||||||
@@ -47,4 +43,8 @@ spec:
|
|||||||
{{- if .Values.terminationMessagePolicy }}
|
{{- if .Values.terminationMessagePolicy }}
|
||||||
terminationMessagePolicy: {{ .Values.terminationMessagePolicy }}
|
terminationMessagePolicy: {{ .Values.terminationMessagePolicy }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- with .Values.imagePullSecrets }}
|
||||||
|
imagePullSecrets:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -1,53 +0,0 @@
|
|||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-buildermgr
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- configmaps
|
|
||||||
- pods
|
|
||||||
- services
|
|
||||||
- serviceaccounts
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- delete
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- patch
|
|
||||||
- apiGroups:
|
|
||||||
- apps
|
|
||||||
resources:
|
|
||||||
- deployments
|
|
||||||
verbs:
|
|
||||||
- list
|
|
||||||
- create
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- apiextensions.k8s.io
|
|
||||||
resources:
|
|
||||||
- customresourcedefinitions
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- rolebindings
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- patch
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- clusterroles
|
|
||||||
verbs:
|
|
||||||
- bind
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
kind: ClusterRoleBinding
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-buildermgr
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: fission-buildermgr
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
roleRef:
|
|
||||||
kind: ClusterRole
|
|
||||||
name: {{ .Release.Name }}-buildermgr
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
@@ -4,6 +4,6 @@ kind: ConfigMap
|
|||||||
metadata:
|
metadata:
|
||||||
name: builder-podspec-patch
|
name: builder-podspec-patch
|
||||||
data:
|
data:
|
||||||
spec: |
|
builder-podspec-patch.yaml: |
|
||||||
{{- toYaml .Values.builderPodSpec.podSpec | nindent 4 }}
|
{{- toYaml .Values.builderPodSpec.podSpec | nindent 4 }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -44,7 +44,7 @@ spec:
|
|||||||
- name: FISSION_FUNCTION_NAMESPACE
|
- name: FISSION_FUNCTION_NAMESPACE
|
||||||
value: "{{ .Values.functionNamespace }}"
|
value: "{{ .Values.functionNamespace }}"
|
||||||
- name: FISSION_DEFAULT_NAMESPACE
|
- name: FISSION_DEFAULT_NAMESPACE
|
||||||
value: "{{ .Values.defaultNamespace }}"
|
value: "{{ .Values.defaultNamespace }}"
|
||||||
- name: ENABLE_ISTIO
|
- name: ENABLE_ISTIO
|
||||||
value: "{{ .Values.enableIstio }}"
|
value: "{{ .Values.enableIstio }}"
|
||||||
- name: FETCHER_MINCPU
|
- name: FETCHER_MINCPU
|
||||||
@@ -61,8 +61,15 @@ spec:
|
|||||||
value: {{ .Values.pprof.enabled | quote }}
|
value: {{ .Values.pprof.enabled | quote }}
|
||||||
- name: HELM_RELEASE_NAME
|
- name: HELM_RELEASE_NAME
|
||||||
value: {{ .Release.Name | quote }}
|
value: {{ .Release.Name | quote }}
|
||||||
{{- include "fission-resource-namespace.envs" . | indent 8 }}
|
{{- include "fission-resource-namespace.envs" . | indent 8 }}
|
||||||
{{- include "opentelemtry.envs" . | indent 8 }}
|
{{- include "opentelemtry.envs" . | indent 8 }}
|
||||||
|
{{- if .Values.builderPodSpec.enabled }}
|
||||||
|
volumeMounts:
|
||||||
|
- name: builder-podspec-patch-volume
|
||||||
|
mountPath: /etc/fission/builder-podspec-patch.yaml
|
||||||
|
subPath: builder-podspec-patch.yaml
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
name: metrics
|
name: metrics
|
||||||
@@ -75,11 +82,17 @@ spec:
|
|||||||
terminationMessagePolicy: {{ .Values.terminationMessagePolicy }}
|
terminationMessagePolicy: {{ .Values.terminationMessagePolicy }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
serviceAccountName: fission-buildermgr
|
serviceAccountName: fission-buildermgr
|
||||||
|
{{- if .Values.builderPodSpec.enabled }}
|
||||||
|
volumes:
|
||||||
|
- name: builder-podspec-patch-volume
|
||||||
|
configMap:
|
||||||
|
name: builder-podspec-patch
|
||||||
|
{{- end }}
|
||||||
{{- if .Values.priorityClassName }}
|
{{- if .Values.priorityClassName }}
|
||||||
priorityClassName: {{ .Values.priorityClassName }}
|
priorityClassName: {{ .Values.priorityClassName }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- with .Values.imagePullSecrets }}
|
{{- with .Values.imagePullSecrets }}
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.extraCoreComponentPodConfig }}
|
{{- if .Values.extraCoreComponentPodConfig }}
|
||||||
|
|||||||
@@ -1,7 +1,13 @@
|
|||||||
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "buildermgr") .) }}
|
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "buildermgr") .) }}
|
||||||
|
|
||||||
{{- if not .Values.singleDefaultNamespace }}
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "buildermgr") $) }}
|
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "buildermgr") $) }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.builderNamespace -}}
|
||||||
|
{{ include "fission-role-generator" (merge (dict "namespace" .Values.builderNamespace "component" "buildermgr") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.functionNamespace -}}
|
||||||
|
{{ include "fission-role-generator" (merge (dict "namespace" .Values.functionNamespace "component" "buildermgr") $) }}
|
||||||
|
{{- end }}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{{- include "kubernetes-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "buildermgr") .) }}
|
||||||
|
|
||||||
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" $namespace "component" "buildermgr") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.builderNamespace -}}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" .Values.builderNamespace "component" "buildermgr") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.functionNamespace -}}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" .Values.functionNamespace "component" "buildermgr") $) }}
|
||||||
|
{{- end }}
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{{- if .Values.canaryDeployment.enabled }}
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-canaryconfig
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- services
|
|
||||||
verbs:
|
|
||||||
- list
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- configmaps
|
|
||||||
- secrets
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- namespaces
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- create
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- pods
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- apiGroups:
|
|
||||||
- apiextensions.k8s.io
|
|
||||||
resources:
|
|
||||||
- customresourcedefinitions
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
{{- end }}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
{{- if .Values.canaryDeployment.enabled }}
|
|
||||||
kind: ClusterRoleBinding
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-canaryconfig
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: fission-canaryconfig
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
roleRef:
|
|
||||||
kind: ClusterRole
|
|
||||||
name: {{ .Release.Name }}-canaryconfig
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
{{- end -}}
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
{{- if .Values.canaryDeployment.enabled }}
|
{{- if .Values.canaryDeployment.enabled }}
|
||||||
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "canaryconfig") .) }}
|
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "canaryconfig") .) }}
|
||||||
|
|
||||||
{{- if not .Values.singleDefaultNamespace }}
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "canaryconfig") $) }}
|
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "canaryconfig") $) }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -0,0 +1,9 @@
|
|||||||
|
{{- if .Values.canaryDeployment.enabled }}
|
||||||
|
{{- include "kubernetes-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "canaryconfig") .) }}
|
||||||
|
|
||||||
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" $namespace "component" "canaryconfig") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
{{- if or (.Values.controller.enabled) (.Values.influxdb.enabled) }}
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-controller
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- services
|
|
||||||
verbs:
|
|
||||||
- list
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- configmaps
|
|
||||||
- secrets
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- namespaces
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- create
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- pods
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- apiGroups:
|
|
||||||
- apiextensions.k8s.io
|
|
||||||
resources:
|
|
||||||
- customresourcedefinitions
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
{{- end -}}
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
{{- if or (.Values.controller.enabled) (.Values.influxdb.enabled) }}
|
|
||||||
kind: ClusterRoleBinding
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-controller
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: fission-controller
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
roleRef:
|
|
||||||
kind: ClusterRole
|
|
||||||
name: {{ .Release.Name }}-controller
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
{{- end -}}
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{{- if or (.Values.controller.enabled) (.Values.influxdb.enabled) }}
|
{{- if .Values.controller.enabled }}
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{{- if or (.Values.controller.enabled) (.Values.influxdb.enabled) }}
|
{{- if .Values.controller.enabled }}
|
||||||
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "controller") .) }}
|
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "controller") .) }}
|
||||||
|
|
||||||
{{- if not .Values.singleDefaultNamespace }}
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "controller") $) }}
|
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "controller") $) }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{{- include "kubernetes-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "controller") .) }}
|
||||||
|
|
||||||
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" $namespace "component" "controller") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.builderNamespace -}}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" .Values.builderNamespace "component" "controller") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.functionNamespace -}}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" .Values.functionNamespace "component" "controller") $) }}
|
||||||
|
{{- end }}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{{- if or (.Values.controller.enabled) (.Values.influxdb.enabled) }}
|
{{- if .Values.controller.enabled }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: ServiceAccount
|
kind: ServiceAccount
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{{- if or (.Values.controller.enabled) (.Values.influxdb.enabled) }}
|
{{- if .Values.controller.enabled }}
|
||||||
{{- if .Values.serviceMonitor.enabled }}
|
{{- if .Values.serviceMonitor.enabled }}
|
||||||
apiVersion: monitoring.coreos.com/v1
|
apiVersion: monitoring.coreos.com/v1
|
||||||
kind: ServiceMonitor
|
kind: ServiceMonitor
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{{- if or (.Values.controller.enabled) (.Values.influxdb.enabled) }}
|
{{- if .Values.controller.enabled }}
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
|
|||||||
@@ -1,81 +0,0 @@
|
|||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-executor
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- configmaps
|
|
||||||
- pods
|
|
||||||
- secrets
|
|
||||||
- services
|
|
||||||
- serviceaccounts
|
|
||||||
- replicationcontrollers
|
|
||||||
- events
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- delete
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- patch
|
|
||||||
- apiGroups:
|
|
||||||
- apps
|
|
||||||
resources:
|
|
||||||
- deployments
|
|
||||||
- deployments/scale
|
|
||||||
- replicasets
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- patch
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- apiextensions.k8s.io
|
|
||||||
resources:
|
|
||||||
- customresourcedefinitions
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- apiGroups:
|
|
||||||
- autoscaling
|
|
||||||
resources:
|
|
||||||
- horizontalpodautoscalers
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- patch
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- rolebindings
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- patch
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- clusterroles
|
|
||||||
verbs:
|
|
||||||
- bind
|
|
||||||
- apiGroups:
|
|
||||||
- metrics.k8s.io
|
|
||||||
resources:
|
|
||||||
- pods
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
kind: ClusterRoleBinding
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-executor
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: fission-executor
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
roleRef:
|
|
||||||
kind: ClusterRole
|
|
||||||
name: {{ .Release.Name }}-executor
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
@@ -4,6 +4,6 @@ kind: ConfigMap
|
|||||||
metadata:
|
metadata:
|
||||||
name: runtime-podspec-patch
|
name: runtime-podspec-patch
|
||||||
data:
|
data:
|
||||||
spec: |
|
runtime-podspec-patch.yaml: |
|
||||||
{{- toYaml .Values.runtimePodSpec.podSpec | nindent 4 }}
|
{{- toYaml .Values.runtimePodSpec.podSpec | nindent 4 }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -42,7 +42,7 @@ spec:
|
|||||||
- name: FISSION_FUNCTION_NAMESPACE
|
- name: FISSION_FUNCTION_NAMESPACE
|
||||||
value: "{{ .Values.functionNamespace }}"
|
value: "{{ .Values.functionNamespace }}"
|
||||||
- name: FISSION_DEFAULT_NAMESPACE
|
- name: FISSION_DEFAULT_NAMESPACE
|
||||||
value: "{{ .Values.defaultNamespace }}"
|
value: "{{ .Values.defaultNamespace }}"
|
||||||
- name: RUNTIME_IMAGE_PULL_POLICY
|
- name: RUNTIME_IMAGE_PULL_POLICY
|
||||||
value: "{{ .Values.pullPolicy }}"
|
value: "{{ .Values.pullPolicy }}"
|
||||||
- name: ADOPT_EXISTING_RESOURCES
|
- name: ADOPT_EXISTING_RESOURCES
|
||||||
@@ -77,6 +77,12 @@ spec:
|
|||||||
- name: CONTAINER_OBJECT_REAPER_INTERVAL
|
- name: CONTAINER_OBJECT_REAPER_INTERVAL
|
||||||
value: {{ .Values.executor.container.objectReaperInterval | quote }}
|
value: {{ .Values.executor.container.objectReaperInterval | quote }}
|
||||||
{{- end}}
|
{{- end}}
|
||||||
|
{{- if .Values.executor.serviceAccountCheck.enabled }}
|
||||||
|
- name: SERVICEACCOUNT_CHECK_ENABLED
|
||||||
|
value: {{ .Values.executor.serviceAccountCheck.enabled | quote }}
|
||||||
|
- name: SERVICEACCOUNT_CHECK_INTERVAL
|
||||||
|
value: {{ .Values.executor.serviceAccountCheck.interval | quote }}
|
||||||
|
{{- end}}
|
||||||
{{- include "fission-resource-namespace.envs" . | indent 8 }}
|
{{- include "fission-resource-namespace.envs" . | indent 8 }}
|
||||||
- name: HELM_RELEASE_NAME
|
- name: HELM_RELEASE_NAME
|
||||||
value: {{ .Release.Name | quote }}
|
value: {{ .Release.Name | quote }}
|
||||||
@@ -96,6 +102,13 @@ spec:
|
|||||||
port: 8888
|
port: 8888
|
||||||
initialDelaySeconds: 35
|
initialDelaySeconds: 35
|
||||||
periodSeconds: 5
|
periodSeconds: 5
|
||||||
|
{{- if .Values.runtimePodSpec.enabled }}
|
||||||
|
volumeMounts:
|
||||||
|
- name: runtime-podspec-patch-volume
|
||||||
|
mountPath: /etc/fission/runtime-podspec-patch.yaml
|
||||||
|
subPath: runtime-podspec-patch.yaml
|
||||||
|
readOnly: true
|
||||||
|
{{- end }}
|
||||||
ports:
|
ports:
|
||||||
- containerPort: 8080
|
- containerPort: 8080
|
||||||
name: metrics
|
name: metrics
|
||||||
@@ -116,13 +129,19 @@ spec:
|
|||||||
terminationMessagePolicy: {{ .Values.terminationMessagePolicy }}
|
terminationMessagePolicy: {{ .Values.terminationMessagePolicy }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
serviceAccountName: fission-executor
|
serviceAccountName: fission-executor
|
||||||
|
{{- if .Values.runtimePodSpec.enabled }}
|
||||||
|
volumes:
|
||||||
|
- name: runtime-podspec-patch-volume
|
||||||
|
configMap:
|
||||||
|
name: runtime-podspec-patch
|
||||||
|
{{- end }}
|
||||||
{{- if .Values.executor.priorityClassName }}
|
{{- if .Values.executor.priorityClassName }}
|
||||||
priorityClassName: {{ .Values.executor.priorityClassName }}
|
priorityClassName: {{ .Values.executor.priorityClassName }}
|
||||||
{{- else if .Values.priorityClassName }}
|
{{- else if .Values.priorityClassName }}
|
||||||
priorityClassName: {{ .Values.priorityClassName }}
|
priorityClassName: {{ .Values.priorityClassName }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- with .Values.imagePullSecrets }}
|
{{- with .Values.imagePullSecrets }}
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
{{- toYaml . | nindent 8 }}
|
{{- toYaml . | nindent 8 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- if .Values.extraCoreComponentPodConfig }}
|
{{- if .Values.extraCoreComponentPodConfig }}
|
||||||
|
|||||||
@@ -1,7 +1,13 @@
|
|||||||
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "executor") .) }}
|
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "executor") .) }}
|
||||||
|
|
||||||
{{- if not .Values.singleDefaultNamespace }}
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "executor") $) }}
|
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "executor") $) }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
{{- if .Values.builderNamespace -}}
|
||||||
|
{{ include "fission-role-generator" (merge (dict "namespace" .Values.builderNamespace "component" "executor") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.functionNamespace -}}
|
||||||
|
{{ include "fission-role-generator" (merge (dict "namespace" .Values.functionNamespace "component" "executor") $) }}
|
||||||
|
{{- end }}
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
{{- include "kubernetes-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "executor") .) }}
|
||||||
|
|
||||||
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" $namespace "component" "executor") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.builderNamespace -}}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" .Values.builderNamespace "component" "executor") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- if .Values.functionNamespace -}}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" .Values.functionNamespace "component" "executor") $) }}
|
||||||
|
{{- end }}
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-fluentbit
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- pods
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
kind: ClusterRoleBinding
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-fluentbit
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: fission-fluentbit
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
roleRef:
|
|
||||||
kind: ClusterRole
|
|
||||||
name: {{ .Release.Name }}-fluentbit
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
@@ -185,6 +185,10 @@ spec:
|
|||||||
- name: fluentbit-config
|
- name: fluentbit-config
|
||||||
configMap:
|
configMap:
|
||||||
name: {{ .Release.Name }}-fission-fluentbit
|
name: {{ .Release.Name }}-fission-fluentbit
|
||||||
|
{{- with .Values.imagePullSecrets }}
|
||||||
|
imagePullSecrets:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
updateStrategy:
|
updateStrategy:
|
||||||
type: RollingUpdate
|
type: RollingUpdate
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{{- include "kubernetes-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "fluentbit") .) }}
|
||||||
|
|
||||||
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" $namespace "component" "fluentbit") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@@ -49,6 +49,10 @@ spec:
|
|||||||
secretKeyRef:
|
secretKeyRef:
|
||||||
name: influxdb
|
name: influxdb
|
||||||
key: password
|
key: password
|
||||||
|
{{- with .Values.imagePullSecrets }}
|
||||||
|
imagePullSecrets:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- if .Values.extraCoreComponentPodConfig }}
|
{{- if .Values.extraCoreComponentPodConfig }}
|
||||||
{{ toYaml .Values.extraCoreComponentPodConfig | indent 6 -}}
|
{{ toYaml .Values.extraCoreComponentPodConfig | indent 6 -}}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -1,56 +0,0 @@
|
|||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-kubewatcher
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- configmaps
|
|
||||||
- pods
|
|
||||||
- secrets
|
|
||||||
- services
|
|
||||||
- serviceaccounts
|
|
||||||
- replicationcontrollers
|
|
||||||
- events
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- delete
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- patch
|
|
||||||
- apiGroups:
|
|
||||||
- batch
|
|
||||||
resources:
|
|
||||||
- jobs
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- apiGroups:
|
|
||||||
- apiextensions.k8s.io
|
|
||||||
resources:
|
|
||||||
- customresourcedefinitions
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- rolebindings
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- patch
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- clusterroles
|
|
||||||
verbs:
|
|
||||||
- bind
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
kind: ClusterRoleBinding
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-kubewatcher
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: fission-kubewatcher
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
roleRef:
|
|
||||||
kind: ClusterRole
|
|
||||||
name: {{ .Release.Name }}-kubewatcher
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "kubewatcher") .) }}
|
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "kubewatcher") .) }}
|
||||||
|
|
||||||
{{- if not .Values.singleDefaultNamespace }}
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "kubewatcher") $) }}
|
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "kubewatcher") $) }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{{- include "kubernetes-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "kubewatcher") .) }}
|
||||||
|
|
||||||
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" $namespace "component" "kubewatcher") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-secret-configmap-getter
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- "*"
|
|
||||||
resources:
|
|
||||||
- secrets
|
|
||||||
- configmaps
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- watch
|
|
||||||
- list
|
|
||||||
|
|
||||||
---
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-package-getter
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- "*"
|
|
||||||
resources:
|
|
||||||
- packages
|
|
||||||
verbs:
|
|
||||||
- "*"
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- rolebindings
|
|
||||||
verbs:
|
|
||||||
- "*"
|
|
||||||
@@ -4,26 +4,8 @@ Need to use merge function to pass in the current scope so that ".Release" value
|
|||||||
can be used
|
can be used
|
||||||
*/}}
|
*/}}
|
||||||
{{ include "fissionFunction.roles" (merge (dict "namespace" .Values.defaultNamespace) .) }}
|
{{ include "fissionFunction.roles" (merge (dict "namespace" .Values.defaultNamespace) .) }}
|
||||||
---
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: Role
|
|
||||||
metadata:
|
|
||||||
namespace: {{ template "fission-function-ns" . }}
|
|
||||||
name: {{ .Release.Name }}-event-fetcher
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- "events"
|
|
||||||
verbs:
|
|
||||||
- "get"
|
|
||||||
- "list"
|
|
||||||
- "watch"
|
|
||||||
- "create"
|
|
||||||
- "update"
|
|
||||||
- "patch"
|
|
||||||
|
|
||||||
{{- if not .Values.singleDefaultNamespace }}
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
{{ include "fissionFunction.roles" (merge (dict "namespace" $namespace) $) }}
|
{{ include "fissionFunction.roles" (merge (dict "namespace" $namespace) $) }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -4,22 +4,8 @@ Need to use merge function to pass in the current scope so that ".Release" value
|
|||||||
can be used
|
can be used
|
||||||
*/}}
|
*/}}
|
||||||
{{ include "fissionFunction.rolebindings" (merge (dict "namespace" .Values.defaultNamespace) .) }}
|
{{ include "fissionFunction.rolebindings" (merge (dict "namespace" .Values.defaultNamespace) .) }}
|
||||||
---
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: RoleBinding
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-fission-fetcher-pod-reader
|
|
||||||
namespace: {{ template "fission-function-ns" . }}
|
|
||||||
roleRef:
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
kind: Role
|
|
||||||
name: {{ .Release.Name }}-event-fetcher
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: fission-fetcher
|
|
||||||
namespace: {{ template "fission-function-ns" . }}
|
|
||||||
|
|
||||||
{{- if not .Values.singleDefaultNamespace }}
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
{{ include "fissionFunction.rolebindings" (merge (dict "namespace" $namespace) $) }}
|
{{ include "fissionFunction.rolebindings" (merge (dict "namespace" $namespace) $) }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -1,62 +0,0 @@
|
|||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-kafka
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- configmaps
|
|
||||||
- pods
|
|
||||||
- secrets
|
|
||||||
- services
|
|
||||||
- serviceaccounts
|
|
||||||
- replicationcontrollers
|
|
||||||
- events
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- delete
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- patch
|
|
||||||
- apiGroups:
|
|
||||||
- apps
|
|
||||||
resources:
|
|
||||||
- deployments
|
|
||||||
- deployments/scale
|
|
||||||
- replicasets
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- patch
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- apiextensions.k8s.io
|
|
||||||
resources:
|
|
||||||
- customresourcedefinitions
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- rolebindings
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- patch
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- clusterroles
|
|
||||||
verbs:
|
|
||||||
- bind
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
kind: ClusterRoleBinding
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-kafka
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: fission-kafka
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
roleRef:
|
|
||||||
kind: ClusterRole
|
|
||||||
name: {{ .Release.Name }}-kafka
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
@@ -25,11 +25,7 @@ spec:
|
|||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
- name: mqtrigger
|
- name: mqtrigger
|
||||||
{{- if eq .Values.imageTag "" }}
|
image: {{ include "fission-bundleImage" . | quote }}
|
||||||
image: "{{ .Values.image }}"
|
|
||||||
{{- else }}
|
|
||||||
image: "{{ .Values.image }}:{{ .Values.imageTag }}"
|
|
||||||
{{- end }}
|
|
||||||
imagePullPolicy: {{ .Values.pullPolicy }}
|
imagePullPolicy: {{ .Values.pullPolicy }}
|
||||||
command: ["/fission-bundle"]
|
command: ["/fission-bundle"]
|
||||||
args: ["--mqt", "--routerUrl", "http://router.{{ .Release.Namespace }}"]
|
args: ["--mqt", "--routerUrl", "http://router.{{ .Release.Namespace }}"]
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "kafka") .) }}
|
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "kafka") .) }}
|
||||||
|
|
||||||
{{- if not .Values.singleDefaultNamespace }}
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "kafka") $) }}
|
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "kafka") $) }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{{- include "kubernetes-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "kafka") .) }}
|
||||||
|
|
||||||
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" $namespace "component" "kafka") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-keda
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- configmaps
|
|
||||||
- pods
|
|
||||||
- secrets
|
|
||||||
- services
|
|
||||||
- serviceaccounts
|
|
||||||
- replicationcontrollers
|
|
||||||
- events
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- delete
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- patch
|
|
||||||
- apiGroups:
|
|
||||||
- apps
|
|
||||||
resources:
|
|
||||||
- deployments
|
|
||||||
- deployments/scale
|
|
||||||
- replicasets
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- patch
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- apiextensions.k8s.io
|
|
||||||
resources:
|
|
||||||
- customresourcedefinitions
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- rolebindings
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- patch
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- clusterroles
|
|
||||||
verbs:
|
|
||||||
- bind
|
|
||||||
- apiGroups:
|
|
||||||
- keda.sh
|
|
||||||
resources:
|
|
||||||
- scaledjobs
|
|
||||||
- scaledobjects
|
|
||||||
- scaledjobs/finalizers
|
|
||||||
- scaledjobs/status
|
|
||||||
- triggerauthentications
|
|
||||||
- triggerauthentications/status
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- patch
|
|
||||||
- delete
|
|
||||||
{{- if .Values.mqt_keda.enabled }}
|
|
||||||
- apiGroups:
|
|
||||||
- keda.k8s.io
|
|
||||||
resources:
|
|
||||||
- scaledjobs
|
|
||||||
- scaledobjects
|
|
||||||
- scaledjobs/finalizers
|
|
||||||
- scaledjobs/status
|
|
||||||
- triggerauthentications
|
|
||||||
- triggerauthentications/status
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- patch
|
|
||||||
- delete
|
|
||||||
{{- end }}
|
|
||||||
- apiGroups:
|
|
||||||
- metrics.k8s.io
|
|
||||||
resources:
|
|
||||||
- pods
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
kind: ClusterRoleBinding
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-keda
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: fission-keda
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
roleRef:
|
|
||||||
kind: ClusterRole
|
|
||||||
name: {{ .Release.Name }}-keda
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "keda") .) }}
|
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "keda") .) }}
|
||||||
|
|
||||||
{{- if not .Values.singleDefaultNamespace }}
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "keda") $) }}
|
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "keda") $) }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{{- include "kubernetes-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "keda") .) }}
|
||||||
|
|
||||||
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" $namespace "component" "keda") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@@ -44,4 +44,8 @@ spec:
|
|||||||
terminationMessagePolicy: {{ .Values.terminationMessagePolicy }}
|
terminationMessagePolicy: {{ .Values.terminationMessagePolicy }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
serviceAccountName: fission-preupgrade
|
serviceAccountName: fission-preupgrade
|
||||||
|
{{- with .Values.imagePullSecrets }}
|
||||||
|
imagePullSecrets:
|
||||||
|
{{- toYaml . | nindent 8 }}
|
||||||
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "preupgrade") .) }}
|
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "preupgrade") .) }}
|
||||||
|
|
||||||
{{- if not .Values.singleDefaultNamespace }}
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "preupgrade") $) }}
|
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "preupgrade") $) }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-router
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- configmaps
|
|
||||||
- pods
|
|
||||||
- secrets
|
|
||||||
- services
|
|
||||||
- serviceaccounts
|
|
||||||
- replicationcontrollers
|
|
||||||
- events
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- delete
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- patch
|
|
||||||
- apiGroups:
|
|
||||||
- networking.k8s.io
|
|
||||||
resources:
|
|
||||||
- ingresses
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- patch
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- apiextensions.k8s.io
|
|
||||||
resources:
|
|
||||||
- customresourcedefinitions
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- rolebindings
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- patch
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- clusterroles
|
|
||||||
verbs:
|
|
||||||
- bind
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
kind: ClusterRoleBinding
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-router
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: fission-router
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
roleRef:
|
|
||||||
kind: ClusterRole
|
|
||||||
name: {{ .Release.Name }}-router
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
@@ -12,7 +12,7 @@ metadata:
|
|||||||
application: fission-router
|
application: fission-router
|
||||||
spec:
|
spec:
|
||||||
{{- if not .Values.router.deployAsDaemonSet }}
|
{{- if not .Values.router.deployAsDaemonSet }}
|
||||||
replicas: 1
|
replicas: {{ .Values.router.replicas | default 1 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
selector:
|
selector:
|
||||||
matchLabels:
|
matchLabels:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "router") .) }}
|
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "router") .) }}
|
||||||
|
|
||||||
{{- if not .Values.singleDefaultNamespace }}
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "router") $) }}
|
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "router") $) }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{{- include "kubernetes-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "router") .) }}
|
||||||
|
{{- include "kubernetes-role-generator" (merge (dict "namespace" .Release.Namespace "component" "router") .) }}
|
||||||
|
|
||||||
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" $namespace "component" "router") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@@ -6,7 +6,7 @@ metadata:
|
|||||||
labels:
|
labels:
|
||||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
||||||
annotations:
|
annotations:
|
||||||
"helm.sh/hook": pre-install
|
"helm.sh/hook": pre-install,pre-upgrade
|
||||||
data:
|
data:
|
||||||
username: {{ .Values.authentication.authUsername | b64enc | quote }}
|
username: {{ .Values.authentication.authUsername | b64enc | quote }}
|
||||||
password: {{ randAlphaNum 20 | b64enc | quote }}
|
password: {{ randAlphaNum 20 | b64enc | quote }}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "storagesvc") .) }}
|
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "storagesvc") .) }}
|
||||||
|
|
||||||
{{- if not .Values.singleDefaultNamespace }}
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "storagesvc") $) }}
|
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "storagesvc") $) }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -1,48 +0,0 @@
|
|||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRole
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-timer
|
|
||||||
rules:
|
|
||||||
- apiGroups:
|
|
||||||
- ""
|
|
||||||
resources:
|
|
||||||
- configmaps
|
|
||||||
- pods
|
|
||||||
- secrets
|
|
||||||
- services
|
|
||||||
- serviceaccounts
|
|
||||||
- replicationcontrollers
|
|
||||||
- events
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- delete
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- patch
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- rolebindings
|
|
||||||
verbs:
|
|
||||||
- create
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
- update
|
|
||||||
- patch
|
|
||||||
- delete
|
|
||||||
- apiGroups:
|
|
||||||
- rbac.authorization.k8s.io
|
|
||||||
resources:
|
|
||||||
- clusterroles
|
|
||||||
verbs:
|
|
||||||
- bind
|
|
||||||
- apiGroups:
|
|
||||||
- apiextensions.k8s.io
|
|
||||||
resources:
|
|
||||||
- customresourcedefinitions
|
|
||||||
verbs:
|
|
||||||
- get
|
|
||||||
- list
|
|
||||||
- watch
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
kind: ClusterRoleBinding
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
metadata:
|
|
||||||
name: {{ .Release.Name }}-timer
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: fission-timer
|
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
roleRef:
|
|
||||||
kind: ClusterRole
|
|
||||||
name: {{ .Release.Name }}-timer
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "timer") .) }}
|
{{- include "fission-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "timer") .) }}
|
||||||
|
|
||||||
{{- if not .Values.singleDefaultNamespace }}
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "timer") $) }}
|
{{ include "fission-role-generator" (merge (dict "namespace" $namespace "component" "timer") $) }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -0,0 +1,7 @@
|
|||||||
|
{{- include "kubernetes-role-generator" (merge (dict "namespace" .Values.defaultNamespace "component" "timer") .) }}
|
||||||
|
|
||||||
|
{{- if gt (len .Values.additionalFissionNamespaces) 0 }}
|
||||||
|
{{- range $namespace := $.Values.additionalFissionNamespaces }}
|
||||||
|
{{ include "kubernetes-role-generator" (merge (dict "namespace" $namespace "component" "timer") $) }}
|
||||||
|
{{- end }}
|
||||||
|
{{- end }}
|
||||||
@@ -14,7 +14,7 @@ routerServiceType: LoadBalancer
|
|||||||
## repository represents base repository for images used in the chart.
|
## repository represents base repository for images used in the chart.
|
||||||
## Keep it empty for using existing local image
|
## Keep it empty for using existing local image
|
||||||
##
|
##
|
||||||
repository: index.docker.io
|
repository: ghcr.io
|
||||||
|
|
||||||
## image represents the base image fission-bundle used by multiple Fission components.
|
## image represents the base image fission-bundle used by multiple Fission components.
|
||||||
## We alter arguments to the image to run a particular component.
|
## We alter arguments to the image to run a particular component.
|
||||||
@@ -25,7 +25,7 @@ image: fission/fission-bundle
|
|||||||
## It is also used by the chart to identify version of the few more images apart from fission-bundle.
|
## It is also used by the chart to identify version of the few more images apart from fission-bundle.
|
||||||
## Keep it empty for using latest tag.
|
## Keep it empty for using latest tag.
|
||||||
##
|
##
|
||||||
imageTag: v1.18.0-rc1
|
imageTag: v1.19.0
|
||||||
|
|
||||||
## pullPolicy represents the pull policy to use for images in the chart.
|
## pullPolicy represents the pull policy to use for images in the chart.
|
||||||
##
|
##
|
||||||
@@ -63,9 +63,7 @@ routerPort: 31314
|
|||||||
|
|
||||||
## defaultNamespace represents the namespace in which Fission custom resources will be created by the Fission user.
|
## defaultNamespace represents the namespace in which Fission custom resources will be created by the Fission user.
|
||||||
## This is different from the release namespace.
|
## This is different from the release namespace.
|
||||||
## Please consider setting `singleDefaultNamespace` and `additionalFissionNamespaces` if you want
|
## Please consider setting `additionalFissionNamespaces` if you want more than one namespace to be used for Fission custom resources.
|
||||||
## more than one namespace to be used for Fission custom resources.
|
|
||||||
## Fission will watch the defaultNamespace only if `singleDefaultNamespace` is true.
|
|
||||||
##
|
##
|
||||||
defaultNamespace: default
|
defaultNamespace: default
|
||||||
|
|
||||||
@@ -81,12 +79,7 @@ builderNamespace: ""
|
|||||||
##
|
##
|
||||||
functionNamespace: ""
|
functionNamespace: ""
|
||||||
|
|
||||||
## If true, fission will only watch for fission custom resources created in the `defaultNamespace` above.
|
|
||||||
##
|
|
||||||
singleDefaultNamespace: true
|
|
||||||
|
|
||||||
## Fission will watch the following namespaces along with the `defaultNamespace` for fission custom resources.
|
## Fission will watch the following namespaces along with the `defaultNamespace` for fission custom resources.
|
||||||
## Only works if `singleDefaultNamespace` is false.
|
|
||||||
## additionalFissionNamespaces:
|
## additionalFissionNamespaces:
|
||||||
## - namespace1
|
## - namespace1
|
||||||
## - namespace2
|
## - namespace2
|
||||||
@@ -110,7 +103,7 @@ fetcher:
|
|||||||
## image represents the image of the fetcher component.
|
## image represents the image of the fetcher component.
|
||||||
image: fission/fetcher
|
image: fission/fetcher
|
||||||
## imageTag represents the tag of the image of the fetcher component.
|
## imageTag represents the tag of the image of the fetcher component.
|
||||||
imageTag: v1.18.0-rc1
|
imageTag: v1.19.0
|
||||||
|
|
||||||
## Fetcher is only for to downloading or uploading archive.
|
## Fetcher is only for to downloading or uploading archive.
|
||||||
## Normally, you don't need to change the value here, unless necessary.
|
## Normally, you don't need to change the value here, unless necessary.
|
||||||
@@ -166,7 +159,7 @@ executor:
|
|||||||
## This is an experimental section, please verify before enabling in production.
|
## This is an experimental section, please verify before enabling in production.
|
||||||
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
||||||
securityContext:
|
securityContext:
|
||||||
enabled: false
|
enabled: true
|
||||||
## Mark it false, if you want to stop the non root user validation
|
## Mark it false, if you want to stop the non root user validation
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
fsGroup: 10001
|
fsGroup: 10001
|
||||||
@@ -193,6 +186,14 @@ executor:
|
|||||||
##
|
##
|
||||||
## objectReaperInterval: 5
|
## objectReaperInterval: 5
|
||||||
|
|
||||||
|
serviceAccountCheck:
|
||||||
|
## enables fission to create service account, roles and rolebinding for missing permission for builder and fetcher.
|
||||||
|
enabled: true
|
||||||
|
## indicates the time interval in minutes, after that fission will create service account, roles and rolebinding for builder and fetcher.
|
||||||
|
## interval will be applicable only if enable value is set to true.
|
||||||
|
## default timing will be 0 minutes. That means check will run only once.
|
||||||
|
## if you want to run check every 30 minutes then set interval to 30.
|
||||||
|
interval: 0
|
||||||
## router is responsible for routing function calls to the appropriate function.
|
## router is responsible for routing function calls to the appropriate function.
|
||||||
##
|
##
|
||||||
router:
|
router:
|
||||||
@@ -210,6 +211,9 @@ router:
|
|||||||
## deployAsDaemonSet decides whether to deploy router as a DaemonSet or a Deployment.
|
## deployAsDaemonSet decides whether to deploy router as a DaemonSet or a Deployment.
|
||||||
##
|
##
|
||||||
deployAsDaemonSet: false
|
deployAsDaemonSet: false
|
||||||
|
## replicas decides how many router pods to deploy. Only used when deployAsDaemonSet is false.
|
||||||
|
##
|
||||||
|
replicas: 1
|
||||||
## svcAddressMaxRetries is the max times for router to retry with a specific function service address
|
## svcAddressMaxRetries is the max times for router to retry with a specific function service address
|
||||||
##
|
##
|
||||||
svcAddressMaxRetries: 5
|
svcAddressMaxRetries: 5
|
||||||
@@ -303,7 +307,7 @@ router:
|
|||||||
## This is an experimental section, please verify before enabling in production.
|
## This is an experimental section, please verify before enabling in production.
|
||||||
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
||||||
securityContext:
|
securityContext:
|
||||||
enabled: false
|
enabled: true
|
||||||
## Mark it false, if you want to stop the non root user validation
|
## Mark it false, if you want to stop the non root user validation
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
fsGroup: 10001
|
fsGroup: 10001
|
||||||
@@ -329,7 +333,7 @@ buildermgr:
|
|||||||
## This is an experimental section, please verify before enabling in production.
|
## This is an experimental section, please verify before enabling in production.
|
||||||
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
||||||
securityContext:
|
securityContext:
|
||||||
enabled: false
|
enabled: true
|
||||||
## Mark it false, if you want to stop the non root user validation
|
## Mark it false, if you want to stop the non root user validation
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
fsGroup: 10001
|
fsGroup: 10001
|
||||||
@@ -357,7 +361,7 @@ controller:
|
|||||||
## This is an experimental section, please verify before enabling in production.
|
## This is an experimental section, please verify before enabling in production.
|
||||||
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
||||||
securityContext:
|
securityContext:
|
||||||
enabled: false
|
enabled: true
|
||||||
## Mark it false, if you want to stop the non root user validation
|
## Mark it false, if you want to stop the non root user validation
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
fsGroup: 10001
|
fsGroup: 10001
|
||||||
@@ -394,7 +398,7 @@ webhook:
|
|||||||
## This is an experimental section, please verify before enabling in production.
|
## This is an experimental section, please verify before enabling in production.
|
||||||
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
||||||
securityContext:
|
securityContext:
|
||||||
enabled: false
|
enabled: true
|
||||||
## Mark it false, if you want to stop the non root user validation
|
## Mark it false, if you want to stop the non root user validation
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
fsGroup: 10001
|
fsGroup: 10001
|
||||||
@@ -421,7 +425,7 @@ kubewatcher:
|
|||||||
## This is an experimental section, please verify before enabling in production.
|
## This is an experimental section, please verify before enabling in production.
|
||||||
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
||||||
securityContext:
|
securityContext:
|
||||||
enabled: false
|
enabled: true
|
||||||
## Mark it false, if you want to stop the non root user validation
|
## Mark it false, if you want to stop the non root user validation
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
fsGroup: 10001
|
fsGroup: 10001
|
||||||
@@ -453,7 +457,7 @@ storagesvc:
|
|||||||
## This is an experimental section, please verify before enabling in production.
|
## This is an experimental section, please verify before enabling in production.
|
||||||
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
||||||
securityContext:
|
securityContext:
|
||||||
enabled: false
|
enabled: true
|
||||||
## Mark it false, if you want to stop the non root user validation
|
## Mark it false, if you want to stop the non root user validation
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
fsGroup: 10001
|
fsGroup: 10001
|
||||||
@@ -480,7 +484,7 @@ timer:
|
|||||||
## This is an experimental section, please verify before enabling in production.
|
## This is an experimental section, please verify before enabling in production.
|
||||||
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
||||||
securityContext:
|
securityContext:
|
||||||
enabled: false
|
enabled: true
|
||||||
## Mark it false, if you want to stop the non root user validation
|
## Mark it false, if you want to stop the non root user validation
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
fsGroup: 10001
|
fsGroup: 10001
|
||||||
@@ -684,7 +688,7 @@ preUpgradeChecks:
|
|||||||
image: fission/pre-upgrade-checks
|
image: fission/pre-upgrade-checks
|
||||||
## pre-install/pre-upgrade checks image version
|
## pre-install/pre-upgrade checks image version
|
||||||
##
|
##
|
||||||
imageTag: v1.18.0-rc1
|
imageTag: v1.19.0
|
||||||
|
|
||||||
## Fission post-install/post-upgrade reporting live in this image
|
## Fission post-install/post-upgrade reporting live in this image
|
||||||
##
|
##
|
||||||
@@ -725,7 +729,7 @@ canaryDeployment:
|
|||||||
## This is an experimental section, please verify before enabling in production.
|
## This is an experimental section, please verify before enabling in production.
|
||||||
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
## Ref: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1
|
||||||
securityContext:
|
securityContext:
|
||||||
enabled: false
|
enabled: true
|
||||||
## Mark it false, if you want to stop the non root user validation
|
## Mark it false, if you want to stop the non root user validation
|
||||||
runAsNonRoot: true
|
runAsNonRoot: true
|
||||||
fsGroup: 10001
|
fsGroup: 10001
|
||||||
@@ -816,7 +820,7 @@ mqt_keda:
|
|||||||
connector_images:
|
connector_images:
|
||||||
kafka:
|
kafka:
|
||||||
image: fission/keda-kafka-http-connector
|
image: fission/keda-kafka-http-connector
|
||||||
tag: v0.11
|
tag: v0.12
|
||||||
rabbitmq:
|
rabbitmq:
|
||||||
image: fission/keda-rabbitmq-http-connector
|
image: fission/keda-rabbitmq-http-connector
|
||||||
tag: v0.10
|
tag: v0.10
|
||||||
@@ -825,16 +829,16 @@ mqt_keda:
|
|||||||
tag: v0.10
|
tag: v0.10
|
||||||
aws_sqs:
|
aws_sqs:
|
||||||
image: fission/keda-aws-sqs-http-connector
|
image: fission/keda-aws-sqs-http-connector
|
||||||
tag: v0.10
|
tag: v0.11
|
||||||
nats_steaming:
|
nats_steaming:
|
||||||
image: fission/keda-nats-streaming-http-connector
|
image: fission/keda-nats-streaming-http-connector
|
||||||
tag: v0.12
|
tag: v0.13
|
||||||
nats_jetstream:
|
nats_jetstream:
|
||||||
image: fission/keda-nats-jetstream-http-connector
|
image: fission/keda-nats-jetstream-http-connector
|
||||||
tag: v0.2
|
tag: v0.4
|
||||||
gcp_pubsub:
|
gcp_pubsub:
|
||||||
image: fission/keda-gcp-pubsub-http-connector
|
image: fission/keda-gcp-pubsub-http-connector
|
||||||
tag: v0.5
|
tag: v0.6
|
||||||
redis:
|
redis:
|
||||||
image: fission/keda-redis-http-connector
|
image: fission/keda-redis-http-connector
|
||||||
tag: v0.3
|
tag: v0.3
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM alpine:3.16
|
FROM alpine:3.18
|
||||||
RUN apk add --update ca-certificates
|
RUN apk add --update ca-certificates
|
||||||
COPY builder /builder
|
COPY builder /builder
|
||||||
ENTRYPOINT ["/builder"]
|
ENTRYPOINT ["/builder"]
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM alpine:3.16
|
FROM alpine:3.18
|
||||||
RUN apk add --update ca-certificates
|
RUN apk add --update ca-certificates
|
||||||
COPY fetcher /
|
COPY fetcher /
|
||||||
ENTRYPOINT ["/fetcher"]
|
ENTRYPOINT ["/fetcher"]
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM alpine:3.16
|
FROM alpine:3.18
|
||||||
RUN apk add --update ca-certificates
|
RUN apk add --update ca-certificates
|
||||||
COPY fission-bundle /
|
COPY fission-bundle /
|
||||||
ENTRYPOINT ["/fission-bundle"]
|
ENTRYPOINT ["/fission-bundle"]
|
||||||
@@ -216,7 +216,7 @@ Options:
|
|||||||
ctx := signals.SetupSignalHandler()
|
ctx := signals.SetupSignalHandler()
|
||||||
profile.ProfileIfEnabled(ctx, logger)
|
profile.ProfileIfEnabled(ctx, logger)
|
||||||
|
|
||||||
version := fmt.Sprintf("Fission Bundle Version: %v", info.BuildInfo().String())
|
version := fmt.Sprintf("Fission Bundle Version: %s", info.BuildInfo().String())
|
||||||
arguments, err := docopt.ParseArgs(usage, nil, version)
|
arguments, err := docopt.ParseArgs(usage, nil, version)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Error("failed to parse arguments", zap.Error(err))
|
logger.Error("failed to parse arguments", zap.Error(err))
|
||||||
|
|||||||
@@ -35,10 +35,10 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func Start(ctx context.Context, logger *zap.Logger, routerUrl string) error {
|
func Start(ctx context.Context, logger *zap.Logger, routerUrl string) error {
|
||||||
fissionClient, _, _, _, err := crd.MakeFissionClient()
|
clientGen := crd.NewClientGenerator()
|
||||||
|
fissionClient, err := clientGen.GetFissionClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrap(err, "failed to get fission or kubernetes client")
|
return errors.Wrap(err, "failed to get fission client")
|
||||||
}
|
}
|
||||||
|
|
||||||
err = crd.WaitForCRDs(ctx, logger, fissionClient)
|
err = crd.WaitForCRDs(ctx, logger, fissionClient)
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
FROM alpine:3.16
|
FROM alpine:3.18
|
||||||
RUN apk add --update ca-certificates
|
RUN apk add --update ca-certificates
|
||||||
COPY pre-upgrade-checks /
|
COPY pre-upgrade-checks /
|
||||||
ENTRYPOINT ["/pre-upgrade-checks"]
|
ENTRYPOINT ["/pre-upgrade-checks"]
|
||||||
@@ -52,9 +52,18 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func makePreUpgradeTaskClient(logger *zap.Logger) (*PreUpgradeTaskClient, error) {
|
func makePreUpgradeTaskClient(logger *zap.Logger) (*PreUpgradeTaskClient, error) {
|
||||||
fissionClient, k8sClient, apiExtClient, _, err := crd.MakeFissionClient()
|
clientGen := crd.NewClientGenerator()
|
||||||
|
fissionClient, err := clientGen.GetFissionClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, "error making fission client")
|
return nil, errors.Wrap(err, "failed to get fission client")
|
||||||
|
}
|
||||||
|
k8sClient, err := clientGen.GetKubernetesClient()
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Wrap(err, "failed to get kubernetes client")
|
||||||
|
}
|
||||||
|
apiExtClient, err := clientGen.GetApiExtensionsClient()
|
||||||
|
if err != nil {
|
||||||
|
return nil, errors.Wrap(err, "failed to get apiextensions client")
|
||||||
}
|
}
|
||||||
|
|
||||||
return &PreUpgradeTaskClient{
|
return &PreUpgradeTaskClient{
|
||||||
@@ -123,7 +132,7 @@ func (client *PreUpgradeTaskClient) VerifyFunctionSpecReferences(ctx context.Con
|
|||||||
var fList *fv1.FunctionList
|
var fList *fv1.FunctionList
|
||||||
errs := &multierror.Error{}
|
errs := &multierror.Error{}
|
||||||
|
|
||||||
for _, namespace := range utils.GetNamespaces() {
|
for _, namespace := range utils.DefaultNSResolver().FissionResourceNS {
|
||||||
for i := 0; i < maxRetries; i++ {
|
for i := 0; i < maxRetries; i++ {
|
||||||
fList, err = client.fissionClient.CoreV1().Functions(namespace).List(ctx, metav1.ListOptions{})
|
fList, err = client.fissionClient.CoreV1().Functions(namespace).List(ctx, metav1.ListOptions{})
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
FROM alpine:3.16
|
FROM alpine:3.18
|
||||||
RUN apk add --update ca-certificates
|
RUN apk add --update ca-certificates
|
||||||
COPY reporter /
|
COPY reporter /
|
||||||
ENTRYPOINT ["/reporter"]
|
ENTRYPOINT ["/reporter"]
|
||||||
@@ -1,49 +1,51 @@
|
|||||||
module github.com/fission/fission
|
module github.com/fission/fission
|
||||||
|
|
||||||
go 1.19
|
go 1.20
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/Shopify/sarama v1.37.2
|
github.com/Shopify/sarama v1.37.2
|
||||||
|
github.com/bep/debounce v1.2.1
|
||||||
github.com/dchest/uniuri v1.2.0
|
github.com/dchest/uniuri v1.2.0
|
||||||
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815
|
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815
|
||||||
github.com/dustin/go-humanize v1.0.0
|
github.com/dustin/go-humanize v1.0.1
|
||||||
github.com/elastic/crd-ref-docs v0.0.8
|
github.com/elastic/crd-ref-docs v0.0.8
|
||||||
github.com/emicklei/go-restful-openapi/v2 v2.9.1
|
github.com/emicklei/go-restful-openapi/v2 v2.9.1
|
||||||
github.com/emicklei/go-restful/v3 v3.10.1
|
github.com/emicklei/go-restful/v3 v3.10.2
|
||||||
github.com/fatih/color v1.13.0
|
github.com/fatih/color v1.15.0
|
||||||
github.com/fsnotify/fsnotify v1.6.0
|
github.com/fsnotify/fsnotify v1.6.0
|
||||||
github.com/go-git/go-git/v5 v5.4.2
|
github.com/go-git/go-git/v5 v5.6.1
|
||||||
github.com/go-openapi/spec v0.20.7
|
github.com/go-openapi/spec v0.20.9
|
||||||
github.com/golang-jwt/jwt/v4 v4.4.2
|
github.com/golang-jwt/jwt/v4 v4.5.0
|
||||||
|
github.com/google/go-cmp v0.5.9
|
||||||
github.com/gorilla/mux v1.8.0
|
github.com/gorilla/mux v1.8.0
|
||||||
github.com/graymeta/stow v0.2.8
|
github.com/graymeta/stow v0.2.8
|
||||||
github.com/hashicorp/go-multierror v1.1.1
|
github.com/hashicorp/go-multierror v1.1.1
|
||||||
github.com/hashicorp/go-retryablehttp v0.7.1
|
github.com/hashicorp/go-retryablehttp v0.7.2
|
||||||
github.com/imdario/mergo v0.3.13
|
github.com/imdario/mergo v0.3.15
|
||||||
github.com/influxdata/influxdb v1.10.0
|
github.com/influxdata/influxdb v1.11.1
|
||||||
github.com/mholt/archiver/v3 v3.5.1
|
github.com/mholt/archiver/v3 v3.5.1
|
||||||
github.com/minio/minio-go v6.0.14+incompatible
|
github.com/minio/minio-go v6.0.14+incompatible
|
||||||
github.com/ory/dockertest v3.3.5+incompatible
|
github.com/ory/dockertest v3.3.5+incompatible
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
github.com/prometheus/client_golang v1.14.0
|
github.com/prometheus/client_golang v1.15.1
|
||||||
github.com/prometheus/common v0.37.0
|
github.com/prometheus/common v0.43.0
|
||||||
github.com/robfig/cron v1.2.0
|
github.com/robfig/cron/v3 v3.0.1
|
||||||
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06
|
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06
|
||||||
github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b
|
github.com/satori/go.uuid v1.2.1-0.20181028125025-b2ce2384e17b
|
||||||
github.com/spf13/cobra v1.6.1
|
github.com/spf13/cobra v1.7.0
|
||||||
github.com/spf13/pflag v1.0.5
|
github.com/spf13/pflag v1.0.5
|
||||||
github.com/stretchr/testify v1.8.1
|
github.com/stretchr/testify v1.8.2
|
||||||
github.com/wcharczuk/go-chart v2.0.1+incompatible
|
github.com/wcharczuk/go-chart v2.0.1+incompatible
|
||||||
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.36.4
|
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.41.1
|
||||||
go.opentelemetry.io/contrib/propagators/autoprop v0.36.4
|
go.opentelemetry.io/contrib/propagators/autoprop v0.41.1
|
||||||
go.opentelemetry.io/otel v1.11.1
|
go.opentelemetry.io/otel v1.15.1
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.11.1
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.15.1
|
||||||
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.11.1
|
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.15.1
|
||||||
go.opentelemetry.io/otel/sdk v1.11.1
|
go.opentelemetry.io/otel/sdk v1.15.1
|
||||||
go.opentelemetry.io/otel/trace v1.11.1
|
go.opentelemetry.io/otel/trace v1.15.1
|
||||||
go.uber.org/zap v1.23.0
|
go.uber.org/zap v1.24.0
|
||||||
golang.org/x/net v0.2.0
|
golang.org/x/net v0.10.0
|
||||||
google.golang.org/grpc v1.51.0
|
google.golang.org/grpc v1.55.0
|
||||||
k8s.io/api v0.25.4
|
k8s.io/api v0.25.4
|
||||||
k8s.io/apiextensions-apiserver v0.25.4
|
k8s.io/apiextensions-apiserver v0.25.4
|
||||||
k8s.io/apimachinery v0.25.4
|
k8s.io/apimachinery v0.25.4
|
||||||
@@ -55,7 +57,8 @@ require (
|
|||||||
)
|
)
|
||||||
|
|
||||||
require (
|
require (
|
||||||
cloud.google.com/go v0.99.0 // indirect
|
cloud.google.com/go/compute v1.18.0 // indirect
|
||||||
|
cloud.google.com/go/compute/metadata v0.2.3 // indirect
|
||||||
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
|
github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect
|
||||||
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
|
github.com/Azure/go-autorest v14.2.0+incompatible // indirect
|
||||||
github.com/Azure/go-autorest/autorest v0.11.27 // indirect
|
github.com/Azure/go-autorest/autorest v0.11.27 // indirect
|
||||||
@@ -63,20 +66,21 @@ require (
|
|||||||
github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
|
github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect
|
||||||
github.com/Azure/go-autorest/logger v0.2.1 // indirect
|
github.com/Azure/go-autorest/logger v0.2.1 // indirect
|
||||||
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
|
github.com/Azure/go-autorest/tracing v0.6.0 // indirect
|
||||||
github.com/Masterminds/goutils v1.1.0 // indirect
|
github.com/Masterminds/goutils v1.1.1 // indirect
|
||||||
github.com/Masterminds/semver v1.5.0 // indirect
|
github.com/Masterminds/semver v1.5.0 // indirect
|
||||||
github.com/Masterminds/sprig v2.22.0+incompatible // indirect
|
github.com/Masterminds/sprig v2.22.0+incompatible // indirect
|
||||||
github.com/Microsoft/go-winio v0.5.1 // indirect
|
github.com/Microsoft/go-winio v0.5.2 // indirect
|
||||||
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect
|
github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect
|
||||||
github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7 // indirect
|
github.com/ProtonMail/go-crypto v0.0.0-20230217124315-7d5c6f04bbb8 // indirect
|
||||||
github.com/acomagu/bufpipe v1.0.3 // indirect
|
github.com/acomagu/bufpipe v1.0.4 // indirect
|
||||||
github.com/andybalholm/brotli v1.0.1 // indirect
|
github.com/andybalholm/brotli v1.0.1 // indirect
|
||||||
github.com/aws/aws-sdk-go v1.42.34 // indirect
|
github.com/aws/aws-sdk-go v1.42.34 // indirect
|
||||||
github.com/beorn7/perks v1.0.1 // indirect
|
github.com/beorn7/perks v1.0.1 // indirect
|
||||||
github.com/blend/go-sdk v1.20220112.5 // indirect
|
github.com/blend/go-sdk v1.20220112.5 // indirect
|
||||||
github.com/cenkalti/backoff v2.2.1+incompatible // indirect
|
github.com/cenkalti/backoff v2.2.1+incompatible // indirect
|
||||||
github.com/cenkalti/backoff/v4 v4.1.3 // indirect
|
github.com/cenkalti/backoff/v4 v4.2.1 // indirect
|
||||||
github.com/cespare/xxhash/v2 v2.1.2 // indirect
|
github.com/cespare/xxhash/v2 v2.2.0 // indirect
|
||||||
|
github.com/cloudflare/circl v1.1.0 // indirect
|
||||||
github.com/containerd/continuity v0.2.2 // indirect
|
github.com/containerd/continuity v0.2.2 // indirect
|
||||||
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
|
github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect
|
||||||
github.com/davecgh/go-spew v1.1.1 // indirect
|
github.com/davecgh/go-spew v1.1.1 // indirect
|
||||||
@@ -86,37 +90,36 @@ require (
|
|||||||
github.com/eapache/go-resiliency v1.3.0 // indirect
|
github.com/eapache/go-resiliency v1.3.0 // indirect
|
||||||
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect
|
github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect
|
||||||
github.com/eapache/queue v1.1.0 // indirect
|
github.com/eapache/queue v1.1.0 // indirect
|
||||||
github.com/emirpasic/gods v1.12.0 // indirect
|
github.com/emirpasic/gods v1.18.1 // indirect
|
||||||
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
|
github.com/evanphx/json-patch v4.12.0+incompatible // indirect
|
||||||
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
|
github.com/evanphx/json-patch/v5 v5.6.0 // indirect
|
||||||
github.com/felixge/httpsnoop v1.0.3 // indirect
|
github.com/felixge/httpsnoop v1.0.3 // indirect
|
||||||
github.com/go-git/gcfg v1.5.0 // indirect
|
github.com/go-git/gcfg v1.5.0 // indirect
|
||||||
github.com/go-git/go-billy/v5 v5.3.1 // indirect
|
github.com/go-git/go-billy/v5 v5.4.1 // indirect
|
||||||
github.com/go-ini/ini v1.66.4 // indirect
|
github.com/go-ini/ini v1.66.4 // indirect
|
||||||
github.com/go-logr/logr v1.2.3 // indirect
|
github.com/go-logr/logr v1.2.4 // indirect
|
||||||
github.com/go-logr/stdr v1.2.2 // indirect
|
github.com/go-logr/stdr v1.2.2 // indirect
|
||||||
github.com/go-logr/zapr v1.2.3 // indirect
|
github.com/go-logr/zapr v1.2.3 // indirect
|
||||||
github.com/go-openapi/jsonpointer v0.19.5 // indirect
|
github.com/go-openapi/jsonpointer v0.19.6 // indirect
|
||||||
github.com/go-openapi/jsonreference v0.20.0 // indirect
|
github.com/go-openapi/jsonreference v0.20.1 // indirect
|
||||||
github.com/go-openapi/swag v0.19.15 // indirect
|
github.com/go-openapi/swag v0.22.3 // indirect
|
||||||
github.com/gobuffalo/flect v0.2.5 // indirect
|
github.com/gobuffalo/flect v0.3.0 // indirect
|
||||||
github.com/goccy/go-yaml v1.1.5 // indirect
|
github.com/goccy/go-yaml v1.11.0 // indirect
|
||||||
github.com/gogo/protobuf v1.3.2 // indirect
|
github.com/gogo/protobuf v1.3.2 // indirect
|
||||||
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
|
github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0 // indirect
|
||||||
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
|
||||||
github.com/golang/protobuf v1.5.2 // indirect
|
github.com/golang/protobuf v1.5.3 // indirect
|
||||||
github.com/golang/snappy v0.0.4 // indirect
|
github.com/golang/snappy v0.0.4 // indirect
|
||||||
github.com/google/gnostic v0.5.7-v3refs // indirect
|
github.com/google/gnostic v0.5.7-v3refs // indirect
|
||||||
github.com/google/go-cmp v0.5.9 // indirect
|
|
||||||
github.com/google/gofuzz v1.1.0 // indirect
|
github.com/google/gofuzz v1.1.0 // indirect
|
||||||
github.com/google/uuid v1.3.0 // indirect
|
github.com/google/uuid v1.3.0 // indirect
|
||||||
github.com/gotestyourself/gotestyourself v2.2.0+incompatible // indirect
|
github.com/gotestyourself/gotestyourself v2.2.0+incompatible // indirect
|
||||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.3 // indirect
|
github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.3 // indirect
|
||||||
github.com/hashicorp/errwrap v1.0.0 // indirect
|
github.com/hashicorp/errwrap v1.0.0 // indirect
|
||||||
github.com/hashicorp/go-cleanhttp v0.5.1 // indirect
|
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
|
||||||
github.com/hashicorp/go-uuid v1.0.3 // indirect
|
github.com/hashicorp/go-uuid v1.0.3 // indirect
|
||||||
github.com/huandu/xstrings v1.2.1 // indirect
|
github.com/huandu/xstrings v1.3.3 // indirect
|
||||||
github.com/inconshreveable/mousetrap v1.0.1 // indirect
|
github.com/inconshreveable/mousetrap v1.1.0 // indirect
|
||||||
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
|
github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect
|
||||||
github.com/jcmturner/aescts/v2 v2.0.0 // indirect
|
github.com/jcmturner/aescts/v2 v2.0.0 // indirect
|
||||||
github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect
|
github.com/jcmturner/dnsutils/v2 v2.0.0 // indirect
|
||||||
@@ -126,17 +129,17 @@ require (
|
|||||||
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
github.com/jmespath/go-jmespath v0.4.0 // indirect
|
||||||
github.com/josharian/intern v1.0.0 // indirect
|
github.com/josharian/intern v1.0.0 // indirect
|
||||||
github.com/json-iterator/go v1.1.12 // indirect
|
github.com/json-iterator/go v1.1.12 // indirect
|
||||||
github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351 // indirect
|
github.com/kevinburke/ssh_config v1.2.0 // indirect
|
||||||
github.com/klauspost/compress v1.15.11 // indirect
|
github.com/klauspost/compress v1.15.11 // indirect
|
||||||
github.com/klauspost/pgzip v1.2.5 // indirect
|
github.com/klauspost/pgzip v1.2.5 // indirect
|
||||||
github.com/lib/pq v1.10.4 // indirect
|
github.com/lib/pq v1.10.4 // indirect
|
||||||
github.com/mailru/easyjson v0.7.6 // indirect
|
github.com/mailru/easyjson v0.7.7 // indirect
|
||||||
github.com/mattn/go-colorable v0.1.12 // indirect
|
github.com/mattn/go-colorable v0.1.13 // indirect
|
||||||
github.com/mattn/go-isatty v0.0.14 // indirect
|
github.com/mattn/go-isatty v0.0.17 // indirect
|
||||||
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect
|
github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
|
||||||
github.com/mitchellh/copystructure v1.0.0 // indirect
|
github.com/mitchellh/copystructure v1.2.0 // indirect
|
||||||
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
github.com/mitchellh/go-homedir v1.1.0 // indirect
|
||||||
github.com/mitchellh/reflectwalk v1.0.0 // indirect
|
github.com/mitchellh/reflectwalk v1.0.2 // indirect
|
||||||
github.com/moby/spdystream v0.2.0 // indirect
|
github.com/moby/spdystream v0.2.0 // indirect
|
||||||
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
|
||||||
github.com/modern-go/reflect2 v1.0.2 // indirect
|
github.com/modern-go/reflect2 v1.0.2 // indirect
|
||||||
@@ -144,51 +147,52 @@ require (
|
|||||||
github.com/nwaples/rardecode v1.1.0 // indirect
|
github.com/nwaples/rardecode v1.1.0 // indirect
|
||||||
github.com/opencontainers/go-digest v1.0.0 // indirect
|
github.com/opencontainers/go-digest v1.0.0 // indirect
|
||||||
github.com/opencontainers/image-spec v1.0.2 // indirect
|
github.com/opencontainers/image-spec v1.0.2 // indirect
|
||||||
github.com/opencontainers/runc v1.1.2 // indirect
|
github.com/opencontainers/runc v1.1.5 // indirect
|
||||||
github.com/pierrec/lz4/v4 v4.1.17 // indirect
|
github.com/pierrec/lz4/v4 v4.1.17 // indirect
|
||||||
|
github.com/pjbgf/sha1cd v0.3.0 // indirect
|
||||||
github.com/pmezard/go-difflib v1.0.0 // indirect
|
github.com/pmezard/go-difflib v1.0.0 // indirect
|
||||||
github.com/prometheus/client_model v0.3.0 // indirect
|
github.com/prometheus/client_model v0.4.0 // indirect
|
||||||
github.com/prometheus/procfs v0.8.0 // indirect
|
github.com/prometheus/procfs v0.9.0 // indirect
|
||||||
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
|
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect
|
||||||
github.com/rogpeppe/go-internal v1.9.0 // indirect
|
|
||||||
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
github.com/russross/blackfriday/v2 v2.1.0 // indirect
|
||||||
github.com/sergi/go-diff v1.1.0 // indirect
|
github.com/sergi/go-diff v1.1.0 // indirect
|
||||||
github.com/sirupsen/logrus v1.8.1 // indirect
|
github.com/sirupsen/logrus v1.9.0 // indirect
|
||||||
|
github.com/skeema/knownhosts v1.1.0 // indirect
|
||||||
github.com/ulikunitz/xz v0.5.9 // indirect
|
github.com/ulikunitz/xz v0.5.9 // indirect
|
||||||
github.com/xanzy/ssh-agent v0.3.0 // indirect
|
github.com/xanzy/ssh-agent v0.3.3 // indirect
|
||||||
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect
|
github.com/xi2/xz v0.0.0-20171230120015-48954b6210f8 // indirect
|
||||||
go.opentelemetry.io/contrib/propagators/aws v1.11.1 // indirect
|
go.opentelemetry.io/contrib/propagators/aws v1.16.1 // indirect
|
||||||
go.opentelemetry.io/contrib/propagators/b3 v1.11.1 // indirect
|
go.opentelemetry.io/contrib/propagators/b3 v1.16.1 // indirect
|
||||||
go.opentelemetry.io/contrib/propagators/jaeger v1.11.1 // indirect
|
go.opentelemetry.io/contrib/propagators/jaeger v1.16.1 // indirect
|
||||||
go.opentelemetry.io/contrib/propagators/ot v1.11.1 // indirect
|
go.opentelemetry.io/contrib/propagators/ot v1.16.1 // indirect
|
||||||
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.11.1 // indirect
|
go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.15.1 // indirect
|
||||||
go.opentelemetry.io/otel/metric v0.33.0 // indirect
|
go.opentelemetry.io/otel/metric v0.38.1 // indirect
|
||||||
go.opentelemetry.io/proto/otlp v0.19.0 // indirect
|
go.opentelemetry.io/proto/otlp v0.19.0 // indirect
|
||||||
go.uber.org/atomic v1.9.0 // indirect
|
go.uber.org/atomic v1.9.0 // indirect
|
||||||
go.uber.org/multierr v1.8.0 // indirect
|
go.uber.org/multierr v1.11.0 // indirect
|
||||||
golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa // indirect
|
golang.org/x/crypto v0.7.0 // indirect
|
||||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b // indirect
|
golang.org/x/image v0.5.0 // indirect
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
|
golang.org/x/mod v0.10.0 // indirect
|
||||||
golang.org/x/oauth2 v0.0.0-20220411215720-9780585627b5 // indirect
|
golang.org/x/oauth2 v0.7.0 // indirect
|
||||||
golang.org/x/sys v0.2.0 // indirect
|
golang.org/x/sys v0.8.0 // indirect
|
||||||
golang.org/x/term v0.2.0 // indirect
|
golang.org/x/term v0.8.0 // indirect
|
||||||
golang.org/x/text v0.4.0 // indirect
|
golang.org/x/text v0.9.0 // indirect
|
||||||
golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect
|
golang.org/x/time v0.0.0-20220609170525-579cf78fd858 // indirect
|
||||||
golang.org/x/tools v0.1.12 // indirect
|
golang.org/x/tools v0.8.0 // indirect
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect
|
||||||
gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect
|
gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect
|
||||||
google.golang.org/appengine v1.6.7 // indirect
|
google.golang.org/appengine v1.6.7 // indirect
|
||||||
google.golang.org/genproto v0.0.0-20220628213854-d9e0b6570c03 // indirect
|
google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect
|
||||||
google.golang.org/protobuf v1.28.1 // indirect
|
google.golang.org/protobuf v1.30.0 // indirect
|
||||||
gopkg.in/inf.v0 v0.9.1 // indirect
|
gopkg.in/inf.v0 v0.9.1 // indirect
|
||||||
gopkg.in/warnings.v0 v0.1.2 // indirect
|
gopkg.in/warnings.v0 v0.1.2 // indirect
|
||||||
gopkg.in/yaml.v2 v2.4.0 // indirect
|
gopkg.in/yaml.v2 v2.4.0 // indirect
|
||||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||||
gotest.tools v2.2.0+incompatible // indirect
|
gotest.tools v2.2.0+incompatible // indirect
|
||||||
k8s.io/component-base v0.25.4 // indirect
|
k8s.io/component-base v0.25.4 // indirect
|
||||||
k8s.io/klog/v2 v2.70.1 // indirect
|
k8s.io/klog/v2 v2.90.1 // indirect
|
||||||
k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1 // indirect
|
k8s.io/kube-openapi v0.0.0-20230308215209-15aac26d736a // indirect
|
||||||
k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed // indirect
|
k8s.io/utils v0.0.0-20230209194617-a36077c30491 // indirect
|
||||||
sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect
|
sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
|
||||||
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
|
sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect
|
||||||
)
|
)
|
||||||
|
|||||||
Executable
+23
@@ -0,0 +1,23 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
if [[ -n "${TRACE-}" ]]; then
|
||||||
|
set -o xtrace
|
||||||
|
fi
|
||||||
|
NAMESPACE=${1:-monitoring}
|
||||||
|
RELEASE=${2:-prometheus}
|
||||||
|
BACKUP_DIR=${3:-/tmp/prometheus}
|
||||||
|
LABELS="-l app=kube-prometheus-stack-${RELEASE}"
|
||||||
|
|
||||||
|
sts_name=$(kubectl -n "$NAMESPACE" get sts "$LABELS" -o custom-columns=:.metadata.name | grep ^"$RELEASE")
|
||||||
|
echo "Statefulset name: $sts_name"
|
||||||
|
|
||||||
|
mkdir -p "$BACKUP_DIR"/prometheus
|
||||||
|
# Copy snapshot to local
|
||||||
|
kubectl -n "$NAMESPACE" cp "$sts_name"-0:/prometheus/ "$BACKUP_DIR"/prometheus
|
||||||
|
|
||||||
|
mkdir -p "$BACKUP_DIR"/etc/prometheus
|
||||||
|
kubectl -n "$NAMESPACE" cp "$sts_name"-0:/etc/prometheus "$BACKUP_DIR"/etc/prometheus
|
||||||
Executable
+204
@@ -0,0 +1,204 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
###
|
||||||
|
# This script is used to analyze the dump files generated by the Fission CI.
|
||||||
|
###
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
if [[ -n "${TRACE-}" ]]; then
|
||||||
|
set -o xtrace
|
||||||
|
fi
|
||||||
|
REPO="fission/fission"
|
||||||
|
|
||||||
|
function exit_error() {
|
||||||
|
echo "$1"
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
function doit() {
|
||||||
|
echo "! $*"
|
||||||
|
"$@"
|
||||||
|
}
|
||||||
|
|
||||||
|
function check_context() {
|
||||||
|
if [ -z "$DUMP_CONTEXT" ]; then
|
||||||
|
exit_error "DUMP_CONTEXT not set"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function prom_context() {
|
||||||
|
if [ -z "$PROM_CONTEXT" ]; then
|
||||||
|
exit_error "PROM_CONTEXT not set"
|
||||||
|
fi
|
||||||
|
echo "Prometheus context: $PROM_CONTEXT"
|
||||||
|
}
|
||||||
|
|
||||||
|
function list_context() {
|
||||||
|
for dump in $(find .dumps/$RUN_ID/extract -type d -depth 1); do
|
||||||
|
echo "==== $dump ===="
|
||||||
|
echo "-- Fission Version --"
|
||||||
|
cat $dump/fission-version/fission-version.txt | grep "server:\|client\:\|Version"
|
||||||
|
echo "-- K8s Version --"
|
||||||
|
cat $dump/kubernetes-version/kubernetes-version.txt | grep gitVersion
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function list_kind() {
|
||||||
|
for dump in $(find .dumps/$RUN_ID -type d -depth 1 -name 'kind-logs-*'); do
|
||||||
|
echo "==== $dump ===="
|
||||||
|
cat $dump/kind-version.txt
|
||||||
|
echo -e "\n"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function extract() {
|
||||||
|
ARTIFACT_PATH=.dumps/$RUN_ID
|
||||||
|
if [ ! -d "$ARTIFACT_PATH" ]; then
|
||||||
|
doit mkdir -p "$ARTIFACT_PATH"
|
||||||
|
fi
|
||||||
|
echo $ARTIFACT_PATH
|
||||||
|
# Don't download if artifact already exits for run
|
||||||
|
if [ ! -d "$ARTIFACT_PATH"/fission-dump/ ]; then
|
||||||
|
doit gh run download "$RUN_ID" -R "$REPO" -D "$ARTIFACT_PATH"
|
||||||
|
fi
|
||||||
|
if [ -d "$ARTIFACT_PATH"/extract ]; then
|
||||||
|
doit rm -r "$ARTIFACT_PATH"/extract
|
||||||
|
fi
|
||||||
|
DUMPS=$(find "$ARTIFACT_PATH" -name 'fission-dump*.zip')
|
||||||
|
for dump in $DUMPS; do
|
||||||
|
doit unzip -q $dump -d "$ARTIFACT_PATH"/extract
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function info() {
|
||||||
|
check_context
|
||||||
|
echo "Dump context: $DUMP_CONTEXT"
|
||||||
|
doit cat "$DUMP_CONTEXT"/fission-version/fission-version.txt
|
||||||
|
doit cat "$DUMP_CONTEXT"/kubernetes-version/kubernetes-version.txt
|
||||||
|
}
|
||||||
|
|
||||||
|
function race_conditions() {
|
||||||
|
check_context
|
||||||
|
# doit ack -A 10 "WARNING: DATA RACE" "$DUMP_CONTEXT/"
|
||||||
|
LOG_FILES=$(find $DUMP_CONTEXT -name '*.txt' -type f | grep log)
|
||||||
|
for logfile in $LOG_FILES; do
|
||||||
|
out=$(sed -n '/DATA RACE/,/==================$/p' "$logfile")
|
||||||
|
if [ "$out" != "" ]; then
|
||||||
|
shortname=$(basename $logfile)
|
||||||
|
echo "Trace from $shortname"
|
||||||
|
sed -n '/DATA RACE/,/==================$/p' "$logfile"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
function error_logs() {
|
||||||
|
check_context
|
||||||
|
# ack '"level":"error"' $DUMP_CONTEXT | grep -v "404" | cut -d':' -f 3- | go-slearch -pts,caller,msg,error,logger,errorVerbose | sort
|
||||||
|
ack -i 'error' $DUMP_CONTEXT | grep -v "404" | cut -d':' -f 3- | sort
|
||||||
|
}
|
||||||
|
|
||||||
|
function prometheus_run() {
|
||||||
|
# check if prometheus binary exists
|
||||||
|
if command -v prometheus &> /dev/null ; then
|
||||||
|
echo "prometheus binary found"
|
||||||
|
else
|
||||||
|
exit_error "prometheus binary not found"
|
||||||
|
fi
|
||||||
|
prom_context
|
||||||
|
TSDB_PATH=$PROM_CONTEXT/prometheus
|
||||||
|
ETC_PROM=$PROM_CONTEXT/etc/prometheus
|
||||||
|
prometheus \
|
||||||
|
--web.console.templates=$ETC_PROM/consoles \
|
||||||
|
--web.console.libraries=$ETC_PROM/console_libraries \
|
||||||
|
--storage.tsdb.retention.time=10d \
|
||||||
|
--config.file=$ETC_PROM/config_out/prometheus.env.yaml \
|
||||||
|
--storage.tsdb.path=${TSDB_PATH}/ \
|
||||||
|
--web.enable-lifecycle \
|
||||||
|
--web.listen-address=127.0.0.1:${PROM_PORT:-9090} \
|
||||||
|
--web.route-prefix=/ \
|
||||||
|
--storage.tsdb.wal-compression \
|
||||||
|
--web.config.file=$ETC_PROM/web_config/web-config.yaml
|
||||||
|
}
|
||||||
|
|
||||||
|
function usage {
|
||||||
|
echo "./$(basename "$0") [OPTIONS]"
|
||||||
|
echo "Utilities related to fission dump analysis"
|
||||||
|
echo "
|
||||||
|
Options:
|
||||||
|
-h Show usage
|
||||||
|
-x [run_id] Download and extract dump locally
|
||||||
|
-l [run_id] List dump files for a run
|
||||||
|
-k [run_id] List kind exports in a run
|
||||||
|
|
||||||
|
Following options required DUMP_CONTEXT variable set.
|
||||||
|
|
||||||
|
-i Display dump info
|
||||||
|
-r Find all race conditions in dump
|
||||||
|
-e Find all errors in logs
|
||||||
|
|
||||||
|
Following options require PROM_CONTEXT to be set.
|
||||||
|
|
||||||
|
-p Run prometheus with the dump"
|
||||||
|
exit 3
|
||||||
|
}
|
||||||
|
|
||||||
|
# list of arguments expected in the input
|
||||||
|
optstring=":hxirlekp"
|
||||||
|
|
||||||
|
if [[ ${#} -eq 0 ]]; then
|
||||||
|
usage
|
||||||
|
fi
|
||||||
|
|
||||||
|
while getopts ${optstring} arg; do
|
||||||
|
case ${arg} in
|
||||||
|
h)
|
||||||
|
echo "showing usage!"
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
x)
|
||||||
|
RUN_ID=$2
|
||||||
|
if [ -z "$RUN_ID" ]; then
|
||||||
|
exit_error "run id not mentioned"
|
||||||
|
fi
|
||||||
|
extract
|
||||||
|
;;
|
||||||
|
l)
|
||||||
|
RUN_ID=$2
|
||||||
|
if [ -z "$RUN_ID" ]; then
|
||||||
|
exit_error "run id not mentioned"
|
||||||
|
fi
|
||||||
|
list_context
|
||||||
|
;;
|
||||||
|
i)
|
||||||
|
info
|
||||||
|
;;
|
||||||
|
r)
|
||||||
|
race_conditions
|
||||||
|
;;
|
||||||
|
e)
|
||||||
|
error_logs
|
||||||
|
;;
|
||||||
|
k)
|
||||||
|
RUN_ID=$2
|
||||||
|
if [ -z "$RUN_ID" ]; then
|
||||||
|
exit_error "run id not mentioned"
|
||||||
|
fi
|
||||||
|
list_kind
|
||||||
|
;;
|
||||||
|
p)
|
||||||
|
ARG_PROM_CONTEXT=$2
|
||||||
|
if [ ! -z "$ARG_PROM_CONTEXT" ]; then
|
||||||
|
PROM_CONTEXT=$ARG_PROM_CONTEXT
|
||||||
|
fi
|
||||||
|
prometheus_run
|
||||||
|
;;
|
||||||
|
:)
|
||||||
|
echo "$0: Must supply an argument to -$OPTARG." >&2
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
?)
|
||||||
|
echo "Invalid option: -${OPTARG}."
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
@@ -0,0 +1,147 @@
|
|||||||
|
# Dump analyzer
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
```text
|
||||||
|
./hack/dump-analyzer -h
|
||||||
|
showing usage!
|
||||||
|
./dump-analyzer [OPTIONS]
|
||||||
|
Utilities related to fission dump analysis
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-h Show usage
|
||||||
|
-x [run_id] Download and extract dump locally
|
||||||
|
-l [run_id] List dump files for a run
|
||||||
|
-k [run_id] List kind exports in a run
|
||||||
|
|
||||||
|
Following options required DUMP_CONTEXT variable set.
|
||||||
|
|
||||||
|
-i Display dump info
|
||||||
|
-r Find all race conditions in dump
|
||||||
|
-e Find all errors in logs
|
||||||
|
|
||||||
|
Following options require PROM_CONTEXT to be set.
|
||||||
|
|
||||||
|
-p Run prometheus with the dump
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Downloading dump
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ ./hack/dump-analyzer -x 3179903728
|
||||||
|
! mkdir -p .dumps/3179903728
|
||||||
|
.dumps/3179903728
|
||||||
|
! gh run download 3179903728 -R fission/fission -D .dumps/3179903728
|
||||||
|
! unzip -q .dumps/3179903728/fission-dump-3179903728-v1.19.16/fission-dump_1664866624.zip -d .dumps/3179903728/extract
|
||||||
|
! unzip -q .dumps/3179903728/fission-dump-3179903728-v1.21.12/fission-dump_1664866628.zip -d .dumps/3179903728/extract
|
||||||
|
! unzip -q .dumps/3179903728/fission-dump-3179903728-v1.20.15/fission-dump_1664866662.zip -d .dumps/3179903728/extract
|
||||||
|
```
|
||||||
|
|
||||||
|
## Check all dumps
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./hack/dump-analyzer -l 3179903728
|
||||||
|
==== .dumps/3179903728/extract/4b24c3db-b5d8-43a7-858d-48746530d29e2534094304 ====
|
||||||
|
-- Fission Version --
|
||||||
|
client:
|
||||||
|
Version: v0.0.0
|
||||||
|
server:
|
||||||
|
Version: v0.0.0
|
||||||
|
-- K8s Version --
|
||||||
|
gitVersion: v1.21.12
|
||||||
|
==== .dumps/3179903728/extract/e7febf06-79ce-4eb7-bba0-3fc66aa4bf542096519315 ====
|
||||||
|
-- Fission Version --
|
||||||
|
client:
|
||||||
|
Version: v0.0.0
|
||||||
|
server:
|
||||||
|
Version: v0.0.0
|
||||||
|
-- K8s Version --
|
||||||
|
gitVersion: v1.19.16
|
||||||
|
==== .dumps/3179903728/extract/3b339dc2-e9dd-4f7a-a721-41e16d9d248f4152710428 ====
|
||||||
|
-- Fission Version --
|
||||||
|
client:
|
||||||
|
Version: v0.0.0
|
||||||
|
server:
|
||||||
|
Version: v0.0.0
|
||||||
|
-- K8s Version --
|
||||||
|
gitVersion: v1.20.15
|
||||||
|
```
|
||||||
|
|
||||||
|
We can see that the dump is from 3 different versions of k8s.
|
||||||
|
To explore specific dump set `DUMP_CONTEXT` environment variable.
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ export DUMP_CONTEXT=.dumps/3179903728/extract/4b24c3db-b5d8-43a7-858d-48746530d29e2534094304
|
||||||
|
|
||||||
|
$ ./hack/dump-analyzer -i
|
||||||
|
Dump context: .dumps/3179903728/extract/4b24c3db-b5d8-43a7-858d-48746530d29e2534094304
|
||||||
|
! cat .dumps/3179903728/extract/4b24c3db-b5d8-43a7-858d-48746530d29e2534094304/fission-version/fission-version.txt
|
||||||
|
client:
|
||||||
|
fission/core:
|
||||||
|
BuildDate: "2022-10-04T06:28:54Z"
|
||||||
|
GitCommit: 9e74b01
|
||||||
|
Version: v0.0.0
|
||||||
|
server:
|
||||||
|
fission/core:
|
||||||
|
BuildDate: "2022-10-04T06:29:01Z"
|
||||||
|
GitCommit: 9e74b01
|
||||||
|
Version: v0.0.0
|
||||||
|
! cat .dumps/3179903728/extract/4b24c3db-b5d8-43a7-858d-48746530d29e2534094304/kubernetes-version/kubernetes-version.txt
|
||||||
|
buildDate: "2022-05-19T20:02:29Z"
|
||||||
|
compiler: gc
|
||||||
|
gitCommit: 696a9fdd2a58340e61e0d815c5769d266fca0802
|
||||||
|
gitTreeState: clean
|
||||||
|
gitVersion: v1.21.12
|
||||||
|
goVersion: go1.16.15
|
||||||
|
major: "1"
|
||||||
|
minor: "21"
|
||||||
|
platform: linux/amd64
|
||||||
|
|
||||||
|
# See all errors in the dump
|
||||||
|
$ ./hack/dump-analyzer -e
|
||||||
|
|
||||||
|
# If you want to see error in specific dump you can also grep
|
||||||
|
|
||||||
|
$ grep -rin "string" $DUMP_CONTEXT
|
||||||
|
|
||||||
|
# OR
|
||||||
|
|
||||||
|
$ ack "string" $DUMP_CONTEXT
|
||||||
|
```
|
||||||
|
|
||||||
|
## Kind logs
|
||||||
|
|
||||||
|
```sh
|
||||||
|
./hack/dump-analyzer -k 3179903728
|
||||||
|
==== .dumps/3179903728/kind-logs-3179903728-v1.20.15 ====
|
||||||
|
kind v0.14.0 go1.18.2 linux/amd64
|
||||||
|
|
||||||
|
==== .dumps/3179903728/kind-logs-3179903728-v1.19.16 ====
|
||||||
|
kind v0.14.0 go1.18.2 linux/amd64
|
||||||
|
|
||||||
|
==== .dumps/3179903728/kind-logs-3179903728-v1.21.12 ====
|
||||||
|
kind v0.14.0 go1.18.2 linux/amd64
|
||||||
|
```
|
||||||
|
|
||||||
|
## Prometheus with dump
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ export PROM_CONTEXT=.dumps/3539792658/prom-dump-3539792658-v1.21.14
|
||||||
|
$ ./hack/dump-analyzer -p
|
||||||
|
# Visit localhost:9090
|
||||||
|
```
|
||||||
|
|
||||||
|
To pass dump path directly without setting PROM_CONTEXT,
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ ./hack/dump-analyzer -p .dumps/3539792658/prom-dump-3539792658-v1.21.14
|
||||||
|
# Visit localhost:9090
|
||||||
|
```
|
||||||
|
|
||||||
|
You can also run prometheus with multiple dumps,
|
||||||
|
|
||||||
|
```sh
|
||||||
|
PROM_PORT=9091 ./hack/dump-analyzer -p .dumps/3539792658/prom-dump-3539792658-v1.21.14
|
||||||
|
# Visit localhost:9091
|
||||||
|
```
|
||||||
@@ -67,8 +67,8 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
RuntimePodSpecConfigmap = "runtime-podspec-patch"
|
RuntimePodSpecPath = "/etc/fission/runtime-podspec-patch.yaml"
|
||||||
BuilderPodSpecConfigmap = "builder-podspec-patch"
|
BuilderPodSpecPath = "/etc/fission/builder-podspec-patch.yaml"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -146,12 +146,6 @@ const (
|
|||||||
const (
|
const (
|
||||||
FissionBuilderSA = "fission-builder"
|
FissionBuilderSA = "fission-builder"
|
||||||
FissionFetcherSA = "fission-fetcher"
|
FissionFetcherSA = "fission-fetcher"
|
||||||
|
|
||||||
SecretConfigMapGetterRB = "secret-configmap-getter-binding"
|
|
||||||
|
|
||||||
PackageGetterRB = "package-getter-binding"
|
|
||||||
|
|
||||||
ClusterRole = "ClusterRole"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -164,3 +158,12 @@ const (
|
|||||||
PackagesResource = "packages"
|
PackagesResource = "packages"
|
||||||
TimeTriggerResource = "timetriggers"
|
TimeTriggerResource = "timetriggers"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
Pods = "pods"
|
||||||
|
Deployments = "deployments"
|
||||||
|
ReplicaSets = "replicasets"
|
||||||
|
Services = "services"
|
||||||
|
ConfigMaps = "configmaps"
|
||||||
|
Secrets = "secrets"
|
||||||
|
)
|
||||||
|
|||||||
@@ -17,7 +17,6 @@ limitations under the License.
|
|||||||
package v1
|
package v1
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"github.com/robfig/cron"
|
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
"k8s.io/apimachinery/pkg/runtime"
|
"k8s.io/apimachinery/pkg/runtime"
|
||||||
ctrl "sigs.k8s.io/controller-runtime"
|
ctrl "sigs.k8s.io/controller-runtime"
|
||||||
@@ -59,7 +58,7 @@ func (r *TimeTrigger) ValidateCreate() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = cron.Parse(r.Spec.Cron)
|
err = IsValidCronSpec(r.Spec.Cron)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = ferror.MakeError(ferror.ErrorInvalidArgument, "TimeTrigger cron spec is not valid")
|
err = ferror.MakeError(ferror.ErrorInvalidArgument, "TimeTrigger cron spec is not valid")
|
||||||
return err
|
return err
|
||||||
@@ -76,7 +75,7 @@ func (r *TimeTrigger) ValidateUpdate(old runtime.Object) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = cron.Parse(r.Spec.Cron)
|
err = IsValidCronSpec(r.Spec.Cron)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
err = ferror.MakeError(ferror.ErrorInvalidArgument, "TimeTrigger cron spec is not valid")
|
err = ferror.MakeError(ferror.ErrorInvalidArgument, "TimeTrigger cron spec is not valid")
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -22,6 +22,11 @@ import (
|
|||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
DefaultConcurrency = 500
|
||||||
|
DefaultRequestsPerPod = 1
|
||||||
|
)
|
||||||
|
|
||||||
//
|
//
|
||||||
// To add a Fission CRD type:
|
// To add a Fission CRD type:
|
||||||
// 1. Create a "spec" type, for everything in the type except metadata
|
// 1. Create a "spec" type, for everything in the type except metadata
|
||||||
@@ -863,3 +868,17 @@ type (
|
|||||||
func (a Archive) IsEmpty() bool {
|
func (a Archive) IsEmpty() bool {
|
||||||
return len(a.Literal) == 0 && len(a.URL) == 0
|
return len(a.Literal) == 0 && len(a.URL) == 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (fn Function) GetConcurrency() int {
|
||||||
|
if fn.Spec.Concurrency == 0 {
|
||||||
|
return DefaultConcurrency
|
||||||
|
}
|
||||||
|
return fn.Spec.Concurrency
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fn Function) GetRequestPerPod() int {
|
||||||
|
if fn.Spec.RequestsPerPod == 0 {
|
||||||
|
return DefaultRequestsPerPod
|
||||||
|
}
|
||||||
|
return fn.Spec.RequestsPerPod
|
||||||
|
}
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/hashicorp/go-multierror"
|
"github.com/hashicorp/go-multierror"
|
||||||
"github.com/robfig/cron"
|
"github.com/robfig/cron/v3"
|
||||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||||
"k8s.io/apimachinery/pkg/util/validation"
|
"k8s.io/apimachinery/pkg/util/validation"
|
||||||
|
|
||||||
@@ -170,7 +170,8 @@ func ValidateKubeReference(refName string, name string, namespace string) error
|
|||||||
}
|
}
|
||||||
|
|
||||||
func IsValidCronSpec(spec string) error {
|
func IsValidCronSpec(spec string) error {
|
||||||
_, err := cron.Parse(spec)
|
cronSpecParser := cron.NewParser(cron.SecondOptional | cron.Minute | cron.Hour | cron.Dom | cron.Month | cron.Dow | cron.Descriptor)
|
||||||
|
_, err := cronSpecParser.Parse(spec)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+27
-18
@@ -18,6 +18,7 @@ package builder
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
"io"
|
||||||
@@ -34,6 +35,7 @@ import (
|
|||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
|
||||||
"github.com/fission/fission/pkg/info"
|
"github.com/fission/fission/pkg/info"
|
||||||
|
otelUtils "github.com/fission/fission/pkg/utils/otel"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@@ -72,10 +74,12 @@ func MakeBuilder(logger *zap.Logger, sharedVolumePath string) *Builder {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (builder *Builder) VersionHandler(w http.ResponseWriter, r *http.Request) {
|
func (builder *Builder) VersionHandler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
logger := otelUtils.LoggerWithTraceID(r.Context(), builder.logger)
|
||||||
|
|
||||||
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
_, err := w.Write([]byte(info.BuildInfo().String()))
|
_, err := w.Write([]byte(info.BuildInfo().String()))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
builder.logger.Error(
|
logger.Error(
|
||||||
"error writing response",
|
"error writing response",
|
||||||
zap.Error(err),
|
zap.Error(err),
|
||||||
)
|
)
|
||||||
@@ -83,38 +87,40 @@ func (builder *Builder) VersionHandler(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (builder *Builder) Handler(w http.ResponseWriter, r *http.Request) {
|
func (builder *Builder) Handler(w http.ResponseWriter, r *http.Request) {
|
||||||
|
logger := otelUtils.LoggerWithTraceID(r.Context(), builder.logger)
|
||||||
|
|
||||||
if r.Method != "POST" {
|
if r.Method != "POST" {
|
||||||
e := "method not allowed"
|
e := "method not allowed"
|
||||||
builder.logger.Error(e, zap.String("http_method", r.Method))
|
logger.Error(e, zap.String("http_method", r.Method))
|
||||||
builder.reply(w, "", fmt.Sprintf("%s: %s", e, r.Method), http.StatusMethodNotAllowed)
|
builder.reply(r.Context(), w, "", fmt.Sprintf("%s: %s", e, r.Method), http.StatusMethodNotAllowed)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
startTime := time.Now()
|
startTime := time.Now()
|
||||||
defer func() {
|
defer func() {
|
||||||
elapsed := time.Since(startTime)
|
elapsed := time.Since(startTime)
|
||||||
builder.logger.Info("build request complete", zap.Duration("elapsed_time", elapsed))
|
logger.Info("build request complete", zap.Duration("elapsed_time", elapsed))
|
||||||
}()
|
}()
|
||||||
|
|
||||||
// parse request
|
// parse request
|
||||||
body, err := io.ReadAll(r.Body)
|
body, err := io.ReadAll(r.Body)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e := "error reading request body"
|
e := "error reading request body"
|
||||||
builder.logger.Error(e, zap.Error(err))
|
logger.Error(e, zap.Error(err))
|
||||||
builder.reply(w, "", fmt.Sprintf("%s: %s", e, err.Error()), http.StatusInternalServerError)
|
builder.reply(r.Context(), w, "", fmt.Sprintf("%s: %s", e, err.Error()), http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
var req PackageBuildRequest
|
var req PackageBuildRequest
|
||||||
err = json.Unmarshal(body, &req)
|
err = json.Unmarshal(body, &req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e := "error parsing json body"
|
e := "error parsing json body"
|
||||||
builder.logger.Error(e, zap.Error(err))
|
logger.Error(e, zap.Error(err))
|
||||||
builder.reply(w, "", fmt.Sprintf("%s: %s", e, err.Error()), http.StatusBadRequest)
|
builder.reply(r.Context(), w, "", fmt.Sprintf("%s: %s", e, err.Error()), http.StatusBadRequest)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
builder.logger.Info("builder received request", zap.Any("request", req))
|
logger.Info("builder received request", zap.Any("request", req))
|
||||||
|
|
||||||
builder.logger.Debug("starting build")
|
logger.Debug("starting build")
|
||||||
srcPkgPath := filepath.Join(builder.sharedVolumePath, req.SrcPkgFilename)
|
srcPkgPath := filepath.Join(builder.sharedVolumePath, req.SrcPkgFilename)
|
||||||
deployPkgFilename := fmt.Sprintf("%s-%s", req.SrcPkgFilename, strings.ToLower(uniuri.NewLen(6)))
|
deployPkgFilename := fmt.Sprintf("%s-%s", req.SrcPkgFilename, strings.ToLower(uniuri.NewLen(6)))
|
||||||
deployPkgPath := filepath.Join(builder.sharedVolumePath, deployPkgFilename)
|
deployPkgPath := filepath.Join(builder.sharedVolumePath, deployPkgFilename)
|
||||||
@@ -134,21 +140,22 @@ func (builder *Builder) Handler(w http.ResponseWriter, r *http.Request) {
|
|||||||
buildArgs = append(buildArgs, args[i])
|
buildArgs = append(buildArgs, args[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
buildLogs, err := builder.build(buildCmd, buildArgs, srcPkgPath, deployPkgPath)
|
buildLogs, err := builder.build(r.Context(), buildCmd, buildArgs, srcPkgPath, deployPkgPath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e := "error building source package"
|
e := "error building source package"
|
||||||
builder.logger.Error(e, zap.Error(err))
|
logger.Error(e, zap.Error(err))
|
||||||
|
|
||||||
// append error at the end of build logs
|
// append error at the end of build logs
|
||||||
buildLogs += fmt.Sprintf("%s: %s\n", e, err.Error())
|
buildLogs += fmt.Sprintf("%s: %s\n", e, err.Error())
|
||||||
builder.reply(w, deployPkgFilename, buildLogs, http.StatusInternalServerError)
|
builder.reply(r.Context(), w, deployPkgFilename, buildLogs, http.StatusInternalServerError)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.reply(w, deployPkgFilename, buildLogs, http.StatusOK)
|
builder.reply(r.Context(), w, deployPkgFilename, buildLogs, http.StatusOK)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (builder *Builder) reply(w http.ResponseWriter, pkgFilename string, buildLogs string, statusCode int) {
|
func (builder *Builder) reply(ctx context.Context, w http.ResponseWriter, pkgFilename string, buildLogs string, statusCode int) {
|
||||||
|
logger := otelUtils.LoggerWithTraceID(ctx, builder.logger)
|
||||||
resp := PackageBuildResponse{
|
resp := PackageBuildResponse{
|
||||||
ArtifactFilename: pkgFilename,
|
ArtifactFilename: pkgFilename,
|
||||||
BuildLogs: buildLogs,
|
BuildLogs: buildLogs,
|
||||||
@@ -167,14 +174,16 @@ func (builder *Builder) reply(w http.ResponseWriter, pkgFilename string, buildLo
|
|||||||
w.WriteHeader(statusCode)
|
w.WriteHeader(statusCode)
|
||||||
_, err = w.Write(rBody)
|
_, err = w.Write(rBody)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
builder.logger.Error(
|
logger.Error(
|
||||||
"error writing response",
|
"error writing response",
|
||||||
zap.Error(err),
|
zap.Error(err),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (builder *Builder) build(command string, args []string, srcPkgPath string, deployPkgPath string) (string, error) {
|
func (builder *Builder) build(ctx context.Context, command string, args []string, srcPkgPath string, deployPkgPath string) (string, error) {
|
||||||
|
logger := otelUtils.LoggerWithTraceID(ctx, builder.logger)
|
||||||
|
|
||||||
cmd := exec.Command(command, args...)
|
cmd := exec.Command(command, args...)
|
||||||
|
|
||||||
fi, err := os.Stat(srcPkgPath)
|
fi, err := os.Stat(srcPkgPath)
|
||||||
@@ -204,7 +213,7 @@ func (builder *Builder) build(command string, args []string, srcPkgPath string,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Init logs
|
// Init logs
|
||||||
builder.logger.Info("building source package", zap.String("command", command), zap.Strings("args", args), zap.Strings("env", cmd.Env))
|
logger.Info("building source package", zap.String("command", command), zap.Strings("args", args), zap.Strings("env", cmd.Env))
|
||||||
|
|
||||||
out := io.MultiReader(stdout, stderr)
|
out := io.MultiReader(stdout, stderr)
|
||||||
scanner := bufio.NewScanner(out)
|
scanner := bufio.NewScanner(out)
|
||||||
|
|||||||
@@ -21,10 +21,9 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"io"
|
"io"
|
||||||
"net/http"
|
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
|
||||||
|
|
||||||
|
"github.com/hashicorp/go-retryablehttp"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
|
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
@@ -39,12 +38,14 @@ type (
|
|||||||
Client struct {
|
Client struct {
|
||||||
logger *zap.Logger
|
logger *zap.Logger
|
||||||
url string
|
url string
|
||||||
httpClient *http.Client
|
httpClient *retryablehttp.Client
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func MakeClient(logger *zap.Logger, builderUrl string) *Client {
|
func MakeClient(logger *zap.Logger, builderUrl string) *Client {
|
||||||
hc := &http.Client{Transport: otelhttp.NewTransport(http.DefaultTransport)}
|
hc := retryablehttp.NewClient()
|
||||||
|
hc.ErrorHandler = retryablehttp.PassthroughErrorHandler
|
||||||
|
hc.HTTPClient.Transport = otelhttp.NewTransport(hc.HTTPClient.Transport)
|
||||||
return &Client{
|
return &Client{
|
||||||
logger: logger.Named("builder_client"),
|
logger: logger.Named("builder_client"),
|
||||||
url: strings.TrimSuffix(builderUrl, "/"),
|
url: strings.TrimSuffix(builderUrl, "/"),
|
||||||
@@ -60,27 +61,10 @@ func (c *Client) Build(ctx context.Context, req *builder.PackageBuildRequest) (*
|
|||||||
return nil, errors.Wrap(err, "error marshaling json")
|
return nil, errors.Wrap(err, "error marshaling json")
|
||||||
}
|
}
|
||||||
|
|
||||||
maxRetries := 20
|
resp, err := ctxhttp.Post(ctx, c.httpClient.StandardClient(), c.url, "application/json", bytes.NewReader(body))
|
||||||
var resp *http.Response
|
if err != nil {
|
||||||
|
|
||||||
for i := 0; i < maxRetries; i++ {
|
|
||||||
resp, err = ctxhttp.Post(ctx, c.httpClient, c.url, "application/json", bytes.NewReader(body))
|
|
||||||
if err == nil {
|
|
||||||
if resp.StatusCode == 200 {
|
|
||||||
break
|
|
||||||
}
|
|
||||||
err = ferror.MakeErrorFromHTTP(resp)
|
|
||||||
}
|
|
||||||
|
|
||||||
if i < maxRetries-1 {
|
|
||||||
time.Sleep(50 * time.Duration(2*i) * time.Millisecond)
|
|
||||||
logger.Error("error building package, retrying", zap.Error(err))
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
defer resp.Body.Close()
|
defer resp.Body.Close()
|
||||||
|
|
||||||
rBody, err := io.ReadAll(resp.Body)
|
rBody, err := io.ReadAll(resp.Body)
|
||||||
|
|||||||
@@ -22,8 +22,6 @@ import (
|
|||||||
|
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
apiv1 "k8s.io/api/core/v1"
|
|
||||||
k8sInformers "k8s.io/client-go/informers"
|
|
||||||
|
|
||||||
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
fv1 "github.com/fission/fission/pkg/apis/core/v1"
|
||||||
"github.com/fission/fission/pkg/crd"
|
"github.com/fission/fission/pkg/crd"
|
||||||
@@ -36,9 +34,14 @@ import (
|
|||||||
func Start(ctx context.Context, logger *zap.Logger, storageSvcUrl string) error {
|
func Start(ctx context.Context, logger *zap.Logger, storageSvcUrl string) error {
|
||||||
bmLogger := logger.Named("builder_manager")
|
bmLogger := logger.Named("builder_manager")
|
||||||
|
|
||||||
fissionClient, kubernetesClient, _, _, err := crd.MakeFissionClient()
|
clientGen := crd.NewClientGenerator()
|
||||||
|
fissionClient, err := clientGen.GetFissionClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return errors.Wrap(err, "failed to get fission or kubernetes client")
|
return errors.Wrap(err, "failed to get fission client")
|
||||||
|
}
|
||||||
|
kubernetesClient, err := clientGen.GetKubernetesClient()
|
||||||
|
if err != nil {
|
||||||
|
return errors.Wrap(err, "failed to get kubernetes client")
|
||||||
}
|
}
|
||||||
|
|
||||||
err = crd.WaitForCRDs(ctx, logger, fissionClient)
|
err = crd.WaitForCRDs(ctx, logger, fissionClient)
|
||||||
@@ -51,24 +54,17 @@ func Start(ctx context.Context, logger *zap.Logger, storageSvcUrl string) error
|
|||||||
return errors.Wrap(err, "error making fetcher config")
|
return errors.Wrap(err, "error making fetcher config")
|
||||||
}
|
}
|
||||||
|
|
||||||
var podSpecPatch *apiv1.PodSpec
|
podSpecPatch, err := util.GetSpecFromConfigMap(fv1.BuilderPodSpecPath)
|
||||||
namespace, err := utils.GetCurrentNamespace()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Warn("Current namespace not found %v", zap.Error(err))
|
logger.Warn("error reading data for pod spec patch", zap.String("path", fv1.BuilderPodSpecPath), zap.Error(err))
|
||||||
} else {
|
|
||||||
podSpecPatch, err = util.GetSpecFromConfigMap(ctx, kubernetesClient, fv1.BuilderPodSpecConfigmap, namespace)
|
|
||||||
if err != nil {
|
|
||||||
logger.Warn("Either configmap is not found or error reading data %v", zap.Error(err))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
envWatcher := makeEnvironmentWatcher(ctx, bmLogger, fissionClient, kubernetesClient, fetcherConfig, podSpecPatch)
|
envWatcher := makeEnvironmentWatcher(ctx, bmLogger, fissionClient, kubernetesClient, fetcherConfig, podSpecPatch)
|
||||||
envWatcher.Run(ctx)
|
envWatcher.Run(ctx)
|
||||||
|
|
||||||
k8sInformerFactory := k8sInformers.NewSharedInformerFactory(kubernetesClient, time.Minute*30)
|
|
||||||
podInformer := k8sInformerFactory.Core().V1().Pods().Informer()
|
|
||||||
pkgWatcher := makePackageWatcher(bmLogger, fissionClient,
|
pkgWatcher := makePackageWatcher(bmLogger, fissionClient,
|
||||||
kubernetesClient, storageSvcUrl, podInformer,
|
kubernetesClient, storageSvcUrl,
|
||||||
|
utils.GetK8sInformersForNamespaces(kubernetesClient, time.Minute*30, fv1.Pods),
|
||||||
utils.GetInformersForNamespaces(fissionClient, time.Minute*30, fv1.PackagesResource))
|
utils.GetInformersForNamespaces(fissionClient, time.Minute*30, fv1.PackagesResource))
|
||||||
pkgWatcher.Run(ctx)
|
pkgWatcher.Run(ctx)
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -268,12 +268,6 @@ func (envw *environmentWatcher) createBuilder(ctx context.Context, env *fv1.Envi
|
|||||||
}
|
}
|
||||||
// there should be only one deploy in deployList
|
// there should be only one deploy in deployList
|
||||||
if len(deployList) == 0 {
|
if len(deployList) == 0 {
|
||||||
// create builder SA in this ns, if not already created
|
|
||||||
_, err := utils.SetupSA(ctx, envw.kubernetesClient, fv1.FissionBuilderSA, ns)
|
|
||||||
if err != nil {
|
|
||||||
return nil, errors.Wrapf(err, "error creating %q in ns: %s", fv1.FissionBuilderSA, ns)
|
|
||||||
}
|
|
||||||
|
|
||||||
deploy, err = envw.createBuilderDeployment(ctx, env, ns)
|
deploy, err = envw.createBuilderDeployment(ctx, env, ns)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, errors.Wrap(err, fmt.Sprintf("error creating builder deployment for environment in namespace %s %s", env.ObjectMeta.Name, ns))
|
return nil, errors.Wrap(err, fmt.Sprintf("error creating builder deployment for environment in namespace %s %s", env.ObjectMeta.Name, ns))
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ type (
|
|||||||
fissionClient versioned.Interface
|
fissionClient versioned.Interface
|
||||||
nsResolver *utils.NamespaceResolver
|
nsResolver *utils.NamespaceResolver
|
||||||
k8sClient kubernetes.Interface
|
k8sClient kubernetes.Interface
|
||||||
podInformer k8sCache.SharedIndexInformer
|
podInformer map[string]k8sCache.SharedIndexInformer
|
||||||
pkgInformer map[string]k8sCache.SharedIndexInformer
|
pkgInformer map[string]k8sCache.SharedIndexInformer
|
||||||
storageSvcUrl string
|
storageSvcUrl string
|
||||||
buildCache *cache.Cache
|
buildCache *cache.Cache
|
||||||
@@ -49,7 +49,7 @@ type (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func makePackageWatcher(logger *zap.Logger, fissionClient versioned.Interface, k8sClientSet kubernetes.Interface,
|
func makePackageWatcher(logger *zap.Logger, fissionClient versioned.Interface, k8sClientSet kubernetes.Interface,
|
||||||
storageSvcUrl string, podInformer k8sCache.SharedIndexInformer,
|
storageSvcUrl string, podInformer,
|
||||||
pkgInformer map[string]k8sCache.SharedIndexInformer) *packageWatcher {
|
pkgInformer map[string]k8sCache.SharedIndexInformer) *packageWatcher {
|
||||||
pkgw := &packageWatcher{
|
pkgw := &packageWatcher{
|
||||||
logger: logger.Named("package_watcher"),
|
logger: logger.Named("package_watcher"),
|
||||||
@@ -64,6 +64,20 @@ func makePackageWatcher(logger *zap.Logger, fissionClient versioned.Interface, k
|
|||||||
return pkgw
|
return pkgw
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (pkgw *packageWatcher) buildCacheKey(obj metav1.ObjectMeta) string {
|
||||||
|
return fmt.Sprintf("%s-%s-%s", obj.Namespace, obj.Name, obj.ResourceVersion)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pkgw *packageWatcher) buildWithCache(ctx context.Context, srcpkg *fv1.Package) {
|
||||||
|
// Ignore duplicate build requests
|
||||||
|
_, err := pkgw.buildCache.Set(pkgw.buildCacheKey(srcpkg.ObjectMeta), srcpkg)
|
||||||
|
if err != nil {
|
||||||
|
pkgw.logger.Info("package build cache set error", zap.Error(err))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
go pkgw.build(ctx, srcpkg)
|
||||||
|
}
|
||||||
|
|
||||||
// build helps to update package status, checks environment builder pod status and
|
// build helps to update package status, checks environment builder pod status and
|
||||||
// dispatches buildPackage to build source package into deployment package.
|
// dispatches buildPackage to build source package into deployment package.
|
||||||
// Following is the steps build function takes to complete the whole process.
|
// Following is the steps build function takes to complete the whole process.
|
||||||
@@ -75,13 +89,8 @@ func makePackageWatcher(logger *zap.Logger, fissionClient versioned.Interface, k
|
|||||||
// 6. Update package status to succeed state
|
// 6. Update package status to succeed state
|
||||||
// *. Update package status to failed state,if any one of steps above failed/time out
|
// *. Update package status to failed state,if any one of steps above failed/time out
|
||||||
func (pkgw *packageWatcher) build(ctx context.Context, srcpkg *fv1.Package) {
|
func (pkgw *packageWatcher) build(ctx context.Context, srcpkg *fv1.Package) {
|
||||||
// Ignore duplicate build requests
|
|
||||||
key := fmt.Sprintf("%v-%v", srcpkg.ObjectMeta.Name, srcpkg.ObjectMeta.ResourceVersion)
|
|
||||||
_, err := pkgw.buildCache.Set(key, srcpkg)
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
defer func() {
|
defer func() {
|
||||||
|
key := pkgw.buildCacheKey(srcpkg.ObjectMeta)
|
||||||
err := pkgw.buildCache.Delete(key)
|
err := pkgw.buildCache.Delete(key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
pkgw.logger.Error("error deleting key from cache", zap.String("key", key), zap.Error(err))
|
pkgw.logger.Error("error deleting key from cache", zap.String("key", key), zap.Error(err))
|
||||||
@@ -115,6 +124,8 @@ func (pkgw *packageWatcher) build(ctx context.Context, srcpkg *fv1.Package) {
|
|||||||
|
|
||||||
// Create a new BackOff for health check on environment builder pod
|
// Create a new BackOff for health check on environment builder pod
|
||||||
healthCheckBackOff := utils.NewDefaultBackOff()
|
healthCheckBackOff := utils.NewDefaultBackOff()
|
||||||
|
builderNs := pkgw.nsResolver.GetBuilderNS(env.ObjectMeta.Namespace)
|
||||||
|
|
||||||
//if err != nil {
|
//if err != nil {
|
||||||
// pkgw.logger.Error("Unable to create BackOff for Health Check", zap.Error(err))
|
// pkgw.logger.Error("Unable to create BackOff for Health Check", zap.Error(err))
|
||||||
//}
|
//}
|
||||||
@@ -122,7 +133,7 @@ func (pkgw *packageWatcher) build(ctx context.Context, srcpkg *fv1.Package) {
|
|||||||
for healthCheckBackOff.NextExists() {
|
for healthCheckBackOff.NextExists() {
|
||||||
// Informer store is not able to use label to find the pod,
|
// Informer store is not able to use label to find the pod,
|
||||||
// iterate all available environment builders.
|
// iterate all available environment builders.
|
||||||
items := pkgw.podInformer.GetStore().List()
|
items := pkgw.podInformer[builderNs].GetStore().List()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
pkgw.logger.Error("error retrieving pod information for environment", zap.Error(err), zap.String("environment", env.ObjectMeta.Name))
|
pkgw.logger.Error("error retrieving pod information for environment", zap.Error(err), zap.String("environment", env.ObjectMeta.Name))
|
||||||
return
|
return
|
||||||
@@ -137,8 +148,6 @@ func (pkgw *packageWatcher) build(ctx context.Context, srcpkg *fv1.Package) {
|
|||||||
for _, item := range items {
|
for _, item := range items {
|
||||||
pod := item.(*apiv1.Pod)
|
pod := item.(*apiv1.Pod)
|
||||||
|
|
||||||
builderNs := pkgw.nsResolver.GetBuilderNS(env.ObjectMeta.Namespace)
|
|
||||||
|
|
||||||
// Filter non-matching pods
|
// Filter non-matching pods
|
||||||
if pod.ObjectMeta.Labels[LABEL_ENV_NAME] != env.ObjectMeta.Name ||
|
if pod.ObjectMeta.Labels[LABEL_ENV_NAME] != env.ObjectMeta.Name ||
|
||||||
pod.ObjectMeta.Labels[LABEL_ENV_NAMESPACE] != builderNs ||
|
pod.ObjectMeta.Labels[LABEL_ENV_NAMESPACE] != builderNs ||
|
||||||
@@ -160,23 +169,6 @@ func (pkgw *packageWatcher) build(ctx context.Context, srcpkg *fv1.Package) {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add the package getter rolebinding to builder sa
|
|
||||||
// we continue here if role binding was not setup successfully. this is because without this, the fetcher won't be able to fetch the source pkg into the container and
|
|
||||||
// the build will fail eventually
|
|
||||||
err := utils.SetupRoleBinding(ctx, pkgw.logger, pkgw.k8sClient, fv1.PackageGetterRB, pkg.ObjectMeta.Namespace, utils.GetPackageGetterCR(), fv1.ClusterRole, fv1.FissionBuilderSA, builderNs)
|
|
||||||
if err != nil {
|
|
||||||
pkgw.logger.Error("error setting up role binding for package",
|
|
||||||
zap.Error(err),
|
|
||||||
zap.String("role_binding", fv1.PackageGetterRB),
|
|
||||||
zap.String("package_name", pkg.ObjectMeta.Name),
|
|
||||||
zap.String("package_namespace", pkg.ObjectMeta.Namespace))
|
|
||||||
continue
|
|
||||||
} else {
|
|
||||||
pkgw.logger.Info("setup rolebinding for sa package",
|
|
||||||
zap.String("sa", fmt.Sprintf("%s.%s", fv1.FissionBuilderSA, builderNs)),
|
|
||||||
zap.String("package", fmt.Sprintf("%s.%s", pkg.ObjectMeta.Name, pkg.ObjectMeta.Namespace)))
|
|
||||||
}
|
|
||||||
|
|
||||||
uploadResp, buildLogs, err := buildPackage(ctx, pkgw.logger, pkgw.fissionClient, builderNs, pkgw.storageSvcUrl, pkg)
|
uploadResp, buildLogs, err := buildPackage(ctx, pkgw.logger, pkgw.fissionClient, builderNs, pkgw.storageSvcUrl, pkg)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
pkgw.logger.Error("error building package", zap.Error(err), zap.String("package_name", pkg.ObjectMeta.Name))
|
pkgw.logger.Error("error building package", zap.Error(err), zap.String("package_name", pkg.ObjectMeta.Name))
|
||||||
@@ -290,7 +282,7 @@ func (pkgw *packageWatcher) packageInformerHandler(ctx context.Context) k8sCache
|
|||||||
}
|
}
|
||||||
// Only build pending state packages.
|
// Only build pending state packages.
|
||||||
if pkg.Status.BuildStatus == fv1.BuildStatusPending {
|
if pkg.Status.BuildStatus == fv1.BuildStatusPending {
|
||||||
go pkgw.build(ctx, pkg)
|
pkgw.buildWithCache(ctx, pkg)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return k8sCache.ResourceEventHandlerFuncs{
|
return k8sCache.ResourceEventHandlerFuncs{
|
||||||
@@ -318,7 +310,9 @@ func (pkgw *packageWatcher) packageInformerHandler(ctx context.Context) k8sCache
|
|||||||
|
|
||||||
func (pkgw *packageWatcher) Run(ctx context.Context) {
|
func (pkgw *packageWatcher) Run(ctx context.Context) {
|
||||||
go metrics.ServeMetrics(ctx, pkgw.logger)
|
go metrics.ServeMetrics(ctx, pkgw.logger)
|
||||||
go pkgw.podInformer.Run(ctx.Done())
|
for _, podInformer := range pkgw.podInformer {
|
||||||
|
go podInformer.Run(ctx.Done())
|
||||||
|
}
|
||||||
for _, pkgInformer := range pkgw.pkgInformer {
|
for _, pkgInformer := range pkgw.pkgInformer {
|
||||||
pkgInformer.AddEventHandler(pkgw.packageInformerHandler(ctx))
|
pkgInformer.AddEventHandler(pkgw.packageInformerHandler(ctx))
|
||||||
go pkgInformer.Run(ctx.Done())
|
go pkgInformer.Run(ctx.Done())
|
||||||
|
|||||||
@@ -555,12 +555,17 @@ func getEnvValue(envVar string) string {
|
|||||||
func StartCanaryServer(ctx context.Context, logger *zap.Logger, unitTestFlag bool) error {
|
func StartCanaryServer(ctx context.Context, logger *zap.Logger, unitTestFlag bool) error {
|
||||||
cLogger := logger.Named("CanaryServer")
|
cLogger := logger.Named("CanaryServer")
|
||||||
|
|
||||||
fc, kc, _, _, err := crd.MakeFissionClient()
|
clientGen := crd.NewClientGenerator()
|
||||||
|
fissionClient, err := clientGen.GetFissionClient()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
cLogger.Fatal("failed to connect to k8s API", zap.Error(err))
|
return errors.Wrap(err, "failed to get fission client")
|
||||||
|
}
|
||||||
|
kubernetesClient, err := clientGen.GetKubernetesClient()
|
||||||
|
if err != nil {
|
||||||
|
return errors.Wrap(err, "failed to get kubernetes client")
|
||||||
}
|
}
|
||||||
|
|
||||||
err = ConfigureFeatures(ctx, cLogger, unitTestFlag, fc, kc)
|
err = ConfigureFeatures(ctx, cLogger, unitTestFlag, fissionClient, kubernetesClient)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
cLogger.Error("error configuring features - proceeding without optional features", zap.Error(err))
|
cLogger.Error("error configuring features - proceeding without optional features", zap.Error(err))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,8 +68,8 @@ type (
|
|||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func MakeAPI(logger *zap.Logger) (*API, error) {
|
func MakeAPI(logger *zap.Logger, fissionClient versioned.Interface, kubernetesClient kubernetes.Interface) (*API, error) {
|
||||||
api, err := makeCRDBackedAPI(logger)
|
api, err := makeCRDBackedAPI(logger, fissionClient, kubernetesClient)
|
||||||
|
|
||||||
u := os.Getenv("STORAGE_SERVICE_URL")
|
u := os.Getenv("STORAGE_SERVICE_URL")
|
||||||
if len(u) > 0 {
|
if len(u) > 0 {
|
||||||
|
|||||||
@@ -503,7 +503,8 @@ func TestMain(m *testing.M) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
_, kubeClient, _, _, err := crd.GetKubernetesClient()
|
clientGen := crd.NewClientGenerator()
|
||||||
|
kubeClient, err := clientGen.GetKubernetesClient()
|
||||||
panicIf(err)
|
panicIf(err)
|
||||||
|
|
||||||
// testNS isolation for running multiple CI builds concurrently.
|
// testNS isolation for running multiple CI builds concurrently.
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user