Close menu

ConfigSeeder 2.27 – Diff View / Default Environment

ConfigSeeder® with Release 2.27 improves security for default values, but also helps on comparing values. Full UTF-8 support has been added for names and descriptions.

Download ConfigSeeder® Management 2.27.0

Download

Download ConfigSeeder® OS Connector 1.5.0

Download

Download ConfigSeeder® Kubernetes Connector 1.7.1

Download

Download ConfigSeeder® Git Connector 1.4.2

Download

Download ConfigSeeder® DB Connector 1.0.0

Download

Download ConfigSeeder® Lookup Plugin for Ansible 1.1.0

Download

Highlight Features

Improved Diff View

Based on customer feedback, ConfigSeeder® now supports an improved display of the differences between two different values. This can be seen in the Compare view, but also in the Restore view. The user can choose between the inline and the side-by-side view.

Restore view:

Support Unicode titles and descriptions

The international ConfigSeeder community requested support for Unicode characters in order to be able to utilise descriptions in the local language. It is now possible to use the characters of the UTF-8 character set for names and descriptions.

Secure default value

Previously there was no way to prevent malicious edit of values assigned to no environment which could lead that values on a productive environment could have been altered by an unprivileged user. With the new release Configuration Values that are not explicitly assigned to an Environment are implicitly assigned to the default environment. Initially the the write mode is set to derived, but can be changed to write to protect the value from being edited without the needed privilege.

All Changes (ConfigSeeder® Management) 2.27.0

Please check the list of breaking changes. For more details please visit https://download.configseeder.com/management/CHANGELOG.md

New Features

  • Support unicode titles and descriptions #1451
  • Add possibility to secure default values (values without environment) #1501
  • Add support for diff view in compare view #1511

Improved

  • Diff support for value restore dialog on a separate page #1512
  • Disable Export & Preview buttons if no configuration groups exist #1121
  • Display tooltips only for enabled controls #1188
  • UX: Return to previous modal upon canceling the revision message modal #1486
  • Filters should not be editable in restore dialog, if they are disabled #1505
  • Improve Template Preview Screen for screens with small heights #1506

Fixed

  • UI: Notification message formatting issue #1496
  • CGO: deleted group not instantly removed from the list #1500
  • Compare page: Double multiline value tooltip #1514
  • Error Message not readable for invalid label name #1515
  • Deleted group still selectable when editing an user #1518
  • History / Undo delete doesn’t work #1524
  • Login with a previously deleted User is not possible #1525

ConfigSeeder 2.26 – Revision Message

ConfigSeeder® with Release 2.26 gives you the option to add revision messages for each change performed.

Download ConfigSeeder® Management 2.26.1

Download

Download ConfigSeeder® OS Connector 1.5.0

Download

Download ConfigSeeder® Kubernetes Connector 1.7.1

Download

Download ConfigSeeder® Git Connector 1.4.2

Download

Download ConfigSeeder® DB Connector 1.0.0

Download

Download ConfigSeeder® Lookup Plugin for Ansible 1.0.0

Download

Highlight Features

Revision Messages

ConfigSeeder® now enables the recording of change descriptions for every configuration change. This helps the team to better understand why certain configuration changes were made.

This is also visible in the detail view:

This new feature can be enabled on a global level or on a specific tenant. For more details, check the documentation for revision messages.

All Changes (ConfigSeeder® Management) 2.26.1

Please check the list of breaking changes. For more details please visit https://download.configseeder.com/management/CHANGELOG.md

New Features

Improved

  • Improved handle overflowing dropdown options #1209
  • Improved tooltips for date inputs #1235
  • Add tooltip for disabled selects #1247
  • Update ConfigSeeder UI libraries to the latest version #1404|#1413
  • Refactor and improve context labels sorting #1441
  • Expand the context field with labels in revert single value dialog #1446
  • Configuration group dropdowns: Select by keyboard #1485

Fixed

  • Сonfiguration group isn’t adding in the preview dialog #1444
  • Js-error when opening a keystore #1458
  • Required environment ends up in requiring also label #1460
  • Hover over labels prevents clicking on label #1461
  • API key renewal: save button is grey when validity is too far in the future #1462
  • Labels not correctly colored in template / preview #1463
  • Conflict detection icon not visible #1467
  • Wrong font in the menu #1471
  • Label: colors are not used #1472
  • Keystore-preview broken #1478
  • Unable to set label when label filter is set #1479
  • Template preview: not getting variables in unsaved template #1480
  • Inconsistent fonts #1481
  • Labels of the configuration group are not shown #1482
  • Password leaked to the frontend #1484
  • Elements inside input not vertically aligned #1488
  • Unable to change configuration group more than two times #1489
  • Expand the context field with labels in revert single value dialog #1446
  • Secured value cannot be changed if single label was added #1493
  • Outdated JWT does not lead to a redirect #1494
  • Assembly history reports wrong results #1495
  • Global labels are not provided in the labels filter #1497
  • Force update velocity engine due vulnerabilities #1498

ConfigSeeder 2.25 – Embrace Labels & DB Connector

ConfigSeeder® with Release 2.25.0 brings a bunch of new interesting features, especially the switch from a single context free text field to the support for Labels

Download ConfigSeeder® Management 2.25.1

Download

Download ConfigSeeder® OS Connector 1.5.0

Download

Download ConfigSeeder® Kubernetes Connector 1.7.0

Download

Download ConfigSeeder® Git Connector 1.3.1

Download

Download ConfigSeeder® DB Connector 1.0.0

Download

Download ConfigSeeder® Lookup Plugin for Ansible 1.0.0

Download

Highlight Features

Labels

Previously, ConfigSeeder® supported the context field as a simple way to classify configurations with a free text field. This could be used, for example, to use values only for a specific cluster.
With the introduction of labels, a new and very powerful instrument is available for assigning and classifying values with different labels.

Assign custom labels to a value

It is also now possible to control permissions using labels. For example, certain values can only be changed by a certain group of people.

Labels can also be grouped by using two colons. This not only helps readability but also enables values not to be entered twice.

Hide non-editable or non-readable values

An important principle in ConfigSeeder® is that it must be visible which values have changed without revealing the actual content. Previously, all values were always displayed, even if the user could not see the current value. The filters now offer the option of displaying only the readable or editable values and hiding the others.

DB Connector (preview)

A new connector is born: ConfigSeeder® DB Connector. It allows any configuration value to be synchronized to a database table or to trigger a stored procedure. This feature is available as a preview and can be licensed for free for one year.

All Changes (ConfigSeeder® Management) 2.25.1

Please check the list of breaking changes. For more details please visit https://download.configseeder.com/management/CHANGELOG.md

New Features

Improved

  • HA Performance and Stability
  • Documentation: Fix references of old names #1398
  • Allow filtering user groups #1407
  • Update devDependencies to the latest version #1414
  • Anonymous access should be possible for /readiness and /liveness #1428
  • Improved handling of encrypted private keys #1431
  • Improve available space for value and key column #1445|#1448

Fixed

  • Column Resizing for Key does not work as expected #1424
  • Pressing Enter does not work as expected in textarea #1427
  • Responsive styles in preview modal #1429
  • Unable to store encrypted private key #1430
  • Changing dropdown value (label, environment) takes two clicks #1434
  • Environment and labels cannot be stored if the label is valid but not the infix #1442
  • Configuration assembly/node history sometimes throws an error #1443
  • Modal dialogs have the scrollbar not in the inner section #1453

ConfigSeeder 2.24

Maintenance Release ConfigSeeder Release 2.24.1 is out.

Download ConfigSeeder® Management 2.24.1

Download

Download ConfigSeeder® OS Connector 1.4.0

Download

Download ConfigSeeder® Kubernetes Connector 1.6.1

Download

Download ConfigSeeder® Git Connector 1.2.2

Download

Download ConfigSeeder® Lookup Plugin for Ansible 1.0.0

Download

Release Notes

ConfigSeeder® with Release 2.24.1 is a maintenance updating all libraries to the latest version and fixing security issues. Nevertheless, there are some noticeable improvements:

GitOps Support 

GitConnector supports besides the JSON output also YAML output file for Kubernetes files.

SQL Server 2019 Support

ConfigSeeder® installations with SQL Server 2019 support have not been able to update, due to license issues with the DB migration framework. This is solved with the Release 2.24.0. Please have a look at the changelog and follow the steps.

All Changes (ConfigSeeder® Management) 2.21.x until 2.24.1

Please check the list of breaking changes. For more details please visit https://download.configseeder.com/management/CHANGELOG.md

Improved

  • Support old SQL Server / Switch from Flyway to Liquibase #1408
  • Update 3rd party libraries to the latest version #1409
  • Expose Server Version and API Version on /.well-known/config-seeder/info #1405
  • Update ConfigSeeder to Java 17 and update libraries to the latest version #1401
  • Improve error handling for upload of invalid license #1186
  • IDP Hint should be configurable per IDP, not for all IDPs #1329
  • Assembly Types in separate submenus per Connector #1380
  • GeneratedAssembly for GitConnector and KubernetesConnector #1381
  • Support multi-instance ConfigSeeder Management #1383
  • Title for cropped values #1385
  • ConfigurationGroup Overview: Quickfilter should filter by name and key #1386
  • Assembly: Preview for generated file assembly #1387
  • Update Libraries for Release 2.22.0 #1392
  • Support resizable columns for configuration value edit page #1393
  • Implement unchecking selected rows functionality #1341
  • Template Assembly with Function Support #1351
  • Upgrade to the latest Angular #1358
  • Template: Show hints about the template engine #1362
  • Expose ConfigSeeders public URL on a config endpoint #1373

