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

next: new release on 2020-06-02 (32.20200601.1.1) #109

Closed
32 of 33 tasks
lucab opened this issue May 19, 2020 · 17 comments
Closed
32 of 33 tasks

next: new release on 2020-06-02 (32.20200601.1.1) #109

lucab opened this issue May 19, 2020 · 17 comments
Assignees

Comments

@lucab
Copy link
Contributor

lucab commented May 19, 2020

First, verify that you meet all the prerequisites

Name this issue next: new release on YYYY-MM-DD with today's date. Once the pipeline spits out the new version ID, you can append it to the title e.g. (31.20191117.2.0).

Pre-release

Promote next-devel changes to next

From the checkout for fedora-coreos-config (replace upstream below with
whichever remote name tracks coreos/):

  • git fetch upstream
  • git checkout next
  • git reset --hard upstream/next
  • /path/to/fedora-coreos-releng-automation/scripts/promote-config.sh next-devel
  • Sanity check promotion with git show
  • Open PR against the next branch on https://github.com/coreos/fedora-coreos-config
  • Post a link to the PR as a comment to this issue
  • Ideally have at least one other person check it and approve
  • Once CI has passed, merge it

Build

  • Start a pipeline build (select next, leave all other defaults)
  • Post a link to the job as a comment to this issue
  • Wait for the job to finish

Sanity-check the build

Using the the build browser for the next stream:

  • Verify that the parent commit and version match the previous next release (in the future, we'll want to integrate this check in the release job)
  • Check kola AWS run to make sure it didn't fail

⚠️ Release ⚠️

IMPORTANT: this is the point of no return here. Once the OSTree commit is
imported into the unified repo, any machine that manually runs rpm-ostree upgrade will have the new update.

Run the release job

  • Run the release job, filling in for parameters next and the new version ID
  • Post a link to the job as a comment to this issue
  • Wait for job to finish
  • Verify that the OSTree commit and its signature are present and valid by booting a VM at the previous release (e.g. cosa run -d /path/to/previous.qcow2) and verifying that rpm-ostree upgrade works and rpm-ostree status shows a valid signature.

At this point, Cincinnati will see the new release on its next refresh and create a corresponding node in the graph without edges pointing to it yet.

Refresh metadata (stream and updates)

From a checkout of this repo:

  • Update stream metadata, by running:
fedora-coreos-stream-generator -releases=https://fcos-builds.s3.amazonaws.com/prod/streams/next/releases.json  -output-file=streams/next.json -pretty-print
  • Update the updates metadata, editing updates/next.json:
    • Find the last-known-good release (whose rollout has a start_percentage of 1.0) and set its version to the most recent completed rollout
    • Delete releases with completed rollouts
    • Add a new rollout:
      • Set version field to the new version
      • Set start_epoch field to a future timestamp for the rollout start (e.g. date -d '2019/09/10 14:30UTC' +%s)
      • Set start_percentage field to 0.0
      • Set duration_minutes field to a reasonable rollout window (e.g. 2880 for 48h)
    • Update the last-modified field to current time (e.g. date -u +%Y-%m-%dT%H:%M:%SZ)

A reviewer can validate the start_epoch time by running date -u -d @<EPOCH>. An example of encoding and decoding in one step: date -d '2019/09/10 14:30UTC' +%s | xargs -I{} date -u -d @{}.

  • Commit the changes and open a PR against the repo.
  • Post a link to the PR as a comment to this issue
  • Wait for the PR to be approved.
  • Once approved, merge it and push the content to S3:
aws s3 sync --acl public-read --cache-control 'max-age=60' --exclude '*' --include 'streams/*' --include 'updates/*' . s3://fcos-builds
  • Verify the new version shows up on the download page
  • Verify the incoming edges are showing up in the update graph:
curl -H 'Accept: application/json' 'https://updates.coreos.fedoraproject.org/v1/graph?basearch=x86_64&stream=next&rollout_wariness=0'

NOTE: In the future, most of these steps will be automated and a syncer will push the updated metadata to S3.

Open an issue for the next release

  • Open an issue in this repo with the approximate date in the title of the next release in this stream.
    • Add the jira label to the ticket
@dustymabe dustymabe changed the title next: new release next: new release on 2020-06-02 May 19, 2020
@dustymabe dustymabe self-assigned this May 19, 2020
@dustymabe dustymabe added the jira label May 19, 2020
@dustymabe
Copy link
Member

coreos/fedora-coreos-config#446

Note that we are promoting from testing-devel and not next-devel because next and testing are just shadows of each other for now since we are promoting to f32.

@dustymabe
Copy link
Member

found an issue (coreos/fedora-coreos-config#447) so opened a new sync PR: coreos/fedora-coreos-config#449

@dustymabe
Copy link
Member

PR to stop previous rollouts: #110

@dustymabe dustymabe changed the title next: new release on 2020-06-02 next: new release on 2020-06-02 (32.20200601.1.0) Jun 2, 2020
@dustymabe dustymabe changed the title next: new release on 2020-06-02 (32.20200601.1.0) next: new release on 2020-06-02 (32.20200601.1.1) Jun 3, 2020
@dustymabe
Copy link
Member

The Kola AWS run did fail. This is currently a known issue documented in coreos/fedora-coreos-tracker#507

We will continue on to ship. As decided over in #108

@dustymabe
Copy link
Member

merged #110 and verified there are no edges in the update graph.

@dustymabe
Copy link
Member

[core@localhost ~]$ sudo rpm-ostree status 
State: idle
Deployments:
● ostree://fedora:fedora/x86_64/coreos/next
                   Version: 32.20200601.1.0 (2020-06-02T20:19:31Z)
                    Commit: 8cffe35be831fa2601d315002cb39fb22509a4e7d3db10e61f880523f69b3bf6
              GPGSignature: Valid signature by 97A1AE57C3A2372CCA3A4ABA6C13026D12C944D0

  ostree://fedora:fedora/x86_64/coreos/next
                   Version: 32.20200517.1.0 (2020-05-19T09:23:58Z)
                    Commit: 7c23c4735fb3c541586f0a4d3ca956ef93ef7d76f00a19bccf51460bafa7ee97
              GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4

@dustymabe
Copy link
Member

#111

@dustymabe
Copy link
Member

https://jenkins-fedora-coreos.apps.ci.centos.org/job/fedora-coreos/job/fedora-coreos-fedora-coreos-pipeline-release/543/

I accidentally ran this release job against the 32.20200601.1.0 build.. Will fix soon.

dustymabe added a commit to dustymabe/fedora-coreos-streams that referenced this issue Jun 3, 2020
We accidentally ran the release job against the wrong release for
next so let's roll this back briefly while we fix things up.
coreos#109 (comment)
dustymabe added a commit that referenced this issue Jun 3, 2020
We accidentally ran the release job against the wrong release for
next so let's roll this back briefly while we fix things up.
#109 (comment)
@dustymabe
Copy link
Member

ok I reset the ostree repo to point back to the old commit from the previous release (the ostree importer has some sanity checking code that would raise an error) and i'm running the release pipeline job against the correct version 32.20200601.1.1 now:

https://jenkins-fedora-coreos.apps.ci.centos.org/job/fedora-coreos/job/fedora-coreos-fedora-coreos-pipeline-release/544/

@dustymabe
Copy link
Member

[core@localhost ~]$ sudo rpm-ostree status 
State: idle
Deployments:
● ostree://fedora:fedora/x86_64/coreos/next
                   Version: 32.20200601.1.1 (2020-06-03T02:26:26Z)
                    Commit: 08040bebbab87a3343a281f94bb68010df618eb6ce6ac3d4230d2595959b5da1
              GPGSignature: Valid signature by 97A1AE57C3A2372CCA3A4ABA6C13026D12C944D0

  ostree://fedora:fedora/x86_64/coreos/next
                   Version: 32.20200517.1.0 (2020-05-19T09:23:58Z)
                    Commit: 7c23c4735fb3c541586f0a4d3ca956ef93ef7d76f00a19bccf51460bafa7ee97
              GPGSignature: Valid signature by 7D22D5867F2A4236474BF7B850CB390B3C3359C4

Now with 100% more correct version!

@dustymabe
Copy link
Member

#114

@lucab
Copy link
Contributor Author

lucab commented Jun 4, 2020

Graph looks good this time.

@dustymabe
Copy link
Member

The rollout started 30 minutes ago. It's the same content as the testing stream so I don't anticipate any issues.

@dustymabe
Copy link
Member

issue for next time: #118

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants