werf / website Goto Github PK
View Code? Open in Web Editor NEWwerf website
Home Page: https://werf.io
License: Apache License 2.0
werf website
Home Page: https://werf.io
License: Apache License 2.0
minikube version: v1.23.0
K8s version: v1.22.1
MacOS Darwin 20.6.0 Darwin Kernel Version 20.6.0 RELEASE_X86_64 x86_64
The spring tutorial fails at the moment most likely due to the latest k8s version.
Running the command werf converge --repo <Docker Hub username>/werf-guide-app
causes an error.
Error: helm upgrade have failed: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "Ingress" in version "networking.k8s.io/v1beta1"
According to this issue, the source of the issue seems to be the Ingress version specified in ingress.yaml file.
I changed the definition to this:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
name: werf-guide-app
spec:
rules:
- host: werf-guide-app
http:
paths:
- path: /
backend:
serviceName: werf-guide-app
servicePort: 8000
However, the issue still persists with the error:
Error: helm upgrade have failed: unable to build kubernetes objects from release manifest: error validating
"": error validating data: [ValidationError(Ingress.spec.rules[0].http.paths[0].backend): unknown field "ser
viceName" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec.rules[0].http.paths[0].ba
ckend): unknown field "servicePort" in io.k8s.api.networking.v1.IngressBackend, ValidationError(Ingress.spec
.rules[0].http.paths[0]): missing required field "pathType" in io.k8s.api.networking.v1.HTTPIngressPath]
I believe the source of the error is coming from deployment.yaml but i am not an expert so wanted to create a new issue here
$ git grep werf_image
examples/springboot/230_assets/.helm/templates/deployment.yaml: image: {{ tuple "node-assets" . | werf_image}}
ru.werf.io/guides/django/100_basic/30_deploy_registrysecret_remote.md: image: {{ tuple "basicapp" . | werf_image }}
ru.werf.io/guides/golang/100_basic/30_deploy_registrysecret_remote.md: image: {{ tuple "basicapp" . | werf_image }}
ru.werf.io/guides/java_springboot/200_real_apps/30_assets.md: image: {{ tuple "node-assets" . | werf_image}}
ru.werf.io/guides/nodejs/100_basic/30_deploy_registrysecret_remote.md: image: {{ tuple "basicapp" . | werf_image }}
ru.werf.io/guides/nodejs/200_real_apps/30_assets.md: image: {{ tuple "basicapp" . | werf_image}}
ru.werf.io/guides/nodejs/200_real_apps/30_assets.md: image: {{ tuple "node-assets" . | werf_image}}
ru.werf.io/guides/nodejs/200_real_apps/50_files.md: image: {{ tuple "basicapp" . | werf_image}}
ru.werf.io/guides/nodejs/200_real_apps/50_files.md: image: {{ tuple "basicapp" . | werf_image}}
ru.werf.io/guides/nodejs/200_real_apps/60_email.md: image: {{ tuple "basicapp" . | werf_image}}
ru.werf.io/guides/nodejs/200_real_apps/60_email.md: image: {{ tuple "basicapp" . | werf_image}}
ru.werf.io/guides/nodejs/200_real_apps/80_database.md: image: {{ tuple "basicapp" . | werf_image }}
ru.werf.io/guides/nodejs/200_real_apps/80_database.md: image: {{ tuple "basicapp" . | werf_image }}
ru.werf.io/guides/rails/100_basic/30_deploy_registrysecret_remote.md: image: {{ tuple "basicapp" . | werf_image }}
werf.io/guides/java_springboot/200_real_apps/30_assets.md: image: {{ tuple "basicapp" . | werf_image}}
werf.io/guides/java_springboot/200_real_apps/30_assets.md: image: {{ tuple "node-assets" . | werf_image}}
werf.io/guides/nodejs/100_basic/30_deploy_registrysecret_remote.md: image: {{ tuple "basicapp" . | werf_image }}
werf.io/guides/nodejs/200_real_apps/30_assets.md: image: {{ tuple "basicapp" . | werf_image}}
werf.io/guides/nodejs/200_real_apps/30_assets.md: image: {{ tuple "node-assets" . | werf_image}}
werf.io/guides/nodejs/200_real_apps/50_files.md: image: {{ tuple "basicapp" . | werf_image}}
werf.io/guides/nodejs/200_real_apps/50_files.md: image: {{ tuple "basicapp" . | werf_image}}
werf.io/guides/nodejs/200_real_apps/60_email.md: image: {{ tuple "basicapp" . | werf_image}}
werf.io/guides/nodejs/200_real_apps/60_email.md: image: {{ tuple "basicapp" . | werf_image}}
werf.io/guides/nodejs/200_real_apps/80_database.md: image: {{ tuple "basicapp" . | werf_image }}
werf.io/guides/nodejs/200_real_apps/80_database.md: image: {{ tuple "basicapp" . | werf_image }}
Use .Values.werf.image.NAME
instead of werf_image
template.
Now the domain (werf-guide-app
) is the same as the Kubernetes resource names and sometimes this confuses the user. For example, here:
apk add curl # Installing curl in the container.
curl http://werf-guide-app:8000/ping # curl to one of the pods of our application using the service.
I use werf for ci and it's really good for that, but when I needed to install it on few Windows machines it took a little longer than I expected. Can't we use a different installation method for werf?
As for me, installing trdl, updating $PATH and $PROFILE to install 1 binary file is too complicated and takes too much time.
It will be more convenient if there are next and prev. links on a page
{% include snippetcut_example ...
для инклюда файлов целиком/инклюда больших сниппетов. И на {% include_file ...
для маленьких сниппетов в несколько строчек. syntax=...
параметр обязательно указывать. Не забыть прилегающий текст проверить, ему могут потребоваться правки.snippet=
параметр для snippetcut_example
или include_file
. Как объявить сниппет в самом файле описано здесь: https://github.com/flant/jekyll_include_plugin/#usagecurl "http://URL:PORT/api/labels/"
.# примерная шапка:
test -d ~/werf-guides-rails/werf-guides || git clone https://github.com/werf/werf-guides ~/werf-guides-rails/werf-guides
cd ~/werf-guides-rails/
rm -rf 100_db_init_and_migrations
cp -rf werf-guides/examples/rails/019_fixup_consistency 100_db_init_and_migrations
cd 100_db_init_and_migrations
git init
git add .
git commit -m "initial"
cp -r --no-target-directory ../werf-guides/examples/rails/100_db_init_and_migrations .
git add .
git diff --staged --stat
# примерный промежуточный хедер для стадий внутри главы
git commit -m '2'
cp -rT examples/rails/200_real_apps/logging-stage2 .
git add .
git diff --stat --staged
werf converge --repo <имя пользователя Docker Hub>/werf-guided-rails
Now the chapter doesn't work with the existing header. Header supposes that just after it we are going to explain the changes we are going to do in this chapter, applying the changes afterwards. But this chapter requires you to have the previous chapter repo state, then do something in the cluster manually, then deploy the previous chapter state again, and only after that we are actually making any changes to the repo.
It might be easier to change the chapter a bit to fit the usual structure instead of overcomplicating logic in the header (it is complex enough already).
It would be nice to have at least a quick guide on how to get it running.
Показать, что уже готово
.Removal of {% asset details.js %}
resulted in:
This affects all pages.
https://github.com/werf/werf-guides/blob/c32cfe34bceabe9c6537755219146cb32f08c336/ru.werf.io/guides/_layouts/wip.html#L18
The changes that led to this: 64d0738#r49666757
Based on checklist from here: werf/werf#4000
samarpan rai has kindly informed us that our "First steps" still use networking.k8s.io/v1beta1
API version Ingress resources (this manifest). That doesn't work in newer Kubernetes versions. We need to fix it in a consistent way (keeping backward compatibility for older K8s).
Starting from /guides/django/200_real_apps/040_db.html, guide raise errors if used with recent versions of images.
At first, mysqlclient for pip just doesn't build. Here they write that mariadb-dev should be added to packages. With this addition it compiles successfully.
But this is not enough. at the stage of starting the migration job, we get
django.db.utils.NotSupportedError: MySQL 8 or later is required (found 5.7.42).
so the db image version needs to be raised from 5.7 to 8.0 (in the topic about secrets, this has already been done)
Maybe this, of course, is deliberately left like that? :)
Any unexpected value passed to any GET parameter on the installation page breaks the page, i.e. https://werf.io/installation.html?method=trdl
We should fall back to some default GET parameter values if we get unexpected/invalid values.
Working through the tutorial https://werf.io/guides/nodejs/100_basic/10_build.html one gets
Error: --stages-storage=ADDRESS param required
from werf build
and werf run --docker-options="--rm -p 3000:3000" -- node /app/app.js
By searching through the project files it seems that the tutorial should instruct users to:
werf build --stages-storage :local
and
werf run --docker-options="--rm -p 3000:3000" --stages-storage=:local -- node /app/app.js
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.