Fixed

  • [Bug] Duplicate entry for configuration value duplication in history 1416
  • If no additionalProperties for oauth2 have been provided, NPE is thrown #1397
  • On invalid JWT accessing the .well-known, the error was hidden by another exception #1398
  • Add missing indexes #1382
  • Fix toggle layout #1396
  • Allow template type to be changed for mandatory nodes #1391
  • Don’t expose default assembly if it’s filtered #1152
  • Spring Update (Spring4Shell – ConfigSeeder is not affected, but still libs updated)
  • CNVO: Bulk actions have no effect when target rows are hidden #1273
  • When stacktraces is disabled on the server side, an error is logged #1349
  • Time-based values restrictions are not working well after spring update #1356
  • Filtering for versions disables the button #1370
  • The template engine is not disabled in read-only mode #1372

ConfigSeeder 2.20 with improved templating

ConfigSeeder Release 2.20 is ready to be tried out, offering new ways how to create dynamic configuration files using templating.

Download ConfigSeeder® Management 2.20.4

Download

Download ConfigSeeder® OS Connector 1.4.0

Download

Download ConfigSeeder® Kubernetes Connector 1.6.0

Download

Download ConfigSeeder® Git Connector 1.0.0

Download

Download ConfigSeeder® Lookup Plugin for Ansible 1.0.0

Download

Highlight Features

Templating using Handlebars

ConfigSeeder® already supports templating since version 2.0, but the solution was limited in that only variables could be used within templates. With release 2.20 ConfigSeeder supports templating based on handlebars and thus allows not only the use of variables but also of conditions and functions. So depending on values or filter criteria the configuration files can be structured differently. For more information take a look at chapter 4.3.3.2. Preview for File: Generated & ConfigMap: Template of the manual, where all available functions are documented.

Support of templating using Handlebars and ConfigSeeder® Kubernetes Connector or ConfigSeeder® OS Connector.

GitOps Support 

Some companies rely heavily on GitOps. This has the advantage that all configurations are stored audit-proof and versioned but brings the disadvantage that credentials must be stored encrypted, only a restricted group of people can work with Git, and also the reusability of configuration values is made more difficult. The ConfigSeeder® GitConnector introduced with Release 2.19 brings together the advantages of both worlds and still allows central management of configuration values, but enables configuration values to be automatically synchronized into the correct Git repository. ConfigSeeder® GitConnector also supports Kubernetes ConfigMaps, Secrets, and Sealed Secrets.

Easily manage Configurations, ConfigMaps, and Secrets in Git.

Support for ImagePullSecrets

In Kubernetes, ImagePullSecrets are used to download Docker images from secured repositories. These can now also be created and managed with ConfigSeeder®.

Easily manage Kubernetes ImagePullSecret.

Keystore Assemblies with multiple private keys

Previously, only one private key could be stored in a Keystore. This restriction has been lifted and now multiple private keys can be stored in a Keystore.

Add multiple private keys to a keystore.

All Changes (ConfigSeeder® Management) since version 2.18

Please check the list of breaking changes. For more details please visit https://download.configseeder.com/management/CHANGELOG.md

Added

  • Improve Template Assembly Types / Preview, Support for Handlebars #867
  • Support multiple private keys in Keystore-Assemblies #1240
  • Create assembly for creating ImagePullSecrets #1318
  • Support Assemblies for the Git-Connector #1325
  • Don’t add users IDP roles to the JWT, but use the persisted value. #1316
  • Support additional login hints to be sent to the IDP #1317

Changed and improved

  • Upgrade to alpine 3.14
  • CNVO: final workflow adjusting #1310
  • Improve Design of the Assembly-Type Icons #1327
  • Improve handling shortcuts #1218
  • Update libraries (Security) #1324
  • HA: Drop ETCD Support #436
  • Rename Keys for K8s/OS Connector Assemblies #1016
  • Encryption of data in value provider should be independent of management #1074
  • HA: No need to configure JWT private key. Public key is enough. #1075
  • Key/Value Assemblies: Altered key restrictions for ConfigMaps and Secrets #1202
  • Replace custom overlay with the shared tooltip #1220
  • Adapt overview URLs to be consistent #1266
  • Improve handling invalid date on Preview Page #1267
  • API-Key Overview: Reduce number of requests by using debounces. #1271
  • Keystore Assembly: Increase width of the Dropdown for adding configuration values #1296
  • Keystore preview: Show one subject alternate name per line #1297
  • ActionLog: Deletion in bulk sizes #1308

