Commit Graph

436 Commits (a90b67f276f95c4c17e4ea9492c92f6ba660320f)

Author SHA1 Message Date
Saad Ali 5596e6f789 Merge pull request #9493 from marekbiskup/testAddonUpdate
e2e test for addon upgrade
2015-06-16 10:50:15 -07:00
CJ Cullen 48f672af92 Change SSHTunnelList to struct to make Open() semantics better. 2015-06-16 10:36:38 -07:00
CJ Cullen 4d5d0457ef Fix mislooping in ssh.go. Add retries to AddSSHKeys. 2015-06-16 00:08:37 -07:00
Brendan Burns a6652a0e98 Merge pull request #9834 from cjcullen/fwfix
Fix crashes in ssh-tunnel code.
2015-06-15 20:25:32 -07:00
Fabio Yeon bcf5cffa1a Merge pull request #9768 from timstclair/proxy-rel
Don't rewrite relative URLs when proxying HTTP content.
2015-06-15 19:54:18 -07:00
CJ Cullen 66fb8ccb02 Add ssh tunnel-open metrics 2015-06-15 17:28:54 -07:00
CJ Cullen faa9313eea Fix several potential crashes in sshtunnel open/close code. 2015-06-15 14:38:37 -07:00
Marek Biskup dcc4034d57 e2e test for addon update 2015-06-15 17:37:24 +02:00
Tim St. Clair fd7d46e9da Don't rewrite relative URLs when proxying HTTP content. 2015-06-12 21:30:29 -07:00
BenTheElder c5baf1f284 Export GetIptablesVersion utility in util/iptables
For kube-proxy to determine whether to use pure iptables as in
https://github.com/GoogleCloudPlatform/kubernetes/issues/3760
Related WIP PR:
https://github.com/GoogleCloudPlatform/kubernetes/pull/9210
2015-06-12 17:13:40 -04:00
krousey f62a2a1bb6 Merge pull request #9451 from cjcullen/mig
Use Node IP Address instead of Node.Name in minion.ResourceLocation.
2015-06-09 15:52:12 -07:00
krousey 43a423f6fc Merge pull request #9440 from brendandburns/ssh
Add an initial test for SSH.
2015-06-09 12:08:26 -07:00
krousey 9740105a99 Merge pull request #8837 from mbforbes/rollingTest
E2E test node upgrade (to same version)
2015-06-09 10:42:17 -07:00
Brendan Burns 2240486110 Add an initial test for SSH. 2015-06-08 20:53:05 -07:00
CJ Cullen 2d85e4a094 Use Node IP Address instead of Node.Name in minion.ResourceLocation.
Refactor GetNodeHostIP into pkg/util/node (instead of pkg/util to break import cycle).

