Tye 0.2
Pre-releaseTye 0.2 Release notes
These are the release notes for the 0.2 release of Tye.
The package version is: 0.2.0-alpha.20258.3
See getting started for installation instructions.
Notable changes and features
Ingress support
Tye now provides an opinionated and simple way of configuring ingress for local development, as well deploying to Kubernetes using the popular NGINX Ingress Controller for Kubernetes.
There's new documentation for ingress that describes how to setup ingress for both local development and deployment.
Multiple repository support
We've added support for running and deploying a tye application which consists of multiple repositories.
tye.yaml
now supports composition. To compose, use the include directive specifying the name of the service you'd like in another tye.yaml
.
name: multirepo-app
services:
- name: frontend
project: ./frontend/frontend.csproj
- name: inventory
include: ../inventoryRepo/tye.yaml
We also now support referencing another repository by specifying a URI, which tye will clone.
name: multirepo-app
services:
- name: frontend
project: ./frontend/frontend.csproj
- name: inventory
repository: https://github.com/MyOrg/InventoryRepo
The string given to repository
is directly passed in after git clone
, so if you need additional arguments to the call to git clone (for example, specifying branch), you can add it there.
Distributed Tracing using zipkin
Zipkin is a popular open-source distributed trace storage and query system. It can show you:
- Which services were involved with an end-to-end operation
- What are the trace IDs to reference logs for an operation
- What were the timings of work done in each service for an operation
Tye can now get distributed tracing working easily without adding any SDKs or libraries to your services.
See our recipe on distributed tracing with zipkin for more details.
Logging with Elastic Stack
Elastic stack (aka ELK) is a popular log-aggregation system that gives you a powerful log search and dashboard engine with views across all of your services.
Tye can push logs to Elastic stack easily without the need for any SDKs or code changes in your services.
See our recipe on logging with Elastic Stack for more details.
New tye commands
We've added a new command, tye push
, which will build all application containers and push them to a container registry, without deploying to Kubernetes. This command is useful if you want to use Tye to containerize .NET Core projects and manage deployment separately.
We've also added the tye build
command, which will build all of an application's project services into containers without deploying or pushing the containers remotely. This command is useful for testing that all projects successfully build.
We've also added the tye undeploy
command will delete a deployed application from Kubernetes. tye undeploy
by default will:
- List all resources that are part of an application
- Print the list of resources (what-if)
- Offer a choice to delete each resource (interactive)
- Delete each resource (if applicable)
Misc changes
You can now specify build properties for a service in tye.yaml. These are properties that will be directly provided to dotnet build as MSBuild properties.
name: app
services:
- name: frontend
project: frontend/frontend.csproj
buildProperties:
- name: Configuration
value: Debug
We now support building projects in parallel when there are multiple projects that need to be built. This will speed up the time for tye run
and tye deploy
.
You can now specify a namespace to deploy to when running tye deploy
.
tye deploy --namespace MyNamespace
We've added support to specifying a Dockerfile in tye.yaml
for tye run
.
name: app
services:
- name: frontend
dockerFile: frontend/Dockerfile
You can also specify the Dockerfile context with dockerFileContext
.
Documentation improvements
We've added some more documentation for various topics in tye. You can find this in the docs folder. This includes local development, deployment, and multiple repository scenarios.
We've also added new recipes for adding many different extensions to tye, including:
- Distributed Tracing with zipkin
- Logging with Elastic Stack
- Adding an ingress to local and deployed applications
Community contributions
Below is a list of all the community contributions between April 09, 2020 and May 08, 2020 (UTC time). Thanks to all our contributors for their enthusiasm and support!
- @NikiforovAll Add word-break to source-project column
- @alexfdezsauco Remove PackageVersion tag with specific version number from tye.csproj
- @brendandburns Add the ability to specify a namespace for tye deploy.
- @brendandburns Improve docs somewhat.
- @alexfdezsauco Add buildProperties to project service configuration
- @staff0rd Add push command
- @alexfdezsauco Fix ConfigApplicationParser to support network deserialization
- @tebeco Restore.cmd fails on non-existing flags "-all" and "-nobuild"
- @tebeco [DOCS] Align "project" and "name" nodes in 01_deploy.md of the default tye.yaml
- @mdekrey Correct FAQ link
- @PureKrome 💄 Fixed typo.
- @sambeckingham Update link to redis manifest
- @tiesmaster Fix broken link to Tutorial 02 (Basic Tutorial (deploy))
- @thangchung Add debug and tracing annotations