diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 7ef7f7ed3..4aec39fbc 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -7,7 +7,7 @@ on: - v* env: - STRUCTOR_VERSION: v1.13.1 + STRUCTOR_VERSION: v1.13.2 MIXTUS_VERSION: v0.4.1 jobs: diff --git a/CHANGELOG.md b/CHANGELOG.md index 76d40012f..c1eadee1a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,39 @@ +## [v2.10.0](https://github.com/traefik/traefik/tree/v2.10.0) (2023-04-24) +[All Commits](https://github.com/traefik/traefik/compare/v2.9.0-rc1...v2.10.0) + +**Enhancements:** +- **[docker]** Expose ContainerName in Docker provider ([#9770](https://github.com/traefik/traefik/pull/9770) by [quinot](https://github.com/quinot)) +- **[hub]** Remove hub configuration out of experimental ([#9792](https://github.com/traefik/traefik/pull/9792) by [mpl](https://github.com/mpl)) +- **[k8s/crd]** Introduce traefik.io API Group CRDs ([#9765](https://github.com/traefik/traefik/pull/9765) by [rtribotte](https://github.com/rtribotte)) +- **[k8s/ingress,k8s/crd,k8s]** Native Kubernetes service load-balancing ([#9740](https://github.com/traefik/traefik/pull/9740) by [rtribotte](https://github.com/rtribotte)) +- **[middleware,metrics]** Add prometheus metric requests_total with headers ([#9783](https://github.com/traefik/traefik/pull/9783) by [rtribotte](https://github.com/rtribotte)) +- **[nomad]** Support multiple namespaces in the Nomad Provider ([#9794](https://github.com/traefik/traefik/pull/9794) by [rtribotte](https://github.com/rtribotte)) +- **[tracing]** Add support to send DataDog traces via Unix Socket ([#9714](https://github.com/traefik/traefik/pull/9714) by [der-eismann](https://github.com/der-eismann)) +- **[webui]** Modify the Hub Button ([#9851](https://github.com/traefik/traefik/pull/9851) by [mdeliatf](https://github.com/mdeliatf)) +- **[webui]** Display period setting of the RateLimit middleware in the webui ([#9822](https://github.com/traefik/traefik/pull/9822) by [smatyas](https://github.com/smatyas)) + +**Bug fixes:** +- **[docker]** Only warn about missing docker network when network_mode is not host or container ([#9799](https://github.com/traefik/traefik/pull/9799) by [sentriz](https://github.com/sentriz)) +- **[k8s/ingress,k8s]** Bump k8s.io/client-go from v0.22.1 to v0.26.3 ([#9808](https://github.com/traefik/traefik/pull/9808) by [ldez](https://github.com/ldez)) +- **[plugins]** Improve DeepCopy of PluginConf ([#9846](https://github.com/traefik/traefik/pull/9846) by [ldez](https://github.com/ldez)) +- **[plugins]** Update Yaegi to v0.15.1 ([#9815](https://github.com/traefik/traefik/pull/9815) by [ldez](https://github.com/ldez)) +- **[server]** Update vulcand/oxy to 03de175b3822 ([#9849](https://github.com/traefik/traefik/pull/9849) by [longit644](https://github.com/longit644)) + +**Documentation:** +- Prepare release v2.10.0-rc1 ([#9802](https://github.com/traefik/traefik/pull/9802) by [ldez](https://github.com/ldez)) +- Fix order of log levels ([#9791](https://github.com/traefik/traefik/pull/9791) by [svx](https://github.com/svx)) +- **[docker]** Update wording - add link descriptions ([#9816](https://github.com/traefik/traefik/pull/9816) by [svx](https://github.com/svx)) +- **[middleware]** Add accessControlAllowHeaders example ([#9810](https://github.com/traefik/traefik/pull/9810) by [yingshaoxo](https://github.com/yingshaoxo)) +- **[tls]** More details on Kubernetes options for mTLS ([#9835](https://github.com/traefik/traefik/pull/9835) by [mloiseleur](https://github.com/mloiseleur)) +- Prepare release v2.10.0-rc2 ([#9830](https://github.com/traefik/traefik/pull/9830) by [mpl](https://github.com/mpl)) +- Update Call To Actions ([#9824](https://github.com/traefik/traefik/pull/9824) by [svx](https://github.com/svx)) +- Improve concepts page ([#9813](https://github.com/traefik/traefik/pull/9813) by [svx](https://github.com/svx)) +- Update wording ([#9811](https://github.com/traefik/traefik/pull/9811) by [svx](https://github.com/svx)) + +**Misc:** +- Merge branch v2.9 into v2.10 ([#9798](https://github.com/traefik/traefik/pull/9798) by [ldez](https://github.com/ldez)) +- Merge branch v2.9 into v2.10 ([#9829](https://github.com/traefik/traefik/pull/9829) by [mpl](https://github.com/mpl)) + ## [v2.10.0-rc2](https://github.com/traefik/traefik/tree/v2.10.0-rc2) (2023-04-07) [All Commits](https://github.com/traefik/traefik/compare/v2.10.0-rc1...v2.10.0-rc2) diff --git a/docs/content/migration/v2.md b/docs/content/migration/v2.md index 60cb2b813..4615f6eba 100644 --- a/docs/content/migration/v2.md +++ b/docs/content/migration/v2.md @@ -506,8 +506,6 @@ In `v2.9`, Traefik Pilot support has been removed. In `v2.10`, the `namespace` option of the Nomad provider is deprecated, please use the `namespaces` options instead. -## v2.10 - ### Kubernetes CRDs In `v2.10`, the Kubernetes CRDs API Group `traefik.containo.us` is deprecated, and its support will end starting with Traefik v3. Please use the API Group `traefik.io` instead. @@ -517,6 +515,14 @@ it means that for the same kind, namespace and name, the provider will only keep In addition, the Kubernetes CRDs API Version `traefik.io/v1alpha1` will not be supported in Traefik v3 itself. +Please note that it is a requirement to update the CRDs and the RBAC in the cluster before upgrading Traefik. +To do so, please apply the required [CRDs](https://raw.githubusercontent.com/traefik/traefik/v2.10/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml) and [RBAC](https://raw.githubusercontent.com/traefik/traefik/v2.10/docs/content/reference/dynamic-configuration/kubernetes-crd-rbac.yml) manifests for v2.10: + +```bash +kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v2.10/docs/content/reference/dynamic-configuration/kubernetes-crd-rbac.yml +kubectl apply -f https://raw.githubusercontent.com/traefik/traefik/v2.10/docs/content/reference/dynamic-configuration/kubernetes-crd-definition-v1.yml +``` + ### Traefik Hub In `v2.10`, Traefik Hub is GA and the `experimental.hub` flag is deprecated. diff --git a/script/gcg/traefik-final-release-part1.toml b/script/gcg/traefik-final-release-part1.toml index 17801e19d..ee2bd3017 100644 --- a/script/gcg/traefik-final-release-part1.toml +++ b/script/gcg/traefik-final-release-part1.toml @@ -4,11 +4,11 @@ RepositoryName = "traefik" OutputType = "file" FileName = "traefik_changelog.md" -# example final release of v2.9.0 -CurrentRef = "v2.9" -PreviousRef = "v2.9.0-rc1" -BaseBranch = "v2.9" -FutureCurrentRefName = "v2.9.0" +# example final release of v2.10.0 +CurrentRef = "v2.10" +PreviousRef = "v2.10.0-rc1" +BaseBranch = "v2.10" +FutureCurrentRefName = "v2.10.0" ThresholdPreviousRef = 10 ThresholdCurrentRef = 10 diff --git a/script/gcg/traefik-final-release-part2.toml b/script/gcg/traefik-final-release-part2.toml index 0c33e8769..9f3abf827 100644 --- a/script/gcg/traefik-final-release-part2.toml +++ b/script/gcg/traefik-final-release-part2.toml @@ -4,11 +4,11 @@ RepositoryName = "traefik" OutputType = "file" FileName = "traefik_changelog.md" -# example final release of v2.9.0 -CurrentRef = "v2.9.0-rc1" -PreviousRef = "v2.8.0-rc1" +# example final release of v2.10.0 +CurrentRef = "v2.10.0-rc1" +PreviousRef = "v2.9.0-rc1" BaseBranch = "master" -FutureCurrentRefName = "v2.9.0-rc1" +FutureCurrentRefName = "v2.10.0-rc1" ThresholdPreviousRef = 10 ThresholdCurrentRef = 10 diff --git a/webui/.nvmrc b/webui/.nvmrc new file mode 100644 index 000000000..8ba691606 --- /dev/null +++ b/webui/.nvmrc @@ -0,0 +1 @@ +12.11.1 diff --git a/webui/src/components/_commons/NavBar.vue b/webui/src/components/_commons/NavBar.vue index ffa2a67d1..854ff8ea1 100644 --- a/webui/src/components/_commons/NavBar.vue +++ b/webui/src/components/_commons/NavBar.vue @@ -30,7 +30,13 @@
- +
+ +
+

Extend your capabilities to API Management

+ +
+
@@ -86,7 +92,12 @@ export default { } }, methods: { - ...mapActions('core', { getVersion: 'getVersion' }) + ...mapActions('core', { getVersion: 'getVersion' }), + getHubLogoSrc (isDarkMode) { + return isDarkMode + ? 'statics/hub-logo-horizontal-dark.png' + : 'statics/hub-logo-horizontal-clear.png' + } }, created () { this.getVersion() @@ -154,8 +165,8 @@ export default { } .btn-hub { - color: #0e204c; - background: #deea48; + color: #dedede; + background: #5f6572; } .q-item { @@ -166,4 +177,70 @@ export default { font-weight: 700; align-items: flex-start; } + + .tooltip { + display: inline-block; + + .content { + display: flex; + align-items: center; + visibility: hidden; + font-size: 16px; + padding: 20px; + border-radius: 16px; + background-color: #fff; + box-shadow: 0 0 6px rgba(0,0,0,0.16), 0 0 6px rgba(0,0,0,0.23); + + /* Position the tooltip text */ + position: absolute; + z-index: 1; + top: 90%; + left: -5%; + + /* Fade in tooltip */ + opacity: 0; + transition: opacity 0.3s; + + &::after { + content: ""; + position: absolute; + top: -10px; + left: 22%; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 10px solid #fff; + } + + p { + align-self: baseline; + color: var(--q-color-primary); + font-weight: bold; + margin: 0 20px 0 0; + max-width: 180px; + } + + img { + margin: 0 20px; + } + } + + &.is-dark-mode .content { + background-color: #262626; + box-shadow: 0 0 6px rgba(10,18,36,0.16), 0 0 6px rgba(10,18,36,0.23); + + &::after { + border-bottom: 10px solid #262626; + } + + p { + color: #fff; + } + } + + &:hover .content { + visibility: visible; + opacity: 1; + } + } + diff --git a/webui/src/statics/hub-logo-horizontal-clear.png b/webui/src/statics/hub-logo-horizontal-clear.png new file mode 100644 index 000000000..9fdabf2af Binary files /dev/null and b/webui/src/statics/hub-logo-horizontal-clear.png differ diff --git a/webui/src/statics/hub-logo-horizontal-dark.png b/webui/src/statics/hub-logo-horizontal-dark.png new file mode 100644 index 000000000..aff782355 Binary files /dev/null and b/webui/src/statics/hub-logo-horizontal-dark.png differ