Skip to content
This repository was archived by the owner on Jun 14, 2019. It is now read-only.

Conversation

@smarterclayton
Copy link
Contributor

Take the existing cluster-launch-installer-e2e template and hide it inside
a e2e step definition. Support an upgrade flag that alters the parameters
passed to the template such that the installer image from the input (either
release tag or an actual payload) is used to install, then launch the
upgrade tests from the job definition.

This sets the path for moving this functionality into the operator.

The user still has to upload the right cluster profile secret, but now we
print an error if we don't find it (for stronger typing). Regular users can
launch an upgrade from a single command.

Builds off #287

@openshift-ci-robot openshift-ci-robot added approved Indicates a PR has been approved by an approver from all required OWNERS files. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Mar 5, 2019
Copy link
Contributor

@stevekuznetsov stevekuznetsov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

wowza

2018/10/08 05:29:15 Building machine-config-operator
2018/10/08 05:29:15 Building machine-config-controller
2018/10/08 05:31:47 Build machine-config-server succeeded after 2m28s
2018/10/08 05:31:47 Tagging machine-config-server into stable
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We removed this months ago.

}

if len(o.secrets) > 0 {
log.Printf("Populating secrets for test")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not actually useful, was just noise. We already print when we populate a secret.

step := steps.TemplateExecutionStep(template, params, podClient, templateClient, artifactDir, jobSpec)
subTests, ok := step.(nestedSubTests)
if !ok {
panic(fmt.Sprintf("unexpected %T", step))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this sounds fun

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could make the step return an error. No reason we can't.

}

func (s *e2eTestStep) Inputs(ctx context.Context, dry bool) (api.InputDefinition, error) {
return nil, nil
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

???

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The e2e test step doesn't load any unique input from the graph that would alter the hash used to guarantee unique namespaces.

}

func (s *e2eTestStep) Done() (bool, error) {
return false, nil
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

???

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done isn't used, suggest we remove it.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought we used it to trigger children?

}

addArtifactsToTemplate(s.template)
if len(s.artifactDir) > 0 {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this have failed a test somewhere?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll add a test, but it only occurs when you don't ask for artifacts.

@stevekuznetsov
Copy link
Contributor

This doesn't seem finished

@smarterclayton
Copy link
Contributor Author

What isn't finished?

@smarterclayton
Copy link
Contributor Author

I'm iterating on this and cleaning up issues related to dependencies.

/hold

I may create a test ci-operator image and set up test prow jobs running against it to let them soak.

@openshift-ci-robot openshift-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Mar 7, 2019
@openshift-ci-robot openshift-ci-robot added size/XL Denotes a PR that changes 500-999 lines, ignoring generated files. and removed size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Mar 7, 2019
Print the full graph, with each line being an edge between nodes with
a space between them. Works with the `digraph` go utility to let you
debug ordering problems between graph nodes instead of inventing our
own tools.
@smarterclayton smarterclayton force-pushed the upgrade_initial branch 3 times, most recently from 38daae2 to 3dbf16e Compare March 7, 2019 18:27
@smarterclayton
Copy link
Contributor Author

Ok, removing hold. Have tested in a normal e2e-aws job and an e2e-aws-upgrade job on prow (using slightly different config settings to verify). The most significant issue was not using the parameters map to control access to env var checking - we were actually doing it wrong in one place and that caused other jobs to flake.

Added --print-graph to make it easier to spot graph failures - that output can be used with digraph.

@smarterclayton
Copy link
Contributor Author

/hold cancel

@openshift-ci-robot openshift-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Mar 7, 2019
Take the existing cluster-launch-installer-e2e template and hide it
inside a e2e step definition. Support an `upgrade` flag that alters
the parameters passed to the template such that the installer image
from the input (either release tag or an actual payload) is used to
install, then launch the upgrade tests from the job definition.

This sets the path for moving this functionality into the operator.

The user still has to upload the right cluster profile secret, but
now we print an error if we don't find it (for stronger typing).
Regular users can launch an upgrade from a single command.

Remove the previous behavior of not returning parameter links when
the env var is set - the logic in defaults.go is sufficient to
prune steps that are fully specified. The release command now
cannot be overriden by env (it imports when env is specified) and
must always be run.
@stevekuznetsov
Copy link
Contributor

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Mar 9, 2019
@openshift-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: smarterclayton, stevekuznetsov

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:
  • OWNERS [smarterclayton,stevekuznetsov]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-merge-robot openshift-merge-robot merged commit a5a78f2 into openshift:master Mar 9, 2019
smarterclayton added a commit to smarterclayton/release that referenced this pull request Mar 10, 2019
* Update release periodics to use the new parameters in ci-operator.
* Add the upgrade release periodic for use with ci-operator, mark optional
* Fix some misplaced roles
* Add a promotion periodic for machine-os-content from rhcos/maipo:latest to ocp/4.0

Requires changes to ci-operator-prowgen and openshift/ci-operator#288
first but shows what the jobs will look like.
wking added a commit to wking/ci-operator that referenced this pull request May 8, 2019
This came in with ad5a4e3 (Implement a Golang cluster installer job
that hides the template, 2019-03-04, openshift#288), but the lack of 'oc adm
release new' logs is making it hard to debug broken ImageStream
retrieval [1].  I don't understand the bulk of that commit, so
hopefully this narrow pivot doesn't break anything...

[1]: https://bugzilla.redhat.com/show_bug.cgi?id=1707928#c3
wking added a commit to wking/ci-operator that referenced this pull request May 8, 2019
This came in with ad5a4e3 (Implement a Golang cluster installer job
that hides the template, 2019-03-04, openshift#288), but the lack of 'oc adm
release new' logs is making it hard to debug broken ImageStream
retrieval [1].  I don't understand the bulk of that commit, so
hopefully this narrow pivot doesn't break anything...

[1]: https://bugzilla.redhat.com/show_bug.cgi?id=1707928#c3
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged. size/XL Denotes a PR that changes 500-999 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants