github Teradata/stacki stacki-5.2rc2
5.2rc2

latest releases: stacki-5.6.5, stacki-5.6.4, stacki-5.6.3...
5 years ago

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 own shadow 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 not release
  • [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
);

Don't miss a new stacki release

NewReleases is sending notifications on new releases.