                     type        : changes.type ? filename(data.machineType)
                     tags        : data.tags.items
                     preemptible : changes.preemptible ? data.scheduling.preemptible
+                    storage     : changes.storage ? @_storage(data)
+                    external    : data.networkInterfaces?[0]?.accessConfigs?[0]?.natIP   # keep same static external ip if possible
                     cb          : cb
             (cb) =>
                 if no_change or data.status == 'RUNNING' or opts.start

            os          : undefined      # see https://github.com/stephenplusplus/gce-images#accepted-os-names
            tags        : undefined      # array of strings
            preemptible : false
            storage     : undefined      # 'read_write' provides read/write access to Google cloud storage
            external    : true
            cb          : required
        dbg = @dbg("create_vm(name=#{opts.name})")
        config = {}

                    changes.type = opts.type
                if opts.zone? and filename(data.zone) != opts.zone
                    changes.zone = opts.zone
                if opts.storage? and @_storage(data) != opts.storage
                    changes.storage = opts.storage
                if not opts.boot_size_GB?
                    cb(); return
                boot_disk = undefined
