diff --git a/dogen/schema/kwalify_schema.yaml b/dogen/schema/kwalify_schema.yaml
index 79a6b09..05069f3 100644
--- a/dogen/schema/kwalify_schema.yaml
+++ b/dogen/schema/kwalify_schema.yaml
@@ -23,22 +23,14 @@ map:
           value: {type: str, required: True}
           description: {type: str}
   envs:
-    type: map
-    mapping:
-      information:
-        type: seq
-        sequence:
-          - type: map
-            mapping:
-              name: {type: str, required: True}
-              value: {type: any, required: True}
-              description: {type: str}
-      configuration:
-        seq:
-          - map:
-              name: {type: str, required: True}
-              example: {type: any}
-              description: {type: str}
+    type: seq
+    sequence:
+      - type: map
+        mapping:
+          name: {type: str, required: True}
+          value: {type: any}
+          example: {type: any}
+          description: {type: str}
   ports:
     seq:
       - map:
diff --git a/dogen/template_helper.py b/dogen/template_helper.py
index e36693b..09106a7 100644
--- a/dogen/template_helper.py
+++ b/dogen/template_helper.py
@@ -52,14 +52,9 @@ class TemplateHelper(object):
 
         envs = []
 
-        if 'information' in env_variables:
-            for e in env_variables['information']:
-                envs.append(e)
-
-        if 'configuration' in env_variables:
-            for e in env_variables['configuration']:
-                if 'value' in e:
-                    envs.append(e)
+        for env in env_variables:
+            if env.get('value') is not None:
+                envs.append(env)
 
         return envs
 

Remove information and configuration sections in envs
Instead we should have a single `envs` section that contains an array of environment variables. The old "information" envs should have a new key added: `information` (or similar) with boolean value.

This makes it easier to understand the image.yaml.
diff --git a/tests/schemas/good/openshift_amq_6.2_image.yaml b/tests/schemas/good/openshift_amq_6.2_image.yaml
index 2cde6e8..00c95c9 100644
--- a/tests/schemas/good/openshift_amq_6.2_image.yaml
+++ b/tests/schemas/good/openshift_amq_6.2_image.yaml
@@ -12,19 +12,18 @@ labels:
     - name: "io.openshift.s2i.scripts-url"
       value: "image:///usr/local/s2i"
 envs:
-    configuration:
-        - name: AMQ_MESH_SERVICE_NAME
-          example: broker-amq-tcp
-        - name: AMQ_MESH_DISCOVERY_TYPE
-          example: kube
-        - name: AMQ_MESH_SERVICE_NAMESPACE
-          example: my-project
-        - name: AMQ_SPLIT
-          example: true
-          description: "Allow multiple instances to share the same Persistent Volume.  If set to true each instance will use a separate area within the Persistent Volume as its data directory.  Default is unset."
-        - name: AMQ_LOCK_TIMEOUT
-          example: 30
-          description: "If allowing multiple instances to share the same Persistent Volume then wait for this timeout period (seconds) to see if an existing server will terminate before moving to the next instance.  Default is 30 seconds."
+    - name: AMQ_MESH_SERVICE_NAME
+      example: broker-amq-tcp
+    - name: AMQ_MESH_DISCOVERY_TYPE
+      example: kube
+    - name: AMQ_MESH_SERVICE_NAMESPACE
+      example: my-project
+    - name: AMQ_SPLIT
+      example: true
+      description: "Allow multiple instances to share the same Persistent Volume.  If set to true each instance will use a separate area within the Persistent Volume as its data directory.  Default is unset."
+    - name: AMQ_LOCK_TIMEOUT
+      example: 30
+      description: "If allowing multiple instances to share the same Persistent Volume then wait for this timeout period (seconds) to see if an existing server will terminate before moving to the next instance.  Default is 30 seconds."
 ports:
     - value: 8778
     - value: 5672
diff --git a/tests/schemas/good/openshift_datagrid_6.5_image.yaml b/tests/schemas/good/openshift_datagrid_6.5_image.yaml
index 67ff7a1..1cabb3f 100644
--- a/tests/schemas/good/openshift_datagrid_6.5_image.yaml
+++ b/tests/schemas/good/openshift_datagrid_6.5_image.yaml
@@ -14,72 +14,70 @@ labels:
     - name: "io.openshift.s2i.scripts-url"
       value: "image:///usr/local/s2i"
 envs:
-    information:
-        - name: "JBOSS_MODULES_SYSTEM_PKGS"
-          value: "org.jboss.logmanager"
-    configuration:
-        - name: "OPENSHIFT_KUBE_PING_NAMESPACE"
-          example: "myproject"
-          description: "Clustering project namespace."
-        - name: "OPENSHIFT_KUBE_PING_LABELS"
-          example: "application=eap-app"
-          description: "Clustering labels selector."
-        - name: "JAVA_OPTS_APPEND"
-          example: "-Dfoo=bar"
-        - name: "JGROUPS_CLUSTER_PASSWORD"
-          example: "miR0JaDR"
-          description: "A password to control access to the JGroup. Needs to be set consistently cluster-wide. The image default is to use the `OPENSHIFT_KUBE_PING_LABELS` variable value, however the JBoss application templates generate and supply a random value."
-        - name: CACHE_NAMES
-          description: "List of caches to configure. Defaults to default,memcached"
-          example: "addressbook,addressbook_indexed"
-        - name: DEFAULT_CACHE
-          description: "Indicates the default cache for this cache container."
-          example: "addressbook"
-        - name: CACHE_CONTAINER_START
-          description: "Should this cache container be started on server startup, or lazily when requested by a service or deployment. Defaults to LAZY"
-          example: "EAGER"
-        - name: CACHE_CONTAINER_STATISTICS
-          description: "Determines whether or not the cache container should collect statistics. Disable for optimal performance. Default is true"
-          example: "false"
-        - name: TRANSPORT_LOCK_TIMEOUT
-          description: "Infinispan uses a distributed lock to maintain a coherent transaction log during state transfer or remd5suming, which means that only one cache can be doing state transfer or rehashing at the same time. This constraint is in place because more than one cache could be involved in a transaction. This timeout controls the time to wait to acquire a distributed lock. Defaults to 240000"
-          example: "120000"
-        - name: CONTAINER_SECURITY_IDENTITY_ROLE_MAPPER
-          description: "Set a role mapper for this cache container. Valid values are: identity-role-mapper,common-name-role-mapper,cluster-role-mapper,custom-role-mapper"
-          example: "identity-role-mapper"
-        - name: CONTAINER_SECURITY_CUSTOM_ROLE_MAPPER_CLASS
-          description: "Class of the custom principal to role mapper"
-          example: "com.acme.CustomRoleMapper"
-        - name: CONTAINER_SECURITY_ROLES
-          description: "Defines role names and assigns permissions to them."
-          example: "admin=ALL,reader=READ,writer=WRITE"
-        - name: INFINISPAN_CONNECTORS
-          description: "Comma separated list of connectors to configure. Defaults to hotrod,memcached,rest. Beware, if you enable authorization or authentication on your cache you should remove memcached as the protocol is insecure."
-          example: "hotrod"
-        - name: HOTROD_SERVICE_NAME
-          description: "Name of the OpenShift service used to expose HotRod externally."
-          example: "DATAGRID_APP_HOTROD"
-        - name: HOTROD_AUTHENTICATION
-          description: "If defined the hotrod-connectors will be configured with authentication in the ApplicationRealm."
-          example: "true"
-        - name: HOTROD_ENCRYPTION
-          description: "If defined the hotrod-connectors will be configured with encryption in the ApplicationRealm."
-          example: "true"
-        - name: ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH
-          description: "Whether to require client certificate authentication. Defaults to false."
-          example: "true"
-        - name: MEMCACHED_CACHE
-          description: "The name of the cache to use for the Memcached connector."
-          example: "memcached"
-        - name: REST_SECURITY_DOMAIN
-          description: "The security domain to use for authentication/authorization purposes. Defaults to none (no authentication)"
-          example: "other"
-        - name: "USERNAME"
-          example: "openshift"
-          description: "Username for JDG user"
-        - name: "PASSWORD"
-          example: "p@ssw0rd"
-          description: "Password for JDG user"
+    - name: "JBOSS_MODULES_SYSTEM_PKGS"
+      value: "org.jboss.logmanager"
+    - name: "OPENSHIFT_KUBE_PING_NAMESPACE"
+      example: "myproject"
+      description: "Clustering project namespace."
+    - name: "OPENSHIFT_KUBE_PING_LABELS"
+      example: "application=eap-app"
+      description: "Clustering labels selector."
+    - name: "JAVA_OPTS_APPEND"
+      example: "-Dfoo=bar"
+    - name: "JGROUPS_CLUSTER_PASSWORD"
+      example: "miR0JaDR"
+      description: "A password to control access to the JGroup. Needs to be set consistently cluster-wide. The image default is to use the `OPENSHIFT_KUBE_PING_LABELS` variable value, however the JBoss application templates generate and supply a random value."
+    - name: CACHE_NAMES
+      description: "List of caches to configure. Defaults to default,memcached"
+      example: "addressbook,addressbook_indexed"
+    - name: DEFAULT_CACHE
+      description: "Indicates the default cache for this cache container."
+      example: "addressbook"
+    - name: CACHE_CONTAINER_START
+      description: "Should this cache container be started on server startup, or lazily when requested by a service or deployment. Defaults to LAZY"
+      example: "EAGER"
+    - name: CACHE_CONTAINER_STATISTICS
+      description: "Determines whether or not the cache container should collect statistics. Disable for optimal performance. Default is true"
+      example: "false"
+    - name: TRANSPORT_LOCK_TIMEOUT
+      description: "Infinispan uses a distributed lock to maintain a coherent transaction log during state transfer or remd5suming, which means that only one cache can be doing state transfer or rehashing at the same time. This constraint is in place because more than one cache could be involved in a transaction. This timeout controls the time to wait to acquire a distributed lock. Defaults to 240000"
+      example: "120000"
+    - name: CONTAINER_SECURITY_IDENTITY_ROLE_MAPPER
+      description: "Set a role mapper for this cache container. Valid values are: identity-role-mapper,common-name-role-mapper,cluster-role-mapper,custom-role-mapper"
+      example: "identity-role-mapper"
+    - name: CONTAINER_SECURITY_CUSTOM_ROLE_MAPPER_CLASS
+      description: "Class of the custom principal to role mapper"
+      example: "com.acme.CustomRoleMapper"
+    - name: CONTAINER_SECURITY_ROLES
+      description: "Defines role names and assigns permissions to them."
+      example: "admin=ALL,reader=READ,writer=WRITE"
+    - name: INFINISPAN_CONNECTORS
+      description: "Comma separated list of connectors to configure. Defaults to hotrod,memcached,rest. Beware, if you enable authorization or authentication on your cache you should remove memcached as the protocol is insecure."
+      example: "hotrod"
+    - name: HOTROD_SERVICE_NAME
+      description: "Name of the OpenShift service used to expose HotRod externally."
+      example: "DATAGRID_APP_HOTROD"
+    - name: HOTROD_AUTHENTICATION
+      description: "If defined the hotrod-connectors will be configured with authentication in the ApplicationRealm."
+      example: "true"
+    - name: HOTROD_ENCRYPTION
+      description: "If defined the hotrod-connectors will be configured with encryption in the ApplicationRealm."
+      example: "true"
+    - name: ENCRYPTION_REQUIRE_SSL_CLIENT_AUTH
+      description: "Whether to require client certificate authentication. Defaults to false."
+      example: "true"
+    - name: MEMCACHED_CACHE
+      description: "The name of the cache to use for the Memcached connector."
+      example: "memcached"
+    - name: REST_SECURITY_DOMAIN
+      description: "The security domain to use for authentication/authorization purposes. Defaults to none (no authentication)"
+      example: "other"
+    - name: "USERNAME"
+      example: "openshift"
+      description: "Username for JDG user"
+    - name: "PASSWORD"
+      example: "p@ssw0rd"
+      description: "Password for JDG user"
 ports:
     - value: 8443
     - value: 8778
diff --git a/tests/schemas/good/openshift_decisionserver_6.2_image.yaml b/tests/schemas/good/openshift_decisionserver_6.2_image.yaml
index 6fe16a8..3ff05e5 100644
--- a/tests/schemas/good/openshift_decisionserver_6.2_image.yaml
+++ b/tests/schemas/good/openshift_decisionserver_6.2_image.yaml
@@ -11,14 +11,13 @@ labels:
     - name: "io.openshift.tags"
       value: "builder,decisionserver,decisionserver6"
 envs:
-    information:
-        - name: "KIE_SERVER_BPM_DISABLED"
-          value: "true"
-          description: "The BPM capability is disabled in this image."
-        - name: "KIE_SERVER_BPM_UI_DISABLED"
-          value: "true"
-          description: "The BPM UI capability is disabled in this image."
-        - name: "KIE_SERVER_BRP_DISABLED"
-          value: "true"
-          description: "The BRP capability is disabled in this image."
+    - name: "KIE_SERVER_BPM_DISABLED"
+      value: "true"
+      description: "The BPM capability is disabled in this image."
+    - name: "KIE_SERVER_BPM_UI_DISABLED"
+      value: "true"
+      description: "The BPM UI capability is disabled in this image."
+    - name: "KIE_SERVER_BRP_DISABLED"
+      value: "true"
+      description: "The BRP capability is disabled in this image."
 
diff --git a/tests/schemas/good/openshift_decisionserver_6.3_image.yaml b/tests/schemas/good/openshift_decisionserver_6.3_image.yaml
index 1eff437..28ae16f 100644
--- a/tests/schemas/good/openshift_decisionserver_6.3_image.yaml
+++ b/tests/schemas/good/openshift_decisionserver_6.3_image.yaml
@@ -11,14 +11,13 @@ labels:
     - name: "io.openshift.tags"
       value: "builder,decisionserver,decisionserver6"
 envs:
-    information:
-        - name: "KIE_SERVER_BPM_DISABLED"
-          value: "true"
-          description: "The BPM capability is disabled in this image."
-        - name: "KIE_SERVER_BPM_UI_DISABLED"
-          value: "true"
-          description: "The BPM UI capability is disabled in this image."
-        - name: "KIE_SERVER_BRP_DISABLED"
-          value: "true"
-          description: "The BRP capability is disabled in this image."
+    - name: "KIE_SERVER_BPM_DISABLED"
+      value: "true"
+      description: "The BPM capability is disabled in this image."
+    - name: "KIE_SERVER_BPM_UI_DISABLED"
+      value: "true"
+      description: "The BPM UI capability is disabled in this image."
+    - name: "KIE_SERVER_BRP_DISABLED"
+      value: "true"
+      description: "The BRP capability is disabled in this image."
 
diff --git a/tests/schemas/good/openshift_eap_6.4_image.yaml b/tests/schemas/good/openshift_eap_6.4_image.yaml
index 0ab9029..44075d3 100644
--- a/tests/schemas/good/openshift_eap_6.4_image.yaml
+++ b/tests/schemas/good/openshift_eap_6.4_image.yaml
@@ -14,24 +14,22 @@ labels:
     - name: "io.openshift.s2i.scripts-url"
       value: "image:///usr/local/s2i"
 envs:
-    information:
-        - name: "STI_BUILDER"
-          value: "jee"
-        - name: "JBOSS_MODULES_SYSTEM_PKGS"
-          value: "org.jboss.logmanager,jdk.nashorn.api"
-    configuration:
-        - name: "OPENSHIFT_KUBE_PING_NAMESPACE"
-          example: "myproject"
-          description: "Clustering project namespace."
-        - name: "OPENSHIFT_KUBE_PING_LABELS"
-          example: "application=eap-app"
-          description: "Clustering labels selector."
-        - name: "JAVA_OPTS_APPEND"
-          example: "-Dfoo=bar"
-          description: "Server startup options."
-        - name: "MQ_SIMPLE_DEFAULT_PHYSICAL_DESTINATION"
-          example: "false"
-          description: "For backwards compatability, set to true to use 'MyQueue' and 'MyTopic' as physical destination name defaults instead of 'queue/MyQueue' and 'topic/MyTopic'."
+    - name: "STI_BUILDER"
+      value: "jee"
+    - name: "JBOSS_MODULES_SYSTEM_PKGS"
+      value: "org.jboss.logmanager,jdk.nashorn.api"
+    - name: "OPENSHIFT_KUBE_PING_NAMESPACE"
+      example: "myproject"
+      description: "Clustering project namespace."
+    - name: "OPENSHIFT_KUBE_PING_LABELS"
+      example: "application=eap-app"
+      description: "Clustering labels selector."
+    - name: "JAVA_OPTS_APPEND"
+      example: "-Dfoo=bar"
+      description: "Server startup options."
+    - name: "MQ_SIMPLE_DEFAULT_PHYSICAL_DESTINATION"
+      example: "false"
+      description: "For backwards compatability, set to true to use 'MyQueue' and 'MyTopic' as physical destination name defaults instead of 'queue/MyQueue' and 'topic/MyTopic'."
 ports:
     - value: 8443
     - value: 8778
diff --git a/tests/schemas/good/openshift_eap_7.0_image.yaml b/tests/schemas/good/openshift_eap_7.0_image.yaml
index 7c0c4b4..8d392ca 100644
--- a/tests/schemas/good/openshift_eap_7.0_image.yaml
+++ b/tests/schemas/good/openshift_eap_7.0_image.yaml
@@ -14,33 +14,31 @@ labels:
     - name: "io.openshift.s2i.scripts-url"
       value: "image:///usr/local/s2i"
 envs:
-    information:
-        - name: "STI_BUILDER"
-          value: "jee"
-        - name: "JBOSS_MODULES_SYSTEM_PKGS"
-          value: "org.jboss.logmanager,org.jboss.byteman,jdk.nashorn.api"
-    configuration:
-        - name: "OPENSHIFT_KUBE_PING_NAMESPACE"
-          example: "myproject"
-          description: "Clustering project namespace."
-        - name: "OPENSHIFT_KUBE_PING_LABELS"
-          example: "application=eap-app"
-          description: "Clustering labels selector."
-        - name: "JAVA_OPTS_APPEND"
-          example: "-Dfoo=bar"
-          description: "Server startup options."
-        - name: "JBOSS_MODULES_SYSTEM_PKGS_APPEND"
-          example: "org.jboss.byteman"
-          description: "Comma-separated list of package names that will be appended to the JBOSS_MODULES_SYSTEM_PKGS environment variable."
-        - name: "MQ_SIMPLE_DEFAULT_PHYSICAL_DESTINATION"
-          example: "false"
-          description: "For backwards compatability, set to true to use 'MyQueue' and 'MyTopic' as physical destination name defaults instead of 'queue/MyQueue' and 'topic/MyTopic'."
-        - name: "DEFAULT_JMS_CONNECTION_FACTORY"
-          example: "java:jboss/DefaultJMSConnectionFactory"
-          description: "Specify the default JNDI binding for the JMS connection factory (jms-connection-factory='java:jboss/DefaultJMSConnectionFactory')."
-        - name: "CLI_GRACEFUL_SHUTDOWN"
-          example: "true"
-          description: "If set to any non zero length value then the image will prevent shutdown with the TERM signal and will require execution of the shutdown command through jboss-cli."
+    - name: "STI_BUILDER"
+      value: "jee"
+    - name: "JBOSS_MODULES_SYSTEM_PKGS"
+      value: "org.jboss.logmanager,org.jboss.byteman,jdk.nashorn.api"
+    - name: "OPENSHIFT_KUBE_PING_NAMESPACE"
+      example: "myproject"
+      description: "Clustering project namespace."
+    - name: "OPENSHIFT_KUBE_PING_LABELS"
+      example: "application=eap-app"
+      description: "Clustering labels selector."
+    - name: "JAVA_OPTS_APPEND"
+      example: "-Dfoo=bar"
+      description: "Server startup options."
+    - name: "JBOSS_MODULES_SYSTEM_PKGS_APPEND"
+      example: "org.jboss.byteman"
+      description: "Comma-separated list of package names that will be appended to the JBOSS_MODULES_SYSTEM_PKGS environment variable."
+    - name: "MQ_SIMPLE_DEFAULT_PHYSICAL_DESTINATION"
+      example: "false"
+      description: "For backwards compatability, set to true to use 'MyQueue' and 'MyTopic' as physical destination name defaults instead of 'queue/MyQueue' and 'topic/MyTopic'."
+    - name: "DEFAULT_JMS_CONNECTION_FACTORY"
+      example: "java:jboss/DefaultJMSConnectionFactory"
+      description: "Specify the default JNDI binding for the JMS connection factory (jms-connection-factory='java:jboss/DefaultJMSConnectionFactory')."
+    - name: "CLI_GRACEFUL_SHUTDOWN"
+      example: "true"
+      description: "If set to any non zero length value then the image will prevent shutdown with the TERM signal and will require execution of the shutdown command through jboss-cli."
 ports:
     - value: 8443
     - value: 8778
diff --git a/tests/schemas/good/openshift_fuse-camel_6.3_image.yaml b/tests/schemas/good/openshift_fuse-camel_6.3_image.yaml
index 9c5855d..7d577d5 100644
--- a/tests/schemas/good/openshift_fuse-camel_6.3_image.yaml
+++ b/tests/schemas/good/openshift_fuse-camel_6.3_image.yaml
@@ -14,24 +14,22 @@ labels:
     - name: "io.openshift.s2i.scripts-url"
       value: "image:///usr/local/s2i"
 envs:
-    information:
-        - name: "STI_BUILDER"
-          value: "jee"
-        - name: "JBOSS_MODULES_SYSTEM_PKGS"
-          value: "org.jboss.logmanager"
-    configuration:
-        - name: "OPENSHIFT_KUBE_PING_NAMESPACE"
-          example: "myproject"
-          description: "Clustering project namespace."
-        - name: "OPENSHIFT_KUBE_PING_LABELS"
-          example: "application=eap-app"
-          description: "Clustering labels selector."
-        - name: "JAVA_OPTS_APPEND"
-          example: "-Dfoo=bar"
-          description: "Server startup options."
-        - name: "MQ_SIMPLE_DEFAULT_PHYSICAL_DESTINATION"
-          example: "false"
-          description: "For backwards compatability, set to true to use 'MyQueue' and 'MyTopic' as physical destination name defaults instead of 'queue/MyQueue' and 'topic/MyTopic'."
+    - name: "STI_BUILDER"
+      value: "jee"
+    - name: "JBOSS_MODULES_SYSTEM_PKGS"
+      value: "org.jboss.logmanager"
+    - name: "OPENSHIFT_KUBE_PING_NAMESPACE"
+      example: "myproject"
+      description: "Clustering project namespace."
+    - name: "OPENSHIFT_KUBE_PING_LABELS"
+      example: "application=eap-app"
+      description: "Clustering labels selector."
+    - name: "JAVA_OPTS_APPEND"
+      example: "-Dfoo=bar"
+      description: "Server startup options."
+    - name: "MQ_SIMPLE_DEFAULT_PHYSICAL_DESTINATION"
+      example: "false"
+      description: "For backwards compatability, set to true to use 'MyQueue' and 'MyTopic' as physical destination name defaults instead of 'queue/MyQueue' and 'topic/MyTopic'."
 ports:
     - value: 8443
     - value: 8778
diff --git a/tests/schemas/good/openshift_kieserver_6.2_image.yaml b/tests/schemas/good/openshift_kieserver_6.2_image.yaml
index 77134f3..7c84769 100644
--- a/tests/schemas/good/openshift_kieserver_6.2_image.yaml
+++ b/tests/schemas/good/openshift_kieserver_6.2_image.yaml
@@ -11,104 +11,102 @@ labels:
     - name: "io.openshift.tags"
       value: "builder,kieserver,kieserver6"
 envs:
-    information:
-        - name: "KIE_CONTAINER_REDIRECT_ENABLED"
-          value: "false"
-          description: "KIE Container alias ids will not be redirected to generated deployment ids in 6.2."
-    configuration:
-        - name: "KIE_CONTAINER_DEPLOYMENT"
-          example: "containerId=groupId:artifactId:version|c2=g2:a2:v2'"
-          description: "The KIE Containers to deploy. (required)"
-        - name: "KIE_SERVER_BPM_DISABLED"
-          example: "false"
-          description: "Whether to disable the BPM capability. (optional)"
-        - name: "KIE_SERVER_BPM_UI_DISABLED"
-          example: "false"
-          description: "Whether to disable the BPM UI capability. (optional)"
-        - name: "KIE_SERVER_BRM_DISABLED"
-          example: "false"
-          description: "Whether to disable the BRM capability. (optional)"
-        - name: "KIE_SERVER_BRP_DISABLED"
-          example: "false"
-          description: "Whether to disable the BRP capability. (optional)"
-        - name: "KIE_SERVER_DOMAIN"
-          example: "other"
-          description: "JAAS LoginContext domain that shall be used to authenticate users when using JMS. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_POOL_SIZE"
-          example: "1"
-          description: "BPM Executor pool size. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_RETRY_COUNT"
-          example: "3"
-          description: "BPM Executor retry count. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_INTERVAL"
-          example: "3"
-          description: "BPM Executor interval. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_INITIAL_DELAY"
-          example: "100"
-          description: "BPM Executor initial dealy. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_TIMEUNIT"
-          example: "SECONDS"
-          description: "BPM Executor timeunit. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_JMS"
-          example: "true"
-          description: "Whether to use JMS for BPM Executor. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_JMS_QUEUE"
-          example: "queue/KIE.SERVER.EXECUTOR"
-          description: "BPM JNDI name of executor queue for JMS. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_JMS_TRANSACTED"
-          example: "false"
-          description: "Whether to transact JMS for BPM Executor. (optional)"
-        - name: "KIE_SERVER_FILTER_CLASSES"
-          example: "true"
-          description: "Whether remoteable classes in the kjar should be filtered. (optional)"
-        - name: "KIE_SERVER_HOST"
-          example: "localhost"
-          description: "The host name to access the KIE Server REST interface. (optional)"
-        - name: "KIE_SERVER_HT_CALLBACK"
-          example: "custom"
-          description: "BPM Human task callback type (mvel, ldap, db, jaas, props, custom). (optional)"
-        - name: "KIE_SERVER_HT_CUSTOM_CALLBACK"
-          example: "org.custom.MyUserGroupCallback"
-          description: "BPM Human task custom callback class (implements UserGroupCallback). (optional)"
-        - name: "KIE_SERVER_HT_USERINFO"
-          example: "custom"
-          description: "BPM Human task UserInfo type (ldap, db, props, custom). (optional)"
-        - name: "KIE_SERVER_HT_CUSTOM_USERINFO"
-          example: "org.custom.MyUserInfo"
-          description: "BPM Human task custom userinfo class (implements UserInfo). (optional)"
-        - name: "KIE_SERVER_ID"
-          example: "kieserver"
-          description: "The KIE Server identifier. (optional)"
-        - name: "KIE_SERVER_JMS_QUEUES_REQUEST"
-          example: "queue/KIE.SERVER.REQUEST"
-          description: "JNDI name of request queue for JMS. (optional)"
-        - name: "KIE_SERVER_JMS_QUEUES_RESPONSE"
-          example: "queue/KIE.SERVER.RESPONSE"
-          description: "JNDI name of response queue for JMS. (optional)"
-        - name: "KIE_SERVER_MBEANS_ENABLED"
-          example: "true"
-          description: "Whether the KIE Server JMX MBeans should be enabled. (optional)"
-        - name: "KIE_SERVER_PASSWORD"
-          example: "kieserver1!"
-          description: "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)"
-        - name: "KIE_SERVER_PERSISTENCE_DIALECT"
-          example: "org.hibernate.dialect.MySQL5Dialect"
-          description: "BPM Hibernate persistence dialect. (optional)"
-        - name: "KIE_SERVER_PERSISTENCE_DS"
-          example: "java:/jboss/datasources/ExampleDS"
-          description: "BPM Hibernate persistence datasource; will default to DB_JNDI. (optional)"
-        - name: "KIE_SERVER_PERSISTENCE_TM"
-          example: "org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform"
-          description: "BPM Hibernate persistence transaction manager. (optional)"
-        - name: "KIE_SERVER_PORT"
-          example: "8080"
-          description: "The port to access the KIE Server REST interface. (optional)"
-        - name: "KIE_SERVER_PROTOCOL"
-          example: "http"
-          description: "The protocol to access the KIE Server REST interface. (optional)"
-        - name: "KIE_SERVER_USER"
-          example: "kieserver"
-          description: "The user name to access the KIE Server REST or JMS interface. (optional)"
+    - name: "KIE_CONTAINER_REDIRECT_ENABLED"
+      value: "false"
+      description: "KIE Container alias ids will not be redirected to generated deployment ids in 6.2."
+    - name: "KIE_CONTAINER_DEPLOYMENT"
+      example: "containerId=groupId:artifactId:version|c2=g2:a2:v2'"
+      description: "The KIE Containers to deploy. (required)"
+    - name: "KIE_SERVER_BPM_DISABLED"
+      example: "false"
+      description: "Whether to disable the BPM capability. (optional)"
+    - name: "KIE_SERVER_BPM_UI_DISABLED"
+      example: "false"
+      description: "Whether to disable the BPM UI capability. (optional)"
+    - name: "KIE_SERVER_BRM_DISABLED"
+      example: "false"
+      description: "Whether to disable the BRM capability. (optional)"
+    - name: "KIE_SERVER_BRP_DISABLED"
+      example: "false"
+      description: "Whether to disable the BRP capability. (optional)"
+    - name: "KIE_SERVER_DOMAIN"
+      example: "other"
+      description: "JAAS LoginContext domain that shall be used to authenticate users when using JMS. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_POOL_SIZE"
+      example: "1"
+      description: "BPM Executor pool size. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_RETRY_COUNT"
+      example: "3"
+      description: "BPM Executor retry count. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_INTERVAL"
+      example: "3"
+      description: "BPM Executor interval. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_INITIAL_DELAY"
+      example: "100"
+      description: "BPM Executor initial dealy. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_TIMEUNIT"
+      example: "SECONDS"
+      description: "BPM Executor timeunit. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_JMS"
+      example: "true"
+      description: "Whether to use JMS for BPM Executor. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_JMS_QUEUE"
+      example: "queue/KIE.SERVER.EXECUTOR"
+      description: "BPM JNDI name of executor queue for JMS. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_JMS_TRANSACTED"
+      example: "false"
+      description: "Whether to transact JMS for BPM Executor. (optional)"
+    - name: "KIE_SERVER_FILTER_CLASSES"
+      example: "true"
+      description: "Whether remoteable classes in the kjar should be filtered. (optional)"
+    - name: "KIE_SERVER_HOST"
+      example: "localhost"
+      description: "The host name to access the KIE Server REST interface. (optional)"
+    - name: "KIE_SERVER_HT_CALLBACK"
+      example: "custom"
+      description: "BPM Human task callback type (mvel, ldap, db, jaas, props, custom). (optional)"
+    - name: "KIE_SERVER_HT_CUSTOM_CALLBACK"
+      example: "org.custom.MyUserGroupCallback"
+      description: "BPM Human task custom callback class (implements UserGroupCallback). (optional)"
+    - name: "KIE_SERVER_HT_USERINFO"
+      example: "custom"
+      description: "BPM Human task UserInfo type (ldap, db, props, custom). (optional)"
+    - name: "KIE_SERVER_HT_CUSTOM_USERINFO"
+      example: "org.custom.MyUserInfo"
+      description: "BPM Human task custom userinfo class (implements UserInfo). (optional)"
+    - name: "KIE_SERVER_ID"
+      example: "kieserver"
+      description: "The KIE Server identifier. (optional)"
+    - name: "KIE_SERVER_JMS_QUEUES_REQUEST"
+      example: "queue/KIE.SERVER.REQUEST"
+      description: "JNDI name of request queue for JMS. (optional)"
+    - name: "KIE_SERVER_JMS_QUEUES_RESPONSE"
+      example: "queue/KIE.SERVER.RESPONSE"
+      description: "JNDI name of response queue for JMS. (optional)"
+    - name: "KIE_SERVER_MBEANS_ENABLED"
+      example: "true"
+      description: "Whether the KIE Server JMX MBeans should be enabled. (optional)"
+    - name: "KIE_SERVER_PASSWORD"
+      example: "kieserver1!"
+      description: "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)"
+    - name: "KIE_SERVER_PERSISTENCE_DIALECT"
+      example: "org.hibernate.dialect.MySQL5Dialect"
+      description: "BPM Hibernate persistence dialect. (optional)"
+    - name: "KIE_SERVER_PERSISTENCE_DS"
+      example: "java:/jboss/datasources/ExampleDS"
+      description: "BPM Hibernate persistence datasource; will default to DB_JNDI. (optional)"
+    - name: "KIE_SERVER_PERSISTENCE_TM"
+      example: "org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform"
+      description: "BPM Hibernate persistence transaction manager. (optional)"
+    - name: "KIE_SERVER_PORT"
+      example: "8080"
+      description: "The port to access the KIE Server REST interface. (optional)"
+    - name: "KIE_SERVER_PROTOCOL"
+      example: "http"
+      description: "The protocol to access the KIE Server REST interface. (optional)"
+    - name: "KIE_SERVER_USER"
+      example: "kieserver"
+      description: "The user name to access the KIE Server REST or JMS interface. (optional)"
 ports:
     - value: 8778
 cmd:
diff --git a/tests/schemas/good/openshift_kieserver_6.3_image.yaml b/tests/schemas/good/openshift_kieserver_6.3_image.yaml
index 010b945..bea0c84 100644
--- a/tests/schemas/good/openshift_kieserver_6.3_image.yaml
+++ b/tests/schemas/good/openshift_kieserver_6.3_image.yaml
@@ -11,103 +11,102 @@ labels:
     - name: "io.openshift.tags"
       value: "builder,kieserver,kieserver6"
 envs:
-    configuration:
-        - name: "KIE_CONTAINER_DEPLOYMENT"
-          example: "containerId=groupId:artifactId:version|c2=g2:a2:v2'"
-          description: "The KIE Containers to deploy. (required)"
-        - name: "KIE_CONTAINER_REDIRECT_ENABLED"
-          example: "true"
-          description: "Whether KIE Container alias ids will be redirected to generated deployment ids. (optional)"
-        - name: "KIE_SERVER_BPM_DISABLED"
-          example: "false"
-          description: "Whether to disable the BPM capability. (optional)"
-        - name: "KIE_SERVER_BPM_UI_DISABLED"
-          example: "false"
-          description: "Whether to disable the BPM UI capability. (optional)"
-        - name: "KIE_SERVER_BRM_DISABLED"
-          example: "false"
-          description: "Whether to disable the BRM capability. (optional)"
-        - name: "KIE_SERVER_BRP_DISABLED"
-          example: "false"
-          description: "Whether to disable the BRP capability. (optional)"
-        - name: "KIE_SERVER_DOMAIN"
-          example: "other"
-          description: "JAAS LoginContext domain that shall be used to authenticate users when using JMS. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_POOL_SIZE"
-          example: "1"
-          description: "BPM Executor pool size. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_RETRY_COUNT"
-          example: "3"
-          description: "BPM Executor retry count. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_INTERVAL"
-          example: "3"
-          description: "BPM Executor interval. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_INITIAL_DELAY"
-          example: "100"
-          description: "BPM Executor initial dealy. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_TIMEUNIT"
-          example: "SECONDS"
-          description: "BPM Executor timeunit. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_JMS"
-          example: "true"
-          description: "Whether to use JMS for BPM Executor. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_JMS_QUEUE"
-          example: "queue/KIE.SERVER.EXECUTOR"
-          description: "BPM JNDI name of executor queue for JMS. (optional)"
-        - name: "KIE_SERVER_EXECUTOR_JMS_TRANSACTED"
-          example: "false"
-          description: "Whether to transact JMS for BPM Executor. (optional)"
-        - name: "KIE_SERVER_FILTER_CLASSES"
-          example: "true"
-          description: "Whether remoteable classes in the kjar should be filtered. (optional)"
-        - name: "KIE_SERVER_HOST"
-          example: "localhost"
-          description: "The host name to access the KIE Server REST interface. (optional)"
-        - name: "KIE_SERVER_HT_CALLBACK"
-          example: "custom"
-          description: "BPM Human task callback type (mvel, ldap, db, jaas, props, custom). (optional)"
-        - name: "KIE_SERVER_HT_CUSTOM_CALLBACK"
-          example: "org.custom.MyUserGroupCallback"
-          description: "BPM Human task custom callback class (implements UserGroupCallback). (optional)"
-        - name: "KIE_SERVER_HT_USERINFO"
-          example: "custom"
-          description: "BPM Human task UserInfo type (ldap, db, props, custom). (optional)"
-        - name: "KIE_SERVER_HT_CUSTOM_USERINFO"
-          example: "org.custom.MyUserInfo"
-          description: "BPM Human task custom userinfo class (implements UserInfo). (optional)"
-        - name: "KIE_SERVER_ID"
-          example: "kieserver"
-          description: "The KIE Server identifier. (optional)"
-        - name: "KIE_SERVER_JMS_QUEUES_REQUEST"
-          example: "queue/KIE.SERVER.REQUEST"
-          description: "JNDI name of request queue for JMS. (optional)"
-        - name: "KIE_SERVER_JMS_QUEUES_RESPONSE"
-          example: "queue/KIE.SERVER.RESPONSE"
-          description: "JNDI name of response queue for JMS. (optional)"
-        - name: "KIE_SERVER_MBEANS_ENABLED"
-          example: "true"
-          description: "Whether the KIE Server JMX MBeans should be enabled. (optional)"
-        - name: "KIE_SERVER_PASSWORD"
-          example: "kieserver1!"
-          description: "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)"
-        - name: "KIE_SERVER_PERSISTENCE_DIALECT"
-          example: "org.hibernate.dialect.MySQL5Dialect"
-          description: "BPM Hibernate persistence dialect. (optional)"
-        - name: "KIE_SERVER_PERSISTENCE_DS"
-          example: "java:/jboss/datasources/ExampleDS"
-          description: "BPM Hibernate persistence datasource; will default to DB_JNDI. (optional)"
-        - name: "KIE_SERVER_PERSISTENCE_TM"
-          example: "org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform"
-          description: "BPM Hibernate persistence transaction manager. (optional)"
-        - name: "KIE_SERVER_PORT"
-          example: "8080"
-          description: "The port to access the KIE Server REST interface. (optional)"
-        - name: "KIE_SERVER_PROTOCOL"
-          example: "http"
-          description: "The protocol to access the KIE Server REST interface. (optional)"
-        - name: "KIE_SERVER_USER"
-          example: "kieserver"
-          description: "The user name to access the KIE Server REST or JMS interface. (optional)"
+    - name: "KIE_CONTAINER_DEPLOYMENT"
+      example: "containerId=groupId:artifactId:version|c2=g2:a2:v2'"
+      description: "The KIE Containers to deploy. (required)"
+    - name: "KIE_CONTAINER_REDIRECT_ENABLED"
+      example: "true"
+      description: "Whether KIE Container alias ids will be redirected to generated deployment ids. (optional)"
+    - name: "KIE_SERVER_BPM_DISABLED"
+      example: "false"
+      description: "Whether to disable the BPM capability. (optional)"
+    - name: "KIE_SERVER_BPM_UI_DISABLED"
+      example: "false"
+      description: "Whether to disable the BPM UI capability. (optional)"
+    - name: "KIE_SERVER_BRM_DISABLED"
+      example: "false"
+      description: "Whether to disable the BRM capability. (optional)"
+    - name: "KIE_SERVER_BRP_DISABLED"
+      example: "false"
+      description: "Whether to disable the BRP capability. (optional)"
+    - name: "KIE_SERVER_DOMAIN"
+      example: "other"
+      description: "JAAS LoginContext domain that shall be used to authenticate users when using JMS. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_POOL_SIZE"
+      example: "1"
+      description: "BPM Executor pool size. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_RETRY_COUNT"
+      example: "3"
+      description: "BPM Executor retry count. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_INTERVAL"
+      example: "3"
+      description: "BPM Executor interval. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_INITIAL_DELAY"
+      example: "100"
+      description: "BPM Executor initial dealy. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_TIMEUNIT"
+      example: "SECONDS"
+      description: "BPM Executor timeunit. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_JMS"
+      example: "true"
+      description: "Whether to use JMS for BPM Executor. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_JMS_QUEUE"
+      example: "queue/KIE.SERVER.EXECUTOR"
+      description: "BPM JNDI name of executor queue for JMS. (optional)"
+    - name: "KIE_SERVER_EXECUTOR_JMS_TRANSACTED"
+      example: "false"
+      description: "Whether to transact JMS for BPM Executor. (optional)"
+    - name: "KIE_SERVER_FILTER_CLASSES"
+      example: "true"
+      description: "Whether remoteable classes in the kjar should be filtered. (optional)"
+    - name: "KIE_SERVER_HOST"
+      example: "localhost"
+      description: "The host name to access the KIE Server REST interface. (optional)"
+    - name: "KIE_SERVER_HT_CALLBACK"
+      example: "custom"
+      description: "BPM Human task callback type (mvel, ldap, db, jaas, props, custom). (optional)"
+    - name: "KIE_SERVER_HT_CUSTOM_CALLBACK"
+      example: "org.custom.MyUserGroupCallback"
+      description: "BPM Human task custom callback class (implements UserGroupCallback). (optional)"
+    - name: "KIE_SERVER_HT_USERINFO"
+      example: "custom"
+      description: "BPM Human task UserInfo type (ldap, db, props, custom). (optional)"
+    - name: "KIE_SERVER_HT_CUSTOM_USERINFO"
+      example: "org.custom.MyUserInfo"
+      description: "BPM Human task custom userinfo class (implements UserInfo). (optional)"
+    - name: "KIE_SERVER_ID"
+      example: "kieserver"
+      description: "The KIE Server identifier. (optional)"
+    - name: "KIE_SERVER_JMS_QUEUES_REQUEST"
+      example: "queue/KIE.SERVER.REQUEST"
+      description: "JNDI name of request queue for JMS. (optional)"
+    - name: "KIE_SERVER_JMS_QUEUES_RESPONSE"
+      example: "queue/KIE.SERVER.RESPONSE"
+      description: "JNDI name of response queue for JMS. (optional)"
+    - name: "KIE_SERVER_MBEANS_ENABLED"
+      example: "true"
+      description: "Whether the KIE Server JMX MBeans should be enabled. (optional)"
+    - name: "KIE_SERVER_PASSWORD"
+      example: "kieserver1!"
+      description: "The password to access the KIE Server REST or JMS interface. Must be different than username; must not be root, admin, or administrator; must contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), and 1 non-alphanumeric symbol(s). (optional)"
+    - name: "KIE_SERVER_PERSISTENCE_DIALECT"
+      example: "org.hibernate.dialect.MySQL5Dialect"
+      description: "BPM Hibernate persistence dialect. (optional)"
+    - name: "KIE_SERVER_PERSISTENCE_DS"
+      example: "java:/jboss/datasources/ExampleDS"
+      description: "BPM Hibernate persistence datasource; will default to DB_JNDI. (optional)"
+    - name: "KIE_SERVER_PERSISTENCE_TM"
+      example: "org.hibernate.service.jta.platform.internal.JBossAppServerJtaPlatform"
+      description: "BPM Hibernate persistence transaction manager. (optional)"
+    - name: "KIE_SERVER_PORT"
+      example: "8080"
+      description: "The port to access the KIE Server REST interface. (optional)"
+    - name: "KIE_SERVER_PROTOCOL"
+      example: "http"
+      description: "The protocol to access the KIE Server REST interface. (optional)"
+    - name: "KIE_SERVER_USER"
+      example: "kieserver"
+      description: "The user name to access the KIE Server REST or JMS interface. (optional)"
 ports:
     - value: 8778
 cmd:
diff --git a/tests/schemas/good/openshift_processserver_6.3_image.yaml b/tests/schemas/good/openshift_processserver_6.3_image.yaml
index cc5b047..e2eef92 100644
--- a/tests/schemas/good/openshift_processserver_6.3_image.yaml
+++ b/tests/schemas/good/openshift_processserver_6.3_image.yaml
@@ -11,11 +11,10 @@ labels:
     - name: "io.openshift.tags"
       value: "builder,processserver,processserver6"
 envs:
-    information:
-        - name: "KIE_SERVER_BPM_UI_DISABLED"
-          value: "true"
-          description: "The BPM UI capability is disabled in this image."
-        - name: "KIE_SERVER_BRP_DISABLED"
-          value: "true"
-          description: "The BRP capability is disabled in this image."
+    - name: "KIE_SERVER_BPM_UI_DISABLED"
+      value: "true"
+      description: "The BPM UI capability is disabled in this image."
+    - name: "KIE_SERVER_BRP_DISABLED"
+      value: "true"
+      description: "The BRP capability is disabled in this image."
 
diff --git a/tests/schemas/good/openshift_sso_7.0_image.yaml b/tests/schemas/good/openshift_sso_7.0_image.yaml
index 0c43530..6ddc915 100644
--- a/tests/schemas/good/openshift_sso_7.0_image.yaml
+++ b/tests/schemas/good/openshift_sso_7.0_image.yaml
@@ -14,30 +14,28 @@ labels:
     - name: "io.openshift.s2i.scripts-url"
       value: "image:///usr/local/s2i"
 envs:
-     information:
-        - name: "STI_BUILDER"
-          value: "jee"
-        - name: "JBOSS_MODULES_SYSTEM_PKGS"
-          value: "org.jboss.logmanager,jdk.nashorn.api"
-     configuration:
-        - name: "OPENSHIFT_KUBE_PING_NAMESPACE"
-          example: "myproject"
-          description: "Clustering project namespace."
-        - name: "OPENSHIFT_KUBE_PING_LABELS"
-          example: "application=sso"
-          description: "Clustering labels selector."
-        - name: "JAVA_OPTS_APPEND"
-          example: "-Dfoo=bar"
-          description: "Server startup options."
-        - name: "MQ_SIMPLE_DEFAULT_PHYSICAL_DESTINATION"
-          example: "false"
-          description: "For backwards compatability, set to true to use 'MyQueue' and 'MyTopic' as physical destination name defaults instead of 'queue/MyQueue' and 'topic/MyTopic'."
-        - name: "SSO_ADMIN_USERNAME"
-          example: "admin"
-          description: "SSO administrator username"
-        - name: "SSO_ADMIN_PASSWORD"
-          example: "hardtoguess"
-          description: "SSO administrator password"
+    - name: "STI_BUILDER"
+      value: "jee"
+    - name: "JBOSS_MODULES_SYSTEM_PKGS"
+      value: "org.jboss.logmanager,jdk.nashorn.api"
+    - name: "OPENSHIFT_KUBE_PING_NAMESPACE"
+      example: "myproject"
+      description: "Clustering project namespace."
+    - name: "OPENSHIFT_KUBE_PING_LABELS"
+      example: "application=sso"
+      description: "Clustering labels selector."
+    - name: "JAVA_OPTS_APPEND"
+      example: "-Dfoo=bar"
+      description: "Server startup options."
+    - name: "MQ_SIMPLE_DEFAULT_PHYSICAL_DESTINATION"
+      example: "false"
+      description: "For backwards compatability, set to true to use 'MyQueue' and 'MyTopic' as physical destination name defaults instead of 'queue/MyQueue' and 'topic/MyTopic'."
+    - name: "SSO_ADMIN_USERNAME"
+      example: "admin"
+      description: "SSO administrator username"
+    - name: "SSO_ADMIN_PASSWORD"
+      example: "hardtoguess"
+      description: "SSO administrator password"
 ports:
     - value: 8443
     - value: 8778
diff --git a/tests/schemas/good/openshift_webserver-tomcat7_3.0_image.yaml b/tests/schemas/good/openshift_webserver-tomcat7_3.0_image.yaml
index c7e5991..ca482f1 100644
--- a/tests/schemas/good/openshift_webserver-tomcat7_3.0_image.yaml
+++ b/tests/schemas/good/openshift_webserver-tomcat7_3.0_image.yaml
@@ -14,31 +14,29 @@ labels:
     - name: "io.openshift.s2i.scripts-url"
       value: "image:///usr/local/s2i"
 envs:
-    information:
-        - name: "STI_BUILDER"
-          value: "jee"
-    configuration:
-        - name: JWS_ADMIN_USERNAME
-          example: jwsadmin
-        - name: JWS_ADMIN_PASSWORD
-          example: p5sw0rdd
-        - name: JWS_HTTPS_CERTIFICATE_DIR
-          example: /opt/webserver/conf
-        - name: JWS_HTTPS_CERTIFICATE
-          example: server.crt
-        - name: JWS_HTTPS_CERTIFICATE_KEY
-          example: server.key
-        - name: JWS_HTTPS_CERTIFICATE_PASSWORD
-          example: $tr0nGPaSs?
-        - name: CATALINA_OPTS_APPEND
-          example: -Dfoo=bar
-        - name: JWS_REALM_USERTABLE
-        - name: JWS_REALM_USERNAME_COL
-        - name: JWS_REALM_USERCRED_COL
-        - name: JWS_REALM_USERROLE_TABLE
-        - name: JWS_REALM_ROLENAME_COL
-        - name: DB_SERVICE_PREFIX_MAPPING
-          example: test-postgresql=TEST_POSTGRESQL,test-mysql=TEST_MYSQL
+    - name: "STI_BUILDER"
+      value: "jee"
+    - name: JWS_ADMIN_USERNAME
+      example: jwsadmin
+    - name: JWS_ADMIN_PASSWORD
+      example: p5sw0rdd
+    - name: JWS_HTTPS_CERTIFICATE_DIR
+      example: /opt/webserver/conf
+    - name: JWS_HTTPS_CERTIFICATE
+      example: server.crt
+    - name: JWS_HTTPS_CERTIFICATE_KEY
+      example: server.key
+    - name: JWS_HTTPS_CERTIFICATE_PASSWORD
+      example: $tr0nGPaSs?
+    - name: CATALINA_OPTS_APPEND
+      example: -Dfoo=bar
+    - name: JWS_REALM_USERTABLE
+    - name: JWS_REALM_USERNAME_COL
+    - name: JWS_REALM_USERCRED_COL
+    - name: JWS_REALM_USERROLE_TABLE
+    - name: JWS_REALM_ROLENAME_COL
+    - name: DB_SERVICE_PREFIX_MAPPING
+      example: test-postgresql=TEST_POSTGRESQL,test-mysql=TEST_MYSQL
 ports:
     - value: 8443
     - value: 8778
diff --git a/tests/schemas/good/openshift_webserver-tomcat8_3.0_image.yaml b/tests/schemas/good/openshift_webserver-tomcat8_3.0_image.yaml
index b7039a3..83c9812 100644
--- a/tests/schemas/good/openshift_webserver-tomcat8_3.0_image.yaml
+++ b/tests/schemas/good/openshift_webserver-tomcat8_3.0_image.yaml
@@ -14,31 +14,29 @@ labels:
     - name: "io.openshift.s2i.scripts-url"
       value: "image:///usr/local/s2i"
 envs:
