Без опису

Vadim Rutkovsky 4a125183a5 ssh bastion is not stable, add 10 retries 6 роки тому
.github 973297f7a2 Simplify PR template and add text to README.md 6 роки тому
.tito df0e377b9d Automatic commit of package [openshift-ansible] release [4.0.0-0.96.0]. 6 роки тому
docs ee2e117c92 Refactor with_items usage with Ansible package module 6 роки тому
examples acc7e1cbcd Remove duplicate words 6 роки тому
hack 70e2b55e28 Add CI scripts in hack/ 6 роки тому
images a038d7de91 Use ansible 2.7.4 6 роки тому
inventory 4a125183a5 ssh bastion is not stable, add 10 retries 6 роки тому
meta 4fc06dd1c8 Adding meta/main.yml to allow for Galaxy use of this repo 7 роки тому
playbooks ae676d010e MCD port is now 22623 6 роки тому
roles 8c469f9131 Add kubelet and cri-o logs in the output 6 роки тому
test 6b2893c749 Setup an ssh bastion in the pod and use it instead of masters 6 роки тому
.coveragerc ea6f73440c Lowering test coverage percentage. 8 роки тому
.dockerignore 6446f05572 Rework test CI 6 роки тому
.flake8 3ce40db9e6 Fix flake8 errors in utils/test 7 роки тому
.gitignore c23be0649e update gitignore 6 роки тому
.papr-master-ha.inventory f1d5df9319 PAPR: set docker log driver to journald so that journal artifacts contain docker logs too 6 роки тому
.papr.all-in-one.inventory f1d5df9319 PAPR: set docker log driver to journald so that journal artifacts contain docker logs too 6 роки тому
.papr.inventory f1d5df9319 PAPR: set docker log driver to journald so that journal artifacts contain docker logs too 6 роки тому
.papr.sh eaf0d01f6d PAPR: install new requirements during upgrade 6 роки тому
.papr.yml bdd8da8753 Disable papr on pull requests 6 роки тому
.pylintrc 565d1f60a2 Fix ansible version checking 6 роки тому
.release d8ae9c72a0 Branch for v3.11 6 роки тому
.travis.yml 3181af0b34 Output useful logs in CI on failure 7 роки тому
.yamllint be949e0a0a More toxification 8 роки тому
BUILD.md 5497673a7b image builds: remove dependency on playbook2image 7 роки тому
CONTRIBUTING.md 70262d00b6 Add a bare minimum localhost hosts file 7 роки тому
DEPLOYMENT_TYPES.md d67f7c540f Remove alternative oreg vars and update logic 6 роки тому
HOOKS.md d94417b7e4 Documents new node upgrade hooks. 7 роки тому
LICENSE 1c93a576cd move LICENSE to /usr/share/licenses/openshift-ansible-VERSION/ 8 роки тому
OWNERS 1a656ce0b2 Add OWNERS files 7 роки тому
README.md 798c5e36b9 add examples 6 роки тому
README_CONTAINER_IMAGE.md 4505a09373 Update documentation links, docs.openshift.org -> docs.okd.io 6 роки тому
ansible.cfg 8a79b1ffed Set log-path = ~/openshift-ansible.log 6 роки тому
conftest.py fbc8d14bec Configure pytest to run tests and coverage 8 роки тому
openshift-ansible.spec f073161fc3 openshift-ansible.spec: remove contiv role. 6 роки тому
pytest.ini 8cfdd96ffa Add unit tests for existing health checks 8 роки тому
requirements.txt 651d26c2c0 Add playbooks to setup cluster via bootkube and scale up nodes 6 роки тому
setup.cfg 81edec6de1 Remove atomic-openshift-utils 7 роки тому
setup.py f7b9f1c94c Update the naming of openshift on rhv to ovirt 6 роки тому
test-requirements.txt 84cb5abadb Fixes #8267 6 роки тому
tox.ini 5685f9bd9e Remove utils unit tests 7 роки тому

README.md

Build Status Coverage Status

NOTICE

Master branch is closed! A major refactor is ongoing in devel-40. Changes for 3.x should be made directly to the latest release branch they're relevant to and backported from there.

WARNING

This branch is under heavy development. If you are interested in deploying a working cluster, please utilize a release branch.

OpenShift Ansible

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

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.6.5, Ansible 2.7 is not yet supported and known to fail
  • Jinja >= 2.7
  • pyOpenSSL
  • python-lxml

Fedora:

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

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

Quickstart

Install the new installer from https://www.github.com/openshift/installer

Construct a proper install-config.yml, and make a copy called install-config-ansible.yml.

Hosts

You will need the following hosts

Boostrap host

This is a special host that is not part of the cluster but is required to be available to help the cluster bootstrap itself. This is not a bastion host, it will initially be part of the cluster and should be able to communicate with the masters in the cluster.

Masters

You need 1 or 3 masters.

Workers

You need 0 or more workers. Note, by default, masters are unschedulable so you will need one or more workers if you want to schedule workloads.

DNS

4.x installs require specific dns records to be in place, and there is no way to complete an install without working DNS. You are in charge of ensuring the following DNS records are resolvable from your cluster, the openshift-ansible installer will not make any attempt to do any of this for you.

First, the output of hostname on each host must be resolvable to other hosts. The nodes will communicate with each other based on this value.

install-config.yml value of 'baseDomain' must be a working domain.

A records

<clustername>-api.<baseDomain> # ex: mycluster-api.example.com
<clustername>-master-0.<baseDomain> # ex: mycluster-master-0.example.com
<clustername>-etcd-0.<baseDomain> # ex: mycluster-etcd-0.example.com
<clustername>-bootstrap.<baseDomain> # ex: mycluster-bootstrap.example.com

Note: There should be a master/etcd record for each master host in your cluster (either 1 or 3). etcd hosts must be master hosts, and the records must resolve to the same host for each master/etcd record, respectively.

SRV records

SRV _etcd-client-ssl._tcp.<clustername>.<baseDomain> '1 1 2379 <clustername>-etcd-0.<baseDomain>'
SRV _etcd-server-ssl._tcp.<clustername>.<baseDomain> '1 1 2380 <clustername>-etcd-0.<baseDomain>'
...
SRV _etcd-client-ssl._tcp.<clustername>.<baseDomain> '1 1 2379 <clustername>-etcd-<N-1>.<baseDomain>'
SRV _etcd-server-ssl._tcp.<clustername>.<baseDomain> '1 1 2380 <clustername>-etcd-<N-1>.<baseDomain>'

# ex: _etcd-client-ssl._tcp.mycluster.example.com '1 1 2379 mycluster-etcd-0.example.com'

Consult with your DNS provider about the proper way to create SRV records. In any case, there should be a client and server SRV record for each etcd backend, and you MUST use the etcd FQDN you created earlier, not the master or any other record.

Inventory

Check out inventory/40_basic_inventory.ini for an example.

Generate ignition configs

Use the openshift-install command to generate ignition configs utilizing the install-config.yml you created earlier. This will consume the install-config.yml file, so ensure you have copied the file as mentioned previously.

openshift-install create ignition-configs

Run playbook

playbooks/deploy_cluster_40.yml

Further reading

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.