Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug 1933665: [release-4.7] Create ImageStream and other resources for samples step by step #8255

Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -498,47 +498,54 @@ export const createDevfileResources = async (
};
}, {} as DevfileSuggestedResources);

return Promise.all([
createOrUpdateImageStream(
formData,
devfileResourceObjects.imageStream,
dryRun,
appResources,
verb,
generatedImageStreamName,
),

createOrUpdateBuildConfig(
formData,
devfileResourceObjects.imageStream,
dryRun,
devfileResourceObjects.buildResource,
verb,
generatedImageStreamName,
),
const imageStreamResponse = await createOrUpdateImageStream(
formData,
devfileResourceObjects.imageStream,
dryRun,
appResources,
verb,
generatedImageStreamName,
);

createWebhookSecret(formData, 'generic', dryRun),
const buildConfigResponse = await createOrUpdateBuildConfig(
formData,
devfileResourceObjects.imageStream,
dryRun,
devfileResourceObjects.buildResource,
verb,
generatedImageStreamName,
);

createOrUpdateDeployment(
formData,
devfileResourceObjects.imageStream,
dryRun,
devfileResourceObjects.deployResource,
verb,
),

k8sCreate(
ServiceModel,
createService(formData, devfileResourceObjects.imageStream, devfileResourceObjects.service),
dryRun ? dryRunOpt : {},
),

k8sCreate(
RouteModel,
createRoute(formData, devfileResourceObjects.imageStream, devfileResourceObjects.route),
dryRun ? dryRunOpt : {},
),
]);
const webhookSecretResponse = await createWebhookSecret(formData, 'generic', dryRun);

const deploymentResponse = await createOrUpdateDeployment(
formData,
devfileResourceObjects.imageStream,
dryRun,
devfileResourceObjects.deployResource,
verb,
);

const serviceModelResponse = await k8sCreate(
ServiceModel,
createService(formData, devfileResourceObjects.imageStream, devfileResourceObjects.service),
dryRun ? dryRunOpt : {},
);

const routeResponse = await k8sCreate(
RouteModel,
createRoute(formData, devfileResourceObjects.imageStream, devfileResourceObjects.route),
dryRun ? dryRunOpt : {},
);

return [
imageStreamResponse,
buildConfigResponse,
webhookSecretResponse,
deploymentResponse,
serviceModelResponse,
routeResponse,
];
};

export const createOrUpdateResources = async (
Expand Down Expand Up @@ -570,7 +577,7 @@ export const createOrUpdateResources = async (

createNewProject && (await createProject(formData.project));

const requests: Promise<K8sResourceKind>[] = [];
const responses: K8sResourceKind[] = [];
let generatedImageStreamName: string = '';
const imageStreamList = appResources?.imageStream?.data;
if (
Expand All @@ -589,23 +596,23 @@ export const createOrUpdateResources = async (
return createDevfileResources(formData, dryRun, appResources, generatedImageStreamName);
}

requests.push(
createOrUpdateImageStream(
formData,
imageStream,
dryRun,
appResources,
generatedImageStreamName ? 'create' : verb,
generatedImageStreamName,
),
const imageStreamResponse = await createOrUpdateImageStream(
formData,
imageStream,
dryRun,
appResources,
generatedImageStreamName ? 'create' : verb,
generatedImageStreamName,
);
responses.push(imageStreamResponse);

if (pipeline.enabled) {
if (!dryRun) {
await managePipelineResources(formData, appResources);
}
} else {
requests.push(
createOrUpdateBuildConfig(
responses.push(
await createOrUpdateBuildConfig(
formData,
imageStream,
dryRun,
Expand All @@ -616,16 +623,17 @@ export const createOrUpdateResources = async (
);
}

verb === 'create' && requests.push(createWebhookSecret(formData, 'generic', dryRun));
if (verb === 'create') {
responses.push(await createWebhookSecret(formData, 'generic', dryRun));
}

const defaultAnnotations = getGitAnnotations(repository, ref);

if (formData.resources === Resources.KnativeService) {
// knative service doesn't have dry run capability so returning the promises.
if (dryRun) {
return Promise.all(requests);
return responses;
}
const [imageStreamResponse] = await Promise.all(requests);
const imageStreamURL = imageStreamResponse.status.dockerImageRepository;

const originalAnnotations = appResources?.editAppResource?.data?.metadata?.annotations || {};
Expand Down Expand Up @@ -656,8 +664,8 @@ export const createOrUpdateResources = async (
}

if (formData.resources === Resources.Kubernetes) {
requests.push(
createOrUpdateDeployment(
responses.push(
await createOrUpdateDeployment(
formData,
imageStream,
dryRun,
Expand All @@ -666,8 +674,8 @@ export const createOrUpdateResources = async (
),
);
} else if (formData.resources === Resources.OpenShift) {
requests.push(
createOrUpdateDeploymentConfig(
responses.push(
await createOrUpdateDeploymentConfig(
formData,
imageStream,
dryRun,
Expand All @@ -680,27 +688,27 @@ export const createOrUpdateResources = async (
if (!_.isEmpty(ports) || buildStrategy === 'Docker' || buildStrategy === 'Source') {
const originalService = _.get(appResources, 'service.data');
const service = createService(formData, imageStream, originalService);
const request =
verb === 'update'
? !_.isEmpty(originalService)
? k8sUpdate(ServiceModel, service)
: null
: k8sCreate(ServiceModel, service, dryRun ? dryRunOpt : {});
requests.push(request);

if (verb === 'create') {
responses.push(await k8sCreate(ServiceModel, service, dryRun ? dryRunOpt : {}));
} else if (verb === 'update' && !_.isEmpty(originalService)) {
responses.push(await k8sUpdate(ServiceModel, service));
}

const originalRoute = _.get(appResources, 'route.data');
const route = createRoute(formData, imageStream, originalRoute);
if (verb === 'update' && disable) {
requests.push(k8sUpdate(RouteModel, route, namespace, name));
responses.push(await k8sUpdate(RouteModel, route, namespace, name));
} else if (canCreateRoute) {
requests.push(k8sCreate(RouteModel, route, dryRun ? dryRunOpt : {}));
responses.push(await k8sCreate(RouteModel, route, dryRun ? dryRunOpt : {}));
}
}

if (webhookTrigger && verb === 'create') {
requests.push(createWebhookSecret(formData, gitType, dryRun));
responses.push(await createWebhookSecret(formData, gitType, dryRun));
}

return Promise.all(requests);
return responses;
};

export const handleRedirect = (
Expand Down