mirror of
https://github.com/ysoftdevs/gardener-extension-shoot-fleet-agent.git
synced 2026-08-29 06:57:25 +02:00
Initial v1.0.0 commit
This commit is contained in:
Executable
+86
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import dataclasses
|
||||
import os
|
||||
import yaml
|
||||
|
||||
import ci.util
|
||||
import gci.componentmodel
|
||||
import util
|
||||
|
||||
|
||||
component_descriptor_base_path = os.path.abspath(util.check_env('BASE_DEFINITION_PATH'))
|
||||
component_descriptor_path = os.path.abspath(util.check_env('COMPONENT_DESCRIPTOR_PATH'))
|
||||
repo_path = os.path.abspath(util.check_env('MAIN_REPO_DIR'))
|
||||
|
||||
|
||||
def parse_component_descriptor():
|
||||
component_descriptor_v2 = gci.componentmodel.ComponentDescriptor.from_dict(
|
||||
ci.util.parse_yaml_file(component_descriptor_base_path)
|
||||
)
|
||||
|
||||
return component_descriptor_v2
|
||||
|
||||
|
||||
def add_image_dependency(component, image_name, image_reference, image_version):
|
||||
resource_access = gci.componentmodel.OciAccess(
|
||||
type=gci.componentmodel.AccessType.OCI_REGISTRY,
|
||||
imageReference=image_reference,
|
||||
)
|
||||
component.resources.append(
|
||||
gci.componentmodel.Resource(
|
||||
name=image_name,
|
||||
version=image_version,
|
||||
type=gci.componentmodel.ResourceType.OCI_IMAGE,
|
||||
access=resource_access,
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
def add_component_dependency(component, dependency_name, dependency_version):
|
||||
component.componentReferences.append(
|
||||
gci.componentmodel.ComponentReference(
|
||||
name=dependency_name,
|
||||
componentName=dependency_name,
|
||||
version=dependency_version,
|
||||
labels=[],
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
component_descriptor = parse_component_descriptor()
|
||||
own_component = component_descriptor.component
|
||||
|
||||
images_list_path = os.path.join(repo_path, 'charts', 'images.yaml')
|
||||
|
||||
with open(images_list_path, 'r') as f:
|
||||
images_list_contents = yaml.safe_load(f)
|
||||
|
||||
for image in images_list_contents.get('images', []):
|
||||
# use same heuristics as before: if the image's repository starts with
|
||||
# 'eu.gcr.io/gardener-project' assume it's one of our components ...
|
||||
# NOTE: Usually that is 'eu.gcr.io/gardener-project/gardener', but for this
|
||||
# component (or rather: its' dependencies) the image repository is
|
||||
# different.
|
||||
if image['repository'].startswith('eu.gcr.io/gardener-project'):
|
||||
add_component_dependency(
|
||||
component=own_component,
|
||||
dependency_name=image['sourceRepository'],
|
||||
dependency_version=image['tag'],
|
||||
)
|
||||
# ... otherwise assume it's an image dependency
|
||||
else:
|
||||
add_image_dependency(
|
||||
component=own_component,
|
||||
image_name=image['name'],
|
||||
image_reference=image['repository'],
|
||||
image_version=image['tag'],
|
||||
)
|
||||
|
||||
# write generated component descriptor back out
|
||||
with open(component_descriptor_path, 'w') as f:
|
||||
yaml.dump(
|
||||
data=dataclasses.asdict(component_descriptor),
|
||||
Dumper=gci.componentmodel.EnumValueYamlDumper,
|
||||
stream=f,
|
||||
)
|
||||
@@ -0,0 +1,46 @@
|
||||
gardener-extension-shoot-fleet-agent:
|
||||
template: 'default'
|
||||
base_definition:
|
||||
repo: ~
|
||||
traits:
|
||||
version:
|
||||
preprocess: 'inject-commit-hash'
|
||||
publish:
|
||||
dockerimages:
|
||||
gardener-extension-shoot-fleet-agent:
|
||||
registry: 'gcr-readwrite'
|
||||
image: 'eu.gcr.io/gardener-project/gardener/extensions/shoot-fleet-agent'
|
||||
dockerfile: 'Dockerfile'
|
||||
target: gardener-extension-shoot-fleet-agent
|
||||
jobs:
|
||||
head-update:
|
||||
traits:
|
||||
component_descriptor: ~
|
||||
draft_release: ~
|
||||
options:
|
||||
public_build_logs: true
|
||||
pull-request:
|
||||
traits:
|
||||
pull-request: ~
|
||||
component_descriptor: ~
|
||||
options:
|
||||
public_build_logs: true
|
||||
release:
|
||||
traits:
|
||||
version:
|
||||
preprocess: 'finalize'
|
||||
release:
|
||||
nextversion: 'bump_minor'
|
||||
next_version_callback: '.ci/prepare_release'
|
||||
release_callback: '.ci/prepare_release'
|
||||
slack:
|
||||
default_channel: 'internal_scp_workspace'
|
||||
channel_cfgs:
|
||||
internal_scp_workspace:
|
||||
channel_name: 'C9CEBQPGE' #sap-tech-gardener
|
||||
slack_cfg_name: 'scp_workspace'
|
||||
component_descriptor: ~
|
||||
publish:
|
||||
dockerimages:
|
||||
gardener-extension-shoot-fleet-agent:
|
||||
tag_as_latest: true
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
"$(dirname $0)"/../vendor/github.com/gardener/gardener/hack/.ci/prepare_release "$(dirname $0)"/.. github.com/gardener gardener-extension-shoot-fleet-agent
|
||||
Executable
+3
@@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
"$(dirname $0)"/../vendor/github.com/gardener/gardener/hack/.ci/set_dependency_version
|
||||
Executable
+17
@@ -0,0 +1,17 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
cd "$(dirname $0)/.."
|
||||
|
||||
git config --global user.email "gardener@sap.com"
|
||||
git config --global user.name "Gardener CI/CD"
|
||||
|
||||
# Required due to https://github.com/kubernetes/kubernetes/issues/86753 - can be removed once the issue is fixed.
|
||||
mkdir -p /go/src/github.com/gardener/gardener-extension-shoot-fleet-agent
|
||||
cp -r . /go/src/github.com/gardener/gardener-extension-shoot-fleet-agent
|
||||
cd /go/src/github.com/gardener/gardener-extension-shoot-fleet-agent
|
||||
|
||||
make verify-extended
|
||||
Reference in New Issue
Block a user