Application Auto Scaling

2 resource kinds. Generated from the operator's CRD schemas.

API Group: aws.konfig.io/v1alpha1

AppScalingPolicy # GA

AppScalingPolicy is the Schema for managing Application Auto Scaling policies.

kubectl get appscalingpolicies · example on GitHub

Example

# AppScalingPolicy — Application Auto Scaling
# Full-options example generated from the CRD schema. Optional fields are
# included with sample values; delete what you don't need. Field reference:
# https://konfig-konector.io/docs/applicationautoscaling.html#appscalingpolicy
apiVersion: aws.konfig.io/v1alpha1
kind: AppScalingPolicy
metadata:
  name: example-appscalingpolicy
  namespace: default
spec:
  policyName: example-appscalingpolicy
  policyType: TargetTrackingScaling
  providerRef:
    name: example-appscalingpolicy
    region: us-east-1
  scalableDimension: example
  serviceNamespace: example
  stepScalingConfiguration:
    adjustmentType: ChangeInCapacity
    cooldown: 1
    metricAggregationType: Average
    minAdjustmentMagnitude: 1
    stepAdjustments:
    - metricIntervalLowerBound: 1
      metricIntervalUpperBound: 1
      scalingAdjustment: 1
  targetRef:
    name: example-target
  targetTrackingConfiguration:
    disableScaleIn: false
    predefinedMetricType: example
    resourceLabel: example
    scaleInCooldown: 1
    scaleOutCooldown: 1
    targetValue: 1

Spec

FieldTypeRequiredDescription
policyNamestringyesPolicyName is the name of the scaling policy.
policyTypeenumyesPolicyType is the scaling policy type. Allowed: TargetTrackingScaling, StepScaling
providerRefobject—ProviderRef selects the AWSProvider (account/region) this resource is reconciled against.
providerRef.namestringyesName of a cluster-scoped AWSProvider.
providerRef.regionstring—Region overrides the provider's region for this resource only.
resourceIdstring—ResourceID of the scalable target (inline alternative to targetRef).
scalableDimensionstring—ScalableDimension of the scalable target (inline alternative to targetRef).
serviceNamespacestring—ServiceNamespace of the scalable target (inline alternative to targetRef).
stepScalingConfigurationobject—StepScalingConfiguration configures a StepScaling policy.
stepScalingConfiguration.adjustmentTypeenumyesAdjustmentType: ChangeInCapacity, PercentChangeInCapacity, or ExactCapacity. Allowed: ChangeInCapacity, PercentChangeInCapacity, ExactCapacity
stepScalingConfiguration.cooldowninteger—Cooldown between scaling activities in seconds.
stepScalingConfiguration.metricAggregationTypeenum—MetricAggregationType: Average, Minimum, or Maximum. Allowed: Average, Minimum, Maximum
stepScalingConfiguration.minAdjustmentMagnitudeinteger—MinAdjustmentMagnitude for PercentChangeInCapacity adjustments.
stepScalingConfiguration.stepAdjustmentsarray<object>yesStepAdjustments are the scaling steps.
stepScalingConfiguration.stepAdjustments[].metricIntervalLowerBoundnumber—MetricIntervalLowerBound is the lower bound of the step (difference from threshold).
stepScalingConfiguration.stepAdjustments[].metricIntervalUpperBoundnumber—MetricIntervalUpperBound is the upper bound of the step (difference from threshold).
stepScalingConfiguration.stepAdjustments[].scalingAdjustmentintegeryesScalingAdjustment is the amount to scale by (interpreted per adjustmentType).
targetRefobject—TargetRef references a ScalableTarget CR whose serviceNamespace, resourceId and scalableDimension the policy applies to.
targetRef.namestringyesName of a ScalableTarget CR in the same namespace.
targetTrackingConfigurationobject—TargetTrackingConfiguration configures a TargetTrackingScaling policy.
targetTrackingConfiguration.disableScaleInboolean—DisableScaleIn prevents the policy from scaling in.
targetTrackingConfiguration.predefinedMetricTypestringyesPredefinedMetricType is the predefined metric to track, e.g.
targetTrackingConfiguration.resourceLabelstring—ResourceLabel identifies a specific resource for ALBRequestCountPerTarget.
targetTrackingConfiguration.scaleInCooldowninteger—ScaleInCooldown is the cooldown (seconds) after a scale-in activity.
targetTrackingConfiguration.scaleOutCooldowninteger—ScaleOutCooldown is the cooldown (seconds) after a scale-out activity.
targetTrackingConfiguration.targetValuenumberyesTargetValue is the target value for the metric.

