All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.netflix.spinnaker.config.KeelCliConfiguration.kt Maven / Gradle / Ivy

There is a newer version: 1.4.1
Show newest version
package com.netflix.spinnaker.config

import com.fasterxml.jackson.databind.ObjectMapper
import com.netflix.spinnaker.keel.api.ResourceSpec
import com.netflix.spinnaker.keel.api.ec2.ClusterSpec
import com.netflix.spinnaker.keel.api.ec2.EC2_CLUSTER_V1_1
import com.netflix.spinnaker.keel.api.support.ExtensionRegistry
import com.netflix.spinnaker.keel.api.support.register
import com.netflix.spinnaker.keel.ec2.jackson.registerKeelEc2ApiModule
import com.netflix.spinnaker.keel.serialization.configureForKeel
import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.context.annotation.Bean
import org.springframework.stereotype.Component
import java.time.Clock
import javax.annotation.PostConstruct

@Component
class KeelCliConfiguration(
  private val extensionRegistry: ExtensionRegistry,
  private val objectMappers: List
) {
  private val log: Logger = LoggerFactory.getLogger(javaClass)

  @Bean
  fun clock(): Clock = Clock.systemDefaultZone()

  @PostConstruct
  fun registerApiExtensionsWithObjectMappers() {
    objectMappers.forEach {
      it.configureForKeel()
      it.registerKeelEc2ApiModule()
    }
  }

  @PostConstruct
  fun registerResourceSpecSubtypes() {
    extensionRegistry.register(ClusterSpec::class.java, EC2_CLUSTER_V1_1.kind.toString())
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy