Using Custom Webhook to Create a Kubecost Stage in Spinnaker

Adding the example webhook below to Spinnaker will enable a custom stage to query Kubecost for recommendations on a container. More info on Spinnaker custom webhooks.

webhook:
  preconfigured:
  - label: "Kubecost: Get Sizing"
    type: getRequestSizing
    enabled: true
    description: Custom stage to get request sizing for a running container
    method: GET
    url: "${parameterValues['kubecost_url']}//model/savings/requestSizing?algorithm=max-headroom&window=${parameterValues['time_window']}&targetCPUUtilization=${parameterValues['target_cpu_utilization']}&targetRAMUtilization=${parameterValues['target_ram_utilization']}&filterContainers=${parameterValues['container_name']}&filterControllers=${parameterValues['controller_name']}&filterNamespaces=${parameterValues['namespace']}"
    parameters:
      - label: "Kubecost API URL"
        name: kubecost_url
        description: "Fully qualified Url to the requestSizing api"
        type: string
      - label: "Controller Name"
        name: controller_name
        description: "Name of the controller"
        type: string
      - label: "Container Name"
        name: container_name
        description: "Name of the container within the deployment"
        type: string
      - label: "Namespace"
        name: namespace
        description: "Namespace where controller and container are running"
        type: string
      - label: "Target CPU Utilization"
        name: target_cpu_utilization
        description: "Target CPU utilization for the recommendation"
        type: string
        defaultValue: 0.65
      - label: "Target RAM Utilization"
        name: target_ram_utilization
        description: "Target RAM utilization for the recommendation"
        type: string
        defaultValue: 0.65
      - label: "Time Window"
        name: time_window
        description: "Time window to look back to build recommendation [format: xd]"
        type: string
        defaultValue: "7d"

Last updated