Decommission status.openstack.org and services
The status.openstack.org server is offline now that it no longer hosts any working services. Remove all configuration for it in preparation for retiring related Git repositories. Also roll some related cleanup into this for the already retired puppet-kibana module. Change-Id: I3cfcc129983e3641dfbe55d5ecc208c554e97de4
This commit is contained in:
parent
e95fcef6a6
commit
d185aedd7d
@ -1,33 +0,0 @@
|
||||
:title: Elastic-Recheck
|
||||
|
||||
.. _elastic-recheck:
|
||||
|
||||
Elastic-Recheck
|
||||
###############
|
||||
|
||||
|
||||
|
||||
At a Glance
|
||||
===========
|
||||
|
||||
:Hosts:
|
||||
* http://status.openstack.org
|
||||
:Puppet:
|
||||
* https://opendev.org/opendev/puppet-elastic_recheck
|
||||
* :git_file:`modules/openstack_project/manifests/status.pp`
|
||||
:Projects:
|
||||
* https://opendev.org/opendev/elastic-recheck
|
||||
:Bugs:
|
||||
* https://storyboard.openstack.org/#!/project/713
|
||||
:Resources:
|
||||
* `elastic-recheck Documentation <http://docs.openstack.org/infra/elastic-recheck/>`_
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
The elastic-recheck project leverages Elasticsearch and Logstash to identify,
|
||||
track and report upon rechecks in the OpenStack gate.
|
||||
|
||||
Dashboard can be found here:
|
||||
|
||||
http://status.openstack.org/elastic-recheck/
|
@ -172,8 +172,7 @@ listening to, including #opendev:
|
||||
Broadcast a message to all OpenDev and OpenStack channels and
|
||||
change their
|
||||
topics, log to the wiki page, and set an alert box on the wiki
|
||||
page (eventually include this alert box on status.openstack.org
|
||||
pages).
|
||||
page (eventually include this alert box on opendev.org).
|
||||
|
||||
#status ok [MESSAGE]
|
||||
Remove alert box and restore channel topics, optionally announcing
|
||||
|
@ -13,7 +13,6 @@ At a Glance
|
||||
|
||||
:Hosts:
|
||||
* http://logs.openstack.org
|
||||
* http://status.openstack.org
|
||||
* http://mirror.openstack.org
|
||||
* http://specs.openstack.org
|
||||
:Puppet:
|
||||
|
@ -16,7 +16,6 @@ Major Systems
|
||||
grafyaml
|
||||
keycloak
|
||||
zuul
|
||||
elastic-recheck
|
||||
devstack-gate
|
||||
nodepool
|
||||
jeepyb
|
||||
|
@ -63,7 +63,6 @@ cacti_hosts:
|
||||
- refstack01.openstack.org
|
||||
- review02.opendev.org
|
||||
- static01.opendev.org
|
||||
- status01.openstack.org
|
||||
- storyboard01.opendev.org
|
||||
- storyboard-dev01.opendev.org
|
||||
- translate.openstack.org
|
||||
|
@ -422,13 +422,6 @@ all:
|
||||
region_name: DFW
|
||||
public_v4: 23.253.245.150
|
||||
public_v6: 2001:4800:7818:101:be76:4eff:fe04:7c28
|
||||
status01.openstack.org:
|
||||
ansible_host: 104.130.141.217
|
||||
location:
|
||||
cloud: openstackci-rax
|
||||
region_name: DFW
|
||||
public_v4: 104.130.141.217
|
||||
public_v6: 2001:4800:7818:103:be76:4eff:fe04:8ed3
|
||||
storyboard-dev01.opendev.org:
|
||||
ansible_host: 23.253.234.105
|
||||
location:
|
||||
|
@ -125,7 +125,6 @@ groups:
|
||||
puppet:
|
||||
- cacti[0-9]*.open*.org
|
||||
- ethercalc[0-9]*.open*.org
|
||||
- status*.open*.org
|
||||
- storyboard-dev[0-9]*.opendev.org
|
||||
- storyboard[0-9]*.opendev.org
|
||||
- translate-dev[0-9]*.open*.org
|
||||
@ -133,7 +132,6 @@ groups:
|
||||
puppet4:
|
||||
- cacti[0-9]*.open*.org
|
||||
- ethercalc[0-9]*.open*.org
|
||||
- status*.open*.org
|
||||
- storyboard[0-9]*.opendev.org
|
||||
- storyboard-dev[0-9]*.opendev.org
|
||||
- translate[0-9]*.open*.org
|
||||
@ -149,8 +147,6 @@ groups:
|
||||
#review-staging:
|
||||
static:
|
||||
- static[0-9]*.opendev.org
|
||||
status:
|
||||
- status*.open*.org
|
||||
storyboard:
|
||||
- storyboard[0-9]*.opendev.org
|
||||
storyboard-dev:
|
||||
@ -173,7 +169,6 @@ groups:
|
||||
- paste[0-9]*.opendev.org
|
||||
- refstack[0-9]*.openstack.org
|
||||
- static[0-9]*.opendev.org
|
||||
- status*.open*.org
|
||||
- storyboard-dev[0-9]*.opendev.org
|
||||
- storyboard[0-9]*.opendev.org
|
||||
- translate-dev[0-9]*.open*.org
|
||||
|
@ -62,25 +62,6 @@ node /^storyboard-dev\d+\.opendev\.org$/ {
|
||||
|
||||
}
|
||||
|
||||
# A machine to serve various project status updates.
|
||||
# Node-OS: xenial
|
||||
node /^status\d*\.open.*\.org$/ {
|
||||
$group = 'status'
|
||||
|
||||
class { 'openstack_project::server': }
|
||||
|
||||
class { 'openstack_project::status':
|
||||
gerrit_host => 'review.opendev.org',
|
||||
gerrit_ssh_host_key => hiera('gerrit_ssh_rsa_pubkey_contents'),
|
||||
reviewday_ssh_public_key => hiera('reviewday_rsa_pubkey_contents'),
|
||||
reviewday_ssh_private_key => hiera('reviewday_rsa_key_contents'),
|
||||
recheck_ssh_public_key => hiera('elastic-recheck_gerrit_ssh_public_key'),
|
||||
recheck_ssh_private_key => hiera('elastic-recheck_gerrit_ssh_private_key'),
|
||||
recheck_bot_nick => 'openstackrecheck',
|
||||
recheck_bot_passwd => hiera('elastic-recheck_ircbot_password'),
|
||||
}
|
||||
}
|
||||
|
||||
# Node-OS: xenial
|
||||
node /^translate\d+\.open.*\.org$/ {
|
||||
$group = "translate"
|
||||
|
@ -57,7 +57,6 @@ SOURCE_MODULES["https://github.com/voxpupuli/puppet-nodejs"]="v2.3.0"
|
||||
# Add modules that should be part of the openstack-infra integration test here
|
||||
# Please keep sorted
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/opendev/puppet-bup"]="origin/master"
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/opendev/puppet-elastic_recheck"]="origin/master"
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/opendev/puppet-ethercalc"]="origin/master"
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/opendev/puppet-httpd"]="origin/master"
|
||||
# Storyboard and translate use the jeepyb module
|
||||
@ -68,7 +67,6 @@ INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/opendev/puppet-pip"]="origin/master"
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/opendev/puppet-project_config"]="origin/master"
|
||||
# Ethercalc uses the redis module
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/opendev/puppet-redis"]="origin/master"
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/opendev/puppet-reviewday"]="origin/master"
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/opendev/puppet-simpleproxy"]="origin/master"
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/opendev/puppet-ssh"]="origin/master"
|
||||
INTEGRATION_MODULES["$OPENSTACK_GIT_ROOT/opendev/puppet-storyboard"]="origin/master"
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 15 KiB |
@ -1,97 +0,0 @@
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"
|
||||
xmlns:py="http://genshi.edgewall.org/"
|
||||
lang="en">
|
||||
<HEAD>
|
||||
<style type="text/css">
|
||||
#blurb-container {
|
||||
max-width: 950px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.blurb {
|
||||
float: left;
|
||||
width: 25em;
|
||||
height: 22ex;
|
||||
padding: 4px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<TITLE>OpenStack Project Status</TITLE>
|
||||
|
||||
<script type="text/javascript"
|
||||
src="http://status.openstack.org/common.js"></script>
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href='http://fonts.googleapis.com/css?family=PT+Sans&subset=latin' rel='stylesheet' type='text/css'/>
|
||||
|
||||
<!-- Framework CSS -->
|
||||
<link rel="stylesheet" href="https://www.openstack.org/themes/openstack/css/blueprint/screen.css" type="text/css" media="screen, projection"/>
|
||||
<link rel="stylesheet" href="https://www.openstack.org/themes/openstack/css/blueprint/print.css" type="text/css" media="print"/>
|
||||
|
||||
<!-- IE CSS -->
|
||||
<!--[if lt IE 8]><link rel="stylesheet" href="https://www.openstack.org/blueprint/ie.css" type="text/css" media="screen, projection"><![endif]-->
|
||||
|
||||
<!-- OpenStack Specific CSS -->
|
||||
|
||||
<link rel="stylesheet" href="https://www.openstack.org/themes/openstack/css/dropdown.css" type="text/css" media="screen, projection, print"/>
|
||||
|
||||
<!-- Page Specific CSS -->
|
||||
<link rel="stylesheet" href="https://www.openstack.org/themes/openstack/css/home.css" type="text/css" media="screen, projection, print"/>
|
||||
|
||||
<link rel="stylesheet" type="text/css" href="https://www.openstack.org/themes/openstack/css/main.css" />
|
||||
</HEAD>
|
||||
|
||||
<BODY>
|
||||
<script type="text/javascript">header('Status');</script>
|
||||
|
||||
<div id="blurb-container">
|
||||
<h1>OpenStack Infrastructure and Project Status</h1>
|
||||
|
||||
<div id="message-container">
|
||||
<div class="container">
|
||||
<div class="span-24 last">
|
||||
<p id="message"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="blurb">
|
||||
<h2 class="subhead"><a href="/zuul/">Zuul</a></h2>
|
||||
<p>
|
||||
Zuul is the project gating and automation system that tests
|
||||
and merges changes as well as publishing releases and
|
||||
documentation.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="blurb">
|
||||
<h2 class="subhead"><a href="/elastic-recheck/">Rechecks</a></h2>
|
||||
<p>
|
||||
When the cause of a test failure is nondeterministic,
|
||||
developers can request that it be retested by leaving a
|
||||
comment in Gerrit of the form "recheck bug #". This page
|
||||
collects those comments and displays graphs indicating
|
||||
the timing and frequency of these bugs.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="blurb">
|
||||
<h2 class="subhead"><a href="/reviews/">Reviews</a></h2>
|
||||
<p>
|
||||
Important reviews are ranked according to blueprint and bug
|
||||
priority.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="blurb">
|
||||
<h2 class="subhead"><a href="/openstack-health/">OpenStack-Health</a></h2>
|
||||
<p>
|
||||
A test results dashboard.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">footer();</script>
|
||||
|
||||
</BODY>
|
||||
</html>
|
@ -1,178 +0,0 @@
|
||||
# == Class: openstack_project::status
|
||||
#
|
||||
class openstack_project::status (
|
||||
$gerrit_host,
|
||||
$gerrit_ssh_host_key,
|
||||
$reviewday_ssh_public_key = '',
|
||||
$reviewday_ssh_private_key = '',
|
||||
$recheck_ssh_public_key,
|
||||
$recheck_ssh_private_key,
|
||||
$recheck_bot_passwd,
|
||||
$recheck_bot_nick,
|
||||
$status_base_url = 'http://status.openstack.org',
|
||||
$status_title = 'OpenStack',
|
||||
$graphite_render_url = 'http://graphite.opendev.org/render/',
|
||||
) {
|
||||
|
||||
include openstack_project
|
||||
file { '/home/jenkins':
|
||||
ensure => absent,
|
||||
}
|
||||
|
||||
include ::httpd
|
||||
|
||||
if ! defined(Httpd::Mod['rewrite']) {
|
||||
httpd::mod { 'rewrite':
|
||||
ensure => present,
|
||||
}
|
||||
}
|
||||
|
||||
if ! defined(Httpd::Mod['proxy']) {
|
||||
httpd::mod { 'proxy':
|
||||
ensure => present,
|
||||
}
|
||||
}
|
||||
|
||||
if ! defined(Httpd::Mod['proxy_http']) {
|
||||
httpd::mod { 'proxy_http':
|
||||
ensure => present,
|
||||
}
|
||||
}
|
||||
|
||||
file { '/srv/static':
|
||||
ensure => directory,
|
||||
}
|
||||
|
||||
###########################################################
|
||||
# Status - Index
|
||||
|
||||
::httpd::vhost { 'status.openstack.org':
|
||||
port => 80,
|
||||
priority => '50',
|
||||
docroot => '/srv/static/status',
|
||||
template => 'openstack_project/status.vhost.erb',
|
||||
require => File['/srv/static/status'],
|
||||
}
|
||||
|
||||
file { '/srv/static/status':
|
||||
ensure => directory,
|
||||
}
|
||||
|
||||
package { 'libjs-jquery':
|
||||
ensure => present,
|
||||
}
|
||||
|
||||
package { 'yui-compressor':
|
||||
ensure => present,
|
||||
}
|
||||
|
||||
file { '/srv/static/status/index.html':
|
||||
ensure => present,
|
||||
source => 'puppet:///modules/openstack_project/status/index.html',
|
||||
require => File['/srv/static/status'],
|
||||
}
|
||||
|
||||
file { '/srv/static/status/favicon.ico':
|
||||
ensure => present,
|
||||
source => 'puppet:///modules/openstack_project/status/favicon.ico',
|
||||
require => File['/srv/static/status'],
|
||||
}
|
||||
|
||||
file { '/srv/static/status/common.js':
|
||||
ensure => present,
|
||||
content => template('openstack_project/status/common.js.erb'),
|
||||
require => File['/srv/static/status'],
|
||||
replace => true,
|
||||
}
|
||||
|
||||
file { '/srv/static/status/jquery.min.js':
|
||||
ensure => link,
|
||||
target => '/usr/share/javascript/jquery/jquery.min.js',
|
||||
require => [File['/srv/static/status'],
|
||||
Package['libjs-jquery']],
|
||||
}
|
||||
|
||||
vcsrepo { '/opt/jquery-visibility':
|
||||
ensure => latest,
|
||||
provider => git,
|
||||
revision => 'master',
|
||||
source => 'https://github.com/mathiasbynens/jquery-visibility.git',
|
||||
}
|
||||
|
||||
exec { 'install_jquery-visibility' :
|
||||
command => 'yui-compressor -o /srv/static/status/jquery-visibility.min.js /opt/jquery-visibility/jquery-visibility.js',
|
||||
path => '/bin:/usr/bin',
|
||||
refreshonly => true,
|
||||
subscribe => Vcsrepo['/opt/jquery-visibility'],
|
||||
require => [
|
||||
File['/srv/static/status'],
|
||||
Package['yui-compressor'],
|
||||
Vcsrepo['/opt/jquery-visibility'],
|
||||
],
|
||||
}
|
||||
|
||||
vcsrepo { '/opt/jquery-graphite':
|
||||
ensure => latest,
|
||||
provider => git,
|
||||
revision => 'master',
|
||||
source => 'https://github.com/prestontimmons/graphitejs.git',
|
||||
}
|
||||
|
||||
file { '/srv/static/status/jquery-graphite.js':
|
||||
ensure => link,
|
||||
target => '/opt/jquery-graphite/jquery.graphite.js',
|
||||
require => [File['/srv/static/status'],
|
||||
Vcsrepo['/opt/jquery-graphite']],
|
||||
}
|
||||
vcsrepo { '/opt/flot':
|
||||
ensure => latest,
|
||||
provider => git,
|
||||
revision => 'master',
|
||||
source => 'https://github.com/flot/flot.git',
|
||||
}
|
||||
|
||||
exec { 'install_flot' :
|
||||
command => 'cp /opt/flot/source/jquery.flot.js /opt/flot/source/jquery.canvaswrapper.js /opt/flot/source/jquery.colorhelpers.js /opt/flot/source/jquery.flot.*.js /srv/static/status',
|
||||
path => '/bin:/usr/bin',
|
||||
refreshonly => true,
|
||||
subscribe => Vcsrepo['/opt/flot'],
|
||||
require => [
|
||||
File['/srv/static/status'],
|
||||
Vcsrepo['/opt/flot'],
|
||||
],
|
||||
}
|
||||
|
||||
###########################################################
|
||||
# Status - elastic-recheck
|
||||
include elastic_recheck
|
||||
|
||||
class { 'elastic_recheck::bot':
|
||||
gerrit_host => $gerrit_host,
|
||||
gerrit_ssh_host_key => $gerrit_ssh_host_key,
|
||||
recheck_ssh_public_key => $recheck_ssh_public_key,
|
||||
recheck_ssh_private_key => $recheck_ssh_private_key,
|
||||
recheck_bot_passwd => $recheck_bot_passwd,
|
||||
recheck_bot_nick => $recheck_bot_nick,
|
||||
}
|
||||
|
||||
# sets up the cron update scripts for static pages
|
||||
include elastic_recheck::cron
|
||||
|
||||
###########################################################
|
||||
# Status - reviewday
|
||||
|
||||
include reviewday
|
||||
|
||||
reviewday::site { 'reviewday':
|
||||
git_url => 'https://opendev.org/openstack/reviewday',
|
||||
serveradmin => 'webmaster@openstack.org',
|
||||
httproot => '/srv/static/reviewday',
|
||||
gerrit_url => 'review.opendev.org',
|
||||
gerrit_port => '29418',
|
||||
gerrit_user => 'reviewday',
|
||||
reviewday_gerrit_ssh_key => $gerrit_ssh_host_key,
|
||||
reviewday_rsa_pubkey_contents => $reviewday_ssh_public_key,
|
||||
reviewday_rsa_key_contents => $reviewday_ssh_private_key,
|
||||
}
|
||||
|
||||
}
|
@ -1,55 +0,0 @@
|
||||
# ************************************
|
||||
# Managed by Puppet
|
||||
# ************************************
|
||||
|
||||
NameVirtualHost <%= @vhost_name %>:<%= @port %>
|
||||
<VirtualHost <%= @vhost_name %>:<%= @port %>>
|
||||
ServerName <%= @srvname %>
|
||||
<% if @serveraliases.is_a? Array -%>
|
||||
<% @serveraliases.each do |name| -%><%= " ServerAlias #{name}\n" %><% end -%>
|
||||
<% elsif ! ['', nil].include?(@serveraliases) -%>
|
||||
<%= " ServerAlias #{@serveraliases}" %>
|
||||
<% end -%>
|
||||
DocumentRoot <%= @docroot %>
|
||||
|
||||
Alias /reviews /srv/static/reviewday
|
||||
<Directory /srv/static/reviewday>
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
Alias /openstack-health /srv/static/openstack-health
|
||||
<Directory /srv/static/openstack-health>
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
<Directory <%= @docroot %>>
|
||||
Options <%= @options %>
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
# Sample elastic-recheck config file, adjust prefixes
|
||||
# per your local configuration. Because these are nested
|
||||
# we need the more specific one first.
|
||||
Alias /elastic-recheck/data /var/lib/elastic-recheck
|
||||
<Directory /var/lib/elastic-recheck>
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
RedirectMatch permanent ^/rechecks(.*) /elastic-recheck
|
||||
Alias /elastic-recheck /usr/local/share/elastic-recheck
|
||||
<Directory /usr/local/share/elastic-recheck>
|
||||
AllowOverride None
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
RedirectMatch temp ^/zuul(.*) https://zuul.opendev.org/t/openstack/status
|
||||
|
||||
ErrorLog /var/log/apache2/<%= @name %>_error.log
|
||||
LogLevel warn
|
||||
CustomLog /var/log/apache2/<%= @name %>_access.log combined
|
||||
ServerSignature Off
|
||||
</VirtualHost>
|
@ -1,96 +0,0 @@
|
||||
// Copyright (c) 2013-2015 OpenStack Foundation
|
||||
// //
|
||||
// // 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.
|
||||
|
||||
'use strict';
|
||||
|
||||
function header(activeTabName) {
|
||||
var tabsName = [];
|
||||
var tabsLink = [];
|
||||
tabsName[0] = 'Status'; tabsLink[0] = '<%= @status_base_url %>';
|
||||
tabsName[1] = 'Zuul'; tabsLink[1] = '<%= @status_base_url %>/zuul/';
|
||||
tabsName[2] = 'Rechecks'; tabsLink[2] = '<%= @status_base_url %>/elastic-recheck/';
|
||||
tabsName[3] = 'Reviews'; tabsLink[3] = '<%= @status_base_url %>/reviews/';
|
||||
tabsName[4] = 'OpenStack-Health'; tabsLink[4] = '<%= @status_base_url %>/openstack-health/';
|
||||
|
||||
document.write(
|
||||
'<div id="header" class="container">' +
|
||||
'<div class="span-5">' +
|
||||
' <h1 id="logo"><a href="<%= @status_base_url %>"><%= @status_title %></a></h1>' +
|
||||
'</div>\n' +
|
||||
'<div class="span-19 last blueLine">' +
|
||||
'<div id="navigation" class="span-19">' +
|
||||
'<ul id="Menu1">\n');
|
||||
|
||||
tabsName.forEach(function(value, index) {
|
||||
document.write('<li><a id="menu-' + tabsName[index] + '" href="' + tabsLink[index] + '"');
|
||||
if (tabsName[index] == activeTabName) {
|
||||
document.write(' class="current"');
|
||||
}
|
||||
document.write('>' + tabsName[index] + '</a></li>\n');
|
||||
});
|
||||
|
||||
document.write(
|
||||
'</ul>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>');
|
||||
}
|
||||
|
||||
function footer() {
|
||||
document.write(
|
||||
'<div class="container">' +
|
||||
'<hr>' +
|
||||
'<div id="footer">' +
|
||||
'<div class="span-4">' +
|
||||
'<h3>OpenStack</h3>' +
|
||||
'<ul>' +
|
||||
' <li><a href="https://www.openstack.org/projects/">Projects</a></li>' +
|
||||
' <li><a href="https://security.openstack.org/">OpenStack Security</a></li>' +
|
||||
' <li><a href="https://www.openstack.org/projects/openstack-faq/">Common Questions</a></li>' +
|
||||
' <li><a href="https://www.openstack.org/blog/">Blog</a></li>' +
|
||||
' <li><a href="https://www.openstack.org/news/">News</a></li>' +
|
||||
'</ul>' +
|
||||
'</div>\n' +
|
||||
'<div class="span-4">' +
|
||||
'<h3>Community</h3>' +
|
||||
'<ul>' +
|
||||
' <li><a href="https://www.openstack.org/community/">User Groups</a></li>' +
|
||||
' <li><a href="https://www.openstack.org/events/">Events</a></li>' +
|
||||
' <li><a href="https://www.openstack.org/jobs/">Jobs</a></li>' +
|
||||
' <li><a href="https://www.openstack.org/foundation/companies/">Companies</a></li>' +
|
||||
' <li><a href="https://docs.opendev.org/opendev/infra-manual/latest/developers.html">Contribute</a></li>' +
|
||||
'</ul>' +
|
||||
'</div>\n' +
|
||||
'<div class="span-4">' +
|
||||
'<h3>Documentation</h3>' +
|
||||
'<ul>' +
|
||||
' <li><a href="https://docs.openstack.org/">OpenStack Manuals</a></li>' +
|
||||
' <li><a href="https://www.openstack.org/software/start/">Getting Started</a></li>' +
|
||||
' <li><a href="https://developer.openstack.org">API Documentation</a></li>' +
|
||||
' <li><a href="https://wiki.openstack.org/">Wiki</a></li>' +
|
||||
'</ul>' +
|
||||
'</div>\n' +
|
||||
'<div class="span-4 last">' +
|
||||
'<h3>Branding & Legal</h3>' +
|
||||
'<ul>' +
|
||||
' <li><a href="https://www.openstack.org/brand/">Logos & Guidelines</a></li>' +
|
||||
' <li><a href="https://www.openstack.org/brand/openstack-trademark-policy/">Trademark Policy</a></li>' +
|
||||
' <li><a href="https://www.openstack.org/privacy/">Privacy Policy</a></li>' +
|
||||
' <li><a href="https://wiki.openstack.org/CLA">OpenStack CLA</a></li>' +
|
||||
'</ul>' +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</div>');
|
||||
}
|
||||
|
@ -10,7 +10,6 @@
|
||||
- opendev/system-config
|
||||
- opendev/ansible-role-puppet
|
||||
- opendev/puppet-bup
|
||||
- opendev/puppet-elastic_recheck
|
||||
- opendev/puppet-ethercalc
|
||||
- opendev/puppet-httpd
|
||||
- opendev/puppet-jeepyb
|
||||
@ -20,7 +19,6 @@
|
||||
- opendev/puppet-pip
|
||||
- opendev/puppet-project_config
|
||||
- opendev/puppet-redis
|
||||
- opendev/puppet-reviewday
|
||||
- opendev/puppet-simpleproxy
|
||||
- opendev/puppet-ssh
|
||||
- opendev/puppet-storyboard
|
||||
@ -82,11 +80,9 @@
|
||||
- opendev/puppet-project_config
|
||||
- opendev/puppet-ethercalc
|
||||
- opendev/puppet-httpd
|
||||
- opendev/puppet-reviewday
|
||||
- opendev/puppet-redis
|
||||
- opendev/puppet-zanata
|
||||
- opendev/puppet-tmpreaper
|
||||
- opendev/puppet-elastic_recheck
|
||||
- opendev/puppet-ulimit
|
||||
- opendev/puppet-logrotate
|
||||
- opendev/puppet-storyboard
|
||||
|
Loading…
Reference in New Issue
Block a user