import { HelpContentsRegistry } from '@spinnaker/core'; const helpContents: { [key: string]: string } = { 'aws.associateElasticIp.elasticIp': `
(Optional) Elastic IP is an IP address that Spinnaker will associate with this cluster.
If specified, this elastic IP must exist and not already be attached to an instance or cluster.
If left blank, Spinnaker will make a selection from the list of available elastic IPs in the provided account and region.
`, 'aws.associateElasticIp.type': `Type of elastic IP to associate:'
(Optional) Detail is a string of free-form alphanumeric characters; by convention, we recommend using "frontend".
However, if your stack name needs to be longer (load balancer names are limited to 32 characters), consider changing it to "elb", or omit it altogether.
`, 'aws.loadBalancer.internal': 'Controls the load balancer scheme, not the subnet. By default, load balancers are created with a DNS name that resolves to public IP addresses. Specify internal to create a load balancer with a DNS name that resolves to private IP addresses.', 'aws.loadBalancer.stack': '(Optional) Stack is one of the core naming components of a cluster, used to create vertical stacks of dependent services for integration testing.', 'aws.loadBalancer.name': 'The load balancer name is formed by combining the application name, the Stack field, and the Detail field.
', 'aws.loadBalancer.targetGroups': 'Add a target group if you want to associate this with an Application Load Balancer (ALB) or Network Load Balancer (NLB)', 'aws.loadBalancer.loadBalancers': 'Add a load balancer directly if you created a Classic Load Balancer (a classic load balancer does not have target groups)', 'aws.loadBalancer.ruleCondition.host': `You can specify a single host name (for example, my.example.com). A host name is case insensitive, can be up to 128 characters in length, and can contain any of the following characters. Note that you can include up to three wildcard characters.
Note that *.example.com will match test.example.com but won't match example.com.
`, 'aws.loadBalancer.ruleCondition.path': `You can specify a single path pattern (for example, /img/*). A path pattern is case sensitive, can be up to 128 characters in length, and can contain any of the following characters. Note that you can include up to three wildcard characters.
Note that the path pattern is used to route requests but does not alter them. For example, if a rule has a path pattern of /img/*, the rule would forward a request for /img/picture.jpg to the specified target group as a request for /img/picture.jpg.
`, 'aws.loadBalancer.oidcAuthentication': 'Authentication requires a configured OIDC client.', 'aws.serverGroup.stack': '(Optional) Stack is one of the core naming components of a cluster, used to create vertical stacks of dependent services for integration testing.', 'aws.serverGroup.detail': '(Optional) Detail is a string of free-form alphanumeric characters and hyphens to describe any other variables.', 'aws.serverGroup.imageName': '(Required) Image is the deployable Amazon Machine Image. Images are restricted to the account and region selected.', 'aws.serverGroup.storageType': `AWS offers various storage options like temporary block-level storage via instance store (SSD, HDD) and Amazon Elastic Block Store (EBS). This column lists the storage type supported for the instance type.`, 'aws.serverGroup.instancesDistribution': `Learn more in AWS docs.`, 'aws.serverGroup.spotMaxPrice': 'The maximum price per unit hour to pay for a Spot instance. By default (empty), Amazon EC2 Auto Scaling uses the On-Demand price as the maximum Spot price.', 'aws.serverGroup.spotAllocationStrategy': `Indicates how to allocate instances across Spot Instance pools.
Filter instance types on one or more criteria, comma separated:
CPU credits can be configured with 2 modes:
(Optional) User Data Format allows overriding of the format used when generating user data during deployment. The default format used is configured in the application's attributes, editable via the 'Config' tab.
Default will use the value from the application's configuration.
Modern will use the modern template.
Legacy will use the legacy (deprecated) template.
This option is intended to allow testing migration from legacy to modern before configuring it for the entire application. If unsure, pick Default.
`, 'aws.serverGroup.base64UserData': '(Optional) UserData is a base64 encoded string.', 'aws.serverGroup.enabledMetrics': '(Optional) Enabled Metrics are the Auto Scaling Group metrics to enable on this group. Existing metrics are not modified.', 'aws.serverGroup.imdsv2': "(Recommended) IMDSv2 helps mitigate AWS credential theft from the exploitation of SSRF vulnerabilities in web applications. All modern AWS SDKs support IMDSv2 and it should not be disabled unless you're using a legacy SDK.", 'aws.serverGroup.instanceMonitoring': '(Optional) Instance Monitoring whether to enable detailed monitoring of instances. Group metrics must be disabled to update an ASG with Instance Monitoring set to false.', 'aws.serverGroup.tags': '(Optional) Tags are propagated to the instances in this cluster.', 'aws.serverGroup.allImages': 'Search for an image that does not match the name of your application.', 'aws.serverGroup.filterImages': 'Select from a pre-filtered list of images matching the name of your application.', 'aws.serverGroup.traffic': `Enables the "AddToLoadBalancer" scaling process, which is used by Spinnaker and discovery services to determine if the server group is enabled.
Will be automatically enabled when any non "custom" deployment strategy is selected.
`, 'aws.securityGroup.vpc': `The VPC to which this {{firewall}} will apply.
If you wish to use VPC but are unsure which VPC to use, the most common one is "Main".
If you do not wish to use VPC, select "None".
`, 'aws.securityGroup.name': 'The {{firewall}} name is formed by combining the application name, the Stack field, and the Detail field.
', 'aws.securityGroup.cross.account.ingress.help': 'Accounts that are excluded will not show up in this list
', 'aws.scalingPolicy.search.restricted': `Resets dimensions to "AutoScalingGroupName: {name of the ASG}" and provides a simpler, combined input for the namespace and metric name fields.
`, 'aws.scalingPolicy.search.all': `Allows you to edit the dimensions and namespace to find a specific metric for this alarm.
`, 'aws.blockDeviceMappings.useSource': `Spinnaker will use the block device mappings of the existing server group when deploying a new server group.
In the event that there is no existing server group, the defaults for the selected instance type will be used.
`, 'aws.blockDeviceMappings.useAMI': 'Spinnaker will use the block device mappings from the selected AMI when deploying a new server group.
', 'aws.blockDeviceMappings.useDefaults': 'Spinnaker will use the default block device mappings for the selected instance type when deploying a new server group.
', 'aws.targetGroup.protocol': 'The protocol to use for routing traffic to the targets. Cannot be edited after being saved; if you want to use a different protocol, create a new target group, save the load balancer, move your targets, and then delete this target group.', 'aws.targetGroup.targetType': 'Determines how targets are specified. Only set to ip if you need to attach individual ips. Cannot be edited after being saved; if you want to use a different target type, create a new target group, save the load balancer, move your targets, and then delete this target group.', 'aws.targetGroup.port': 'The port on which the targets receive traffic. Cannot be edited after being saved; if you want to use a different port, create a new target group, save the load balancer, move your targets, and then delete this target group.', 'aws.targetGroup.attributes.deregistrationDelay': 'The amount of time for the load balancer to wait before changing the state of a deregistering target from draining to unused. The range is 0-3600 seconds. The default value is 300 seconds.', 'aws.targetGroup.attributes.stickinessEnabled': ' Indicates whether sticky sessions are enabled.', 'aws.targetGroup.attributes.deregistrationDelayConnectionTermination': 'If enabled, your Network Load Balancer will terminate active connections when deregistration delay is reached.', 'aws.targetGroup.attributes.preserveClientIp': 'If enabled, your Network Load Balancer will preserve client IP addresses to the target.', 'aws.targetGroup.attributes.stickinessType': 'The type of sticky sessions. The only current possible value islb_cookie.',
'aws.targetGroup.attributes.stickinessDuration':
'The time period, in seconds, during which requests from a client should be routed to the same target. After this time period expires, the load balancer-generated cookie is considered stale. The range is 1 second to 1 week (604800 seconds). The default value is 1 day (86400 seconds).',
'aws.targetGroup.attributes.healthCheckPort.trafficPort':
'The port the load balancer uses when performing health checks on targets. The default is traffic-port, which is the port on which each target receives traffic from the load balancer.',
'aws.targetGroup.healthCheckProtocol': 'TCP health checks only support 10s and 30s intervals',
'aws.targetGroup.healthCheckTimeout':
'Target groups with TCP or TLS protocol must have a 6s timeout for HTTP health checks or a 10s timeout for HTTPS/TLS health checks.',
'aws.targetGroup.nlbHealthcheckThreshold':
'The healthy and unhealthy threshold for NLBs must be equal. This represents the number of successful and failed healthchecks required for healthy and unhealthy targets, respectively.',
'aws.serverGroup.capacityConstraint': `
Ensures that the capacity of this server group has not changed in the background (i.e. due to autoscaling activity).
If the capacity has changed, this resize operation will be rejected.
`, 'aws.tagImage.consideredStages': `Limit which previous stages will be considered when locating AMI's to tag. If left unchecked, AMI's generated by any upstream stage will be tagged.`, 'aws.loadBalancer.redirect.host': `The hostname. This component is not percent-encoded. The hostname can contain#{host}.`,
'aws.loadBalancer.redirect.path': `The absolute path, starting with the leading "/". This component is not percent-encoded. The path can contain #{host}, #{path}, and #{port}.`,
'aws.loadBalancer.redirect.port': `The port. You can specify a value from 1 to 65535 or #{port}.`,
'aws.loadBalancer.redirect.protocol': `The protocol. You can specify HTTP, HTTPS, or #{protocol}. You can redirect HTTP to HTTP, HTTP to HTTPS, and HTTPS to HTTPS. You cannot redirect HTTPS to HTTP.`,
'aws.loadBalancer.redirect.query': `The query parameters, URL-encoded when necessary, but not percent-encoded. Do not include the leading "?", as it is automatically added. You can specify any of the reserved keywords.`,
'aws.loadBalancer.redirect.statusCode': `The HTTP redirect code. The redirect is either permanent (HTTP 301) or temporary (HTTP 302).`,
'aws.loadBalancer.redirect': `A URI consists of the following components: protocol://hostname:port/path?query. You must modify at least one of the following components to avoid a redirect loop: protocol, hostname, port, or path. Any components that you do not modify retain their original values.
You can reuse URI components using the following reserved keywords:
For example, you can change the path to "/new/#{path}", the hostname to "example.#{host}", or the query to "#{query}&value=xyz".`, 'aws.cloudformation.source': `
Where the template file content is read from.
text: The template is supplied statically to the pipeline from the below text-box.
artifact: The template is read from an artifact supplied/created upstream. The expected artifact must be referenced here, and will be bound at runtime.
`, 'aws.cloudformation.expectedArtifact': `The artifact that is to be applied to this stage. The artifact should represent a valid cloudformation template.`, 'aws.function.name': `Enter a name that describes the purpose of your function. Function name will be prefixed with the application name.`, 'aws.function.runtime': `Choose the language to use to write your function`, 'aws.function.s3key': `The Amazon S3 key of the deployment package`, 'aws.function.handler': `The name of the method within your code that Lambda calls to execute your function. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime.`, 'aws.function.s3bucket': `An Amazon S3 bucket in the same AWS Region as your function. The bucket can be in a different AWS account.`, 'aws.function.execution.role': `Lambda will create an execution role with permission to upload logs to Amazon CloudWatch Logs. You can also choose an existing role that defines the permissions of your function.`, 'aws.function.env.vars': `You can define environment variables as key-value pairs that are accessible from your function code. These are useful to store configuration settings without the need to change function code`, 'aws.function.tags': `You can use tags to group and filter your functions. A tag consists of a case-sensitive key-value pair`, 'aws.functionBasicSettings.memorySize': `Your function is allocated CPU proportional to the memory configured.`, 'aws.functionBasicSettings.timeout': `The amount of time that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds.`, 'aws.function.publish': `Set to true to publish the first version of the function during creation.`, 'aws.function.deadletterqueue': `A dead letter queue configuration that specifies the queue or topic where Lambda sends asynchronous events when they fail processing. (SNS or SQS)`, 'aws.function.tracingConfig.mode': `The function's AWS X-Ray tracing configuration.`, 'aws.function.kmsKeyArn': `The ARN of the AWS Key Management Service (AWS KMS) key that's used to encrypt your function's environment variables. If it's not provided, AWS Lambda uses a default service key.`, 'aws.cloudformation.changeSet.options': `Action to take when the created ChangeSet contains a replacement.
ask: Execution will be put on hold asking for user feedback.
skip it: ChangeSet will not be executed and stage will continue.
execute it ChangeSet will be executed.
fail stage ChangeSet will not be executed and the stage will fail.
`, }; Object.keys(helpContents).forEach((key) => HelpContentsRegistry.register(key, helpContents[key]));