Skip to content

Commit 7be98a9

Browse files
authored
Merge pull request #10 from nateziemann/Nate-Review1
Update README.adoc
2 parents 7759d51 + 07763c2 commit 7be98a9

File tree

1 file changed

+53
-51
lines changed

1 file changed

+53
-51
lines changed

README.adoc

+53-51
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ permalink: /guides/working-with-collections/
55
:page-layout: guide
66
:page-duration: 30 minutes
77
:page-releasedate: 2019-10-15
8-
:page-description: Learn how to create, update, build, test, and publish a Kabanero Collection.
8+
:page-description: Learn how to create, update, build, test, and publish Kabanero Collections.
99
:page-tags: ['Collection', 'Java', 'MicroProfile']
1010
:page-guide-category: collections
1111
= Working with Kabanero Collections
@@ -36,7 +36,7 @@ the guide in published form, view it on the https://kabanero.io/guides/{projecti
3636
== What you will learn
3737

3838
You will learn how to create a local Kabanero Collection Hub for your organisation. After learning about
39-
the general structure of a Collection, you will apply some changes for an application stack. You will then
39+
the general structure of Collections, you will apply some changes for an application stack. You will then
4040
build, test, and publish your own customised Kabanero Collection.
4141

4242
This guide does not cover working with Tekton pipelines, which is the subject of a separate guide.
@@ -65,14 +65,14 @@ https://pypi.org/project/PyYAML/[pyyaml] for processing YAML files.
6565
A Kabanero Collection Hub contains a set of Kabanero Collections that organisations can use to develop, build, and deploy
6666
containerized, microservice-based applications.
6767

68-
A Kabanero Collection includes an Appsody stack, together with build and deployment artifacts, such as Tekton pipelines. Stacks
69-
consist of base container images and project templates for different language runtimes and framework, such as Eclipse Microprofile
70-
with Open Liberty, or Node.js with Express.
68+
A Kabanero Collection includes an Appsody stack, together with build and deployment artifacts, such as Tekton pipelines along with an enterprise-grade Kubernetes operator for deployment and day2 operations of the runtime and framework. Appsody Stacks
69+
consist of base container images and project templates for a specific language runtime and framework, such as Eclipse Microprofile
70+
with Open Liberty, Spring Boot with Tomcat or Node.js with Express.
7171

7272
== Creating a local Kabanero Collection Hub
7373

7474
The *public* Kabanero Collection Hub contains all the latest collections from the Kabanero project. Before working with
75-
Kabanero Collections, you must create a Kabanero Collection Hub locally by cloning the public GitHub repository.
75+
Kabanero Collections, you must create a Kabanero Collection Hub locally by cloning the public GitHub repository. This will allow you to customize, enable or disable individual Collections for your enterprise. Customizations you make can be merged with future updates from the public Collection Hub using standard Git.
7676

7777
Run the following commands to clone the public Kabanero Collection Hub and push a copy of your repository (`private-org`) to your
7878
GitHub Enterprise organisation (`https://github.acme.com/my_org/collections.git`):
@@ -84,6 +84,8 @@ git remote add private-org https://github.acme.com/my_org/collections.git
8484
git push -u private-org
8585
```
8686

87+
While instructions here are for GitHub Enterprise, you could also use GitHub or GitLab.
88+
8789
// =================================================================================================
8890
// Understanding the file structure
8991
// =================================================================================================
@@ -97,8 +99,7 @@ Kabanero Collections are categorized into one of the following collection types:
9799

98100
- **stable** collections meet a set of predefined technical requirements.
99101
- **incubator** collections are actively being worked on to meet the requirements for a **stable** collection.
100-
- **experimental** collections are just that! You can use them for proof of concept work or to try out specific
101-
scenarios, but these collections are not being actively worked on.
102+
- **experimental** collections are just that! Early delivery of experimental collections allow for testing and socialization of new technologies and approaches to solving problems. Quality may vary.
102103

103104
Although three categories are available, Kabanero builds only **incubator** collections.
104105

@@ -144,9 +145,9 @@ collection-1
144145
└── [example files as a starting point for a more complex application]
145146
```
146147

147-
When you build a collection, the build processes some files in this structure to generate a Docker image for the collection.
148-
Other files, such as templates and pipelines, are compressed and stored as `tar` files in an Appsody repository. The Docker
149-
images are used by the Appsody CLI to generate a development Docker container for local application development.
148+
When you build a collection, the build processes some files in this structure to generate a container image for the collection.
149+
Other files, such as templates and pipelines, are compressed and stored as `tar` files in an Appsody repository. The container
150+
images are used by the Appsody CLI to generate a container for local application development.
150151

151152
By modifying the files in a collection you can customize a collection for your organisation. The following list describes each
152153
file and its purpose:
@@ -158,14 +159,14 @@ Defines the different attributes of the stack and which template the stack shoul
158159
`collection.yaml`::
159160
Defines the different attributes of the collection and which container image and pipeline the collection should use by default.
160161
`app-deploy.yaml`::
161-
Defines the configuration for deploying an Appsody project that uses the Appsody Operator. The Appsody Operator can install,
162+
Defines the configuration for deploying an Appsody project that uses the Appsody Operator. The Appsody Operator is a Kubernetes operator that can install,
162163
upgrade, remove, and monitor application deployments on Kubernetes clusters.
163164
`Dockerfile`::
164-
Defines the deployment Docker image that is created by the `appsody build` command. The Dockerfile contains the content
165+
Defines the deployment container image that is created by the `appsody build` command. The Dockerfile contains the content
165166
from the stack and the application that is created by a developer, which is typically based on one of the templates. The image
166-
can be used to run the final application in a test or production environment where the Appsody CLI is not present.
167+
can be used to run the final application in a test or production Kubernetes environment where the Appsody CLI is not present.
167168
`Dockerfile-stack`::
168-
Defines the development Docker image for the stack, exposed ports, and a set of Appsody environment variables that can be used during
169+
Defines the development container image for the stack, exposed ports, and a set of Appsody environment variables that can be used during
169170
local application development.
170171
`LICENSE`::
171172
Details the license terms for the Collection.
@@ -177,18 +178,20 @@ This directory contains pre-configured templates for applications that can be us
177178
a developer get started with a development project.
178179

179180
// =================================================================================================
180-
// Modifying Kabanero Collections
181+
// Modifying Collections
181182
// =================================================================================================
182183

183184

184-
== Modifying Kabanero Collections
185+
== Modifying Collections
186+
187+
In some cases, you might want to modify a Collection to change the software compoents, the version of a software component or expose a
188+
specific port for a type of application.
185189

186-
In some cases, you might want to modify a Kabanero Collection to change the version of a software component or expose a
187-
specific port for a type of application. In this guide, you will modify the `java-microprofile` collection to change the
190+
In this guide, you will modify the `java-microprofile` collection to change the
188191
version of Open Liberty that your application runs on.
189192

190193
Locate the `java-microprofile` collection in the `incubator` directory. The changes that you need to make are in the
191-
`image` directory, which contains all the artifacts needed for the development Docker image.
194+
`image` directory, which contains all the artifacts needed for the development container image.
192195

193196
Open the `image/project/pom.xml` file and locate the section that defines the Open Liberty runtime. Search for the string
194197
**<!-- OpenLiberty runtime**. The section looks similar to the following example:
@@ -250,20 +253,20 @@ Change the `<regex>` and `<regexMessage>` values from `19.0.0.8` to `19.0.0.9`.
250253

251254
Now save your changes to the `pom.xml` file.
252255

253-
Modified Kabanero Collections must be built before they can be tested and released for developers to use. This task
256+
Modified Collections must be built before they can be tested and released for developers to use. This task
254257
is covered in a later section of the guide.
255258

256259
You can also modify the default Tekton pipeline that is part of this Collection. However, this guide does not cover
257260
working with Tekton pipelines, which is the subject of another guide.
258261

259262

260263
// =================================================================================================
261-
// Creating Kabanero Collections
264+
// Creating Collections
262265
// =================================================================================================
263266

264-
Creating Kabanero Collections
267+
Creating Collections
265268

266-
Although it is possible to create a new Kabanero Collection for your organisation, we're not going to do this as part of this guide.
269+
Although it is possible to create a new Collection for your organisation, we're not going to do this as part of this guide.
267270
However, the following steps outline the necessary tasks:
268271

269272
- Determine which collection category you want for your collection. For example, **incubator**.
@@ -284,46 +287,45 @@ images:
284287

285288
Where:
286289

287-
- `default-image:` specifies the Docker image to use for this collection.
290+
- `default-image:` specifies the container image to use for this collection.
288291
- `default-pipeline:` specifies which pipeline to use.
289-
- `images:` provides information about the Docker images used for this collection.
290-
- `- id:` specifies the Docker image reference information. Multiple `- id:` values can be specified, each with a unique
291-
Docker image, but only one can be used by the collection. The name of the Docker image you want to use must be specified in `default-image:`.
292-
- `$IMAGE_REGISTRY_ORG` defines the name of the image registry to use. The default is `kabanero`, which indicates the Docker hub
293-
organisation of `kabanero` where the Docker images are stored.
294-
- `<version>` is the version of your Docker image.
295-
296-
New Kabanero Collections must be built before they can be tested and released for developers to use. This task
292+
- `images:` provides information about the container images used for this collection.
293+
- `- id:` specifies the container image reference information. Multiple `- id:` values can be specified, each with a unique
294+
container image, but only one can be used by the collection. The name of the container image you want to use must be specified in `default-image:`.
295+
- `$IMAGE_REGISTRY_ORG` defines the name of the image registry to use. The default is `kabanero`, which indicates the Registry
296+
organisation of `kabanero` where the container images are stored.
297+
- `<version>` is the version of your container image.
298+
299+
New Collections must be built before they can be tested and released for developers to use. This task
297300
is covered in a later section of the guide.
298301

299302
// =================================================================================================
300303
// Deleting Kabanero Collections
301304
// =================================================================================================
302305