Fixed

  • Fix bulk selection of API Keys #1272
  • Keystore preview: Double scollbars #1286
  • ConfigurationGroupsKeys are shortened #1313
  • CNVO: Row selection has dropped after cloning #1330
  • CNVO: Bulk cloning is available for row with incorrect key #1332
  • CNVO: Version interval validation is broken after cloning #1333
  • CNVO: Filters got reset after saving #1336
  • Access denied exception on preview of configuration values is not shown #1338
  • API Key renewal broken #1339
  • Only the first API key environment is visible on AKO #1343
  • Switching to assembly tab and back shows unexpected error #1348
  • Copied assemblies should be disabled #1305
  • Fix Warning in Customers log #1312
  • ConfigNodes contained in Assemblies shouldn’t be editable #1066
  • Fixed and predefined configuration nodes in assemblies should not be changeable #1201
  • Allow jump into copy buttons by keyboard #1215
  • Disallow create unique nodes multiple times #1243
  • Confirmation Dialogs: word-break: break-all instead of break-word #1278
  • Keystore file: Error shown when opening preview #1285
  • Handle long names #1287
  • Disable the password for the setup profile doesn’t work any more #1288
  • API Key Creation Error #1289
  • Uploading certificates – error shows wrong filename #1294
  • Keystore preview should not change the alias #1295
  • Counting environment references leads to error #1300
  • ConfigurationValue: Non-deletable values are shown as deletable #1302
  • API Keys filtering is buggy #1307

ConfigSeeder 2.17 with improved certificate management

Just in time for Christmas ConfigSeeder Release 2.17.0 was published for you. There are exciting changes, especially for certificate management.

Download ConfigSeeder® Management 2.17.0

Download

Download ConfigSeeder® Kubernetes Connector 1.3.4

Download

Download ConfigSeeder® OS Connector 1.1.4

Download

Download ConfigSeeder® Lookup Plugin for Ansible 1.0.0

Download

Highlight Features

Certificate Management: Keystore Preview

With this release, it is even easier to verify how the keystore (PKCS12/JKS) is assembled. Regardless of whether the various certificates are outsourced to a separate configuration group or contained within the assembly, the preview shows the certificates and the private key.

ConfigSeeder Certificate Management
A tree based preview shows all certificates and private keys contained in the keystore

Certificate Management: Notification if a certificate is nearing the end of its lifetime 

Unfortunately, this still happens too often nowadays: certificates expire without this being detected in time, resulting in the inability to establish a connection. ConfigSeeder® notifies in time when stored certificates are about to expire and need to be replaced. For more details check our Configuration Documentation.

Lookup Plugin for Ansible has reached 1.0.0

Easily retrieve configuration data used by Ansible Playbooks from ConfigSeeder. Compared with storing configuration data directly in ansible, using the ConfigSeeder Ansible Lookup Plugin has the following advantages:

  • While Ansible Vault is a secure way to store secrets directly in the ansible files, it is quite cumbersome to work with it. The values must be manually encrypted (and decrypted if an encrypted value has to be verified) and the key for the vault must be distributed manually if multiple administrators need to work with the key. Secrets retrieved from ConfigSeeder® are also stored encrypted, but can easily be managed using the Web UI.
  • Configuration data stored in the ansible files can only be used by Ansible playbooks. Configuration data stored in ConfigSeeder® can also be used for other purposes (access with clients, Kubernetes Connector, and/or OS Connector).
  • To see what configuration values are used by ansible, one normally has to look into the source control system storing the Ansible files. With ConfigSeeder®, the configuration data can easily be accessed with the Web UI.

For more details check our feature description about Ansible integration.

All Changes (ConfigSeeder® Management)

Please check the list of breaking changes. For more details please visit https://download.configseeder.com/management/CHANGELOG.md

Added

  • Certificate Management: Show Information for private keys #930
  • Certificate Management: Allow downloading the Keystore #1195
  • Certificate Management: Send notification if a Certificate is nearing the end of its lifetime #1098
  • Configuration Values: Filter and Highlight ConfigurationValues #1238
  • Docker: Add OpenSSL to docker image #1282

Improved

  • Configuration Value Restore: Improve validation of “restore value dialog” inputs #1198
  • Statistics Calling Clients: Colorize and name clients #1221
  • User management: Improve selecting permissions for function role #1228

Fixed

  • Template Preview: content overflowing #1206
  • UX: Multiline String Popup closes when pasting content #1207
  • Assembly: Grid resizing issues #1210
  • UX Assembly: Unable to leave assembly view with browser back #1213
  • Preview Dialog: Scrollbar at the wrong place #1237
  • Assembly Detail: Assembly content not fully visible #1260
  • Configuration Groups: Layout broken #1268
  • Configuration Value: Warning column missing space #1269
  • Configuration Value Restore: Broken restore dialog for assemblies without attributes #1275
  • API Key: Renew not possible when only the validity field has changed #1276

Set up the Kubernetes Connector with a self-managed API Key

In this article, we show how ConfigSeeder Kubernetes Connector can renew its own API Key (aka self-managed API Key), which reduces tedious manual work.

Introduction

In our Blog Article Using the Kubernetes Connector, we suggest a set up with two layers of Kubernetes Connectors:

  • The Infrastructure Kubernetes Connectors are responsible to provide the API Keys for all other Components (including other Kubernetes Connectors)
  • The Application Kubernetes Connectors are responsible to provide ConfigMaps & Secrets used by the Applications.

The reason for this recommendation is that with this setup, only the API Keys for the Infrastructure Kubernetes Connectors have to be created manually. The API Keys required by the Application Kubernetes Connectors can be managed by the Infrastructure Kubernetes Connectors.

This setup has some advantages and some drawbacks. One major drawback is, that the Infrastructure Kubernetes Connectors requires an API Key with far-reaching permissions (normally all configuration groups and one environment), and permission to manage secrets in potentially a lot of namespaces of other applications.

This article describes how to use the Kubernetes Connector with a self-managed API Key – meaning a setup in which the Kubernetes Connectors are able to replace and renew the API Keys they need to access ConfigSeeder®. When all Application Kubernetes Connectors are able to manage their own API Keys, the need for Infrastructure Kubernetes Connectors diminishes.

Problem statement

This article addresses the following situation:

  • The Kubernetes Connectors requires an API Key to access ConfigSeeder®
  • All API Keys have a finite lifetime and therefore must be replaced regularly
  • Creating and renewing API Keys and storing them in Secrets is a troublesome task and should be automated
  • The solution proposed in the Blog Article Series Using the Kubernetes Connector is quite complex and not always required.

Kubernetes Connectors with self-managed API Keys

The following conditions must be met for the Kubernetes Connector to manage an API key stored in a secret:

  • The Kubernetes Connector must be allowed to execute CRUD operations on the Secret holding the API Key
  • The Secret must be annotated with the correct Annotations so the Kubernetes Connector knows it is allowed to manage the Secret
  • An assembly of type Secret: API Key that matches the API Key must exist
  • The Kubernetes Connector must be configured to process this assembly

If these requirements are fulfilled, the Kubernetes Connector will be able to manage its own API Key.

Solution Overview

Set up the Kubernetes Connector with a self-managed API Key
  • In the first step, the User creates the API Key and provisions it on the Kubernetes Cluster.
  • The User then creates an assembly that describes the API Key created in the first step
  • When the Kubernetes Connector is installed, he will replace and manage the Secret holding the API Key based on the Assembly created in the second step.

In the following section, the setup is explained in detail.

Setup

Install a Kubernetes Connector self-managing it’s API Key with the following instructions:

  1. Create the Configuration Group self-managed-apikey and the Environment TEST
  2. Create an API Key to be used by the Kubernetes Connector
    • Choose Type Kubernetes Connector
    • Grant Access to self-managed-apikey and TEST
    • Choose a short Lifetime of 2 days, this API Key will be replaced by the Kubernetes Connector
    • Choose the name Self Managed API Key-API Key (The Kubernetes connector uses the pattern <Application>-<Name> for naming API Keys)


    • Save the API Key in a file called apiKey-test.txt
  3. Open Configuration Group self-managed-apikey, create Assembly Secret: API Key pointing to the secret, choose the same configuration groups, secret name & namespace


  4. Create the Secret containing the API Key and add the required annotations:
    • kubectl create secret generic -n self-managed-apikey-test kubernetes-connector-apikey --from-file=apiKey=apiKey-test.txt
    • kubectl -n self-managed-apikey-test annotate secret kubernetes-connector-apikey configseeder.com/managed=true configseeder.com/module=AKM
  5. Install the Kubernetes Connector
    • helm upgrade -i -n self-managed-apikey-test -f values-selfprovisioning-test.yaml kubernetes-connector-selfmanaged-test configseeder-kubernetes-connector-cronjob-1.3.3+001.tar.gz

Verify the result

Wait until the CronJob was scheduled and verify the result.

First of all, there should be a new API Key visible in ConfigSeeder®. The new API Key was created by the Kubernetes Connector and is therefore marked as generated.


Secondly, the logs should contain the following information:

time="2020-11-04T06:35:16Z" level=info msg="Received ApiKey for secret" assemblyApplication="API Key" assemblyId=f6f5ff57-250d-4837-8036-8c68b9e2052a assemblyName="Self Managed API Key" assemblyType=K8S_SECRET_API_KEY objectName=self-managed-apikey-test/kubernetes-connector-apikey objectType=Secret
time="2020-11-04T06:35:16Z" level=info msg="API Key for secret must be recreated (apiKeyTypeChanged: false, applicationChanged: false, configGroupsChanged: false, environmentChanged: false, lifetimeEnding: true)" assemblyApplication="API Key" assemblyId=f6f5ff57-250d-4837-8036-8c68b9e2052a assemblyName="Self Managed API Key" assemblyType=K8S_SECRET_API_KEY objectName=self-managed-apikey-test/kubernetes-connector-apikey objectType=Secret
time="2020-11-04T06:35:16Z" level=info msg="Updated API Key Secret for Application" assemblyApplication="API Key" assemblyId=f6f5ff57-250d-4837-8036-8c68b9e2052a assemblyName="Self Managed API Key" assemblyType=K8S_SECRET_API_KEY objectName=self-managed-apikey-test/kubernetes-connector-apikey objectType=Secret

Important is, that the API Key was recreated because of an ending lifetime and that the Secret was updated.

Characteristics

Advantages:

  • Only provide an API Key once, afterwards it gets managed automatically
  • No Infrastructure Kubernetes Connectors required
  • Works also for the API Keys of the Infrastructure Kubernetes Connectors

Limitations:

  • It’s easy to reach a situation in which an API Key must be provided manually
  • Delete Namespace or Secret holding the API Key
  • Disable or Delete the Assembly describing the API Key and the Kubernetes Connector will delete its own API Key
  • If access to additional configuration groups is required, the API Key must be renewed manually
    (Unable to create an API Key with more permissions that the current API Key)

Please be aware that it is currently not possible to define an Assembly of type Secret: API Key that grants access to all configuration groups. As a result, a Kubernetes connector that manages it’s own API Key cannot have access to all configuration groups. We plan to lift this restriction in the future.

Conclusion

The presented use of the Kubernetes Connector allows reducing the number of manual tasks required for managing a ConfigSeeder Setup. If the mentioned limitations can be dealt with, you should definitely consider letting the Kubernetes Connector renew their own API Keys.

ConfigSeeder 2.16 improves your Configuration Management

We are pleased to announce version 2.16. With this and the last release, we have mainly improved Kubernetes ConfigMap and Secret previews, but also reduced the number of bugs and improved the UI handling.

Download ConfigSeeder® Management 2.16.1

Download

Download ConfigSeeder® Kubernetes Connector 1.3.3

Download

Download ConfigSeeder® OS Connector 1.1.3

Download

Highlight Features

Preview for Kubernetes Key/Value ConfigMaps and Secrets

ConfigSeeder 2.16 Preview for Kubernetes ConfigMaps and Secrets
Kubernetes ConfigMap Preview

Until now, there was no preview for the Kubernetes Key/Value ConfigMaps and Secrets and therefore it was not immediately clear which values were available as a result to the application. The preview supports the different filter criteria as usual. Values that are marked as secured in the configuration group are also shown secured in the preview.

Statistics for Clients

ConfigSeeder 2.16 Client Statistics
Client Statistics

Especially when many applications obtain values from the ConfigSeeder®, it is not immediately obvious which versions of the clients are currently in use and whether there are still older versions that need to be updated. This is where the new Client Statistics comes in, which can show the different instances per client type and version.

Statistics for API Keys

ConfigSeeder 2.16 API Key Statistics
API Key Statistics

When using many API Keys, it can happen that the overview gets lost and it is not clear anymore which API Keys are still in use. The API Key page optionally shows the usage of the API Key within the last month.

Highlight replaced values

ConfigSeeder Highlight replaced values
 also for Kubernetes ConfigMaps and Secrets
Highlight of replaced values

The templating preview has been given a function to highlight the replacement of values. This increases the overview even in more complex documents. This function is also available for Kubernetes ConfigMaps templates.

All Changes (ConfigSeeder® Management)

Added

Release 2.16.0

  • Configuration Groups: Add copy-icon to group-keys #630
  • Multiline Dialog: Show number of found entries #853
  • Statistics: Calling Clients #883
  • Statistics: Show statistics for API keys #1164
  • ConfigMap/Secret: Preview for assembly types ConfigMap: Key/Value and Secret: Key/Value #1175
  • ConfigMap/Secret: Optional assembly data types with default values and value-types #1185
  • Plugins: Add AnsiblePlugin to ConfigSeederUserAgent #1223

Release 2.15.0

  • Highlight replaced values on preview #961
  • Send avatar in smaller size #1004

Improved

Release 2.16.0

  • Keystore Assembly: Improve generation. Support JKS. #928
  • UX: Introduce more unified tooltip usage #1043
  • UX: Unify reset and save button #1142
  • UX: Improve generated file preview #1189
  • UX: Enable / disable of replace highlight #1192
  • Multiline Dialog: Fix performance issue for slow multiline-edit #1205

Fixed

Release 2.16.0

  • Value Provider: Invalid date leads to exception #1068
  • Assemblies: Inconsistent behavior when adding predefined nodes to an assembly #1157
  • ConfigurationGroup: Delete dialog has unwanted scrollbar if referenced group has too long name #1167
  • Statistics: Distribution Statistics don’t show information for ’empty’ tenant #1173
  • Demo: Test-Users not usable for testing (default-tenant) #1177
  • Assemblies: Respect line breaks in assembly description #1178
  • ConfigurationValue Edit: Clicking on the boolean value shows action bar even if user only can read values #1184
  • User Page: Error on saving if user image not changed #1196
  • Administration: User edit page & user (own) edit page: email issue #1197
  • Configuration group name overflowing #1199
  • ConfigurationGroup: Columns can be removed although there are values with filters assigned #1200
  • ConfigurationValue Edit: DateTime cannot be entered with a keyboard #1203
  • ConfigurationNode: Not null checkboxes on Edit Node Page doesn’t work #1211
  • Administration: Adding data-role with keyboard opens one more dropdown #1212
  • Key/Value Assembly: Preview – Error doesn’t get reset #1217
  • ConfigurationValue Preview: Fix layout of context-input #1226
  • ConfigurationValue History: Fix layout of history item #1230
  • Environments: Translations after sorting broken #1231
  • ConfigurationValue Edit: Version input error when value contains only special chars #1232

Release 2.15.0

  • Fix boolean input label #972
  • Save button not clickable when adding nodes multiple times by keyboard #998
  • Version interval doesn’t change its value and validity on “fast-updating” #999
  • Disable/hide arrows outside navigation tabs #1039
  • Different styling on CNVO for focus #1085
  • Fix modal dialog layout #1099
  • Extra models cleanup: conflict detection #1109
  • Disable clone-action for configuration groups if no filter criteria is enabled #1116
  • Node values cloning impossible if there is key conflict #1117
  • Compare: wrong header cells inputs shown #1119
  • The deprecated key is overflowed on hover #1122
  • Add cursor: pointer & label on hover for env delete button #1123
  • Key changing dialog has a scrollbar if there are errors in key #1126
  • Disable Save button for unchanged forms #1130
  • The last assembly cannot be selected. #1133
  • No scrollbar expected #1136
  • Certificate Modal Dialog Debounce and Flickering #1140
  • Fix history table cell values alignment #1143
  • Edit Node: Cancel should be a button #1144
  • Update documentation structure #1145
  • Align deletion of an environment with deletion of configuration groups #1146
  • Clarify UI of Import Configuration Group Page #1148
  • Preview for File: Generation broken #1149
  • Remove Import-Button from Value Assembly page #1151
  • Create Group Page – Save should be disabled if mandatory data not entered #1154
  • Environment create page: highlight invalid fields #1155
  • Fix assembly description textarea height #1156
  • Wrong alignment of ENV badge at the CNVO #1159
  • Wrong alignment of icons on the key cells at the CNVO #1160
  • Changing Avatar not possible #1168
  • Wrong alignment for avatar if there is only one tenant #1171
  • Changing groups of a user not possible #1172
  • Avatar not shown in User overview #1174

Using ConfigSeeder in a multi-cluster setup

In our article Using the Kubernetes Connector we made a recommendation about how the Kubernetes Connector should be setup up. The goal of this article is to demonstrate how ConfigSeeder and the Kubernetes Connector can be used in a setup with multiple Kubernetes Clusters.

Find out how ConfigSeeder and Kubernetes Connector can be used in a multi-cluster setup.

Scenario

Our imaginary customer works with the following three environments:

  • DEV (Used by the developers for software engineering work)
  • UAT (Test environment used for integration & acceptance tests)
  • PRD (Production environment)

Of course, there are different ways to map these environments to Kubernetes clusters. For example, you can use one dedicated cluster per environment, run all environments on one cluster, or do something in between.

Most companies working with Kubernetes don’t run only one Kubernetes Cluster. Normally, there are at least two clusters, one for running all the test environments and one for running production. If the company also does Kubernetes engineering work, there will probably be an additional dev cluster.

Our imaginary customer has decided to work with the following three clusters:

  • eng (Engineering Cluster)
  • test (Cluster running all the test environments)
  • prod (Cluster running production)

In this article, we assume that the environments DEV and UAT will be run on the test cluster, PRD will have its own prod cluster.

Recommended Setup

For scenarios without special requirements, we recommend a setup with the following guidelines:

  • Firstly, use one ConfigSeeder Management installation in production. As a result, only one ConfigSeeder is responsible for managing the configuration data for all environments.
  • Secondly, set up a set of Kubernetes Connectors responsible for managing the API Keys (also see Using the Kubernetes Connector).
  • In addition, use a second ConfigSeeder Management installation only for testing changes in the ConfigSeeder set up.

These recommendations lead to a setup like shown in the following sketch:

