kgyrtkirk commented on code in PR #5331: URL: https://github.com/apache/hive/pull/5331#discussion_r1680809620
########## ci/jenkins/README.md: ########## @@ -0,0 +1,92 @@ +<!-- +{% comment %} +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to you under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +{% endcomment %} +--> +# Hive CI Jenkins + +This directory contains all the necessary resources to build the Jenkins image that is used in http://ci.hive.apache.org/ +and is hosted under https://hub.docker.com/r/apache/hive-ci-jenkins/. + +The Jenkins container runs in a Kubernetes cluster powered by Google Cloud. + +## Build + +### Local +To build a new image with the latest Jenkins version and the respective plugins run. +``` +docker build . -t apache/hive-ci-jenkins:lts-jdk21 +``` +The Dockerfile does not contain fixed versions for Jenkins and the plugins used which means that on every build +everything will be upgraded based on the latest available. + +### CI + +There is a GitHub action that can be used to build and publish the latest Jenkins image on https://hub.docker.com/r/apache/hive-ci-jenkins/. + +## Run & test +To start the container and test that everything is working run. +``` +docker run -p 35000:8080 apache/hive-ci-jenkins:lts-jdk21 +``` +The Jenkins UI can be accessed via http://0.0.0.0:35000/. + +## Upgrade guide + +The bulk of stateful content that is maintained by Jenkins is located under the "/var/jenkins_home" directory and the +latter is mounted to a persistent volume (see `kubectl describe pod/JENKINS_POD`). + +For the upgrade, we need to ensure that the current state and configurations in the persistent volume are not in conflict +with the new Jenkins version before pushing the new image to production. + +1. Obtain a backup of the jenkins_home directory from the persistent volume. Review Comment: these instructions work outside k8s; as it is I guess you can't launch a single job during the validation... the right process should be: * copy k8s volume * create a new pod with the copied data * use that to check things out instead of launching with `docker`: I think you should document that (or remove these instructions) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: gitbox-unsubscr...@hive.apache.org For additional commands, e-mail: gitbox-h...@hive.apache.org