Skip to content

Comments

Release 2022-06-14 - (expected chart version 4.14.0)#2478

Closed
zebot wants to merge 36 commits intomasterfrom
release_2022-06-14_10_07
Closed

Release 2022-06-14 - (expected chart version 4.14.0)#2478
zebot wants to merge 36 commits intomasterfrom
release_2022-06-14_10_07

Conversation

@zebot
Copy link
Contributor

@zebot zebot commented Jun 14, 2022

[2022-06-14] (Chart Release 4.14.0)

Release notes

  • The nginz{-tcp,-http} services have been unified into a nginz service, and
    moved into the nginz chart.

    The nginz-ingress-services chart simply targets the nginz service, so there's
    no need to set matching service.nginz.external{Http,Tcp}Port inside the
    nginx-ingress-services chart anymore.

    The config.http.httpPort and config.ws.wsPort values in the nginz chart
    still configure the ports the nginz service is listening on.

    The nginz chart also gained support for metrics.serviceMonitor.enabled,
    creating a ServiceMonitor resource to scrape metrics, like for other wire
    services.

    (//services/nginz/third_party/nginx-module-vts: update #2476)

  • Upgrade team-settings version to 4.10.0-v0.29.7-0-3be8ca3 (Update team-settings version in Helm chart [skip ci] #2180)

  • Upgrade webapp version to 2022-06-13-production.0-v0.29.7-0-2819b90 (Update webapp version in Helm chart [skip ci] #2302)

  • In the helm charts, the wireService label has been removed.

    In some cases, we were already setting the app label too.

    Now we consistently use the app label to label different wire services.

    The wireService label was also used in the spec.selector.matchLabels field
    on existing Deployment / StatefulSet resources.
    As these fields being immutable, changing them isn't possible without recreation.

    If you encounter an issue like

    field is immutable && cannot patch "*" with kind *

    you need to manually delete these StatefulSet and Deployment resources, and apply helm again, which will recreate them.

    This means downtime, so plan a maintenance window for it.

    The wire-server-metrics chart was previously running some custom
    configuration to automatically add all payloads with a wireService label into
    metrics scraping.

    With the removal of the wireService label, this custom configuration has been
    removed.

    Instead, all services that expose metrics will now create ServiceMonitor
    resources, if their helm chart is applied with metrics.serviceMonitor.enable
    set to true.

    This prevents scraping agents from querying services that don't expose metrics
    at /i/metrics unnecessarily.

    Additionally, makes it easier to run other metric scraping operators, like
    grafana-agent-operator, without the need to also create some custom
    wireService label config there.

    Generally, if you have any monitoring solution installed in your cluster that
    uses the Prometheus CRDs, set metrics.serviceMonitor.enable for the following charts:

Features

Internal changes

elland and others added 30 commits June 8, 2022 07:20
After Vedran asked about it
glibc 2.34 uses the clone3 syscall, which is not part of the seccomp
filters that moby ships on older versions.

While as a workaround you might be able to run containers with
`--privileged`, it's the better call to just run a more recent Docker
runtime.

References:
 - docker/buildx#772
 - moby/buildkit#2379
 - moby/moby#42836
 - NixOS/nixpkgs#170900
docs/src/how-to/install/dependencies.rst: require Docker >= 20.10.14
Reverted back to sequence+map to avoid GHC issue when dealing with Arbitrary instances
Merge master back into develop for release 2022-06-08
…r support (#2413)

* charts/*: drop wireService label, use app= instead, add servicemonitor support

This aligns labels a bit more with how they look like in other
deployments. In some cases, we were already setting the `app` label,
too.

There's one possible regression:
The wire-server-metrics helm chart configured kube-prometheus-stack to
automatically scrape everything with a wireService label at port http,
path /i/metrics. This will be fixed in a followup, by adding
ServiceProbe resources to each workload that exposes metrics.

* charts/brig: add servicemonitor support

* charts/cannon: add servicemonitor support

* chart/cargohold: add servicemonitor support

* charts/galley: add servicemonitor support

* charts/gundeck: add servicemonitor support

* charts/proxy: add servicemonitor support

* charts/spar: add servicemonitor support

* changelog.d: add wireService label removal to changelog
…ent recreation (#2472)

The `wireService` label was also used in the `spec.selector.matchLabels` field
on existing `Deployment` / `StatefulSet` resources.
As these fields being immutable, changing them isn't possible without recreation.

Update the release notes to document this fact, and how to handle it.
* Add mls clients to remote member table

* Add fed endpoint to get MLS clients

* Store remote mls clients in conversations

* Move MessageMetadata to wire-api

* Add fed RPC for remote message notifications

* Send MLS messages to remote members

* Ignore (and log) errors when sending MLS messages

* Ignore local member map for non-bots

* Add a federation test

* Test adding remote member to MLS conv

* Add end-to-end test of remote MLS messages

* Add remote MLS message test

* Replace LocalMemberMap with BotMap

* onMessageSent: only send messages to members

* Add CHANGELOG entry

* Typo

Co-authored-by: Marko Dimjašević <marko.dimjasevic@wire.com>
Co-authored-by: Zebot <zebot@users.noreply.github.com>
This provides a prometheus endpoint out of the box, so we can access it
at /vts/status/format/prometheus.
Make this actually only one service, exposing two ports.

This will allow selecting nginz for metrics scraping on the right port,
without the need for additional labels to distinguish `nginz-tcp` from
`nginz-http`.
flokli and others added 6 commits June 14, 2022 11:39
With the move to a single Service for nginz, exposing two ports, we can
actually properly target the http port of nginz for metrics collection.

As with the other services, the service monitor creation is opt-in.
Let nginx-ingress-services simply target the nginz service created by
the nginz chart.
//services/nginz/third_party/nginx-module-vts: update
Co-authored-by: Zebot <zebot@users.noreply.github.com>
@zebot zebot temporarily deployed to cachix June 14, 2022 10:07 Inactive
@battermann battermann closed this Jun 14, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants