You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Moved the appstudio API custom resources under the "Custom Resources"
heading, added links to the API documentation for each resource, and
updated the API dcos with npm.
#533
Copy file name to clipboardExpand all lines: modules/ROOT/pages/getting-started.adoc
+32-40Lines changed: 32 additions & 40 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,31 +40,6 @@ This initiative contains an link:https://github.com/opencontainers/image-spec[im
40
40
41
41
Konflux pushes artifacts that you build in your tenant namespace to an OCI registry along with their supporting metadata (including xref:metadata:index.adoc[SLSA provenance attestations and SBOMs]).
42
42
43
-
=== Custom Resources
44
-
In Kubernetes, a link:https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/[Custom Resource (CR)] is an extension of the Kubernetes API.
45
-
46
-
All Konflux APIs are Kubernetes CRs.
47
-
If you're familiar with common Kubernetes resources such as Pods and Deployments, you'll find that Konflux resources appear on the cluster in the same way:
48
-
49
-
- Applications
50
-
- Components
51
-
- Snapshots
52
-
- PipelineRuns
53
-
54
-
This setup enables commonplace Kubernetes client tools, such as link:https://kubernetes.io/docs/reference/kubectl/[kubectl], to understand and interact with {ProductName} APIs.
55
-
56
-
=== Component
57
-
A *Component CR* describes the properties of an OCI artifact.
58
-
These properties include the following:
59
-
60
-
- The Git repository from which the artifact originates.
61
-
- The latest built commit.
62
-
- Initial build configuration parameters.
63
-
- Relationships to other components.
64
-
65
-
The CR also contains a reference to the single application that owns it.
66
-
Component names are unique in a namespace, even when you use the components in different applications.
67
-
68
43
=== Build Pipeline
69
44
When you create a component in {ProductName}, the system pushes a build pipeline to the Git repository in the `.tekton` directory and installs a webhook.
70
45
@@ -88,49 +63,66 @@ The test process includes Tekton Tasks such as:
88
63
{ProductName} inherits the pattern of defining Tekton build pipelines in Git from its use of https://pipelinesascode.com/[Pipelines as Code (PaC)].
89
64
PaC enables you to use a Tekton PipelineDefinition within your Git repository, and for the system to trigger that pipeline whenever a team member submits a new commit or pull request to the repository.
90
65
91
-
=== Application
92
-
An *Application CR* owns multiple components.
93
-
It helps to logically group components in the UI.
66
+
=== Custom Resources
67
+
In Kubernetes, a link:https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/[Custom Resource (CR)] is an extension of the Kubernetes API.
68
+
69
+
All Konflux APIs are Kubernetes CRs. This setup enables commonplace Kubernetes client tools, such as link:https://kubernetes.io/docs/reference/kubectl/[kubectl], to understand and interact with {ProductName} APIs. If you're familiar with common Kubernetes resources such as Pods and Deployments, you'll find that Konflux resources appear on the cluster in the same way:
70
+
71
+
==== Component
72
+
A xref:reference:kube-apis/application-api.adoc#k8s-api-github-com-konflux-ci-application-api-api-v1alpha1-component[Component CR] describes the properties of an OCI artifact.
73
+
These properties include the following:
74
+
75
+
- The Git repository from which the artifact originates.
76
+
- The latest built commit.
77
+
- Initial build configuration parameters.
78
+
- Relationships to other components.
79
+
80
+
The CR also contains a reference to the single application that owns it.
81
+
Component names are unique in a namespace, even when you use the components in different applications.
82
+
83
+
==== Application
84
+
An xref:reference:kube-apis/application-api.adoc#k8s-api-github-com-konflux-ci-application-api-api-v1alpha1-application[Application CR] owns multiple components. It helps to logically group components in the UI.
94
85
95
86
When a new component's build pipeline is complete, the Integration Service, which contains the latest Git and OCI references, creates a new snapshot from each of the Component CRs, as well as the just-produced component artifact.
96
87
The IntegrationTestScenarios use this output to run.
97
88
98
-
=== Snapshot
99
-
A *Snapshot CR* is an immutable set of component references.
89
+
==== Snapshot
90
+
A xref:reference:kube-apis/application-api.adoc#k8s-api-github-com-konflux-ci-application-api-api-v1alpha1-snapshot[Snapshot CR] is an immutable set of component references.
100
91
It can be created from push or pull request events.
101
92
A snapshot defines a set of components, which are either tested or released together.
102
93
103
94
Over time, as you produce more builds, your tenant namespace will contain many snapshots.
104
95
Understand that at any point in time, a given snapshot _might not necessarily_ represent the latest built artifacts for all components in your tenant namespace.
105
96
106
-
=== IntegrationTestScenario
107
-
An *IntegrationTestScenario (ITS) CR* is a Tekton Pipeline that defines a test to run against an entire snapshot.
97
+
==== IntegrationTestScenario
98
+
An xref:reference:kube-apis/integration-service.adoc#k8s-api-github-com-konflux-ci-integration-service-api-v1alpha1-integrationtestscenario[IntegrationTestScenario (ITS) CR] is a Tekton Pipeline that defines a test to run against an entire snapshot.
108
99
The Integration Service runs all configured ITSs for the snapshot's application.
109
100
The system also creates a default ITS for every new application to enable EnterpriseContractPolicy checks on all components.
110
101
111
102
You can configure each ITS as optional for release. All non-optional tests must pass before the new component build is "promoted" to update the references on the component CR.
112
103
113
-
=== EnterpriseContractPolicy
104
+
==== EnterpriseContractPolicy
114
105
Building in {ProductName} follows a "build once, release multiple times" mentality, where each release can have separate requirements on the builds before allowing the action.
115
-
You codify these build requirements in an EnterpriseContractPolicy (ECP).
106
+
You codify these build requirements in an xref:reference:kube-apis/enterprise-contract.adoc#k8s-api-github-com-conforma-crds-api-v1alpha1-enterprisecontractpolicy[EnterpriseContractPolicy CR].
116
107
117
108
When {ProductName} evaluates an ECP against a snapshot, it returns a single result based on the highest violation.
118
109
For example, if all components pass the policy requirements, the policy evaluation is true.
119
110
If a single component in a snapshot fails the policy, however, the overall result is a failure even if all of the rest have clean passes.
120
111
121
-
=== ReleasePlan
122
-
A *ReleasePlan (RP) CR* maps an Application you want to release with a release action.
112
+
==== ReleasePlan
113
+
A xref:reference:kube-apis/release-service.adoc#k8s-api-github-com-konflux-ci-release-service-api-v1alpha1-releaseplan[ReleasePlan (RP) CR] maps an Application you want to release to a release action.
123
114
It defines the process to release future Snapshots of your Application in the managed namespace.
124
115
It also determines whether automatic releases are enabled and whether you want to provide additional data to each future release pipeline.
125
116
126
-
=== ReleasePlanAdmission
127
-
You also need to create a *ReleasePlanAdmission (RPA) CR* in the managed namespace.
117
+
==== ReleasePlanAdmission
118
+
You also need to create a xref:reference:kube-apis/release-service.adoc#k8s-api-github-com-konflux-ci-release-service-api-v1alpha1-releaseplanadmission[ReleasePlanAdmission (RPA) CR] in the managed namespace.
128
119
It defines the specific pipeline to run and a given ECP, which must pass for each snapshot before that pipeline can proceed.
129
120
It also establishes essential details about the delivery of your content that we want to exercise some control over.
121
+
130
122
For example, if your release pipeline uses an link:https://Github.com/konflux-ci/release-service-catalog/blob/production/tasks/managed/apply-mapping/apply-mapping.yaml[apply-mapping] task, the `.spec.data.mapping.components` section of this resource will define which destination repositories to push your content to.
131
123
132
-
=== Release
133
-
Every time you want to release newly built artifacts, you will create a Release CR in *your* tenant namespace.
124
+
==== Release
125
+
Every time you want to release newly built artifacts, you will create a xref:reference:kube-apis/release-service.adoc#k8s-api-github-com-konflux-ci-release-service-api-v1alpha1-release[Release CR] in *your* tenant namespace.
134
126
The Release CR represents your intent to release some content to customers.
135
127
It is an active resource that, when present, will initiate the push of content.
NOTE: You can create additional components and applications with the same file locally by adding additional custom resource configurations.
98
+
NOTE: You can create additional components and applications with the same file locally by adding additional custom resource configurations.
99
99
100
-
. Now, you can trigger your application’s first build pipeline. In the git repository for your application, using your preferred text editor, open a pull request against the `/.tekton/pull-request.yaml` file.
100
+
. Now, you can trigger your application’s first build pipeline. In the git repository for your application, using your preferred text editor, open a pull request against the `/.tekton/pull-request.yaml` file.
101
101
.. Specifically, replace any existing value for the `git-url` field with the git URL for your application’s repository. (This is the URL you would use to clone the repository locally; it ends with `.git`.)
0 commit comments