├── .dockerignore ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── logo_request.md ├── actions │ ├── Dockerfile │ ├── action.yml │ └── entrypoint.sh ├── release-drafter.yaml └── workflows │ ├── docker-build.yaml │ ├── pr-verify.yaml │ ├── publish-beta.yaml │ └── publish.yaml ├── .gitignore ├── CNAME ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── Jenkinsfile ├── LICENSE ├── README.md ├── build.bat ├── build.sh ├── cspell.json ├── dev ├── Dockerfile ├── build.bat ├── build.sh ├── clean.bat ├── clean.sh ├── entrypoint.sh ├── logs.bat ├── logs.sh ├── run.bat └── run.sh ├── docs ├── CNAME ├── adopting │ ├── admin │ │ ├── argo-cd-setup.md │ │ ├── artifactory-setup.md │ │ ├── cluster-config.md │ │ ├── images │ │ │ ├── 1-jfrog.png │ │ │ ├── 2-resetpassword.png │ │ │ ├── 3-baseurl-complete.png │ │ │ ├── 3-baseurl.png │ │ │ ├── 4-proxy.png │ │ │ ├── 5-createcomplete.png │ │ │ ├── 5-selectrepotype.png │ │ │ ├── argocd-repositories.png │ │ │ ├── argocd-repository-helm.png │ │ │ ├── argocd-repository-new.png │ │ │ ├── argocd-settings.png │ │ │ ├── artifact-repo-browser.png │ │ │ ├── artifactoryurlsetup.png │ │ │ ├── jfrogapikey.png │ │ │ ├── securityconfig.png │ │ │ ├── securitysettings.png │ │ │ ├── settingskeys.png │ │ │ ├── setupartifactory.png │ │ │ ├── sysdig-wizard-1.png │ │ │ ├── sysdig-wizard-2.png │ │ │ └── viewapikey.png │ │ └── sysdig-setup.md │ ├── adopting.md │ ├── best-practices │ │ ├── best-practices.md │ │ ├── devops.md │ │ ├── ibm-cloud-account │ │ │ ├── configure-account.md │ │ │ ├── ibm-cloud-setup.md │ │ │ ├── images │ │ │ │ └── assign-access-all-services.png │ │ │ ├── monitoring-logs.md │ │ │ └── plan-installation.md │ │ ├── images │ │ │ ├── CI_CD-pipelines.png │ │ │ ├── CI_CD-pipelines.xml │ │ │ ├── argocd-config.png │ │ │ ├── code.jpg │ │ │ ├── code1.jpg │ │ │ ├── code2.jpg │ │ │ ├── dc1.jpg │ │ │ ├── install.png │ │ │ ├── new-icon.png │ │ │ ├── pipeline3.jpg │ │ │ ├── sysadmins.jpg │ │ │ └── sysadmins2.jpg │ │ ├── infrastructure-as-code.md │ │ ├── registry.md │ │ └── secret-management.md │ ├── customize │ │ ├── config-dashboard │ │ │ ├── dashboard.md │ │ │ └── images │ │ │ │ ├── logdna-logging-instance.png │ │ │ │ ├── ocp-console-tools.png │ │ │ │ └── sysdig-monitoring-instance.png │ │ └── customize.md │ ├── setup │ │ ├── air-gapped-setup.md │ │ ├── configureEnvironment.md │ │ ├── ibmcloud-iz-cluster.md │ │ ├── ibmcloud-setup.md │ │ ├── ibmcloud-tile-cluster.md │ │ ├── install-crc.md │ │ ├── installing.md │ │ ├── provision-cluster.md │ │ └── toolkit-install.md │ └── use-cases │ │ ├── ace-pipeline │ │ ├── ace-pipeline.md │ │ └── images │ │ │ ├── CNTK-ACE-Pipeline.png │ │ │ ├── CNTK-ACE-Pipelines_v1.0-ACE-App.png │ │ │ ├── CNTK-ACE-Pipelines_v1.0-Inventory-App.png │ │ │ └── CNTK-Inventory-Pipeline.png │ │ ├── add-use-case.md │ │ ├── applying.md │ │ ├── gitops │ │ ├── gitops-ibm-cloud-paks.md │ │ ├── gitops-serverless-events.md │ │ └── images │ │ │ ├── argocd-ace-2-services.png │ │ │ ├── argocd-applications.png │ │ │ ├── argocd-bootstrap-app.png │ │ │ ├── argocd-cntk-3-infra.png │ │ │ ├── git-add-commit-push.png │ │ │ ├── launch-argocd.png │ │ │ ├── openshift-serverless-operator.png │ │ │ ├── set-git-source.png │ │ │ ├── slack-notifications-argocd-apps.png │ │ │ ├── slack-notifications-deployment.png │ │ │ └── slack-notifications-namespace.png │ │ ├── multiarch-build │ │ ├── images │ │ │ ├── dockerhub-images.png │ │ │ ├── hybrid-multicloud-showcase.png │ │ │ ├── igc-pipeline.png │ │ │ ├── multiarch-build-workflow.png │ │ │ ├── pipeline-execution.png │ │ │ ├── quay-images.png │ │ │ ├── remote-build-p.png │ │ │ ├── remote-build-x.png │ │ │ ├── remote-build-z.png │ │ │ └── tfvars-template-file.png │ │ └── multiarch-build.md │ │ ├── operator │ │ ├── images │ │ │ ├── AddWorkspace.png │ │ │ ├── CRW_HomePage.png │ │ │ ├── CreatingNewWorkspace.png │ │ │ ├── OpeningTerminal.png │ │ │ ├── TerminalOpened.png │ │ │ ├── crwopenapp.png │ │ │ ├── crwopenlink.png │ │ │ ├── ocp-console-application-launcher.png │ │ │ ├── ocp-console-developer-dashboard.png │ │ │ ├── ocp43Application.png │ │ │ ├── ocp43Pipeline.png │ │ │ ├── openshiftconsole.png │ │ │ ├── ospipeline.png │ │ │ ├── pipeline.png │ │ │ ├── podsiks.png │ │ │ ├── podsos.png │ │ │ ├── tektonpipeline.png │ │ │ ├── template.png │ │ │ ├── topology.png │ │ │ └── viewapp.png │ │ └── operator.md │ │ └── storefront │ │ ├── images │ │ ├── sf_pipelines.png │ │ └── storefront.png │ │ └── storefront.md ├── contribute │ ├── automation.md │ ├── contribute.md │ ├── documentation.md │ ├── governance.md │ ├── images │ │ ├── git-fork-flow-setup.png │ │ ├── git-fork-flow.drawio │ │ ├── git-fork-flow.png │ │ ├── git-remote-output.png │ │ ├── github-bug-report.png │ │ ├── github-comparing-changes.png │ │ ├── github-fork.png │ │ ├── github-issues.png │ │ ├── github-new-pull-request.png │ │ ├── github-planning-feature-request.png │ │ ├── github-planning-issues.png │ │ ├── github-pull-request-draft.png │ │ ├── github-pull-request-issue.png │ │ ├── github-pull-request-ready.png │ │ ├── github-repo-url.png │ │ ├── planning-zenhub-repos.png │ │ └── planning-zenhub.png │ └── migration.md ├── css │ ├── extra.css │ └── toolkit-code.css ├── images │ ├── catalyst-header.png │ ├── catalyst.png │ ├── cloudnativetoolkit.png │ └── poster.png ├── index.md ├── learning-journey-slides │ ├── 01-CodeAnalysis.pptx │ ├── 01-InventoryBackend.pptx │ ├── 01-What-Is-Cloud-Native.pptx │ ├── 01-code-analysis.html │ ├── 01-inventory-backend.html │ ├── 01-what-is-cloud-native.html │ ├── 02-Cloud-Native-Applications.pptx │ ├── 02-ContainerRegistry.pptx │ ├── 02-InventoryBFF.pptx │ ├── 02-cloud-native-applications.html │ ├── 02-container-registry.html │ ├── 02-inventory-bff.html │ ├── 03-ArtifactManagement.pptx │ ├── 03-Containers-Basics.pptx │ ├── 03-InventoryUI.pptx │ ├── 03-artifact-management.html │ ├── 03-containers-basics.html │ ├── 03-inventory-ui.html │ ├── 04-OpenShift-Overview.pptx │ ├── 04-openshift-overview.html │ ├── 05-CI_CD.pptx │ ├── 05-ci_cd.html │ └── index.md ├── learning │ ├── analysis.md │ ├── dev-setup.md │ ├── devops.md │ ├── fast-cd.md │ ├── fast-ci.md │ ├── fast-start.md │ ├── image-sign.md │ ├── images │ │ ├── AddWorkspace.png │ │ ├── CI_CD-pipelines.png │ │ ├── CRW_HomePage.png │ │ ├── CreatingNewWorkspace.png │ │ ├── OpeningTerminal.png │ │ ├── TerminalOpened.png │ │ ├── argocd-config.png │ │ ├── argocd-key-protect-secret.png │ │ ├── argocd-plugin.png │ │ ├── charts-in-artifactory.png │ │ ├── crwopenapp.png │ │ ├── crwopenlink.png │ │ ├── images-in-iccr.png │ │ ├── ocp-console-application-launcher.png │ │ ├── ocp-console-developer-dashboard.png │ │ ├── ocp43Application.png │ │ ├── ocp43Pipeline.png │ │ ├── openshiftconsole.png │ │ ├── ospipeline.png │ │ ├── pipeline-scopes.png │ │ ├── pipeline.png │ │ ├── podsiks.png │ │ ├── podsos.png │ │ ├── security.png │ │ ├── tektonpipeline.png │ │ ├── template.png │ │ ├── topology.png │ │ └── viewapp.png │ ├── in-depth.md │ ├── pipeline.md │ └── testing.md ├── overview │ ├── images │ │ ├── argo-cd.png │ │ ├── artifactory.png │ │ ├── catalyst-provisioned-environment.drawio-catalog-only.png │ │ ├── catalyst-provisioned-environment.drawio.xml │ │ ├── catalyst-provisioned-environment.png │ │ ├── cntk-in-the-toolkit.drawio │ │ ├── cntk-in-the-toolkit.png │ │ ├── cntk-objectives.pptx │ │ ├── code.jpg │ │ ├── jenkins.png │ │ ├── kabanero.png │ │ ├── pact.png │ │ ├── sonarqube-dark.png │ │ ├── ta.svg │ │ └── tekton.png │ ├── overview.md │ ├── prerequisites.md │ └── whats-new.md ├── reference │ ├── cli.md │ ├── dashboard.md │ ├── git.md │ ├── images │ │ ├── developer-dashboard.png │ │ └── openshift-console-tools.png │ ├── iteration-zero │ │ ├── images │ │ │ └── modules.png │ │ ├── iteration-zero.md │ │ └── terraform.md │ ├── reference.md │ ├── starter-kit │ │ ├── images │ │ │ ├── architecture.png │ │ │ ├── cloudnative.png │ │ │ └── starterkits.png │ │ ├── starter-kit.md │ │ └── starter-kits.md │ ├── tasks │ │ ├── pipelines.md │ │ └── placeholder.md │ └── tools │ │ ├── argocd.md │ │ ├── artifactory.md │ │ ├── container-image-security-enforcement.md │ │ ├── ibm-cloud-container-registry.md │ │ ├── images │ │ ├── CI_CD-pipelines.png │ │ ├── PactFramework-consumer.png │ │ ├── PactFramework-pactbroker.png │ │ ├── PactFramework-provider.png │ │ ├── argocd-config.png │ │ ├── argocd-key-protect-secret.png │ │ ├── argocd-plugin.png │ │ ├── artifact-repo-browser.png │ │ ├── console-image-details.png │ │ ├── console-image-issues-config.png │ │ ├── console-image-issues-overview.png │ │ ├── console-image-list.png │ │ ├── docker-registry.png │ │ ├── helm-chart-structure.png │ │ ├── helm-repo-index.png │ │ ├── kabanero.png │ │ ├── openshiftconsole.png │ │ ├── ospipelines.png │ │ ├── pipeline-gate-stage-failed.png │ │ ├── pipeline-os.png │ │ ├── pipeline.png │ │ ├── pipelines.png │ │ ├── registry-console.png │ │ ├── sonar-bugs-code.png │ │ ├── sonar-bugs.png │ │ ├── sonar-hotspot.png │ │ ├── sonar-project-failed.png │ │ ├── sonar-project-passed.png │ │ ├── sonar-project.png │ │ ├── steps.png │ │ ├── tasks.png │ │ └── tekton.png │ │ ├── jenkins.md │ │ ├── key-protect.md │ │ ├── pact.md │ │ ├── sonar-qube.md │ │ ├── tekton.md │ │ └── tools.md ├── resources │ ├── ibm-cloud │ │ ├── access-control.md │ │ ├── cloud-shell.md │ │ ├── crw.md │ │ ├── ibm-cloud-roles.md │ │ ├── icc.md │ │ └── images │ │ │ ├── access-example.drawio │ │ │ ├── access-example.png │ │ │ ├── cloud-accts-resources.png │ │ │ ├── cloud-groups-resources.png │ │ │ ├── cloud-resources.png │ │ │ ├── group-acct-mgr.png │ │ │ ├── group-env-admin.png │ │ │ ├── group-env-user.png │ │ │ ├── iam-acct-parts-1.png │ │ │ ├── iam-acct-parts-2.png │ │ │ ├── iam-complete.png │ │ │ ├── iam-main-all.png │ │ │ ├── iam-main-parts-1.png │ │ │ ├── iam-main-parts-2.png │ │ │ ├── iam-parts-ex-1.png │ │ │ ├── iam-parts-ex-2.png │ │ │ ├── invokecloudshell.png │ │ │ └── toolkit-access-groups.png │ ├── resources.md │ └── workshop │ │ ├── AppSrv01.zip │ │ ├── ai.md │ │ ├── appmod.md │ │ ├── cd.md │ │ ├── ci.md │ │ ├── images │ │ ├── ai-app-baby-bear.jpg │ │ ├── appmod.jpg │ │ ├── argo-app-staging.jpg │ │ ├── argo-app-staging2.jpg │ │ ├── argo-app.jpg │ │ ├── cd-argocd.jpg │ │ ├── ci-tekton.jpg │ │ ├── deploy-qa copy.jpg │ │ ├── deploy-qa.jpg │ │ ├── deploy-staging.jpg │ │ ├── deploy-staging2.jpg │ │ ├── developer-dashboard.jpg │ │ ├── gitops copy.jpg │ │ ├── gitops-pr1.jpg │ │ ├── gitops.jpg │ │ ├── inventory.jpg │ │ ├── last-run.jpg │ │ ├── login.jpg │ │ ├── open-url.jpg │ │ ├── pipeline-run.jpg │ │ ├── starter-kits-ai.jpg │ │ ├── starter-kits.jpg │ │ ├── test-task.jpg │ │ ├── webhook.jpg │ │ └── workshop.jpg │ │ ├── inventory.md │ │ ├── setup.md │ │ ├── terminal.md │ │ └── workshop.md ├── setup │ ├── fast-start.md │ ├── images │ │ ├── fast-start-install.png │ │ └── fast-start-install.pptx │ └── setup-options.md └── videos │ └── deployapp.m4v ├── linkcheckerrc ├── mkdocs.yml ├── overrides ├── assets │ ├── images │ │ ├── apply.png │ │ ├── catalyst.png │ │ ├── catalyst.svg │ │ ├── learn-min.jpg │ │ └── resources-min.jpg │ └── stylesheets │ │ ├── home.css │ │ └── images │ │ ├── catalyst.svg │ │ └── code3.png ├── home.html ├── main.html └── partials │ ├── footer.html │ └── nav.html ├── package-lock.json ├── package.json └── requirements.txt /.dockerignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | public/ 3 | .idea/ 4 | .cache/ 5 | *.iml 6 | .DS_Store 7 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/logo_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Logo request 3 | about: Request permission to use a new logo in the toolkit or in the docs 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Subject of logo** 11 | Name the tool, product, framework, etc that is the subject of the logo. Some examples: GitHub, Artifactory, Argo CD. 12 | 13 | **Purpose** 14 | How/where do you intend to use the logo 15 | 16 | **Website** 17 | Provide a link to the main website of the tool 18 | 19 | **Logo licensing and usage link** 20 | If possible, provide a link to the licensing and usage page for the logo 21 | -------------------------------------------------------------------------------- /.github/actions/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM squidfunk/mkdocs-material:7.1.8 2 | 3 | RUN apk add --no-cache --update nodejs npm 4 | 5 | COPY entrypoint.sh /entrypoint.sh 6 | RUN chmod +x /entrypoint.sh 7 | 8 | ENTRYPOINT ["/entrypoint.sh"] 9 | -------------------------------------------------------------------------------- /.github/actions/action.yml: -------------------------------------------------------------------------------- 1 | # action.yml 2 | name: 'Deploy to GitHub Pages' 3 | description: 'Publish Markdown docs as GitHub Pages static site' 4 | runs: 5 | using: 'docker' 6 | image: 'Dockerfile' 7 | -------------------------------------------------------------------------------- /.github/actions/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | cd "${GITHUB_WORKSPACE}" 4 | 5 | # Python Dependencies 6 | pip --no-cache-dir install git+https://github.com/linkchecker/linkchecker@v10.0.1#egg=linkchecker 7 | # NodeJS Dependencies 8 | npm ci 9 | 10 | npm run build 11 | -------------------------------------------------------------------------------- /.github/release-drafter.yaml: -------------------------------------------------------------------------------- 1 | name-template: '$RESOLVED_VERSION' 2 | tag-template: 'v$RESOLVED_VERSION' 3 | change-template: '- $TITLE @$AUTHOR (#$NUMBER)' 4 | categories: 5 | - title: 'Features' 6 | labels: 7 | - 'feature' 8 | - 'enhancement' 9 | - title: 'Bug Fixes' 10 | labels: 11 | - 'fix' 12 | - 'bugfix' 13 | - 'bug' 14 | - title: 'Maintenance' 15 | label: 'chore' 16 | version-resolver: 17 | major: 18 | labels: 19 | - 'major' 20 | minor: 21 | labels: 22 | - 'minor' 23 | patch: 24 | labels: 25 | - 'patch' 26 | default: patch 27 | template: | 28 | $CHANGES 29 | -------------------------------------------------------------------------------- /.github/workflows/docker-build.yaml: -------------------------------------------------------------------------------- 1 | name: Docker build 2 | 3 | on: 4 | release: 5 | types: 6 | - published 7 | push: 8 | branches: 9 | - main 10 | - beta 11 | 12 | jobs: 13 | docker: 14 | runs-on: ubuntu-latest 15 | steps: 16 | - name: Set up tags 17 | id: setup 18 | run: | 19 | TAG_BASE="quay.io/cloudnativetoolkit/dev-guide" 20 | 21 | BRANCH=${GITHUB_REF#refs/heads/} 22 | TAG="${{ github.event.release.tag_name }}" 23 | if [[ -n "${TAG}" ]]; then 24 | echo "Running against tag: ${TAG}" 25 | TAGS="${TAG_BASE}:${TAG}" 26 | else 27 | echo "Running against branch: ${BRANCH}" 28 | TAGS="${TAG_BASE}:${BRANCH}" 29 | if [[ "${BRANCH}" == "main" ]]; then 30 | TAGS="${TAGS},${TAG_BASE}:latest" 31 | fi 32 | fi 33 | 34 | echo "::set-output name=tags::${TAGS}" 35 | 36 | - name: Set up QEMU 37 | uses: docker/setup-qemu-action@v1 38 | 39 | - name: Set up Docker Buildx 40 | uses: docker/setup-buildx-action@v1 41 | 42 | - name: Login to DockerHub 43 | uses: docker/login-action@v1 44 | with: 45 | registry: docker.io 46 | username: ${{ secrets.DOCKER_USER }} 47 | password: ${{ secrets.DOCKER_TOKEN }} 48 | 49 | - name: Login to Quay 50 | uses: docker/login-action@v1 51 | with: 52 | registry: quay.io 53 | username: ${{ secrets.QUAY_USERNAME }} 54 | password: ${{ secrets.QUAY_TOKEN }} 55 | 56 | - name: Build and push 57 | id: docker_build 58 | uses: docker/build-push-action@v2 59 | with: 60 | push: true 61 | tags: ${{steps.setup.outputs.tags}} 62 | 63 | - name: Image digest 64 | run: echo ${{ steps.docker_build.outputs.digest }} 65 | -------------------------------------------------------------------------------- /.github/workflows/pr-verify.yaml: -------------------------------------------------------------------------------- 1 | name: PR-Verify 2 | 3 | on: 4 | pull_request: 5 | branches: [ main ] 6 | 7 | jobs: 8 | publish: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/checkout@v2 14 | - name: generate site 15 | uses: ./.github/actions/ 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /.github/workflows/publish-beta.yaml: -------------------------------------------------------------------------------- 1 | name: Publish Beta 2 | 3 | on: 4 | push: 5 | branches: [ beta ] 6 | 7 | jobs: 8 | publish: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | env: 13 | NODE_VERSION: 12.x 14 | TITLE: Cloud-Native Toolkit 15 | ANALYTICS_ID: "" 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | - name: generate site 20 | uses: ./.github/actions/ 21 | - name: Set CNAME 22 | run: sudo chmod 777 ./public/CNAME && echo "beta.cloudnativetoolkit.dev" > ./public/CNAME 23 | - name: Deploy 24 | uses: peaceiris/actions-gh-pages@v3 25 | with: 26 | personal_token: ${{ secrets.TOKEN }} 27 | external_repository: cloud-native-toolkit/ibm-garage-developer-guide-beta 28 | publish_branch: master 29 | publish_dir: ./public 30 | -------------------------------------------------------------------------------- /.github/workflows/publish.yaml: -------------------------------------------------------------------------------- 1 | name: Publish 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | 7 | jobs: 8 | publish: 9 | 10 | runs-on: ubuntu-latest 11 | 12 | env: 13 | NODE_VERSION: 12.x 14 | TITLE: Cloud-Native Toolkit 15 | ANALYTICS_ID: "" 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | - name: generate site 20 | uses: ./.github/actions/ 21 | - name: Set CNAME 22 | run: sudo chmod 777 ./public/CNAME && echo "develop.cloudnativetoolkit.dev" > ./public/CNAME 23 | 24 | - name: Deploy 25 | uses: peaceiris/actions-gh-pages@v3 26 | with: 27 | personal_token: ${{ secrets.TOKEN }} 28 | publish_dir: ./public 29 | 30 | release: 31 | needs: 32 | - publish 33 | runs-on: ubuntu-latest 34 | 35 | # Steps represent a sequence of tasks that will be executed as part of the job 36 | steps: 37 | - uses: actions/checkout@v2 38 | 39 | # Drafts your next Release notes as Pull Requests are merged into "main" 40 | - name: Create release 41 | id: create-release 42 | uses: release-drafter/release-drafter@v5 43 | with: 44 | # (Optional) specify config name to use, relative to .github/. Default: release-drafter.yml 45 | config-name: release-drafter.yaml 46 | publish: true 47 | prerelease: false 48 | env: 49 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 50 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | public/ 2 | .idea/ 3 | .cache/ 4 | *.iml 5 | .DS_Store 6 | node_modules/ 7 | -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | develop.cloudnativetoolkit.dev 2 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at mjperrin@us.ibm.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | 2 | [Follow this link to read Contributing Guidelines](https://cloud-native-toolkit.github.io/ibm-garage-developer-guide/contributing) 3 | 4 | For Developer Guide content, also please review the following IBM guidelines: 5 | 6 | - IBM Terminology database: http://tlwi.w3-969.ibm.com/standards/terminology/cgi-bin/lookup.pl?user_group=corporate 7 | - IBM Style Guide: https://apps.na.collabserv.com/wikis/home?lang=en-us#!/wiki/W580a84a67242_4da6_81cf_69e3db4bdbfa/page/IBM%20Style 8 | - IBM Word Usage Guide: https://apps.na.collabserv.com/wikis/home?lang=en-us#!/wiki/W580a84a67242_4da6_81cf_69e3db4bdbfa/page/Word%20usage 9 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM squidfunk/mkdocs-material:7.1.8 as builder 2 | 3 | RUN apk add --no-cache --update nodejs npm 4 | 5 | WORKDIR /site 6 | COPY ./ /site/ 7 | 8 | # Python Dependencies 9 | RUN pip --no-cache-dir install git+https://github.com/linkchecker/linkchecker@v10.0.1#egg=linkchecker 10 | # NodeJS Dependencies 11 | RUN npm ci 12 | 13 | RUN npm run build 14 | 15 | # FROM quay.io/bitnami/nginx 16 | FROM bitnami/nginx 17 | 18 | EXPOSE 8080 8443 19 | COPY --from=builder /site/public /app 20 | -------------------------------------------------------------------------------- /Jenkinsfile: -------------------------------------------------------------------------------- 1 | /* 2 | * This is a vanilla Jenkins pipeline that relies on the Jenkins kubernetes plugin to dynamically provision agents for 3 | * the build containers. 4 | * 5 | * The individual containers are defined in the `jenkins-pod-template.yaml` and the containers are referenced by name 6 | * in the `container()` blocks. The underlying pod definition expects certain kube Secrets and ConfigMap objects to 7 | * have been created in order for the Pod to run. See `jenkins-pod-template.yaml` for more information. 8 | * 9 | * The cloudName variable is set dynamically based on the existance/value of env.CLOUD_NAME which allows this pipeline 10 | * to run in both Kubernetes and OpenShift environments. 11 | */ 12 | 13 | def buildAgentName(String jobName, String buildNumber) { 14 | if (jobName.length() > 55) { 15 | jobName = jobName.substring(0, 55); 16 | } 17 | 18 | return "a.${jobName}.${buildNumber}".replace('_', '-').replace('/', '-').replace('-.', '.'); 19 | } 20 | 21 | def buildLabel = buildAgentName(env.JOB_NAME, env.BUILD_NUMBER); 22 | def namespace = env.NAMESPACE ?: "dev" 23 | def cloudName = env.CLOUD_NAME == "openshift" ? "openshift" : "kubernetes" 24 | def workingDir = env.CLOUD_NAME == "openshift" ? "/home/jenkins" : "/home/jenkins/agent" 25 | podTemplate( 26 | label: buildLabel, 27 | cloud: cloudName, 28 | yaml: """ 29 | apiVersion: v1 30 | kind: Pod 31 | spec: 32 | serviceAccountName: jenkins 33 | containers: 34 | - name: node 35 | image: node:11-stretch 36 | tty: true 37 | command: ["/bin/bash"] 38 | workingDir: ${workingDir} 39 | envFrom: 40 | - configMapRef: 41 | name: pactbroker-config 42 | optional: true 43 | - configMapRef: 44 | name: sonarqube-config 45 | optional: true 46 | - secretRef: 47 | name: sonarqube-access 48 | optional: true 49 | env: 50 | - name: HOME 51 | value: ${workingDir} 52 | """ 53 | ) { 54 | node(buildLabel) { 55 | container(name: 'node', shell: '/bin/bash') { 56 | checkout scm 57 | stage('Install') { 58 | sh '''#!/bin/bash 59 | npm install 60 | ''' 61 | } 62 | stage('Build') { 63 | sh '''#!/bin/bash 64 | npm run build 65 | ''' 66 | } 67 | stage('Git init') { 68 | sh '''#!/bin/bash 69 | git config --global user.email "jenkins@ibm.com" 70 | git config --global user.name "Jenkins Pipeline" 71 | ''' 72 | } 73 | stage('Checkout gh-pages') { 74 | sh '''#!/bin/bash 75 | git remote -v 76 | git checkout -b test-pages origin/test-pages 77 | ''' 78 | } 79 | stage('Copy files') { 80 | sh '''#!/bin/bash 81 | cp -R ./public/* . 82 | ''' 83 | } 84 | stage('Push changes') { 85 | sh '''#!/bin/bash 86 | git add . 87 | git commit -m "Pipeline updates" 88 | git push 89 | ''' 90 | } 91 | } 92 | } 93 | } 94 | 95 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Cloud Native Toolkit - Developer Guide 2 | 3 | [![Publish](https://github.com/cloud-native-toolkit/developer-guide/actions/workflows/publish.yaml/badge.svg)](https://github.com/cloud-native-toolkit/developer-guide/actions/workflows/publish.yaml) 4 | 5 | [![Publish Beta](https://github.com/cloud-native-toolkit/developer-guide/actions/workflows/publish-beta.yaml/badge.svg)](https://github.com/cloud-native-toolkit/developer-guide/actions/workflows/publish-beta.yaml) 6 | 7 | ![Release](https://img.shields.io/github/v/release/cloud-native-toolkit/developer-guide) 8 | 9 | [![Docker Repository on Quay](https://quay.io/repository/ibmgaragecloud/toolkit-guide/status "Docker Repository on Quay")](https://quay.io/repository/ibmgaragecloud/toolkit-guide) 10 | 11 | The developer guide has been written to help developers get familiar with how to use to the tools to manage the full 12 | lifecycle of cloud native development with IBM Kubernetes Service or managed Red Hat OpenShift on IBM Cloud. 13 | 14 | The rendered Developer Guide can be viewed here - [https://cloudnativetoolkit.dev](https://cloudnativetoolkit.dev) 15 | 16 | *Note*: The Beta version of the Developer Guide can be found here - [https://beta.cloudnativetoolkit.dev](https://beta.cloudnativetoolkit.dev) 17 | 18 | It is primarily used to document features that are currently in Beta prior to releasing those features (and the associated documentation). The content for the Beta version of the Developer Guide is sourced from the `beta` branch. 19 | 20 | ## Logos 21 | 22 | We have painstakingly documented all of the logos and icons used for 3rd party tools and the process for 23 | documenting their use within the Developer Guide and the broader Toolkit. The [Logo Usage page](./docs/logos) documents 24 | the approved logos and the requirements for their use. 25 | 26 | ## Contributing to Docs 27 | 28 | To update and manage the Developer Guide, follow these steps in [Updating the Developer Guide](https://cloudnativetoolkit.dev/contribute/documentation/). 29 | 30 | ### Publish Content 31 | 32 | This repository has been configured to build and publish the changes automatically via travis-ci. There are two builds currently configured: 33 | 34 | - `main` branch is automatically published to the `gh-pages` branch in this repository which is visible here - https://cloudnativetoolkit.dev 35 | 36 | **Note:** There is a time delay between when deploy process completes and when the 37 | content is available on the published site. 38 | 39 | -------------------------------------------------------------------------------- /build.bat: -------------------------------------------------------------------------------- 1 | 2 | @echo on 3 | 4 | cspell "docs/**/*.md" 5 | mkdocs build 6 | linkchecker -f linkcheckerrc public 7 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | set -e 4 | 5 | cspell "docs/**/*.md" 6 | mkdocs build 7 | linkchecker -r 3 -f linkcheckerrc public 8 | -------------------------------------------------------------------------------- /cspell.json: -------------------------------------------------------------------------------- 1 | // cSpell Settings 2 | { 3 | // Version of the setting file. Always 0.1 4 | "version": "0.1", 5 | // language - current active spelling language 6 | "language": "en_US", 7 | "languageSettings": [ 8 | { 9 | // use with Markdown files 10 | "languageId": "markdown", 11 | // Exclude code. 12 | "ignoreRegExpList": [ 13 | "/^\\s*```[\\s\\S]*?^\\s*```/gm" 14 | ] 15 | } 16 | ], 17 | // words - list of words to be always considered correct 18 | "words": [ 19 | "Kubernetes", 20 | "kubectl", 21 | "Kube", 22 | "mkdir", 23 | "sbin", 24 | "ibmcloud", 25 | "cloudnativetoolkit", 26 | "tekton", 27 | "argocd", 28 | "microservice", 29 | "gitops", 30 | "gogs", 31 | "DTECLOUD", 32 | "kubeadmin", 33 | "runtimes", 34 | "projectx", 35 | "SonarQube", 36 | "Websphere", 37 | "microservice", 38 | "microservices", 39 | "bootcamp", 40 | "codeready", 41 | "SREs", 42 | "Postgres", 43 | "Keycloak", 44 | "Trivy", 45 | "Sysdig", 46 | "SonaType", 47 | "InteliJ", 48 | "Drawio", 49 | "CLI", 50 | "CLIs", 51 | "Bitnami", 52 | "SDLC", 53 | "Knative", 54 | "Tekton", 55 | "OpenShift", 56 | "Skaffold", 57 | "servlet", 58 | "javax", 59 | "javadoc", 60 | "javadocs", 61 | "jenkinsfile", 62 | "Cloudant", 63 | "Artifactory", 64 | "Kustomize", 65 | "Dockerhub", 66 | "Dockerfiles", 67 | "prereqs", 68 | "Quarkus", 69 | "unstaged", 70 | "Buildah", 71 | "GitLab", 72 | "namespace", 73 | "LogDNA", 74 | "Hadolint", 75 | "aquasec", 76 | "datacenter", 77 | "Grafana", 78 | "userdemo", 79 | "projectdemo", 80 | "ROKS", 81 | "Portieris", 82 | "buildah", 83 | "skopeo", 84 | "toolkit's", 85 | "mynamespace", 86 | "autoplay", 87 | "allowfullscreen", 88 | "mgmt", 89 | "Repos", 90 | "kustomization", 91 | "Paks", 92 | "Weaveworks", 93 | "CNCF", 94 | "clusterroles", 95 | "clusterrolebindings", 96 | "machinesets", 97 | "CICD" 98 | ], 99 | // flagWords - list of words to be always considered incorrect 100 | // This is useful for offensive words and common spelling errors. 101 | // For example "hte" should be "the" 102 | "flagWords": [ 103 | "hte" 104 | ] 105 | } 106 | -------------------------------------------------------------------------------- /dev/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM squidfunk/mkdocs-material:7.1.8 2 | 3 | RUN apk add --no-cache --update nodejs npm dos2unix 4 | 5 | WORKDIR /site 6 | COPY ./package*.json /site/ 7 | 8 | # Python Dependencies 9 | RUN pip --no-cache-dir install git+https://github.com/linkchecker/linkchecker@v10.0.1#egg=linkchecker 10 | # NodeJS Dependencies 11 | RUN npm ci 12 | COPY dev/entrypoint.sh /entrypoint.sh 13 | RUN dos2unix /entrypoint.sh && chmod +x /entrypoint.sh 14 | 15 | ENTRYPOINT ["/entrypoint.sh"] 16 | -------------------------------------------------------------------------------- /dev/build.bat: -------------------------------------------------------------------------------- 1 | 2 | set IMAGE=%1 3 | if "%IMAGE%"=="" (set IMAGE=devguide-dev) 4 | 5 | set SCRIPT_DIR=%~dp0 6 | set ROOT_DIR="%SCRIPT_DIR%.." 7 | 8 | docker build -t %IMAGE% -f %SCRIPT_DIR%Dockerfile %ROOT_DIR% 9 | -------------------------------------------------------------------------------- /dev/build.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | set -x 4 | 5 | IMAGE=${1:-devguide-dev} 6 | 7 | SCRIPT_DIR=$(cd $(dirname $0); pwd -P) 8 | ROOT_DIR=$(cd "${SCRIPT_DIR}/.."; pwd -P) 9 | 10 | docker build -t ${IMAGE} -f ${SCRIPT_DIR}/Dockerfile ${ROOT_DIR} -------------------------------------------------------------------------------- /dev/clean.bat: -------------------------------------------------------------------------------- 1 | 2 | set NAME=%1 3 | if "%NAME%"=="" (set NAME=devguide-dev) 4 | 5 | ECHO "Cleaning up old container '%NAME%'..." 6 | docker rm "%NAME%" --force 1>NUL 2>NUL 7 | 8 | echo "Finished clean up" 9 | -------------------------------------------------------------------------------- /dev/clean.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | NAME=${1:-devguide-dev} 4 | 5 | echo "Cleaning up old container '${NAME}'..." 6 | docker rm "${NAME}" --force 1> /dev/null 2> /dev/null 7 | 8 | echo "Finished clean up" -------------------------------------------------------------------------------- /dev/entrypoint.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | 4 | PORT=${1:-8000} 5 | 6 | mkdocs serve --dirtyreload -a "0.0.0.0:${PORT}" 7 | echo "Dev environment running with live reloading enabled. Open http://localhost:${PORT} to see the site" -------------------------------------------------------------------------------- /dev/logs.bat: -------------------------------------------------------------------------------- 1 | 2 | set NAME=%1 3 | if "%NAME%"=="" (set NAME=devguide-dev) 4 | 5 | docker logs -f %NAME% 6 | -------------------------------------------------------------------------------- /dev/logs.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | set -x 4 | 5 | NAME=${1:-devguide-dev} 6 | docker logs -f ${NAME} -------------------------------------------------------------------------------- /dev/run.bat: -------------------------------------------------------------------------------- 1 | 2 | set NAME=%1 3 | if "%NAME%"=="" (set NAME=devguide-dev) 4 | 5 | set PORT=%2 6 | if "%PORT%"=="" (set PORT=8000) 7 | 8 | set IMAGE=%3 9 | if "%IMAGE%"=="" (set IMAGE=devguide-dev) 10 | 11 | docker run --name %NAME% -d -p %PORT%:%PORT% -v "%cd%:/site" %IMAGE% 12 | echo "Dev environment running with live reloading enabled. Open http://localhost:%PORT% to see the site" 13 | echo "For live logs run:" 14 | echo "docker logs -f %NAME%" 15 | -------------------------------------------------------------------------------- /dev/run.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | set -x 4 | 5 | NAME=${1:-devguide-dev} 6 | PORT=${2:-8000} 7 | IMAGE=${3:-devguide-dev} 8 | 9 | docker run --name "${NAME}" -d -p "${PORT}:${PORT}" -v "${PWD}:/site" ${IMAGE} 10 | echo "Dev environment running with live reloading enabled. Open http://localhost:${PORT} to see the site" 11 | echo "For live logs run:" 12 | echo "docker logs -f ${NAME}" 13 | -------------------------------------------------------------------------------- /docs/CNAME: -------------------------------------------------------------------------------- 1 | cloudnativetoolkit.dev -------------------------------------------------------------------------------- /docs/adopting/admin/argo-cd-setup.md: -------------------------------------------------------------------------------- 1 | # ArgoCD Setup 2 | 3 | 4 | 5 | Complete the steps for setting up the ArgoCD tool to support integration with 6 | Artifactory as a Helm repository 7 | 8 | ## Overview 9 | 10 | ArgoCD is the [environment's continuous delivery tool](../best-practices/devops.md#continuous-delivery). 11 | Before you can use it as part of the environment, it must first be configured. 12 | 13 | ## Prerequisites 14 | 15 | Before setting up ArgoCD, [set up Artifactory](artifactory-setup.md) so that ArgoCD can use it as a Helm repository. 16 | 17 | ## Configuration 18 | 19 | Configure ArgoCD to use Artifactory as a Helm repository. 20 | 21 | ### Get the Helm repository location 22 | 23 | The Helm repository is in Artifactory. ArgoCD will need the URL to that repository. 24 | 25 | 1. In the Artifactory console, select the Home page 26 | 27 | 2. In the Set Me Up section, click on the `generic-local` repository 28 | 29 | ![Set Me Up - Repositories](images/setupartifactory.png "Set Me Up: Repositories") 30 | 31 | 3. In the Set Me Up dialog for the generic-local repository, copy the Deploy URL 32 | 33 | ![Set Me Up - Generic Local Repository](images/artifactoryurlsetup.png "Set Me Up: generic-local Repository") 34 | 35 | ### Register the helm repository with ArgoCD 36 | 37 | 1. Log in to ArgoCD 38 | 39 | 2. Open the `Settings` dialog by clicking the `Manage your repositories, projects, settings` button on the left menu 40 | 41 | ![ArgoCD - Settings](images/argocd-settings.png "ArgoCD settings") 42 | 43 | 3. From the Settings page, select `Repositories` 44 | 45 | ![ArgoCD - Repositories](images/argocd-repositories.png "ArgoCD repositories") 46 | 47 | 4. Press the `Connect repo using https` button at the top of the page 48 | 49 | ![ArgoCD - New Repository](images/argocd-repository-new.png "ArgoCD new repository") 50 | 51 | 5. In the New Repository dialog, select `helm` for the repository type, provide a name to identify the repository, and enter the Artifactory deploy url for the repository url. Press `Connect` to create the repository. 52 | 53 | ![ArgoCD - New helm repository](images/argocd-repository-helm.png "ArgoCD helm repository") 54 | 55 | 6. The repository should now appear and the list and can be used for application deployments 56 | 57 | ## Conclusion 58 | 59 | ArgoCD now has the configuration in the environment that it needs to access the helm chart repository in Artifactory. 60 | -------------------------------------------------------------------------------- /docs/adopting/admin/images/1-jfrog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/1-jfrog.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/2-resetpassword.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/2-resetpassword.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/3-baseurl-complete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/3-baseurl-complete.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/3-baseurl.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/3-baseurl.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/4-proxy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/4-proxy.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/5-createcomplete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/5-createcomplete.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/5-selectrepotype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/5-selectrepotype.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/argocd-repositories.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/argocd-repositories.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/argocd-repository-helm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/argocd-repository-helm.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/argocd-repository-new.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/argocd-repository-new.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/argocd-settings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/argocd-settings.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/artifact-repo-browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/artifact-repo-browser.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/artifactoryurlsetup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/artifactoryurlsetup.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/jfrogapikey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/jfrogapikey.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/securityconfig.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/securityconfig.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/securitysettings.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/securitysettings.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/settingskeys.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/settingskeys.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/setupartifactory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/setupartifactory.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/sysdig-wizard-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/sysdig-wizard-1.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/sysdig-wizard-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/sysdig-wizard-2.png -------------------------------------------------------------------------------- /docs/adopting/admin/images/viewapikey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/admin/images/viewapikey.png -------------------------------------------------------------------------------- /docs/adopting/admin/sysdig-setup.md: -------------------------------------------------------------------------------- 1 | # Sysdig Setup 2 | 3 | 4 | 5 | Complete the steps for setting up the Sysdig tool 6 | 7 | ## Overview 8 | 9 | Sysdig is the environment's monitoring tool](./tools/sysdig). Before you can use it as part of the environment, you must finish setting up the new instance. 10 | 11 | ## Setup 12 | 13 | Finish setting up the new Sysdig instance. If this is your first time opening the Sysdig dashboard, Sysdig will open a platform dialog and an Onboarding wizard. 14 | 15 | Select the platform 16 | 17 | - On the Welcome to Sysdig Monitor panel click **Next** 18 | - Choose **Kubernetes | GKE | OpenShift** as the installation method 19 | - The agent is already installed in the cluster, so click **Go to next step!** to access the dashboard 20 | 21 | Configure the monitoring agent 22 | 23 | - The first page shows the hosts (i.e. Kubernetes nodes) and containers that Sysdig found, as well as the integrations it has selected to monitor them 24 | 25 | ![Sysdig Onboarding pt 1](images/sysdig-wizard-1.png) 26 | 27 | Notice there are different types of integrations for different types of runtimes such as Java, servers such as Tomcat, and even infrastructure integrations for monitoring the Kubernetes cluster itself and its containerd engines. 28 | 29 | - Press **Next** 30 | - The second page shows the predefined metrics, dashboards, and alerts that Sysdig will start using to monitor the apps in your cluster 31 | 32 | ![Sysdig Onboarding pt 2](images/sysdig-wizard-2.png) 33 | 34 | - Press **Complete Onboarding** 35 | 36 | ## Conclusion 37 | 38 | The environment's Sysdig instance is now setup and ready for developers to use. 39 | -------------------------------------------------------------------------------- /docs/adopting/adopting.md: -------------------------------------------------------------------------------- 1 | # Adopting the Cloud-Native Toolkit 2 | 3 | This section assumes you have completed the fast-start learning, or equivalent, and have some knowledge of the Cloud-Native Toolkit. 4 | 5 | Now you have some hands on experience of using the toolkit, you want to start using the Toolkit on your own project. To do this you need to make some decisions on how you want to integrate the Cloud-Native Toolkit into your development processes. 6 | 7 | This section provides guidance on: 8 | 9 | - how to setup the Toolkit within your development environment 10 | - how to customize the Toolkit to meet your development team needs 11 | - how to add or replace components of the Toolkit with alternate solutions, such as selecting a different container registry solution 12 | - how to use the Toolkit for the included development use cases (JavaScript, TypeScript, Spring Boot, etc...) 13 | - how to support development use cases not provided with the Toolkit 14 | - best practices for using the Toolkit within a Cloud-Native development process 15 | -------------------------------------------------------------------------------- /docs/adopting/best-practices/best-practices.md: -------------------------------------------------------------------------------- 1 | # Adopting the Cloud-Native Toolkit 2 | 3 | To get the most benefit from using the Toolkit, your development process should be based on an agile methodology designed for Cloud-Native development, which encompasses the entire software lifecycle, from initial concept, through development into production and operational running, such as the [IBM Garage Methodology](https://www.ibm.com/garage/method){: target=_blank}. 4 | 5 | The following pages show some of the practices recommended as part of a modern, cloud-native development environment: 6 | 7 | - [DevOps](devops.md){: target=_blank} - automated pipeline to build, test, integrate and deliver applications and services 8 | - [Infrastructure as Code](infrastructure-as-code.md){: target=_blank} - manage infrastructure through version controlled configuration files backed by automation technology 9 | 10 | You development tooling needs to support the development team and adopted methodology and processes. The Cloud-Native Toolkit provides a good starting point for development tooling, but there are a number of decisions to make when creating a production setup of Toolkit 11 | 12 | - [Best practices for setting up the toolkit on IBM Cloud](ibm-cloud-account/ibm-cloud-setup.md){: target=_blank} 13 | -------------------------------------------------------------------------------- /docs/adopting/best-practices/ibm-cloud-account/ibm-cloud-setup.md: -------------------------------------------------------------------------------- 1 | # Setting up an IBM Cloud Account 2 | 3 | During the fast-start learning section the environment setup was a default install. However, when setting up an environment for production use, there are a number of considerations that need to be made to create the environment that best meets the needs of your development and operations teams while providing the right level of access controls and permissions to resources within the environment. 4 | 5 | The pages linked below take you through a set of recommendations for setting up a Cloud-Native Toolkit environment on the IBM Cloud: 6 | 7 | - [Plan the installation](plan-installation.md) 8 | - [configure your cloud account and roles](configure-account.md){: target=_blank} 9 | -------------------------------------------------------------------------------- /docs/adopting/best-practices/ibm-cloud-account/images/assign-access-all-services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/best-practices/ibm-cloud-account/images/assign-access-all-services.png -------------------------------------------------------------------------------- /docs/adopting/best-practices/ibm-cloud-account/monitoring-logs.md: -------------------------------------------------------------------------------- 1 | # Monitoring and Log Management on IBM Cloud 2 | 3 | The IBM Cloud offers consolidated application monitoring and logging services. 4 | 5 | ## Monitoring 6 | 7 | In IBM Garage Method, one of the Operate practices is to [automate application monitoring](https://www.ibm.com/garage/method/practices/manage/practice_automated_monitoring/). Sysdig automates application monitoring, enabling an operator to view stats and collect metrics about a Kubernetes cluster and its deployments. The environment includes an IBM Cloud Monitoring with Sysdig service instance configured with a Sysdig agent installed in the environment's cluster. Simply by deploying your application into the environment, Sysdig monitors it, just open the Sysdig web UI from the IBM Cloud dashboard to browse your application's status. 8 | 9 | ## Log Management 10 | 11 | Imagine your application isn't working right in production even though the environment is fine. What information would you want in your logs to help you figure out what's wrong with your application? Build logging messages for that information into your application. 12 | 13 | Given that your application is logging, as are lots of other applications and services in your cloud environment, these logs need to be managed and made accessible. LogDNA adds log management capabilities to a Kubernetes cluster and its deployments. The environment includes an IBM Log Analysis with LogDNA service instance configured with a LogDNA agent installed in the environment's cluster. Simply by deploying your application into the environment, LogDNA collects the logs, just open the LogDNA web UI from the IBM Cloud dashboard to browse your application's logs. 14 | -------------------------------------------------------------------------------- /docs/adopting/best-practices/images/CI_CD-pipelines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/best-practices/images/CI_CD-pipelines.png -------------------------------------------------------------------------------- /docs/adopting/best-practices/images/argocd-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/best-practices/images/argocd-config.png -------------------------------------------------------------------------------- /docs/adopting/best-practices/images/code.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/best-practices/images/code.jpg -------------------------------------------------------------------------------- /docs/adopting/best-practices/images/code1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/best-practices/images/code1.jpg -------------------------------------------------------------------------------- /docs/adopting/best-practices/images/code2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/best-practices/images/code2.jpg -------------------------------------------------------------------------------- /docs/adopting/best-practices/images/dc1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/best-practices/images/dc1.jpg -------------------------------------------------------------------------------- /docs/adopting/best-practices/images/install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/best-practices/images/install.png -------------------------------------------------------------------------------- /docs/adopting/best-practices/images/new-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/best-practices/images/new-icon.png -------------------------------------------------------------------------------- /docs/adopting/best-practices/images/pipeline3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/best-practices/images/pipeline3.jpg -------------------------------------------------------------------------------- /docs/adopting/best-practices/images/sysadmins.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/best-practices/images/sysadmins.jpg -------------------------------------------------------------------------------- /docs/adopting/best-practices/images/sysadmins2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/best-practices/images/sysadmins2.jpg -------------------------------------------------------------------------------- /docs/adopting/best-practices/infrastructure-as-code.md: -------------------------------------------------------------------------------- 1 | # Infrastructure as Code 2 | 3 | 4 | 5 | Infrastructure as Code (IaC) uses a high-level descriptive coding language to automate the provisioning of IT infrastructure. This automation eliminates the need for developers to manually provision and manage servers, operating systems, database connections, storage, and other infrastructure elements every time they want to develop, test, or deploy a software application. 6 | 7 | In an era when it’s not uncommon for an enterprise to deploy hundreds of applications into production every day—and when infrastructure is constantly being spun up, torn down, and scaled up and down in response to developer and user demands—it’s essential for an organization to automate infrastructure in order to control costs, reduce risks, and respond with speed to new business opportunities and competitive threats. IaC makes this automation possible. 8 | 9 | IaC is also an essential DevOps practice, indispensable to a competitively paced software delivery lifecycle. It enables DevOps teams rapidly create and version infrastructure in the same way they version source code and to track these versions so as to avoid inconsistency among IT environments that can lead to serious issues during deployment. 10 | 11 | Sai Vennam takes a closer look at IaC in the following video, “What is Infrastructure as Code?”: 12 | 13 | 14 | 15 | Source: [https://www.ibm.com/cloud/learn/infrastructure-as-code](https://www.ibm.com/cloud/learn/infrastructure-as-code) 16 | -------------------------------------------------------------------------------- /docs/adopting/best-practices/registry.md: -------------------------------------------------------------------------------- 1 | # Container Registry strategy 2 | 3 | 4 | 5 | By default an OpenShift cluster will use its internal registry. This is fine when working within cluster. Some additional permissions may be needed to allow images to be accessible across projects/namespaces. 6 | 7 | An Image Registry is a repository of versioned container images. It is perhaps a subset of the larger [Artifact Management](../../reference/tools/artifactory.md) topic but has special considerations. 8 | 9 | A specific protocol has been defined around building, pushing, tagging and pulling container images to and from an Image Repository. Typically, the [continuous integration](../../learning/fast-ci.md) process is responsible for verifying and building the application source into an image and pushing it into the registry. At deployment time, the deployment descriptor (e.g. kubernetes resource definition) references the image at its location within the image registry and the container platform pulls the image and manages the running image in the cluster. Tools like `skopeo` can also be used within the process to copy images from one registry to another. 10 | 11 | There are a number of options available for the Image Registry, both running in-cluster and outside of the cluster. Red Hat OpenShift 12 | even provides an image registry as part of the platform. While an intermediate image registry might be used during the CI process, 13 | in an enterprise environment it is ideal to have a centrally managed image registry from which vulnerability scans, certifications, and backups can be performed. Some of the available options include: 14 | 15 | - [IBM Cloud Image Registry](../../reference/tools/ibm-cloud-container-registry.md) 16 | - [Artifactory](../../reference/tools/artifactory.md) 17 | - Nexus 18 | - Red Hat OpenShift image streams 19 | -------------------------------------------------------------------------------- /docs/adopting/best-practices/secret-management.md: -------------------------------------------------------------------------------- 1 | # Secret management 2 | 3 | 4 | 5 | Deploying an application into containers involves both the application logic and the associated configuration. The application logic is packaged into a container image so that it can be deployed but in order to make the container image portable across different environments, the application configuration should be managed separately and applied to the application container image at deployment time. 6 | 7 | Fortunately, container platforms like Red Hat OpenShift and Kubernetes provides a mechanism to easily provide the configuration at deployment time: ConfigMaps and Secrets. Both ConfigMaps and Secrets work in the same way to represent information in key value pairs and allow that information to be attached to a running container in a number of different ways. Unlike ConfigMaps, Secrets are intended to hold sensitive information (like passwords) and have additional access control facilities to limit who can read and use that information. 8 | 9 | With a [**GitOps**](devops.md#what-is-gitops){: target=_blank} approach to [continuous delivery](../../learning/fast-cd.md){: target=_blank}, the application container image and the associated configuration are represented in the Git repository together. When the desired state defined in Git is applied to an environment, the relevant Kubernetes resources like Deployments, ConfigMaps, and Secrets are generated from the provided Git configuration. 10 | 11 | A common issue when doing GitOps is how to handle sensitive information that should not be stored in the Git repository (e.g. passwords, keys, etc). There are two different approaches to how to handle this issue: 12 | 13 | 1. Inject the values from another source into kubernetes Secret(s) at deployment time 14 | 2. Inject the values from another source in the pod at startup time via an InitContainer 15 | 16 | The "other source" in this case would be a key management system that centralizes the storage and management of sensitive information. There are a number of key management systems available to manage the secret values: 17 | 18 | - [Key Protect](../../reference/tools/key-protect.md) 19 | - Hyper Protect 20 | - Hashicorp Vault 21 | 22 | ## Use the key management system at deployment time 23 | 24 | [CD with ArgoCD](../../reference/tools/argocd.md) covers how to use ArgoCD to do GitOps, including how to manage sensitive information in a key management system. 25 | 26 | ## Use the key management system at pod startup time 27 | 28 | !!Todo 29 | Coming soon 30 | -------------------------------------------------------------------------------- /docs/adopting/customize/config-dashboard/images/logdna-logging-instance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/customize/config-dashboard/images/logdna-logging-instance.png -------------------------------------------------------------------------------- /docs/adopting/customize/config-dashboard/images/ocp-console-tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/customize/config-dashboard/images/ocp-console-tools.png -------------------------------------------------------------------------------- /docs/adopting/customize/config-dashboard/images/sysdig-monitoring-instance.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/customize/config-dashboard/images/sysdig-monitoring-instance.png -------------------------------------------------------------------------------- /docs/adopting/customize/customize.md: -------------------------------------------------------------------------------- 1 | # Customizing the Toolkit installation 2 | 3 | One of the ways of customizing the toolkit has already been covered in the Iteration Zero script installation section. 4 | 5 | Once the toolkit has been installed you may want to further customize the toolkit. Some of the areas you may want to customize are: 6 | 7 | - add new [starter kits](../../reference/starter-kit/starter-kit.md){: target=_blank} to fit your development needs 8 | - modify or add new [pipelines and pipeline tasks](../../reference/tasks/pipelines.md){: target=_blank} 9 | - replace or add new [tools](../../reference/tools/tools.md){: target=_blank} to your development environment 10 | - [Customize the dashboard](config-dashboard/dashboard.md){: target=_blank} 11 | -------------------------------------------------------------------------------- /docs/adopting/setup/air-gapped-setup.md: -------------------------------------------------------------------------------- 1 | # Installing the toolkit in an air-gapped environment 2 | 3 | 4 | 5 | !!!Todo 6 | Create this content, possible content to include: 7 | 8 | - install assets + usage assets needed locally 9 | - local Git server (Gogs / Gitea) + migrate required repositories 10 | - local container repository + populate required images 11 | - local operator catalog + populate required entries 12 | - fix up dashboard / console links / pipeline to point to local resources 13 | - how to handle TLS certificates (corporate provided / self-signed) 14 | - local language specific resources (e.g. npm packages) 15 | -------------------------------------------------------------------------------- /docs/adopting/setup/configureEnvironment.md: -------------------------------------------------------------------------------- 1 | # Configure Environment 2 | 3 | Configure the toolkit development environment after installation 4 | 5 | ## Post installation Tools setup 6 | 7 | The following post installation setup is required. To get the developers enabled quickly, make sure you have completed at least post installation tasks. The customization is optional and down to development team needs. 8 | 9 | - Configure the RBAC rules in the development cluster. This restricts who can change the parts of the cluster where the tools are installed. Run the RBAC script `./terraform/scripts/rbac.sh {ACCESS-GROUP}`, where `{ACCESS-GROUP}` is the name of the user group (i.e. `{resource_group}-USER`). 10 | - Perform the steps in [Configure Dashboard](../customize/config-dashboard/dashboard.md) to add tiles and menu items for the tools that are external to the cluster: the Image Registry, GitHub, LogDNA, Sysdig, etc. 11 | - If running on IBM Cloud: 12 | - Check you log data if flowing into LogDNA 13 | - Complete the [setup of Sysdig](ibmcloud-setup.md) and check the monitoring data is flowing 14 | 15 | - Managing development assets is an important part of any **Software Development Life Cycle** (SDLC), The open source version of Artifactory has been installed into the cluster, This enables the full end to end process SDLC to be demonstrated. This version requires some manual configuration after its installation. These these instructions can be found here [Artifactory Setup](../admin/artifactory-setup.md) 16 | 17 | - Complete the [Argo CD Setup](../admin/argo-cd-setup.md#configuration), this configures ArgoCD to use Artifactory as a Helm Repository 18 | - Test opening the [Developer Dashboard](../../reference/dashboard.md) 19 | - Run either or all of the CLI options to load the dashboard `oc dashboard | kubectl dashboard | igc dashboard` 20 | - Test the pipeline by [deploying a first app](../../learning/fast-ci.md) 21 | - [Set up a GitOps repo](../../learning/fast-cd.md#set-up-the-gitops-repo) to validate ArgoCD setup and configuration 22 | - Generated new passwords for **SonarQube** and update the secret in the `tool` namespace 23 | - Test all the installed tools with new passwords 24 | - Test end to end flow for an application and validate the content in each tool 25 | -------------------------------------------------------------------------------- /docs/adopting/setup/installing.md: -------------------------------------------------------------------------------- 1 | # Installing the Cloud-Native Toolkit 2 | 3 | Initially the Fast-start installation method is the recommended way to install the Cloud-Native Toolkit, as this is largely an automatic install with minimal choices required that creates a default configuration suitable for learning about cloud native development. 4 | 5 | When you want to adopt cloud native development within an enterprise development team, then you may want more control over the installation and configuration of the toolkit. This section outlines more advanced options available for installing the toolkit. 6 | 7 | - [IBM Cloud Private Catalog](ibmcloud-tile-cluster.md){: target=_blank}: This provides a mechanism to easily create and delete instances of the Cloud-Native Toolkit on clusters within the IBM Cloud using the catalog, as you do with other service on the IBM Cloud. 8 | - [Iteration-Zero](ibmcloud-iz-cluster.md){: target=_blank}: This is a command line based tool that gives you full control over customizing how the toolkit is installed and what components you want deployed as part of the toolkit. Iteration-Zero is used by the other install methods, but you can also drive it directly from the command line. 9 | 10 | When you want to install your development cluster and the Cloud-Native Toolkit, there are a number of choices you need to make, including: 11 | 12 | - what kubernetes distribution do you want your development cluster to use? 13 | - how you want to apply access control to development resources? 14 | - can you use public repositories, registries and source control systems or do you need to host your own? 15 | - what monitoring and logging tools will you use? 16 | - do you want to use the default install of the toolkit or customize it to use a different tools? 17 | - where will you locate the development environment, on a public or private cloud? 18 | 19 | These topics are discussed in the [adopting best practices](../best-practices/best-practices.md){: target=_blank} section. 20 | 21 | The recommended development cluster for the Cloud-Native Toolkit is using RedHat OpenShift on IBM Cloud using the Virtual Private Cloud Infrastructure. If you will be using the IBM Cloud to host your development cluster, then proceed to the next section to [configure your IBM Cloud account](./ibmcloud-setup.md). 22 | 23 | If you plan to deploy to a different cloud infrastructure, you should proceed to the [provision a cluster](provision-cluster.md) section. 24 | -------------------------------------------------------------------------------- /docs/adopting/setup/provision-cluster.md: -------------------------------------------------------------------------------- 1 | # Provision the cluster 2 | 3 | Provides the considerations and steps to prepare an OpenShift cluster for an installation of Cloud-Native Toolkit environment. 4 | 5 | ## 1. Provision the cluster 6 | 7 | Provisioning the OpenShift cluster is the minimum requirement to prepare for the Toolkit install. The cluster could be OpenShift CRC running on a laptop, a cloud-managed OpenShift cluster on AWS or Azure, or an on-premise install of OpenShift. We'll leave the steps to provision to you since the details will vary considerably depending upon the approach. However, whichever platform you use we highly recommend utilizing or developing automation scripts to perform the provisioning, so that it can be done repeatably. 8 | 9 | Here are some resources that might help get started: 10 | 11 | - [OpenShift CRC setup](install-crc.md){: target=_blank} 12 | - [OpenShift on AWS](https://github.com/ibm-cloud-architecture/terraform-openshift4-aws){: target=_blank} 13 | - [OpenShift on GCP](https://github.com/ibm-cloud-architecture/terraform-openshift4-gcp){: target=_blank} 14 | - [OpenShift on Azure](https://github.com/ibm-cloud-architecture/terraform-openshift4-azure){: target=_blank} 15 | - [OpenShift on VMWare](https://github.com/ibm-cloud-architecture/terraform-openshift4-vmware){: target=_blank} 16 | 17 | !!!Information 18 | The Cloud-Native Toolkit is not responsible for maintaining the Terraform scripts provided in the links above and does not give any guarantee as to their current condition. If there are any issues with those scripts it would be best to pursue it with the maintainers by raising issues against the appropriate repository. 19 | 20 | ## 2. Configure access to the cluster 21 | 22 | In order to interact with the cluster, user credentials need to be established having Cluster Admin rights. The initial `kubeadmin` user (or whatever name is used after it is changed) can be used or a new user can be added for use by the provisioning scripts. 23 | 24 | ## Next steps 25 | 26 | Now that the cluster has been provisioned and the access control has been configured, you are ready to move to the next step and perform the installation with the Toolkit. Before moving on, be sure to record the following information: 27 | 28 | - OpenShift login user (user id with Cluster Admin permission) 29 | - OpenShift login password 30 | - OpenShift server url 31 | 32 | Once you have your cluster deployed you can use the fast-start install, used in the learning the toolkit section, or the Iteration Zero process. 33 | -------------------------------------------------------------------------------- /docs/adopting/use-cases/ace-pipeline/images/CNTK-ACE-Pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/ace-pipeline/images/CNTK-ACE-Pipeline.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/ace-pipeline/images/CNTK-ACE-Pipelines_v1.0-ACE-App.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/ace-pipeline/images/CNTK-ACE-Pipelines_v1.0-ACE-App.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/ace-pipeline/images/CNTK-ACE-Pipelines_v1.0-Inventory-App.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/ace-pipeline/images/CNTK-ACE-Pipelines_v1.0-Inventory-App.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/ace-pipeline/images/CNTK-Inventory-Pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/ace-pipeline/images/CNTK-Inventory-Pipeline.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/add-use-case.md: -------------------------------------------------------------------------------- 1 | # Adding a new use case 2 | 3 | You may want to extend the capabilities of the toolkit to provide additional functionality, such as adding support for a new programming language or use additional tooling. When adding a new use case there are the areas you need to consider: 4 | 5 | - create a new [starter kit](../../reference/starter-kit/starter-kit.md){: target=_blank} or update an existing one to ensure developers can efficiently use the use case? 6 | - add or amend [pipelines or pipeline tasks](../../reference/tasks/pipelines.md){: target=_blank}? 7 | - add [dashboard and console](../customize/config-dashboard/dashboard.md){: target=_blank} links (to make use case available to developers) 8 | -------------------------------------------------------------------------------- /docs/adopting/use-cases/applying.md: -------------------------------------------------------------------------------- 1 | # Applying the Cloud-Native Toolkit to developer scenarios 2 | 3 | !!!Todo 4 | Add additional use cases 5 | 6 | - [Create an operator](operator/operator.md) : Shows how the toolkit can be used to create an operator 7 | - [StoreFront - Quarkus Version](storefront/storefront.md): Exemplar application for developers to understand the cloud native toolkit and use cases on Red Hat OpenShift. 8 | - [App Connect REST API Workflow](ace-pipeline/ace-pipeline.md) 9 | 10 | If you have requirements not supported by the Toolkit you can extend the toolkit by [adding a new use case](add-use-case.md) 11 | -------------------------------------------------------------------------------- /docs/adopting/use-cases/gitops/images/argocd-ace-2-services.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/gitops/images/argocd-ace-2-services.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/gitops/images/argocd-applications.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/gitops/images/argocd-applications.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/gitops/images/argocd-bootstrap-app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/gitops/images/argocd-bootstrap-app.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/gitops/images/argocd-cntk-3-infra.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/gitops/images/argocd-cntk-3-infra.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/gitops/images/git-add-commit-push.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/gitops/images/git-add-commit-push.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/gitops/images/launch-argocd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/gitops/images/launch-argocd.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/gitops/images/openshift-serverless-operator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/gitops/images/openshift-serverless-operator.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/gitops/images/set-git-source.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/gitops/images/set-git-source.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/gitops/images/slack-notifications-argocd-apps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/gitops/images/slack-notifications-argocd-apps.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/gitops/images/slack-notifications-deployment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/gitops/images/slack-notifications-deployment.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/gitops/images/slack-notifications-namespace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/gitops/images/slack-notifications-namespace.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/multiarch-build/images/dockerhub-images.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/multiarch-build/images/dockerhub-images.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/multiarch-build/images/hybrid-multicloud-showcase.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/multiarch-build/images/hybrid-multicloud-showcase.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/multiarch-build/images/igc-pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/multiarch-build/images/igc-pipeline.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/multiarch-build/images/multiarch-build-workflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/multiarch-build/images/multiarch-build-workflow.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/multiarch-build/images/pipeline-execution.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/multiarch-build/images/pipeline-execution.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/multiarch-build/images/quay-images.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/multiarch-build/images/quay-images.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/multiarch-build/images/remote-build-p.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/multiarch-build/images/remote-build-p.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/multiarch-build/images/remote-build-x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/multiarch-build/images/remote-build-x.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/multiarch-build/images/remote-build-z.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/multiarch-build/images/remote-build-z.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/multiarch-build/images/tfvars-template-file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/multiarch-build/images/tfvars-template-file.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/AddWorkspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/AddWorkspace.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/CRW_HomePage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/CRW_HomePage.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/CreatingNewWorkspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/CreatingNewWorkspace.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/OpeningTerminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/OpeningTerminal.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/TerminalOpened.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/TerminalOpened.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/crwopenapp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/crwopenapp.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/crwopenlink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/crwopenlink.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/ocp-console-application-launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/ocp-console-application-launcher.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/ocp-console-developer-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/ocp-console-developer-dashboard.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/ocp43Application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/ocp43Application.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/ocp43Pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/ocp43Pipeline.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/openshiftconsole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/openshiftconsole.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/ospipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/ospipeline.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/pipeline.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/podsiks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/podsiks.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/podsos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/podsos.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/tektonpipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/tektonpipeline.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/template.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/topology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/topology.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/operator/images/viewapp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/operator/images/viewapp.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/storefront/images/sf_pipelines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/storefront/images/sf_pipelines.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/storefront/images/storefront.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/adopting/use-cases/storefront/images/storefront.png -------------------------------------------------------------------------------- /docs/adopting/use-cases/storefront/storefront.md: -------------------------------------------------------------------------------- 1 | # Storefront - Cloud Native Exemplar 2 | 3 | 4 | 5 | Exemplar application for developers to understand the cloud native toolkit and use cases on Red Hat OpenShift. 6 | 7 | ## Build and deploy a cloudnative reference implementation using Cloud native toolkit 8 | 9 | This provides a working example of a Tekton based CICD pipeline to build and deploy a [StoreFront](https://cloudnativereference.dev/). The Pipeline and Task resources available in [Cloud Native Toolkit](https://cloudnativetoolkit.dev/) can be used to deploy different microservices that are part of this application. 10 | 11 | ### Prerequisites 12 | 13 | | Task | Instructions | 14 | | ---------------------------------| -----------------------------------------| 15 | | Active OpenShift 4.x Cluster | | 16 | | Set up accounts and tools | [Instructions](../../../overview/prerequisites.md) | 17 | | Install the Cloud Native Toolkit | [Install the Cloud Native Toolkit](../../../setup/setup-options.md) | 18 | 19 | ### Deploy the StoreFront 20 | 21 | Get started with deploying a simple retail application, Storefront using Cloud Native Toolkit. The Storefront application implements a simple shopping application that displays a catalog of antique computing devices. People can search for and buy products from the application’s web interface. 22 | 23 | The logical architecture for this reference implementation is shown in the picture below. 24 | 25 | ![Architecture](images/storefront.png) 26 | 27 | This application has a web interface that relies on separate BFF (Backend for Frontend) services to interact with the backend data. 28 | 29 | These are several components of this architecture. 30 | 31 | - This OmniChannel application contains an [AngularJS](https://angularjs.org/) based web application. 32 | - The Web app invokes its own backend Microservice to fetch data, we call this component BFFs following the [Backend for Frontends](http://samnewman.io/patterns/architectural/bff/) pattern. The Web BFF is implemented using the Node.js Express Framework. 33 | - The BFFs invokes another layer of reusable Java Microservices. The reusable microservices are written in Java using [Quarkus](https://quarkus.io/) framework. 34 | - The Java Microservices are as follows: 35 | - The [Inventory Service](https://cloudnativereference.dev/related-repositories/inventory) uses an instance of [MySQL](https://www.mysql.com/) to store the inventory items. 36 | - The [Catalog service](https://cloudnativereference.dev/related-repositories/catalog) retrieves items from a searchable JSON data source using [ElasticSearch](https://www.elastic.co/). 37 | - [Keycloak](https://cloudnativereference.dev/related-repositories/keycloak) delegates authentication and authorization. 38 | - The [Customer service](https://cloudnativereference.dev/related-repositories/customer) stores and retrieves Customer data from a searchable JSON data source using [CouchDB](http://couchdb.apache.org/). 39 | - The [Orders Service](https://cloudnativereference.dev/related-repositories/orders) uses an instance of [MariaDB](https://mariadb.org/) to store order information. 40 | 41 | ### Deploy the Storefront using Cloud native toolkit 42 | 43 | Follow the below guide for instructions on how to deploy all the microservices of StoreFront onto Openshift using Cloud native toolkit. 44 | 45 | [Cloud native toolkit - StoreFront Quarkus version](https://cloudnativereference.dev/deployments/cntk-quarkus) 46 | 47 | To get an idea, here is a view of a completed and successful pipeline runs for all the microservices. 48 | 49 | ![Pipeline run](images/sf_pipelines.png) 50 | -------------------------------------------------------------------------------- /docs/contribute/automation.md: -------------------------------------------------------------------------------- 1 | # Automation used to deliver the Toolkit 2 | 3 | !!!Todo 4 | Complete this content from the overview session recently run - video to be posted soon 5 | -------------------------------------------------------------------------------- /docs/contribute/images/git-fork-flow-setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/git-fork-flow-setup.png -------------------------------------------------------------------------------- /docs/contribute/images/git-fork-flow.drawio: -------------------------------------------------------------------------------- 1 | 7Vpdc6s2EP01fjSDENjuo+3Et51Jp2kzncy9Lx0ZZNANRlSI2M6v78oIGyR/NbVj30zzkIhFWtA5e3ZZSAeP58svguTJrzyiacdzo2UH33U8D6FBD/4oy6qy9FxUGWLBIj1pa3hib1QbXW0tWUSL1kTJeSpZ3jaGPMtoKFs2IgRftKfNeNq+ak5iahmeQpLa1mcWyaSyDgJ3a/+Zsjipr4xcfWZO6snaUCQk4ouGCd938FhwLqvRfDmmqQKvxqVaN9lzdnNjgmbylAVv06+/JF+fv3wb8uX35Pn3l+9dt6u9vJK01BvWNytXNQJw37kahquUZREVHTxaJEzSp5yEyr4A4sGWyHkKRwiGU17CxOhhujGQ8CUWyvpbKcEL1XZ9cSokXe7dFdpgBUFG+ZxKsYIp9YIaXh1fyNfHiwZb2pQ0iap5IjpA4o3rLYYw0DD+C0j945DSLBqq2FSopqQoWNgGsFpAIys0DVTAKS9FSI8TLImIqTw0D++GuQFjsAPG2iZoSiR7bd/vLmj1FR45g51sWXTbLGLfYKfap17VDHLD0WZh7aiHHB/k2kf6t9/2W+Fi+V0Tv0Hh/bFQB2cjGCZUhokdEcD1A5lC8mwFAklZnKkoAd7XylNaYZCdhvrEnEWR8jEStGBvZLr258Jxrra03mQw6gR3h8SmU6devE1YzXDbH+l7ldl1HRcA/2/xUU/hs1lBL0JRcFtyxafqdU9a/Bi9+qZeQWbB+xQbGIqFdG26urRI7SL4WBafRKPBUY263qBFwM0rtn9csWEpXmmkCTom34gUyWbyObV8cu29ppRN/aHBO4Vs5gT0k1HD98gYuCGrxjStir03jPvGddzWcy8MKo9njTlkl4nHcr3sD/p3SQv5ObJF/2C2cB3U89vJOjhLDKK+0++3HHeR7wwMP5fLKIPjGaWmaU3pIy+YZFzRNeVS8nmbY5NSyfNdzBdS8Bc65imHo7uMq7ZoNGNpWps6Hnbd0f3EU5N1FzZfxqrRdshbKagTM5mU079CaLvrCKHi/pVWgXKuFgsHRoawW6xDCersHRb64btWK+levWtF3v8aOERYcGsawD+6BsxW3dsBaW8HpIOLQWq/uZlw8WLBCluWbdiORrE2nV78d/EkKnL048A5grpnZKHAZsDfwYB3MQZ6FgN/5gAuJfPPywIya8HVWbAbrAcO8HS8XqognwoYxWo0ThWin5YZHJgZCl+XmTrHn5L02Xz9ZeN4TT5a1VN1YrQpBI3KPFv/wJT1xYZFXn2BUfCT+mDGloqTkb6fu0RK9elmqJDwJmGUuQ6DfmW2rlBOCFf0JhGRBP4oOzSCEx7Keohc9X5iAjW/OxUkCxN4cBk4eRafhW7cohvXBaFBN/ZturF/KbrtphNZfIMflhf7NNHsPE1GzgCZZ/T88LBmQeZ9qELsCmJL5KqQYdSGDF8dMjvd49uCLDAg83Z0Sx8Lmf3CwL8tyHzzJZl3McjgcPsRu3ojs/1XAHz/Dw== -------------------------------------------------------------------------------- /docs/contribute/images/git-fork-flow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/git-fork-flow.png -------------------------------------------------------------------------------- /docs/contribute/images/git-remote-output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/git-remote-output.png -------------------------------------------------------------------------------- /docs/contribute/images/github-bug-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/github-bug-report.png -------------------------------------------------------------------------------- /docs/contribute/images/github-comparing-changes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/github-comparing-changes.png -------------------------------------------------------------------------------- /docs/contribute/images/github-fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/github-fork.png -------------------------------------------------------------------------------- /docs/contribute/images/github-issues.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/github-issues.png -------------------------------------------------------------------------------- /docs/contribute/images/github-new-pull-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/github-new-pull-request.png -------------------------------------------------------------------------------- /docs/contribute/images/github-planning-feature-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/github-planning-feature-request.png -------------------------------------------------------------------------------- /docs/contribute/images/github-planning-issues.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/github-planning-issues.png -------------------------------------------------------------------------------- /docs/contribute/images/github-pull-request-draft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/github-pull-request-draft.png -------------------------------------------------------------------------------- /docs/contribute/images/github-pull-request-issue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/github-pull-request-issue.png -------------------------------------------------------------------------------- /docs/contribute/images/github-pull-request-ready.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/github-pull-request-ready.png -------------------------------------------------------------------------------- /docs/contribute/images/github-repo-url.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/github-repo-url.png -------------------------------------------------------------------------------- /docs/contribute/images/planning-zenhub-repos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/planning-zenhub-repos.png -------------------------------------------------------------------------------- /docs/contribute/images/planning-zenhub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/contribute/images/planning-zenhub.png -------------------------------------------------------------------------------- /docs/css/extra.css: -------------------------------------------------------------------------------- 1 | 2 | :root { 3 | --md-default-bg-color: #f4f4f4; 4 | } 5 | :root > * { 6 | --md-accent-fg-color: #030303; 7 | } 8 | .md-nav { 9 | font-size: .8rem; 10 | line-height: 1.4; 11 | } 12 | .md-grid { 13 | max-width: initial; 14 | } 15 | li .md-nav__item--active { 16 | background-color: #e0e0e0; 17 | } 18 | 19 | .md-nav__item .md-nav__link--active { 20 | color: #161616; 21 | font-weight: 600; 22 | } 23 | .md-clipboard { 24 | color: #161616; 25 | } 26 | 27 | .md-tabs__link { 28 | font-size: .9rem; 29 | } 30 | 31 | 32 | div.col-md-9 h1:first-of-type { 33 | text-align: center; 34 | font-size: 60px; 35 | font-weight: 300; 36 | } 37 | 38 | div.col-md-9 h1:first-of-type .headerlink { 39 | display: none; 40 | } 41 | 42 | code.no-highlight { 43 | color: black; 44 | } 45 | 46 | 47 | /* Definition List styles */ 48 | 49 | dd { 50 | padding-left: 20px; 51 | } 52 | 53 | 54 | /* Center images*/ 55 | 56 | img.center { 57 | display: block; 58 | margin: 0 auto; 59 | } 60 | 61 | .md-content, .md-sidebar__scrollwrap { 62 | padding-bottom: 6rem; 63 | } 64 | 65 | .md-header__inner { 66 | padding: .3rem .2rem; 67 | } 68 | 69 | span.md-ellipsis { 70 | font-weight: bold; 71 | } 72 | 73 | .homepage { 74 | font-size: 1.2rem; 75 | } 76 | 77 | .md-footer-meta__inner { 78 | justify-content: space-evenly; 79 | } 80 | 81 | .md-footer-column { 82 | /* We first create a flex layout context */ 83 | display: flex; 84 | 85 | /* Then we define the flow direction 86 | and if we allow the items to wrap 87 | * Remember this is the same as: 88 | * flex-direction: row; 89 | * flex-wrap: wrap; 90 | */ 91 | flex-flow: column wrap; 92 | 93 | /* Then we define how is distributed the remaining space */ 94 | justify-content: space-around; 95 | 96 | padding: 5px 5px; 97 | } 98 | 99 | .md-footer-text { 100 | font-size: .7rem; 101 | padding: 2px 0; 102 | } 103 | 104 | /* top git source icon */ 105 | .md-header__source { 106 | width: 2rem; 107 | } 108 | 109 | /* search box */ 110 | .md-search__inner { 111 | width: 8rem; 112 | } 113 | 114 | /* center colum white */ 115 | .md-content { 116 | background-color: #fff; 117 | } 118 | 119 | /* adjust center column */ 120 | .md-main__inner { 121 | margin-top: 0px; 122 | } 123 | 124 | /* top banner home page */ 125 | [data-md-color-primary=black] .md-header { 126 | background-color: #161616; 127 | } 128 | 129 | /* tabs border */ 130 | .md-typeset .tabbed-set>label { 131 | border-bottom: .1rem solid #4051b5; 132 | } 133 | 134 | /* headings */ 135 | .md-typeset h1, .md-typeset h2 { 136 | font-weight: 500; 137 | } -------------------------------------------------------------------------------- /docs/css/toolkit-code.css: -------------------------------------------------------------------------------- 1 | .md-typeset pre>code { 2 | --md-hue: 232; 3 | --md-code-fg-color: #f5f5f5; 4 | --md-code-bg-color: #030303; 5 | 6 | 7 | } 8 | code>* { 9 | --md-default-fg-color--light: hsl(66, 41%, 69%); 10 | --md-code-hl-number-color: hsla(6, 74%, 63%, 1); 11 | --md-code-hl-special-color: hsla(340, 83%, 66%, 1); 12 | --md-code-hl-function-color: hsla(291, 57%, 65%, 1); 13 | --md-code-hl-constant-color: hsla(250, 62%, 70%, 1); 14 | --md-code-hl-keyword-color: hsla(219, 66%, 64%, 1); 15 | --md-code-hl-string-color: hsla(150, 58%, 44%, 1); 16 | --md-code-hl-name-color: var(--md-code-fg-color); 17 | --md-code-hl-operator-color: var(--md-default-fg-color--light); 18 | --md-code-hl-punctuation-color: var(--md-default-fg-color--light); 19 | --md-code-hl-comment-color: var(--md-default-fg-color--light); 20 | --md-code-hl-generic-color: var(--md-default-fg-color--light); 21 | --md-code-hl-variable-color: var(--md-default-fg-color--light); 22 | } 23 | 24 | .md-clipboard { 25 | color: white; 26 | } 27 | .md-clipboard:focus, .md-clipboard:hover { 28 | color: rgb(207, 203, 203); 29 | } 30 | :hover>.md-clipboard { 31 | color: rgb(207, 203, 203); 32 | } 33 | 34 | .highlight.no-copy .md-clipboard { 35 | display: none; 36 | } 37 | 38 | 39 | -------------------------------------------------------------------------------- /docs/images/catalyst-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/images/catalyst-header.png -------------------------------------------------------------------------------- /docs/images/catalyst.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/images/catalyst.png -------------------------------------------------------------------------------- /docs/images/cloudnativetoolkit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/images/cloudnativetoolkit.png -------------------------------------------------------------------------------- /docs/images/poster.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/images/poster.png -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | template: home.html 3 | title: Cloud Native Toolkit 4 | --- 5 | -------------------------------------------------------------------------------- /docs/learning-journey-slides/01-CodeAnalysis.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning-journey-slides/01-CodeAnalysis.pptx -------------------------------------------------------------------------------- /docs/learning-journey-slides/01-InventoryBackend.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning-journey-slides/01-InventoryBackend.pptx -------------------------------------------------------------------------------- /docs/learning-journey-slides/01-What-Is-Cloud-Native.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning-journey-slides/01-What-Is-Cloud-Native.pptx -------------------------------------------------------------------------------- /docs/learning-journey-slides/01-code-analysis.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Code Analysis 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/learning-journey-slides/01-inventory-backend.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Inventory Backend 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/learning-journey-slides/01-what-is-cloud-native.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | What is Cloud Native? 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/learning-journey-slides/02-Cloud-Native-Applications.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning-journey-slides/02-Cloud-Native-Applications.pptx -------------------------------------------------------------------------------- /docs/learning-journey-slides/02-ContainerRegistry.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning-journey-slides/02-ContainerRegistry.pptx -------------------------------------------------------------------------------- /docs/learning-journey-slides/02-InventoryBFF.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning-journey-slides/02-InventoryBFF.pptx -------------------------------------------------------------------------------- /docs/learning-journey-slides/02-cloud-native-applications.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Cloud Native Applications 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/learning-journey-slides/02-container-registry.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Container Registry 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/learning-journey-slides/02-inventory-bff.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Inventory Backend-for-Frontend 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/learning-journey-slides/03-ArtifactManagement.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning-journey-slides/03-ArtifactManagement.pptx -------------------------------------------------------------------------------- /docs/learning-journey-slides/03-Containers-Basics.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning-journey-slides/03-Containers-Basics.pptx -------------------------------------------------------------------------------- /docs/learning-journey-slides/03-InventoryUI.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning-journey-slides/03-InventoryUI.pptx -------------------------------------------------------------------------------- /docs/learning-journey-slides/03-artifact-management.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Artifact Management 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/learning-journey-slides/03-containers-basics.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Container Basics 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/learning-journey-slides/03-inventory-ui.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Inventory UI 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/learning-journey-slides/04-OpenShift-Overview.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning-journey-slides/04-OpenShift-Overview.pptx -------------------------------------------------------------------------------- /docs/learning-journey-slides/04-openshift-overview.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | OpenShift Overview 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/learning-journey-slides/05-CI_CD.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning-journey-slides/05-CI_CD.pptx -------------------------------------------------------------------------------- /docs/learning-journey-slides/05-ci_cd.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | CI/CD 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/learning-journey-slides/index.md: -------------------------------------------------------------------------------- 1 | # Learning Journey Slides 2 | 3 | ## Day 1 4 | 5 | - [What is Cloud Native?](./01-what-is-cloud-native.html) 6 | - [Cloud Native Applications](./02-cloud-native-applications.html) 7 | - [Containers](./03-containers-basics.html) 8 | - [OpenShift Overview](./04-openshift-overview.html) 9 | - [CI/CD](./05-ci_cd.html) 10 | 11 | ## Day 2 12 | 13 | - [Code Analysis](./01-code-analysis.html) 14 | - [Container Registry](./02-container-registry.html) 15 | - [Artifact Management](./03-artifact-management.html) 16 | 17 | ## Day 3 18 | 19 | - [Inventory Backend](./01-inventory-backend.html) 20 | - [Inventory Backend-for-Frontend](./02-inventory-bff.html) 21 | - [Inventory UI](./03-inventory-ui.html) 22 | -------------------------------------------------------------------------------- /docs/learning/analysis.md: -------------------------------------------------------------------------------- 1 | # Static Analysis 2 | 3 | Static analysis tools are a valuable part of a software development toolkit to identify potential issues. Static analysis is not restricted to source code. It can be applied to tooling configuration, such as a *Dockerfile* and also the the output of the build process, such as a container image. 4 | 5 | There are a number of analysis tools used in a default install of the Cloud-Native Toolkit. 6 | 7 | ## SonarQube 8 | 9 | SonarQube is a code analysis tool. It works across multiple languages and can identify a number of issues within the source code, such as: 10 | 11 | - common coding errors like forgetting the **this** keyword or using assign operator '=' instead of the equality operator '==', which create valid syntax for the language, but the incorrect functionality 12 | - security issues, such as using versions of libraries or packages that have known security issues; Using older encryption technologies for authentication where better alternatives now exist 13 | - identifying poorly written code, such as overly complex code or duplicated code 14 | 15 | SonarQube can be configured with quality gates, so poorly written or buggy code will fail analysis, but minor issues will be highlighted but still pass analysis. 16 | 17 | The standard pipelines used by the Cloud-Native Toolkit use SonarQube analysis. 18 | 19 | ## Hadolint 20 | 21 | Hadolint is a linter that checks Dockerfiles to ensure that container best practices are being used. 22 | 23 | ## Vulnerability advisor 24 | 25 | The vulnerability advisor scans container images to identify if the container contains any packages that contain known security contained in operating system packages. Some scanning applications will also check application dependencies contained in the container image. 26 | 27 | The Cloud-Native Toolkit uses 2 scanning applications: 28 | 29 | - [IBM Vulnerability Advisor](https://cloud.ibm.com/docs/va){: target=_blank} for containers stored in the IBM Container registry on the IBM Cloud 30 | - [Trivy](https://aquasecurity.github.io/trivy){: target=_blank} is an open source tool providing vulnerability scanning 31 | 32 | The pipelines installed by the Cloud-Native Toolkit include vulnerability scanning. However, the scan can be controlled by setting a variable on the pipeline to opt to skip the scan or perform the scan. 33 | -------------------------------------------------------------------------------- /docs/learning/fast-start.md: -------------------------------------------------------------------------------- 1 | # Learning to use the Cloud-Native Toolkit 2 | 3 | This section provides a fast-start learning path to using the Cloud-Native Toolkit. The content is divided into 3 sections: 4 | 5 | 1. [**Setup**](dev-setup.md) - ensure you have the required tools, accounts and environment needed to use the toolkit 6 | 2. **Continuous Integration** - Learn how to build, test and deliver your code ready for deployment 7 | 3. **Continuous Delivery** - Learn how to use gitops and automation to deploy your applications to a cloud environment 8 | -------------------------------------------------------------------------------- /docs/learning/image-sign.md: -------------------------------------------------------------------------------- 1 | # Image Signing 2 | 3 | Using signed images with Container Image Security Enforcement enables you to enforce trusted workloads within your Kubernetes deployments. In other words, you can restrict the images running within your cluster to only those that you've explicitly allowed and have been signed with valid keys that you have specified. This ensure that the container image has not changed since it left your build process, thus preventing the execution of compromised workloads. 4 | 5 | See [Container Image Security Enforcement](../reference/tools/container-image-security-enforcement.md) for additional details and a step by step guide to configure Container Image Security Enforcement on your clusters. -------------------------------------------------------------------------------- /docs/learning/images/AddWorkspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/AddWorkspace.png -------------------------------------------------------------------------------- /docs/learning/images/CI_CD-pipelines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/CI_CD-pipelines.png -------------------------------------------------------------------------------- /docs/learning/images/CRW_HomePage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/CRW_HomePage.png -------------------------------------------------------------------------------- /docs/learning/images/CreatingNewWorkspace.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/CreatingNewWorkspace.png -------------------------------------------------------------------------------- /docs/learning/images/OpeningTerminal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/OpeningTerminal.png -------------------------------------------------------------------------------- /docs/learning/images/TerminalOpened.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/TerminalOpened.png -------------------------------------------------------------------------------- /docs/learning/images/argocd-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/argocd-config.png -------------------------------------------------------------------------------- /docs/learning/images/argocd-key-protect-secret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/argocd-key-protect-secret.png -------------------------------------------------------------------------------- /docs/learning/images/argocd-plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/argocd-plugin.png -------------------------------------------------------------------------------- /docs/learning/images/charts-in-artifactory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/charts-in-artifactory.png -------------------------------------------------------------------------------- /docs/learning/images/crwopenapp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/crwopenapp.png -------------------------------------------------------------------------------- /docs/learning/images/crwopenlink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/crwopenlink.png -------------------------------------------------------------------------------- /docs/learning/images/images-in-iccr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/images-in-iccr.png -------------------------------------------------------------------------------- /docs/learning/images/ocp-console-application-launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/ocp-console-application-launcher.png -------------------------------------------------------------------------------- /docs/learning/images/ocp-console-developer-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/ocp-console-developer-dashboard.png -------------------------------------------------------------------------------- /docs/learning/images/ocp43Application.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/ocp43Application.png -------------------------------------------------------------------------------- /docs/learning/images/ocp43Pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/ocp43Pipeline.png -------------------------------------------------------------------------------- /docs/learning/images/openshiftconsole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/openshiftconsole.png -------------------------------------------------------------------------------- /docs/learning/images/ospipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/ospipeline.png -------------------------------------------------------------------------------- /docs/learning/images/pipeline-scopes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/pipeline-scopes.png -------------------------------------------------------------------------------- /docs/learning/images/pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/pipeline.png -------------------------------------------------------------------------------- /docs/learning/images/podsiks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/podsiks.png -------------------------------------------------------------------------------- /docs/learning/images/podsos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/podsos.png -------------------------------------------------------------------------------- /docs/learning/images/security.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/security.png -------------------------------------------------------------------------------- /docs/learning/images/tektonpipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/tektonpipeline.png -------------------------------------------------------------------------------- /docs/learning/images/template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/template.png -------------------------------------------------------------------------------- /docs/learning/images/topology.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/topology.png -------------------------------------------------------------------------------- /docs/learning/images/viewapp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/learning/images/viewapp.png -------------------------------------------------------------------------------- /docs/learning/in-depth.md: -------------------------------------------------------------------------------- 1 | # Cloud-Native Development with the Toolkit 2 | 3 | In the previous section you got hands on experience of using the Cloud-Native Toolkit to take a starter kit through the pipeline, to build and test it, package it and deploy it. This section will go a little deeper and explain some of the key activities being performed. 4 | 5 | The next few pages allow you to explore some of the key concepts: 6 | 7 | - [**DevOps**](devops.md) : the concepts of DevOps and GitOps are key to understanding the Cloud-Native Toolkit 8 | - [**Testing**](testing.md) : having a good test strategy to find issues as soon as possible 9 | - [**Static Analysis**](analysis.md) : using static analysis tools can also help identify vulnerabilities and bugs 10 | - [**Pipeline**](pipeline.md) : The pipeline tool is what drives the automation of building and delivering applications 11 | - [**Image Signing**](image-sign.md) : Image signing with Container Image Security Enforcement enables you to enforce trusted workloads within your Kubernetes deployments. 12 | -------------------------------------------------------------------------------- /docs/learning/pipeline.md: -------------------------------------------------------------------------------- 1 | # Continuous Integration Pipeline 2 | 3 | The pipeline technology is what ties all the different tools and activities into you CI/CD workflow. Tekton in the underlying technology in OpenShift Pipelines, which is the default pipeline technology now used by the Cloud-Native Toolkit. Jenkins support is still available, but OpenShift Pipelines is the preferred technology. 4 | 5 | There are a number of pipelines included with the Cloud-Native toolkit. The pipeline content is based on the programming language of the project. A pipeline orchestrates the activities defined by a number of tasks. There is a collection of useful tasks installed by the Cloud-Native Toolkit. The source for the pipelines and tasks installed by the Toolkit can be found [here](https://github.com/IBM/ibm-garage-tekton-tasks){: target=_blank}. 6 | 7 | As an example the Node.js pipeline performs the following tasks: 8 | 9 | - check out the latest code from git 10 | - run all the automated tests defined in the project 11 | - check the Dockerfile using hadolint 12 | - build the container 13 | - tag the container with the version number then push to the registry 14 | - create a release in the source code repository for this version of the app 15 | - scan the container image for vulnerabilities 16 | - create the helm chart, version it to match the container version and push it to the helm repository (Artifactory) 17 | - Update the gitops repository with the latest version of the app 18 | 19 | As you adopt the Cloud-Native Toolkit you may want to create your own pipelines and tasks to customize the set of activities that make up your own CI/CD process. 20 | 21 | The integration of Pipelines into OpenShift adds a set of user interface capabilities so you can explore the pipelines and tasks, create and edit them, initiate pipeline runs and explore the output logs of each of the task runs. There is also a command line tool if you prefer to use that. 22 | 23 | The Cloud-Native Toolkit extension provides an easy way to add a pipeline to a project (you completed this task in the fast-start learning). The [pipeline command](../reference/cli.md#pipeline){: target=_blank} section of the CLI reference outlines the actions performed by the CLI to enable a pipeline for a git hosted project. 24 | 25 | !!!Note 26 | Red Hat also provide a set of tasks for OpenShift Pipelines which you can incorporate into your pipelines. 27 | -------------------------------------------------------------------------------- /docs/learning/testing.md: -------------------------------------------------------------------------------- 1 | # Automated testing 2 | 3 | 4 | 5 | Automated testing is an essential part of cloud-native development. In traditional development, where a typical development cycle consists of a number of months, there is a period of time set aside at the end of the development cycle to run testing. 6 | 7 | With cloud-native development the approach to software development is very different with the adoption of continuous integration and continuous delivery. There is no longer the opportunity to run a large testing phase at the end of the delivery cycle, as each service and application can have its own development cadence, which can be between a few day to a few weeks. 8 | 9 | Cloud-native development shifts the bulk of the testing effort to as early as possible in the development cycle. Testing needs to be mostly automated to fit with the continuous integration and continuous development practices adopted. Ideally a bug should be detected as it is first checked in to the source control system. 10 | 11 | Development practices such as [test-driven development](https://www.ibm.com/garage/method/practices/code/practice_test_driven_development/){: target=_blank} use a programming technique requiring all code creation to be driven by automated tests that need to be passed - the test is always written before the code. 12 | 13 | The Cloud-Native Toolkit starter kits have testing enabled. 14 | 15 | Each programming language has a number of automated testing tools available, so for the Java starter kits you will see [JUnit](https://junit.org/){: target=_blank} is used and in the JavaScript and TypeScript based starter kits you will find [jest](https://jestjs.io){: target=_blank} is the test framework used. There are other frameworks and when adopting the Cloud-Native Toolkit you may want to create your own starter kits using your preferred testing framework 16 | 17 | ## Code coverage 18 | 19 | A good practice when running any automated testing is to check the code coverage of tests. Ideally this should be as close to 100% as possible. You may even choose to fail a build if the code coverage of automated testing falls below a given threshold, but this is not currently enabled in the starter kits. 20 | 21 | Many of the testing frameworks have code coverage built in, so they can be configured to report code coverage in addition to the results of the tests being executed. 22 | 23 | The code coverage information can be written to a file, then tools such as [SonarQube](../reference/tools/sonar-qube.md){: target=_blank} will read the coverage data and report it as part of their analysis output. The starter kits use this mechanism, so you can find the results of code coverage in the SonarQube report. If you completed the fast-start learning, you can go and look at the SonarQube report to see the code coverage results. 24 | 25 | !!!Todo 26 | Add screen capture of SonarQube report showing test coverage result 27 | 28 | ## Contract Testing 29 | 30 | When creating multiple applications and services that need to communicate with each other it is important to verify that both the client (requester) and the server (responder) both stick to the defined API for the communication. In traditional testing this would have been verified during integration and systems testing, where the end-to-end functionality of a system is tested. In Cloud-Native development [contract-driven testing](https://www.ibm.com/garage/method/practices/code/contract-driven-testing/){: target=_blank} can be used to validate that all parties are complying with service APIs. 31 | 32 | In the Cloud-Native Toolkit the [Pact](https://docs.pact.io){: target=_blank} is used. The tests need to be written by a developer and integrated into the project automated testing. 33 | 34 | You can see an example of **Pact** in use in the [inventory management svc solution](https://ibm-gsi-ecosystem.github.io/ibm-gsi-cloudnative-journey/developer-intermediate/inventory-app){: target=_blank}. The code repository can be found [here](https://github.com/ibm-gsi-ecosystem/inventory-management-svc-solution){: target=_blank}. This example is part of one of the **Learning Journey** suggested additional learning in the [resources section](../resources/resources.md) 35 | -------------------------------------------------------------------------------- /docs/overview/images/argo-cd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/overview/images/argo-cd.png -------------------------------------------------------------------------------- /docs/overview/images/artifactory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/overview/images/artifactory.png -------------------------------------------------------------------------------- /docs/overview/images/catalyst-provisioned-environment.drawio-catalog-only.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/overview/images/catalyst-provisioned-environment.drawio-catalog-only.png -------------------------------------------------------------------------------- /docs/overview/images/catalyst-provisioned-environment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/overview/images/catalyst-provisioned-environment.png -------------------------------------------------------------------------------- /docs/overview/images/cntk-in-the-toolkit.drawio: -------------------------------------------------------------------------------- 1 | zZfRbpswFIafBmm7iAR2IOxyo2nWrdMmpVJ3NzlwAGvGZsY0SZ9+h+CUUJiWbaUdkYL9H2Pw//nY4NCo2K00K/NPKgHhEDfZOfTCIcTzQoqnRtm3ysKbt0KmeWIbdcKa34MVXavWPIGq19AoJQwv+2KspITY9DSmtdr2m6VK9O9asgwGwjpmYqje8sTkx3G5bhd4DzzL7a1D3wYKdmxshSpnidqeSHTp0EgrZdpSsYtANOYdfWmvu/xF9OHBNEhz1gXLYhlUl/sZ/Wbuzc4zN+nXme3ljonaDvhKpppVRtexqTU0Llb4FyFYPL26Aa1ZqnThkAjrK24+l9VrO0CzP7qmVS0TaG7sOvTdNucG1iWLm+gW5wlquSkE1jwsMsEzieUYBwIahZQLESmh9KEzCl7iwwJ1fCr1HU4ib4IFZUFzhZLGzh0SYn3ozXGgoA3sTiTr1QpUAUbvsYmN0sBysxN3Tm19200Df2G1/HQGWI3ZmZc9dN3BwYLl8wesyICVQwJh7PB7AIIftToGZtXBmLfYgITlrgtiKWvOqzbFbF/4aG13bXBatAmDMI3H0AZxCJv0aVAS2kfpj6BcuM+Jkg5QXgPTkssM1Q+q1hL2L+78BEn1mITnvzSJ+YDE2jDdWEbcj9w0ax+TSbcCfmEGg7L6NzqNtSeWt8cZ1FK/+Y1SOxzTUFv4fWpkhJoXjlDzgqmw+ROthRdwhxtaYxgvQXD5QutiGsYQj2bnJvTnvvs0XP3gDK5jW9x0XIMBVyQCQpWHhLxgVb5RTCdP7f6jnHm8VvoQJvMxGiHZ0EPWTfDC8R9kWTigEV1fTbwv/d7rZ9iXRr33Rrwnf+E9Vru3/kPs5NuJLn8C -------------------------------------------------------------------------------- /docs/overview/images/cntk-in-the-toolkit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/overview/images/cntk-in-the-toolkit.png -------------------------------------------------------------------------------- /docs/overview/images/cntk-objectives.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/overview/images/cntk-objectives.pptx -------------------------------------------------------------------------------- /docs/overview/images/code.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/overview/images/code.jpg -------------------------------------------------------------------------------- /docs/overview/images/jenkins.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/overview/images/jenkins.png -------------------------------------------------------------------------------- /docs/overview/images/kabanero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/overview/images/kabanero.png -------------------------------------------------------------------------------- /docs/overview/images/pact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/overview/images/pact.png -------------------------------------------------------------------------------- /docs/overview/images/sonarqube-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/overview/images/sonarqube-dark.png -------------------------------------------------------------------------------- /docs/overview/images/tekton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/overview/images/tekton.png -------------------------------------------------------------------------------- /docs/overview/prerequisites.md: -------------------------------------------------------------------------------- 1 | # Assumed Knowledge 2 | 3 | The Cloud-Native Toolkit has been developed to help developers adopt best practices when developing enterprise cloud native applications and services. 4 | 5 | It aims to teach developers how to adopt Continuous Integration and Continuous Delivery best practices, but assumes a basic working knowledge of the following technologies: 6 | 7 | - [Git](https://git-scm.com) version control system 8 | - [Containers](https://opencontainers.org) as the means of delivering applications and services 9 | - [Kubernetes](https://kubernetes.io) as the container orchestration platform 10 | - [Helm](https://helm.sh) as the kubernetes package manager 11 | 12 | Links to additional learning resources can be found in the [resources section](../resources/resources.md). 13 | -------------------------------------------------------------------------------- /docs/reference/git.md: -------------------------------------------------------------------------------- 1 | # Cloud Native Toolkit Git Repositories 2 | 3 | The Cloud Native Toolkit is developed in the open, with all content being managed in github repositories. This page provides a guide to the key repositories. 4 | 5 | The primary organization is [https://github.com/cloud-native-toolkit](https://github.com/cloud-native-toolkit). The most important repositories are pinned at the top of the organization page. 6 | 7 | ## Planning 8 | 9 | Work on the Cloud-Native Toolkit is managed using [ZenHub](https://www.zenhub.com){: target=_blank}. Install the plugin into your browser then access the [planning github repository](https://github.com/cloud-native-toolkit/planning){: target=_blank} 10 | 11 | ## Installation 12 | 13 | The Toolkit can be installed using a number of different approaches, but they all end up using the [Iteration-zero](https://github.com/cloud-native-toolkit/ibm-garage-iteration-zero){: target=_blank} scripts and the [terraform modules](https://github.com/cloud-native-toolkit/garage-terraform-modules){: target=_blank} 14 | 15 | !!!Note 16 | Some terraform modules have been broken out into their own repository 17 | 18 | ## Documentation 19 | 20 | The source for this site can be found in the [developer guide repository](https://github.com/cloud-native-toolkit/ibm-garage-developer-guide){: target=_blank} 21 | 22 | ## Command Line Interface 23 | 24 | The CLI source can be found in the [cli repository](https://github.com/cloud-native-toolkit/ibm-garage-cloud-cli){: target=_blank} 25 | 26 | ## Starter Kits 27 | 28 | The Starter Kit source code is not maintained in the Cloud-Native Toolkit github organization, as they are widely used, so are located in the IBM main repository. You can find details in the [Starter Kit](starter-kit/starter-kit.md){: target=_blank} section 29 | 30 | ## Tekton Pipelines and Tasks 31 | 32 | The pipeline source code, like the Starter Kit source code, is not maintained in the Cloud-Native Toolkit github organization. You can find details in the [Pipeline](tasks/pipelines.md){: target=_blank} section 33 | -------------------------------------------------------------------------------- /docs/reference/images/developer-dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/images/developer-dashboard.png -------------------------------------------------------------------------------- /docs/reference/images/openshift-console-tools.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/images/openshift-console-tools.png -------------------------------------------------------------------------------- /docs/reference/iteration-zero/images/modules.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/iteration-zero/images/modules.png -------------------------------------------------------------------------------- /docs/reference/iteration-zero/terraform.md: -------------------------------------------------------------------------------- 1 | # Terraform Reference 2 | 3 | !!!Todo 4 | Add a summary of the terraform content here 5 | 6 | Each terraform module should have a reference page in this section. Clearly setting out what the module does, any input needed (such as secrets or config maps pre-defined by previous modules, variables used to configure the module, etc.). The reference should also detail what config/secrets/CRDs the module creates that could be used in subsequent modules 7 | -------------------------------------------------------------------------------- /docs/reference/reference.md: -------------------------------------------------------------------------------- 1 | # Toolkit Reference 2 | 3 | This section provides the technical reference for the components that make up the Cloud-Native Toolkit. 4 | 5 | 6 | | Area | Description 7 | |------|-------------- 8 | | [Command Line Tool](cli.md) | The Cloud-Native Toolkit Command Line Interface (CLI) 9 | | [Developer Dashboard](dashboard.md) | The web application deployed with the Toolkit to provide easy access to Toolkit developer resources 10 | | [Git Repositories](git.md) | The source code for the Toolkit 11 | | [Starter Kits](starter-kit/starter-kit.md) | The projects that provide a starting point for new applications and services using the Toolkit 12 | | [Toolkit Components](tools/tools.md) | The Open Source projects that form the foundation of the Toolkit 13 | | [Pipeline reference](tasks/pipelines.md) | Details of the pipelines and pipeline tasks provided by the Toolkit 14 | | [Iteration Zero](iteration-zero/iteration-zero.md) | The Toolkit installer. These assets use Terraform to install and configure the Cloud-Native Toolkit 15 | -------------------------------------------------------------------------------- /docs/reference/starter-kit/images/architecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/starter-kit/images/architecture.png -------------------------------------------------------------------------------- /docs/reference/starter-kit/images/cloudnative.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/starter-kit/images/cloudnative.png -------------------------------------------------------------------------------- /docs/reference/starter-kit/images/starterkits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/starter-kit/images/starterkits.png -------------------------------------------------------------------------------- /docs/reference/starter-kit/starter-kits.md: -------------------------------------------------------------------------------- 1 | # Starter kits 2 | 3 | ## Overview 4 | 5 | In the [Overview](./starter-kit.md){: target=_blank} section we describe why *Start Kits* provide a perfect on ramp to help projects get started. The Developer Tools project is providing a set of seed templates that can be used to get projects moving quickly and focusing on use case business logic. 6 | 7 | Read up on why you should start with a **Starter Kit** and if you have not already tried to [deploy your first app](../../learning/fast-ci.md){: target=_blank} to show you how easy it is to get started 8 | 9 | Here are links to the base set of **Starter Kits** provided for the *Cloud-Native Toolkit*. 10 | 11 | - To use the Starter Kits, click on the link and then the **Template** button to create a version in your own git organization. 12 | 13 | - Then clone it onto your local machine and then use `igc pipeline` to register it with your Jenkins server. 14 | 15 | ```shell 16 | oc login 17 | oc get pods 18 | git clone | cd 19 | oc sync --dev 20 | oc pipeline 21 | ``` 22 | 23 | - If you are bringing your own code run the `oc enable` command to add a Helm chart and make sure you code exposes a `/health` endpoint and the `values.yaml` is exposing the correct port for your application. 24 | 25 | ### Git Repo Links 26 | 27 | | Title | Subtitle | Link 28 | |-------|----------|--------- 29 | | React UI Patterns | Carbon based UI to help with common patterns using React framework | [https://github.com/IBM/template-node-react](https://github.com/IBM/template-node-react){: target=_blank} 30 | | Angular UI Patterns | Carbon based UI to help with common patterns using Angular framework | [https://github.com/IBM/template-node-angular](https://github.com/IBM/template-node-angular){: target=_blank} 31 | | Typescript Microservice | Node.js TypeScript Microservice offering OpenAPI endpoints | [https://github.com/IBM/template-node-typescript](https://github.com/IBM/template-node-typescript){: target=_blank} 32 | | Typescript GraphQL | Node.js TypeScript GraphQL Backend for Frontend| [https://github.com/IBM/template-graphql-typescript](https://github.com/IBM/template-graphql-typescript){: target=_blank} 33 | | Spring Boot Microservice | Spring Boot Java Microservice | [https://github.com/IBM/template-java-spring](https://github.com/IBM/template-java-spring){: target=_blank} 34 | | Go Gin Microservice | Go Gin Microservice/Bff/Edge | [https://github.com/IBM/template-go-gin](https://github.com/IBM/template-go-gin){: target=_blank} 35 | | Quarkus Microservice | Quarkus Java Microservice | [https://github.com/IBM/template-quarkus](https://github.com/IBM/template-quarkus){: target=_blank} 36 | | Liberty Microservice | Open Liberty Java Microservice | [https://github.com/IBM/template-liberty](https://github.com/IBM/template-liberty){: target=_blank} 37 | | Artificial Intelligence (AI) Microservice | Deep Learning Model: Locate and identify multiple objects in a single image | [https://github.com/IBM/MAX-Object-Detector](https://github.com/IBM/MAX-Object-Detector){: target=_blank} 38 | | ArgoCD GitOps | Template configuration to help to set up GitOps with ArgoCD | [https://github.com/IBM/template-argocd-gitops](https://github.com/IBM/template-argocd-gitops){: target=_blank} 39 | -------------------------------------------------------------------------------- /docs/reference/tasks/pipelines.md: -------------------------------------------------------------------------------- 1 | # Pipelines 2 | 3 | The toolkit provides a number of pipelines for a number of programming languages. Each pipeline is composed of several tasks. 4 | 5 | A set of Tekton Pipelines and Pipeline tasks are imported to your cluster when the Cloud-Native Toolkit is installed. The source for these pipelines and tasks can be found in [GitHub](https://github.com/IBM/ibm-garage-tekton-tasks){: target=_blank} 6 | 7 | !!!Todo 8 | Add a breakdown of the pipelines and tasks provided by the Toolkit. Each pipeline and task should have a separate reference page 9 | -------------------------------------------------------------------------------- /docs/reference/tasks/placeholder.md: -------------------------------------------------------------------------------- 1 | # Task Placeholder page 2 | 3 | !!!Todo 4 | Complete this content for each Pipeline and Task provided in the Toolkit 5 | 6 | ## Template content 7 | 8 | For each task the content should be: 9 | 10 | ## Description 11 | 12 | What is the purpose of the task 13 | 14 | ## Requirements 15 | 16 | For the task to complete successfully what are the assumptions, prereqs, ..... 17 | 18 | ## Source 19 | 20 | Link to [github repo source](https://github.com/IBM/ibm-garage-tekton-tasks/tree/main/tasks){: target="_blank" .external } 21 | -------------------------------------------------------------------------------- /docs/reference/tools/images/CI_CD-pipelines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/CI_CD-pipelines.png -------------------------------------------------------------------------------- /docs/reference/tools/images/PactFramework-consumer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/PactFramework-consumer.png -------------------------------------------------------------------------------- /docs/reference/tools/images/PactFramework-pactbroker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/PactFramework-pactbroker.png -------------------------------------------------------------------------------- /docs/reference/tools/images/PactFramework-provider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/PactFramework-provider.png -------------------------------------------------------------------------------- /docs/reference/tools/images/argocd-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/argocd-config.png -------------------------------------------------------------------------------- /docs/reference/tools/images/argocd-key-protect-secret.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/argocd-key-protect-secret.png -------------------------------------------------------------------------------- /docs/reference/tools/images/argocd-plugin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/argocd-plugin.png -------------------------------------------------------------------------------- /docs/reference/tools/images/artifact-repo-browser.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/artifact-repo-browser.png -------------------------------------------------------------------------------- /docs/reference/tools/images/console-image-details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/console-image-details.png -------------------------------------------------------------------------------- /docs/reference/tools/images/console-image-issues-config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/console-image-issues-config.png -------------------------------------------------------------------------------- /docs/reference/tools/images/console-image-issues-overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/console-image-issues-overview.png -------------------------------------------------------------------------------- /docs/reference/tools/images/console-image-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/console-image-list.png -------------------------------------------------------------------------------- /docs/reference/tools/images/docker-registry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/docker-registry.png -------------------------------------------------------------------------------- /docs/reference/tools/images/helm-chart-structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/helm-chart-structure.png -------------------------------------------------------------------------------- /docs/reference/tools/images/helm-repo-index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/helm-repo-index.png -------------------------------------------------------------------------------- /docs/reference/tools/images/kabanero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/kabanero.png -------------------------------------------------------------------------------- /docs/reference/tools/images/openshiftconsole.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/openshiftconsole.png -------------------------------------------------------------------------------- /docs/reference/tools/images/ospipelines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/ospipelines.png -------------------------------------------------------------------------------- /docs/reference/tools/images/pipeline-gate-stage-failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/pipeline-gate-stage-failed.png -------------------------------------------------------------------------------- /docs/reference/tools/images/pipeline-os.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/pipeline-os.png -------------------------------------------------------------------------------- /docs/reference/tools/images/pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/pipeline.png -------------------------------------------------------------------------------- /docs/reference/tools/images/pipelines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/pipelines.png -------------------------------------------------------------------------------- /docs/reference/tools/images/registry-console.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/registry-console.png -------------------------------------------------------------------------------- /docs/reference/tools/images/sonar-bugs-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/sonar-bugs-code.png -------------------------------------------------------------------------------- /docs/reference/tools/images/sonar-bugs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/sonar-bugs.png -------------------------------------------------------------------------------- /docs/reference/tools/images/sonar-hotspot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/sonar-hotspot.png -------------------------------------------------------------------------------- /docs/reference/tools/images/sonar-project-failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/sonar-project-failed.png -------------------------------------------------------------------------------- /docs/reference/tools/images/sonar-project-passed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/sonar-project-passed.png -------------------------------------------------------------------------------- /docs/reference/tools/images/sonar-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/sonar-project.png -------------------------------------------------------------------------------- /docs/reference/tools/images/steps.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/steps.png -------------------------------------------------------------------------------- /docs/reference/tools/images/tasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/tasks.png -------------------------------------------------------------------------------- /docs/reference/tools/images/tekton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/reference/tools/images/tekton.png -------------------------------------------------------------------------------- /docs/reference/tools/jenkins.md: -------------------------------------------------------------------------------- 1 | # Tekton (OpenShift pipelines) 2 | 3 | !!!Information 4 | Openshift Pipelines (Tekton) is the preferred pipeline technology used by the Toolkit. 5 | 6 | Use Jenkins to automate your continuous integration process 7 | 8 | [Jenkins](https://jenkins.io/){: target=_blank} is a self-contained, open source automation server that can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software. It is a perfect tool for helping manage continuous integration tasks for a wide range of software components. 9 | 10 | Jenkins Pipeline (or simply "Pipeline") is a suite of plugins that supports implementing and integrating continuous delivery pipelines into Jenkins. 11 | 12 | A continuous delivery pipeline is an automated expression of your process for getting software from version control right through to your users and customers. 13 | 14 | Jenkins Pipeline provides an extensible set of tools for modeling simple-to-complex delivery pipelines "as code." The definition of a Jenkins Pipeline is typically written into a text file (called a [Jenkinsfile](https://jenkins.io/doc/pipeline/tour/hello-world/)){: target=_blank}) that in turn is checked into a project’s source control repository. 15 | 16 | ## Pipelines 17 | 18 | Pipelines offer a set of stages or steps that can be chained together to allow a level of software automation. This automation can be tailored to the specific project requirements. 19 | 20 | You can read more information about Jenkins Pipelines [here](https://jenkins.io/doc/book/pipeline/)){: target=_blank} 21 | 22 | ## Stages 23 | 24 | Pipelines are defined in a `Jenkinsfile` that sits in the root of your application code. It defines a number of stages. Each of the [templates](../starter-kit/starter-kit.md)){: target=_blank} includes a `Jenkinsfile` that offers a number of stages. The stages have been configured to complete the build, test, package, and deploy of the application code. Each stage can use the defined defined `secrets` and `config maps` that were previously configured during the installation of Development cluster setup. 25 | 26 | ## Developer Tools Pipeline 27 | 28 | To enable application compatibility between Kubernetes and OpenShift, the `Jenkinsfile` is consistent between pipeline registration with 29 | both platforms. Also, the Docker images are built from [UBI images](https://www.redhat.com/en/blog/introducing-red-hat-universal-base-image)){: target=_blank} so that their containers can run on both platforms. 30 | 31 | These are the stages in the pipeline and a description of what each stage does. The **bold stage names** indicate 32 | the stages that are required; the ***italics stage names*** indicate optional stages that can be deleted or will be ignored if the tool 33 | supporting the stage is not installed. These stages represent a typical production pipeline flow for a cloud-native application. 34 | 35 | - **Setup**: Clones the code into the pipeline 36 | - **Build**: Runs the build commands for the code 37 | - **Test**: Validates the unit tests for the code 38 | - ***Publish pacts***: Publishes any pact contracts that have been defined 39 | - ***Sonar scan***: Runs a sonar code scan of the source code and publishes the results to SonarQube 40 | - **Verify environment**: Validates the OpenShift or IKS environment configuration is valid 41 | - **Build image**: Builds the code into a Docker images and stores it in the IBM Cloud Image registry 42 | - **Deploy to DEV env**: Deploys the Docker image tagged version to `dev` namespace using Helm Chart 43 | - **Health Check**: Validates the Health Endpoint of the deployed application 44 | - ***Package Helm Chart***: Stores the tagged version of the Helm chart in Artifactory 45 | - ***Trigger CD Pipeline***: This is a GitOps stage that will update the build number in designated git repo and trigger ArgoCD for deployment to **test** 46 | 47 | ## Registering Pipelines 48 | 49 | The [templates](../starter-kit/starter-kit.md)){: target=_blank} are a good place to start to see how `Jenkinsfile` and `Dockerfile` should be configured for use in a Jenkins CI pipeline. To register your git repo, use the [IGC CLI](../../reference/cli.md)){: target=_blank}. This command automates a number of manual steps you would have to do with Jenkins, including: managing secrets, webhooks, and pipeline registration in the Jenkins tools. 50 | 51 | ```shell 52 | igc pipeline 53 | ``` 54 | 55 | By default, the pipeline will register into the `dev` namespace and will copy all the `configMaps` and `secrets` from the `tools` namespace to the `dev` namespace. This means the pipeline can execute, knowing it has access to the key information that enables it to integrate with both the cloud platform and the various development tools. See [Cluster Configuration](../../adopting/admin/cluster-config.md)){: target=_blank} for more detailed information. 56 | 57 | ### Registering Pipeline in new namespace 58 | 59 | You can use any namespace you want to register a pipeline. If you add `-n` or `namespace` to your `igc pipeline` command, it will create a new namespace if it doesn't already exist. It will copy the necessary `secrets` and `configMaps` into that namespace and configure the build agents pods to run in that namespace. 60 | 61 | ```shell 62 | igc pipeline -n team-one 63 | ``` 64 | 65 | This is good if you have various squads, teams, pairs or students working in the same Development Tools environment. 66 | 67 | ## Continuous deployment 68 | 69 | In addition to continuous integration, the environment also supports continuous delivery using Artifactory and ArgoCD: 70 | 71 | - [Artifact Management with Artifactory](artifactory.md){: target=_blank} 72 | - [Continuous Delivery with ArgoCD](argocd.md){: target=_blank} 73 | -------------------------------------------------------------------------------- /docs/reference/tools/key-protect.md: -------------------------------------------------------------------------------- 1 | # Secret management with Key Protect 2 | 3 | [Key Protect](https://www.ibm.com/cloud/key-protect){: target=_blank} is a tool that provides centralized management of encryption keys and sensitive information. Key Protect manages two different types of keys: `root keys` and `standard keys`. 4 | 5 | `Root keys` are used to encrypt information in other systems, like the etcd database of the cluster, or data in Object Storage, or a MongoDB database. The details of which are the subject for a different article. 6 | 7 | `Standard keys` are used to store any kind of protected information. The Key Protect plugin reads the contents of a standard key, identified by a given key id, and stores the key value into a secret in the cluster. 8 | 9 | ## Getting the Key Protect instance id 10 | 11 | 1. Set the target resource group and region for the Key Protect instance. 12 | 13 | ```shell 14 | ibmcloud target -g {RESOURCE_GROUP} -r {REGION} 15 | ``` 16 | 17 | 2. List the available resources and find the name of the Key Protect instance. 18 | 19 | ```shell 20 | ibmcloud resource service-instances 21 | ``` 22 | 23 | 3. List the details for the Key Protect instance. The `Key Protect instance id` is listed as `GUID`. 24 | 25 | ```shell 26 | ibmcloud resource service-instance {INSTANCE_NAME} 27 | ``` 28 | 29 | ## Creating a standard key 30 | 31 | 1. Open the IBM Cloud console and navigate to the Key Protect service 32 | 33 | 2. Within Key Protect, select the **Manage Keys** tab 34 | 35 | 3. Press the `Add key` button to open the "Add a new key" dialog 36 | 37 | 4. Select the `Import your own key` radio button and `Standard key` from the drop down 38 | 39 | 5. Provide a descriptive name for the key and paste the base-64 encoded value of the key into the `Key material` field 40 | 41 | **Note:** A value can be encoded as base-64 from the terminal with the following command: 42 | 43 | ```shell 44 | echo -n "{VALUE}" | base64 45 | ``` 46 | 47 | If you need to encode a larger value, create the value in a file and encode the entire contents of the file with: 48 | 49 | ```shell 50 | cat {file} | base64 51 | ``` 52 | 53 | 6. Click **Import key** to create the key 54 | 55 | 7. Copy the value of the **ID** 56 | -------------------------------------------------------------------------------- /docs/reference/tools/tools.md: -------------------------------------------------------------------------------- 1 | # Tools used by the Toolkit 2 | 3 | 4 | 5 | This section provides details of the set of 3rd party tools used in a default install of the Toolkit. 6 | 7 | | Tool | Description 8 | |------|-------------- 9 | | [ArgoCD](argocd.md) | Continuous Deliver tool 10 | | [Artifactory](artifactory.md) | Artifact repository 11 | | [IBM Container Registry](ibm-cloud-container-registry.md) | (*IBM Cloud only*) Container registry 12 | | [IBM Key Protect](key-protect.md) | (*IBM Cloud only*) Secrets manager 13 | | [Jenkins](jenkins.md) | Pipeline tool, now replaced by Tekton as the default pipeline tool 14 | | [OpenShift Pipelines (Tekton)](tekton.md) | Cloud-Native pipeline tool 15 | | [PACT](pact.md) | Contract testing tool 16 | | [SonarQube](sonar-qube.md) | Static analysis tool covering many programming languages 17 | -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/cloud-shell.md: -------------------------------------------------------------------------------- 1 | # Introduction to IBM Cloud Shell 2 | 3 | 4 | 5 | IBM Cloud Shell is a free service that gives you complete control of your cloud resources, applications, and 6 | infrastructure, from any web browser. It's instantly accessible from your IBM Cloud account - no other installation 7 | is needed. 8 | 9 | Features of IBM Cloud Shell include: 10 | 11 | - Pre-configured environment: IBM Cloud Shell provides a curated, cloud-based workspace with dozens of preinstalled tools 12 | and programming languages. It's automatically authenticated with your IBM Cloud account so you can start to develop 13 | immediately. 14 | 15 | - File upload/download: use this feature to import files to IBM Cloud Shell or pull-down data to your local machine. 16 | 17 | - Multiple sessions: use up to five shell sessions at a time to maximize your productivity. Mirror workflows on your 18 | local machine, or view logs on one session while editing a file in another. 19 | 20 | ## Accessing the Cloud Shell 21 | 22 | - Open the IBM Cloud console (cloud.ibm.com) in your browser and log in if needed. 23 | 24 | - Invoke Cloud Shell by clicking on the button at the top, right-hand corner of the browser window. 25 | 26 | ![Invoke Cloud Shell](./images/invokecloudshell.png) 27 | 28 | ## Set up the shell environment 29 | 30 | We have provided a simplified installer that will install tools and configure the shell environment. The installer will first check if the required tool is available in the path. If not, the missing tool(s) will be installed into the `bin/` folder of the current user's home directory and the `PATH` variable will be updated in the `.bashrc` or `.zshrc` file to include that directory. 31 | 32 | The following tools are included in the shell installer: 33 | 34 | - IBM Cloud cli (ibmcloud) 35 | - ArgoCD cli (argocd) 36 | - Tekton cli (tkn) 37 | - IBM Cloud fast switching (icc) 38 | - kube-ps1 prompt 39 | - OpenShift cli (oc) 40 | - Kubernetes cli (kubectl) 41 | - JSON cli (jq) 42 | - IBM Garage Cloud CLI (igc) 43 | 44 | 1. Set up the shell environment by running: 45 | 46 | ```shell 47 | curl -sL shell.cloudnativetoolkit.dev | bash - 48 | source ~/.bashrc || source ~/.zshrc 49 | 50 | ``` 51 | 52 | 2. If successful, you should see something like the following: 53 | 54 | ```text 55 | Downloading scripts: https://github.com/cloud-native-toolkit/cloud-shell-commands/releases/download/0.3.5/assets.tar.gz 56 | ** Installing argocd cli 57 | ** Installing tkn cli 58 | ** Installing kube-ps1 59 | ** Installing icc 60 | ** Installing Cloud-Native Toolkit cli 61 | 62 | kube-ps1 has been installed to display the current Kubernetes context and namespace in the prompt. It can be turned on and off with the following commands: 63 | 64 | kubeon - turns kube-ps1 on for the current session 65 | kubeon -g - turns kube-ps1 on globally 66 | kubeoff - turns kube-ps1 off for the current session 67 | kubeoff -g - turns kube-ps1 off globally 68 | 69 | Your shell configuration has been updated. Run the following to apply the changes to the current terminal: 70 | 71 | source ~/.zshrc 72 | ``` 73 | 74 | 3. Follow the instruction given at the end of the output to enable the changes in the current terminal session. 75 | 76 | 4. You can check the shell was installed correctly by checking the `oc sync` version: 77 | 78 | ```shell 79 | oc sync --version 80 | ``` 81 | -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/crw.md: -------------------------------------------------------------------------------- 1 | # Install CodeReady Workspaces on IBM Cloud cluster 2 | 3 | Add the cloud hosted development integrated development environment, CodeReady Workspaces (CRW) to your environment 4 | 5 | ## Installing CodeReady Workspaces 6 | 7 | CodeReady Workspaces can be easily added to your development experience using the Red Hat Operator Hub. See [Chapter 3. Installing CodeReady Workspaces from Operator Hub](https://access.redhat.com/documentation/en-us/red_hat_codeready_workspaces/1.1/html/administration_guide/installing-codeready-workspaces-from-operator-hub){: target=_blank}. 8 | 9 | CodeReady Workspaces is a developer workspace server and cloud IDE. Workspaces are defined as project code files and all of their dependencies necessary to edit, build, run, and debug them. Each workspace has its own private IDE hosted within it. The IDE is accessible through a browser. The browser downloads the IDE as a single-page web application. CodeReady Workspaces will enable a 100% developer experience to be delivered from a user's browser. This is perfect for running enablement learning from constrained developer laptops, or for site reliability engineers (SREs) to make quick change to a microservice. 10 | 11 | ### CodeReady Workspaces Installation Pre-requisite 12 | 13 | Do this first: 14 | 15 | - Provision the OpenShift Cluster 16 | - Ensure the logged in user has the Administrator privileges 17 | - Ensure you have created a new Project to manage the "codeready workspace operator & cluster" 18 | 19 | Setting up the CRW Operator & Cluster: 20 | 21 | - Navigate to Operator Hub and search of the Red Hat CodeReady workspace. Click on the operator and select the appropriate workspace to install the CRW operator. 22 | - Navigate to the installed operator to view the CRW operator. 23 | - Now click the link visible as part of the operator to create/view the CheCluster part of the workspace 24 | - Create the CheCluster button, to navigate to the YAML Configuration page (displays all the parameters). 25 | - You need to change the following parameter mentioned below, As part of the storage section, please add the following parameters, depending on your cluster type: 26 | 27 | === "VPC" 28 | 29 | ```yaml 30 | postgresPVCStorageClassName: ibmc-vpc-block-10iops-tier 31 | workspacePVCStorageClassName: ibmc-vpc-block-10iops-tier 32 | ``` 33 | 34 | === "Classic" 35 | 36 | ```yaml 37 | postgresPVCStorageClassName: ibmc-block-gold 38 | workspacePVCStorageClassName: ibmc-block-gold 39 | ``` 40 | 41 | - Post definition the yaml section for storage will look as below 42 | 43 | === "VPC" 44 | 45 | ```yaml 46 | storage: 47 | postgresPVCStorageClassName: ibmc-vpc-block-10iops-tier 48 | pvcStrategy: per-workspace 49 | pvcClaimSize: 1Gi 50 | preCreateSubPaths: true 51 | workspacePVCStorageClassName: ibmc-vpc-block-10iops-tier 52 | ``` 53 | 54 | === "Classic" 55 | 56 | ```yaml 57 | storage: 58 | postgresPVCStorageClassName: ibmc-block-gold 59 | pvcStrategy: per-workspace 60 | pvcClaimSize: 1Gi 61 | preCreateSubPaths: true 62 | workspacePVCStorageClassName: ibmc-block-gold 63 | ``` 64 | 65 | - Now create, the cluster after doing the above changes. The cluster will take few minutes to get created as its resources such as Postgres DB, Keycloak Auth, CRW workspace will get created. 66 | 67 | - Once Cluster is created navigate to the overview tab of the CheCluster in the CRW operator. You will be able to see the below : 68 | - URL of the CodeReady Workspaces URL 69 | - URL of the Red Hat SSO Admin Console URL 70 | - oAuth SSO Enabled. 71 | - This should be enabled by default, if not please slide the button to enable and confirm 72 | - TLS Would be disabled. Please slide the button to enable https connectivity to the CRW workspace and confirm 73 | - You have now completed the provisioning of the Code Ready Workspaces operator into your development cluster and will enable it to be used by the developers that plan to use this development cluster 74 | -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/ibm-cloud-roles.md: -------------------------------------------------------------------------------- 1 | # IBM Cloud account management 2 | 3 | The IBM Cloud environment is provided with a number of powerful tools to manage user access and resource provisioning 4 | but little is configured for you out of the box. This guide gives an approach to managing the account in a sensible way that can easily be extended or re-configured based upon the requirements of a given situation. 5 | 6 | This approach to managing the account is organized around four key roles: 7 | 8 | - **Account owner(s)** 9 | - **Account managers** 10 | - **Environment administrators** 11 | - **Environment users** 12 | 13 | This diagram shows the relationship of these access groups to a pair of development environments: 14 | 15 | ![Access groups example](images/access-example.png){: style="width: 90%" .center} 16 | 17 | ## Account owner(s) 18 | 19 | The `account owner(s)` is the user who owns the account or users who have been granted super-user access to the account 20 | at the same level as the account owner. 21 | 22 | An account owner must create the access group for account managers. The account owner will: 23 | 24 | - Create an `ACCT-MGR-IAM-ADMIN` access group using the `acp-mgr` script 25 | - Add a functional ID, configured using the `acp-iaas` script, with API keys for the account managers 26 | 27 | ## Account managers 28 | 29 | The `account managers` are an account owner or other users with account management permissions 30 | 31 | As described in [Configure Account](../../adopting/best-practices/ibm-cloud-account/configure-account.md), the account managers can set up the resource groups and access groups needed to install and use the environments. For each environment, the account managers will: 32 | 33 | - Create a resource group 34 | - Create an access group named `-ADMIN` using the script `acp-admin` 35 | - Create an access group named `-USER` using the script `acp-user` 36 | 37 | ## Environment administrators 38 | 39 | The `environment administrators` are users in the account with permissions to create services in the environment's resource group. In this case, the "environment" is scoped to the `resource group`. Environment administrators are granted broad access to create, manage, and destroy services and resources within a given `resource group`. 40 | 41 | ## Environment users 42 | 43 | The `environment users` are users in the account with permissions to use existing services in the environment's resource group (e.g. developers, data scientists, etc.). They are consumers of the services and resources that have been provisioned in order to build and deploy business applications. 44 | 45 | More information can be found on the [IBM Cloud documentation](https://cloud.ibm.com/docs/account?topic=account-iamoverview){: target=_blank } 46 | -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/access-example.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/access-example.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/cloud-accts-resources.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/cloud-accts-resources.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/cloud-groups-resources.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/cloud-groups-resources.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/cloud-resources.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/cloud-resources.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/group-acct-mgr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/group-acct-mgr.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/group-env-admin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/group-env-admin.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/group-env-user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/group-env-user.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/iam-acct-parts-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/iam-acct-parts-1.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/iam-acct-parts-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/iam-acct-parts-2.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/iam-complete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/iam-complete.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/iam-main-all.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/iam-main-all.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/iam-main-parts-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/iam-main-parts-1.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/iam-main-parts-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/iam-main-parts-2.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/iam-parts-ex-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/iam-parts-ex-1.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/iam-parts-ex-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/iam-parts-ex-2.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/invokecloudshell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/invokecloudshell.png -------------------------------------------------------------------------------- /docs/resources/ibm-cloud/images/toolkit-access-groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/ibm-cloud/images/toolkit-access-groups.png -------------------------------------------------------------------------------- /docs/resources/resources.md: -------------------------------------------------------------------------------- 1 | # Additional Resources 2 | 3 | Use the links below to find additional resources and learning content around Cloud-Native development, RedHat OpenShift and the IBM Cloud. 4 | 5 | ## Alternate Cloud-Native Toolkit learning options 6 | 7 | - [Workshop](workshop/workshop.md) : Assets to run a workshop with local git server 8 | 9 | ## Additional Cloud-Native and OpenShift learning 10 | 11 | - [Cloud Native Bootcamp : https://cloudnative101.dev](https://cloudnative101.dev){: target=_blank} 12 | - [Learning Journey : https://ibm-gsi-ecosystem.github.io/ibm-gsi-cloudnative-journey/](https://ibm-gsi-ecosystem.github.io/ibm-gsi-cloudnative-journey/){: target=_blank} 13 | - [IBM Open Labs - Red Hat OpenShift on IBM Cloud : https://developer.ibm.com/openlabs/openshift](https://developer.ibm.com/openlabs/openshift){: target=_blank} 14 | - [IBM Garage Methodology : https://www.ibm.com/garage/method/](https://www.ibm.com/garage/method/){: target=_blank} 15 | 16 | ## Useful IBM Cloud resources 17 | 18 | - [IBM Cloud roles](ibm-cloud/ibm-cloud-roles.md) 19 | - [access control](ibm-cloud/access-control.md) 20 | - [cluster fast-switching tool](ibm-cloud/icc.md) 21 | - [cloud shell](ibm-cloud/cloud-shell.md) 22 | 23 | ## Additional resources 24 | 25 | - [Cloud-Native Toolkit YouTube Channel](https://www.youtube.com/channel/UCCv359rg3CxVGFttCp0Tzvg){: target=_blank} 26 | 27 | ## Linking to this site 28 | 29 | As the site is under continuous revisions, you may want to provide links that are guaranteed to be available. The following links will always be maintained: 30 | 31 | - Site home : [https://cloudnativetoolkit.dev](https://cloudnativetoolkit.dev){: target=_blank} 32 | - Install : [https://cloudnativetoolkit.dev/install](https://cloudnativetoolkit.dev/install){: target=_blank} 33 | - Developer setup: [https://cloudnativetoolkit.dev/setup](https://cloudnativetoolkit.dev/setup){: target=_blank} 34 | - Learn : [https://cloudnativetoolkit.dev/learn](https://cloudnativetoolkit.dev/learn){: target=_blank} 35 | - workshop : [https://cloudnativetoolkit.dev/workshop](https://cloudnativetoolkit.dev/workshop){: target=_blank} 36 | -------------------------------------------------------------------------------- /docs/resources/workshop/AppSrv01.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/AppSrv01.zip -------------------------------------------------------------------------------- /docs/resources/workshop/images/ai-app-baby-bear.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/ai-app-baby-bear.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/appmod.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/appmod.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/argo-app-staging.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/argo-app-staging.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/argo-app-staging2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/argo-app-staging2.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/argo-app.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/argo-app.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/cd-argocd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/cd-argocd.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/ci-tekton.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/ci-tekton.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/deploy-qa copy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/deploy-qa copy.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/deploy-qa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/deploy-qa.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/deploy-staging.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/deploy-staging.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/deploy-staging2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/deploy-staging2.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/developer-dashboard.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/developer-dashboard.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/gitops copy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/gitops copy.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/gitops-pr1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/gitops-pr1.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/gitops.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/gitops.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/inventory.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/inventory.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/last-run.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/last-run.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/login.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/login.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/open-url.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/open-url.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/pipeline-run.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/pipeline-run.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/starter-kits-ai.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/starter-kits-ai.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/starter-kits.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/starter-kits.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/test-task.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/test-task.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/webhook.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/webhook.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/images/workshop.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/resources/workshop/images/workshop.jpg -------------------------------------------------------------------------------- /docs/resources/workshop/setup.md: -------------------------------------------------------------------------------- 1 | # Setup Workshop Environment 2 | 3 | 4 | 5 | Provides the steps to install the Cloud-Native Toolkit and setting up the Cloud-Native Toolkit Workshop hands on labs. 6 | 7 | 8 | 9 | ## 1. Create OpenShift Cluster 10 | 11 | Create an OpenShift Cluster for example: 12 | 13 | - The 8 hours free Cluster on [IBM Open Labs](https://developer.ibm.com/openlabs/openshift) select lab 6 `Bring Your Own Application` 14 | - Deploy a Cluster on IBM Cloud VPC2 using the [Toolkit](../../adopting/setup/ibmcloud-tile-cluster.md) 15 | - On other Clouds using docs from [cloudnativetoolkit.dev/multi-cloud](../../adopting/setup/provision-cluster.md) 16 | - IBM internal DTE Infrastructure access via [IBM VPN](https://ccp-ui.csplab.intranet.ibm.com/) or [IBM CSPLAB](https://ccp-ui.apps.labprod.ocp.csplab.local/) 17 | 18 | ## 2. Install IBM Cloud Native Toolkit 19 | 20 | - Use one of the install options for example the [Quick Install](../../setup/fast-start.md) 21 | 22 | ```shell 23 | curl -sfL get.cloudnativetoolkit.dev | sh - 24 | ``` 25 | 26 | ## 3. Setup IBM Cloud Native Toolkit Workshop 27 | 28 | - Install the foundation for the workshops 29 | 30 | ```shell 31 | curl -sfL workshop.cloudnativetoolkit.dev | sh - 32 | ``` 33 | 34 | !!!Note 35 | - The username and password for Git Admin is `toolkit` `toolkit` 36 | - Usernames `user01` through `user15` are configured with a password of `password`. 37 | - Username `userdemo` is configured with the password `password`. You can use this username if using the workshop environment 38 | for self study or giving a demo. If you are preparing the environment for a workshop you can remove `userdemo` 39 | b y running the `uninstall-userdemo.sh` script which is part of the [workshop](https://github.com/cloud-native-toolkit/cloud-native-toolkit-workshop) scripts. 40 | 41 | ## 4. (Optional) Customization of the IBM Cloud Native Toolkit Workshop 42 | 43 | - You can customize the Workshop environment by cloning the [workshop](https://github.com/cloud-native-toolkit/cloud-native-toolkit-workshop) repo 44 | 45 | - Some of the most common customizations are: 46 | 47 | - You can create more than 15 users by setting a `USER_COUNT` environment variable. For example to configure 30 users use the command 48 | ```bash 49 | export USER_COUNT=30 50 | ``` 51 | 52 | - You can create more than 15 projects by setting a `PROJECT_COUNT` environment variable. For example to configure 30 projects use the command 53 | ```bash 54 | export PROJECT_COUNT=30 55 | ``` 56 | 57 | - Once you have finished configuring your customizations, login to the cluster from the cli and run the `scripts/install.sh` script to perform the install. 58 | 59 | - You can also add additional users to the workshop clusters. 60 | - Create a file with one user id per line. 61 | **IMPORTANT: there needs to be newline after the last entry.** 62 | For example a `users.txt` file with content. 63 | ```bash 64 | additionaluserID 65 | anotheruserID 66 | someuserID 67 | 68 | ``` 69 | 70 | !!! note "" 71 | For Openshift clusters on IBM Cloud (ROKS) the user ids are their IBM IDs (email address) all lowercase with an uppercase `IAM#` prefix added to the beginning. 72 | ```bash 73 | IAM#additionaluserid@email.com 74 | IAM#anotheruserid@email.com 75 | IAM#someuserid@email.com 76 | 77 | ``` 78 | 79 | - Create a `ADDITIONAL_USERS_FILE` environment variable with the path and name of the file. 80 | ```bash 81 | export ADDITIONAL_USERS_FILE=users.txt 82 | ``` 83 | - The additional users will be granted the `self-provisioner` role, meaning they can create new Openshift Projects. 84 | If you wish to remove this permission set an environment 85 | variable `ADDITIONAL_USERS_SELF_PROVISIONER` with a value of `N` 86 | ```bash 87 | export ADDITIONAL_USERS_SELF_PROVISIONER=N 88 | ``` 89 | 90 | - Once you have finished configuring the additional users, login to the cluster from the cli and run the `scripts/13-ocp-additional-users.sh` script. 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /docs/resources/workshop/terminal.md: -------------------------------------------------------------------------------- 1 | 2 | # Setup Terminal Shell 3 | 4 | - You can use [IBM Cloud Shell](https://cloud.ibm.com/shell), the [OpenLabs Shell](https://developer.ibm.com/openlabs/openshift) or your local workstation. More details in [Toolkit Dev Setup](../../learning/dev-setup.md) and [Toolkit CLI](../../reference/cli.md). 5 | Run the following command on Cloud, Linux or MacOS shell: 6 | 7 | ```shell 8 | curl -sL shell.cloudnativetoolkit.dev | bash - 9 | source ~/.bashrc || source ~/.zshrc 10 | 11 | ``` 12 | 13 | Be sure to follow the instructions provided to enable the changes in the current terminal session. -------------------------------------------------------------------------------- /docs/resources/workshop/workshop.md: -------------------------------------------------------------------------------- 1 | # IBM Cloud Native Toolkit Workshop 2 | 3 | 4 | 5 | The Workshop is design to provide a quick way to try the methodology leveraging the tools that the Toolkit integrates. 6 | 7 | ## Agenda 8 | 9 | [![Setup Workshop Environment](./images/workshop.jpg){: width=30%}](setup.md) Setup Workshop Environment (*workshop admin only*) 10 | 11 | [![Deploy an Application using CI Pipelines with Tekton](./images/ci-tekton.jpg){: width=30%}](ci.md) Deploy an Application using CI Pipelines with Tekton 12 | 13 | [![Promote an Application using CD with GitOps and ArgoCD](./images/cd-argocd.jpg){: width=30%}](cd.md) Promote an Application using CD with GitOps and ArgoCD 14 | 15 | [![Deploy a 3 tier Microservice using React, Node.js, and Java](./images/inventory.jpg){: width=30%}](inventory.md) Deploy a 3 tier Microservice using React, Node.js, and Java 16 | 17 | [![App Modernization with modern DevOps](./images/appmod.jpg){: width=30%}](appmod.md) App Modernization with modern DevOps 18 | -------------------------------------------------------------------------------- /docs/setup/images/fast-start-install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/setup/images/fast-start-install.png -------------------------------------------------------------------------------- /docs/setup/images/fast-start-install.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/setup/images/fast-start-install.pptx -------------------------------------------------------------------------------- /docs/setup/setup-options.md: -------------------------------------------------------------------------------- 1 | # Installing the Cloud-Native Toolkit 2 | 3 | !!!note 4 | If you are a developer attending a training event, where the training environment is provided, you should skip this section and move onto the Cloud-Native Toolkit fast [start content](../learning/fast-start.md) 5 | 6 | If you want to host a workshop for a number of developers, then you may want to use the [workshop](../resources/workshop/workshop.md). 7 | 8 | There is no single way to setup an enterprise development infrastructure for cloud native application development. There are [many different tools available](https://www.cncf.io/projects/){: target="_blank" .external } to help create Cloud Native applications. You need to find the set of tools and processes that allow the IT organization to work efficiently to create and manage production-ready applications and services. This can be a time consuming processes, to evaluate available tools and determine how to integrate them into a development environment. 9 | 10 | The Cloud-Native toolkit is an opinionated set of tools to create a production-ready development environment. The toolkit also provides installation options and starter kits to get you up and running quickly. 11 | 12 | If you don't have access to a Cloud-Native Toolkit installation then you can select one of the setup options detailed below to install the toolkit before moving onto the learning. 13 | 14 | ## Options for installing the toolkit 15 | 16 | ![fast-start install](images/fast-start-install.png){style="width: 90%" .center } 17 | 18 | The Cloud-Native toolkit will run on a standard Kubernetes cluster or on the Red Hat OpenShift hybrid cloud platform, which is based on Kubernetes. 19 | 20 | The Cloud-Native toolkit supports many different options for installing and configuring the toolkit across a number of different Kubernetes based environment, but for the first install it is recommended to follow the fast-start setup. 21 | 22 | The [fast-start installation](fast-start.md) will create an environment for you to learn about cloud native development. Once you have a better understanding of cloud native development you can then make informed decisions about how you want to do Cloud-Native Development within your production environment and customize the toolkit to meet your requirements. 23 | 24 | You will find additional installation and toolkit configuration options in the [Adopting the toolkit](../adopting/setup/installing.md) section, but the recommended path for your first installation is the [fast-start installation](fast-start.md) option. 25 | 26 | ## Prerequisites for installing the Cloud-Native Toolkit 27 | 28 | For all options to complete the Fast-start training your need a laptop or workstation with a modern Operating System (MS Windows, Mac OS or Linux) with an up to date browser. 29 | 30 | For IBM Cloud, bare metal, virtualized infrastructure or 3rd party cloud installs you also need to have a terminal for interacting with the cluster using command line tools. If using the IBM Cloud there is a web based command line environment available so you don't need to install additional tooling on your workstation or laptop. 31 | 32 | If using the Learning environment, you only need a browser, as the learning environment provides a web based command line environment. 33 | 34 | ### IBM Cloud Shell 35 | 36 | If you plan to use an IBM Cloud based cluster to complete the learning, then you can opt to use the IBM Cloud web based shell environment. To access the shell simply navigate to [https://cloud.ibm.com/shell](https://cloud.ibm.com/shell){: target="_blank" .external }. 37 | 38 | The web based shell contains all the tool needed (curl, node.js, ibmcloud CLI and oc CLI) to complete the installation. 39 | 40 | ### Install prerequisite tools on your workstation or laptop 41 | 42 | If you are not planning to use the IBM Cloud shell or are going to use the online Learning environment, then you need to have some prerequisite software installed on your laptop or workstation. 43 | 44 | If on Mac OS or Linux then you need to have curl installed. This is usually available from the Linux package manager or installed as part of the base operating system 45 | 46 | For all operating systems [Node.js](https://nodejs.org/en/) needs to be installed 47 | -------------------------------------------------------------------------------- /docs/videos/deployapp.m4v: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/docs/videos/deployapp.m4v -------------------------------------------------------------------------------- /linkcheckerrc: -------------------------------------------------------------------------------- 1 | [filtering] 2 | checkextern=1 3 | ignore= 4 | ^https://cloudnativetoolkit.dev 5 | ^https://github.com/cloud-native-toolkit/developer-guide/edit 6 | xml.gz$ 7 | ^https://ccp-ui.csplab.intranet.ibm.com 8 | ^https://ccp-ui.apps.labprod.ocp.csplab.local 9 | fonts.gstatic.com 10 | 11 | nofollow= 12 | public/install.html$ 13 | public/learn.html$ 14 | public/learning.html$ 15 | public/setup.html$ 16 | public/workshop.html$ 17 | public/resources/workshop.html$ 18 | public/workshop/setup.html$ 19 | public/workshop/terminal.html$ 20 | public/workshop/ci.html$ 21 | public/workshop/inventory.html$ 22 | public/workshop/appmod.html$ 23 | public/workshop/ai.html$ 24 | public/learning/gitops-int/gitops-with-cloud-native-toolkit.html$ 25 | public/learning/gitops-int/gitops-with-app-connect.html$ 26 | public/tools/argocd.html$ 27 | public/getting-started/dev-env-setup.html$ 28 | public/getting-started-day-1/deploy-app.html$ 29 | public/learning/ace-pipeline.html$ 30 | public/whats-new.html$ 31 | public/overview.html$ 32 | public/getting-started/cli.html$ 33 | 34 | 35 | 36 | 37 | 38 | [checking] 39 | robotstxt=0 40 | localwebroot=./ 41 | -------------------------------------------------------------------------------- /overrides/assets/images/apply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/overrides/assets/images/apply.png -------------------------------------------------------------------------------- /overrides/assets/images/catalyst.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/overrides/assets/images/catalyst.png -------------------------------------------------------------------------------- /overrides/assets/images/learn-min.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/overrides/assets/images/learn-min.jpg -------------------------------------------------------------------------------- /overrides/assets/images/resources-min.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/overrides/assets/images/resources-min.jpg -------------------------------------------------------------------------------- /overrides/assets/stylesheets/home.css: -------------------------------------------------------------------------------- 1 | .home-hero { 2 | max-width: 100%; 3 | height: 45vh; 4 | max-height: 560px; 5 | width: 100%; 6 | position: relative; 7 | } 8 | 9 | .home-hero-image { 10 | height: 45vh; 11 | background-image: url(images/code3.png); 12 | background-position: center; 13 | background-size: cover; 14 | } 15 | 16 | .home-hero-text { 17 | bottom: 20px; 18 | right: 50px; 19 | position: absolute; 20 | background-color:rgba(0, 0, 0, 0.3); 21 | padding: 10px 10px 20px 10px; 22 | } 23 | 24 | .home-hero-text h1 { 25 | color: #fff; 26 | background: none; 27 | bottom: 0; 28 | font-size: 3.6em; 29 | padding-left: 20px; 30 | margin-bottom: 10px 31 | } 32 | 33 | .home-description { 34 | max-width: 100%; 35 | width: 100%; 36 | background: #030303; 37 | } 38 | .home-purpose { 39 | max-width: 100%; 40 | width: 100%; 41 | background: #061f80; 42 | } 43 | 44 | .row { 45 | display: flex; 46 | flex-direction: row; 47 | flex-wrap: wrap; 48 | width: 100%; 49 | padding-left: 1rem; 50 | padding-right: 1rem; 51 | padding-top: 4rem; 52 | padding-bottom: 4rem; 53 | font-size: 1.6em; 54 | } 55 | 56 | .column { 57 | display: flex; 58 | flex-direction: column; 59 | flex-basis: 100%; 60 | flex: 1; 61 | height: 100%; 62 | font-family: IBM Plex Sans VF,Helvetica Neue,Arial,sans-serif; 63 | } 64 | 65 | .md-main__inner { 66 | margin: 0; 67 | max-width: 100%; 68 | } 69 | 70 | .md-main__inner .md-content__inner, 71 | .md-sidebar--primary:not([hidden]) ~ .md-content > .md-content__inner { 72 | margin: 0; 73 | padding: 0; 74 | } 75 | 76 | .md-content__inner { 77 | margin-left: 0 !important; 78 | } 79 | 80 | .md-typeset img, 81 | .md-typeset svg { 82 | max-width: initial; 83 | } 84 | 85 | :root >* { 86 | --md-default-bg-color: #161616; /* background */ 87 | --md-primary-bg-color: #fff; /* Title bar text */ 88 | --md-typeset-a-color: #aaa; /* Additional header text */ 89 | --md-typeset-color: #fff; /* nav text normal */ 90 | --md-accent-fg-color: #9f9; /* text hover + highlight*/ 91 | --md-default-fg-color--lighter: #33f; /* Nav scroll bar */ 92 | --md-primary-bg-color--light: #fff; /* Search bar text */ 93 | --md-default-fg-color: #fff; /* Search result box section header */ 94 | --md-default-fg-color--light: #eee; /* Search box result text */ 95 | 96 | } 97 | 98 | /* top banner home page */ 99 | [data-md-color-primary=black] .md-header { 100 | background-color: #161616; 101 | border-bottom: 1px solid #393939; 102 | } 103 | 104 | 105 | article.md-content__inner.md-typeset { 106 | background-color: #161616; 107 | border-left: 1px solid #393939; 108 | } 109 | 110 | .md-content { 111 | padding-bottom: 0; 112 | } 113 | 114 | .card { 115 | padding: 10px 10px; 116 | } 117 | 118 | .card div { 119 | font-size: large; 120 | } 121 | 122 | .md-nav__link--active { 123 | color: white !important; 124 | } 125 | -------------------------------------------------------------------------------- /overrides/assets/stylesheets/images/code3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cloud-native-toolkit/site-developer-guide/86288545be7c4232875ab3a4abff0d3a9917ed50/overrides/assets/stylesheets/images/code3.png -------------------------------------------------------------------------------- /overrides/home.html: -------------------------------------------------------------------------------- 1 | {% extends "main.html" %} 2 | 3 | 4 | 5 | 6 | {% block tabs %}{% endblock %} 7 | 8 | 9 | {% block content %} 10 | 11 | 12 | 13 |
14 | 92 |
93 | {% endblock %} 94 | 95 | 96 | {% block footer %} {{ super() }} {% endblock %} 97 | -------------------------------------------------------------------------------- /overrides/main.html: -------------------------------------------------------------------------------- 1 | 2 | {% extends "base.html" %} 3 | 4 | 5 | {% block extrahead %} 6 | 7 | 8 | {% set title = config.site_name %} 9 | {% if page and page.title and not page.is_homepage %} 10 | {% set title = config.site_name ~ " - " ~ page.title | striptags %} 11 | {% endif %} 12 | 13 | 14 | {% set image = config.site_url ~ 'assets/images/banner.png' %} 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | {% endblock %} 28 | 29 | 30 | 31 | 32 | {% block scripts %} 33 | {{ super() }} 34 | 35 | {% endblock %} 36 | -------------------------------------------------------------------------------- /overrides/partials/footer.html: -------------------------------------------------------------------------------- 1 | 2 | {% import "partials/language.html" as lang with context %} 3 | 4 | 5 |
6 | 7 | 8 | 26 |
27 | -------------------------------------------------------------------------------- /overrides/partials/nav.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {% set class = "md-nav md-nav--primary" %} 4 | {% if "navigation.tabs" in features %} 5 | {% set class = class ~ " md-nav--lifted" %} 6 | {% endif %} 7 | {% if "toc.integrate" in features %} 8 | {% set class = class ~ " md-nav--integrated" %} 9 | {% endif %} 10 | 11 | 12 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "developer-guide", 3 | "version": "1.0.0", 4 | "description": "[![Publish](https://github.com/cloud-native-toolkit/developer-guide/actions/workflows/publish.yaml/badge.svg)](https://github.com/cloud-native-toolkit/developer-guide/actions/workflows/publish.yaml)", 5 | "main": "index.js", 6 | "directories": { 7 | "doc": "docs" 8 | }, 9 | "scripts": { 10 | "clean": "run-script-os", 11 | "clean:darwin:linux": "dev/clean.sh devguide-dev", 12 | "clean:win32": "dev\\clean.bat devguide-dev", 13 | "predev": "npm run clean", 14 | "dev": "run-script-os", 15 | "dev:darwin:linux": "./dev/run.sh devguide-dev 8000", 16 | "dev:win32": "dev\\run.bat devguide-dev 8000", 17 | "postdev1": "npm run logs", 18 | "logs": "run-script-os", 19 | "logs:darwin:linux": "./dev/logs.sh devguide-dev", 20 | "logs:win32": "dev\\logs.sh devguide-dev", 21 | "dev:stop": "npm run clean", 22 | "dev:spell": "cspell docs/**/*.md", 23 | "dev:links": "linkchecker -f linkcheckerrc --check-extern public", 24 | "build": "run-script-os", 25 | "build:darwin:linux": "./build.sh", 26 | "build:win32": "build.bat", 27 | "dev:build": "run-script-os", 28 | "dev:build:darwin:linux": "dev/build.sh devguide-dev", 29 | "dev:build:win32": "dev\\build.bat devguide-dev", 30 | "test": "echo \"Error: no test specified\" && exit 1" 31 | }, 32 | "repository": { 33 | "type": "git", 34 | "url": "git+https://github.com/ibm-garage-cloud/developer-guide.git" 35 | }, 36 | "keywords": [], 37 | "author": "", 38 | "license": "ISC", 39 | "bugs": { 40 | "url": "https://github.com/cloud-native-toolkit/developer-guide/issues" 41 | }, 42 | "homepage": "https://github.com/cloud-native-toolkit/developer-guide#readme", 43 | "devDependencies": { 44 | "cspell": "^5.4.1", 45 | "run-script-os": "^1.1.6" 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | # Do not use with Docker builds, only for local dev with mkdocs CLI 2 | mkdocs-material==7.1 3 | mkdocs-minify-plugin==0.4.0 4 | mkdocs-redirects==1.0.3 5 | git+https://github.com/linkchecker/linkchecker@v10.0.1#egg=linkchecker 6 | 7 | 8 | --------------------------------------------------------------------------------