Include internalIP in gce NodeAddresses.
2015-06-08 16:58:00 -07:00
CJ Cullen 04cd9b3c75 Make sshproxy use a hostmount on master PD (don't spam sshKeys on upgrade/reboot).
Add comment describing what SSHTunnelList.Close() does.
Simplify util.FileExists.
2015-06-05 15:03:03 -07:00
CJ Cullen cb317604ab Some refactoring. Only selectively use ssh proxy.
Add NetworkName to gce.Config.
Add locking to uses of master.tunnels.
2015-06-05 14:55:16 -07:00
CJ Cullen 1ae8801387 Fix transport creation logic.
Refactor loadTunnels to allow one path for load, another for refresh.
Make SSHTunnelList.Close sleep for a minute before actually closing each tunnel.
2015-06-05 14:55:16 -07:00
Brendan Burns 5115fd5703 Add key generation. 2015-06-05 14:55:15 -07:00
Brendan Burns 30a89968a4 Initial proxy tunnelling. 2015-06-05 14:54:20 -07:00
Quinton Hoole 8b01ecb53a Merge pull request #9024 from markturansky/recyc_controllers
PersistentVolumeRecycler controller
2015-06-05 11:39:08 -07:00
markturansky 986cbb56d4 Recycling HostPath and NFS impls 2015-06-04 15:46:03 -04:00
Brian Grant f72fa67924 Revert "Use Node IP Address instead of Node.Name in minion.ResourceLocation." 2015-06-03 18:19:22 -07:00
Max Forbes a6c47a07de E2E test node upgrade (to same version) 2015-06-03 17:05:45 -07:00
CJ Cullen 4e5d0da839 Use Node IP Address instead of Node.Name in minion.ResourceLocation.
Refactor GetNodeHostIP into pkg/util/node (instead of pkg/util to break import cycle).

Include internalIP in gce NodeAddresses. Remove NodeLegacyHostIP
2015-06-02 20:01:49 -07:00
Eric Tune c1d0a48075 Merge pull request #8912 from justinsb/volumes_kubelet_root_not_symlink
Ensure kubelet root is not a symlink
2015-06-01 09:24:32 -07:00
Justin Santa Barbara c4a2631593 Mount logic breaks if /var/lib/kubelet is a symlink
Pass the correct kubelet root-dir on AWS
2015-05-29 20:13:09 -04:00
Justin Santa Barbara 9839253233 Add logging to volume tear-down to help understand mount behaviour 2015-05-29 20:11:13 -04:00
Rohit Jnagal 0cbd4beb63 Merge pull request #8886 from csrwng/fix_proxy_url_slash
Fix proxying of URLs that end in "/" in the pod proxy subresource
2015-05-29 16:28:41 -07:00
Rohit Jnagal d34d00c288 Merge pull request #8898 from brendandburns/tunnel
Move SSH code into a common util package.  Add support for SSH tunnels.
2015-05-29 14:48:37 -07:00
Tim Hockin 4318ca5a8b Rename 'portal IP' to 'cluster IP' most everywhere
This covers obvious transforms, but not --portal_net, $PORTAL_NET and
similar.
2015-05-28 16:10:44 -07:00
Cesar Wong 684dcd4307 Fix proxying of URLs that end in "/" in the pod proxy subresource
Also handles proxying of URLs that have an empty path and don't end in a slash "/" by redirecting to the same location with a slash appended.
2015-05-27 22:12:55 -04:00
Brendan Burns a51747f941 Move SSH code into a common util package. Add support for SSH tunnels. 2015-05-27 16:58:52 -07:00
Anastasis Andronidis 5eae2378d6 Warn for every _ flag user or cmd defined
also renames all global _ flags to -
2015-05-27 11:23:52 +02:00
Saad Ali 7493ed0fca Merge pull request #8786 from pmorie/secret-tests
Add tests for secret volume plugin reboot/idempotency
2015-05-26 09:57:31 -07:00
Filip Grzadkowski 967b1b95ba Add very simple tracing mechanism for easier debugging of slow requests. 2015-05-26 16:17:18 +02:00
Paul Morie feb0880b1e Add tests for secret volume plugin reboot/idempotency 2015-05-25 13:34:07 -04:00
Justin Santa Barbara 1ad4549f5f Proxy infrastructure for NodePorts
A service with a NodePort set will listen on that port, on every node.

This is both handy for some load balancers (AWS ELB) and for people
that want to expose a service without using a load balancer.
2015-05-22 17:21:49 -04:00
Victor Marmol 0e804b03a4 Merge pull request #8220 from thockin/label-validation
Add test case for qname validation, fix impl
2015-05-18 08:40:56 -07:00
Justin Santa Barbara 2457c284ed Add util.PortRange, so that a port range can be a flag. Format: lo-hi 2015-05-16 15:52:57 -04:00
Tim Hockin 71d375e22f Add test case for qname validation, fix impl 2015-05-15 14:45:36 -07:00
Dawn Chen ebbb130af8 OOM protected docker processes (-900) 2015-05-14 15:49:12 -07:00
Tim Hockin b429e89251 Spec qualified names (label keys) more tightly
It can be a (DNS_SUBDOMAIN/)?label, but we were validating it
incorrectly before.
2015-05-13 13:59:16 -07:00
Robert Bailey c47b9178b4 Replace the auth config file with a kubeconfig file when
starting the kubelet on GCE.
2015-05-13 01:03:28 -07:00
Jordan Liggitt 6e570732f5 ServiceAccounts controller 2015-05-11 17:18:05 -04:00
Nikhil Jindal 48dfad6701 Merge pull request #8050 from fgrzadkowski/cache
Add cache with multiple shards to decrease lock contention
2015-05-11 10:18:34 -07:00
Paul Morie 14243d3bd6 Fix typo in nsenter_mount.go 2015-05-11 11:41:01 -04:00
Filip Grzadkowski 50de4d0081 Add cache with multiple shards to decrease lock contention 2015-05-11 15:07:50 +02:00
Yu-Ju Hong 170f426fb6 Don't use the first token `uname -n` as the hostname
This change partially reverts the change made in #7910, which takes only the
first token of `uname -n` as the hostname.
2015-05-08 10:09:06 -07:00
Abhi Shah 589154a557 Merge pull request #7821 from lavalamp/deleteEndpoints
Add old endpoint cleanup function
2015-05-07 16:54:41 -07:00
Victor Marmol 5074e98ee9 Merge pull request #7910 from yujuhong/hostname
Use the full hostname for mirror pod name.
2015-05-07 14:43:16 -07:00
Yu-Ju Hong ab5e0e0b5c Use the full hostname for mirror pod name.
This change appends the full hostname to the mirror pod name (instead of taking
the first token) so that if the hostname is overriden, we'd not be creating
unncessary name conflicts. An example would be that a user overrides the
hostnames to be "127.0.0.1" and "127.0.0.2", and both of them were resolved to
"127" for the mirror pod name suffix.

Also, because `uname -n` could return a FQDN or not, this change takes only
the first token of it as the hostname for consistency.
2015-05-07 12:59:49 -07:00
Wojciech Tyczynski 128835ec40 Merge pull request #7885 from hurf/master
Update errors_test.go
2015-05-07 10:06:26 +02:00
Victor HU f42a18d3c2 Update errors_test.go
minor change in log message
2015-05-07 15:06:15 +08:00
Daniel Smith b49dd0ad1e Add old endpoint cleanup function 2015-05-06 13:03:18 -07:00
Tomek Kulczynski 290c7b94ef Make nodecontroller configure nodes' pod IP ranges 2015-05-05 16:10:42 -07:00
Paul Morie 553265ce0c Add containerized option to kubelet binary 2015-05-05 13:10:06 -04:00
Wojciech Tyczynski bd3d853242 Merge pull request #7737 from lavalamp/fixTimeAfter
Reduce usage of time.After
2015-05-05 09:28:07 +02:00
Daniel Smith 16a6fb8ef7 Replace calls to time.After with time.NewTimer for explicit stopping 2015-05-04 14:29:33 -07:00
Quinton Hoole cd7a0e5a9f Merge pull request #7721 from smarterclayton/fix_ipv4
Select IPv4-only from host interfaces
2015-05-04 14:09:27 -07:00
Clayton Coleman c07896ee35 Merge pull request #7509 from deads2k/deads-has-any
add StringSet.HasAny
2015-05-04 16:21:33 -04:00
Clayton Coleman 166021e765 Select IPv4-only from host interfaces 2015-05-04 14:46:00 -04:00
Paul Morie e5521234e4 Add NsenterMounter mount implementation 2015-05-04 14:40:04 -04:00
Eric Paris 6b3a6e6b98 Make copyright ownership statement generic
Instead of saying "Google Inc." (which is not always correct) say "The
Kubernetes Authors", which is generic.
2015-05-01 17:49:56 -04:00
Vish Kannan 1dead9c670 Merge pull request #6400 from ddysher/nfs-volume-mounter
Implement Mount interface using mount(8) and umount(8)
2015-04-30 14:00:56 -07:00
deads2k f258717f26 add StringSet.HasAny 2015-04-29 16:55:43 -04:00
Eric Paris a17a26643b Update kube to support new pflag/cobra 2015-04-29 11:26:30 -04:00
Deyuan Deng 6897095e56 Change mount.Interface.Mount to exec('mount'), instead of syscall 2015-04-29 10:46:32 -04:00
Tim Hockin a3d45fada8 Change flags to use dashes in help 2015-04-27 15:11:03 -07:00
Tim Hockin 6694eff020 Use pflags word separators to make - and _ equiv. 2015-04-27 15:10:52 -07:00
Robert Bailey 137c90738e Merge pull request #7289 from kazegusuri/logging
lower log level on recovering from panic
2015-04-24 09:22:46 -07:00
Masahiro Sano 7c371ee36e lower log level on recovering from panic 2015-04-24 22:09:14 +09:00
Michal Fojtik 1d496a030e Suppress 'use of closed network connection' error in iowatcher
Signed-off-by: Michal Fojtik <mfojtik@redhat.com>
2015-04-24 14:32:00 +02:00
Filip Grzadkowski 8b755c805b Break request metrics in apiserver by client. 2015-04-24 13:16:14 +02:00
Piotr Szczesniak 27daa29753 Merge pull request #7073 from lavalamp/fix4
move port splitting to common place; add to node resource location
2015-04-21 16:10:40 +02:00
Dawn Chen 5eda3fe9a9 Remove deprecated comment. 2015-04-20 17:12:36 -07:00
Daniel Smith 27ee6ea0de move port splitting to common place; add to node resource location 2015-04-20 14:31:44 -07:00
Kenjiro Nakayama 2e702b0c61 Replace hostname -f with uname -n 2015-04-20 14:16:21 -07:00
Daniel Smith a2953fdc7e Make endpoint controller use framework 2015-04-17 15:21:51 -07:00
Daniel Smith 24a8cceb5c add work queue; test coverage 100% 2015-04-17 15:21:47 -07:00
Cesar Wong a3f5dfd0e2 Move proxy html transport to utility package
Moves the proxy html transport that translates html links
from the proxy in apiserver to its own package under util.
2015-04-16 10:20:17 -04:00
Dawn Chen d912398d07 Merge pull request #6813 from vmarmol/in-container
Run Kubelet and Kube-proxy in resource-only containers.
2015-04-15 10:37:00 -07:00
Victor Marmol 8fc3d8f7b6 Adding utility for creating resource containers.
Allows creating and running in resource-only containers.
2015-04-14 10:29:05 -07:00
markturansky f599aecc6a Fix spelling typo in comments 2015-04-14 12:46:29 -04:00
Tim Hockin c989f30a00 make DeepHashObject use SpewKeys 2015-04-10 09:38:12 -07:00
Tim Hockin 4661cedf4a Merge pull request #5709 from gmarek/client5
Add validation for Endpoint
2015-04-09 15:13:45 -07:00
Andy Goldstein 00e24603cb Fix TestServeExecInContainerIdleTimeout flake
Remove creation of stream from TestServeExecInContainerIdleTimeout as
it's not necessary to very idle timeout.

Increase stream creation and ack timeouts to 30 seconds.

Fixes #5628
2015-04-09 16:44:56 -04:00
Prashanth Balasubramanian a7864aa230 Scheduler uses TTLStore for assumed pods 2015-04-08 15:01:04 -07:00
gmarek c20efb6bae Add validation for Endpoints 2015-04-08 20:12:07 +02:00
Derek Carr 6eb54e73e0 Merge pull request #5270 from lavalamp/fix7
Controller framework
2015-04-07 16:58:09 -04:00
Cesar Wong e64d7337b3 Move flushwriter from Kubelet server to a common util package
Exposes a Wrap function to wrap a given writer into a writer that
flushes with every write if the writer also implements the io.Flusher
interface.
2015-04-07 07:46:30 -04:00
Huamin Chen 7a82af31de add iscsi volume plugin
Signed-off-by: Huamin Chen <hchen@redhat.com>
2015-04-06 16:20:28 -04:00
Rohit Jnagal bfde7e0735 Merge pull request #6429 from lavalamp/fix
Oops, let's be careful about licensing.
2015-04-06 09:20:18 -07:00
Yu-Ju Hong dbd7b186a0 Merge pull request #6338 from smarterclayton/improve_config_error
Return a typed error for config validation, and make errors simple
2015-04-03 18:08:15 -07:00
Daniel Smith 78b8f9599f Fix another license problem. 2015-04-03 17:06:29 -07:00
Brian Grant 0d95883593 Merge pull request #6027 from ghodss/kube-patch
Implement Strategic Merge Patch in apiserver
2015-04-03 15:08:51 -07:00
Sam Ghods 2c977db1b3 Implement Strategic Merge Patch in apiserver 2015-04-03 11:51:02 -07:00
Piotr Szczesniak 8bc9f5fef7 Added rate limiting to pod deletion
Fixes #6228
2015-04-03 06:58:59 +02:00
Prashanth B 3fe4224b6c Merge pull request #6314 from bparees/tokenbucket
add a blocking accept method to RateLimiter
2015-04-02 16:01:17 -07:00
Vish Kannan ee98731a2a Merge pull request #6269 from ddysher/extend-mount
Abstract IsMountPoint and improve FakeMounter
2015-04-02 15:29:38 -07:00
Daniel Smith 3fe17b93cf Begin a controller framework. 2015-04-02 15:25:58 -07:00
Ben Parees 70be667cf8 add a blocking accept method to RateLimiter 2015-04-02 14:33:18 -04:00
Clayton Coleman 28b18f416f Tone down logging in network interface choosing 2015-04-02 01:39:59 -04:00
Deyuan Deng d62afa85ff Abstract ismountpoint and use platform mounter for NFS volume 2015-04-01 23:05:02 -04:00
Jordan Liggitt c797a91e36 Add client cert authentication 2015-04-01 13:42:26 -04:00
Brian Grant 3354cffbf0 Merge pull request #6182 from thockin/plural_services_20
Implement multi-port Services
2015-03-31 12:55:21 -07:00
Paul Morie 7628b37d78 Add control over container entrypoint 2015-03-31 12:32:03 -04:00
Tim Hockin 186818d787 WIP: Implement multi-port Services 2015-03-30 19:28:11 -07:00
Tim Hockin 9ed6c95e8e Reset hash state between runs. 2015-03-25 13:44:57 -07:00
Filip Grzadkowski 7085a0cb44 Merge pull request #5508 from fgrzadkowski/validate_ips
Validate Service.Spec.publicIPs to be a valid IP that is not a localhost
2015-03-25 12:11:29 +01:00
markturansky 2fd82f60f4 Move escape function to util and clarify name 2015-03-24 13:52:31 -04:00
Jordan Liggitt a75b501821 Improve ResourceLocation API, allow proxy to use authenticated transport 2015-03-24 11:11:34 -04:00
Filip Grzadkowski 6bc1e2ef40 Add validation error explanation for long annotations. 2015-03-24 11:01:26 +01:00
Filip Grzadkowski 24eb1a08f3 Validate Service.Spec.publicIPs to be a valid IP that is not a localhost 2015-03-24 10:48:46 +01:00
Clayton Coleman d19aac80ea Merge pull request #5533 from smarterclayton/burn_yaml_with_fire
Burn YAML with fire (kind of)
2015-03-23 13:45:52 -04:00
Clayton Coleman 65425f690c Move field errors to pkg/util/fielderrors
Allows pkg/api to take a reference to labels.Selector and fields.Selector
2015-03-22 17:43:34 -04:00
Satnam Singh ec77230386 Merge pull request #5416 from smarterclayton/use_utc_serialized_and_local_otherwise
Use UTC when marshalling times and Local when unmarshalling
2015-03-20 08:32:26 -07:00
Clayton Coleman 71abc99dbe Expose a ToJSON and runtime.YAMLDecoder helper
Enables clients to optionally handle YAML
2015-03-20 00:03:56 -04:00
Clayton Coleman 428d2263e5 Graceful deletion of resources
This commit adds support to core resources to enable deferred deletion
of resources.  Clients may optionally specify a time period after which
resources must be deleted via an object sent with their DELETE. That
object may define an optional grace period in seconds, or allow the
default "preferred" value for a resource to be used. Once the object
is marked as pending deletion, the deletionTimestamp field will be set
and an etcd TTL will be in place.

Clients should assume resources that have deletionTimestamp set will
be deleted at some point in the future.  Other changes will come later
to enable graceful deletion on a per resource basis.
2015-03-19 15:33:32 -04:00
Clayton Coleman d516a86633 Use UTC when marshalling times and Local when unmarshalling
Marshal to UTC and read into Local, which means clients automatically
show local time and stored values are always consistent.
2015-03-18 17:44:35 -04:00
gmarek a3b137ce8e Cleanup of validation.go 2015-03-18 08:59:35 +01:00
Tim Hockin 50c96789e7 Add an action log to FakeMounter.
# *** ERROR: *** docs are out of sync between cli and markdown
# run hack/run-gendocs.sh > docs/kubectl.md to regenerate

#
# Your commit will be aborted unless you regenerate docs.
    COMMIT_BLOCKED_ON_GENDOCS
2015-03-13 13:33:50 -07:00
Satnam Singh b5082b2904 Merge pull request #5397 from brendandburns/master
Fix tests on OS X by re-introducing the old choose host interface
2015-03-12 14:31:31 -07:00
Brendan Burns fab2b53ccf Fix tests on OS X by re-introducing the old choose host interface
function as a fall back.
2015-03-12 12:33:06 -07:00
Brendan Burns b53b2e1de0 Add and extend timeouts. 2015-03-11 14:12:46 -07:00
Tim Hockin 52298ab851 Merge pull request #4865 from sub-mod/proxier_go_change
use ChooseHostInterface in kube-proxy
2015-03-11 08:09:32 -07:00
Subin M b8c91e7344 use ChooseHostInterface in kube-proxy 2015-03-11 13:50:53 +05:30
Rohit Jnagal 8798b0ae14 Merge pull request #5158 from thockin/use_fuzz_no_custom
Use new gofuzz features
2015-03-09 10:13:46 -07:00
Clayton Coleman 0f87337667 Kubelet tests broken on Macs with uppercase names
Hostname behavior across operating systems is inconsistent (Macs can
have uppercase host names, so can some other systems).  In general,
always strings.ToLower(os.Hostname()).
2015-03-08 23:44:32 -04:00
Tim Hockin fd1e49ce2f Use new gofuzz features 2015-03-07 00:04:14 -08:00
Daniel Smith b0f49449e1 Merge pull request #4985 from thockin/gofuzz
Update gofuzz dep
2015-03-06 10:19:01 -08:00
Tim Hockin ca265c5705 Merge pull request #4898 from gmarek/client2
Loosen label and annotation validation and related tests
2015-03-06 09:14:24 -08:00
Paul Morie 17b51a93a3 Fix mount refactor nits 2015-03-06 11:46:07 -05:00
Tim Hockin 0b38282b9b Fuzz util.Time with no nsec because JSON 2015-03-06 08:21:10 -08:00
Tim Hockin b3304c49ad Use deep spew in serialization test & go obj diff 2015-03-06 08:21:10 -08:00
gmarek 26b7fbeedf apply comments 2015-03-06 13:21:40 +01:00
gmarek bb8a4f5ed3 apply comments 2015-03-06 08:23:22 +01:00
gmarek 726a5af075 Loosen label and annotation validation and related tests 2015-03-06 08:23:22 +01:00
Paul Morie 8ef04a8425 Factor mount utility code out gce_pd volume plugin 2015-03-05 13:49:32 -05:00
Prashanth Balasubramanian 1970c2d201 Retry resizing replication controllers in kubectl 2015-03-02 20:26:41 -08:00
Yu-Ju Hong 241df2d3be kubelet: record an event with a clear reason on host port conflict
Currently, kubelet silently ignores pods that caused host port conflict. This
commit surfaces the error by recording an event.

It also makes sure that kubelet iterates through the pods in the order of the
creation timestamp, which ensures that pods created later are ignored on
conflict.
2015-02-27 15:51:53 -08:00
Vish Kannan aaa4a354d4 Merge pull request #4735 from screeley44/v1beta3_enablement
#4544 - Fix inadvertent whitespace in v1beta3 enablement
2015-02-25 10:06:11 -08:00
Brian Grant 3f69112e02 Merge pull request #4766 from mikedanese/remove-util-merge
Remove pkg/util/merge and replace with evanphx/json-patch
2015-02-25 09:22:01 -08:00
Salvatore Dario Minonne 0186acc37c Extending label.Parse method to support exact match 2015-02-25 08:52:20 +01:00
Scott Creeley 40c03b057a Fix whitespace in v1beta3 enablement 2015-02-24 14:49:54 -05:00
Mike Danese 88e1ab3cbe replace pkg/util/merge with evanphx/json-patch 2015-02-23 20:55:30 -08:00
Andy Goldstein 44d41a0f1b Move golang code to third_party 2015-02-20 20:00:31 -05:00
Andy Goldstein 5bd0e9ab05 Add streaming command execution & port forwarding
Add streaming command execution & port forwarding via HTTP connection
upgrades (currently using SPDY).
2015-02-20 09:57:02 -05:00
Victor Marmol 2d1a8d0da0 Allow ApplyOomScoreAdj to specify what PID to adjust for. 2015-02-19 17:16:31 -08:00
Yu-Ju Hong 7379502cc9 Run gofmt for hash.go to fix formatting errors 2015-02-19 10:51:46 -08:00