Sen descrición

Tomas Sedovic de98c9cfb5 Add the OpenStack master scaleup playbook %!s(int64=6) %!d(string=hai) anos
.github 81edec6de1 Remove atomic-openshift-utils %!s(int64=7) %!d(string=hai) anos
.tito 3e9b1f478b Automatic commit of package [openshift-ansible] release [3.11.0-0.1.0]. %!s(int64=6) %!d(string=hai) anos
ansible-profile 1bab4edd3d Add README file to link to the upstream ansible-profile %!s(int64=9) %!d(string=hai) anos
docs f43149ca12 Fix the docs, add additional .parr file description %!s(int64=6) %!d(string=hai) anos
examples f7db81c1d1 Fully qualify all openshift/origin and openshift3/ose images %!s(int64=6) %!d(string=hai) anos
hack f7db81c1d1 Fully qualify all openshift/origin and openshift3/ose images %!s(int64=6) %!d(string=hai) anos
images 0ff444237a google-cloud-sdk is x86_64 only %!s(int64=6) %!d(string=hai) anos
inventory 8ee6a5cfe0 Merge pull request #9082 from bparees/registry_swap %!s(int64=6) %!d(string=hai) anos
meta 4fc06dd1c8 Adding meta/main.yml to allow for Galaxy use of this repo %!s(int64=7) %!d(string=hai) anos
playbooks de98c9cfb5 Add the OpenStack master scaleup playbook %!s(int64=6) %!d(string=hai) anos
roles de98c9cfb5 Add the OpenStack master scaleup playbook %!s(int64=6) %!d(string=hai) anos
test f7db81c1d1 Fully qualify all openshift/origin and openshift3/ose images %!s(int64=6) %!d(string=hai) anos
.coveragerc ea6f73440c Lowering test coverage percentage. %!s(int64=8) %!d(string=hai) anos
.dockerignore 949f4eacd2 Move origin-gce roles and playbooks into openshift-ansible %!s(int64=7) %!d(string=hai) anos
.flake8 3ce40db9e6 Fix flake8 errors in utils/test %!s(int64=7) %!d(string=hai) anos
.gitignore b804e70cdd Add default ansible.cfg file %!s(int64=8) %!d(string=hai) anos
.papr-master-ha.inventory f1d5df9319 PAPR: set docker log driver to journald so that journal artifacts contain docker logs too %!s(int64=6) %!d(string=hai) anos
.papr.all-in-one.inventory f1d5df9319 PAPR: set docker log driver to journald so that journal artifacts contain docker logs too %!s(int64=6) %!d(string=hai) anos
.papr.inventory f1d5df9319 PAPR: set docker log driver to journald so that journal artifacts contain docker logs too %!s(int64=6) %!d(string=hai) anos
.papr.sh 3bd8b05271 PAPR: tee update log in a separate file so that it won't be truncated %!s(int64=6) %!d(string=hai) anos
.papr.yml 7a2b3934d1 PAPR: upgrade from 3.10 branch %!s(int64=6) %!d(string=hai) anos
.pylintrc 13424ed197 Start requiring Ansible 2.4 %!s(int64=7) %!d(string=hai) anos
.release d8ae9c72a0 Branch for v3.11 %!s(int64=6) %!d(string=hai) anos
.travis.yml 3181af0b34 Output useful logs in CI on failure %!s(int64=7) %!d(string=hai) anos
.yamllint be949e0a0a More toxification %!s(int64=8) %!d(string=hai) anos
BUILD.md 5497673a7b image builds: remove dependency on playbook2image %!s(int64=7) %!d(string=hai) anos
CONTRIBUTING.md 70262d00b6 Add a bare minimum localhost hosts file %!s(int64=7) %!d(string=hai) anos
DEPLOYMENT_TYPES.md 23b283e229 Remove openshift_node_facts role %!s(int64=7) %!d(string=hai) anos
HOOKS.md d94417b7e4 Documents new node upgrade hooks. %!s(int64=7) %!d(string=hai) anos
LICENSE 1c93a576cd move LICENSE to /usr/share/licenses/openshift-ansible-VERSION/ %!s(int64=8) %!d(string=hai) anos
OWNERS 1a656ce0b2 Add OWNERS files %!s(int64=7) %!d(string=hai) anos
README.md fe356f60cc updating link to Origin install documentation for latest %!s(int64=6) %!d(string=hai) anos
README_CONTAINERIZED_INSTALLATION.md b867895c4b switch to registry.redhat.io for infra images %!s(int64=6) %!d(string=hai) anos
README_CONTAINER_IMAGE.md f7db81c1d1 Fully qualify all openshift/origin and openshift3/ose images %!s(int64=6) %!d(string=hai) anos
ansible.cfg 0d59a08689 Merge pull request #6470 from oybed/cfg %!s(int64=7) %!d(string=hai) anos
conftest.py fbc8d14bec Configure pytest to run tests and coverage %!s(int64=8) %!d(string=hai) anos
openshift-ansible.spec 3e9b1f478b Automatic commit of package [openshift-ansible] release [3.11.0-0.1.0]. %!s(int64=6) %!d(string=hai) anos
pytest.ini 8cfdd96ffa Add unit tests for existing health checks %!s(int64=8) %!d(string=hai) anos
requirements.txt fe3e258c4f Update requirements.txt %!s(int64=7) %!d(string=hai) anos
setup.cfg 81edec6de1 Remove atomic-openshift-utils %!s(int64=7) %!d(string=hai) anos
setup.py 300917e342 Azure: add playbook %!s(int64=7) %!d(string=hai) anos
test-requirements.txt e933ccdb0a tox tests: pin test requirement versions %!s(int64=8) %!d(string=hai) anos
tox.ini 5685f9bd9e Remove utils unit tests %!s(int64=7) %!d(string=hai) anos

