├── .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 | [](https://github.com/cloud-native-toolkit/developer-guide/actions/workflows/publish.yaml)
4 |
5 | [](https://github.com/cloud-native-toolkit/developer-guide/actions/workflows/publish-beta.yaml)
6 |
7 | 
8 |
9 | [](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 | 
30 |
31 | 3. In the Set Me Up dialog for the generic-local repository, copy the Deploy URL
32 |
33 | 
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 | 
42 |
43 | 3. From the Settings page, select `Repositories`
44 |
45 | 
46 |
47 | 4. Press the `Connect repo using https` button at the top of the page
48 |
49 | 
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 | 
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 | 
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 | 
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 | 
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 | 
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 |
| 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 | 
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 | {: 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 | [{: width=30%}](setup.md) Setup Workshop Environment (*workshop admin only*)
10 |
11 | [{: width=30%}](ci.md) Deploy an Application using CI Pipelines with Tekton
12 |
13 | [{: width=30%}](cd.md) Promote an Application using CD with GitOps and ArgoCD
14 |
15 | [{: width=30%}](inventory.md) Deploy a 3 tier Microservice using React, Node.js, and Java
16 |
17 | [{: 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 | {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 |
15 |
16 |
17 |
34 |
35 |
36 |
37 |
38 |
55 |
71 |
88 |
89 |
90 |
91 |
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 |
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": "[](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 |
--------------------------------------------------------------------------------