forked from kubernetes/kubernetes
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Initial kube-up support for VMware's Photon Controller
This is for: kubernetes#24121 Photon Controller is an open-source cloud management platform. More information is available at: http://vmware.github.io/photon-controller/ This commit provides initial support for Photon Controller. The following features are tested and working: - kube-up and kube-down - Basic pod and service management - Networking within the Kubernetes cluster - UI and DNS addons It has been tested with a Kubernetes cluster of up to 10 nodes. Further work on scaling is planned for the near future. Internally we have implemented continuous integration testing and will run it multiple times per day against the Kubernetes master branch once this is integrated so we can quickly react to problems. A few things have not yet been implemented, but are planned: - Support for kube-push - Support for test-build-release, test-setup, test-teardown Assuming this is accepted for inclusion, we will write documentation for the kubernetes.io site. We have included a script to help users configure Photon Controller for use with Kubernetes. While not required, it will help some users get started more quickly. It will be documented. We are aware of the kube-deploy efforts and will track them and support them as appropriate.
- Loading branch information
Alain Roy
committed
Apr 25, 2016
1 parent
82458d8
commit fa9d79d
Showing
22 changed files
with
1,829 additions
and
15 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,72 @@ | ||
#!/bin/bash | ||
|
||
# Copyright 2014 The Kubernetes Authors All rights reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
########################################################## | ||
# | ||
# These parameters describe objects we are using from | ||
# Photon Controller. They are all assumed to be pre-existing. | ||
# | ||
# Note: if you want help in creating them, you can use | ||
# the setup-prereq.sh script, which will create any of these | ||
# that do not already exist. | ||
# | ||
########################################################## | ||
|
||
# Pre-created tenant for Kubernetes to use | ||
PHOTON_TENANT=kube-tenant | ||
|
||
# Pre-created project in PHOTON_TENANT for Kubernetes to use | ||
PHOTON_PROJECT=kube-project | ||
|
||
# Pre-created VM flavor for Kubernetes master to use | ||
# Can be same as master | ||
# We recommend at least 1GB of memory | ||
PHOTON_MASTER_FLAVOR=kube-vm | ||
|
||
# Pre-created VM flavor for Kubernetes node to use | ||
# Can be same as master | ||
# We recommend at least 2GB of memory | ||
PHOTON_NODE_FLAVOR=kube-vm | ||
|
||
# Pre-created disk flavor for Kubernetes to use | ||
PHOTON_DISK_FLAVOR=kube-disk | ||
|
||
# Pre-created Debian 8 image with kube user uploaded to Photon Controller | ||
# Note: While Photon Controller allows multiple images to have the same | ||
# name, we assume that there is exactly one image with this name. | ||
PHOTON_IMAGE=kube | ||
|
||
########################################################## | ||
# | ||
# Parameters just for the setup-prereq.sh script: not used | ||
# elsewhere. If you create the above objects by hand, you | ||
# do not need to edit these. | ||
# | ||
# Note that setup-prereq.sh also creates the objects | ||
# above. | ||
# | ||
########################################################## | ||
|
||
# The specifications for the master and node flavors | ||
SETUP_MASTER_FLAVOR_SPEC="vm 1 COUNT, vm.cpu 1 COUNT, vm.memory 2 GB" | ||
SETUP_NODE_FLAVOR_SPEC=${SETUP_MASTER_FLAVOR_SPEC} | ||
|
||
# The specification for the ephemeral disk flavor. | ||
SETUP_DISK_FLAVOR_SPEC="ephemeral-disk 1 COUNT" | ||
|
||
# The specification for the tenant resource ticket and the project resources | ||
SETUP_TICKET_SPEC="vm.memory 1000 GB, vm 1000 COUNT" | ||
SETUP_PROJECT_SPEC="${SETUP_TICKET_SPEC}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
#!/bin/bash | ||
|
||
# Copyright 2014 The Kubernetes Authors All rights reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
########################################################## | ||
# | ||
# Common parameters for Kubernetes | ||
# | ||
########################################################## | ||
|
||
# Default number of nodes to make. You can change this as needed | ||
NUM_NODES=3 | ||
|
||
# Range of IPs assigned to pods | ||
NODE_IP_RANGES="10.244.0.0/16" | ||
|
||
# IPs used by Kubernetes master | ||
MASTER_IP_RANGE="${MASTER_IP_RANGE:-10.246.0.0/24}" | ||
|
||
# Range of IPs assigned by Kubernetes to services | ||
SERVICE_CLUSTER_IP_RANGE="10.244.240.0/20" | ||
|
||
########################################################## | ||
# | ||
# Advanced parameters for Kubernetes | ||
# | ||
########################################################## | ||
|
||
# The instance prefix is the beginning of the name given to each VM we create | ||
# If this is changed, you can have multiple kubernetes clusters per project | ||
# Note that even if you don't change it, each tenant/project can have its own | ||
# Kubernetes cluster | ||
INSTANCE_PREFIX=kubernetes | ||
|
||
# Name of the user used to configure the VM | ||
# We use cloud-init to create the user | ||
VM_USER=kube | ||
|
||
# SSH options for how we connect to the Kubernetes VMs | ||
# We set the user known hosts file to /dev/null because we are connecting to new VMs. | ||
# When working in an environment where there is a lot of VM churn, VM IP addresses | ||
# will be reused, and the ssh keys will be different. This prevents us from seeing error | ||
# due to this, and it will not save the SSH key to the known_hosts file, so users will | ||
# still have standard ssh security checks. | ||
SSH_OPTS="-oStrictHostKeyChecking=no -oUserKnownHostsFile=/dev/null -oLogLevel=ERROR" | ||
|
||
# Optional: Enable node logging. | ||
# Note: currently untested | ||
ENABLE_NODE_LOGGING=false | ||
LOGGING_DESTINATION=elasticsearch | ||
|
||
# Optional: When set to true, Elasticsearch and Kibana will be setup | ||
# Note: currently untested | ||
ENABLE_CLUSTER_LOGGING=false | ||
ELASTICSEARCH_LOGGING_REPLICAS=1 | ||
|
||
# Optional: Cluster monitoring to setup as part of the cluster bring up: | ||
# none - No cluster monitoring setup | ||
# influxdb - Heapster, InfluxDB, and Grafana | ||
# google - Heapster, Google Cloud Monitoring, and Google Cloud Logging | ||
# Note: currently untested | ||
ENABLE_CLUSTER_MONITORING="${KUBE_ENABLE_CLUSTER_MONITORING:-influxdb}" | ||
|
||
# Optional: Install cluster DNS. | ||
ENABLE_CLUSTER_DNS="${KUBE_ENABLE_CLUSTER_DNS:-true}" | ||
DNS_SERVER_IP="10.244.240.240" | ||
DNS_DOMAIN="cluster.local" | ||
DNS_REPLICAS=1 | ||
|
||
# Optional: Install Kubernetes UI | ||
ENABLE_CLUSTER_UI=true | ||
|
||
# We need to configure subject alternate names (SANs) for the master's certificate | ||
# we generate. While users will connect via the external IP, pods (like the UI) | ||
# will connect via the cluster IP, from the SERVICE_CLUSTER_IP_RANGE. | ||
# In addition to the extra SANS here, we'll also add one for for the service IP. | ||
MASTER_EXTRA_SANS="DNS:kubernetes,DNS:kubernetes.default,DNS:kubernetes.default.svc,DNS:kubernetes.default.svc.${DNS_DOMAIN}" | ||
|
||
# Optional: if set to true, kube-up will configure the cluster to run e2e tests. | ||
E2E_STORAGE_TEST_ENVIRONMENT=${KUBE_E2E_STORAGE_TEST_ENVIRONMENT:-false} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#!/bin/bash | ||
|
||
# Copyright 2014 The Kubernetes Authors All rights reserved. | ||
# | ||
# Licensed under the Apache License, Version 2.0 (the "License"); | ||
# you may not use this file except in compliance with the License. | ||
# You may obtain a copy of the License at | ||
# | ||
# http://www.apache.org/licenses/LICENSE-2.0 | ||
# | ||
# Unless required by applicable law or agreed to in writing, software | ||
# distributed under the License is distributed on an "AS IS" BASIS, | ||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
# See the License for the specific language governing permissions and | ||
# limitations under the License. | ||
|
||
NUM_NODES=2 | ||
NODE_IP_RANGES="10.244.0.0/16" | ||
MASTER_IP_RANGE="${MASTER_IP_RANGE:-10.246.0.0/24}" | ||
SERVICE_CLUSTER_IP_RANGE="10.244.240.0/20" |
Oops, something went wrong.