diff options
author | Brenton Leanhardt <bleanhar@redhat.com> | 2015-12-19 18:46:48 -0500 |
---|---|---|
committer | Brenton Leanhardt <bleanhar@redhat.com> | 2015-12-19 18:46:48 -0500 |
commit | c473a90f4abe887a1a94819e2feac8dcd29dc839 (patch) | |
tree | 9c736326cf4b76e119174d3374c0c63f62d72176 /roles/openshift_cli | |
parent | fabc75ca725c6a561bc5e70a63c4dbb2d37bc396 (diff) | |
parent | 48778f29f265380a3e6fa2e882621ebc3781736b (diff) | |
download | openshift-c473a90f4abe887a1a94819e2feac8dcd29dc839.tar.gz openshift-c473a90f4abe887a1a94819e2feac8dcd29dc839.tar.bz2 openshift-c473a90f4abe887a1a94819e2feac8dcd29dc839.tar.xz openshift-c473a90f4abe887a1a94819e2feac8dcd29dc839.zip |
Merge pull request #808 from sdodson/containers
Containerized install with SDN support
Diffstat (limited to 'roles/openshift_cli')
-rw-r--r-- | roles/openshift_cli/meta/main.yml | 16 | ||||
-rw-r--r-- | roles/openshift_cli/tasks/main.yml | 48 | ||||
-rw-r--r-- | roles/openshift_cli/templates/openshift.j2 | 16 |
3 files changed, 80 insertions, 0 deletions
diff --git a/roles/openshift_cli/meta/main.yml b/roles/openshift_cli/meta/main.yml new file mode 100644 index 000000000..1e8f8b719 --- /dev/null +++ b/roles/openshift_cli/meta/main.yml @@ -0,0 +1,16 @@ +--- +galaxy_info: + author: Jason DeTiberus + description: OpenShift Docker + company: Red Hat, Inc. + license: Apache License, Version 2.0 + min_ansible_version: 1.9 + platforms: + - name: EL + versions: + - 7 + categories: + - cloud +dependencies: +- { role: openshift_common } +- { role: docker } diff --git a/roles/openshift_cli/tasks/main.yml b/roles/openshift_cli/tasks/main.yml new file mode 100644 index 000000000..8d7686ffd --- /dev/null +++ b/roles/openshift_cli/tasks/main.yml @@ -0,0 +1,48 @@ +--- +- openshift_facts: + role: common + local_facts: + deployment_type: "{{ openshift_deployment_type }}" + +- name: Install clients + yum: pkg={{ openshift.common.service_type }}-clients state=installed + when: not openshift.common.is_containerized | bool + +- name: List Docker images + command: > + docker images + register: docker_images + +- name: Pull CLI Image + command: > + docker pull {{ openshift.common.cli_image }} + when: openshift.common.is_containerized | bool and openshift.common.cli_image not in docker_images.stdout + +- name: Wait for CLI image + command: > + docker images + register: docker_images + until: openshift.common.cli_image in docker_images.stdout + retries: 30 + delay: 10 + changed_when: false + when: openshift.common.is_containerized | bool + + +- name: Create /usr/local/bin/openshift cli wrapper + template: + src: openshift.j2 + dest: /usr/local/bin/openshift + mode: 0755 + when: openshift.common.is_containerized | bool + +- name: Create client symlinks + file: + path: "{{ item }}" + state: link + src: /usr/local/bin/openshift + with_items: + - /usr/local/bin/oadm + - /usr/local/bin/oc + - /usr/local/bin/kubectl + when: openshift.common.is_containerized | bool
\ No newline at end of file diff --git a/roles/openshift_cli/templates/openshift.j2 b/roles/openshift_cli/templates/openshift.j2 new file mode 100644 index 000000000..cade4d1a7 --- /dev/null +++ b/roles/openshift_cli/templates/openshift.j2 @@ -0,0 +1,16 @@ +#!/bin/bash +if [ ! -d ~/.kube ]; then + mkdir -m 0700 ~/.kube +fi +cmd=`basename $0` +user=`id -u` +group=`id -g` + +# docker can only split stderr and stdin when run without -t +# https://github.com/docker/docker/issues/725 +# ansible checks various streams DO NOT CROSS THE STREAMS +if [ -z $TERM ]; then + $t = '-it' +fi + +docker run ${t} -a STDERR -a STDOUT -a STDIN --privileged --net=host --user=${user}:${group} -v ~/.kube:/root/.kube -v /tmp:/tmp -v {{ openshift.common.config_base}}:{{ openshift.common.config_base }} -e KUBECONFIG=/root/.kube/config --entrypoint ${cmd} --rm {{ openshift.common.cli_image }} ${@}
\ No newline at end of file |