From 71e6fdb95a1b16b6b585337e57963b406f7aaca5 Mon Sep 17 00:00:00 2001 From: Thomas Schuetz Date: Mon, 5 Dec 2022 11:41:18 +0100 Subject: [PATCH] chore: initial commit Signed-off-by: Thomas Schuetz --- .gitignore | 5 + .hugo_build.lock | 0 CONTRIBUTING.md | 381 ++++++++++++++++++ LICENSE | 4 +- README.md | 3 +- _redirects | 1 + archetypes/default.md | 6 + assets/icons/logo.svg | 1 + assets/scss/_variables_project.scss | 9 + config.toml | 225 +++++++++++ content/404/_index.md | 3 + content/en/_index.md | 3 + content/en/docs/_index.md | 9 + content/en/docs/getting-started/Makefile | 46 +++ content/en/docs/getting-started/_index.md | 66 +++ .../getting-started/assets/podtatohead.png | Bin 0 -> 218267 bytes .../demo-application/base/.gitignore | 1 + .../demo-application/base/kustomization.yaml | 2 + .../demo-application/base/manifest.yaml | 297 ++++++++++++++ .../version-1/app-pre-deploy-eval.yaml | 12 + .../version-1/app-pre-deploy.yaml | 12 + .../demo-application/version-1/app.yaml | 22 + .../version-1/kustomization.yaml | 10 + .../demo-application/version-1/manifest.yaml | 84 ++++ .../version-2/app-pre-deploy-eval.yaml | 11 + .../version-2/app-pre-deploy.yaml | 12 + .../demo-application/version-2/app.yaml | 22 + .../version-2/kustomization.yaml | 10 + .../demo-application/version-2/manifest.yaml | 84 ++++ .../version-3/app-pre-deploy-eval.yaml | 11 + .../version-3/app-pre-deploy.yaml | 12 + .../demo-application/version-3/app.yaml | 20 + .../version-3/kustomization.yaml | 10 + .../demo-application/version-3/manifest.yaml | 84 ++++ .../with-app-awareness/app.yaml | 20 + .../with-app-awareness/kustomization.yaml | 8 + .../with-app-awareness/manifest.yaml | 73 ++++ .../with-app-pre-deployment-task/app.yaml | 22 + .../kustomization.yaml | 9 + .../manifest.yaml | 73 ++++ .../workload-pre-deploy.yaml | 12 + .../deploy-kubectl/deploy-kubectl.md | 259 ++++++++++++ .../getting-started/observability/_index.md | 126 ++++++ content/en/docs/quickstart/.gitignore | 6 + .../quickstart/assets/docker-resources.png | 0 .../assets/multi-stage-sequence.png | 0 .../assets/remediation-sequence.png | 0 .../en/docs/quickstart/assets/tutorials.png | 0 go.mod | 9 + go.sum | 7 + makefile | 17 + 51 files changed, 2115 insertions(+), 4 deletions(-) create mode 100644 .gitignore create mode 100644 .hugo_build.lock create mode 100644 CONTRIBUTING.md create mode 100644 _redirects create mode 100644 archetypes/default.md create mode 100644 assets/icons/logo.svg create mode 100644 assets/scss/_variables_project.scss create mode 100644 config.toml create mode 100644 content/404/_index.md create mode 100644 content/en/_index.md create mode 100644 content/en/docs/_index.md create mode 100644 content/en/docs/getting-started/Makefile create mode 100644 content/en/docs/getting-started/_index.md create mode 100644 content/en/docs/getting-started/assets/podtatohead.png create mode 100644 content/en/docs/getting-started/demo-application/base/.gitignore create mode 100644 content/en/docs/getting-started/demo-application/base/kustomization.yaml create mode 100644 content/en/docs/getting-started/demo-application/base/manifest.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-1/app-pre-deploy-eval.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-1/app-pre-deploy.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-1/app.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-1/kustomization.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-1/manifest.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-2/app-pre-deploy-eval.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-2/app-pre-deploy.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-2/app.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-2/kustomization.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-2/manifest.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-3/app-pre-deploy-eval.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-3/app-pre-deploy.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-3/app.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-3/kustomization.yaml create mode 100644 content/en/docs/getting-started/demo-application/version-3/manifest.yaml create mode 100644 content/en/docs/getting-started/demo-application/with-app-awareness/app.yaml create mode 100644 content/en/docs/getting-started/demo-application/with-app-awareness/kustomization.yaml create mode 100644 content/en/docs/getting-started/demo-application/with-app-awareness/manifest.yaml create mode 100644 content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/app.yaml create mode 100644 content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/kustomization.yaml create mode 100644 content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/manifest.yaml create mode 100644 content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/workload-pre-deploy.yaml create mode 100644 content/en/docs/getting-started/deploy-kubectl/deploy-kubectl.md create mode 100644 content/en/docs/getting-started/observability/_index.md create mode 100644 content/en/docs/quickstart/.gitignore create mode 100644 content/en/docs/quickstart/assets/docker-resources.png create mode 100644 content/en/docs/quickstart/assets/multi-stage-sequence.png create mode 100644 content/en/docs/quickstart/assets/remediation-sequence.png create mode 100644 content/en/docs/quickstart/assets/tutorials.png create mode 100644 go.mod create mode 100644 go.sum create mode 100644 makefile diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d882462 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +/static/ +/resources/ +/public/ +/data/ +/layouts/ diff --git a/.hugo_build.lock b/.hugo_build.lock new file mode 100644 index 0000000..e69de29 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..219ba9b --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,381 @@ +# Contribute to the Keptn website + +This document provides information about contributing to the [Keptn documentation](https://keptn.sh/docs/), which is part of the [Keptn](https://keptn.sh) website. + +This documentation is authored with [markdown](https://www.markdownguide.org/basic-syntax/) +and rendered using the [Hugo static website generator framework](http://gohugo.io). + +We welcome and encourage contributions of all levels. +You can make modifications using the GitHub editor; +this works well for small modifications but, if you are making significant changes, you may find it better to fork and clone the repository and make changes using the text editor or IDE of your choice. +You can also run the [Hugo](https://gohugo.io/) based website locally to check the rendered documentation +and then push your changes to the repository as a pull request. + +If you need help getting started, feel free to ask for help on the `#help-contributing` or `#keptn-docs` channels on the [Keptn Slack](https://keptn.sh/community/#slack). +We were all new to this once and are happy to help you! + +## Guidelines for contributing + +* Always fork the repository then clone that fork to your local system rather than clone master directly. +Keptn, like most open source projects, severely restricts who can push changes directly to the *master* branch to protect the integrity of the repository. +* Keep your language clean and crisp. +* Smaller PR's are easier to review and so generally get processed more quickly; +when possible, chunk your work into smallish PR's. +However, we recognize that documentation work sometimes requires larger PRs, such as when writing a whole new section or reorganizing existing files. +* You may want to squash your commits before creating the final PR, to avoid conflicting commits. +This is **not mandatory**; the maintainers will squash your commits during the merge when necessary. +* Be sure that the description of the pull request itself is meaningful and described clearly. +This helps reviewers understand each commit and provides a good history after the PR is merged. +* If your PR is not reviewed in a timely fashion, feel free to post a gentle reminder to the `#keptn-docs` Slack channel. +* Resolve review comments and suggestions promptly. + +If you see a problem and are unable to fix it yourself or have an idea for an enhancement, please create an issue on the GitHub repository: + +* Provide specific and detailed information about the problem and possible solutions to help others understand the issue. +* When reporting a bug, provide a detailed list of steps to reproduce the bug. +If possible, also attach screenshots that illustrate the bug. +* If you want to do the work on an issue, include that information in your description of the issue. + +## Fork and clone the repository + +Perform the following steps to create a copy of this repository on your local machine: + +1. Fork the Keptn repository: + + - Log into GitHub (or create a GitHub account and then log into it). + - Go to the [Keptn docs repository](https://github.com/keptn/keptn.github.io). + - Click the **Fork** button at the top of the screen. + - Choose the user for the fork from the options you are given, usually your GitHub ID. + + A copy of this repository is available in your GitHub account. + +2. Get the string to use when cloning your fork: + + - Click the green "Code" button on the UI page. + - Select the protocol to use for this clone (either HTTPS or SSH). + - A box is displayed that gives the URL for the selected protocol. +Click the icon at the right end of that box to copy that URL. + +3. Clone the forked repository from the shell in a local directory with the **git clone** command, pasting in the URl you saved in the previous step: + ``` + git clone https://github.com//keptn.github.io + ``` + or + ``` + git clone git@github.com:/keptn.github.io.git + ``` + Where <*UserName*> is your GitHub username. The keptn.github.io directory is now available in the local directory. + +4. Remember to sync your fork with the master branch regularly. +To do this: + + Go to GitHub and copy the url of the main keptn-github-io repo: + ``` + https://github.com/keptn/keptn.github.io.git + ``` + make sure to be in the root folder of the project and the branch should be master branch and type: + ``` + git remote add upstream https://github.com/keptn/keptn.github.io.git + ``` + Now you have your upstream setup in your local machine, whenever you need to make a new branch for making changes make sure your master branch is in sync with the main repository, to do this, make sure to be in the master branch: + + ``` + git pull upstream master + git push origin master + ``` + +## Guidelines for working on documentation in development or already released documentation + +If you want to work on an issue or enhancement, two questions arise: +1. Does it relate to a *new feature* that is not yet released? +1. Does it relate to an *already released* Keptn version? + +Currently, the Keptn project follows the approach outlined below. For clarification, an example is used in which the Keptn project recently released `0.13.x` and is currently working on `0.14.x`. These release versions will of course increase when the release train moves on. + +**Documentation for new features** + +For each recent release (e.g. `0.14.x`), a folder in [./content/docs](https://github.com/keptn/keptn.github.io/tree/master/content/docs) is available, which receives documentation for new features or breaking changes. This folder is *hidden* and not publically rendered. This is controlled with the `ignoreFiles` flag in [config.toml](https://github.com/keptn/keptn.github.io/blob/master/config.toml). When writing your documentation enhancements or changes locally - as explained in the section [Install Hugo to build the docs locally](https://github.com/keptn/keptn.github.io/blob/master/CONTRIBUTING.md#install-hugo-to-build-the-docs-locally) - control the rendering by adding/removing the folder from the `ignoreFiles` in `config.toml`. However, make sure to not push the modified `config.toml` when filing your PR. + +> Update the content in folder `0.14.x` when documentation for a new feature is needed. + +**Documentation for already released Keptn versions** + +For all previous releases like `0.13.x`, `0.12.x`, and lower, a folder in [./content/docs](https://github.com/keptn/keptn.github.io/tree/master/content/docs) is available. If a fix or enhancement of an already released version is needed, the documentation update needs to go into the corresponding folder **and** into the documentation for the release under development if the change is valid for upcoming releases too. + +> Update the content in the corresponding folder of the Keptn release **and** in the current folder that is in development. Consequently, your PR will target at least two folders if the change is relevant for the upcoming releases too. + +## Building the documentation locally + +For any kind of local build you need to load the git submodule for the Hugo theme in the *themes* directory: + +```console + git submodule update --init --recursive --force +``` + +### Using makefile + +To utilize the `makefile` you have to have GNU make available on your local machine, there are versions for all the usual Operating Systems available. + +To run a target call: + +```console + make +``` + +We provde the following targets: + +* build: for building +* server: for building and starting the server at http://localhost:1313/ +* clean: for cleaning the public directory +* htmltest: to run htmltest against generated output + +The makefile targets are utilizing docker for easier setup. This requires no additional setup as all the build specific software is encapsulated in proper docker images. + +### Using a locally installed Hugo + +1. Install the extended version of [Hugo](http://gohugo.io) in [Version 0.105.0](https://github.com/gohugoio/hugo/releases/tag/v0.105.0) (see [netlify.toml](netlify.toml) - `HUGO_VERSION = "0.105.0"`). + + :warning: It is important that you install the **extended** version of Hugo. Learn how to install Hugo, depending on your OS, here: [install Hugo](https://gohugo.io/getting-started/installing/). + +The themes directory on your local machine (localdirectory/keptn.github.io/themes) is empty. +Currently the website uses the _Hugo serif theme_ which is available at https://github.com/zerostaticthemes/hugo-serif-theme. +You need to load the git submodule (see next step) to install this theme. + + +1. Execute the following command from the root folder of your clone: + ``` + hugo server -D + ``` +1. Start contributing! +Leave the Hugo server running in a shell. +Note that Hugo updates the rendered documentation each time you write the file. + +1. Enter the following in a browser to view the website: + ``` + http://localhost:1313/ + ``` +1. Use Ctrl+C to stop the local Hugo server when you are done. + +### Building markdown files without Hugo + +The Hugo generator described above only renders the markdown files under the */content/docs* directory. +If you need to render another markdown file (such as this *CONTRIBUTING.md* file) to check your formatting, you have the following options: + + - If you are using an IDE to author the markdown text, use the markdown preview browser for the IDE. + - You can push your changes to GitHub and use the GitHub previewer (*View Page*). + - You can install and use the [grip](https://github.com/joeyespo/grip/blob/master/README.md) previewer to view the rendered content locally. +When *grip* is installed, you can format the specified file locally by running the following in its own shell: + ``` + grip .md + ``` + Point your browser at `localhost:6419` to view the formatted file. + The document updates automatically each time you write your changes to disk. + +## Source file structure + +The source files for the [Keptn Documentation](https://keptn.sh/docs/) are stored under the *content/docs* directory in the repository. +The build strategy is to build everything except for the files/folders that are listed in the `ignoreFiles` array in the [config.toml](https://github.com/keptn/keptn.github.io/blob/master/config.toml) file. + +The order in which the files are displayed is determined by the value of the `weight` field in the metadata section of *_index.md* and *index.md* files located throughout the directory tree. + +The metadata section of these files contains at least four fields. +As an example, the metadata section for the *Concepts* section of the documentation is: + +``` +title: Concepts +description: Learn about the core concepts, use-cases, and architecture of Keptn. +weight: 2 +icon: concepts +``` + +The meaning of these fields is: + +* **title** -- title displayed for the section or file +* **description** -- subtext displayed for the section or subsection +* **weight** -- order in which section or subsection is desplayed relative to other sections and subsections at the same level. +In this case, the weight of 2 means that this section is displayed after *Quick Start* (which has a weight of 1) and before *Roadmap* (which has a weight of 3). +* **icon** -- determines the icon displayed next to titles in content listings. Values used in the Keptn docs include `concepts`, `docs`, `setup`, `tasks`, `setup`, and `reference`. +You can explore the various options used by comparing the doc output with the values used for this field. + +Some other fields are sometimes used in the metadata. + +### Top level structure + +The current tools do not support versioning. +To work around this limitation, the docs are arranged with some general topics that generally apply to all releases and then subsections for each release that is currently supported. + +The system for assigning weights for the docs landing page is: + +* General introductory material uses weight values under 100. +* Sections for individual releases use weight values of 9**. +* Sections for general but advanced info use weight value of 1***. + +### Subdirectory structure + +Each subdirectory contains topical subdirectories for each chapter in that section. +Each topical subdirectory contains: + + - An *index.md* file that has the metadata discussed above plus the text for the section + - An *assets* subdirectory where graphical files for that topic are stored. +No *assets* subdirectory is present if the topic has no graphics. + +## Submitting new content through a pull request + +If you have forked and cloned the repository, +you can modify the documentation or add new material +by editing the markdown file(s) in the local clone of your fork +and then submitting a _pull request (PR)_. + +Note that you can also modify the source using the GitHub editor. +This is very useful when you want to fix a typo or make a small editorial change but, if you are doing significant writing, it is generally better to work on files in your local clone. + +The following sequence of steps is a reasonable workflow for creating new content on your local clone and pushing it to GitHub to be reviewed and merged. + +1. Execute the following command from the root folder and leave it running in a shell: + ``` + hugo server -D + ``` +2. Create a local branch for your changes. Be sure to base your new branch on the contents of the `master` branch unless you intend to create a derivative PR: + ``` + git checkout master + git pull + git checkout -b + ``` +3. Execute the following and check the output to ensure that your branch is set up correctly: + ``` + git status + ``` + +3. Do the writing you want to do in your local branch, checking the formatted version at `localhost:1313`. + +4. When you have completed the writing you want to do, close all files in your branch and run `git status` to confirm that it correctly reflects the files you have modified, added, and deleted. + +4. Add and commit your changes. Here, we commit all modified files but you can specify individual files to the `git add` command. +The `git commit -s` command commits the files and signs that you are contributing this intellectual property to the Keptn project. + ``` + git add . + git commit -s + ``` + + Use vi commands to add a description of the PR (should be 80 characters or less) to the commit. This will be displayed as the title of the PR in listings. +You can add multiple lines explaining the PR here but, in general, it is better to only supply the PR title here; you can add more information and edit the PR title when you create the PR on the GitHub UI page. + +5. Push your branch to github: + - If you cloned your fork to use SSH, the command is: + ``` + git push --set-upstream origin + ``` + + Note that you can just issue the `git push` command. +Git responds with an error message that gives you the full command line to use; you can copy this command and paste it into your shell to push the content. + - If you cloned your fork to use HTTP, the command is: + ``` + git push + ``` + +6. Create the PR by going to the [keptn.github.io](https://github.com/keptn/keptn.github.io) GitHub repository. + - You should see a yellow shaded area that says something like: + ``` + : had recent pushes less than a minute ago + ``` + + - Click on the button in that shaded area marked: + ``` + Compare & pull request + ``` + - Check that the title of the PR is correct; click the "Edit" button to modify it. +Add "WIP" (Work in Progress) or "Draft" to the title if the PR is not yet ready for general review. + - Add a full description of the work in the PR, including any notes for reviewers, a reference to the relevant GitHub issue (if any), and tags for specific people (if any) who may be interested in this PR. + - Carefully review the changes GitHub displays for this PR to ensure that they are what you want. + - Click the green "Create pull request" button to create the PR. +You may want to record the PR number somewhere for future reference although you can always find the PR in the GitHub lists of open and closed PRs. + - GitHub automatically populates the "Reviewers" block. + - If this PR is not ready for review, click the "Still in progress? Convert to draft" string under the list of reviewers. +People can still review the content but can not merge the PR until you remove the "Draft" status. + - The block of the PR that reports on checks will include the following item: + ``` + This pull request is still a work in progress + Draft pull requests cannot be merged. + ``` + - When the PR is ready to be reviewed, approved, and merged, click the "Ready to review" button to remove the "Draft" status. Then, if you added "WIP" or "Draft" to the PR title, remove it now. + +7. Your PR should be reviewed within a few days. Watch for any comments that may be added by reviewers and implement or respond to the recommended changes as soon as possible. + + * If a reviewer makes a GitHub suggestion and you agree with the change, just click "Accept this change" to create a commit for that modification. You can also group several suggestions into a single commit using the GitHub tools. + * You can make other changes using the GitHub editor or you can work in your local branch to make modifications. + + * If changes have been made using the GitHub editor, you will need to do a `git pull` request to pull those commits back to your local branch before you push the new changes. + * After modifying the local source, issue the `git add .`, `git commit`, and `git push` commands to push your changes to github. + +8. When your PR has the appropriate approvals, it will be merged and the revised content should be published on the web site within a few minutes. + +9. When your PR has been approved and merged, you can delete your local branch with the following command: + ``` + git branch -d + ``` + +### Developer Certification of Origin (DCO) + +Licensing is very important to open source projects. It helps ensure the software continues to be available under the terms that the author desired. + +Keptn uses [Apache License 2.0](https://github.com/keptn/keptn.github.io/blob/master/LICENSE) to strike a balance between open contributions and allowing you to use the software however you would like to. + +The license tells you what rights you have that are provided by the copyright holder. It is important that the contributor fully understands what rights they are licensing and agrees to them. Sometimes the copyright holder isn't the contributor, such as when the contributor is doing work on behalf of a company. + +To make a good faith effort to ensure these criteria are met, Keptn requires the Developer Certificate of Origin (DCO) process to be followed. + +The DCO is an attestation attached to every contribution made by every developer. In the commit message of the contribution, the developer simply adds a Signed-off-by statement and thereby agrees to the DCO, which you can find below or at . + +``` +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2004, 2006 The Linux Foundation and its contributors. + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. +``` + +#### DCO Sign-Off Methods + +The DCO requires a sign-off message in the following format to appear on each commit in the pull request: + +``` +Signed-off-by: Humpty Dumpty +``` + +The DCO text can either be manually added to your commit body, or you can add either **-s** or **--signoff** to your usual git commit commands. If you are using the GitHub UI to make a change you can add the sign-off message directly to the commit message when creating the pull request. If you forget to add the sign-off you can also amend a previous commit with the sign-off by running **git commit --amend -s**. If you've pushed your changes to GitHub already you'll need to force push your branch after this with **git push -f**. + +**ATTRIBUTION**: + +- https://probot.github.io/apps/dco/ +- https://github.com/opensearch-project/common-utils/blob/main/CONTRIBUTING.md +- https://code.asam.net/simulation/wiki/-/wikis/docs/project_guidelines/ASAM-DCO?version_id=c510bffb1195dc04deb9db9451112669073f0ba5 +- https://thesofproject.github.io/latest/contribute/contribute_guidelines.html \ No newline at end of file diff --git a/LICENSE b/LICENSE index 261eeb9..56bfd91 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright [yyyy] [name of copyright owner] + Copyright 2019 The Keptn Authors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -198,4 +198,4 @@ distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and - limitations under the License. + limitations under the License. \ No newline at end of file diff --git a/README.md b/README.md index 7378157..9af15c5 100644 --- a/README.md +++ b/README.md @@ -1,2 +1 @@ -# keptn-lifecycle-toolkit-docs -Documentation for the Keptn Lifecycle Toolkit +# Keptn Lifecycle Toolkit Documentation \ No newline at end of file diff --git a/_redirects b/_redirects new file mode 100644 index 0000000..29f270f --- /dev/null +++ b/_redirects @@ -0,0 +1 @@ +https://keptn.netlify.com/* https://keptn.sh/:splat 301! diff --git a/archetypes/default.md b/archetypes/default.md new file mode 100644 index 0000000..f5a9e45 --- /dev/null +++ b/archetypes/default.md @@ -0,0 +1,6 @@ +--- +title: "{{ replace .TranslationBaseName "-" " " | title }}" +date: {{ .Date }} +draft: true +--- + diff --git a/assets/icons/logo.svg b/assets/icons/logo.svg new file mode 100644 index 0000000..a6e1925 --- /dev/null +++ b/assets/icons/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/scss/_variables_project.scss b/assets/scss/_variables_project.scss new file mode 100644 index 0000000..d149c18 --- /dev/null +++ b/assets/scss/_variables_project.scss @@ -0,0 +1,9 @@ +/* + +Add styles or override variables from the theme here. + +*/ + +.td-navbar .navbar-brand__name { + display: none; +} \ No newline at end of file diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..5e5775b --- /dev/null +++ b/config.toml @@ -0,0 +1,225 @@ +baseURL = "/" +title = "keptn" + +ignoreFiles = [ +"^(.*/docs/0.7.x/*)$", +"^(.*/docs/0.6.0/*)$", +"^(.*/docs/0.5.0/*)$", +"^(.*/docs/0.4.0/*)$", +"^(.*/docs/0.3.0/*)$", +"^(.*/docs/0.2.2/*)$", +"^(.*/docs/0.2.1/*)$", +"^(.*/docs/0.2.0/*)$", +"^(.*/docs/0.1.3/*)$", +"^(.*/docs/0.1.2/*)$", +"^(.*/docs/0.1.1/*)$", +"^(.*/docs/0.1.0/*)$" ] + +# Language settings +contentDir = "content/en" +defaultContentLanguage = "en" +defaultContentLanguageInSubdir = false +# Useful when translating. +enableMissingTranslationPlaceholders = true + +enableRobotsTXT = true + +# Will give values to .Lastmod etc. +enableGitInfo = true + +# Comment out to enable taxonomies in Docsy +# disableKinds = ["taxonomy", "taxonomyTerm"] + +# You can add your own taxonomies +[taxonomies] +tag = "tags" +category = "categories" + +[params.taxonomy] +# set taxonomyCloud = [] to hide taxonomy clouds +taxonomyCloud = ["tags", "categories"] + +# If used, must have same length as taxonomyCloud +taxonomyCloudTitle = ["Tag Cloud", "Categories"] + +# set taxonomyPageHeader = [] to hide taxonomies on the page headers +taxonomyPageHeader = ["tags", "categories"] + + +# Highlighting config +pygmentsCodeFences = true +pygmentsUseClasses = false +# Use the new Chroma Go highlighter in Hugo. +pygmentsUseClassic = false +#pygmentsOptions = "linenos=table" +# See https://help.farbox.com/pygments.html +pygmentsStyle = "tango" + +# Configure how URLs look like per section. +[permalinks] +blog = "/:section/:year/:month/:day/:slug/" + +# Image processing configuration. +[imaging] +resampleFilter = "CatmullRom" +quality = 75 +anchor = "smart" + +[services] +[services.googleAnalytics] +# Comment out the next line to disable GA tracking. Also disables the feature described in [params.ui.feedback]. +id = "UA-133584243-1" +# Language configuration + +[languages] +[languages.en] +title = "keptn" +description = "Cloud-native application life-cycle orchestration" +languageName ="English" +# Weight used for sorting. +weight = 1 + +[markup] + [markup.goldmark] + [markup.goldmark.renderer] + unsafe = true + [markup.highlight] + # See a complete list of available styles at https://xyproto.github.io/splash/docs/all.html + style = "tango" + # Uncomment if you want your chosen highlight style used for code blocks without a specified language + guessSyntax = "true" + +# Everything below this are Site Params + +# Comment out if you don't want the "print entire section" link enabled. +[outputs] +section = ["HTML", "RSS"] + +[params] +copyright = "Keptn Community" +privacy_policy = "https://policies.google.com/privacy" + +# First one is picked as the Twitter card image if not set on page. +# images = ["images/project-illustration.png"] + +# Menu title if your navbar has a versions selector to access old versions of your site. +# This menu appears only if you have at least one [params.versions] set. +version_menu = "Releases" + +# Flag used in the "version-banner" partial to decide whether to display a +# banner on every page indicating that this is an archived version of the docs. +# Set this flag to "true" if you want to display the banner. +archived_version = false + +# The version number for the version of the docs represented in this doc set. +# Used in the "version-banner" partial to display a version number for the +# current doc set. +version = "0.0" + +# A link to latest version of the docs. Used in the "version-banner" partial to +# point people to the main doc site. +url_latest_version = "https://example.com" + +# Repository configuration (URLs for in-page links to opening issues and suggesting changes) +github_repo = "https://github.com/keptn-sandbox/keptn-lifecycle-toolkit-docs" +# An optional link to a related project repo. For example, the sibling repository where your product code lives. +github_project_repo = "https://github.com/keptn/keptn-lifecycle-toolkit" + +# Specify a value here if your content directory is not in your repo's root directory +# github_subdir = "" + +# Uncomment this if your GitHub repo does not have "main" as the default branch, +# or specify a new value if you want to reference another branch in your GitHub links +# github_branch= "master" + +# Google Custom Search Engine ID. Remove or comment out to disable search. +gcs_engine_id = "d72aa9b2712488cc3" + +# Enable Algolia DocSearch +algolia_docsearch = true + +# Enable Lunr.js offline search +offlineSearch = false + +# Enable syntax highlighting and copy buttons on code blocks with Prism +prism_syntax_highlighting = true + +# User interface configuration +[params.ui] +# Set to true to disable breadcrumb navigation. +breadcrumb_disable = false +# Set to true to disable the About link in the site footer +footer_about_disable = false +# Set to false if you don't want to display a logo (/assets/icons/logo.svg) in the top navbar +navbar_logo = true +# Set to true if you don't want the top navbar to be translucent when over a `block/cover`, like on the homepage. +navbar_translucent_over_cover_disable = false +# Enable to show the side bar menu in its compact state. +sidebar_menu_compact = true +# Set to true to hide the sidebar search box (the top nav search box will still be displayed if search is enabled) +sidebar_search_disable = false + +# Adds a H2 section titled "Feedback" to the bottom of each doc. The responses are sent to Google Analytics as events. +# This feature depends on [services.googleAnalytics] and will be disabled if "services.googleAnalytics.id" is not set. +# If you want this feature, but occasionally need to remove the "Feedback" section from a single page, +# add "hide_feedback: true" to the page's front matter. +[params.ui.feedback] +enable = true +# The responses that the user sees after clicking "yes" (the page was helpful) or "no" (the page was not helpful). +yes = 'Glad to hear it! Please tell us how we can improve.' +no = 'Sorry to hear that. Please tell us how we can improve.' + +# Adds a reading time to the top of each doc. +# If you want this feature, but occasionally need to remove the Reading time from a single page, +# add "hide_readingtime: true" to the page's front matter +[params.ui.readingtime] +enable = false + +[params.links] +# End user relevant links. These will show up on left side of footer and in the community page if you have one. +[[params.links.user]] + name = "User mailing list" + url = "https://example.org/mail" + icon = "fa fa-envelope" + desc = "Discussion and help from your fellow users" +[[params.links.user]] + name ="Twitter" + url = "https://example.org/twitter" + icon = "fab fa-twitter" + desc = "Follow us on Twitter to get the latest news!" +[[params.links.user]] + name = "Stack Overflow" + url = "https://example.org/stack" + icon = "fab fa-stack-overflow" + desc = "Practical questions and curated answers" +# Developer relevant links. These will show up on right side of footer and in the community page if you have one. +[[params.links.developer]] + name = "GitHub" + url = "https://github.com/google/docsy" + icon = "fab fa-github" + desc = "Development takes place here!" +[[params.links.developer]] + name = "Slack" + url = "https://example.org/slack" + icon = "fab fa-slack" + desc = "Chat with other project developers" +[[params.links.developer]] + name = "Developer mailing list" + url = "https://example.org/mail" + icon = "fa fa-envelope" + desc = "Discuss development issues around the project" + +# hugo module configuration + +[module] + # uncomment line below for temporary local development of module + # replacements = "github.com/google/docsy -> ../../docsy" + [module.hugoVersion] + extended = true + min = "0.75.0" + [[module.imports]] + path = "github.com/google/docsy" + disable = false + [[module.imports]] + path = "github.com/google/docsy/dependencies" + disable = false \ No newline at end of file diff --git a/content/404/_index.md b/content/404/_index.md new file mode 100644 index 0000000..7ade402 --- /dev/null +++ b/content/404/_index.md @@ -0,0 +1,3 @@ +--- +title: Page Not Found +--- diff --git a/content/en/_index.md b/content/en/_index.md new file mode 100644 index 0000000..68ac4ac --- /dev/null +++ b/content/en/_index.md @@ -0,0 +1,3 @@ + --- +title: Home +--- diff --git a/content/en/docs/_index.md b/content/en/docs/_index.md new file mode 100644 index 0000000..9380a54 --- /dev/null +++ b/content/en/docs/_index.md @@ -0,0 +1,9 @@ +--- +title: Docs +linktitle: Docs +description: Learn how to use Keptn. +sidebar_multicard: true +icon: docs +menu: main +weight: 4 +--- diff --git a/content/en/docs/getting-started/Makefile b/content/en/docs/getting-started/Makefile new file mode 100644 index 0000000..3a7e00e --- /dev/null +++ b/content/en/docs/getting-started/Makefile @@ -0,0 +1,46 @@ +JAEGER_VERSION ?= v1.38.0 +LFC_NAMESPACE ?= keptn-lifecycle-controller-system +PODTATO_NAMESPACE ?= podtato-kubectl + +.PHONY: install +install: + make -C ../observability install + +.PHONY: import-grafana-dashboard +import-grafana-dashboard: + make -C ../observability import-grafana-dashboard + +.PHONY: port-forward-jaeger +port-forward-jaeger: + make -C ../observability port-forward-jaeger + +.PHONY: port-forward-grafana +port-forward-grafana: + make -C ../observability port-forward-grafana + +.PHONY: deploy-version-1 +deploy-version-1: + kubectl create namespace "$(PODTATO_NAMESPACE)" --dry-run=client -o yaml | kubectl apply -f - + kubectl apply -k version-1 + +.PHONY: deploy-version-2 +deploy-version-2: + kubectl create namespace "$(PODTATO_NAMESPACE)" --dry-run=client -o yaml | kubectl apply -f - + kubectl apply -k version-2 + +.PHONY: deploy-version-3 +deploy-version-3: + kubectl create namespace "$(PODTATO_NAMESPACE)" --dry-run=client -o yaml | kubectl apply -f - + kubectl apply -k version-3 + +.PHONY: undeploy-podtatohead +undeploy-podtatohead: + kubectl delete ns "$(PODTATO_NAMESPACE)" --ignore-not-found=true + + @echo "######################" + @echo "PodTatoHead undeployed" + @echo "######################" + +.PHONY: uninstall +uninstall: undeploy-podtatohead + make -C ../observability uninstall \ No newline at end of file diff --git a/content/en/docs/getting-started/_index.md b/content/en/docs/getting-started/_index.md new file mode 100644 index 0000000..7134d0f --- /dev/null +++ b/content/en/docs/getting-started/_index.md @@ -0,0 +1,66 @@ +--- +title: Getting Started +description: Learn how to use the Keptn Lifecycle Toolkit and explore basic features. +icon: concepts +layout: quickstart +weight: 15 +hidechildren: true # this flag hides all sub-pages in the sidebar-multicard.html +--- + +The Keptn Lifecycle Toolkit brings application-awareness to your Kubernetes cluster and helps you reliably delivering your application with: + +* Pre-Deployment Tasks: e.g. checking for dependant services, checking if the cluster is ready for the deployment, etc. +* Pre-Deployment Evaluations: e.g. evaluate metrics before your application gets deployed (e.g. layout of the cluster +* Post-Deployment Tasks: e.g. trigger a test, trigger a deployment to another cluster, etc. +* Post-Deployment Evaluations: e.g. evaluate the deployment, evaluate the test results, etc. + +All of these things can be executed on a workload or on an application level, whereby an application is a collection of multiple workloads. + +## What you will learn here +* Use the Keptn Lifecycle Toolkit to control the deployment of your application +* Connect the lifecycle-toolkit to Prometheus +* Use pre-deployment tasks to check if a dependency is met before deploying a workload +* Use post-deployment tasks on an application level to send a notification + +## Prerequisites +* A Kubernetes cluster >= Kubernetes 1.24 + * If you don't have one, we recommend [Kubernetes-in-Docker(KinD)](https://kind.sigs.k8s.io/docs/user/quick-start/) to set up your local development environment +* kubectl installed on your system + * See (https://kubernetes.io/docs/tasks/tools/) for more information + +## Install the Keptn Lifecycle Toolkit +At the moment, the lifecycle controller needs *cert-manager* to be installed. Therefore, you can install cert-manager using: + + +``` +kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.10.0/cert-manager.yaml +kubectl wait --for=condition=Available deployment/cert-manager-webhook -n cert-manager --timeout=60s +``` + +After that, you can install the lifecycle toolkit using the current release manifest: + +``` +kubectl apply -f https://github.com/keptn/lifecycle-toolkit/releases/download/v0.4.0/manifest.yaml +kubectl wait --for=condition=Available deployment/klc-controller-manager -n keptn --timeout=120s +``` + + +Now, the Lifecycle Toolkit and its dependency is installed and ready to use. + +## The Demo Application +For this demonstration, we use a slightly modified version of [the PodTatoHead](https://github.com/podtato-head/podtato-head). + +![img.png](assets/podtatohead.png) + +Over time, we will evolve this application from a simple manifest to a Keptn-managed application. We will install it first with kubectl and add pre- as well as post-deployment tasks. For this, we will check if the entry service is available before the other ones get scheduled. Afterwards, we will add evaluations to ensure that our infrastructure is in a good shape before we deploy the application. Finally, we will evolve to a GitOps driven deployment and will notify an external webhook service when the deployment has finished. + +## I want to ... +* Deploy the Demo Application + * [Using kubectl](./deploy-kubectl) + * [Using ArgoCD](./deploy-argocd) +* [Observe my deployment using Prometheus and Grafana](./observability.md) +* [Write a Keptn Task](./writing-a-task.md) + +* [Modify the Demo Application](./modify-app.md) diff --git a/content/en/docs/getting-started/assets/podtatohead.png b/content/en/docs/getting-started/assets/podtatohead.png new file mode 100644 index 0000000000000000000000000000000000000000..440d9d995d471158b50340bbf9384019bad1cef8 GIT binary patch literal 218267 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�qr6tr$--af>HVYyp*;X4(#8=oJ8 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

}uld(C@~P8S3h+wOdRZyZ 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

Lal`!lvpSL_E1CpJW4Iwfjn)Gob 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" diff --git a/content/en/docs/getting-started/demo-application/version-1/app-pre-deploy.yaml b/content/en/docs/getting-started/demo-application/version-1/app-pre-deploy.yaml new file mode 100644 index 0000000..6e68c2a --- /dev/null +++ b/content/en/docs/getting-started/demo-application/version-1/app-pre-deploy.yaml @@ -0,0 +1,12 @@ +apiVersion: lifecycle.keptn.sh/v1alpha1 +kind: KeptnTaskDefinition +metadata: + name: pre-deployment-check-entry + namespace: podtato-kubectl +spec: + function: + httpRef: + url: https://raw.githubusercontent.com/keptn-sandbox/lifecycle-controller/main/functions-runtime/samples/ts/http.ts + parameters: + map: + url: http://podtato-head-entry.podtato-kubectl.svc.cluster.local:9000 \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/version-1/app.yaml b/content/en/docs/getting-started/demo-application/version-1/app.yaml new file mode 100644 index 0000000..63a0c92 --- /dev/null +++ b/content/en/docs/getting-started/demo-application/version-1/app.yaml @@ -0,0 +1,22 @@ +apiVersion: lifecycle.keptn.sh/v1alpha1 +kind: KeptnApp +metadata: + name: podtato-head + namespace: podtato-kubectl +spec: + version: "0.1.0" + workloads: + - name: podtato-head-left-arm + version: 0.2.7 + - name: podtato-head-left-leg + version: 0.2.7 + - name: podtato-head-entry + version: 0.2.7 + - name: podtato-head-right-arm + version: 0.1.0 + - name: podtato-head-left-arm + version: 0.2.7 + - name: podtato-head-hat + version: 0.1.0 + preDeploymentEvaluations: + - app-pre-deploy-eval-1 \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/version-1/kustomization.yaml b/content/en/docs/getting-started/demo-application/version-1/kustomization.yaml new file mode 100644 index 0000000..f415117 --- /dev/null +++ b/content/en/docs/getting-started/demo-application/version-1/kustomization.yaml @@ -0,0 +1,10 @@ +bases: + - ../base + +resources: + - app-pre-deploy.yaml + - app-pre-deploy-eval.yaml + +patchesStrategicMerge: + - app.yaml + - manifest.yaml \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/version-1/manifest.yaml b/content/en/docs/getting-started/demo-application/version-1/manifest.yaml new file mode 100644 index 0000000..587aad6 --- /dev/null +++ b/content/en/docs/getting-started/demo-application/version-1/manifest.yaml @@ -0,0 +1,84 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-entry + namespace: podtato-kubectl +spec: + template: + metadata: + labels: + keptn.sh/app: podtato-head + keptn.sh/workload: podtato-head-entry + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-hat + namespace: podtato-kubectl +spec: + template: + metadata: + labels: + app.kubernetes.io/version: 0.1.0 + annotations: + app.kubernetes.io/part-of: podtato-head + app.kubernetes.io/name: podtato-head-hat + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-left-leg + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + app.kubernetes.io/part-of: podtato-head + app.kubernetes.io/name: podtato-head-left-leg + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-left-arm + namespace: podtato-kubectl +spec: + template: + metadata: + labels: + app.kubernetes.io/part-of: podtato-head + annotations: + app.kubernetes.io/name: podtato-head-left-arm + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-right-leg + namespace: podtato-kubectl +spec: + template: + metadata: + labels: + component: podtato-head-right-leg + annotations: + app.kubernetes.io/part-of: podtato-head + app.kubernetes.io/name: podtato-head-right-leg + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-right-arm + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + app.kubernetes.io/part-of: podtato-head + keptn.sh/workload: podtato-head-right-arm + keptn.sh/version: 0.1.0 + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/version-2/app-pre-deploy-eval.yaml b/content/en/docs/getting-started/demo-application/version-2/app-pre-deploy-eval.yaml new file mode 100644 index 0000000..b481287 --- /dev/null +++ b/content/en/docs/getting-started/demo-application/version-2/app-pre-deploy-eval.yaml @@ -0,0 +1,11 @@ +apiVersion: lifecycle.keptn.sh/v1alpha1 +kind: KeptnEvaluationDefinition +metadata: + name: app-pre-deploy-eval-2 + namespace: podtato-kubectl +spec: + source: prometheus + objectives: + - name: available-cpus ## this query should fail + query: "sum(kube_pod_container_resource_limits{resource='cpu'}) - sum(kube_node_status_capacity{resource='cpu'})" + evaluationTarget: ">1" \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/version-2/app-pre-deploy.yaml b/content/en/docs/getting-started/demo-application/version-2/app-pre-deploy.yaml new file mode 100644 index 0000000..6e68c2a --- /dev/null +++ b/content/en/docs/getting-started/demo-application/version-2/app-pre-deploy.yaml @@ -0,0 +1,12 @@ +apiVersion: lifecycle.keptn.sh/v1alpha1 +kind: KeptnTaskDefinition +metadata: + name: pre-deployment-check-entry + namespace: podtato-kubectl +spec: + function: + httpRef: + url: https://raw.githubusercontent.com/keptn-sandbox/lifecycle-controller/main/functions-runtime/samples/ts/http.ts + parameters: + map: + url: http://podtato-head-entry.podtato-kubectl.svc.cluster.local:9000 \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/version-2/app.yaml b/content/en/docs/getting-started/demo-application/version-2/app.yaml new file mode 100644 index 0000000..bc180fd --- /dev/null +++ b/content/en/docs/getting-started/demo-application/version-2/app.yaml @@ -0,0 +1,22 @@ +apiVersion: lifecycle.keptn.sh/v1alpha1 +kind: KeptnApp +metadata: + name: podtato-head + namespace: podtato-kubectl +spec: + version: "0.1.1" + workloads: + - name: podtato-head-left-arm + version: 0.2.7 + - name: podtato-head-left-leg + version: 0.2.7 + - name: podtato-head-entry + version: 0.2.7 + - name: podtato-head-right-arm + version: 0.1.0 + - name: podtato-head-left-arm + version: 0.2.7 + - name: podtato-head-hat + version: 0.1.0 + preDeploymentEvaluations: + - app-pre-deploy-eval-2 \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/version-2/kustomization.yaml b/content/en/docs/getting-started/demo-application/version-2/kustomization.yaml new file mode 100644 index 0000000..f415117 --- /dev/null +++ b/content/en/docs/getting-started/demo-application/version-2/kustomization.yaml @@ -0,0 +1,10 @@ +bases: + - ../base + +resources: + - app-pre-deploy.yaml + - app-pre-deploy-eval.yaml + +patchesStrategicMerge: + - app.yaml + - manifest.yaml \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/version-2/manifest.yaml b/content/en/docs/getting-started/demo-application/version-2/manifest.yaml new file mode 100644 index 0000000..587aad6 --- /dev/null +++ b/content/en/docs/getting-started/demo-application/version-2/manifest.yaml @@ -0,0 +1,84 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-entry + namespace: podtato-kubectl +spec: + template: + metadata: + labels: + keptn.sh/app: podtato-head + keptn.sh/workload: podtato-head-entry + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-hat + namespace: podtato-kubectl +spec: + template: + metadata: + labels: + app.kubernetes.io/version: 0.1.0 + annotations: + app.kubernetes.io/part-of: podtato-head + app.kubernetes.io/name: podtato-head-hat + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-left-leg + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + app.kubernetes.io/part-of: podtato-head + app.kubernetes.io/name: podtato-head-left-leg + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-left-arm + namespace: podtato-kubectl +spec: + template: + metadata: + labels: + app.kubernetes.io/part-of: podtato-head + annotations: + app.kubernetes.io/name: podtato-head-left-arm + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-right-leg + namespace: podtato-kubectl +spec: + template: + metadata: + labels: + component: podtato-head-right-leg + annotations: + app.kubernetes.io/part-of: podtato-head + app.kubernetes.io/name: podtato-head-right-leg + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-right-arm + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + app.kubernetes.io/part-of: podtato-head + keptn.sh/workload: podtato-head-right-arm + keptn.sh/version: 0.1.0 + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/version-3/app-pre-deploy-eval.yaml b/content/en/docs/getting-started/demo-application/version-3/app-pre-deploy-eval.yaml new file mode 100644 index 0000000..b481287 --- /dev/null +++ b/content/en/docs/getting-started/demo-application/version-3/app-pre-deploy-eval.yaml @@ -0,0 +1,11 @@ +apiVersion: lifecycle.keptn.sh/v1alpha1 +kind: KeptnEvaluationDefinition +metadata: + name: app-pre-deploy-eval-2 + namespace: podtato-kubectl +spec: + source: prometheus + objectives: + - name: available-cpus ## this query should fail + query: "sum(kube_pod_container_resource_limits{resource='cpu'}) - sum(kube_node_status_capacity{resource='cpu'})" + evaluationTarget: ">1" \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/version-3/app-pre-deploy.yaml b/content/en/docs/getting-started/demo-application/version-3/app-pre-deploy.yaml new file mode 100644 index 0000000..6e68c2a --- /dev/null +++ b/content/en/docs/getting-started/demo-application/version-3/app-pre-deploy.yaml @@ -0,0 +1,12 @@ +apiVersion: lifecycle.keptn.sh/v1alpha1 +kind: KeptnTaskDefinition +metadata: + name: pre-deployment-check-entry + namespace: podtato-kubectl +spec: + function: + httpRef: + url: https://raw.githubusercontent.com/keptn-sandbox/lifecycle-controller/main/functions-runtime/samples/ts/http.ts + parameters: + map: + url: http://podtato-head-entry.podtato-kubectl.svc.cluster.local:9000 \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/version-3/app.yaml b/content/en/docs/getting-started/demo-application/version-3/app.yaml new file mode 100644 index 0000000..82b4b57 --- /dev/null +++ b/content/en/docs/getting-started/demo-application/version-3/app.yaml @@ -0,0 +1,20 @@ +apiVersion: lifecycle.keptn.sh/v1alpha1 +kind: KeptnApp +metadata: + name: podtato-head + namespace: podtato-kubectl +spec: + version: "0.1.2" + workloads: + - name: podtato-head-left-arm + version: 0.2.7 + - name: podtato-head-left-leg + version: 0.2.7 + - name: podtato-head-entry + version: 0.2.7 + - name: podtato-head-right-arm + version: 0.1.0 + - name: podtato-head-left-arm + version: 0.2.7 + - name: podtato-head-hat + version: 0.1.1 \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/version-3/kustomization.yaml b/content/en/docs/getting-started/demo-application/version-3/kustomization.yaml new file mode 100644 index 0000000..f415117 --- /dev/null +++ b/content/en/docs/getting-started/demo-application/version-3/kustomization.yaml @@ -0,0 +1,10 @@ +bases: + - ../base + +resources: + - app-pre-deploy.yaml + - app-pre-deploy-eval.yaml + +patchesStrategicMerge: + - app.yaml + - manifest.yaml \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/version-3/manifest.yaml b/content/en/docs/getting-started/demo-application/version-3/manifest.yaml new file mode 100644 index 0000000..45c8c7f --- /dev/null +++ b/content/en/docs/getting-started/demo-application/version-3/manifest.yaml @@ -0,0 +1,84 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-entry + namespace: podtato-kubectl +spec: + template: + metadata: + labels: + keptn.sh/app: podtato-head + keptn.sh/workload: podtato-head-entry + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-hat + namespace: podtato-kubectl +spec: + template: + metadata: + labels: + app.kubernetes.io/version: 0.1.1 + annotations: + app.kubernetes.io/part-of: podtato-head + app.kubernetes.io/name: podtato-head-hat + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-left-leg + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + app.kubernetes.io/part-of: podtato-head + app.kubernetes.io/name: podtato-head-left-leg + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-left-arm + namespace: podtato-kubectl +spec: + template: + metadata: + labels: + app.kubernetes.io/part-of: podtato-head + annotations: + app.kubernetes.io/name: podtato-head-left-arm + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-right-leg + namespace: podtato-kubectl +spec: + template: + metadata: + labels: + component: podtato-head-right-leg + annotations: + app.kubernetes.io/part-of: podtato-head + app.kubernetes.io/name: podtato-head-right-leg + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-right-arm + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + app.kubernetes.io/part-of: podtato-head + keptn.sh/workload: podtato-head-right-arm + keptn.sh/version: 0.1.0 + keptn.sh/pre-deployment-tasks: pre-deployment-check-entry \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/with-app-awareness/app.yaml b/content/en/docs/getting-started/demo-application/with-app-awareness/app.yaml new file mode 100644 index 0000000..3fcaf3b --- /dev/null +++ b/content/en/docs/getting-started/demo-application/with-app-awareness/app.yaml @@ -0,0 +1,20 @@ +apiVersion: lifecycle.keptn.sh/v1alpha1 +kind: KeptnApp +metadata: + name: podtato-head + namespace: podtato-kubectl +spec: + version: "0.1.0" + workloads: + - name: left-arm + version: "0.1.1" + - name: left-leg + version: "0.1.1" + - name: entry + version: "0.1.1" + - name: right-arm + version: "0.1.1" + - name: left-arm + version: "0.1.1" + - name: hat + version: "0.1.1" \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/with-app-awareness/kustomization.yaml b/content/en/docs/getting-started/demo-application/with-app-awareness/kustomization.yaml new file mode 100644 index 0000000..2c02280 --- /dev/null +++ b/content/en/docs/getting-started/demo-application/with-app-awareness/kustomization.yaml @@ -0,0 +1,8 @@ +bases: + - ../base + +resources: + - app.yaml + +patchesStrategicMerge: + - manifest.yaml \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/with-app-awareness/manifest.yaml b/content/en/docs/getting-started/demo-application/with-app-awareness/manifest.yaml new file mode 100644 index 0000000..0bbcb7c --- /dev/null +++ b/content/en/docs/getting-started/demo-application/with-app-awareness/manifest.yaml @@ -0,0 +1,73 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-entry + namespace: podtato-kubectl +spec: + template: + metadata: + labels: + keptn.sh/app: podtato-head + keptn.sh/version: "0.1.1" + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-hat + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + keptn.sh/app: podtato-head + keptn.sh/version: "0.1.1" +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-left-leg + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + keptn.sh/app: podtato-head + keptn.sh/version: "0.1.1" +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-left-arm + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + keptn.sh/app: podtato-head + keptn.sh/version: "0.1.1" +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-right-leg + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + keptn.sh/app: podtato-head + keptn.sh/version: "0.1.1" +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-right-arm + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + keptn.sh/app: podtato-head + keptn.sh/version: "0.1.1" \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/app.yaml b/content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/app.yaml new file mode 100644 index 0000000..2b3e56a --- /dev/null +++ b/content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/app.yaml @@ -0,0 +1,22 @@ +apiVersion: lifecycle.keptn.sh/v1alpha1 +kind: KeptnApp +metadata: + name: podtato-head + namespace: podtato-kubectl +spec: + version: "0.1.1" + workloads: + - name: left-arm + version: "0.1.2" + - name: left-leg + version: "0.1.2" + - name: entry + version: "0.1.2" + - name: right-arm + version: "0.1.2" + - name: left-arm + version: "0.1.2" + - name: hat + version: "0.1.2" + preDeploymentTasks: + - pre-deployment-check-entry \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/kustomization.yaml b/content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/kustomization.yaml new file mode 100644 index 0000000..a32e14d --- /dev/null +++ b/content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/kustomization.yaml @@ -0,0 +1,9 @@ +bases: + - ../with-app-awareness + +resources: + - workload-pre-deploy.yaml + +patchesStrategicMerge: + - manifest.yaml + - app.yaml \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/manifest.yaml b/content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/manifest.yaml new file mode 100644 index 0000000..781456c --- /dev/null +++ b/content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/manifest.yaml @@ -0,0 +1,73 @@ +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-entry + namespace: podtato-kubectl +spec: + template: + metadata: + labels: + keptn.sh/app: podtato-head + keptn.sh/version: "0.1.2" + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-hat + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + keptn.sh/app: podtato-head + keptn.sh/version: "0.1.2" +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-left-leg + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + keptn.sh/app: podtato-head + keptn.sh/version: "0.1.2" +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-left-arm + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + keptn.sh/app: podtato-head + keptn.sh/version: "0.1.2" +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-right-leg + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + keptn.sh/app: podtato-head + keptn.sh/version: "0.1.2" +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-right-arm + namespace: podtato-kubectl +spec: + template: + metadata: + annotations: + keptn.sh/app: podtato-head + keptn.sh/version: "0.1.2" \ No newline at end of file diff --git a/content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/workload-pre-deploy.yaml b/content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/workload-pre-deploy.yaml new file mode 100644 index 0000000..6e68c2a --- /dev/null +++ b/content/en/docs/getting-started/demo-application/with-app-pre-deployment-task/workload-pre-deploy.yaml @@ -0,0 +1,12 @@ +apiVersion: lifecycle.keptn.sh/v1alpha1 +kind: KeptnTaskDefinition +metadata: + name: pre-deployment-check-entry + namespace: podtato-kubectl +spec: + function: + httpRef: + url: https://raw.githubusercontent.com/keptn-sandbox/lifecycle-controller/main/functions-runtime/samples/ts/http.ts + parameters: + map: + url: http://podtato-head-entry.podtato-kubectl.svc.cluster.local:9000 \ No newline at end of file diff --git a/content/en/docs/getting-started/deploy-kubectl/deploy-kubectl.md b/content/en/docs/getting-started/deploy-kubectl/deploy-kubectl.md new file mode 100644 index 0000000..679cc33 --- /dev/null +++ b/content/en/docs/getting-started/deploy-kubectl/deploy-kubectl.md @@ -0,0 +1,259 @@ +--- +title: Deploy the Demo Application using kubectl +description: Deploy the Demo Application using kubectl +icon: concepts +layout: quickstart +weight: 15 +hidechildren: true # this flag hides all sub-pages in the sidebar-multicard.html +--- +The Keptn Lifecycle Toolkit brings application-awareness to your Kubernetes cluster and helps you reliably delivering your application with: +## Objectives +* Install the Demo Application using Kubectl +* Watch the progress of the deployment +* Add applicaton awareness to the deployment +* Add post-deployment tasks to the deployments + +## Check out the Getting Started Repository +``` +git clone https://github.com/keptn/lifecycle-toolkit-getting-started.git +``` + +## Install Demo Application +For this demonstration, we use a slightly modified version of [the PodTatoHead](https://github.com/podtato-head/podtato-head). + +To install it, simply apply the manifest: +```shell +kubectl apply -f demo-application/base/manifest.yml +``` + +You can watch the progress of the deployment as follows: +

+Watch workload state +When the Lifecycle Toolkit detects workload labels ("app.kubernetes.io/name" and "keptn.sh/workload") on a resource, a KeptnWorkloadInstance (kwi) resource will be created. Using this resource you can watch the progress of the deployment. + +```shell +kubectl get keptnworkloadinstances -n podtato-kubectl +``` + +This will show the current status of the Workloads and in which phase they are at the moment. You can get more detailed information about the workloads by describing one of the resources: + +```shell +kubectl describe keptnworkloadinstances entry -n podtato-kubectl +``` + +Note that there are more detailed information in the event stream of the object. +
+ +
+Watch application state +Although you didn't specify an application in your manifest, the Lifecycle Toolkit assumed that this is a single-service application and created an ApplicationVersion (kav) resource for you. + +Using `kubectl get keptnappversions -n podtato-kubectl` you can see state of these resources. +
+ +
+Watch pods +Obviously, you should see that the pods are starting normally. You can watch the state of the pods using: + +```shell +kubectl get pods -n podtato-kubectl +``` +
+ +Finally, all of these pods should be running and the workload as well as the application deployment should be in a succeeded state. + +In this state the lifecycle toolkit created Kubernetes Events for your deployment process. Furthermore, it exports metrics with the deployment stats and also would export traces if an open-telemetry collector was available. To jump directly into this topic, please check out the [observability](./install-observability.md) section. + +## Add Application Awareness +In the previous step, we installed the demo application without any application awareness. This means that the Lifecycle Toolkit assumed that every workload is a single-service application at the moment and created the Application resources for you. + +To get the overall state of an application, we need a grouping of workloads, called KeptnApp in the Lifecycle Toolkit. To get this working, we need to modify our application manifest with two things: +* Add an "app.kubernetes.io/part-of" or "keptn.sh/app" label to the deployment +* Create an application resource + +### Preparing the Manifest and create an App resource + +--- +**TL;DR** + +You can also used the prepared manifest and apply it directly using: `kubectl apply -k demo-application/with-app-awareness/` and proceed [here](#watch-application-behavior). + +--- +**Otherwise** + +Create a temporary directory and copy the base manifest there: +```shell +mkdir ./my-deployment +cp demo-application/base/manifest.yml ./my-deployment +``` + +Now, open the manifest in your favorite editor and add the following label to the deployments, e.g.: +```yaml +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: podtato-head-right-leg + namespace: podtato-kubectl + labels: + app: podtato-head +spec: + selector: + matchLabels: + component: podtato-head-right-leg + template: + metadata: + labels: + component: podtato-head-right-leg + annotations: + keptn.sh/workload: "right-leg" + keptn.sh/version: "0.1.0" + keptn.sh/app: "podtato-head" + spec: + terminationGracePeriodSeconds: 5 + containers: + - name: server + image: ghcr.io/podtato-head/right-leg:0.2.7 + imagePullPolicy: Always + ports: + - containerPort: 9000 + env: + - name: PODTATO_PORT + value: "9000" +``` + +Now, update the version of the workloads in the manifest to `0.2.0`. + +Finally, create an application resource (app.yaml) and save it in the directory as well: +```yaml +apiVersion: lifecycle.keptn.sh/v1alpha1 +kind: KeptnApp +metadata: + name: podtato-head + namespace: podtato-kubectl +spec: + version: "0.1.0" + workloads: + - name: left-arm + version: "0.1.1" + - name: left-leg + version: "0.1.1" + - name: entry + version: "0.1.1" + - name: right-arm + version: "0.1.1" + - name: left-arm + version: "0.1.1" + - name: hat + version: "0.1.1" +``` + +Now, apply the manifests: +```shell +kubectl apply -f ./my-deployment/. +``` + +### Watch Application behavior +Now, your application gets deployed in an application aware way. This means that pre-deployment tasks and evaluations would be executed if you would have any. The same would happen for post-deployment tasks and evaluations after the last workload has been deployed successfully. + +
+Watch application state +Now that you defined your application, you could watch the state of the whole application using: + +```shell +kubectl get keptnappversions -n podtato-kubectl` +``` +
+ +You should see that the application is in a progressing state as long as the workloads (`kubectl get kwi`) are progressing. After the last application has been deployed, and post-deployment tasks and evaluations are finished (there are none at this point), the state should switch to completed. + +Now, we have deployed an application and are able to get the total state of the application state. Metrics and traces get exported and now we're ready to dive deeper in the world of Pre- and Post-Deployment Tasks. + +## Add Pre-Deployment Task + +--- + +**TL;DR** + +You can also used the prepared manifest and apply it directly using: `kubectl apply -k demo-application/with-pre-deployment/` and proceed [here](#watch-workload-behavior-with-pre-deployment-task). + +--- +In this step, we will use a pre-defined Keptn Function to check if a service is available before we deploy it. + +Let's assume that the other services should not start before the entry service is available. + +We could achieve this in two different ways: + +
+Use a hosted Keptn Function +In this case, published this function in our repository and you can simply reference to it in your KeptnTaskDefinition Manifest as this: + +```yaml +apiVersion: lifecycle.keptn.sh/v1alpha1 +kind: KeptnTaskDefinition +metadata: + name: pre-deployment-check-entry + namespace: podtato-kubectl +spec: + function: + httpRef: + url: https://raw.githubusercontent.com/keptn/lifecycle-toolbox/main/functions-runtime/samples/ts/http.ts + parameters: + map: + url: http://podtato-head-entry.podtato-kubectl.svc.cluster.local:9000 +``` + +Note, that we referred to the URL function in `.spec.function.httpRef.url` + +
+ +
+Create the Task Inline +Alternatively, you could also create the function directly in the KeptnTaskDefinition manifest. This would look like this: + +```yaml +apiVersion: lifecycle.keptn.sh/v1alpha1 +kind: KeptnTaskDefinition +metadata: + name: pre-deployment-check-entry + namespace: podtato-kubectl +spec: + function: + inline: + code: | + let text = Deno.env.get("DATA"); + let data; + data = JSON.parse(text); + + try { + let resp = await fetch(data.url); + } + catch (error){ + console.error("Could not fetch url"); + Deno.exit(1); + } + parameters: + map: + url: http://podtato-head-entry.podtato-kubectl.svc.cluster.local:9000 +``` + +In this case, we added the typescript code directly in the manifest. This is valuable if you want to deploy the function code nearby your application and don't need to share it or don't want to rely on an external service. +
+ +### Change manifests and apply them +Now that we specified our pre-deployment task, we can add this to our workloads. Therefore, you can add the `keptn.sh/pre-deployment-tasks: pre-deployment-check-entry` annotation to all workloads except the entry service in your manifest.yaml. + +Before we apply the new manifests, we need to drop the old entry-service to see the effect of the pre-deployment tasks by executing `kubectl delete deploy -n keptn podtato-head-entry`. + +Whatever path you have chosen before, create this manifest (`workload-pre-deploy.yaml`) nearby your application manifest, raise the version of your application in `app.yaml`, and the workload versions in the `manifest.yaml` and apply it. + +### Watch workload behavior with pre-deployment task +Now you should see that the entry service is deployed first and the other services are not deployed until the entry service is available. + +Using `kubectl get pods` you see that the pre-deployment tasks fail as long as the entry workload is not available. Once the entry workload is available, the pre-deployment tasks succeed and the other workloads will be scheduled. + +As before, you can also watch the behavior of the application using `kubectl get keptnappversions -n podtato-kubectl` and the workload state using `kubectl get kwi -n podtato-kubectl`. + +## Summary +You learned how to enable the Keptn Lifecycle Toolkit to manage your application and how to use pre-deployment tasks to ensure that your application is in a valid state before it gets scheduled. + diff --git a/content/en/docs/getting-started/observability/_index.md b/content/en/docs/getting-started/observability/_index.md new file mode 100644 index 0000000..42d10ac --- /dev/null +++ b/content/en/docs/getting-started/observability/_index.md @@ -0,0 +1,126 @@ +--- +title: Adding Observability to your deployments +description: Learn how to use the observability features of the lifecycle toolkit +icon: concepts +layout: quickstart +weight: 20 +hidechildren: true # this flag hides all sub-pages in the sidebar-multicard.html +--- +In this example, we will show you an example configuration for enabling the operator to send OpenTelemetry traces and metrics to the [OpenTelemetry Collector](https://github.com/open-telemetry/opentelemetry-collector). +The Collector will then be used to forward the gathered data to [Jaeger](https://www.jaegertracing.io) and [Prometheus](https://prometheus.io). +The application deployed uses an example of pre-Deployment Evaluation based on prometheus metrics. + +# TL;DR +* You can install the whole demo using: `make install` +* Deploy the PodTatoHead Demo Application: `make deploy-podtatohead` +* Afterward, see it in action as defined here: [OpenTelemetry in Action](#seeing-the-opentelemetry-collector-in-action) + +## Prerequisites: + +This tutorial assumes that you have both Jaeger and the Prometheus Operator installed in your Cluster. +Also, please ensure that the Prometheus Operator has the required permissions to watch resources of the `keptn-lifecycle-toolkit-system` namespace (see https://prometheus-operator.dev/docs/kube/monitoring-other-namespaces/ as a reference). +For setting up both Jaeger and Prometheus, please refer to their docs: + +- [Jaeger Setup](https://github.com/jaegertracing/jaeger-operator) +- [Prometheus Operator Setup](https://github.com/prometheus-operator/kube-prometheus/blob/main/docs/customizing.md) + +If you don't have an already existing installation of Jaeger [manifest](https://github.com/jaegertracing/jaeger-operator/releases/download/v1.38.0/jaeger-operator.yaml) or Prometheus, you can run these commands to +have a basic installation up and running. + +```shell + +# Install Jaeger into the observability namespace and the Jaeger resource into the lifecycle-toolkit namespace +kubectl create namespace observability +kubectl apply -f https://github.com/jaegertracing/jaeger-operator/releases/download/v1.38.0/jaeger-operator.yaml -n observability +kubectl apply -f config/jaeger.yaml -n keptn-lifecycle-toolkit-system + +# Install Prometheus +kubectl create namespace monitoring +kubectl apply --server-side -f config/prometheus/setup +kubectl apply -f config/prometheus/ +``` + +With these commands, the Jaeger and Prometheus Operator will be installed in the `observability` and `monitoring` namespaces, respectively. + +## Configuring the OpenTelemetry Collector and Prometheus ServiceMonitor + +Once Jaeger and Prometheus are installed, you can deploy and configure the OpenTelemetry collector using the manifests in the `config` directory: + +```sh +kubectl apply -f config/otel-collector.yaml -n keptn-lifecycle-toolkit-system +``` + +Also, please ensure that the `OTEL_COLLECTOR_URL` env vars of both the `klc-controller-manager`, +as well as the `keptn-scheduler` deployments are set appropriately. +By default, they are set to `otel-collector:4317`, which should be the correct value for this tutorial. + +Eventually, there should be a pod for the `otel-collector` deployment up and running: + +```sh +$ kubectl get pods -lapp=opentelemetry -n keptn-lifecycle-toolkit-system + +NAME READY STATUS RESTARTS AGE +otel-collector-6fc4cc84d6-7hnvp 1/1 Running 0 92m +``` + +If you want to extend the OTel Collector configuration to send your telemetry data to other Observability platform, you +can edit the Collector ConfigMap with the following command: + +```shell +kubectl edit configmap otel-collector-conf -n keptn-lifecycle-toolkit-system +``` + +When the `otel-collector` pod is up and running, restart the `keptn-scheduler` and `klc-controller-manager` so they can +pick up the new configuration. + +```shell +kubectl rollout restart deployment -n keptn-lifecycle-toolkit-system keptn-scheduler klc-controller-manager +``` + +## Seeing the OpenTelemetry Collector in action + +After everything has been set up, use the lifecycle operator to deploy a workload (e.g. using the `single-service` or `podtato-head` example in the `examples` folder). +To showcase pre-Evaluation checks we created a new version of podtato-head app in assets/podtetohead-deployment-evaluation. +You can run ``make deploy-podtatohead`` to check pre-Evaluations of prometheus metrics both at app and workload instance level. +Once an example has been deployed, you can view the generated traces in Jaeger. To do so, please create a port-forward for the `jaeger-query` service: + +```sh +kubectl port-forward -n keptn-lifecycle-toolkit-system svc/jaeger-query 16686 +``` + +Afterwards, you can view the Jaeger UI in the browser at [localhost:16686](http://localhost:16686). There you should see the traces generated by the lifecycle controller, which should look like this: + +**Traces overview** + +![](./assets/traces_overview.png) + +**Trace details** + +![](./assets/trace_detail.png) + +In Prometheus, do a port forward to the prometheus service inside your cluster (the exact name and namespace of the prometheus service will depend on your Prometheus setup - we are using the defaults that come with the example of the Prometheus Operator tutorial). + +```sh +kubectl -n monitoring port-forward svc/prometheus-k8s 9090 +``` + +Afterwards, you can view the Prometheus UI in the browser at [localhost:9090](http://localhost:9090). There, in the [Targets](http://localhost:9090/targets?search=) section, you should see an entry for the otel-collector: + +![](./assets/prometheus_targets.png) + +Also, in the [Graph](http://localhost:9090/graph?g0.expr=&g0.tab=1&g0.stacked=0&g0.show_exemplars=0&g0.range_input=1h) section, you can retrieve metrics reported by the Keptn Lifecycle Controller (all of the available metrics start with the `keptn` prefix): + +![](./assets/metrics.png) + +To view the exported metrics in Grafana, we have provided an example dashboard that you can import and view in Grafana. To do so, please first create a port-forward for the `grafana` service in the `monitoring` namespace: + +```sh +make port-forward-grafana +``` + + +*Note:* If this command does not work, or if you do not have `curl` installed, you can alternatively import the Dashboard via the Grafana UI, using the file `./assets/grafana_dashboard_import_ui.json`. + +After the dashboard has been set up, you should be able to see it in the [Grafana UI](http://localhost:3000/d/wlo2MpIVk/keptn-lifecycle-toolkit-metrics) under `Dashboards > General`. + +![](./assets/grafana_dashboard.png) \ No newline at end of file diff --git a/content/en/docs/quickstart/.gitignore b/content/en/docs/quickstart/.gitignore new file mode 100644 index 0000000..b7d5e9f --- /dev/null +++ b/content/en/docs/quickstart/.gitignore @@ -0,0 +1,6 @@ + +podtato-head/ +prom-secret +kubeconfig.yaml +remediation_trigger.json +examples/ \ No newline at end of file diff --git a/content/en/docs/quickstart/assets/docker-resources.png b/content/en/docs/quickstart/assets/docker-resources.png new file mode 100644 index 0000000..e69de29 diff --git a/content/en/docs/quickstart/assets/multi-stage-sequence.png b/content/en/docs/quickstart/assets/multi-stage-sequence.png new file mode 100644 index 0000000..e69de29 diff --git a/content/en/docs/quickstart/assets/remediation-sequence.png b/content/en/docs/quickstart/assets/remediation-sequence.png new file mode 100644 index 0000000..e69de29 diff --git a/content/en/docs/quickstart/assets/tutorials.png b/content/en/docs/quickstart/assets/tutorials.png new file mode 100644 index 0000000..e69de29 diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..f4dafca --- /dev/null +++ b/go.mod @@ -0,0 +1,9 @@ +module github.com/keptn/keptn.github.io + +go 1.12 + +require ( + github.com/FortAwesome/Font-Awesome v0.0.0-20220831210243-d3a7818c253f // indirect + github.com/google/docsy v0.5.1 // indirect + github.com/twbs/bootstrap v4.6.2+incompatible // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..796b137 --- /dev/null +++ b/go.sum @@ -0,0 +1,7 @@ +github.com/FortAwesome/Font-Awesome v0.0.0-20220831210243-d3a7818c253f h1:bvkUptSRPZBr3Kxuk+bnWCEmQ5MtEJX5fjezyV0bC3g= +github.com/FortAwesome/Font-Awesome v0.0.0-20220831210243-d3a7818c253f/go.mod h1:IUgezN/MFpCDIlFezw3L8j83oeiIuYoj28Miwr/KUYo= +github.com/google/docsy v0.5.1 h1:D/ZdFKiE29xM/gwPwQzmkyXhcbQGkReRS6aGrF7lnYk= +github.com/google/docsy v0.5.1/go.mod h1:maoUAQU5H/d+FrZIB4xg1EVWAx7RyFMGSDJyWghm31E= +github.com/google/docsy/dependencies v0.5.1/go.mod h1:EDGc2znMbGUw0RW5kWwy2oGgLt0iVXBmoq4UOqstuNE= +github.com/twbs/bootstrap v4.6.2+incompatible h1:TDa+R51BTiy1wEHSYjmqDb8LxNl/zaEjAOpRE9Hwh/o= +github.com/twbs/bootstrap v4.6.2+incompatible/go.mod h1:fZTSrkpSf0/HkL0IIJzvVspTt1r9zuf7XlZau8kpcY0= diff --git a/makefile b/makefile new file mode 100644 index 0000000..76d0829 --- /dev/null +++ b/makefile @@ -0,0 +1,17 @@ + +VOLUMES := -v $(CURDIR):/src -v $(CURDIR)/public:/target +IMAGE := klakegg/hugo:0.105.0-ext + +.PHONY: build server clean htmltest + +build: + docker run --rm -it $(VOLUMES) $(IMAGE) -D -v + +server: + docker run --rm -it $(VOLUMES) -p 1313:1313 $(IMAGE) server -D + +clean: + docker run --rm -it $(VOLUMES) $(IMAGE) --cleanDestinationDir + +htmltest: + docker run -v $(CURDIR):/test --rm wjdp/htmltest -s -c .htmltest.yml public