ConfigSeeder and Kubernetes Connector in a multi-cluster setup

Characteristics and responsibilities

  • ConfigSeeder in the prod cluster:
    The ConfigSeeder Management instance deployed in the prod cluster is used used by all other ConfigSeeder components and other applications. As a result you will have a single point of truth regarding configuration data.
  • ConfigSeeder in the test cluster:
    Because all ConfigSeeder components and other applications accesses the ConfigSeeder Management installed in the prod cluster, there is no ConfigSeeder Management installation in the test cluster.
  • Infrastructure Kubernetes Connectors:
    Like mentioned before, all Kubernetes Connectors point to the ConfigSeeder Management instance deployed on the prod cluster. There should be one Kubernetes Connector per environment, also have a look at our blog article Using the Kubernetes Connector.
  • ConfigSeeder in the eng cluster:
    The ConfigSeeder setup deployed in the eng cluster should be similar to the one used in the prod & test Cluster. Like mentioned before, the deployed components are only used for testing purposes (test an upgrade in the eng cluster before you upgrade prod and test.)

Requirements

  • Connectivity:
    The setup shown before has the requirement that all Kubernetes Connectors from all Clusters are able to access the ConfigSeeder Management installed on the prod Cluster.
  • Kubernetes Access Permission:
    Like also described in Using the Kubernetes Connector, the Kubernetes Connectors require permissions to manage ConfigMaps and/or Secrets in different Namespaces.

Tasks

Manually created API Keys

The installation steps described later on requires you to manually create API Keys. The Kubernetes Connectors will use these API Keys to access the ConfigSeeder, also see Using the Kubernetes Connector with Helm 3 – Part 1. You can create the required API Keys in different ways, for instance:

  1. Create one API Key
    • All Kubernetes Connectors in all clusters use the same key (deployed to all clusters)
    • Requires access to all environments
    • Requires access to all configuration groups
    • Only one API Key has to be manually managed
  2. Create one API Key per Cluster
    • All Kubernetes Connectors deployed to one cluster use one key
    • Requires access to all environments relevant for the cluster
    • Requires access to all configuration groups
    • Only one API Key per cluster has to be manually managed
  3. Create one API Key for each Kubernetes Connector
    • A single Kubernetes Connector uses one key
    • Requires access to one environment
    • Requires access to all configuration groups
    • Multiple API Keys have to be manually managed

The keys used in #1 and #2 grant access to a lot of configuration data. In addition, in #1 the key is deployed to multiple clusters. Especially if the security level of your test clusters is lower than on the prod cluster, there is a higher probability that the key leaks to somebody who is not authorized to access all data. Therefore, the risk of granting somebody access to configuration data he shouldn’t be able to see is just too high in #1 and #2.

For this reason, we recommend that you use API Keys with as few permissions as possible. To sum up, we recommend using one API Key per Kubernetes Connector (#2).

Test setup

  1. Setup the test-installation of ConfigSeeder
    • Install ConfigSeeder Management using our Helm Charts
    • Add your license. If you don’t have one yet, contact us for a trial license.
    • Prepare API Key & store it manually in a Secret
    • Install the Kubernetes Connector using our Helm Charts
  2. Play around with ConfigSeeder
    • Let the Kubernetes Connectors create API Keys
    • Setup your applications (and/or ConfigSeeder extensions) to retrieve configuration data from ConfigSeeder.

Production setup

  1. Setup the productive ConfigSeeder Management
    • Install ConfigSeeder Management using our Helm Charts
    • Add your license
  2. Setup an Infrastructure Kubernetes Connector per Environment
    • Prepare API Key & store it manually in a Secret
    • Install the Kubernetes Connector using our Helm Chart
    • Grant the Kubernetes Connector permissions to create ConfigMaps and Secrets in the required Namespaces
    • See Using the Kubernetes Connector with Helm 3 – Part 1 for more detailed installation instructions
    • Repeat for all environments
  3. Setup ConfigSeeder
    • Let the Kubernetes Connectors create API Keys
    • Setup your applications (and/or ConfigSeeder extensions) to retrieve configuration data from ConfigSeeder.

Conclusion

To sum up, ConfigSeeder works well in an environment with multiple Kubernetes clusters. We recommend

  • firstly, and most importantly, a setup with one ConfigSeeder installation used for production use (holds configuration data of all environments) and another one for testing (ConfigSeeder version upgrade, adding additional components, try out new features, …).
  • secondly, the use of Infrastructure Kubernetes Connectors to provide the API Keys for all other components and applications accessing ConfigSeeder. However, the API Keys for these Kubernetes Connectors must be provided manually (chicken-egg problem).

With this setup, you get a single point of truth regarding configuration data for all applications deployed in all your Kubernetes Clusters. If you have any questions regarding the described setup, please don’t hesitate to contact us.