-    information:
-        - name: "STI_BUILDER"
-          value: "jee"
-    configuration:
-        - name: JWS_ADMIN_USERNAME
-          example: jwsadmin
-        - name: JWS_ADMIN_PASSWORD
-          example: p5sw0rdd
-        - name: JWS_HTTPS_CERTIFICATE_DIR
-          example: /opt/webserver/conf
-        - name: JWS_HTTPS_CERTIFICATE
-          example: server.crt
-        - name: JWS_HTTPS_CERTIFICATE_KEY
-          example: server.key
-        - name: JWS_HTTPS_CERTIFICATE_PASSWORD
-          example: $tr0nGPaSs?
-        - name: CATALINA_OPTS_APPEND
-          example: -Dfoo=bar
-        - name: JWS_REALM_USERTABLE
-        - name: JWS_REALM_USERNAME_COL
-        - name: JWS_REALM_USERCRED_COL
-        - name: JWS_REALM_USERROLE_TABLE
-        - name: JWS_REALM_ROLENAME_COL
-        - name: DB_SERVICE_PREFIX_MAPPING
-          example: test-postgresql=TEST_POSTGRESQL,test-mysql=TEST_MYSQL
+    - name: "STI_BUILDER"
+      value: "jee"
+    - name: JWS_ADMIN_USERNAME
+      example: jwsadmin
+    - name: JWS_ADMIN_PASSWORD
+      example: p5sw0rdd
+    - name: JWS_HTTPS_CERTIFICATE_DIR
+      example: /opt/webserver/conf
+    - name: JWS_HTTPS_CERTIFICATE
+      example: server.crt
+    - name: JWS_HTTPS_CERTIFICATE_KEY
+      example: server.key
+    - name: JWS_HTTPS_CERTIFICATE_PASSWORD
+      example: $tr0nGPaSs?
+    - name: CATALINA_OPTS_APPEND
+      example: -Dfoo=bar
+    - name: JWS_REALM_USERTABLE
+    - name: JWS_REALM_USERNAME_COL
+    - name: JWS_REALM_USERCRED_COL
+    - name: JWS_REALM_USERROLE_TABLE
+    - name: JWS_REALM_ROLENAME_COL
+    - name: DB_SERVICE_PREFIX_MAPPING
+      example: test-postgresql=TEST_POSTGRESQL,test-mysql=TEST_MYSQL
 ports:
     - value: 8443
     - value: 8778
diff --git a/tests/test_dockerfile.py b/tests/test_dockerfile.py
index 2ffa5a6..3ab2885 100644
--- a/tests/test_dockerfile.py
+++ b/tests/test_dockerfile.py
@@ -176,3 +176,17 @@ class TestDockerfile(unittest.TestCase):
             dockerfile = f.read()
             regex = re.compile(r'LABEL name=\"\$JBOSS_IMAGE_NAME\" \\\s+version=\"\$JBOSS_IMAGE_VERSION\" \\\s+architecture=\"x86_64\" \\\s+com.redhat.component=\"someimage\" \\\s+description=\"This is a nice image\"',  re.MULTILINE)
             self.assertRegexpMatches(dockerfile, regex)
+
+    # https://github.com/jboss-dockerfiles/dogen/issues/127
+    def test_generating_env_variables(self):
+        with open(self.yaml, 'ab') as f:
+            f.write("envs:\n  - name: INFO_ENV\n    value: 0\n  - name: CONFIG_ENV\n    example: 1234\n  - name: COMBINED_ENV\n    value: set_value\n    example: example_value\n    description: This is a description".encode())
+
+        generator = Generator(self.log, self.args)
+        generator.configure()
+        generator.render_from_template()
+
+        with open(os.path.join(self.target, "Dockerfile"), "r") as f:
+            dockerfile = f.read()
+            regex = re.compile(r'ENV JBOSS_IMAGE_NAME=\"someimage\" \\\s+JBOSS_IMAGE_VERSION=\"1\" \\\s+INFO_ENV=\"0\" \\\s+COMBINED_ENV=\"set_value\" \n',  re.MULTILINE)
+            self.assertRegexpMatches(dockerfile, regex)

pip install -e .
parse_log_pytest
requirements.txt
pytest pytest-cov mock
apt-get update apt-get install -y gcc
3.9
requirements.txt
pytest --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning
certifi==2025.1.31
charset-normalizer==3.4.1
coverage==7.8.0
docopt==0.6.2
-e git+https://github.com/jboss-dockerfiles/dogen.git@ac07abe63ec944d407e1d06669a09deeacc4e720#egg=dogen
exceptiongroup==1.2.2
idna==3.10
iniconfig==2.1.0
Jinja2==3.1.6
MarkupSafe==3.0.2
mock==5.2.0
packaging==24.2
pluggy==1.5.0
pykwalify==1.8.0
pytest==8.3.5
pytest-cov==6.0.0
python-dateutil==2.9.0.post0
PyYAML==6.0.2
requests==2.32.3
ruamel.yaml==0.18.10
ruamel.yaml.clib==0.2.12
six==1.17.0
tomli==2.2.1
urllib3==2.3.0

name: dogen
channels:
  - defaults
  - https://repo.anaconda.com/pkgs/main
  - https://repo.anaconda.com/pkgs/r
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=main
  - _openmp_mutex=5.1=1_gnu
  - ca-certificates=2025.2.25=h06a4308_0
  - ld_impl_linux-64=2.40=h12ee557_0
  - libffi=3.4.4=h6a678d5_1
  - libgcc-ng=11.2.0=h1234567_1
  - libgomp=11.2.0=h1234567_1
  - libstdcxx-ng=11.2.0=h1234567_1
  - ncurses=6.4=h6a678d5_0
  - openssl=3.0.16=h5eee18b_0
  - pip=25.0=py39h06a4308_0
  - python=3.9.21=he870216_1
  - readline=8.2=h5eee18b_0
  - setuptools=75.8.0=py39h06a4308_0
  - sqlite=3.45.3=h5eee18b_0
  - tk=8.6.14=h39e8969_0
  - tzdata=2025a=h04d1e81_0
  - wheel=0.45.1=py39h06a4308_0
  - xz=5.6.4=h5eee18b_1
  - zlib=1.2.13=h5eee18b_1
  - pip:
      - certifi==2025.1.31
      - charset-normalizer==3.4.1
      - coverage==7.8.0
      - docopt==0.6.2
      - exceptiongroup==1.2.2
      - idna==3.10
      - iniconfig==2.1.0
      - jinja2==3.1.6
      - markupsafe==3.0.2
      - mock==5.2.0
      - packaging==24.2
      - pluggy==1.5.0
      - pykwalify==1.8.0
      - pytest==8.3.5
      - pytest-cov==6.0.0
      - python-dateutil==2.9.0.post0
      - pyyaml==6.0.2
      - requests==2.32.3
      - ruamel-yaml==0.18.10
      - ruamel-yaml-clib==0.2.12
      - six==1.17.0
      - tomli==2.2.1
      - urllib3==2.3.0
prefix: /opt/conda/envs/dogen

tests/test_dockerfile.py::TestDockerfile::test_generating_env_variables
tests/test_dockerfile.py::TestDockerfile::test_debug_port tests/test_dockerfile.py::TestDockerfile::test_default_cmd_user tests/test_dockerfile.py::TestDockerfile::test_generating_description_label tests/test_dockerfile.py::TestDockerfile::test_generating_maintainer_label tests/test_dockerfile.py::TestDockerfile::test_set_cmd tests/test_dockerfile.py::TestDockerfile::test_set_cmd_user tests/test_dockerfile.py::TestDockerfile::test_set_entrypoint tests/test_dockerfile.py::TestDockerfile::test_volumes
dogen/schema/kwalify_schema.yaml dogen/template_helper.py
dogen/schema/kwalify_schema.yaml dogen/template_helper.py