Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: kaniko-docker-build-step-external
namespace: kagenti-system
labels:
kagenti.operator.dev/tekton: step
data:
task-spec.yaml: |
params:
- name: DOCKERFILE
type: string
description: Path to the Dockerfile relative to context
default: "Dockerfile"
- name: image
type: string
description: Destination image reference
- name: SKIP_TLS_VERIFY
type: string
description: Skip TLS verification when pushing to registry
default: "false"
- name: subfolder-path
type: string
description: Path to the subfolder to use as build context
- name: registry-secret
type: string
description: Name of the secret containing registry credentials
default: "quay-registry-secret"
steps:
- name: docker-build
image: gcr.io/kaniko-project/executor:v1.9.1
args:
- --dockerfile=$(params.DOCKERFILE)
- --context=$(workspaces.source.path)/$(params.subfolder-path)
- --destination=$(params.image)
- --skip-tls-verify=$(params.SKIP_TLS_VERIFY)
- --verbosity=trace
env:
- name: DOCKER_CONFIG
value: /kaniko/.docker
volumeMounts:
- name: docker-config
mountPath: /kaniko/.docker
readOnly: true
volumes:
- name: docker-config
secret:
secretName: $(params.registry-secret)
items:
- key: .dockerconfigjson
path: config.json
workspaces:
- name: source
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: kaniko-docker-build-step-local
namespace: kagenti-system
labels:
kagenti.operator.dev/tekton: step
data:
task-spec.yaml: |
params:
- name: DOCKERFILE
type: string
description: Path to the Dockerfile relative to context
default: "Dockerfile"
- name: image
type: string
description: Destination image reference
- name: SKIP_TLS_VERIFY
type: string
description: Skip TLS verification when pushing to registry
default: "false"
- name: subfolder-path
type: string
description: Path to the subfolder to use as build context
steps:
- name: docker-build
image: gcr.io/kaniko-project/executor:v1.9.1
args:
- --dockerfile=$(params.DOCKERFILE)
- --context=$(workspaces.source.path)/$(params.subfolder-path)
- --destination=$(params.image)
- --skip-tls-verify=$(params.SKIP_TLS_VERIFY)
- --verbosity=trace
# No volumeMounts or DOCKER_CONFIG for local registry
# No volumes section for local registry
workspaces:
- name: source
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,16 @@ data:
env:
- name: DOCKER_CONFIG
value: /kaniko/.docker

volumeMounts:
- name: docker-config
mountPath: /kaniko/.docker
readOnly: true
volumes:
- name: registry-credentials
- name: docker-config
secret:
secretName: $(params.registry-secret)
items:
- key: .dockerconfigjson
path: config.json
workspaces:
- name: source
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: pipeline-template-dev-external
namespace: kagenti-system
labels:
app.kubernetes.io/component: pipeline-template
app.kubernetes.io/name: component-operator
component.kagenti.ai/mode: dev-external
data:
template.json: |
{
"name": "Development Pipeline (External Registry)",
"namespace": "kagenti-system",
"description": "Basic pipeline for development builds with external registry authentication",
"requiredParameters": [
"repo-url",
"revision",
"subfolder-path",
"image"
],
"steps": [
{
"name": "github-clone",
"configMap": "github-clone-step",
"enabled": true,
"description": "Clone source code from GitHub repository",
"requiredParameters": ["repo-url"]
},
{
"name": "folder-verification",
"configMap": "check-subfolder-step",
"enabled": true,
"description": "Verify that the specified subfolder exists",
"requiredParameters": ["subfolder-path"]
},
{
"name": "kaniko-build",
"configMap": "kaniko-docker-build-step-external",
"enabled": true,
"description": "Build container image using Kaniko with registry authentication",
"requiredParameters": ["image"]
}
],
"globalParameters": [
{
"name": "pipeline-timeout",
"value": "20m",
"description": "Overall pipeline timeout"
}
]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: pipeline-template-dev-local
namespace: kagenti-system
labels:
app.kubernetes.io/component: pipeline-template
app.kubernetes.io/name: component-operator
component.kagenti.ai/mode: dev-local
data:
template.json: |
{
"name": "Development Pipeline (Local Registry)",
"namespace": "kagenti-system",
"description": "Basic pipeline for development builds with local registry",
"requiredParameters": [
"repo-url",
"revision",
"subfolder-path",
"image"
],
"steps": [
{
"name": "github-clone",
"configMap": "github-clone-step",
"enabled": true,
"description": "Clone source code from GitHub repository",
"requiredParameters": ["repo-url"]
},
{
"name": "folder-verification",
"configMap": "check-subfolder-step",
"enabled": true,
"description": "Verify that the specified subfolder exists",
"requiredParameters": ["subfolder-path"]
},
{
"name": "kaniko-build",
"configMap": "kaniko-docker-build-step-local",
"enabled": true,
"description": "Build container image using Kaniko (no registry authentication)",
"requiredParameters": ["image"]
}
],
"globalParameters": [
{
"name": "pipeline-timeout",
"value": "20m",
"description": "Overall pipeline timeout"
}
]
}
2 changes: 1 addition & 1 deletion platform-operator/api/v1alpha1/component_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ type BuildSpec struct {
// Mode specifies which pipeline template to use (dev, preprod, prod)
// This will be used to fetch the pipeline template from ConfigMap
// +optional
// +kubebuilder:validation:Enum=dev;preprod;prod;custom
// +kubebuilder:validation:Enum=dev;dev-local;dev-external;preprod;prod;custom
// +kubebuilder:default=dev
Mode string `json:"mode,omitempty"`
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,8 @@ spec:
This will be used to fetch the pipeline template from ConfigMap
enum:
- dev
- dev-local
- dev-external
- preprod
- prod
- custom
Expand Down Expand Up @@ -801,6 +803,8 @@ spec:
This will be used to fetch the pipeline template from ConfigMap
enum:
- dev
- dev-local
- dev-external
- preprod
- prod
- custom
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@ func (pc *PipelineComposer) createPipelineTasks(steps map[string]*StepDefinition
Params: pc.getTaskParams(stepDefinition.Parameters),
Steps: stepDefinition.TaskSpec.Steps,
Workspaces: stepDefinition.TaskSpec.Workspaces,
Volumes: stepDefinition.TaskSpec.Volumes,
},
},
Workspaces: []tektonv1.WorkspacePipelineTaskBinding{
Expand Down
Loading