Skip to content

Releases: Teradata/stacki

05.02.02.00

04 Feb 22:24
Compare
Choose a tag to compare

Feature

  • On SLES machines, make sure the primary network is always associated with eth0

    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
  • Remove the basic sudoers file from the 'ws' package since we overwrite it anyway.

Git

  • starting 05.02.02.00

05.02.01.00

21 Jan 17:57
Compare
Choose a tag to compare

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 any scope_map that
    also had a null, even if it wasn't an environment 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

15 Jan 20:06
Compare
Choose a tag to compare

same as 5.2.0

05.02.00.00

21 Jan 17:47
Compare
Choose a tag to compare

Going all in in the Teradata versioning scheme
Please don't judge us

5.2.0

15 Jan 19:57
Compare
Choose a tag to compare

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

11 Jan 23:52
Compare
Choose a tag to compare

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
);

5.2rc1

11 Jan 23:50
Compare
Choose a tag to compare

Branch of 5.1rc13

5.1rc13

11 Jan 23:50
Compare
Choose a tag to compare

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:

    1. The host on the other end of the port is a KVM server
      and multiple VMs are actively sending network traffic.

    2. 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
    appings

    Make integration test --use-src flag use the new use_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

11 Jan 23:49
Compare
Choose a tag to compare

Feature

  • stack dump refactor

    Move 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.sh

    The new --use-src flag for set-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 via vagrant 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 the last.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., a dbs 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

30 Oct 19:06
Compare
Choose a tag to compare

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 ib

    IB 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 * and create 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