Add Repository information to Runner Status (#2093)
Co-authored-by: Yusuke Kuoka <ykuoka@gmail.com>
This commit is contained in:
parent
de244a17be
commit
606ed1b28e
|
|
@ -248,10 +248,60 @@ type RunnerStatus struct {
|
||||||
// +optional
|
// +optional
|
||||||
Message string `json:"message,omitempty"`
|
Message string `json:"message,omitempty"`
|
||||||
// +optional
|
// +optional
|
||||||
|
WorkflowStatus *WorkflowStatus `json:"workflow"`
|
||||||
|
// +optional
|
||||||
// +nullable
|
// +nullable
|
||||||
LastRegistrationCheckTime *metav1.Time `json:"lastRegistrationCheckTime,omitempty"`
|
LastRegistrationCheckTime *metav1.Time `json:"lastRegistrationCheckTime,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// WorkflowStatus contains various information that is propagated
|
||||||
|
// from GitHub Actions workflow run environment variables to
|
||||||
|
// ease monitoring workflow run/job/steps that are triggerred on the runner.
|
||||||
|
type WorkflowStatus struct {
|
||||||
|
// +optional
|
||||||
|
// Name is the name of the workflow
|
||||||
|
// that is triggerred within the runner.
|
||||||
|
// It corresponds to GITHUB_WORKFLOW defined in
|
||||||
|
// https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
Name string `json:"name,omitempty"`
|
||||||
|
// +optional
|
||||||
|
// Repository is the owner and repository name of the workflow
|
||||||
|
// that is triggerred within the runner.
|
||||||
|
// It corresponds to GITHUB_REPOSITORY defined in
|
||||||
|
// https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
Repository string `json:"repository,omitempty"`
|
||||||
|
// +optional
|
||||||
|
// ReositoryOwner is the repository owner's name for the workflow
|
||||||
|
// that is triggerred within the runner.
|
||||||
|
// It corresponds to GITHUB_REPOSITORY_OWNER defined in
|
||||||
|
// https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
RepositoryOwner string `json:"repositoryOwner,omitempty"`
|
||||||
|
// +optional
|
||||||
|
// GITHUB_RUN_NUMBER is the unique number for the current workflow run
|
||||||
|
// that is triggerred within the runner.
|
||||||
|
// It corresponds to GITHUB_RUN_ID defined in
|
||||||
|
// https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
RunNumber string `json:"runNumber,omitempty"`
|
||||||
|
// +optional
|
||||||
|
// RunID is the unique number for the current workflow run
|
||||||
|
// that is triggerred within the runner.
|
||||||
|
// It corresponds to GITHUB_RUN_ID defined in
|
||||||
|
// https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
RunID string `json:"runID,omitempty"`
|
||||||
|
// +optional
|
||||||
|
// Job is the name of the current job
|
||||||
|
// that is triggerred within the runner.
|
||||||
|
// It corresponds to GITHUB_JOB defined in
|
||||||
|
// https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
Job string `json:"job,omitempty"`
|
||||||
|
// +optional
|
||||||
|
// Action is the name of the current action or the step ID of the current step
|
||||||
|
// that is triggerred within the runner.
|
||||||
|
// It corresponds to GITHUB_ACTION defined in
|
||||||
|
// https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
Action string `json:"action,omitempty"`
|
||||||
|
}
|
||||||
|
|
||||||
// RunnerStatusRegistration contains runner registration status
|
// RunnerStatusRegistration contains runner registration status
|
||||||
type RunnerStatusRegistration struct {
|
type RunnerStatusRegistration struct {
|
||||||
Enterprise string `json:"enterprise,omitempty"`
|
Enterprise string `json:"enterprise,omitempty"`
|
||||||
|
|
@ -316,6 +366,8 @@ func (w *WorkVolumeClaimTemplate) V1VolumeMount(mountPath string) corev1.VolumeM
|
||||||
// +kubebuilder:printcolumn:JSONPath=".spec.labels",name=Labels,type=string
|
// +kubebuilder:printcolumn:JSONPath=".spec.labels",name=Labels,type=string
|
||||||
// +kubebuilder:printcolumn:JSONPath=".status.phase",name=Status,type=string
|
// +kubebuilder:printcolumn:JSONPath=".status.phase",name=Status,type=string
|
||||||
// +kubebuilder:printcolumn:JSONPath=".status.message",name=Message,type=string
|
// +kubebuilder:printcolumn:JSONPath=".status.message",name=Message,type=string
|
||||||
|
// +kubebuilder:printcolumn:JSONPath=".status.workflow.repository",name=WF Repo,type=string
|
||||||
|
// +kubebuilder:printcolumn:JSONPath=".status.workflow.runID",name=WF Run,type=string
|
||||||
// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
|
// +kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
|
||||||
|
|
||||||
// Runner is the Schema for the runners API
|
// Runner is the Schema for the runners API
|
||||||
|
|
|
||||||
|
|
@ -1049,6 +1049,11 @@ func (in *RunnerSpec) DeepCopy() *RunnerSpec {
|
||||||
func (in *RunnerStatus) DeepCopyInto(out *RunnerStatus) {
|
func (in *RunnerStatus) DeepCopyInto(out *RunnerStatus) {
|
||||||
*out = *in
|
*out = *in
|
||||||
in.Registration.DeepCopyInto(&out.Registration)
|
in.Registration.DeepCopyInto(&out.Registration)
|
||||||
|
if in.WorkflowStatus != nil {
|
||||||
|
in, out := &in.WorkflowStatus, &out.WorkflowStatus
|
||||||
|
*out = new(WorkflowStatus)
|
||||||
|
**out = **in
|
||||||
|
}
|
||||||
if in.LastRegistrationCheckTime != nil {
|
if in.LastRegistrationCheckTime != nil {
|
||||||
in, out := &in.LastRegistrationCheckTime, &out.LastRegistrationCheckTime
|
in, out := &in.LastRegistrationCheckTime, &out.LastRegistrationCheckTime
|
||||||
*out = (*in).DeepCopy()
|
*out = (*in).DeepCopy()
|
||||||
|
|
@ -1212,3 +1217,18 @@ func (in *WorkflowJobSpec) DeepCopy() *WorkflowJobSpec {
|
||||||
in.DeepCopyInto(out)
|
in.DeepCopyInto(out)
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||||
|
func (in *WorkflowStatus) DeepCopyInto(out *WorkflowStatus) {
|
||||||
|
*out = *in
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WorkflowStatus.
|
||||||
|
func (in *WorkflowStatus) DeepCopy() *WorkflowStatus {
|
||||||
|
if in == nil {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
out := new(WorkflowStatus)
|
||||||
|
in.DeepCopyInto(out)
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,12 @@ spec:
|
||||||
- jsonPath: .status.message
|
- jsonPath: .status.message
|
||||||
name: Message
|
name: Message
|
||||||
type: string
|
type: string
|
||||||
|
- jsonPath: .status.workflow.repository
|
||||||
|
name: WF Repo
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.workflow.runID
|
||||||
|
name: WF Run
|
||||||
|
type: string
|
||||||
- jsonPath: .metadata.creationTimestamp
|
- jsonPath: .metadata.creationTimestamp
|
||||||
name: Age
|
name: Age
|
||||||
type: date
|
type: date
|
||||||
|
|
@ -5225,6 +5231,31 @@ spec:
|
||||||
- expiresAt
|
- expiresAt
|
||||||
- token
|
- token
|
||||||
type: object
|
type: object
|
||||||
|
workflow:
|
||||||
|
description: WorkflowStatus contains various information that is propagated from GitHub Actions workflow run environment variables to ease monitoring workflow run/job/steps that are triggerred on the runner.
|
||||||
|
properties:
|
||||||
|
action:
|
||||||
|
description: Action is the name of the current action or the step ID of the current step that is triggerred within the runner. It corresponds to GITHUB_ACTION defined in https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
type: string
|
||||||
|
job:
|
||||||
|
description: Job is the name of the current job that is triggerred within the runner. It corresponds to GITHUB_JOB defined in https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: Name is the name of the workflow that is triggerred within the runner. It corresponds to GITHUB_WORKFLOW defined in https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
type: string
|
||||||
|
repository:
|
||||||
|
description: Repository is the owner and repository name of the workflow that is triggerred within the runner. It corresponds to GITHUB_REPOSITORY defined in https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
type: string
|
||||||
|
repositoryOwner:
|
||||||
|
description: ReositoryOwner is the repository owner's name for the workflow that is triggerred within the runner. It corresponds to GITHUB_REPOSITORY_OWNER defined in https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
type: string
|
||||||
|
runID:
|
||||||
|
description: RunID is the unique number for the current workflow run that is triggerred within the runner. It corresponds to GITHUB_RUN_ID defined in https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
type: string
|
||||||
|
runNumber:
|
||||||
|
description: GITHUB_RUN_NUMBER is the unique number for the current workflow run that is triggerred within the runner. It corresponds to GITHUB_RUN_ID defined in https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,12 @@ spec:
|
||||||
- jsonPath: .status.message
|
- jsonPath: .status.message
|
||||||
name: Message
|
name: Message
|
||||||
type: string
|
type: string
|
||||||
|
- jsonPath: .status.workflow.repository
|
||||||
|
name: WF Repo
|
||||||
|
type: string
|
||||||
|
- jsonPath: .status.workflow.runID
|
||||||
|
name: WF Run
|
||||||
|
type: string
|
||||||
- jsonPath: .metadata.creationTimestamp
|
- jsonPath: .metadata.creationTimestamp
|
||||||
name: Age
|
name: Age
|
||||||
type: date
|
type: date
|
||||||
|
|
@ -5225,6 +5231,31 @@ spec:
|
||||||
- expiresAt
|
- expiresAt
|
||||||
- token
|
- token
|
||||||
type: object
|
type: object
|
||||||
|
workflow:
|
||||||
|
description: WorkflowStatus contains various information that is propagated from GitHub Actions workflow run environment variables to ease monitoring workflow run/job/steps that are triggerred on the runner.
|
||||||
|
properties:
|
||||||
|
action:
|
||||||
|
description: Action is the name of the current action or the step ID of the current step that is triggerred within the runner. It corresponds to GITHUB_ACTION defined in https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
type: string
|
||||||
|
job:
|
||||||
|
description: Job is the name of the current job that is triggerred within the runner. It corresponds to GITHUB_JOB defined in https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
type: string
|
||||||
|
name:
|
||||||
|
description: Name is the name of the workflow that is triggerred within the runner. It corresponds to GITHUB_WORKFLOW defined in https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
type: string
|
||||||
|
repository:
|
||||||
|
description: Repository is the owner and repository name of the workflow that is triggerred within the runner. It corresponds to GITHUB_REPOSITORY defined in https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
type: string
|
||||||
|
repositoryOwner:
|
||||||
|
description: ReositoryOwner is the repository owner's name for the workflow that is triggerred within the runner. It corresponds to GITHUB_REPOSITORY_OWNER defined in https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
type: string
|
||||||
|
runID:
|
||||||
|
description: RunID is the unique number for the current workflow run that is triggerred within the runner. It corresponds to GITHUB_RUN_ID defined in https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
type: string
|
||||||
|
runNumber:
|
||||||
|
description: GITHUB_RUN_NUMBER is the unique number for the current workflow run that is triggerred within the runner. It corresponds to GITHUB_RUN_ID defined in https://docs.github.com/en/actions/learn-github-actions/environment-variables
|
||||||
|
type: string
|
||||||
|
type: object
|
||||||
type: object
|
type: object
|
||||||
type: object
|
type: object
|
||||||
served: true
|
served: true
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,30 @@ if [[ ${RUNNER_STATUS_UPDATE_HOOK:-false} == true ]]; then
|
||||||
namespace=$(cat ${serviceaccount}/namespace)
|
namespace=$(cat ${serviceaccount}/namespace)
|
||||||
token=$(cat ${serviceaccount}/token)
|
token=$(cat ${serviceaccount}/token)
|
||||||
phase=$1
|
phase=$1
|
||||||
shift
|
message=${2:-}
|
||||||
|
|
||||||
jq -n --arg phase "$phase" --arg message "${*:-}" '.status.phase = $phase | .status.message = $message' | curl \
|
data=$(jq -n --arg phase "$phase" \
|
||||||
|
--arg message "$message" \
|
||||||
|
--arg workflow_repository "${GITHUB_REPOSITORY:-}" \
|
||||||
|
--arg workflow_repository_owner "${GITHUB_REPOSITORY_OWNER:-}" \
|
||||||
|
--arg workflow_name "${GITHUB_WORKFLOW:-}" \
|
||||||
|
--arg workflow_run_id "${GITHUB_RUN_ID:-}" \
|
||||||
|
--arg workflow_run_number "${GITHUB_RUN_NUMBER:-}" \
|
||||||
|
--arg workflow_job "${GITHUB_JOB:-}" \
|
||||||
|
--arg workflow_action "${GITHUB_ACTION:-}" \
|
||||||
|
'
|
||||||
|
.status.phase = $phase
|
||||||
|
| .status.message = $message
|
||||||
|
| .status.workflow.name = $workflow_name
|
||||||
|
| .status.workflow.runID = $workflow_run_id
|
||||||
|
| .status.workflow.runNumber = $workflow_run_number
|
||||||
|
| .status.workflow.repository = $workflow_repository
|
||||||
|
| .status.workflow.repositoryOwner = $workflow_repository_owner
|
||||||
|
| .status.workflow.job = $workflow_job
|
||||||
|
| .status.workflow.action = $workflow_action
|
||||||
|
')
|
||||||
|
|
||||||
|
echo "$data" | curl \
|
||||||
--cacert ${serviceaccount}/ca.crt \
|
--cacert ${serviceaccount}/ca.crt \
|
||||||
--data @- \
|
--data @- \
|
||||||
--noproxy '*' \
|
--noproxy '*' \
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue