diff --git a/_includes/footer.html b/_includes/footer.html index f98dde06b5..15dacb72e0 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -4,6 +4,7 @@ Get Started Documentation Blog + Partners Community Case Studies diff --git a/_includes/partner-script.js b/_includes/partner-script.js new file mode 100644 index 0000000000..79cbf6d513 --- /dev/null +++ b/_includes/partner-script.js @@ -0,0 +1,208 @@ +;(function () { + var partners = [ + { + type: 0, + name: 'CoreOS', + logo: 'core_os', + link: 'https://tectonic.com/', + blurb: 'Tectonic is the enterprise-ready Kubernetes product, by CoreOS. It adds key features to allow you to manage, update, and control clusters in production.' + }, + { + type: 0, + name: 'Deis', + logo: 'deis', + link: 'https://deis.com', + blurb: 'Deis the creators of Helm, Workflow, and Steward, helps developers and operators build, deploy, manage and scale their applications on top of Kubernetes.' + }, + { + type: 0, + name: 'Sysdig Cloud', + logo: 'sys_dig', + link: 'https://sysdig.com/blog/monitoring-kubernetes-with-sysdig-cloud/', + blurb: 'Container native monitoring with deep support for Kubernetes.' + }, + { + type: 0, + name: 'Puppet', + logo: 'puppet', + link: 'https://puppet.com/blog/managing-kubernetes-configuration-puppet', + blurb: 'The Puppet module for Kubernetes makes it easy to manage Pods, Replication Controllers, Services and more in Kubernetes, and to build domain-specific interfaces to one\'s Kubernetes configuration.' + }, + { + type: 0, + name: 'Citrix', + logo: 'citrix', + link: 'http://wercker.com/workflows/partners/kubernetes/', + blurb: 'Netscaler CPX gives app developers all the features they need to load balance their microservices and containerized apps with Kubernetes.' + }, + { + type: 0, + name: 'Wercker', + logo: 'wercker', + link: 'http://wercker.com/workflows/partners/kubernetes/', + blurb: 'Wercker automates your build, test and deploy pipelines for launching containers and triggering rolling updates on your Kubernetes cluster. ' + }, + { + type: 0, + name: 'Rancher', + logo: 'rancher', + link: 'http://rancher.com/kubernetes/', + blurb: 'Rancher is an open-source, production-ready container management platform that makes it easy to deploy and leverage Kubernetes in the enterprise.' + }, + { + type: 0, + name: 'Red Hat', + logo: 'redhat', + link: 'https://www.openshift.com/', + blurb: 'Leverage an enterprise Kubernetes platform to orchestrate complex, multi-container apps.' + }, + { + type: 0, + name: 'Intel', + logo: 'intel', + link: 'https://tectonic.com/press/intel-coreos-collaborate-on-openstack-with-kubernetes.html', + blurb: 'Powering the GIFEE (Google’s Infrastructure for Everyone Else), to run OpenStack deployments on Kubernetes.' + }, + { + type: 0, + name: 'ElasticKube', + logo: 'elastickube', + link: 'https://www.ctl.io/elastickube-kubernetes/', + blurb: 'Self-service container management for Kubernetes.' + }, + { + type: 0, + name: 'Platform9', + logo: 'platform9', + link: 'https://platform9.com/products/kubernetes/', + blurb: 'Platform9 is the open source-as-a-service company that takes all of the goodness of Kubernetes and delivers it as a managed service.' + }, + { + type: 0, + name: 'Datadog', + logo: 'datadog', + link: 'http://docs.datadoghq.com/integrations/kubernetes/', + blurb: 'Full-stack observability for dynamic infrastructure & applications. Includes precision alerting, analytics and deep Kubernetes integrations. ' + }, + { + type: 0, + name: 'AppFormix', + logo: 'appformix', + link: 'http://www.appformix.com/solutions/appformix-for-kubernetes/', + blurb: 'AppFormix is a cloud infrastructure performance optimization service helping enterprise operators streamline their cloud operations on any Kubernetes cloud. ' + }, + { + type: 0, + name: 'Crunchy', + logo: 'crunchy', + link: 'http://info.crunchydata.com/blog/advanced-crunchy-containers-for-postgresql', + blurb: 'Crunchy PostgreSQL Container Suite is a set of containers for managing PostgreSQL with DBA microservices leveraging Kubernetes and Helm.' + }, + { + type: 0, + name: 'Aqua', + logo: 'aqua', + link: 'http://blog.aquasec.com/security-best-practices-for-kubernetes-deployment', + blurb: 'Deep, automated security for your containers running on Kubernetes.' + }, + { + type: 0, + name: 'Canonical', + logo: 'canonical', + link: 'https://jujucharms.com/canonical-kubernetes/', + blurb: 'The Canonical Distribution of Kubernetes enables you to operate Kubernetes clusters on demand on any major public cloud and private infrastructure.' + }, + { + type: 0, + name: 'Distelli', + logo: 'distelli', + link: 'https://www.distelli.com/', + blurb: 'Pipelines from your source repositories to your Kubernetes Clusters on any cloud.' + }, + { + type: 0, + name: 'Nuage networks', + logo: 'nuagenetworks', + link: 'https://github.com/nuagenetworks/nuage-kubernetes', + blurb: 'The Nuage SDN platform provides policy-based networking between Kubernetes Pods and non-Kubernetes environments with visibility and security monitoring.' + }, + { + type: 1, + name: 'Apprenda', + logo: 'apprenda', + link: 'https://apprenda.com/kubernetes-support/', + blurb: 'Apprenda offers flexible and wide range of support plans for pure play Kubernetes on your choice of infrastructure, cloud provider and operating system.' + }, + { + type: 1, + name: 'Reactive Ops', + logo: 'reactive_ops', + link: 'https://www.reactiveops.com/kubernetes/', + blurb: 'ReactiveOps has written automation on best practices for infrastructure as code on GCP & AWS using Kubernetes, helping you build and maintain a world-class infrastructure at a fraction of the price of an internal hire.' + }, + { + type: 1, + name: 'Livewyer', + logo: 'livewyer', + link: 'https://livewyer.io/services/kubernetes-experts/', + blurb: 'Kubernetes experts that on-board applications and empower IT teams to get the most out of containerised technology.' + }, + { + type: 1, + name: 'Deis', + logo: 'deis', + link: 'https://deis.com/services/', + blurb: 'Deis provides professional services and 24x7 operational support for any Kubernetes cluster managed by our global cluster operations team.' + }, + { + type: 1, + name: 'Samsung SDS', + logo: 'samsung_sds', + link: 'http://www.samsungsdsa.com/cloud-infrastructure_kubernetes', + blurb: 'Samsung SDS’s Cloud Native Computing Team offers expert consulting across the range of technical aspects involved in building services targeted at a Kubernetes cluster.' + }, + { + type: 1, + name: 'Container Solutions', + logo: 'container_solutions', + link: 'http://container-solutions.com/resources/kubernetes/', + blurb: 'Container Solutions is a premium software consultancy that focuses on programmable infrastructure, offering our expertise in software development, strategy and operations to help you innovate at speed and scale.' + } + ] + + var isvContainer = document.getElementById('isvContainer') + var servContainer = document.getElementById('servContainer') + + var sorted = partners.sort(function (a, b) { + if (a.name > b.name) return 1 + if (a.name < b.name) return -1 + return 0 + }) + + sorted.forEach(function (obj) { + var box = document.createElement('div') + box.className = 'partner-box' + + var img = document.createElement('img') + img.src = '/images/square-logos/' + obj.logo + '.png' + + var div = document.createElement('div') + + var p = document.createElement('p') + p.textContent = obj.blurb + + var link = document.createElement('a') + link.href = obj.link + link.target = '_blank' + link.textContent = 'Learn more' + + div.appendChild(p) + div.appendChild(link) + + box.appendChild(img) + box.appendChild(div) + + var container = obj.type ? servContainer : isvContainer + container.appendChild(box) + }) +})(); \ No newline at end of file diff --git a/_includes/partner-style.css b/_includes/partner-style.css new file mode 100644 index 0000000000..a8cc125992 --- /dev/null +++ b/_includes/partner-style.css @@ -0,0 +1,94 @@ +h5 { + font-size: 18px; + line-height: 1.5em; + margin-bottom: 2em; +} + +#usersGrid a { + display: inline-block; + background-color: #f9f9f9; +} + +#isvContainer, #servContainer { + position: relative; + width: 100%; + display: flex; + justify-content: space-between; + flex-wrap: wrap; +} + +#isvContainer { + margin-bottom: 80px; +} + +.partner-box { + position: relative; + width: 47%; + max-width: 48%; + min-width: 48%; + margin-bottom: 20px; + padding: 20px; + flex: 1; + display: flex; + justify-content: space-between; + align-items: flex-start; +} + +.partner-box img { + background-color: #f9f9f9; +} + +.partner-box > div { + margin-left: 30px; +} + +.partner-box a { + color: #3576E3; +} + +@media screen and (max-width: 1024px) { + .partner-box { + flex-direction: column; + justify-content: flex-start; + } + + .partner-box > div { + margin: 20px 0 0; + } +} + +@media screen and (max-width: 568px) { + #isvContainer, #servContainer { + justify-content: center; + } + + .partner-box { + flex-direction: column; + justify-content: flex-start; + width: 100%; + max-width: 100%; + min-width: 100%; + } + + .partner-box > div { + margin: 20px 0 0; + } +} + +@media screen and (max-width: 568px) { + #isvContainer, #servContainer { + justify-content: center; + } + + .partner-box { + flex-direction: column; + justify-content: flex-start; + width: 100%; + max-width: 100%; + min-width: 100%; + } + + .partner-box > div { + margin: 20px 0 0; + } +} diff --git a/_sass/_desktop.sass b/_sass/_desktop.sass index 033e998ba0..9c02fbcf6c 100644 --- a/_sass/_desktop.sass +++ b/_sass/_desktop.sass @@ -164,10 +164,11 @@ $video-section-height: 550px margin-bottom: 20px a - width: 20% + width: 16.65% float: left font-size: 24px font-weight: 300 + white-space: nowrap .social padding: 0 30px diff --git a/_sass/_tablet.sass b/_sass/_tablet.sass index ce9bcd941d..15d5b496f4 100644 --- a/_sass/_tablet.sass +++ b/_sass/_tablet.sass @@ -222,8 +222,7 @@ $feature-box-div-width: 45% text-align: center a - font-size: 22px - width: auto + width: 30% padding: 0 20px .social diff --git a/community.html b/community.html index f47bff33e7..9ef63c1b66 100644 --- a/community.html +++ b/community.html @@ -10,8 +10,6 @@ title: Community

Community

- -
@@ -29,20 +27,6 @@ title: Community from AWS and Openstack to Big Data and Scalability, there’s a place for you to contribute and instructions for forming a new SIG if your special interest isn’t covered (yet).

-
-

Customers

-
- - - - - - - - - -
-

Events

@@ -50,34 +34,6 @@ title: Community frameborder="0" scrolling="no">
-
-

Partners

-

We are working with a broad group of partners who contribute to the kubernetes core codebase, making it stronger and richer, as well as help in growing the kubernetes ecosystem supporting - a sprectrum of compelmenting platforms, from open source solutions to market-leading technologies.

-
- - - - - - - - - - - - - - - - - - - - - -
-
diff --git a/docs/user-guide/networkpolicies.md b/docs/user-guide/networkpolicies.md index a45534ad96..d1fe76d7ba 100644 --- a/docs/user-guide/networkpolicies.md +++ b/docs/user-guide/networkpolicies.md @@ -44,9 +44,11 @@ metadata: To configure the annotation via `kubectl`: -```shell{% raw %} +```shell +{% raw %} kubectl annotate ns "net.beta.kubernetes.io/network-policy={\"ingress\": {\"isolation\": \"DefaultDeny\"}}" -{% endraw %}``` +{% endraw %} +``` See the [NetworkPolicy getting started guide](/docs/getting-started-guides/network-policy/walkthrough) for an example. diff --git a/docs/user-guide/production-pods.md b/docs/user-guide/production-pods.md index c345ada200..440ac4619a 100644 --- a/docs/user-guide/production-pods.md +++ b/docs/user-guide/production-pods.md @@ -226,7 +226,8 @@ Here is a toy example: The message is recorded along with the other state of the last (i.e., most recent) termination: -```shell{% raw %} +```shell +{% raw %} $ kubectl create -f ./pod-w-message.yaml pod "pod-w-message" created $ sleep 70 @@ -234,7 +235,8 @@ $ kubectl get pods/pod-w-message -o go-template="{{range .status.containerStatus Sleep expired $ kubectl get pods/pod-w-message -o go-template="{{range .status.containerStatuses}}{{.lastState.terminated.exitCode}}{{end}}" 0 -{% endraw %}``` +{% endraw %} +``` ## What's next? diff --git a/docs/user-guide/walkthrough/index.md b/docs/user-guide/walkthrough/index.md index 4cc23cb71e..4c095e1c05 100644 --- a/docs/user-guide/walkthrough/index.md +++ b/docs/user-guide/walkthrough/index.md @@ -59,12 +59,14 @@ On most providers, the pod IPs are not externally accessible. The easiest way to Provided the pod IP is accessible, you should be able to access its http endpoint with wget on port 80: -```shell{% raw %} +```shell +{% raw %} $ kubectl run busybox --image=busybox --restart=Never --tty -i --generator=run-pod/v1 --env "POD_IP=$(kubectl get pod nginx -o go-template='{{.status.podIP}}')" u@busybox$ wget -qO- http://$POD_IP # Run in the busybox container u@busybox$ exit # Exit the busybox container $ kubectl delete pod busybox # Clean up the pod we created with "kubectl run" -{% endraw %}``` +{% endraw %} +``` Delete the pod by name: diff --git a/docs/user-guide/walkthrough/k8s201.md b/docs/user-guide/walkthrough/k8s201.md index 2f1f62ad1f..782bfbe418 100644 --- a/docs/user-guide/walkthrough/k8s201.md +++ b/docs/user-guide/walkthrough/k8s201.md @@ -136,7 +136,8 @@ On most providers, the service IPs are not externally accessible. The easiest wa Provided the service IP is accessible, you should be able to access its http endpoint with wget on the exposed port: -```shell{% raw %} +```shell +{% raw %} $ export SERVICE_IP=$(kubectl get service nginx-service -o go-template='{{.spec.clusterIP}}') $ export SERVICE_PORT=$(kubectl get service nginx-service -o go-template='{{(index .spec.ports 0).port}}') $ echo "$SERVICE_IP:$SERVICE_PORT" @@ -144,7 +145,8 @@ $ kubectl run busybox --generator=run-pod/v1 --image=busybox --restart=Never -- u@busybox$ wget -qO- http://$SERVICE_IP:$SERVICE_PORT # Run in the busybox container u@busybox$ exit # Exit the busybox container $ kubectl delete pod busybox # Clean up the pod we created with "kubectl run" -{% endraw %}``` +{% endraw %} +``` To delete the service by name: diff --git a/images/community_logos/distelli_logo.png b/images/community_logos/distelli_logo.png new file mode 100644 index 0000000000..d31e1d4226 Binary files /dev/null and b/images/community_logos/distelli_logo.png differ diff --git a/images/square-logos/appformix.png b/images/square-logos/appformix.png new file mode 100644 index 0000000000..47ad7e9722 Binary files /dev/null and b/images/square-logos/appformix.png differ diff --git a/images/square-logos/apprenda.png b/images/square-logos/apprenda.png new file mode 100644 index 0000000000..f2e52068b1 Binary files /dev/null and b/images/square-logos/apprenda.png differ diff --git a/images/square-logos/aqua.png b/images/square-logos/aqua.png new file mode 100644 index 0000000000..ae480d582a Binary files /dev/null and b/images/square-logos/aqua.png differ diff --git a/images/square-logos/canonical.png b/images/square-logos/canonical.png new file mode 100644 index 0000000000..680b80cde8 Binary files /dev/null and b/images/square-logos/canonical.png differ diff --git a/images/square-logos/citrix.png b/images/square-logos/citrix.png new file mode 100644 index 0000000000..76a5682209 Binary files /dev/null and b/images/square-logos/citrix.png differ diff --git a/images/square-logos/container_solutions.png b/images/square-logos/container_solutions.png new file mode 100644 index 0000000000..a386cf9ab2 Binary files /dev/null and b/images/square-logos/container_solutions.png differ diff --git a/images/square-logos/core_os.png b/images/square-logos/core_os.png new file mode 100644 index 0000000000..395c14ac2d Binary files /dev/null and b/images/square-logos/core_os.png differ diff --git a/images/square-logos/crunchy.png b/images/square-logos/crunchy.png new file mode 100644 index 0000000000..5f1e631c00 Binary files /dev/null and b/images/square-logos/crunchy.png differ diff --git a/images/square-logos/datadog.png b/images/square-logos/datadog.png new file mode 100644 index 0000000000..82d6d11aaf Binary files /dev/null and b/images/square-logos/datadog.png differ diff --git a/images/square-logos/deis.png b/images/square-logos/deis.png new file mode 100644 index 0000000000..278b8a44e0 Binary files /dev/null and b/images/square-logos/deis.png differ diff --git a/images/square-logos/distelli.png b/images/square-logos/distelli.png new file mode 100644 index 0000000000..d31e1d4226 Binary files /dev/null and b/images/square-logos/distelli.png differ diff --git a/images/square-logos/elastickube.png b/images/square-logos/elastickube.png new file mode 100644 index 0000000000..957c55a8e6 Binary files /dev/null and b/images/square-logos/elastickube.png differ diff --git a/images/square-logos/intel.png b/images/square-logos/intel.png new file mode 100644 index 0000000000..0100964f55 Binary files /dev/null and b/images/square-logos/intel.png differ diff --git a/images/square-logos/livewyer.png b/images/square-logos/livewyer.png new file mode 100644 index 0000000000..e49b2d55c9 Binary files /dev/null and b/images/square-logos/livewyer.png differ diff --git a/images/square-logos/nuagenetworks.png b/images/square-logos/nuagenetworks.png new file mode 100644 index 0000000000..c84a1414a7 Binary files /dev/null and b/images/square-logos/nuagenetworks.png differ diff --git a/images/square-logos/platform9.png b/images/square-logos/platform9.png new file mode 100644 index 0000000000..8a3bc5a634 Binary files /dev/null and b/images/square-logos/platform9.png differ diff --git a/images/square-logos/puppet.png b/images/square-logos/puppet.png new file mode 100644 index 0000000000..b07f038315 Binary files /dev/null and b/images/square-logos/puppet.png differ diff --git a/images/square-logos/rancher.png b/images/square-logos/rancher.png new file mode 100644 index 0000000000..585c0aadf6 Binary files /dev/null and b/images/square-logos/rancher.png differ diff --git a/images/square-logos/reactive_ops.png b/images/square-logos/reactive_ops.png new file mode 100644 index 0000000000..5d699e0194 Binary files /dev/null and b/images/square-logos/reactive_ops.png differ diff --git a/images/square-logos/redhat.png b/images/square-logos/redhat.png new file mode 100644 index 0000000000..776563d7c4 Binary files /dev/null and b/images/square-logos/redhat.png differ diff --git a/images/square-logos/samsung_sds.png b/images/square-logos/samsung_sds.png new file mode 100644 index 0000000000..2afbc1b5a0 Binary files /dev/null and b/images/square-logos/samsung_sds.png differ diff --git a/images/square-logos/sys_dig.png b/images/square-logos/sys_dig.png new file mode 100644 index 0000000000..c49f58a670 Binary files /dev/null and b/images/square-logos/sys_dig.png differ diff --git a/images/square-logos/wercker.png b/images/square-logos/wercker.png new file mode 100644 index 0000000000..d8434fed90 Binary files /dev/null and b/images/square-logos/wercker.png differ diff --git a/partners/index.html b/partners/index.html index c47f0998a7..40dd076b30 100644 --- a/partners/index.html +++ b/partners/index.html @@ -14,47 +14,24 @@ title: Partners
-
We are working with a broad group of partners who contribute to the Kubernetes core codebase, making it stronger and richer, creating a vibrant Kubernetes ecosystem supporting a spectrum of complementing platforms, from open source solutions to market-leading technologies.
+
We are working with a broad group of partners who contribute to the Kubernetes core codebase, making it stronger and richer. There partners create a vibrant Kubernetes ecosystem supporting a spectrum of complementing platforms, from open source solutions to market-leading technologies.

ISV Partners

-
- - - - - - - - - - - - - - - - - - - - -
+
+

Services Partners

+
- {% include footer.html %} {% include case-study-styles.html %} + + + +