Status

FieldTypeRequiredDescription
awsProviderobject—AWSProvider confirms the account and region this resource was reconciled against.
awsProvider.accountIdstring—AccountID the resource lives in.
awsProvider.namestring—Name of the AWSProvider used; empty when the operator's own credentials were used.
awsProvider.regionstring—Region the resource lives in (empty for global services).
conditionsarray<object>—Conditions describe the current state of the resource.
conditions[].lastTransitionTimestringyeslastTransitionTime is the last time the condition transitioned from one status to another.
conditions[].messagestringyesmessage is a human readable message indicating details about the transition.
conditions[].observedGenerationinteger—observedGeneration represents the .metadata.generation that the condition was set based upon.
conditions[].reasonstringyesreason contains a programmatic identifier indicating the reason for the condition's last transition.
conditions[].statusenumyesstatus of the condition, one of True, False, Unknown. Allowed: True, False, Unknown
conditions[].typestringyestype of condition in CamelCase or in foo.example.com/CamelCase.
lastSyncTimestring—LastSyncTime is when the resource was last successfully reconciled.
observedGenerationinteger—ObservedGeneration is the most recent .metadata.generation reconciled.
policyArnstring—PolicyARN is the ARN of the scaling policy.

ScalableTarget # GA

ScalableTarget is the Schema for managing Application Auto Scaling scalable targets.

kubectl get scalabletargets · example on GitHub

Example

# ScalableTarget — Application Auto Scaling
# Full-options example generated from the CRD schema. Optional fields are
# included with sample values; delete what you don't need. Field reference:
# https://konfig-konector.io/docs/applicationautoscaling.html#scalabletarget
apiVersion: aws.konfig.io/v1alpha1
kind: ScalableTarget
metadata:
  name: example-scalabletarget
  namespace: default
spec:
  maxCapacity: 1
  minCapacity: 1
  providerRef:
    name: example-scalabletarget
    region: us-east-1
  resourceId: example-id
  roleArn: arn:aws:iam::123456789012:role/example-role
  scalableDimension: example
  serviceNamespace: ecs
  tags:
    environment: dev
    team: platform

Spec

FieldTypeRequiredDescription
maxCapacityintegeryesMaxCapacity is the maximum value that Application Auto Scaling can scale to.
minCapacityintegeryesMinCapacity is the minimum value that Application Auto Scaling can scale to.
providerRefobject—ProviderRef selects the AWSProvider (account/region) this resource is reconciled against.
providerRef.namestringyesName of a cluster-scoped AWSProvider.
providerRef.regionstring—Region overrides the provider's region for this resource only.
resourceIdstringyesResourceID identifies the resource, e.g.
roleArnstring—RoleARN is the ARN of the IAM role that allows Application Auto Scaling to modify the scalable target.
scalableDimensionstringyesScalableDimension is the scalable property of the resource, e.g.
serviceNamespaceenumyesServiceNamespace is the AWS service namespace of the scalable resource. Allowed: ecs, elasticmapreduce, ec2, appstream, dynamodb, rds, sagemaker, custom-resource…
tagsmap<string>—Tags are AWS resource tags to apply on registration.

Status

FieldTypeRequiredDescription
awsProviderobject—AWSProvider confirms the account and region this resource was reconciled against.
awsProvider.accountIdstring—AccountID the resource lives in.
awsProvider.namestring—Name of the AWSProvider used; empty when the operator's own credentials were used.
awsProvider.regionstring—Region the resource lives in (empty for global services).
conditionsarray<object>—Conditions describe the current state of the resource.
conditions[].lastTransitionTimestringyeslastTransitionTime is the last time the condition transitioned from one status to another.
conditions[].messagestringyesmessage is a human readable message indicating details about the transition.
conditions[].observedGenerationinteger—observedGeneration represents the .metadata.generation that the condition was set based upon.
conditions[].reasonstringyesreason contains a programmatic identifier indicating the reason for the condition's last transition.
conditions[].statusenumyesstatus of the condition, one of True, False, Unknown. Allowed: True, False, Unknown
conditions[].typestringyestype of condition in CamelCase or in foo.example.com/CamelCase.
lastSyncTimestring—LastSyncTime is when the resource was last successfully reconciled.
observedGenerationinteger—ObservedGeneration is the most recent .metadata.generation reconciled.
scalableTargetArnstring—ScalableTargetARN is the ARN of the scalable target.