Skip to content

Commit 1d019f6

Browse files
author
Sean Sundberg
authored
Updates README.md (#114)
- Adds the `Latest release` shield/badge to the top of the README - Cleans up references to the old Dev Guide url - Updates `Cloud Native` references to `Cloud-Native` - Adds information on the development process and the automated workflows - Removes the workflow badge from the .tile/docs/README.md
1 parent 5f24cac commit 1d019f6

File tree

2 files changed

+127
-16
lines changed

2 files changed

+127
-16
lines changed

.tile/docs/README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
# CNCF Cloud Native Toolkit
22

3-
![CI For Cloud-Native Toolkit Private Catalog](https://github.com/ibm-garage-cloud/cloudnative-toolkit/workflows/CI%20For%20Cloud-Native%20Toolkit%20Private%20Catalog/badge.svg)
4-
53
## Install CNCF Cloud-Native Toolkit using IBM Private Catalogs
64

75
This Private Catalog tile a derivative of the **Iteration Zero** project from

README.md

Lines changed: 127 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,39 @@
11
# IBM Garage Solution Engineering
2+
3+
![Latest release](https://img.shields.io/github/v/release/ibm-garage-cloud/ibm-garage-iteration-zero?sort=semver)
4+
25
## Iteration Zero for IBM Cloud
36

4-
This repository contains infrastructure as code (IasC) scripting to create an IBM Garage Clout Native Toolkit development environment ready for cloud-native application development with IBM Cloud Kubernetes Service or Red Hat OpenShift.
7+
This repository contains infrastructure as code (IasC) scripting to create an IBM Garage Clout Native Toolkit
8+
development environment ready for cloud-native application development with IBM Cloud Kubernetes Service or
9+
Red Hat OpenShift.
510

611
### Overview
712

8-
Iteration Zero creates an IBM Garage Cloud Native Toolkit environment in IBM Cloud, complete with tools and services needed for continious delivery of typical cloud-native applications to a [IBM Cloud Kubernetes Service](https://cloud.ibm.com/docs/containers) or [Red Hat OpenShift on IBM Cloud](https://cloud.ibm.com/docs/openshift) cluster. Typically a squad lead or lead developer would create this environment after the initial inception workshop has completed and the development team is ready to write code.
13+
Iteration Zero creates an IBM Garage Cloud-Native Toolkit environment in IBM Cloud, complete with tools and services
14+
needed for continious delivery of typical cloud-native applications to a
15+
[IBM Cloud Kubernetes Service](https://cloud.ibm.com/docs/containers) or
16+
[Red Hat OpenShift on IBM Cloud](https://cloud.ibm.com/docs/openshift) cluster. Typically, a squad lead or
17+
Site Reliability Engineer (SRE) would create this environment after the toolchain has been decided upon (often during
18+
the Inception workshop) and before development team is ready to write code (when Iteration One has started).
919

10-
The objective of this environment is to reduce the amount of time and effort a team needs to spend creating and configuring their Kubernetes or OpenShift development environments. Rather than the team having to reinvent the wheel deciding how to set up a continious development environment and perform the manual effort to create, install, and configure the cluster, tools, and services, these infrastructure as code (IasC) scripts automate the process to consistently create an environment as needed that embodies these best practices. The scripts are modular so tools can be easily disabled or added. This combindation of tools are proven in the industry to deliver real value for modern cloud-native development.
20+
The objective of this environment is to reduce the amount of time and effort a team needs to spend creating and
21+
configuring their Kubernetes or OpenShift development environments. Rather than the team having to re-invent the wheel
22+
deciding how to set up a DevOps environment and performing the manual effort to create, install, and configure the cluster,
23+
tools, and services, these Infrastructure-as-Code (IasC) scripts automate the process to consistently create an
24+
environment as needed that embodies these best practices. The scripts are modular so tools can be easily added or removed.
25+
This combination of tools have been proven in the industry to deliver real value for modern cloud-native development.
1126

12-
The Red Hat [Open Innovation Labs](https://github.com/rht-labs/labs-ci-cd) has a very similar approach to how they deliver success with OpenShift.
27+
The Red Hat [Open Innovation Labs](https://github.com/rht-labs/labs-ci-cd) has a very similar approach to how they
28+
deliver success with OpenShift.
1329

14-
You can jump straight to the [Developers Guide](https://ibm-garage-cloud.github.io/ibm-garage-developer-guide/) if you want more detail on how the Cloud Native Toolkit fits into the end-to-end development story.
30+
You can jump straight to the [Developers Guide](https://cloudnativetoolkit.dev/) if you
31+
want more detail on how the Cloud-Native Toolkit fits into the end-to-end development story.
1532

1633
This repo contains Terraform resources that will create an environment containing the following development tools:
34+
1735
- IBM Container Service cluster (3 nodes) for Kubernetes or OpenShift
18-
- Namespaces for *dev*, *test*, *staging*, and *tools*
36+
- Namespaces for *tools* and *ibm-observe*
1937
- Tools for continuous delivery:
2038
- [Tekton CI](https://github.com/tektoncd/pipeline)
2139
- [Jenkins CI](https://jenkins.io/)
@@ -29,15 +47,21 @@ This repo contains Terraform resources that will create an environment containin
2947
- Installed by default:
3048
- [LogDNA Logging](https://cloud.ibm.com/docs/services/Log-Analysis-with-LogDNA)
3149
- [SysDig Monitoring](https://cloud.ibm.com/docs/services/Monitoring-with-Sysdig)
32-
- Optional (move terrform file from `_tmp`to `stages*` directory):
50+
- Optional (move terraform file from `catalog` to the `stages` directory):
3351
- [AppID Application Authentication](https://cloud.ibm.com/docs/services/appid)
3452
- [Cloud Object Storage Storage](https://cloud.ibm.com/docs/services/cloud-object-storage)
3553
- [Cloudant NoSQL Database](https://cloud.ibm.com/docs/services/Cloudant)
3654
- [PostgreSQL](https://cloud.ibm.com/docs/services/databases-for-postgresql)
3755

56+
The stages provided in this repository provide the configuration for a set of terraform modules that have been
57+
provided as part of the Cloud-Native Toolkit. A full listing of those modules can be found in the
58+
[Garage Terraform Modules](https://github.com/ibm-garage-cloud/garage-terraform-modules) repository. In addition to the
59+
modules provided with the Cloud-Native Toolkit, any Terraform modules or scripts can be incorporated into the
60+
Iteration Zero installation configuration.
61+
3862
## Developer Tools
3963

40-
This diagram illustrates the components in a Cloud Native Toolkit environment:
64+
This diagram illustrates the components in a Cloud-Native Toolkit environment:
4165

4266
![Provisioned environment](./docs/images/catalyst-provisioned-environment.png)
4367

@@ -67,15 +91,18 @@ This diagram illustrates the components in a Cloud Native Toolkit environment:
6791
6892
## Developer Guide
6993

70-
[Developer Guide](https://ibm-garage-cloud.github.io/ibm-garage-developer-guide/) explains how to use the Cloud Native Toolkit environment.
71-
Use it to deep dive into how to use these tools and programming models to make yourself productive with Kubernetes and OpenShift on the IBM Cloud.
94+
[Developer Guide](https://cloudnativetoolkit.dev/) explains how to use the Cloud-Native Toolkit environment.
95+
Use it to deep dive into how to use these tools and programming models to make yourself productive with Kubernetes and
96+
OpenShift on the IBM Cloud.
7297

7398
### Install and Configure
7499

75-
Start with the [installation instructions](https://ibm-garage-cloud.github.io/ibm-garage-developer-guide/getting-started/overview) for creating the Cloud Native Toolkit environment. It contains the instructions for how to setup and run the Terraform Infrastructure as Code scripts in this repo.
100+
Start with the [installation instructions](https://cloudnativetoolkit.dev/getting-started/overview) for creating the
101+
Cloud-Native Toolkit environment. It contains the instructions for how to setup and run the Terraform Infrastructure as Code scripts in this repo.
76102

77103
You can install this collection of CNCF DevSecOps tools using the [IBM Cloud Private Catalog feature](https://cloud.ibm.com/docs/account?topic=account-manage-catalog) more information on
78-
how to configure a IBM Cloud Private Catalog tile and complete an install can be found in this [README](.tile/docs/README.md) or documentation in the [Developer Guide](https://cloudnativetoolkit.dev/admin/installation-private-catalog)
104+
how to configure an IBM Cloud Private Catalog tile and complete an installation can be found in this
105+
[README](.tile/docs/README.md) or documentation in the [Developer Guide](https://cloudnativetoolkit.dev/admin/installation-private-catalog)
79106

80107
### Developer Dashboard
81108

@@ -84,12 +111,98 @@ explains how to open the dashbard for using the Cloud Developer Tools environmen
84111

85112
### Destroying
86113

87-
The scripts that created the Cloud Developer Tools environment can also be used to destroy it. See [destroy](https://ibm-garage-cloud.github.io/ibm-garage-developer-guide/getting-started/destroying/) for instructions.
114+
The scripts that created the Cloud Developer Tools environment can also be used to destroy it. See
115+
[destroy](https://cloudnativetoolkit.dev/getting-started/destroying/) for instructions.
116+
117+
## Development
118+
119+
### Process
120+
121+
#### Create a pull request
122+
123+
When a pull request is created, there are a couple of categories of labels that can be used to influence the workflow
124+
behavior.
125+
126+
*Verification process*
127+
128+
* `skip ci` - Indicates that the validation process should be skipped for the PR. This should be used sparingly but is
129+
particularly appropriate if the change impacts a file that is inconsequential to the terraform installation process, like
130+
the README or a shell script. The intent of this label is to speed up the process and save resources for the entire
131+
verification process.
132+
133+
*Change type*
134+
135+
The change type labels (`feature`, `bug`, `chore`) tell the component that generates the change log what type of change
136+
the pull request represents.
137+
138+
* `feature` - The change introduces a new feature or enhancement for the repository
139+
* `bug` - The change provides a fix to existing code in the repository
140+
* `chore` - The change represents maintenance performed on the repository
141+
142+
*Release type*
143+
144+
The release type labels (`major`, `minor`, `patch`) tell the component that generates the release how to increment the
145+
version number
146+
147+
* `major` - The change should be part of a new `major` release (e.g. 2.0.0)
148+
* `minor` - The change should be part of a new `minor` release (e.g. x.2.0)
149+
* `patch` - The change should be part of a new `patch` release (e.g. x.y.3)
150+
151+
#### Squash and merge the pull request
152+
153+
When the pull request is validated and reviewed, squash and merge the pull request
154+
155+
#### Publish the release
156+
157+
Each change will create or contribute to a draft release on the repository. When it is time to publish the release, edit
158+
the draft release in GitHub and click the `Publish` button. That will make the release visible outside of the development
159+
team and trigger the `Publish assets` workflow.
160+
161+
### Automated workflows
162+
163+
The repository uses GitHub Actions to automate the steps to validate, release, and publish the assets.
164+
165+
#### Verify PR
166+
167+
When a pull request is created or a change is pushed to an existing PR, the
168+
[Verify PR](https://github.com/ibm-garage-cloud/ibm-garage-iteration-zero/actions?query=workflow%3A%22Verify+PR%22)
169+
workflow runs to execute the full Iteration Zero workflow against existing IKS, OCP3, and OCP4 clusters.
170+
171+
![Verify PR](https://github.com/ibm-garage-cloud/ibm-garage-iteration-zero/workflows/Verify%20PR/badge.svg)
172+
173+
Labels added to the Pull Request will impact the behavior of the following `Release` workflow when the PR is merged.
174+
175+
#### Release
176+
177+
Pushing changes to the `master` branch, either by merging a PR (ideally) or by a direct push, triggers the
178+
[Release](https://github.com/ibm-garage-cloud/ibm-garage-iteration-zero/actions?query=workflow%3ARelease) workflow.
179+
The workflow *should* validate the build by running through the entire terraform process to existing cluster,
180+
although that has been turned off for the time being. If the verification completes successfully, the workflow creates
181+
(or appends to) a draft release containing the changes. Each commit to the repository will be added to the draft release
182+
until someone manually publishes the release.
183+
184+
![Release](https://github.com/ibm-garage-cloud/ibm-garage-iteration-zero/workflows/Release/badge.svg?event=push)
185+
186+
#### Publish assets
187+
188+
Publishing a new release will trigger the [Publish assets](https://github.com/ibm-garage-cloud/ibm-garage-iteration-zero/actions?query=workflow%3A%22Publish+assets%22)
189+
workflow. The workflow generates any assets that should be published with the release (currently the IBM Private Catalog tile assets)
190+
based on the released version of the repository.
191+
192+
![Publish assets](https://github.com/ibm-garage-cloud/ibm-garage-iteration-zero/workflows/Publish%20assets/badge.svg)
193+
194+
#### Create PR
195+
196+
The upstream terraform module repositories have been configured to trigger a `repository_dispatch` event when a new
197+
release of the module has been published. An incoming `repository_dispatch` event triggers the [Create PR](https://github.com/ibm-garage-cloud/ibm-garage-iteration-zero/actions?query=workflow%3A%22Create+PR%22)
198+
workflow to update the version of each module in the repository and create a Pull Request if there are any changes.
88199

200+
![Create PR](https://github.com/ibm-garage-cloud/ibm-garage-iteration-zero/workflows/Create%20PR/badge.svg)
89201

90202
## Summary
91203

92-
We are working to make Kubernetes and OpenShift development as easy as possible this toolkit adds what feels like a PaaS layer to a Kubernetes environment, any feedback on the use of the project will be most welcome.
204+
We are working to make Kubernetes and OpenShift development as easy as possible this toolkit adds what feels like a
205+
PaaS layer to a Kubernetes environment, any feedback on the use of the project will be most welcome.
93206

94207
Thanks IBM Garage Solution Engineering
95208

0 commit comments

Comments
 (0)