All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Support for kubernetes v1.16, v1.17 and v1.18 versions
- Dependencies management migrated from Govendor to Go MOD
- Nginx default
requests
quota value for cpu and memory
- Verification to avoid ingress duplication when an unmanaged ingress exists
- Adds rewrite-target annotation to createIngress if ingressClass is nginx
- Default nginx side-car image to allow support to lua scripts
- Ingress spec will be the same for vhost and static IP
- Checks if app already has ingress before trying to reserve a static IP
- Moves ingress annotations to deploy's exposeApp
- Don't create an Ingress for apps without vHosts
- Added dnsConfig on deploy
- Updated minio version on helm chart
- Added
S3_HOST
env var - Added helm dependency update to .helm.sh
- Added ingress class specification
- Typo on SSL annotation on GCE
- Misleading missing vhost error message
- Support for GCE static IP
- One click way to delete app silently with --no-input flag
- [server] Teresa was not sending env vars to the cloudsql-proxy sidecar
- [server] Bump the slugbuilder version to v3.6.0
- [server] Hanging release phase process with cloudsql-proxy sidecar
- Validation for env var and secret names
- Support to create more than one web app per code base
- [server] Missing clousql-proxy sidecar in the release pod
- Support for creating apps with multiple virtual hosts
app set-vhosts
command
- [client] Improve app delete message
- [server] Command
app stop
andapp start
now stop/start cronjobs - [server] Refactor the tests of the app package
- [server] Add first test using the fake client-go
- [server] Better logs on build errors
- [server] Bump the slugbuilder version to v3.5.0
- [server] Error message when enabling ssl with ingress
- [server] App ingress detection
- [server] Don't return internal server error for invalid app names
- [server] Only use the nginx sidecar for services
- [server] Ingress setting for out of cluster configs
- [server]
enable-ssl
command resetting the protocol to tcp
- [server] Cluster autocaler support
- Support for secrets as files
- [server] Support for .yml extension
- Support for cloudsql-proxy sidecar
- FAQ entry about the cloudsql-proxy
- FAQ entry about the unix socket between nginx and app
- [server] Remove external uuid package dependency to generate deploy uid's
- [server] Big refactor on spec pkg
- [server] Change healthcheck port back to the nginx one
- [server] Remove the function test.DeepEqual
- [server] Remove secrets from k8s after remove from deploy
- [server] Bump slugrunner version to v3.4.0
- [server] Database initial migration on mysql 5.7
- [server] Doesn't log request content on error middleware if the route is
User/Create
- [server] Channel leak on watch deploy rolling update and service creation
- Limits to the nginx container
- Experimental Commands
build list
,build delete
andbuild run
- [server] Support for teresa.yaml v2 format
- Command
service whitelist-source-ranges
- Firewall whitelist to the
service info
command
- [server] Fix panic when monitoring the rolling update
- [server]
app info
command output
- [client] Print more friendly error message when connection fails
- Bump the default slugrunner version to v3.3.0
- [client] Support to remove remote cluster from configuration file
- [client] Print app name and current cluster on command
app delete
- [server] Set default backoff limit to 3 on cronjobs
- [server] Always use service type LoadBalancer on builds
- [server] Use app.tgz as source code tarball name
- Switch from godep to govendor
- [server] Fix cloud provider detection on gce
- [server] Save last user of deploy
- [server] Fix long running exec commands
- [server] Fix lack of error handling when streaming messages from readers
- [client] Add limits validation on app creation
- [server] Update client-go to v6.0.0 and bump minimum k8s version to 1.9
- [server] Use an explicit selector for the deploy spec
- [server]
app create
requires vhost when ingress is enabled - Bump the default slugrunner version to v3.2.0
- Bump the default slugbuilder version to v3.4.0
- [server] Return not implemented error when enabling ssl with ingress on aws
- [server] Always return
fallback
cloudprovider operations for unknown cloud providers
- [server] Do not monitor rolling update of cronjob apps
- Make deploy rollback update the app env vars
- Improve
deploy rollback
usability - [server] Monitor the rolling update after the deploy, returning an error if the former is stalled
- [server] Name service ports with the protocol
app change-team
command- App protocol field
- Experimental
build
feature
- Return error with timeout message when there's no resources for build, release phase and command exec
- Health Checks ports on deploys with nginx sidecar
- Show CREATED AT instead of AGE in deploy list
- Delete configmap if a deploy remove the nginx
- Default nginx image to nginx:1.13-alpine-perl
- Bump the default slugrunner version to v3.1.0
- Update environment vars (
env-set
andenv-unset
) on each pod container
- Share application directory with nginx sidecar
- Share application environment vars nginx sidecar
- FAQ entry with an example dynamic nginx configuration
service
command, for now only used to enable ssl supportservice info
command
- Update
gorm
version to v1.9.1 - Update
go-sql-driver/mysql
.teresaignore
behavior (to work like.gitignore
)- Protect nginx vars from being interpreted as env vars
- Change Method
CreateSecret
toCreateOrUpdateSecret
on k8s interfaces - Default max-cpu app limit to 400m
- [HELM] Bump minio version to v0.5.5
- [server] Change the pull policy to always pull
- Infer if an app is a cronjob by
cron
prefix on process type - Bump the default slugbuilder version to v3.3.0
- Support Nginx as sidecar
- Support for internal apps
- Support to filter app logs by container name
- Support to set secrets as env var
- Storage env vars on spec of Init Container
app logs
support to filter by pod nameapp logs
support to print the logs of the previous pod instance- [server]
replace-storage-secret
admin command - CronJob experimental support
- CONTRIBUTING.md and related FAQ entry
- Better error message for invalid app name error
- Better error message for invalid env var name error
- Refactor specs to be more in line with k8s concepts
- The slugrunner doesn't mount the storage keys anymore. An init container is responsible for downloading the slug
- Bump the default slugrunner version to v3.0.1
- [server] using multistage build on teresa dockerfile
- [server] update default slugbuilder version to v3.2.0
- Upgrade golang version to 1.9
exec
command- [helm] Add HealthChecks
- [server] graceful shutdown
- [client] support to deploy remote (http and https) and local files
- [server] decouple k8s client interface from the domain ones
- [client] rewrite client tar pkg and change the deploy cmd accordingly
- Pod list on
app info
command for apps without HPA - [server] make the build process stop on client cancellation
- [server] default deploy lifecycle with 10s drain timeout
- [server] configurable env (
TERESA_DB_SHOW_LOGS
) to show (or not) database logs (defaultfalse
)
- [client] On deploys create the tar file before connecting to the server and remove it before exiting
- [server] null pointer exception on deploy
- app Start/Stop commands
app delete-pods
command- set-password now support the --user flag to set password of another user(needs admin)
- Back to Godep for dependencies management
- Update
client-go
lib to version 4.0 - [server] Don't use the default service account on builds and deploys
- alias
app log
toapp logs
app logs
now support shorthand-f
to--follow
and-n
to--lines
- Env vars being set or unset for the app on deploy update errors
- Typo on server pkg
- [server] Return all deploy errors to the client
- [client] teresaignore on Windows
- [helm] support rbac
- Support ingress on app expose
- app create now support --vhost to define a virtual host to app
- Helm support ingress and service type config
- Don't return error on
app info
command if the app doesn't have HPA
- Pod readiness to the
app info
output - [helm] minio as dependency
- Team rename command
- Using
dep
instead ofGodep
for dependencies management - deploy list now print revision in reverse order and remove current column
app info
now counts only pods with defined state
- login now use the --cluster flag to save the token to config file
- Don't return error on
app info
command if the app doesn't have HPA
- Upgrade
slugbuilder
version tov3.0.0
- Timeout of
PodRun
process (deploy and release) is now configurable
- Allows developers to set the JWT auth token expiration period
- Command 'deploy list'
- Command 'team remove-user'
- Command 'deploy rollback'
- Command 'app delete'
- Deploys are now performed using the 'deploy create' command
- app info now print env vars sorted
- App info don't print pod without status
- [server] --debug flag. For now only print the stack trace on panic/recover.
- [client] --cluster flag. To use a cluster different of current-cluster.
- [client] Commands 'env-set' and 'env-unset' show the current cluster.
- [server] Restart count on 'app info' output
- [client] Validate 'deploy' command parameters
- [client] Hanging deploys when the app dir doesn't exist
- [client] App name length validation
- autoscale command
- [server] Support for Teresa yaml per process type
- [server] Specific CPU and Memory limits for both deploy and release pods
- [client] Change default
max-cpu
to200m
(instead of500m
) in commandcreate app
- [server] Doesn't log request content on error middleware if the route is
Login
- 'app info' command shows the pods age and restart count
- Use gRPC instead of go-swagger
- Changed project structure to be more k8s like
- Standardize error messages format and server logs
- 'app create' command doesn't create a welcome deploy anymore
- [client] Refactored config and bash completion
- [client] Flag --admin removed, admin users are only created with the 'create-super-user' command
- [server] Delete build pod after deploy on success
- Unit tests
- Travis CI
- 'set-password' command
- Builtin TLS (thanks gRPC)
- Versioning by git tag
- [server] 'create-super-user' command
- [server] added so called 'release' command, which allows developers to run a command right after the build is finished
- [server] Healthcheck
- [server] Support for minio storage
- [server] Added deploy drain timeout in teresa.yaml, which makes the POD sleep for a configurable amount of time before receiving SIGTERM
- [server] Don't return stale app data to the user
- [server] Every deploy has at least one replica
- [server] 'app logs' command timeouts
- Finish the merge with
teresa-cli
by removing all references to the old repo - Multi team tokens. Before this fix a user would get access only to apps from one of its teams.
- Fix deploy timeouts by sending a few bytes at a constant time interval to the network connection in use (as required by the idle timeout of the aws classic elb for instance)
- Merge
teresa-cli
andteresa-api
- Support for non-web process types
- Get current namespace name from environment variable instead of a constant
- Location of slugbuilder and slugrunner images
- Read keys from k8s secrets
- Increase deploy timeouts and make them configurable
- Upgrade slugbuilder and slugrunner
- use
TERESADB_DATABASE
variable to define location ofteresa.sqlite
- update README to use an api to generate password instead of a python script
- remove dead code
- remove users/me endpoint
- big breaking changing version
- command
add team-user
- vendoring dependencies
- deployment now returning an error message on fail
- default service port changed from 5000 to 80
- deployment timeout increased
- improved deployment info printed out to user
- go-swagger updated to version 5.0.0