v1.3.0-rc1
Pre-releaseThis is release candidate 1 of OpenShift Origin 1.3.0.
Backwards Compatibility
- HAProxy router template format has changed
- As part of the expanded features added to the HAProxy router in 1.3, a configuration file format change was necessary to the internal structure used by the router config template (the
haproxy.config.template
) file. Instructions for adapting to the new format are located here
- As part of the expanded features added to the HAProxy router in 1.3, a configuration file format change was necessary to the internal structure used by the router config template (the
- Jenkins auto-deployment has been disabled - see #10260 for more
API Changes
- Networking
- Many of the network API objects have much stricter validation. #10466
- Routes
- All backends in a route may be set to have zero weight, which means no traffic should be sent to that backend. #10428
Component updates
- Updated to Kubernetes 1.3.5 + patches
- 32000: Update node status instead of node in kubelet #10790
- 31730: Fixes for attach-detach controller enablement on existing nodes #10748
- 30690: Don't bind pre-bound pvc & pv if size request not satisfied #10522
- 31627: make deep copy of quota objects before mutations #10704
- 31396: Fixed integer overflow bug in rate limiter #10646
- 31047: Close websocket stream when client closes #10550
- 25308: fix rollout nil panic issue #10543
- 29093: Fix panic race in scheduler cache from 28886 #10518
- 30839: queueActionLocked requires write lock #10504
- 30624: Node controller deletePod return true if there are pods pending deletion #10503
- 30731: Always return command output for exec probes and kubelet RunInContainer #10494
- 30796: Quota usage checking ignores unrelated resources #10493
- 28234: Make sure --record=false is acknowledged when passed to commands #10486
- 30736: Close websocket watch when client closes #10475
- 29639:: Fix default resource limits (node allocatable) for downward api volumes and env vars #10467
- 27541: Attach init container #10427
- 30510: Endpoint controller logs errors during behavior #10415
- 30626: prevent RC hotloop on denied pods #10414
- 30533: Validate involvedObject.Namespace matches event.Namespace #10392
- 30313: remove duplicate errors from aggregate error outputs #10317
- 29212: hpa: ignore scale targets whose replica count is 0 #10305
- 29982: Fix PVC.Status.Capacity and AccessModes after binding #10268
- 30162: return err on
oc run --image
with invalid value #10250 - 31446: fix delay establishing log streaming connection #10617
- 31353: fix duplicate validation/field/errors #10613
- Additional bulk picks #10247, #10385, #10541
- Updated Docker distribution
- Fix pushing to GCS storage #10640
Features
v1.3.0-rc1 (2016-08-07)
Full Changelog
Add setting and viewing route weights from the CLI
The A/B route balancing feature now has a CLI command to manage it oc set route-backends
and route weights show up in the oc get
and oc describe
commands for the route.
Routes may have one or more optional backend services with weights controlling how much traffic flows to each service. Traffic is assigned proportional to the combined weights
of each backend. A weight of zero means that the backend will receive no traffic. If all weights are zero the route will not send traffic to any backends.
You can bulk set route backends by specifying their name and weight:
$ oc set route-backends myroute prod=99 canary=1
Which will send 99% of traffic to the prod
service and 1% to the canary
service. If the service does not exist no traffic will be sent. You can keep the service listed as
a backend but not send traffic to it by specifying weight 0:
$ oc set route-backends myroute prod=1 canary=0
See the help for more advanced incremental adjustments (--adjust canary=+10%
).
- Add CLI support for routes with multiple backends #10551.
Support bare-metal, highly available IPs for services
For users deploying onto bare metal without a cloud provider, access to highly available TCP load balancing can be difficult. OpenShift 1.3 extends the supported ip-failover
router HA solution to also enable HA Kube services with failover. Administrators would configure HA router nodes and then ensure that a block of IPs is routed to those nodes
in the IP failover configuration. That block would then be configured in the OpenShift master-config.yaml
:
networkConfig:
ingressIPNetworkCIDR: 172.46.0.0/16
This is the default behavior, and can be disabled by setting the value equal to 0.0.0.0/32
. When a service of type=LoadBalancer
is created, a new IP would be assigned to the
service and traffic would flow to that service. Note that running with a cloud provider disables this feature since the providers native service load balancer is used.
Image Policy API
Image policy allows you to manage which images are allowed to run on the cluster and perform resolution of image tags to image digests on demand (to lock the executed version).
Policy allows:
- Block images outside of the integrated registry from being used in pods
- Require the presence of an annotation on the underlying image (not settable by end users) to run the image
- Allow integrators to perform security scans of images and then block the image from being executed on the platform.
The default configuration will block images that are annotated in the internal registry - if the annotation images.openshift.io/deny-execution
is set on an image referenced
by a pod to true
, OpenShift will prevent that image from being run. This can be used by an external scanner to block certain images from being used.
See the image policy documentation for more on configuring policy.
- Add image policy enforcement #8995
Build integrations with the cluster more easily
The new oc observe
command is an experimental tool for reacting to changes in your Kubernetes cluster and building scripted interactions. It allows you to easily
get notified of changes to a particular resource type (like services, deployments, namespaces, persistent volumes) and invoke a command.
For example, if you want to send an email to your admin every time a node stops being reachable, create a script that takes
$ cat mail.sh
#!/bin/sh
if [[ $2 != 'False' ]]; then
touch "/tmp/ready/$1"
exit 0
fi
if [[ -f "/tmp/ready/$1" ]]; then
echo mail -s "$1 went DOWN!" [email protected] "We're down at $(datetime)"
fi
rm "/tmp/ready/$1"
$ oc observe node -a '{{ range .status.conditions }}{{ if eq .type "Ready" }}{{ .status }}{{ end }}{{ end }}' --output gotemplate -- ./mail.sh
Whenever a node transitions from having condition Ready
with status True
to status False
, an email will be sent to your admin. See the oc observe
help for
more suggestions and explanation of how observe can help you build simple integrations.
You can get observe as a Docker image via docker pull openshift/observe:latest
- the oc observe
command is the entrypoint and you can bind mount a kubeconfig file
to /root/.kube/config
.
- Observe command #4196
Improve the OAuth Grant page
OpenShift embeds a full featured OAuth server for managing access to cluster resources. The OAuth authorization grant page has been improved to describe the scopes being
requested, the impact those scopes might have, and to warn users of any potential security risks. In addition, the grant page now allows the user to select which scopes
to grant.
- Improve OAuth Grant page and allow partial scope approval #10321
Other Features
- project: Respect scope rules in list/watch projects #10252
- cli: Improve
oc describe imagestream
#10405
Bugs
- admin: Add a command to separate projects when multi-tenant SDN is on -
oadm pod-network isolate-projects
#10365 - admin: Ignore negative value of grace-period passed to
oadm manage-node
#10350 - admin: Recognize gzipped empty layer when marking parents in oadm top images #10293
- admin: Return directly if no pods found when evacuating #10447
- bootstrap: Better support containerization on some Docker platforms in
oc cluster up
#10571 - builds: Avoid temporary delays in processing builds due to improper use of cache code #10581
- builds: Avoid using bsdtar for extraction during build #10364
- builds: Commit information not being properly output into build logs #10515
- builds: Don't perform pod deletion management for pipeline builds #10370
- builds: Ensure temporary files are closed if Docker 'DownloadFromContainer' fails #10325
- builds: Show namespace for custom strategy bc #10340
- builds: Validate CustomStrategy early #10480
- cli: Add
oc describe
help suggestion to cmds with--container
option #10469 - cli: Add a line break when no events in describe #10653
- cli: Add new-app support for detecting .net apps #10463
- cli: Allow
--raw URL
to retrieve authenticated URLs from a server withoc get
#10542 - cli: Avoid failures during scaling by fetching objects up front #10684
- cli: Better describe
oc tag -d
#10597 - cli: Deprecate --list option from
volumes
cmd #10457 - cli: Display an error when git is not available and --from-repo is requested in
oc start-build
#10397 - cli: Fix
oc extract
usage message for the--keys
flag #10614 - cli: Fix oc project|projects when in cluster config #10521
- cli: Improve
oc set env
key-value pair matching for environment variables #10619 - cli: Improving circular dependency checking for new-build #10067
- cli: New app example improvements #10534
- cli: Project labels should be visible from
oc get
#10329 - cli: Remain in the current project at login if possible #10378
- cli: Return error in
oc set env RESOURCE
when no env args are provided #10485 - cli: Show restart count warnings only for latest deployment #10440
- cli: Suggest use of
oc get bc
onoc start-build
error output #10720 - cli: Support init containers in 'oc debug' #10578
- cli: Tagging images across namespaces with
oc tag
was importing from the wrong location #10510 - cli:
oc extract
should default to current directory #10468 - cli: oc should not fail negotiating API versions against Kubernetes #10824
- deploy: Don't reprocess configs on stream updates yet #10744
- deploy: Emit event when cancelling a deployment #10590
- deploy: React to image stream changes more quickly during deployment processing #10456
- deploy: Retry conflicts when updating RC faster #10507
- deploy: Some image change triggers were not being matched on deployments #10444
- deploy: Wait for deployer pod to be running before getting logs #10560
- deploy: remove top level generator pkg #10502
- examples: Fix pre-deploy hook args on cakephp example #10572
- gitserver: Fix gitserver build config search #10576
- idling: Add previous-scale annotation for idled resources #10421
- idling: Clarify idle error and usage output #10492
- idling: Don't health-check idled services #10420
- idling: Ensure only endpoints are specified in
oc idle
#10335 - idling: Handle deleted services correctly without erroring out #10648
- images: Make import image more efficient #10244
- images: Sometimes tags are not updated when running
oc tag
to referenced tags #10708 - ipfailover: Fix range expansion on VRRP addresses #10498
- ipfailover: Stop using node selector as ipfailover label #10388
- jenkins: Add specific roles and permissions for access to the Jenkins console #10649
- jenkins: Fix autoprovision enabled field name #10612
- jenkins: Increase readiness timeout #10593
- network: Allow startup to continue even if nodes don't have EgressNetworkPolicy list permission #10358
- network: Clear kubelet-created initial NetworkUnavailable condition on GCE #10545
- network: Disabling idling should not turn off the service proxy #10667
- network: Periodically sync k8s iptables rules #10465
- network: Re-setup SDN on startup if ClusterNetworkCIDR changes #10569
- network: Regenerate proxy iptables rules on EgressNetworkPolicy change #10652
- network: Revert SDN automatic mode detection #10751
- network: SDN plugin name names were missed #10432
- policy: Allow registry-admin and registry-editor to create serviceaccounts #10443
- policy: Block setting ownerReferences and finalizers #10464
- policy: Reconcile non-resource-urls #10785
- project: Clean up requested project if there are errors creating template items #10577
- quota: Properly enforce image stream counts #10517
- registry: Handle older configuration files without erroring out on upgrade #10673
- registry: Login via token to the registry should use HTTP header info for redirection #10418
- registry: Properly reuse service clusterIP in
oadm registry
#10496 - registry: Properly serve the manifest configuration blob for images #10805
- registry:
servingCert
was not handled properly inoadm registry
#10442 - router: Allowed 'true' for the DROP_SYN_DURING_RESTART variable #10514
- router: Enable secure cookie for secure-only edge routes #10573
- router: Extend DDOS protection to reencrypt and passthrough routes #10513
- router: Properly remove duplicates from routers #10747
- router: Set X-Forwarded-For headers for reencrypt routes. #10318
- router: Update the default certificate and allow for better replacement #10345
- router: Use annotations for tuning route healthcheck intervals #10342
- rpm: Build RPM using the build scripts #10398
- rpm: Make build spec file platform independent #10695
- s2i: Increase default timeout for operations against Docker #10675
- server: Add quota controller metrics #10307
- server: Call out config validation warnings more clearly #10461
- volume: Recycler pod was failing to recycle processes #10454
- Lots of code cleanup PRs, thanks to all who helped! #10591, #10589, #10583, #10557, #10547, #10446, #10433, #10409, #10408, #10399, #10372
Release SHA256 Checksums
a9be9890fbfa491bb05fa659f6f98685a29f41eb5fd6a7c74d0bf959c7eb6502 openshift-origin-client-tools-v1.3.0-rc1-ac0bb1bf6a629e0c262f04636b8cf2916b16098c-linux-32bit.tar.gz
bfd20d7332e38db6f52fb941c339206aafb8dc259715ced97bdd32a693637d94 openshift-origin-client-tools-v1.3.0-rc1-ac0bb1bf6a629e0c262f04636b8cf2916b16098c-linux-64bit.tar.gz
257bff09d85a6eb440368f1cb23f689d6fd0131303697797eb737b18d3bbafa5 openshift-origin-client-tools-v1.3.0-rc1-ac0bb1bf6a629e0c262f04636b8cf2916b16098c-mac.zip
45f6f9060d1f1813a8aab2e6e2af40fb5dc7d2afe537f2d640636b12d9c42d3f openshift-origin-client-tools-v1.3.0-rc1-ac0bb1bf6a629e0c262f04636b8cf2916b16098c-windows.zip
e7878e14b9160bf108a951b5f635958fed9244de085eba40fd68f51e7210e918 openshift-origin-server-v1.3.0-rc1-ac0bb1bf6a629e0c262f04636b8cf2916b16098c-linux-64bit.tar.gz