| #!/usr/bin/env bash |
| |
| # Copyright 2017 The Kubernetes Authors. |
| # |
| # 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. |
| |
| # This script contains the helper functions that each provider hosting |
| # Kubermark must implement to use test/kubemark/start-kubemark.sh and |
| # test/kubemark/stop-kubemark.sh scripts. |
| |
| # This function should authenticate docker to be able to read/write to |
| # the right container registry (needed for pushing kubemark image). |
| function authenticate-docker { |
| echo "Configuring registry authentication" 1>&2 |
| } |
| |
| # This function should get master IP address (creating one if needed). |
| # ENV vars that should be defined by the end of this function: |
| # - MASTER_IP |
| # |
| # Recommended for this function to include retrying logic in case of failures. |
| function get-or-create-master-ip { |
| echo "MASTER_IP: $MASTER_IP" 1>&2 |
| } |
| |
| # This function should create a machine instance for the master along |
| # with any/all of the following resources: |
| # - Attach a PD to the master (optionally 1 more for storing events) |
| # - A public IP address for the master ($MASTER_IP) |
| # - A network firewall rule allowing all TCP traffic on port 443 in master |
| # Note: This step is compulsory in order for kubemark to work |
| # |
| # ENV vars that should be defined by the end of this function: |
| # - MASTER_NAME |
| # |
| # Recommended for this function to include retrying logic for the above |
| # operations in case of failures. |
| function create-master-instance-with-resources { |
| echo "MASTER_IP: $MASTER_IP" 1>&2 |
| echo "MASTER_NAME: $MASTER_NAME" 1>&2 |
| } |
| |
| # This function should execute the command('$1') on the master machine |
| # (possibly through SSH), retrying in case of failure. The allowed number of |
| # retries would be '$2' (if not provided, default to single try). |
| function execute-cmd-on-master-with-retries() { |
| echo "Executing command on the master" 1>&2 |
| } |
| |
| # This function should act as an scp for the kubemark cluster, which copies |
| # the files given by the first n-1 arguments to the remote location given |
| # by the n^th argument. |
| # |
| # Recommended for this function to include retrying logic in case of failures. |
| function copy-files() { |
| echo "Copying files" 1>&2 |
| } |
| |
| # This function should delete the master instance along with all the |
| # resources that have been allocated inside the function |
| # 'create-master-instance-with-resources' above. |
| # |
| # Recommended for this function to include retrying logic in case of failures. |
| function delete-master-instance-and-resources { |
| echo "Deleting master instance and its allocated resources" 1>&2 |
| } |