303-
== Deleting Kabanero Collections
306+
== Deleting KCollections
304307

305-
If there are Kabanero Collections that you never need, you can delete them. Simply delete the directory that contains the collection
308+
If there are Collections that you never need, you can delete them. Simply delete the directory that contains the collection
306309
before you build. As an alternative, you can set environment variables to exclude collections from the build
307310
process, which is covered later in the build section.
308311

309312
== Setting up a local build environment
310313

311-
In addition to the tools that are defined in the **pre-requisites** section of this guide, to correctly build a
312-
Kabanero Collection, set the following environment variables by running `export <ENVIRONMENT_VARIABLE=option>` on the command line:
314+
In addition to the tools that are defined in the **pre-requisites** section of this guide, to correctly build a Collection, set the following environment variables by running `export <ENVIRONMENT_VARIABLE=option>` on the command line:
313315

314316
`IMAGE_REGISTRY_ORG=kabanero`::
315317
Defines the organization for images
316318
`CODEWIND_INDEX=false`::
317319
Defines whether to build the Codewind index file for application development in VS Code, Eclipse, or Eclipse Che. If you
318320
want to build and test a collection for use with Codewind in an IDE, change this value to `true`.
319321

320-
You are now ready to build a Kabanero Collection.
322+
You are now ready to build a Collection.
321323

322324
// =================================================================================================
323-
// Building Kabanero Collections
325+
// Building Collections
324326
// =================================================================================================
325327

326-
== Building Kabanero Collections
328+
== Building Collections
327329

328330
To build all the **incubator** collections, run the following command from the root directory
329331
of your local Kabanero Collections repository:
@@ -333,7 +335,7 @@ of your local Kabanero Collections repository:
333335
```
334336

335337
The build processes the files for **incubator** collections, testing the format of the files, and finally building
336-
the development Docker images. When the build completes, you can find the images in your local registry by running the
338+
the development container images. When the build completes, you can find the images in your local registry by running the
337339
`docker images` command.
338340

339341
Other collection assets can be found in the `$PWD/ci/assets/` directory.
@@ -351,10 +353,10 @@ Defines which collections to exclude from the build. For example, `export EXCLUD
351353

352354

353355
// =================================================================================================
354-
// Testing Kabanero Collections
356+
// Testing KCollections
355357
// =================================================================================================
356358

357-
== Testing a Kabanero Collection locally
359+
== Testing a Collection locally
358360

359361
First, make sure that your local Kabanero index is correctly added to the Appsody repository list by running `appsody repo list`.
360362
The output is similar to the following example:
@@ -373,7 +375,7 @@ appsody repo set-default kabanero-index-local
373375

374376
You can now test your updated collection.
375377

376-
To test the collections using local docker images, rather than pulling them from docker hub, set the following environment variable:
378+
To test the collections using local container images, rather than pulling them from docker hub, set the following environment variable:
377379

378380
```
379381
export APPSODY_PULL_POLICY=IFNOTPRESENT
@@ -390,7 +392,7 @@ appsody init java-microprofile
390392
The project is created in the `java-microprofile` directory with a sample starter application. To start the development
391393
environment, type `appsody run`.
392394

393-
The Appsody CLI starts the development Docker container, builds all the necessary stack components, and
395+
The Appsody CLI starts the development container, builds all the necessary stack components, and
394396
runs the starter microservice application. When the process completes, the following message is shown:
395397

396398
[source,bash]
@@ -415,12 +417,12 @@ Full testing for your collections would not be complete without testing your pip
415417

416418

417419
// =================================================================================================
418-
// Releasing Kabanero Collections
420+
// Releasing Collections
419421
// =================================================================================================
420422

421-
== Releasing Kabanero Collections
423+
== Releasing Collections
422424

423-
When you are happy with the changes to your Kabanero Collection, push the changes back to your GIT repository:
425+
When you are happy with the changes to your Collection, push the changes back to your GIT repository:
424426

425427
```
426428
git commit -a -m "Test Kabanero Collection created"
@@ -443,7 +445,7 @@ Again, you can set up Travis to automatically trigger a build that generates a G
443445
image repository for your organisation. If you want to learn how to manually create a GIT release from a local build, see
444446
https://github.com/kabanero-io/collections/blob/master/create-release.md[Create GIT release manually].
445447

446-
Now that you've built your customized Kabanero Collection Hub, remember to do the following tasks:
448+
Now that you've built your local Collection Hub and customized your Collections, remember to do the following tasks:
447449

448-
. Publish the release URL to your developers so that they can set up Appsody CLI or Codewind to point at the new Collection Hub.
449-
. Activate the collections in the target Kabanero instance so that the Tekton pipelines can be installed in that environment.
450+
. Publish the release URL to your developers so that they can set up Appsody CLI or Eclipse Codewind IDE Extensions to point at the new Collection Hub.
451+
. Activate the Collections in the target Kabanero instance so that the Tekton pipelines can be installed in that environment.

0 commit comments

Comments
 (0)