This is an automated email from the ASF dual-hosted git repository. franztt pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/openserverless-operator.git
commit 6b68816d971d45b85b551fe62edf3e36316c389d Author: francescotimperi <[email protected]> AuthorDate: Sat Jul 13 13:21:25 2024 +0000 fix: update kaniko.yaml to properly build openserverless operator --- .env.dist | 10 +- README.md | 187 ++++----------------- README.md => README_old.md | 0 Taskfile.yml | 70 ++++++-- .../traefik-middleware.yaml => kaniko-build.yaml | 26 ++- kaniko.yaml | 26 --- ...traefik-middleware.yaml => operator-deploy.yaml | 13 +- .../k3s/traefik-middleware.yaml => registries.yaml | 12 +- shell.nix | 1 + tests/k3s/{whisk.yaml => whisk-full.yaml} | 0 tests/k3s/whisk-mysc2.yaml | 123 -------------- tests/k3s/whisk-saas.yaml | 174 ------------------- tests/k3s/whisk.yaml | 2 +- 13 files changed, 131 insertions(+), 513 deletions(-) diff --git a/.env.dist b/.env.dist index 072d08a..0e6a017 100644 --- a/.env.dist +++ b/.env.dist @@ -1 +1,9 @@ -GITHUB_USER=github: put here your github user \ No newline at end of file +GITHUB_USER=github: put here your github user +MY_OPERATOR_IMAGE=ghcr.io/${GITHUB_USER}/openserverless-operator + +#enterprise monitoring +SLACK_API_URL=your-slack-webhook-url +GMAIL_USERNAME=your-gmail-username +GMAIL_PASSWORD=your-gmail-app-password +ALERT_EMAIL_FROM=your-gmail-from-account +ALERT_EMAIL_TO=your-email-to-comma-separated-addresses \ No newline at end of file diff --git a/README.md b/README.md index 65f7e97..08d7ca9 100644 --- a/README.md +++ b/README.md @@ -17,188 +17,59 @@ ~ under the License. ~ --> -# Apache OpenServerless Operator +# Apache OpenServerless Operator -This is the Kubernetes Operator of the [bit.ly/nuvolaris](Apache OpenServerless project). +In this readme there are informations for developers. -If you are interested in developing it, please read the [design document](DESIGN.md). Please also read the [development environment document](https://github.com/nuvolaris/nuvolaris/blob/main/docs/DEVEL.md) to learn how to setup it. +We describe how to build and test the operator in our development environment -If you wonder what are the strange subfolders, here is an explanation: +Please refer to the [website](https://openserverless.apache.org) for user informations. -- `nuvolaris` are python modules, and implements the operator logic, coded in Python. +## How to build and use an operator image -So you generally build the `nuvolaris` operator as a docker image and publishi, build the `nuv` CLI and use the `olaris` tasks to install and manage it... +Ensure you have satified the prerequisites below. Most notably, you need to use our development virtual machine and you need write access to a github repository repository. -## Developer notes +Once you have satisfied the prerequisites, you can build an image you can use in the development machine. -The operator is built in Python with [kopf](https://kopf.readthedocs.io/en/stable/). You can find some [examples here](https://github.com/nolar/kopf/tree/main/examples). +Build an image with `task build`. -The operator uses under the hood [kustomize](https://kustomize.io/) and [kubectl](https://kubernetes.io/docs/reference/kubectl/) to interact with Kubernetes. +Please note the it will build the image locally and push in an internal registry, even if it is name is `ghcr.io/${GITHUB_USER}/openserverless-operator`. -Let's discuss how to: +To be able to build, the task `build` will commit and push all your changes and then build the operator from the public sources in your local k3s. -- Select the Kubernetes cluster to use -- Develop interactively (cli and tests) -- Run it without deploying -- Test it in a local cluster without pushing an image to a registry -- Push it to a public registry to use with external Kubernetes +It will also generate -## Selecting the Kubernetes Clusters +You can then deploy it with `task deploy`. -You have to run the operator against multiple clusters for test. So the operator has a provision to selection one to use and work with. +Once you have finished with development you can create a publici image with `task publish` that will publish the tag and trigger a creation of the image. -You can use other clusters for testing and development. You should place all the configurations for the other clusters in the folder `clusters`, with extension `.kubeconfig`. See [below](#creating-a-new-cluster) for informations about this. +## Prerequisites -If you use the development environment, using Docker and VSCode, you have available a Kind cluster ready for test. Use the task `task kind:config` to copy the configuration in the `clusters` folder if you plan to change cluster. +1. Please setup and use a development VM [as described here](https://github.com/apache/openserverless) -In order to test the operator against different clusters, you can list all the cluster configurations available with `task` and then select one with `task N` where N is the number of the configuration in the list shown. +2. With VSCode, access to the development VM, open the workspace `openserverless/openserverless.code-orkspace` and then open a terminal with `operator` subproject e enabling the nix enviroment with direnv (the vm provides those). -Example: +3. Create a fork of `githbub.com/apache/openserverless-operator` -``` -$ task -*** current: kind -1 clusters/aks.kubeconfig -2 clusters/eks.kubeconfig -3 clusters/kind.kubeconfig -4 clusters/microk8s.kubeconfig -*** select with 'task #' -$ task 2 -task: [2] task use N=2 -cluster: eks -Kubeconfig user entry is using deprecated API version client.authentication.k8s.io/v1alpha1. Run 'aws eks update-kubeconfig' to update. -NAME STATUS ROLES AGE VERSION -ip-192-168-42-140.eu-central-1.compute.internal Ready <none> 49d v1.22.6-eks-7d68063 -``` - -## Developing the operator interactively - -Start coding with `task cli`. - -You can then develop some code experimentally interacting with a python interpreter with the same libraries and some useful imports and configuration ready (most notably the autoreload). - -You can then execute some tests. - -- `task utest`: unit tests -- `task itest`: integration tests - -This will run all the tests. You can select which test to run with `tast itest T=xxx` or `task utest T=xxx`. It will then execute all the tests whose file starts with `xxx`. - -## Developing the operator without deploying it - -You can then start the whole operator without having to deploy it. Start it with `task run`. - -Once you started the operarto pen another terminal and Use `task instance` to apply a crd instance depending on the current clusters. - -The crd instance used it is defined by the type of kubernetes custer you are using. The script './detect.sh' tries to detect it. The configuration used is under `tests/<detected>/whisk.yaml` - -If you have not changed the cluster the default cluster is 'kind' so it will apply the configuration `tests/kind/whisk.yaml` - -You can change the configuration passing the `WHISK` parameter (without the .yaml). So if you are running an `eks` cluster and you want to use your configuration `custom` the command `task instance WHISK=custom` will use `tests/eks/custom.yaml` - -Other useful tasks: - -- `task watch` starts watching deployed pods servics and nodes - useful to see what happens when you deploy -- `task destroy` removes the instance but not the operator so you can recreate the cluster with `task instance` maybe with different parameters -- `task clean` removes everything including the operator and pvc -- If something get stuck and the cleanup does not complete `task defin` can help removing incomplete finalizers (you need to open another terminal to run it) - -## Testing the operator deploying it locally - -First and before all, you need a tag. - -Execute `task image-tag`. This command will delete all the other tag and generate a tag in the format `x.y.z-milestone.timestamp`. This tag is essential to identify your operator. - -When you are confident you can try the operator, in kind, use `task build-and-load`. This will build an instance and load it in the local kind. This step does not require you publish it to a public registry. - -You can then proceed deploying it with `task operator` to deploy it. - -You can then use `task instance` to deploy a crd instance, and finally `task actions` to test whisk running a few actions +4. Copy .env.dist in .env and put your github username in it -## Publishing the operator - -Once the operator is ready, you can build and test it a against a kubernetes cluster. - -First, generate a new image tag with `task image-tag`. - -You can test locally using the kind cluster (provided by default by the development environment) with `build-and-load`. - -To test it against other clusters, you need to publish it to a public repository. - -If you have push access to Nuvolaris repository just push the tag and it will trigger the build using the tag to tag the repository and it will be published in the nuvolaris package registry on GitHub. - -You can also publish an image to your own github repository for testing purposes. To do this, add to your `.env` the following variables: +5. Since the build requires you push your sources in your repo, you need the credentials to access it. The fastest way is to [create a personal token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) +6. Now setup a remote to access your repo and set it as your default upstream branch. ``` -MY_CONTROLLER_IMAGE=<your-user>/<your-name> -GITHUB_USER=<your-user> -GITHUB_TOKEN=<your-access-token> +git remote add fork https://<GITHUB_USERNAME>:<GITHUB_TOKEN>@github.com/<GITHUB_USERNAME>/openserverless-operator +git branch -u https://github.com/<GITHUB_USERNAME>/openserverless-operator ``` -You cannot override the tag of the operator you have to generate a git tag: `task image-tag`. Note the tag is unique for the current hour (it embeds: YYMMDDhh). - -If you set those variables you can use -- `task b:docker-login` to log to the current docker registry -- `task b:build-and-push` to build for one single architecture (faster but limited to your architecture) -- `task buildx-and-push` to build for all the architectues (slower, used by the GitHub action) - -Remember that for GitHub Containter Registry you have to make public the image you are using to tlet it to be accessible by other Kubernetes - -### Running tests - -Once you have choosen the Kubernetes cluster and published the images on a public registry you can test it with `task dtest`, that will run a complete deployment in the current Kubernetes cluster. - -If you want to run all the tests (u, i, d) aginst the current cluster use `task test` +That's it. Now you can use `task build` to build the image -Finally if you want to run the tests against all the configured kubernetes use `task all-kubes -- <target>`. +7. Deploy the operator +Execute the command -This targes runs a group of tests against all the available clusters, so you can run all the tests against all the kubes with `task all-kubes -- test` - -# Reference - -- `use` (default task) lists all the clusters; -- `1`, `2`...`9` selects the corresponding entry -- `operator`: deploys the operator in the current cluster. -- `instance`: deploy an instance of the configuration to build an actual cluster. -- `destroy`: destroy the current deployment -- `clean`: remove everything - if you get stuck use `defin` -- `defin`: remove finalizer for the controller, useful if `clean` does not complete -- `config`: once it is deployed, extracts the current configuration to use `wsk` -- `actions`: deploy and run test actions -- `utest` runs unit tests, filter with `T=<xxx>` -- `itest` runs integration tests, filter with `T=<xxx>` -- `iclean`: remote temp files generated by the tests -- `dtest` deployment test -- `hello`: runs a simple hello world test -- `ping`: runs a ping test of redis -- `all-kubes -- <target>`: execute the `<target>` against all the configured kubes - -Build targets - -- `b:buildx-and-push`: build and push the operator in multiple architectectures (slow) -- `b:build-and-load`: build and load the operator in the kind cluster -- `b:docker-login`: login into the github docker registry -- `b:build-and-push`: build and push the operator in the current architecture - -Currently the following clusters, with respective suffix are supported (note not all the clusters are fully implemented, and you may need to edit and set manually variables - see the Taskfiles for reference). - -- Kubernetes Kind: `kind` -- Amazon EKS: `eks` -- Azure AKS: `aks` -- Google GKE: `gke` -- Ubuntu MicroK8s: `m8s` -- Rancher K3S: `k3s` -- RedHat OpenShift: `osh` - -See below for creating clusters and configurations. All the configuration for the available clusters are expected to be in `clusters/*.kubeconfig` - -Available commands for the cluster `xxx` (not always and not for all the cases): - -- `xxx:list`: list existing clusters -- `xxx:create`: create a test cluster -- `xxx:destroy`: destroy a test cluster -- `xxx:config`: set the kubeconfig to the current cluster +```shell +task all +``` -Note that `kind` is available in the development environment by defaut. You may want to use `task kind:config` to extract the configuration to be able to switch back to the local clusters. +it will deploy the openserverless-operator applying `/test/k3s/whisk.yaml` which will deploy a complete configuration but TLS and MONITORING. diff --git a/README.md b/README_old.md similarity index 100% copy from README.md copy to README_old.md diff --git a/Taskfile.yml b/Taskfile.yml index 89ddda4..7045b0f 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -28,7 +28,6 @@ vars: NS: "nuvolaris" PREFIX: "" TAG: - sh: git describe --tags --abbrev=0 2>/dev/null || echo latest dotenv: - .env @@ -170,6 +169,7 @@ tasks: defin: - task: d:defin + # old., to be removed image-tag: - git tag -d $(git tag) - git tag -f {{.P}}{{.BASETAG}}.$(date +%y%m%d%H%M) @@ -328,21 +328,71 @@ tasks: docker-login: - task: b:docker-login + # openserverless-operator sction + tag: + silent: true + desc: generate a new tag based on the current time + cmds: + - git tag -d $(git tag) || true + - git tag -f {{.BASETAG}}.$(date +%y%m%d%H%M) + - env PAGER= git tag + install-registry: + desc: install a local registry + cmds: + - sudo cp registries.yaml /etc/rancher/k3s/registries.yaml + - sudo systemctl restart k3s - helm repo add twuni https://helm.twun.io - - helm install docker-registry twuni/docker-registry --namespace default + - > + helm install docker-registry twuni/docker-registry + --namespace kube-system + --set image.tag=2.8.3 + --set service.type=NodePort + --set service.nodePort=30050 + status: + - kubectl -n kube-system get po -l app=docker-registry | grep docker-registry - build: + tag-commit-push: + desc: tag, commit and push to your default upstream repo (see README.md) + cmds: + - task: tag + - git commit -m "{{.TAG}}" -a || true + - git push || true + + kaniko-build: + desc: build in current kubernetes with Kaniko env: - TAG: "{{.TAG}}" + TAG: + sh: git describe --tags --abbrev=0 2>/dev/null || echo latest cmds: - - kubectl delete pod/kaniko - - kubectl delete cm/dockerfile-configmap - test -n "$GITHUB_USER" || true "did you configure your .env?" - - envsubst <kaniko.yaml >_kaniko.yaml - - cat _kaniko.yaml - - kubectl -n default create configmap dockerfile-configmap --from-file=Dockerfile - - kubectl apply -f _kaniko.yaml + - envsubst <kaniko-build.yaml >_kaniko-build.yaml + - kubectl -n default delete job/kaniko-build || true + - kubectl -n default apply -f _kaniko-build.yaml + - kubectl wait po --for=condition=ready -l app=kaniko-build -n default + + build-logs: + desc: show logs of the latest build + cmds: + - kubectl -n default logs -l app=kaniko-build -f + + build: + desc: build the operator image + cmds: + - task: install-registry + - task: tag-commit-push + - task: kaniko-build + - task: build-logs + + deploy: + desc: deploy the current operator image + env: + TAG: + sh: git describe --tags --abbrev=0 2>/dev/null || echo latest + cmds: + - envsubst <operator-deploy.yaml >_operator-deploy.yaml + - kubectl apply -f _operator-deploy.yaml + shell: - kubectl -n nuvolaris exec --stdin --tty {{.POD}} -- /bin/bash diff --git a/tests/k3s/traefik-middleware.yaml b/kaniko-build.yaml similarity index 53% copy from tests/k3s/traefik-middleware.yaml copy to kaniko-build.yaml index 20c56a0..2e7dda6 100644 --- a/tests/k3s/traefik-middleware.yaml +++ b/kaniko-build.yaml @@ -15,11 +15,25 @@ # specific language governing permissions and limitations # under the License. # -apiVersion: traefik.containo.us/v1alpha1 -kind: Middleware +apiVersion: batch/v1 +kind: Job metadata: - namespace: nuvolaris - name: franztt-static-ingress-add-prefix + name: kaniko-build + namespace: default spec: - addPrefix: - prefix: /franztt-web \ No newline at end of file + template: + metadata: + labels: + app: kaniko-build + spec: + containers: + - name: kaniko + image: gcr.io/kaniko-project/executor:latest + args: + - --context=git://github.com/${GITHUB_USER}/openserverless-operator + - --destination=docker-registry.kube-system.svc.cluster.local:5000/${GITHUB_USER}/openserverless-operator:${TAG} + - --insecure + - --insecure-registry=docker-registry + - --build-arg=OPERATOR_IMAGE_DEFAULT=ghcr.io/${GITHUB_USER}/openserverless-operator + - --build-arg=OPERATOR_TAG_DEFAULT=${TAG} + restartPolicy: Never diff --git a/kaniko.yaml b/kaniko.yaml deleted file mode 100644 index eeac3f4..0000000 --- a/kaniko.yaml +++ /dev/null @@ -1,26 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: kaniko - namespace: default -spec: - containers: - - name: kaniko - #image: busybox - #command: - #- sleep - #- inf - image: gcr.io/kaniko-project/executor:latest - args: - - --context=git://github.com/${GITHUB_USER}/openserverless-operator - - --destination=docker-registry:5000/openserverless/operator:${TAG} - - --insecure - - --insecure-registry=docker-registry - volumeMounts: - - name: config-volume - mountPath: /context - restartPolicy: Never - volumes: - - name: config-volume - configMap: - name: dockerfile-configmap diff --git a/tests/k3s/traefik-middleware.yaml b/operator-deploy.yaml similarity index 82% copy from tests/k3s/traefik-middleware.yaml copy to operator-deploy.yaml index 20c56a0..e3e965b 100644 --- a/tests/k3s/traefik-middleware.yaml +++ b/operator-deploy.yaml @@ -15,11 +15,12 @@ # specific language governing permissions and limitations # under the License. # -apiVersion: traefik.containo.us/v1alpha1 -kind: Middleware +apiVersion: v1 +kind: Pod metadata: - namespace: nuvolaris - name: franztt-static-ingress-add-prefix + name: dummy-operator + namespace: default spec: - addPrefix: - prefix: /franztt-web \ No newline at end of file + containers: + - name: dummy-operator + image: ghcr.io/$GITHUB_USER/openserverless-operator:$TAG \ No newline at end of file diff --git a/tests/k3s/traefik-middleware.yaml b/registries.yaml similarity index 81% rename from tests/k3s/traefik-middleware.yaml rename to registries.yaml index 20c56a0..c0b47c4 100644 --- a/tests/k3s/traefik-middleware.yaml +++ b/registries.yaml @@ -15,11 +15,7 @@ # specific language governing permissions and limitations # under the License. # -apiVersion: traefik.containo.us/v1alpha1 -kind: Middleware -metadata: - namespace: nuvolaris - name: franztt-static-ingress-add-prefix -spec: - addPrefix: - prefix: /franztt-web \ No newline at end of file +mirrors: + ghcr.io: + endpoint: + - "http://127.0.0.1:30050" \ No newline at end of file diff --git a/shell.nix b/shell.nix index 537facb..3d4487b 100644 --- a/shell.nix +++ b/shell.nix @@ -28,6 +28,7 @@ pkgs.mkShellNoCC { poetry zip unzip + # minio-client-2023-03-23T20-03-04Z ]; } diff --git a/tests/k3s/whisk.yaml b/tests/k3s/whisk-full.yaml similarity index 100% copy from tests/k3s/whisk.yaml copy to tests/k3s/whisk-full.yaml diff --git a/tests/k3s/whisk-mysc2.yaml b/tests/k3s/whisk-mysc2.yaml deleted file mode 100644 index 5bb1330..0000000 --- a/tests/k3s/whisk-mysc2.yaml +++ /dev/null @@ -1,123 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -apiVersion: nuvolaris.org/v1 -kind: Whisk -metadata: - name: controller - namespace: nuvolaris -spec: - nuvolaris: - password: nuvpassw0rd - apihost: arcosicilia.org - affinity: true - tolerations: true - protocol: https - components: - # start openwhisk controller - openwhisk: true - # start openwhisk invoker - invoker: false - # start couchdb - couchdb: true - # start kafka - kafka: false - # start mongodb - mongodb: true - # start redis - redis: true - # start cron based action parser - cron: true - # enable TLS - tls: false - # minio enabled or not - minio: true - # minio static enabled or not - static: true - # postgres enabled or not - postgres: true - openwhisk: - namespaces: - whisk-system: 789c46b1-71f6-4ed5-8c54-816aa4f8c502:abcfO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP - nuvolaris: cbd68075-dac2-475e-8c07-d62a30c7e683:123zO3xKCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP - couchdb: - host: couchdb - port: 5984 - volume-size: 10 - admin: - user: whisk_admin - password: some_passw0rd - controller: - user: invoker_admin - password: s0meP@ass1 - invoker: - user: controller_admin - password: s0meP@ass2 - kafka: - host: kafka - volume-size: 10 - scheduler: - schedule: "* * * * *" - tls: - acme-registered-email: [email protected] - acme-server-url: https://acme-v02.api.letsencrypt.org/directory - configs: - limits: - actions: - sequence-maxLength: 50 - invokes-perMinute: 999 - invokes-concurrent: 250 - triggers: - fires-perMinute: 999 - controller: - javaOpts: "-Xmx2048M" - redis: - persistence-enabled: true - volume-size: 10 - default: - password: s0meP@ass3 - nuvolaris: - prefix: nuv - password: s0meP@ass3 - mongodb: - host: mongodb - volume-size: 10 - admin: - user: whisk_admin - password: 0therPa55 - nuvolaris: - user: nuvolaris - password: s0meP@ass3 - exposedExternally: False - useOperator: False - minio: - volume-size: 2 - admin: - user: minioadmin - password: minioadmin - nuvolaris: - user: nuvolaris - password: zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG - postgres: - volume-size: 5 - replicas: 2 - admin: - password: 0therPa55 - replica-password: 0therPa55RR - nuvolaris: - password: s0meP@ass3 - diff --git a/tests/k3s/whisk-saas.yaml b/tests/k3s/whisk-saas.yaml deleted file mode 100644 index 4231b5d..0000000 --- a/tests/k3s/whisk-saas.yaml +++ /dev/null @@ -1,174 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# -apiVersion: nuvolaris.org/v1 -kind: Whisk -metadata: - name: controller - namespace: nuvolaris -spec: - nuvolaris: - password: nuvpassw0rd - apihost: 146.148.119.191 - storageclass: rook-ceph-block - provisioner: rook-ceph.rbd.csi.ceph.com - components: - # start openwhisk controller - openwhisk: true - # start openwhisk invoker - invoker: false - # start couchdb - couchdb: true - # start kafka - kafka: false - # start mongodb - mongodb: true - # start redis - redis: true - # start cron based action parser - cron: true - # enable TLS - tls: false - # minio enabled or not - minio: true - # zookeeper enabled or not - zookeeper: false - # minio static enabled or not - static: true - # monitoring enabled or not - monitoring: false - # postgres enabled or not - postgres: true - openwhisk: - namespaces: - whisk-system: 789c46b1-71f6-4ed5-8c54-816aa4f8c502:abcfO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP - nuvolaris: cbd68075-dac2-475e-8c07-d62a30c7e683:123zO3xKCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCGuMDGIwP - couchdb: - host: couchdb - volume-size: 10 - admin: - user: whisk_admin - password: some_passw0rd - controller: - user: invoker_admin - password: s0meP@ass1 - invoker: - user: controller_admin - password: s0meP@ass2 - kafka: - host: kafka - volume-size: 10 - controller: - protocol: "http" - host : "controller" - port: "3233" - image: "ghcr.io/nuvolaris/openwhisk-controller" - tag: "0.3.0-morpheus.22122609" - invoker: - protocol: "http" - host : "invoker" - port: "8080" - image: "ghcr.io/nuvolaris/openwhisk-invoker" - tag: "0.3.0-morpheus.22122609" - scheduler: - schedule: "* * * * *" - tls: - acme-registered-email: [email protected] - acme-server-url: https://acme-v02.api.letsencrypt.org/directory - zookeeper: - host: zookeeper - data-volume-size: 10 - log-volume-size: 5 - configs: - limits: - actions: - sequence-maxLength: 500 - invokes-perMinute: 9999 - invokes-concurrent: 2500 - triggers: - fires-perMinute: 5000 - memory: - limit-min: 128m - limit-std: 256m - limit-max: 2048m - concurrency: - limit-min: 1 - limit-std: 1 - limit-max: 1 - loadbalancer: - timeout-factor: 2 - blackbox-fraction: 25% - controller: - javaOpts: "-Xmx2048M" - loggingLevel: "INFO" - invoker: - javaOpts: "-Xmx8192M" - loggingLevel: "INFO" - containerPool: - userMemory: "51200m" - redis: - volume-size: 5 - default: - password: s0meP@ass3 - nuvolaris: - prefix: nuv - password: s0meP@ass3 - mongodb: - host: mongodb - volume-size: 10 - admin: - user: whisk_admin - password: 0therPa55 - nuvolaris: - user: nuvolaris - password: s0meP@ass3 - exposedExternally: False - useOperator: False - minio: - volume-size: 10 - admin: - user: minioadmin - password: minioadmin - nuvolaris: - user: nuvolaris - password: zuf+tfteSlswRu7BJ86wekitnifILbZam1KYY3TG - monitoring: - prometheus: - volume-size: 10 - alert-manager: - enabled: true - volume-size: 2 - slack: - enabled: true - default: true - slack_channel_name: '#monitoring-nuvolaris' - slack_api_url: ${SLACK_API_URL} - gmail: - enabled: true - default: false - from: ${ALERT_EMAIL_FROM} - to: ${ALERT_EMAIL_TO} - username: ${GMAIL_USERNAME} - password: ${GMAIL_PASSWORD} - postgres: - volume-size: 5 - replicas: 2 - admin: - password: 0therPa55 - replica-password: 0therPa55RR - nuvolaris: - password: s0meP@ass3 \ No newline at end of file diff --git a/tests/k3s/whisk.yaml b/tests/k3s/whisk.yaml index 7894733..ba9f57b 100644 --- a/tests/k3s/whisk.yaml +++ b/tests/k3s/whisk.yaml @@ -48,7 +48,7 @@ spec: # minio static enabled or not static: true # monitoring enabled or not - monitoring: true + monitoring: false # postgres enabled or not postgres: true openwhisk:
