diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..7af5a221 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,18 @@ +# Welcome Contributors! +Thank you for considering contributing to the Spinnaker project's documentation. This is a working document, be sure to check back soon for updates and additions. + +## Get Started +Let's start with gathering our existing contributor guidelines. + +Relevant resources for Spinnaker contributors: +- [Code of Conduct](https://spinnaker.io/docs/community/contributing/code-of-conduct/) +- [Join Us on Slack](http://join.spinnaker.io) +- [Contributing](https://spinnaker.io/docs/community/contributing/) +- [How to Submit a Patch](https://spinnaker.io/docs/community/contributing/submitting/) (includes commit and PR message conventions) +- [Make a Change Using a Local Clone](https://spinnaker.io/docs/community/contributing/local-clone/) +- [Developer How-Tos](https://spinnaker.io/docs/community/contributing/code/developer-guides/) + +## Get Involved +Once you join Slack, make yourself at home! Feel free to ask questions, start conversations, and flag issues that need attention. Join the #sig-contributor-experience channel to receive a warm welcome. + +Browse the channels that start with "sig-" to see the project's special interest groups (SIGs). More information on all of the approved SIGs can be found in the [governance repository](https://github.com/spinnaker/governance). diff --git a/content/en/changelogs/1.24.5-changelog.md b/content/en/changelogs/1.24.5-changelog.md index 69a0bb29..76677242 100644 --- a/content/en/changelogs/1.24.5-changelog.md +++ b/content/en/changelogs/1.24.5-changelog.md @@ -5,6 +5,7 @@ date: 2021-05-27 08:56:51 +0000 tags: - changelogs - 1.24 + - deprecated version: 1.24.5 --- diff --git a/content/en/changelogs/1.24.6-changelog.md b/content/en/changelogs/1.24.6-changelog.md new file mode 100644 index 00000000..f836af17 --- /dev/null +++ b/content/en/changelogs/1.24.6-changelog.md @@ -0,0 +1,17 @@ +--- +title: Version 1.24 +changelog_title: Version 1.24.6 +date: 2021-07-01 20:40:34 +0000 +tags: + - changelogs + - 1.24 +version: 1.24.6 +--- + + + + + + + + diff --git a/content/en/docs/community/contributing/code-of-conduct.md b/content/en/docs/community/contributing/code-of-conduct.md index 8865d692..b323acb7 100644 --- a/content/en/docs/community/contributing/code-of-conduct.md +++ b/content/en/docs/community/contributing/code-of-conduct.md @@ -1,7 +1,5 @@ --- -layout: single title: 'Code Of Conduct' - aliases: - /docs/code-of-conduct --- diff --git a/content/en/docs/community/contributing/code/_index.md b/content/en/docs/community/contributing/code/_index.md index 1f583bae..4175d50b 100644 --- a/content/en/docs/community/contributing/code/_index.md +++ b/content/en/docs/community/contributing/code/_index.md @@ -3,3 +3,4 @@ title: 'Code' weight: 2 description: --- + diff --git a/content/en/docs/community/contributing/code/back-end-code.md b/content/en/docs/community/contributing/code/back-end-code.md index aba1014f..01a632bf 100644 --- a/content/en/docs/community/contributing/code/back-end-code.md +++ b/content/en/docs/community/contributing/code/back-end-code.md @@ -1,8 +1,5 @@ --- -layout: single title: "Code Languages, Libraries, and Conventions " -sidebar: - nav: community description: > This page introduces the foundations Spinnaker services are built on, and code conventions the community has adopted. --- diff --git a/content/en/docs/community/contributing/submitting.md b/content/en/docs/community/contributing/code/submitting.md similarity index 100% rename from content/en/docs/community/contributing/submitting.md rename to content/en/docs/community/contributing/code/submitting.md diff --git a/content/en/docs/community/contributing/docs/_index.md b/content/en/docs/community/contributing/docs/_index.md new file mode 100644 index 00000000..7f7b94e7 --- /dev/null +++ b/content/en/docs/community/contributing/docs/_index.md @@ -0,0 +1,5 @@ +--- +title: 'Docs' +weight: 3 +description: "Guides for contributing to the Spinnaker documentation." +--- \ No newline at end of file diff --git a/content/en/docs/community/contributing/docs/github-changes.md b/content/en/docs/community/contributing/docs/github-changes.md index 0e0ef998..285182b6 100644 --- a/content/en/docs/community/contributing/docs/github-changes.md +++ b/content/en/docs/community/contributing/docs/github-changes.md @@ -10,12 +10,12 @@ sidebar: 1. Click the **Suggest an Edit** link on the documentation page you want to update. This takes you to the page's source file in GitHub. 1. Click the **Edit this file...** pencil icon to edit the file. - ![EditFileIcon](/assets/images/community/contributing/docs/github-edit-file-icon.jpg) + ![EditFileIcon](/images/community/contributing/docs/github-edit-file-icon.jpg) 1. Make your changes in the GitHub markdown editor. 1. Fill in the **Propose file change** form. - ![ProposeFileChange](/assets/images/community/contributing/docs/github-propose-file-change-form.jpg) + ![ProposeFileChange](/images/community/contributing/docs/github-propose-file-change-form.jpg) 1. Explain what your file change is about in a short summary. @@ -27,7 +27,7 @@ sidebar: 1. Fill in the **Open a pull request** form. - ![OpenPullRequest](/assets/images/community/contributing/docs/github-open-pull-request.jpg) + ![OpenPullRequest](/images/community/contributing/docs/github-open-pull-request.jpg) 1. The **Title** defaults to the file change summary. Update the title so it follows the `(): ` format. Make sure you include a space after the colon. For example: @@ -35,14 +35,14 @@ sidebar: docs(plugins): add documentation for plugin creators ``` - The Spinnaker repositories use a PR title checker, so your PR will fail if the title is not in the correct format. For more information, see [commit message conventions](/community/contributing/submitting/#commit-message-conventions). + The Spinnaker repositories use a PR title checker, so your PR will fail if the title is not in the correct format. For more information, see [commit message conventions]({{< ref "submitting#commit-message-conventions" >}}). 2. The **Leave a comment** field defaults to the file change description. PR descriptions are the first step to helping reviewers and project maintainers understand why your change was made. Do not leave this field blank. Provide as much description as possible. A good description helps get your PR merged faster! 3. Leave the **Allow edits from maintainers** checkbox selected. 1. Click the **Create pull request** button. - Congratulations! You can view your submitted pull request on the **Pull requests** [tab](https://github.com/spinnaker/spinnaker.github.io/pulls). + Congratulations! You can view your submitted pull request on the **Pull requests** [tab](https://github.com/spinnaker/spinnaker.io/pulls). ## Address feedback in GitHub diff --git a/content/en/docs/community/contributing/docs/index.md b/content/en/docs/community/contributing/docs/index.md deleted file mode 100644 index 8a037c77..00000000 --- a/content/en/docs/community/contributing/docs/index.md +++ /dev/null @@ -1,182 +0,0 @@ ---- -title: 'Docs' -linkTitle: 'Docs' -weight: 2 -description: ---- - -Bugs affecting more than one service commonly surface only when the whole system is running. Our continuous integration system builds and runs a suite of integration tests against Spinnaker nightly on real cloud provider infrastructure to detect these bugs. - -> **Access the CI system here**: [https://builds.spinnaker.io](https://builds.spinnaker.io) -> -> Viewers must be a member of the `build-cops` GitHub Team. - -## Build Cop - -The **build cop** responsibilities include: - -- Triage integration test failures on `master` and the 3 most recent release branches -- [Clean up](#cleaning-orphaned-resources) orphaned resources across target cloud providers -- Route [new GitHub issues](https://github.com/spinnaker/spinnaker/issues) to the appropriate SIG - (applying GitHub labels as appropriate). You can find the full list of SIGs in the - [governance repo](https://github.com/spinnaker/governance/blob/master/sig-index.md) -- Observe any systemic problems raised in the [#general](https://spinnakerteam.slack.com/messages/general/) - and [#dev](https://spinnakerteam.slack.com/messages/dev/) Slack channels -- Log observations and corrective actions taken in the [rotation log](https://docs.google.com/document/d/1T0kifZ0C7zSIKOy2McKfmDnwvmRuU5Z3t81Tly6kH1M/edit#) - -## Process Structure - -The CI system comprises both _jobs_, which do a specific task, and _flows_, which invoke a series of jobs. - -[`Flow_BuildAndValidate`](https://builds.spinnaker.io/job/Flow_BuildAndValidate/) is the primary entry point for the `master` branch flow. - -`Flow_BuildAndValidate_` is the the entry point for the respective top-level release. It is a copy of the primary `Flow_BuildAndValidate` when that release was cut. Top-level release flows work off their respective `release-1.ABC.x` branches. - -As its name implies, `Flow_BuildAndValidate` builds and tests the whole Spinnaker system. It follows this general process: - -### 1. [Build_PrimaryArtifacts](https://builds.spinnaker.io/job/Build_PrimaryArtifacts/) - -1. `git checkout` all services -1. Constructs a BOM from the most recent commit on the target branch -1. Builds a Docker container and a Debian package of each Spinnaker microservice. -1. Builds additional supporting artifacts: - -- `halyard` -- `spin-cli` -- Changelog - -1. Publishes the BOM under the following names: - -- _With the floating tag:_ `-latest-unvalidated` (e.g. `master-latest-unvalidated`) -- _With a fixed tag:_ `-` (e.g. `master-20191213154039`) - -1. Publishes the [changelog](https://gist.github.com/spinnaker-release/4f8cd09490870ae9ebf78be3be1763ee) - -### 2. [Validate_BomAndReportMultiPlatform](https://builds.spinnaker.io/job/Validate_BomAndReportMultiPlatform/) - -For uninteresting reasons, this job must wrap the following `ValidateBomMultiPlatform` in order to aggregate its results. - -### 3. [ValidateBomMultiPlatform](https://builds.spinnaker.io/job/Validate_BomMultiPlatform/) - -This "Multi-configuration project" specifies the same test(s) to run across different environments. This confirms -Spinnaker works whether deployed as a single VM or in a Kubernetes cluster, for instance. - -1. Starts Halyard in a new VM -1. Connects to this instance and executes a series of `hal config` steps, including account setup for the managed cloud provider(s). -1. Deploys the configuration with `hal deploy apply`. -1. Invokes [`citest`](https://github.com/google/citest) integration tests against the new Spinnaker instance. - - `citest` invokes a command to Spinnaker, and then uses the underlying cloud provider's CLI to confirm the expected changes were made. For example, using `gcloud` to confirm a GCE server group was created or deleted. - -## Cleaning Orphaned Resources - -Occasionally, integration tests fail in a way that is either undesirable or difficult to automatically clean up. Build cops should periodically ensure these orphaned resources are deleted from the following locations: - -- [`spinnaker-community` GCP project](https://console.cloud.google.com/home/dashboard?organizationId=912934373776&project=spinnaker-community) - - [Instance Groups](https://console.cloud.google.com/compute/instanceGroups/list?organizationId=912934373776&project=spinnaker-community&instanceGroupsTablesize=50&instanceGroupsTablequery=%255B%257B_22k_22_3A_22name_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22gcp*_5C_22_22%257D%255D) named `gcp-*` - - [VMs](https://console.cloud.google.com/compute/instances?organizationId=912934373776&project=spinnaker-community&instancessize=50&instancesquery=%255B%257B_22k_22_3A_22name_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22jenkins-validate-bom*_5C_22_22%257D%255D) named `jenkins-validate-bom-*` - - [Load balancers](https://console.cloud.google.com/net-services/loadbalancing/loadBalancers/list?project=spinnaker-community&organizationId=912934373776&filter=%255B%257B_22k_22_3A_22Name_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22gcp*_5C_22_22%257D%255D) named `gcp-*` - - [Managed certificates](https://console.cloud.google.com/net-services/loadbalancing/advanced/sslCertificates/list?project=spinnaker-community&organizationId=912934373776&sslCertificateTablesize=50&sslCertificateTablequery=%255B%257B_22k_22_3A_22domain_22_2C_22t_22_3A10_2C_22v_22_3A_22_5C_22localhost_5C_22_22%257D%255D) that are _**not**_ `builds.spinnaker.io` (!) - -## Deleting Obsolete Artifacts - -The following jobs assist in removing old artifacts created during the build process: - -- [Admin_DailyJanitor](https://builds.spinnaker.io/view/5%20Admin/job/Admin_DailyJanitor/) -- [Admin_AuditBoms](https://builds.spinnaker.io/view/5%20Admin/job/Admin_AuditBoms/) -- [Admin_DeleteObsoleteArtifacts](https://builds.spinnaker.io/view/5%20Admin/job/Admin_DeleteObsoleteArtifacts/) - -## Troubleshooting Playbook - -Check whether the failure happened during the _build_ or the _test_ phase: - -1. Click the failing Flow. - - ![](troubleshooting - base - 10 - flow.png) - -1. Click for the most recent failing build. - - ![](troubleshooting - base - 20 - mostRecent.png) - -1. Click through to the failing phase. - - ![](troubleshooting - base - 30 - phase.png) - -### Build Failures - -1. The build phase uses many subshells to perform its work in parallel. Use the `Console Output` - to help narrow down which step of the build has failed, and use the collected logs to view more information - on what specificially went wrong. - - ![](troubleshooting - build - 10 - consoleOutput.png) - -1. The Console Output prints out after each completion how much work is still remaining. - - ![](troubleshooting - build - 20 - buildSteps.png) - -1. Frequently, the build error will be printed out directly to the Console Output, but sometimes this output can be hard to read. View the raw file directly using the Build Artifacts link from Step 1. - - ![](troubleshooting - build - 30 - failedOutput.png) - -#### Common Build Failures - -##### Bintray Conflicts - -If an artifact is uploaded to the Bintray repository but never published -(either because of a transient Bintray error or an interrupted build), you'll -get an error like this: - -> Bintray API Request 'create version 0.20.0-20200512192702' failed with HTTP response 409 Conflict - -Follow these steps to delete the artifact and resolve the issue: - -1. Navigate to the specific version [in the Bintray - repository](https://bintray.com/beta/#/spinnaker-releases/jars?tab=packages) - -1. Click on the Spinnaker repository that had the failure. (If you don't see - it, click to the next page; there are only 10 items per page for some reason.) - -1. Click on the specific version that had the issue. - -1. Click "Actions" in the upper right and select "Edit". - -1. On the next page, click the "Delete" link in the upper right. It - will look like nothing happened, but after 10 seconds or so, the page will - refresh and the version will be gone. - -Now that the conflict has been removed, you can restart the build. - -### Test Failures - -1. View the Test Results Overview. - - ![](troubleshooting - test - 10 - testResultsOverview.png) - -1. Identify the failing test. - - ![](troubleshooting - test - 20 - failingTest.png) - -1. Identify which step in the test is failing. - - ![](troubleshooting - test - 30 - failingStep.png) - -1. It can sometimes help to view the last call that was made prior to that stage failing. - - ![](troubleshooting - test - 40 - failingDetails.png) - -### Connecting to the Jenkins VM - -Members of the `jenkins-debuggers@spinnaker.io` group have access to SSH directly to the Jenkins VM. You can connect to the instance with this command: - -```bash -$ gcloud compute ssh --project spinnaker-community jenkins-transfer --zone us-central1-f --ssh-flag "-L 4040:test-jenkins:8080" -``` - -The extra `--ssh-flag` establishes a tunnel to the `test-jenkins` instance, which is used to trigger some integration tests. You can view this instance at [http://localhost:4040](http://localhost:4040) after the connection is established. - -#### Change to `jenkins` user - -All processes are run as the `jenkins` user and most of the useful links are in `/home/jenkins`. Switch to it with: - -```bash -$ sudo su - jenkins -``` diff --git a/content/en/docs/community/contributing/local-clone.md b/content/en/docs/community/contributing/docs/local-clone.md similarity index 96% rename from content/en/docs/community/contributing/local-clone.md rename to content/en/docs/community/contributing/docs/local-clone.md index 97e4c71c..124292c5 100644 --- a/content/en/docs/community/contributing/local-clone.md +++ b/content/en/docs/community/contributing/docs/local-clone.md @@ -150,19 +150,15 @@ hugo server 1. In a web browser, go to the `spinnaker/spinnaker.io` [repository](https://github.com/spinnaker/spinnaker.io). You should see your recently pushed working branch with a **Compare & pull request** button. - ![CompareAndPullRequest](/assets/images/community/contributing/docs/compare-and-pr.jpg) - 1. Click **Compare & pull request**. This takes you to the **Open a pull request** screen. - ![OpenPullRequest](/assets/images/community/contributing/docs/github-open-pull-request.jpg) - 1. The **Title** defaults to the commit subject. Update the title so it follows the `(): ` format. Make sure you include a space after the colon. For example: ``` docs(plugins): add documentation for plugin creators ``` - The Spinnaker repositories use a PR title checker, so your PR will fail if the title is not in the correct format. For more information, see [commit message conventions](/community/contributing/submitting/#commit-message-conventions). + The Spinnaker repositories use a PR title checker, so your PR will fail if the title is not in the correct format. For more information, see [commit message conventions]({{< ref "submitting#commit-message-conventions" >}}). 2. The **Leave a comment** field defaults to the commit description. Pull request descriptions are the first step to helping reviewers and project maintainers understand why your change was made. Do not leave this field blank. Provide as much description as possible. A good description helps get your PR merged faster! 3. Leave the **Allow edits from maintainers** checkbox selected. diff --git a/content/en/docs/community/contributing/docs/reviewing-prs.md b/content/en/docs/community/contributing/docs/reviewing-prs.md index f47808f6..e2d554bf 100644 --- a/content/en/docs/community/contributing/docs/reviewing-prs.md +++ b/content/en/docs/community/contributing/docs/reviewing-prs.md @@ -7,7 +7,7 @@ sidebar: ## Review a Pull request -Anyone can review a documentation pull request (PR). Visit the [**Pull requests**](https://github.com/spinnaker/spinnaker.github.io/pulls) section in the Spinnaker website repository to see a list of all currently open pull requests. +Anyone can review a documentation pull request (PR). Visit the [Pull requests](https://github.com/spinnaker/spinnaker.io/pulls) section in the Spinnaker website repository to see a list of all currently open pull requests. Reviewing documentation pull requests is a great way to get started contributing to the Spinnaker community. It helps you to learn the code base and builds rapport with other contributors. @@ -15,9 +15,9 @@ Reviewing documentation pull requests is a great way to get started contributing Before reviewing documentation, do the following: -Read the [documentation style guide](/community/contributing/docs/docs-style-guide/) so that you can leave informed feedback. +Read the [documentation style guide]({{< ref "docs-style-guide" >}}) so that you can leave informed feedback. -1. Review the [code of conduct](https://github.com/spinnaker/spinnaker.github.io/blob/master/community/contributing/code-of-conduct.md) and ensure that you abide by it at all times. +1. Review the [Code of Conduct]({{< ref "code-of-conduct" >}}) and ensure that you abide by it at all times. 2. Be polite, helpful, and considerate of others. 3. Comment on positive aspects of a PR, as well as changes. 4. Be empathetic and mindful of how your changes or review may be received. @@ -28,7 +28,7 @@ Read the [documentation style guide](/community/contributing/docs/docs-style-gui ## Start the review process -1. Go to () to see a list of all current open PRs in the Spinnaker repository. +1. Go to () to see a list of all current open PRs in the Spinnaker repository. 2. Filter the open PRs using one or all of the following labels: @@ -64,7 +64,7 @@ When reviewing a PR, use the following questions as a starting point: - Are there any obvious errors in grammar or language? - Is there a better way to phrase something? - Are there words, phrases, or terms that should be replaced with a non-discriminatory alternative? -- Does the word choice, punctuation, and capitalization follow the [style guide](/community/contributing/docs/docs-style-guide/)? +- Does the word choice, punctuation, and capitalization follow the [style guide]({{< ref "docs-style-guide" >}})? - Are there long sentences which could be shorter or made less complex? - Are there long paragraphs which would work better as a bulleted list or table? diff --git a/content/en/docs/guides/developer/plugin-creator/_index.md b/content/en/docs/guides/developer/plugin-creator/_index.md index 2e7a065f..acf1aa59 100644 --- a/content/en/docs/guides/developer/plugin-creator/_index.md +++ b/content/en/docs/guides/developer/plugin-creator/_index.md @@ -3,6 +3,8 @@ title: "Plugin Creator Guide" no_list: true description: > Plugins enable operators to extend Spinnaker with custom functionality. +aliases: + - /docs/guides/developer/plugin-creators/overview/ --- ## What plugins do diff --git a/content/en/docs/reference/halyard/high-availability.md b/content/en/docs/reference/halyard/high-availability.md index b853630b..84089e5c 100644 --- a/content/en/docs/reference/halyard/high-availability.md +++ b/content/en/docs/reference/halyard/high-availability.md @@ -175,7 +175,7 @@ class clouddriver-caching,clouddriver-ro,clouddriver-ro-deck,clouddriver-rw,echo ## Recoverability -If you've [configured an external Redis](/docs/setup/productionize/caching/externalize-redis/), Spinnaker can recover from failure events. Igor is responsible for polling the state store (Redis) and recreating state. During a recovery, numerous old pipelines may be re-triggered. To protect against this scenario, Igor has a setting called `pollingSafeguard.itemUpperThreshold`, which is the max number of pipeline triggers to accept before recognizing the scenario of numerous old re-triggers and stopping the state update. [Read the inline documentation for this setting](https://github.com/spinnaker/igor/blob/master/igor-web/src/main/groovy/com/netflix/spinnaker/igor/IgorConfigurationProperties.groovy#L47). +If you've [configured an external Redis](/docs/setup/productionize/caching/externalize-redis/), Spinnaker can recover from failure events. Igor is responsible for polling the state store (Redis) and recreating state. During a recovery, numerous old pipelines may be re-triggered. To protect against this scenario, Igor has a setting called `pollingSafeguard.itemUpperThreshold`, which is the max number of pipeline triggers to accept before recognizing the scenario of numerous old re-triggers and stopping the state update. [Read the inline documentation for this setting](https://github.com/spinnaker/igor/blob/22106ca4efb36d32d65650877c98425fcab77395/igor-core/src/main/java/com/netflix/spinnaker/igor/IgorConfigurationProperties.java#L86). Although it's possible, it is not recommended to use spot instances on AWS or preemtible nodes to lower cost in production, as outages in your continuous deployment tool will likely cost more than any savings. Also consider hosting Spinnaker on isolated infrastructure to reduce the possibility that other applications or teams will affect your Spinnaker instance. diff --git a/content/en/docs/setup/other_config/artifacts/_index.md b/content/en/docs/setup/other_config/artifacts/_index.md index b9bd6d95..9b42fcf2 100644 --- a/content/en/docs/setup/other_config/artifacts/_index.md +++ b/content/en/docs/setup/other_config/artifacts/_index.md @@ -1,7 +1,7 @@ --- title: "Configure Artifacts" linkTitle: "Configure Artifacts" -weight: 1 +weight: 2 description: Artifacts are remote, deployable resources in Spinnaker. --- diff --git a/content/en/docs/setup/other_config/server-group-launch-settings/_index.md b/content/en/docs/setup/other_config/server-group-launch-settings/_index.md index a818e581..267cf57e 100644 --- a/content/en/docs/setup/other_config/server-group-launch-settings/_index.md +++ b/content/en/docs/setup/other_config/server-group-launch-settings/_index.md @@ -1,6 +1,6 @@ --- title: "Server Group Launch Settings" linkTitle: "Server Group Launch Settings" -weight: 40 +weight: 1 description: Configure instance configuration for your server groups. --- diff --git a/content/en/docs/setup/other_config/server-group-launch-settings/aws-ec2/_index.md b/content/en/docs/setup/other_config/server-group-launch-settings/aws-ec2/_index.md index d51bad22..ce9c6ee6 100644 --- a/content/en/docs/setup/other_config/server-group-launch-settings/aws-ec2/_index.md +++ b/content/en/docs/setup/other_config/server-group-launch-settings/aws-ec2/_index.md @@ -9,13 +9,14 @@ description: An AWS EC2 Server Group offers a number of launch setting configura An AWS Server Group can be set up with either a launch template or a launch configuration. However, you must enable launch templates support for all of your applications if you want to use the latest AWS features. AWS strongly recommends using _launch templates_ over _launch configurations_ because launch configurations do NOT provide full functionality for Amazon EC2 Auto Scaling or Amazon EC2. -* (Newer) [launch template](https://docs.aws.amazon.com/autoscaling/ec2/userguide/LaunchTemplates.html) is similar to a launch configuration, in that it specifies instance configuration information. +* (Newer) [Launch template](https://docs.aws.amazon.com/autoscaling/ec2/userguide/LaunchTemplates.html) is similar to a launch configuration, in that it specifies instance configuration information. However, defining a launch template instead of a launch configuration, you can: - - create and maintain multiple versions of a launch template - - access the launch-template-only AWS features like diversification of instances of a server group across instance type, purchase options (On-Demand / Spot), allocation strategies. - To enable launch templates support, follow guidelines in [AWS EC2 Launch Templates Setup](/docs/setup/other_config/server-group-launch-settings/aws-ec2/launch-templates-setup) - To learn more about launch templates features, see [AWS EC2 Launch Templates](/docs/setup/other_config/server-group-launch-settings/aws-ec2/launch-templates) -* (Older) [launch configuration](https://docs.aws.amazon.com/autoscaling/ec2/userguide/LaunchConfiguration.html) is an instance configuration template that an AWS Auto Scaling group uses to launch EC2 instances. + - create and maintain multiple versions of a launch template. + - access the launch-template-only AWS features like diversification of instances of a server group across instance type, purchase options (On-Demand / Spot), and allocation strategies. + * [Enable launch templates support](/docs/setup/other_config/server-group-launch-settings/aws-ec2/launch-templates-setup). + * Learn more about launch template features](/docs/setup/other_config/server-group-launch-settings/aws-ec2/launch-templates). + +* (Older) [Launch configuration](https://docs.aws.amazon.com/autoscaling/ec2/userguide/LaunchConfiguration.html) is an instance configuration template that an AWS Auto Scaling group uses to launch EC2 instances. ### Enhance your EC2 Spot experience [Amazon EC2 Spot Instances](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html#spot-features) diff --git a/content/en/docs/setup/other_config/server-group-launch-settings/aws-ec2/launch-templates-setup.md b/content/en/docs/setup/other_config/server-group-launch-settings/aws-ec2/launch-templates-setup.md index 73c5e52b..9ed44ae4 100644 --- a/content/en/docs/setup/other_config/server-group-launch-settings/aws-ec2/launch-templates-setup.md +++ b/content/en/docs/setup/other_config/server-group-launch-settings/aws-ec2/launch-templates-setup.md @@ -1,7 +1,7 @@ --- title: "AWS EC2 Launch Templates Setup" -linkTitle: "AWS EC2 Launch Templates Setup" description: "Setup and Rollout Guidelines for AWS EC2 Launch Templates" +weight: 1 --- > Please note that you should only proceed with this if you have [AWS EC2](/setup/install/providers/aws/aws-ec2) configured as a cloud provider. These features require 1.24 (although some features were launched in previous releases leading up to 1.24). diff --git a/content/en/docs/setup/other_config/server-group-launch-settings/aws-ec2/launch-templates.md b/content/en/docs/setup/other_config/server-group-launch-settings/aws-ec2/launch-templates.md index d5b140a4..ab1b2bdf 100644 --- a/content/en/docs/setup/other_config/server-group-launch-settings/aws-ec2/launch-templates.md +++ b/content/en/docs/setup/other_config/server-group-launch-settings/aws-ec2/launch-templates.md @@ -2,15 +2,16 @@ title: "AWS EC2 Launch Templates" linkTitle: "AWS EC2 Launch Templates" description: "AWS EC2 Launch Template Features, Use Cases and Sample API Requests" +weight: 2 --- -## Enable launch template feature set in Spinnaker -Follow guidelines [here](/docs/setup/other_config/server-group-launch-settings/aws-ec2/launch-templates-setup) +> Launch Template Support must be enabled in order to use the features described in this page. +> Follow guidelines [here](/docs/setup/other_config/server-group-launch-settings/aws-ec2/launch-templates-setup) to enable the feature set. -Note: The features supported in Deck come with helpful tool tips that aid in learning about them quickly. -Consider trying them out in Deck, especially if they are new to you. +> Note: The features supported in the UI (Deck) come with tool tips that can help you learn the new features. +> Consider trying them out in Deck, especially if they are new to you. -## Launch Template Feature Configuration +## Feature Configuration Once launch templates support is enabled in Clouddriver, a new set of features are unlocked. Some of them are tied to the EC2 launch template directly like `IMDSV2` and others require a launch template to be used in order to support features like `SpotAllocationStrategy` ([MixedInstancesPolicy](https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_MixedInstancesPolicy.html) features). @@ -62,21 +63,23 @@ Users will see enabled features as options when configuring a Server Group. -### Diversified Server Groups with Launch Templates -Enabling launch templates in Clouddriver also unlocks additional features offered by Amazon EC2 Auto Scaling that could be helpful for use cases like: -* create Server Groups with flexible instance configuration. For example, multiple instance types, a combination of purchase options (On-Demand / Spot) in order to tap into multiple Spot capacity pools. -* use instance weighting to specify the relative weight of each instance type, to count towards the desired capacity of the group. -* allow AWS to optimize instance allocation by using allocation strategies. -* optimize by capacity but prioritize the list of instance types provided to indicate preference. -* maintain a consistent baseline of On-Demand capacity and use Spot in remaining capacity for cost savings. -* follow [AWS recommended best practices for EC2 Spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html) for a better user experience. +### Additional Features +Enabling launch template support also unlocks additional features offered by Amazon EC2 Auto Scaling that facilitate diversified server groups: + +* Multiple instance types +* Multiple purchase options (On-Demand / Spot) with proportion control +* Allocation strategies +* Capacity rebalancing + +Follow [AWS recommended best practices for EC2 Spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html) to improve your experience with EC2 Spot. + +Motivation to diversify instances in your Server Group: -#### Motivation to diversify instances in your Server Group -* Reduce probability of [InsufficientInstanceCapacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/troubleshooting-launch.html#troubleshooting-launch-capacity) exceptions with flexible instance configuration. * Reduce costs by diversifying instances across purchase options and Spot allocation strategies. See AWS docs to learn more about [how to use Spot](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html). * Reduce costs and optimize resources with instance weighting. * Enhance availability by deploying your application across multiple instance types running in multiple Availability Zones. -* Maintain desired Spot capacity by proactively augmenting your fleet with a new Spot instance from an optimal pool before a running instance is interrupted by EC2, by enabling [capacity rebalance](https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html). +* Enhance availability by proactively augmenting your fleet with a new Spot instance from an optimal pool, before a running instance is interrupted by EC2, by enabling [capacity rebalance](https://docs.aws.amazon.com/autoscaling/ec2/userguide/capacity-rebalance.html). +* Reduce probability of [InsufficientInstanceCapacity](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/troubleshooting-launch.html#troubleshooting-launch-capacity) exceptions with flexible instance configuration. Using one or more parameters in the table below will automatically create Server Groups with the instance diversification configuration specified, and will use AWS defaults for the parameters not specified. Note that a number of these parameters complement each other. So, combining them can greatly enhance your AWS experience. @@ -188,10 +191,10 @@ Note that a number of these parameters complement each other. So, combining them ## Use Cases & Sample API Requests -### Create Server Group with launch template +#### Create a Server Group with launch template After enabling the launch template feature set is Clouddriver and/or Deck, set `setLaunchTemplate` to true in order to indicate Spinnaker to create your Server Group with an EC2 launch template. ```bash -curl -H 'Content-Type: application/json' -d '{ "job": [ +curl -H 'Content-Type: application/json' -d '{ "job": [ { "type": "createServerGroup", "cloudProvider": "aws", @@ -212,7 +215,7 @@ curl -H 'Content-Type: application/json' -d '{ "job": [ Let's say, the Server Group created was named `myAwsApp-myStack-v005`. It is backed by EC2 launch template with IMDSv2 enabled and unlimited CPU credits. -### Convert a Server Group with launch template to use mixed instances policy, with multiple instance types and capacity weighting +#### Convert a Server Group with launch template to use mixed instances policy, with multiple instance types and capacity weighting The Spinnaker operation, `modifyServerGroupLaunchTemplate`/ `updateLaunchTemplate` also supports updating a Server Group backed by launch template to use mixed instances policy when one or more mixed instances policy parameters listed above is specified. @@ -240,7 +243,7 @@ AWS docs: * [multiple instance types](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html) * [instance weighting](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-instance-weighting.html) -### Diversify instances in a Server Group across purchase options (On-Demand and Spot), multiple instance types with priority assignment: +#### Diversify instances in a Server Group across purchase options (On-Demand and Spot), multiple instance types with priority assignment: ```bash curl -H 'Content-Type: application/json' -d '{ "job": [ { @@ -276,7 +279,7 @@ AWS docs: * [instance diversification in ASG](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html) * [allocation strategies](https://docs.aws.amazon.com/autoscaling/ec2/userguide/asg-purchase-options.html#asg-allocation-strategies) -### Create a Server Group with AWS recommended best practices for EC2 Spot +#### Create a Server Group with AWS recommended best practices for EC2 Spot The best practices followed in the example: * use multiple instance types * use `capacity-optimized` Spot allocation strategy to indicate AWS to provision instances from the most-available Spot capacity pools diff --git a/layouts/404.html b/layouts/404.html new file mode 100644 index 00000000..af0b50a4 --- /dev/null +++ b/layouts/404.html @@ -0,0 +1,35 @@ + + + + {{ partial "head.html" . }} + + +
{{ partial "navbar.html" . }}
+
+ {{ block "main" .}} +
+

Page Not Found

+
+ Oops! We revamped the site recently and missed coding a redirect. +
+

+ Please use the site navigation or the search bar below to find + content. Or help us out by + + submitting a pull request + to fix the issue you encountered. +

+ {{ partial "search-input.html" . }} +
+ {{ end }} +
+
{{ partial "footer.html" . }}
+ + {{ partialCached "scripts.html" . }} + + diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html index 39e6c1ce..d3bea967 100644 --- a/layouts/_default/baseof.html +++ b/layouts/_default/baseof.html @@ -5,13 +5,13 @@ -
+
{{ partial "navbar.html" . }} {{ if .IsHome }}{{ partial "hero-homepage.html" .}}
-
+
{{ else }}
diff --git a/layouts/partials/navbar.html b/layouts/partials/navbar.html index 54b61048..60bd096f 100644 --- a/layouts/partials/navbar.html +++ b/layouts/partials/navbar.html @@ -1,6 +1,6 @@ {{ $cover := .HasShortcode "blocks/cover" }} -