Releases: Teradata/stacki
05.02.02.00
Feature
-
On SLES machines, make sure the
primary
network is always associated witheth0
This is done by setting the 'profile.force_eth0' attribute to true.
-
stack load
Initial work to load the json output of
stack dump
. More to come. -
Create a Dockerized Frontend for development
This is not full Docker support, this is only for internal
development. See docker/README.md for details. -
Make systemd default target an attribute
Systemd default target is currently set to multi-user.
For VMS systems this is required to be graphical.
Making this an attribute gives us the option to
override it, as required -
Add an IP sanity check to 'stack report system'
Bugfix
-
stack load dropped network zone
-
UTC is now a selecteable timezone in the wizard
-
produce a better error message when trying to add an existing interface
-
Fix how named.conf and zone files are created
- Currently, Stacki does not have support for resolving
names that are in address spaces with netmasks of 23-8.
This commit remedies this. - Aliases were generated incorrectly. This commit fixes it.
- Add comments about requirements and design
- Fix tests for the new report zones output
- Currently, Stacki does not have support for resolving
-
Remove the basic sudoers file from the 'ws' package since we overwrite it anyway.
Git
- starting 05.02.02.00
05.02.01.00
Feature
-
Allow release notes to be generated between any git commits
Move release notes generation to the build package. This way, it can
be used for any other pallet as well.
Bugfix
-
Fix SQL logic when collapsing down lists of scoped data for host
Because a host might have a
null
environment ID, the query was matching anyscope_map
that
also had a null, even if it wasn't anenvironment
scoped scope_map. Change the queries to che
ck scope type when comparing the foreign keys with an OR in the WHERE clause. -
Fixed two bugs in 'load storage controller'
The command was not correctly handling raid 0 with slots of '*', or non-integer array id's
5.2.0.0
same as 5.2.0
05.02.00.00
Going all in in the Teradata versioning scheme
Please don't judge us
5.2.0
Feature
-
Support parsing m7800 firmware information on firmware 3.6.8010
-
Long domainnames
Increase the
zone
in the networks table to 255 (rfc1035 limit), and
increase the network name to 128 (arbitrary but was 32).
Git
- starting 5.2.0
5.2rc2
Feature
-
Support parsing Mellanox 3.6.8010 IB partition output
-
Add yoyo-migrations to handle database schema changes
-
Refactor the storage controller commands to use the new scoping scheme
There are now scope level commands for
storage controller
:stack add [appliance, environment, host, os] storage controller stack list [appliance, environment, host, os] storage controller stack remove [appliance, environment, host, os] storage controller
These versions of the commands operate on the global scope:
stack add storage controller stack list storage controller stack remove storage controller
-
Refactor Mellanox7800 firmware functions to be more robust
-
[IB] Sync the hostname of the switch.
If the 'name' field of the switch's mgmt0 interface is set, that name will be used. Otherwise
use the name in Stacki. -
Refactor the route comands to use the new scoping scheme
-
Better Shadow Attributes
Split the shadow attributes out of the
cluster
database and into a
their ownshadow
database. This is the start of a locked down secrets
database where host keys and other things can be stored. -
Pretty print when output_format=json
-
Added a new 'stack verify xml' command to report XML errors across multiple node, graph files.
'stack list host profile' also has better XML parse error reporting now. -
Refactor the firewall comands to use a new scoping scheme.
Bugfix
-
Wait for the quit command to run before terminating the process
-
[IB] Make setting the subnet manager more reliable.
-
Under redhat, device routes need to output the interface
-
Fix ask() to pass along kwargs so things like timeout work
-
SLES11 use chkconfig for message queue
- Call out libffi-devel for installation (zmq needs this)
- Use
os.version
notrelease
-
[IB] Properly parse partition members with GUID=ALL
-
Missed a spot in the Vagrantfile which broke the
--use-src
flag in KVM -
Make sure commands using
Command::command
get the correct usage message on exception
Breaking Change
There is new a database schema for the storage_controller table. This SQL will update an exist
ing DB, but you will lose your existing controller configurations in the process:
DROP TABLE IF EXISTS storage_controller;
CREATE TABLE storage_controller (
id INT AUTO_INCREMENT PRIMARY KEY,
scope_map_id INT NOT NULL,
enclosure INT NOT NULL,
adapter INT NOT NULL,
slot INT NOT NULL,
raidlevel VARCHAR(16) NOT NULL,
arrayid INT NOT NULL,
options VARCHAR(512) NOT NULL,
INDEX (enclosure, adapter, slot),
FOREIGN KEY (scope_map_id) REFERENCES scope_map(id) ON DELETE CASCADE
);
There is new a database schema for the routes. This SQL
will update an existing DB, but you will lose your existing
routes in the process:
DROP TABLE IF EXISTS global_routes;
DROP TABLE IF EXISTS os_routes;
DROP TABLE IF EXISTS appliance_routes;
DROP TABLE IF EXISTS node_routes;
DROP TABLE IF EXISTS environment_routes;
CREATE TABLE routes (
id INT AUTO_INCREMENT PRIMARY KEY,
scope_map_id INT NOT NULL,
address VARCHAR(32) NOT NULL,
netmask VARCHAR(32) NOT NULL,
gateway VARCHAR(32) DEFAULT NULL,
subnet_id INT DEFAULT NULL,
interface VARCHAR(32) DEFAULT NULL,
INDEX (address),
INDEX (interface),
FOREIGN KEY (scope_map_id) REFERENCES scope_map(id) ON DELETE CASCADE,
FOREIGN KEY (subnet_id) REFERENCES subnets(id) ON DELETE CASCADE
);
mysqladmin --defaults-extra-file=/etc/root.my.cnf --user=root create shadow
mysql --defaults-extra-file=/etc/root.my.cnf
> grant select,update,insert,delete,lock tables on shadow.* to apache@localhost;
> grant select,update,insert,delete,lock tables on shadow.* to apache@HOSTNAME;
mysql --defaults-extra-file=/etc/root.my.cnf --user=root shadow
> DROP TABLE IF EXISTS attributes;
CREATE TABLE attributes (
Scope enum ('global', 'os', 'environment', 'appliance', 'host'),
Attr varchar(128) NOT NULL,
Value text,
ScopeID int(11)
);
You can no longer pass network=all
or output-network=all
to
the add firewall
commands. That is the default, so if you want
the firewall rule to apply to all networks, just don't specify
the network
or output-network
parameters. This is how it really
worked in the previous code, specifying all
was just a nop.
There is new a database schema for the firewall rules. This SQL
will update an existing DB, but you will lose your existing
firewall rules in the process:
DROP TABLE IF EXISTS global_firewall;
DROP TABLE IF EXISTS os_firewall;
DROP TABLE IF EXISTS appliance_firewall;
DROP TABLE IF EXISTS node_firewall;
DROP TABLE IF EXISTS environment_firewall;
CREATE TABLE scope_map (
id INT AUTO_INCREMENT PRIMARY KEY,
scope ENUM('global','appliance','os','environment', 'host') NOT NULL,
appliance_id INT DEFAULT NULL,
os_id INT DEFAULT NULL,
environment_id INT DEFAULT NULL,
node_id INT DEFAULT NULL,
INDEX (scope),
FOREIGN KEY (appliance_id) REFERENCES appliances(id) ON DELETE CASCADE,
FOREIGN KEY (os_id) REFERENCES oses(id) ON DELETE CASCADE,
FOREIGN KEY (environment_id) REFERENCES environments(id) ON DELETE CASCADE,
FOREIGN KEY (node_id) REFERENCES nodes(id) ON DELETE CASCADE
);
CREATE TABLE firewall_rules (
id INT AUTO_INCREMENT PRIMARY KEY,
scope_map_id INT NOT NULL,
name VARCHAR(256) NOT NULL,
table_type ENUM('nat','filter','mangle','raw') NOT NULL,
chain VARCHAR(256) NOT NULL,
action VARCHAR(256) NOT NULL,
service VARCHAR(256) NOT NULL,
protocol VARCHAR(256) NOT NULL,
in_subnet_id INT DEFAULT NULL,
out_subnet_id INT DEFAULT NULL,
flags VARCHAR(256) DEFAULT NULL,
comment VARCHAR(256) DEFAULT NULL,
INDEX (name),
INDEX (table_type),
FOREIGN KEY (scope_map_id) REFERENCES scope_map(id) ON DELETE CASCADE,
FOREIGN KEY (in_subnet_id) REFERENCES subnets(id) ON DELETE CASCADE,
FOREIGN KEY (out_subnet_id) REFERENCES subnets(id) ON DELETE CASCADE
);
5.2rc1
Branch of 5.1rc13
5.1rc13
Feature
-
If more than one host is mapped to an ethernet switch port, put that port in trunk mode.
A trunk allows all VLAN traffic to pass, and when we see multiple
hosts mapped to one port, we know that either:-
The host on the other end of the port is a KVM server
and multiple VMs are actively sending network traffic. -
The port on the ethernet switch is connected to another
ethernet switch (a true trunk).
In either case, we must tell the switch to pass all traffic.
-
-
Move setup-src.py to use_the_source in a tools package.
This file can be imported as a module to allow other tools to access the source-to-installed m
appingsMake integration test
--use-src
flag use the newuse_the_source.py
.stacki-cluster-up
will also be updated to use this tool. -
Refresh Python Packages to Latest
Bugfix
-
If /etc/fstab is corrupted, an exception will occur and no partitioning instructions will be w
ritten.If /etc/fstab is corrupted, output-partition.py will produce and exception which results
in a zero-length /tmp/partition.xml which causes the install to fail.
Git
- starting stacki-5.1rc13
5.1rc12
Feature
-
stack dump
refactorMove code from pluggins into commands:
stack dump api
stack dump appliance
stack dump bootaction
stack dump box
stack dump cart
stack dump environment
stack dump group
stack dump host
stack dump network
stack dump os
stack dump pallet
-
Add
--use-src
flag to integration test set-up.shThe new
--use-src
flag forset-up.sh
will cause the local Stacki source to be mounted insi
de the VM that is created. The ISO provided files are then removed and replaced with symlinks to
the local source files. This allows you to run test against the local source changes, or to log
in viavagrant ssh frontend
to test out stuff manually on the command line.
Bugfix
-
Make sure the smq-* services run last in systemd.
And, if anyone needs to run a service last, just associate it
with thelast.target
. -
Need to send the set of VLAN ids for all non-frontend components.
The code was only looking at
backend
appliances for the VLAN ids. When
a host would switch to another appliance (e.g., adbs
appliance), then
the dbs appliance would be skipped and the switch would not be configured
correctly for this appliance. -
'list pallet command' shouldn't traceback if there are stack commands with syntax errors
-
'list pallet command' shouldn't traceback if there are dotfiles in the path
-
IB switch credential attrs needed to be updated in the producer code as well
Git
- starting 5.1rc12
5.1rc11
Feature
-
Produces a list of health messages for every ethernet and InfiniBand switch in the system.
The effect is the output from
stack list host status
will look something like:HOST STATE SSH ethernet-667-1 online up stacki-667-4 online up stacki-667-5 online up infiniband-667-9 online up -
remove deprecated switch commands:
- add switch
- load switch hostfile
- load switchfile
-
Give ib switches their own commands.
Adds the following commands:
add switch partition
add switch partition member
list switch partition
list switch partition member
remove switch partition
remove switch partition member
set switch partition membership
set switch partition options
sync switch ibIB switches no longer use the interfaces table to store partition information.
New attributes are required to use IB switches. An attribute, 'switch_type=infiniband' must b
e set on IB switches.
Bugfix
-
match IB switch credential attribute names to the ones used in the rest of the code.
Both switch types now use the format:
- switch_username
- switch_password
-
sync switch ib now correctly syncs partition flags
IB subsystem no longer uses the options field in the networking table. A new attribute, 'ibfa
bric' controls only the determination about which switches shouldn't be subnet managers in a mul
ti-switch fabric.Replaced 'hostname' parameter with 'member' in the ib switch commands.
-
Rollback all package version changes besides itsdangerous
-
ItsDangerous is now itsdangerous again
Reset the
python-packages/versions.json
to pick up the current
quantum state of the ItsDangerous/itsdangerous package. Then update
the initrd/updates for installation kernels. -
pip2src freeze dependency versions
-
do not install ansible on backend
-
Fix substring search in the
stack help
command -
The
output-network
of a firewall rule should generate a-o
flag -
report host interface
for redhat was incorrectly checking for the existance of an interfacRe
name, not the network. -
CNAMEs in
report zones
were broken because the code was using the IP address, not the deviRe
, to look up entries in the aliases table. -
Add
list switch *
andcreate host switch mapping
to the list of commands that require suRe
for the ReST API. -
Fix the code that compares a host's hash on the node versus the computed hash for the host oRe
the frontend. -
Need to put a newline in the code that adds
net.ipv4.ip_forward
to /etc/sysctl.conf.Without this fix, the line /etc/sysctl.conf looks like:
# net.ipv6.conf.all.disable_ipv6 = 1net.ipv4.ip_forward = 1
Rather than the correct form of:
net.ipv4.ip_forward = 1```
-
Disable standard status message during second stage of YaST installer
-
itsdangerous is now ItsDangerous
Breaking Change
-
Introduces new database tables
DROP TABLE IF EXISTS ib_partitions;
CREATE TABLE ib_partitions (
id int(11) NOT NULL auto_increment,
switch int(11) NOT NULL references nodes on delete cascade,
part_key int(11) NOT NULL,
part_name varchar(128) NOT NULL,
options varchar(128) NOT NULL default '',
PRIMARY KEY (id),
INDEX (part_name)
);DROP TABLE IF EXISTS ib_memberships;
CREATE TABLE ib_memberships (
id int(11) NOT NULL auto_increment,
switch int(11) NOT NULL references nodes on delete cascade,
interface int(11) NOT NULL references networks on delete cascade,
part_name int(11) NOT NULL references ib_partitions on delete cascade,
member_type varchar(32) NOT NULL default 'limited',
PRIMARY KEY (id),
INDEX (switch, part_name, interface)
);
Git
- starting 5.1rc11