hitachienergy / epiphany

Cloud and on-premises automation for Kubernetes centered industrial grade solutions.
Apache License 2.0
138 stars 107 forks source link

[BUG] Disable validation of infrastructure documents in upgrade mode #3266

Closed przemyslavic closed 2 years ago

przemyslavic commented 2 years ago

Describe the bug Now in upgrade mode when we provide an additional -f flag pointing to the full manifest (generated by epicli init --full), running epicli upgrade command fails on infrastructure document validation. This is because some fields have the value SET_BY_AUTOMATION that are only set in apply mode.

14:57:02 INFO cli.src.schema.SchemaValidator - Starting step
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: epiphany-cluster - awsconfiglogging
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/features
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/feature-mappings
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/shared-config
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/kubernetes-master
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/helm
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/applications
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/rook
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/node-exporter
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/filebeat
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/firewall
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/kubernetes-node
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/logging
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/opensearch-dashboards
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/prometheus
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/grafana
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/zookeeper
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/jmx-exporter
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/kafka
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/kafka-exporter
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/postgresql
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/postgres-exporter
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/haproxy
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/rabbitmq
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/opensearch
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/repository
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: configuration/image-registry
14:57:02 INFO cli.src.schema.SchemaValidator - Validating: infrastructure/virtual-machine - SET_BY_AUTOMATION
14:57:02 ERROR cli.src.schema.SchemaValidator - Failed validating: infrastructure/virtual-machine
14:57:02 ERROR cli.src.schema.SchemaValidator - 'SET_BY_AUTOMATION' is not of type 'boolean'

Failed validating 'type' in schema['properties']['specification']['properties']['associate_public_ip']:
    {'type': 'boolean'}

On instance['specification']['associate_public_ip']:
    'SET_BY_AUTOMATION'
14:57:02 INFO cli.src.schema.SchemaValidator - Step finished in: 0.71s
14:57:02 INFO cli.src.commands.Upgrade - Step finished in: 2.48s
14:57:02 ERROR epicli - Schema validation error, see the error above.

How to reproduce Steps to reproduce the behavior:

  1. Deploy any cluster (epicli apply)
  2. Run epicli init -p provider -n name --full
  3. Run epicli upgrade -b /path/to/build/directory -f /path/to/full/manifest.yml

Expected behavior The upgrade should be successful.

Config files If applicable, add config files to help explain your problem.

Environment

epicli version: [2.0.2dev]

Additional context In upgrade mode we should disable the validation of infrastructure documents.


DoD checklist