Retire repository

Fuel (from openstack namespace) and fuel-ccp (in x namespace)
repositories are unused and ready to retire.

This change removes all content from the repository and adds the usual
README file to point out that the repository is retired following the
process from
https://docs.openstack.org/infra/manual/drivers.html#retiring-a-project

See also
http://lists.openstack.org/pipermail/openstack-discuss/2019-December/011647.html

Depends-On: https://review.opendev.org/699362
Change-Id: I7c0b90f9d2bc4bbf3cc2ea03b31afe28f4b378b1
This commit is contained in:
Andreas Jaeger 2019-12-18 09:48:12 +01:00
parent 64224c4f64
commit 4833ab86a6
25 changed files with 10 additions and 596 deletions

69
.gitignore vendored
View File

@ -1,69 +0,0 @@
*.py[cod]
# C extensions
*.so
# Packages
*.egg
*.egg-info
dist
build
.eggs
eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg
lib
lib64
# Installer logs
pip-log.txt
# Unit test / coverage reports
.coverage
cover
.tox
nosetests.xml
.testrepository
.venv
# Translations
*.mo
# Mr Developer
.mr.developer.cfg
.project
.pydevproject
# Complexity
output/*.html
output/*/index.html
# Sphinx
doc/build
# oslo-config-generator
etc/*.sample
# pbr generates these
AUTHORS
ChangeLog
# Editors
*~
.*.swp
.*sw?
# Vagrant
.vagrant
vagrant/Vagrantfile.custom
vagrant/vagrantkey*
# generated openrc
openrc
# tests
tests/.cache/*

10
README.rst Normal file
View File

@ -0,0 +1,10 @@
This project is no longer maintained.
The contents of this repository are still available in the Git
source code management system. To see the contents of this
repository before it reached its end of life, please check out the
previous commit with "git checkout HEAD^1".
For any further questions, please email
openstack-discuss@lists.openstack.org or join #openstack-dev on
Freenode.

View File

@ -1,8 +0,0 @@
FROM {{ image_spec("ironic-base") }}
MAINTAINER {{ maintainer }}
RUN apt-get install -y --no-install-recommends \
mysql-client \
&& apt-get clean
USER ironic

View File

@ -1,15 +0,0 @@
FROM {{ image_spec("openstack-base") }}
MAINTAINER {{ maintainer }}
{{ copy_sources("openstack/ironic", "/ironic") }}
{{ copy_sources("openstack/ironic-staging-drivers", "/ironic-staging-drivers") }}
RUN useradd -U -m -d /home/ironic -G microservices ironic \
&& /var/lib/microservices/venv/bin/pip install --upgrade -c /ironic/requirements.txt /ironic \
&& /var/lib/microservices/venv/bin/pip install --upgrade -r /ironic-staging-drivers/ironic_staging_drivers/ansible/python-requirements.txt \
&& /var/lib/microservices/venv/bin/pip install --upgrade -c /ironic-staging-drivers/requirements.txt /ironic-staging-drivers \
&& mkdir -p /etc/ironic /etc/ironic/keys /var/lib/ironic /home/ironic/.ssh /var/log/ironic \
&& cp -r /ironic/etc/ironic/* /etc/ironic/ \
&& chown -R ironic: /etc/ironic /var/lib/ironic /var/log/ironic /home/ironic \
&& chmod -R 700 /home/ironic \
&& rm -rf /ironic /ironic-staging-drivers

View File

@ -1,11 +0,0 @@
FROM {{ image_spec("ironic-base") }}
MAINTAINER {{ maintainer }}
RUN apt-get install -y --no-install-recommends \
qemu-utils \
ipmitool \
socat \
openssh-client \
&& apt-get clean
USER ironic

View File

@ -1,11 +0,0 @@
FROM {{ image_spec("ironic-base") }}
MAINTAINER {{ maintainer }}
RUN apt-get install -y --no-install-recommends \
nginx-light \
&& apt-get clean \
&& rm /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default \
&& chown -R ironic: /etc/nginx /var/lib/nginx /var/log/nginx
RUN chmod 777 /run

View File

@ -1,14 +0,0 @@
FROM {{ image_spec("ironic-base") }}
MAINTAINER {{ maintainer }}
RUN apt-get install -y --no-install-recommends \
tftpd-hpa \
syslinux-common \
syslinux \
pxelinux \
ipxe \
&& apt-get clean
COPY tftp-map-file /map-file
USER root

View File

@ -1,2 +0,0 @@
r ^([^/]) /var/lib/ironic/tftpboot/\1
r ^(/tftpboot/) /var/lib/ironic/tftpboot/\2

View File

@ -1,7 +0,0 @@
FROM {{ image_spec("ironic-base") }}
MAINTAINER {{ maintainer }}
RUN apt-get install -y --no-install-recommends \
mysql-client \
&& apt-get clean

View File

@ -1,9 +0,0 @@
actions:
- name: ironic-db-sync
image: ironic-base
dependencies:
- ironic-db-create
command: ironic-dbsync
files:
- path: /etc/ironic/ironic.conf
content: ironic.conf.j2

View File

@ -1,7 +0,0 @@
#!/bin/bash -ex
set -o pipefail
BACKUP_FILE="/var/ccp/backup/ironic/backup-$(date "+%Y%m%d%H%M%S").sql"
mysqldump {% if db.tls.enabled %} --ssl-mode REQUIRED {% endif %} -h {{ address("database") }} \
-u {{ ironic.db.username }} -p{{ ironic.db.password }} \
--single-transaction {{ ironic.db.name }} > "${BACKUP_FILE}"

View File

@ -1,3 +0,0 @@
[client.radosgw.gateway]
key = {{ radosgw.key }}

View File

@ -1,26 +0,0 @@
[global]
fsid = {{ ceph.fsid }}
mon_host = {{ ceph.mon_host }}
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx
debug_rgw = 20
[client.radosgw.gateway]
keyring = /var/lib/ceph/radosgw/ceph-rgw/keyring
rgw socket path = /tmp/radosgw.sock
log file = /var/log/ceph/ceph-rgw-{{ namespace }}.log
rgw data = /var/lib/ceph/radosgw/ceph-rgw
rgw frontends = civetweb port={{ radosgw.port.cont }} num_threads=50
rgw keystone api version = 3
rgw keystone admin domain = Default
rgw keystone admin project = {{ openstack.project_name }}
rgw keystone url = {{ address('keystone', keystone.admin_port, with_scheme=True) }}
rgw keystone accepted roles = Member, _member_, admin
rgw keystone revocation interval = 900
rgw s3 auth use keystone = true
rgw keystone verify ssl = {{ keystone.tls.enabled }}
rgw keystone admin user = {{ openstack.user_name }}
rgw keystone admin password = {{ openstack.user_password }}

View File

@ -1,40 +0,0 @@
configs:
ironic:
api_port:
cont: 6385
ingress: ironic
debug: false
automated_clean: false
enabled_drivers: "fake,agent_ssh,agent_ipmitool"
ipxe:
external_port: 6388
use_swift: false
ansible:
use_ramdisk_callback: true
secret_configs:
ironic:
username: ironic
password: password
db:
username: ironic
password: password
name: ironic
swift:
temp_url_key: password
ssh_key: false
sources:
openstack/ironic:
git_url: https://git.openstack.org/openstack/ironic.git
git_ref: stable/newton
openstack/ironic-staging-drivers:
git_url: https://git.openstack.org/openstack/ironic-staging-drivers
git_ref: master

View File

@ -1,81 +0,0 @@
[DEFAULT]
debug = {{ ironic.debug }}
use_syslog = false
use_stderr = true
my_ip = {{ network_topology["private"]["address"] }}
enabled_drivers = {{ ironic.enabled_drivers }}
enabled_network_interfaces = noop,flat
default_network_interface = flat
[api]
public_endpoint = http://{{ network_topology["private"]["address"] }}:{{ ironic.api_port.cont }}
host_ip = {{ network_topology["private"]["address"] }}
port = {{ ironic.api_port.cont }}
[database]
connection = mysql+pymysql://{{ ironic.db.username }}:{{ ironic.db.password }}@{{ address("database") }}/{{ ironic.db.name }}{% if db.tls.enabled %}?ssl_ca=/opt/ccp/etc/tls/ca.pem{% endif %}
max_retries = -1
{{ keystone_authtoken.keystone_authtoken(ironic.username, ironic.password) }}
auth_version = 3
[service_catalog]
auth_type = password
auth_url = {{ address('keystone', keystone.public_port, with_scheme=True) }}
project_domain_id = default
user_domain_id = default
project_name = service
username = {{ ironic.username }}
password = {{ ironic.password }}
[conductor]
api_url = http://{{ network_topology["private"]["address"] }}:{{ ironic.api_port.cont }}
automated_clean = {{ ironic.automated_clean }}
[neutron]
auth_type = password
auth_url = {{ address('keystone', keystone.public_port, with_scheme=True) }}
project_domain_id = default
user_domain_id = default
project_name = service
username = {{ ironic.username }}
password = {{ ironic.password }}
url={{ address('neutron-server', neutron.server_port, with_scheme=True) }}
[glance]
auth_type = password
auth_url = {{ address('keystone', keystone.public_port, with_scheme=True) }}
project_domain_id = default
user_domain_id = default
project_name = service
username = {{ ironic.username }}
password = {{ ironic.password }}
glance_api_servers = {{ address('glance-api', glance.api_port, with_scheme=True) }}
swift_endpoint_url = http://{{ network_topology["private"]["address"] }}:{{ radosgw.port.cont }}/swift
swift_temp_url_key = {{ ironic.swift.temp_url_key }}
temp_url_endpoint_type = radosgw
[pxe]
pxe_append_params = nofb nomodeset vga=normal
tftp_root = /var/lib/ironic/tftpboot
tftp_master_path = /var/lib/ironic/tftpboot/master_images
ipxe_enabled = true
ipxe_use_swift = {{ ironic.ipxe.use_swift }}
pxe_bootfile_name=undionly.kpxe
pxe_config_template=$pybasedir/drivers/modules/ipxe_config.template
[deploy]
http_root=/var/lib/ironic/httpboot
http_url=http://{{ network_topology["private"]["address"] }}:{{ ironic.ipxe.external_port }}
[ansible]
use_ramdisk_callback = {{ ironic.ansible.use_ramdisk_callback }}
{# messaging macros template #}
{{ oslo_messaging[messaging.backend.rpc]('rpc_config') }}

View File

@ -1,4 +0,0 @@
server {
listen {{ network_topology["private"]["address"] }}:{{ ironic.ipxe.external_port }};
root /var/lib/ironic/httpboot;
}

View File

@ -1,14 +0,0 @@
#!/bin/bash
set -e
mkdir -p /var/lib/ironic/tftpboot /var/lib/ironic/httpboot
cp \
/usr/lib/PXELINUX/pxelinux.0 \
/usr/lib/syslinux/modules/bios/chain.c32 \
/usr/lib/syslinux/modules/bios/ldlinux.c32 \
/usr/lib/ipxe/undionly.kpxe \
/var/lib/ironic/tftpboot
chown -R ironic:ironic /var/lib/ironic

View File

@ -1,3 +0,0 @@
{% if ironic.ssh_key -%}
{{ ironic.ssh_key}}
{% endif %}

View File

@ -1,76 +0,0 @@
dsl_version: 0.1.0
service:
name: ironic-api
ports:
- {{ ironic.api_port }}
containers:
- name: ironic-api
image: ironic-api
privileged: true
probes:
readiness: "true"
liveness:
command: "true"
type: "exec"
pre:
- name: ironic-db-create
type: single
command: mysql -v -u root -p{{ db.root_password }} -h {{ address("database") }} -e "create database {{ ironic.db.name }};
create user '{{ ironic.db.username }}'@'%' identified by '{{ ironic.db.password }}'
{% if db.tls.enabled %} require ssl {% endif %};
grant all privileges on {{ ironic.db.name }}.* to '{{ ironic.db.username }}'@'%' identified by '{{ ironic.db.password }}'
{% if db.tls.enabled %} require ssl {% endif %};"
dependencies:
- database
- name: ironic-db-sync
type: single
command: ironic-dbsync
dependencies:
- ironic-db-create
files:
- ironic.conf
- name: ironic-user-create
type: single
command: openstack user create --domain {{ service_account.domain }} --password {{ ironic.password }} {{ ironic.username }}
dependencies:
- keystone-create-domain
- name: ironic-role-add
dependencies:
- ironic-user-create
- keystone-create-project
type: single
command: openstack role add --project {{ service_account.project }} --user {{ ironic.username }} admin
- name: ironic-service-create
dependencies:
- keystone
type: single
command: openstack service create --name ironic --description "OpenStack Baremetal" baremetal
- name: ironic-public-endpoint-create
dependencies:
- ironic-service-create
type: single
command: openstack endpoint create --region RegionOne baremetal public
{{ address('ironic-api', ironic.api_port, external=True, with_scheme=True) }}
- name: ironic-internal-endpoint-create
dependencies:
- ironic-service-create
type: single
command: openstack endpoint create --region RegionOne baremetal internal
{{ address('ironic-api', ironic.api_port, with_scheme=True) }}
- name: ironic-admin-endpoint-create
dependencies:
- ironic-service-create
type: single
command: openstack endpoint create --region RegionOne baremetal admin
{{ address('ironic-api', ironic.api_port, with_scheme=True) }}
daemon:
command: ironic-api --config-file /etc/ironic/ironic.conf
files:
- ironic.conf
dependencies:
- rpc
files:
ironic.conf:
path: /etc/ironic/ironic.conf
content: ironic.conf.j2
perm: "0600"

View File

@ -1,114 +0,0 @@
dsl_version: 0.1.0
service:
name: ironic-conductor
hostNetwork: true
kind: DaemonSet
containers:
- name: conductor
image: ironic-conductor
probes:
readiness: "true"
liveness:
command: "true"
type: "exec"
volumes:
- name: ironic
type: host
path: /var/lib/ironic
pre:
- name: ironic-post-swift-tempurl-key
dependencies:
- radosgw
type: single
command: swift --insecure --auth-version 3
--os-auth-url {{ address('keystone', keystone.public_port, with_scheme=True) }}/v3
--os-project-name {{ service_account.project }} --os-project-domain-name {{ service_account.domain }}
--os-user-domain-name {{ service_account.domain }}
--os-username {{ glance.user }} --os-password {{ glance.password }} --os-endpoint-type internalURL
post -m "Temp-URL-Key:{{ ironic.swift.temp_url_key }}"
daemon:
command: ironic-conductor --config-file /etc/ironic/ironic.conf
files:
- ironic.conf
- ssh_key
dependencies:
- ironic-db-sync
- ironic-post-swift-tempurl-key
- name: pxe
image: ironic-pxe
probes:
readiness: "true"
liveness:
command: "true"
type: "exec"
volumes:
- name: ironic
type: host
path: /var/lib/ironic
pre:
- name: pxe-bootstrap
command: /opt/ccp/bin/pxe-bootstrap.sh
daemon:
command: in.tftpd --verbose --foreground --user root --map-file /map-file
--address {% raw %}{{ network_topology["private"]["address"] }}{% endraw %}:69
/var/lib/ironic/tftpboot
files:
- pxe-bootstrap.sh
- name: ipxe
image: ironic-ipxe
probes:
readiness: "true"
liveness:
command: "true"
type: "exec"
volumes:
- name: ironic
type: host
path: /var/lib/ironic
daemon:
command: nginx -g 'daemon off; error_log stderr;'
files:
- nginx-ipxe.conf
- name: radosgw
image: radosgw
daemon:
command: radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway -d
files:
- ceph-conf
- radosgw-ceph-key
- radosgw-keyring
- name: api
image: ironic-api
daemon:
command: ironic-api --config-file /etc/ironic/ironic.conf
files:
- ironic.conf
dependencies:
- rpc
- ironic-db-sync
files:
ironic.conf:
path: /etc/ironic/ironic.conf
content: ironic.conf.j2
perm: "0600"
pxe-bootstrap.sh:
path: /opt/ccp/bin/pxe-bootstrap.sh
content: pxe-bootstrap.sh
perm: "0755"
nginx-ipxe.conf:
path: /etc/nginx/sites-enabled/nginx-ipxe.conf
content: nginx-ipxe.conf.j2
perm: "0644"
ssh_key:
path: /home/ironic/.ssh/id_rsa
content: ssh_key.j2
perm: "0400"
ceph-conf:
path: /etc/ceph/ceph.conf
content: ceph.conf.j2
radosgw-ceph-key:
path: /etc/ceph/ceph.client.radosgw.keyring
content: ceph.client.radosgw.keyring.j2
radosgw-keyring:
path: /var/lib/ceph/radosgw/ceph-rgw/keyring
content: ceph.client.radosgw.keyring.j2

View File

@ -1,39 +0,0 @@
upgrade:
name: upgrade-ironic
image: ironic-upgrade
steps:
- name: backup
command: /opt/ccp/bin/backup.sh
files:
- backup-sh
volumes:
- name: backup-dir
path: /var/ccp/backup/ironic
type: host
readOnly: false
topology_key: backup
- name: kill-services
type: kill-services
- name: db-sync
type: single
command: ironic-dbsync
files:
- ironic.conf
- name: roll-api
type: rolling-upgrade
services:
- ironic-api
- name: roll-conductor
type: rolling-upgrade
services:
- ironic-conductor
files:
ironic.conf:
path: /etc/ironic/ironic.conf
content: ironic.conf.j2
perm: "0600"
backup-sh:
path: /opt/ccp/bin/backup.sh
content: backup.sh.j2
perm: "500"

View File

@ -1,2 +0,0 @@
yamllint>=1.3.2
bashate>=0.2

View File

@ -1,5 +0,0 @@
#!/bin/bash
set -ex
workdir=$(dirname $0)
yamllint -c $workdir/yamllint.yaml $(find . -not -path '*/\.*' -type f -name '*.yaml')

View File

@ -1,21 +0,0 @@
extends: default
rules:
braces:
max-spaces-inside: 1
comments:
level: error
comments-indentation:
level: warning
document-end:
present: no
document-start:
level: error
present: no
empty-lines:
max: 1
max-start: 0
max-end: 0
line-length:
level: warning
max: 120

15
tox.ini
View File

@ -1,15 +0,0 @@
[tox]
minversion = 1.6
envlist = linters,bashate
skipsdist = True
[testenv]
deps = -r{toxinidir}/test-requirements.txt
[testenv:linters]
commands =
{toxinidir}/tools/yamllint.sh
[testenv:bashate]
whitelist_externals = bash
commands = bash -c "find {toxinidir} -type f -name '*.sh' -not -path '*/.tox/*' -print0 | xargs -0 bashate -v"