README.md

Build Status Coverage Status

OpenShift Ansible

This repository contains Ansible roles and playbooks to install, upgrade, and manage OpenShift clusters.

Note: the Ansible playbooks in this repository require an RPM package that provides docker. Currently, the RPMs from dockerproject.org do not provide this requirement, though they may in the future. This limitation is being tracked by #2720.

Getting the correct version

When choosing an openshift release, ensure that the necessary origin packages are available in your distribution's repository. By default, openshift-ansible will not configure extra repositories for testing or staging packages for end users.

We recommend using a release branch. We maintain stable branches corresponding to upstream Origin releases, e.g.: we guarantee an openshift-ansible 3.2 release will fully support an origin 1.2 release.

The most recent branch will often receive minor feature backports and fixes. Older branches will receive only critical fixes.

In addition to the release branches, the master branch master branch tracks our current work in development and should be compatible with the Origin master branch (code in development).

Getting the right openshift-ansible release

Follow this release pattern and you can't go wrong:

Origin/OCP OpenShift-Ansible version openshift-ansible branch
1.3 / 3.3 3.3 release-1.3
1.4 / 3.4 3.4 release-1.4
1.5 / 3.5 3.5 release-1.5
3.X 3.X release-3.x

If you're running from the openshift-ansible master branch we can only guarantee compatibility with the newest origin releases in development. Use a branch corresponding to your origin version if you are not running a stable release.

Setup

Install base dependencies:

Requirements:

  • Ansible >= 2.4.3.0, 2.5.x is not currently supported for OCP installations
  • Jinja >= 2.7
  • pyOpenSSL
  • python-lxml

Fedora:

dnf install -y ansible pyOpenSSL python-cryptography python-lxml

Additional requirements:

Logging:

  • java-1.8.0-openjdk-headless
  • patch

Metrics:

  • httpd-tools

Simple all-in-one localhost Installation

This assumes that you've installed the base dependencies and you're running on Fedora or RHEL

git clone https://github.com/openshift/openshift-ansible
cd openshift-ansible
sudo ansible-playbook -i inventory/hosts.localhost playbooks/prerequisites.yml
sudo ansible-playbook -i inventory/hosts.localhost playbooks/deploy_cluster.yml

Node Group Definition and Mapping

In 3.10 and newer all members of the [nodes] inventory group must be assigned an openshift_node_group_name. This value is used to select the configmap that configures each node. By default there are three configmaps created; one for each node group defined in openshift_node_groups and they're named node-config-master node-config-infra node-config-compute. It's important to note that the configmap is also the authoritative definition of node labels, the old openshift_node_labels value is effectively ignored.

There are also two configmaps that label nodes into multiple roles, these are not recommended for production clusters, however they're named node-config-all-in-one and node-config-master-infra if you'd like to use them to deploy non production clusters.

The default set of node groups is defined in [roles/openshift_facts/defaults/main.yml] like so

openshift_node_groups:
  - name: node-config-master
    labels:
      - 'node-role.kubernetes.io/master=true'
    edits: []
  - name: node-config-infra
    labels:
      - 'node-role.kubernetes.io/infra=true'
    edits: []
  - name: node-config-compute
    labels:
      - 'node-role.kubernetes.io/compute=true'
    edits: []
  - name: node-config-master-infra
    labels:
      - 'node-role.kubernetes.io/infra=true,node-role.kubernetes.io/master=true'
    edits: []
  - name: node-config-all-in-one
    labels:
      - 'node-role.kubernetes.io/infra=true,node-role.kubernetes.io/master=true,node-role.kubernetes.io/compute=true'
    edits: []

When configuring this in the INI based inventory this must be translated into a Python dictionary. Here's an example of a group named node-config-all-in-one which is suitable for an All-In-One installation with kubeletArguments.pods-per-core set to 20

openshift_node_groups=[{'name': 'node-config-all-in-one', 'labels': ['node-role.kubernetes.io/master=true', 'node-role.kubernetes.io/infra=true', 'node-role.kubernetes.io/compute=true'], 'edits': [{ 'key': 'kubeletArguments.pods-per-core','value': ['20']}]}]

For upgrades, the upgrade process will block until you have the required configmaps in the openshift-node namespace. Please define openshift_node_groups as explained above or accept the defaults and run the playbooks/openshift-master/openshift_node_group.yml playbook to have them created for you automatically.

Complete Production Installation Documentation:

Containerized OpenShift Ansible

See README_CONTAINER_IMAGE.md for information on how to package openshift-ansible as a container image.

Installer Hooks

See the hooks documentation.

Contributing

See the contribution guide.

Building openshift-ansible RPMs and container images

See the build instructions.