Skip to content
Merged
Show file tree
Hide file tree
Changes from 8 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -159,12 +159,12 @@
pipeline-scm:
scm:
- git:
url: https://github.com/nogueiraanderson/jenkins-pipelines.git
url: https://github.com/Percona-Lab/jenkins-pipelines.git
branches:
- "feature/openshift-shared-libraries"
- "master"
wipe-workspace: false
lightweight-checkout: true
script-path: cloud/jenkins/openshift_cluster_create.groovy
script-path: pmm/openshift/openshift_cluster_create.groovy

concurrent: true

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,12 @@
pipeline-scm:
scm:
- git:
url: https://github.com/nogueiraanderson/jenkins-pipelines.git
url: https://github.com/Percona-Lab/jenkins-pipelines.git
branches:
- 'feature/openshift-shared-libraries'
- 'master'
wipe-workspace: false
lightweight-checkout: true
script-path: cloud/jenkins/openshift_cluster_destroy.groovy
script-path: pmm/openshift/openshift_cluster_destroy.groovy

concurrent: true

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@
pipeline-scm:
scm:
- git:
url: https://github.com/nogueiraanderson/jenkins-pipelines.git
url: https://github.com/Percona-Lab/jenkins-pipelines.git
branches:
- feature/openshift-shared-libraries
script-path: cloud/jenkins/openshift_cluster_list.groovy
- master
script-path: pmm/openshift/openshift_cluster_list.groovy
lightweight-checkout: true

concurrent: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,7 @@ Starting cluster creation process...

if (clusterInfo.pmm) {
env.PMM_URL = clusterInfo.pmm.url
env.PMM_IP = clusterInfo.pmm.ip ?: 'N/A'
env.PMM_PASSWORD = clusterInfo.pmm.password
env.PMM_PASSWORD_GENERATED = clusterInfo.pmm.passwordGenerated.toString()
}
Expand Down Expand Up @@ -458,6 +459,7 @@ Starting cluster creation process...
echo "Helm Chart: ${params.PMM_HELM_CHART_VERSION}"
echo "Namespace: pmm-monitoring"
echo "Access URL: ${env.PMM_URL}"
echo "IP Address: ${env.PMM_IP}"
echo "Username: admin"
echo "Password: ${passwordInfo}"
echo ""
Expand Down Expand Up @@ -517,22 +519,23 @@ Starting cluster creation process...
if (env.PMM_URL) {
descriptionHtml.append("<b>PMM Monitoring:</b><br/>")
descriptionHtml.append("• URL: <a href='${env.PMM_URL}'>${env.PMM_URL}</a><br/>")
descriptionHtml.append("• IP: <code>${env.PMM_IP}</code><br/>")
descriptionHtml.append("• User: <code>admin</code><br/>")
descriptionHtml.append("• Password: <code>${env.PMM_ADMIN_PASSWORD ?: 'Check deployment logs'}</code><br/>")
descriptionHtml.append("• Password: <code>${env.PMM_PASSWORD ?: 'Check deployment logs'}</code><br/>")
descriptionHtml.append("• Version: ${params.PMM_IMAGE_TAG}<br/>")
descriptionHtml.append("<br/>")
}

// Cluster resources
descriptionHtml.append("<b>Resources:</b><br/>")
descriptionHtml.append("• Masters: ${params.MASTER_NODES} × ${params.MASTER_INSTANCE_TYPE}<br/>")
descriptionHtml.append("• Workers: ${params.WORKER_NODES} × ${params.WORKER_INSTANCE_TYPE}<br/>")
descriptionHtml.append("• Masters: 3 × ${params.MASTER_INSTANCE_TYPE}<br/>")
descriptionHtml.append("• Workers: ${params.WORKER_COUNT} × ${params.WORKER_INSTANCE_TYPE}<br/>")
descriptionHtml.append("<br/>")

// Lifecycle details
descriptionHtml.append("<b>Lifecycle:</b><br/>")
descriptionHtml.append("• Auto-delete: ${params.AUTO_DELETE_HOURS} hours<br/>")
descriptionHtml.append("• Team: ${params.TEAM}<br/>")
descriptionHtml.append("• Auto-delete: ${params.DELETE_AFTER_HOURS} hours<br/>")
descriptionHtml.append("• Team: ${params.TEAM_NAME}<br/>")
descriptionHtml.append("• S3 Backup: <code>s3://${env.S3_BUCKET}/${env.FINAL_CLUSTER_NAME}/</code><br/>")

currentBuild.description = descriptionHtml.toString()
Expand Down
25 changes: 25 additions & 0 deletions vars/openshiftCluster.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,7 @@ def create(Map config) {
metadata.pmmDeployed = true
metadata.pmmImageTag = params.pmmImageTag
metadata.pmmUrl = pmmInfo.url
metadata.pmmIp = pmmInfo.ip
metadata.pmmNamespace = pmmInfo.namespace

// Update metadata in S3 with PMM information
Expand Down Expand Up @@ -706,6 +707,29 @@ def deployPMM(Map params) {
returnStdout: true
).trim()

// Get the public IP address from the OpenShift ingress controller
// The monitoring-service is a ClusterIP (internal only), so we need the ingress IP
def pmmIp = sh(
script: """
export PATH="\$HOME/.local/bin:\$PATH"

# AWS provides hostname in LoadBalancer status, not direct IP
INGRESS_HOSTNAME=\$(oc get service -n openshift-ingress router-default \
-o jsonpath='{.status.loadBalancer.ingress[0].hostname}' 2>/dev/null)

if [[ -n "\$INGRESS_HOSTNAME" ]]; then
# Resolve AWS ELB hostname to IP address
nslookup "\$INGRESS_HOSTNAME" 2>/dev/null | \
grep -A 1 "^Name:" | grep "Address" | \
head -1 | awk '{print \$2}'
else
# No hostname found - ingress might not be ready yet
echo ''
fi
""",
returnStdout: true
).trim()

// Get the actual password from the secret (either set or generated)
def actualPassword = sh(
script: """
Expand All @@ -717,6 +741,7 @@ def deployPMM(Map params) {

return [
url: "https://${pmmUrl}",
ip: pmmIp ?: 'N/A', // Return 'N/A' if we couldn't determine the IP
username: 'admin',
password: actualPassword,
namespace: params.pmmNamespace,
Expand Down