Skip to content

Commit 5f3a0de

Browse files
Enable bootstrapping in the test deployment jobs
1 parent 86f9618 commit 5f3a0de

File tree

4 files changed

+74
-110
lines changed

4 files changed

+74
-110
lines changed

cluster/ci/data/vars.yaml

Lines changed: 7 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ openshift_additional_repos: [
1212

1313
# URLs and certs
1414

15-
provision_prefix: origin-ci-
16-
gce_network_name: "origin-ci-ocp-network"
17-
1815
openshift_master_cluster_public_hostname: api.ci.openshift.org
1916
openshift_master_cluster_hostname: internal-master.ci.openshift.org
2017
public_hosted_zone: ci.openshift.org
@@ -27,72 +24,32 @@ openshift_master_console_port: "8443"
2724
openshift_master_public_api_url: "https://api.ci.openshift.org"
2825
openshift_master_public_console_url: "https://api.ci.openshift.org/console"
2926
openshift_node_port_range: 30000-32000
27+
openshift_node_open_ports: [{"service":"Router stats port","port":"1936/tcp"},{"service":"Allowed open host ports","port":"9000-10000/tcp"},{"service":"Allowed open host ports","port":"9000-10000/udp"}]
3028

31-
openshift_master_named_certificates: [{"certfile": "{{ inventory_dir }}/ssl.crt", "keyfile": "{{ inventory_dir }}/ssl.key", "names": ["api.ci.openshift.org"]}]
29+
openshift_master_named_certificates: [{"certfile": "{{ files_dir }}/ssl.crt", "keyfile": "{{ files_dir }}/ssl.key", "names": ["api.ci.openshift.org"]}]
3230

3331
# Authentication and authorization
3432

35-
openshift_master_identity_providers: "{{ (lookup('file', '{{ inventory_dir }}/identity-providers.json' ) | default('{\"items\":[]}') | from_json).get('items') }}"
33+
openshift_master_identity_providers: "{{ (lookup('file', '{{ files_dir }}/identity-providers.json' ) | default('{\"items\":[]}') | from_json).get('items') }}"
3634
provision_role_mappings: [{"user": "smarterclayton", "role": "cluster-admin"}]
3735

3836
# Post config setting sizes
3937

4038
openshift_hosted_router_replicas: 1
41-
openshift_hosted_router_certificate: {"certfile": "{{ inventory_dir }}/router.crt", "keyfile": "{{ inventory_dir }}/router.key", "cafile": "{{ inventory_dir }}/router.cacert"}
39+
openshift_hosted_router_certificate: {"certfile": "{{ files_dir }}/router.crt", "keyfile": "{{ files_dir }}/router.key", "cafile": "{{ files_dir }}/router.cacert"}
4240
openshift_hosted_router_create_certificate: False
4341
openshift_hosted_registry_replicas: 1
4442
openshift_schedulable: True
4543

4644
# GCE provisioning info
4745

48-
# Project ID and zone settings for Google Cloud
49-
gce_project_id: openshift-gce-devel
50-
gce_region_name: us-central1
51-
gce_zone_name: us-central1-a
52-
gce_service_account: [email protected]
53-
gce_service_account_keyfile: "{{ inventory_dir }}/gce.json"
54-
gce_ssh_private_key: /home/cloud-user/.ssh/google_compute_engine
55-
56-
openshift_hosted_registry_storage_gcs_keyfile: "{{ inventory_dir }}/gcs-registry.json"
46+
openshift_hosted_registry_storage_gcs_keyfile: "{{ files_dir }}/gcs-registry.json"
5747
openshift_hosted_registry_storage_kind: object
5848
openshift_hosted_registry_storage_provider: gcs
5949
openshift_hosted_registry_storage_gcs_bucket: openshift-gce-devel-origin-ci-registry-bucket
6050
provision_gce_emptydir_quota: 10Gi
61-
62-
# Control which node group router traffic is targeted at.
63-
provision_gce_router_network_instance_group: ig-m # default: ig-i
64-
provision_gce_node_groups:
65-
- name: master
66-
suffix: m
67-
tags: ocp-master,preserve
68-
machine_type: n1-standard-2
69-
boot_disk_size: 150
70-
scale: 1
71-
- name: node
72-
suffix: n
73-
tags: ocp-node,preserve
74-
machine_type: n1-standard-8
75-
boot_disk_size: 150
76-
scale: 10
77-
- name: node-flex
78-
suffix: nf
79-
tags: ocp-node,preserve
80-
machine_type: n1-standard-4
81-
boot_disk_size: 150
82-
scale: 0
83-
84-
85-
# An image or image family to pull from
86-
provision_gce_registered_image: rhel-7
87-
8851
provision_gce_docker_storage_driver: overlay2
8952

90-
# Provide a startup script file to the GCE instances
91-
provision_gce_startup_script_file: # "startup.sh"
92-
# Provide userdata to the gce instances
93-
provision_gce_user_data_file:
94-
95-
rhsub_skip: true
9653
provision_custom_repositories: [
9754
{
9855
"name": "oso-rhui-rhel-server-releases",
@@ -126,10 +83,6 @@ provision_custom_repositories: [
12683
}
12784
]
12885

129-
##############
130-
# New settings
131-
##############
132-
13386
openshift_gcp_prefix: origin-ci-
13487

13588
openshift_gcp_project: openshift-gce-devel
@@ -139,7 +92,7 @@ openshift_gcp_zone: us-central1-a
13992
openshift_gcp_network_name: "{{ openshift_gcp_prefix }}network"
14093

14194
openshift_gcp_iam_service_account: [email protected]
142-
openshift_gcp_iam_service_account_keyfile: "{{ inventory_dir }}/gce.json"
95+
openshift_gcp_iam_service_account_keyfile: "{{ files_dir }}/gce.json"
14396

14497
openshift_gcp_ssh_private_key: /home/cloud-user/.ssh/google_compute_engine
14598

@@ -148,7 +101,7 @@ openshift_gcp_infra_network_instance_group: ig-m
148101
openshift_gcp_image: 'rhel-7'
149102
openshift_gcp_base_image: 'centos-7'
150103

151-
openshift_gcp_registry_bucket_keyfile: "{{ inventory_dir }}/gcs-registry.json"
104+
openshift_gcp_registry_bucket_keyfile: "{{ files_dir }}/gcs-registry.json"
152105
openshift_gcp_registry_bucket_name: openshift-gce-devel-origin-ci-registry-bucket
153106

154107
openshift_gcp_node_group_config:
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
*
22
!.gitignore
33
!vars.yml
4+
!bootstrap-script.sh
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
#!/bin/bash
2+
3+
set -o errexit
4+
set -o nounset
5+
set -o pipefail
6+
7+
if [[ "$( curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/bootstrap" -H "Metadata-Flavor: Google" )" != "true" ]]; then
8+
echo "info: Bootstrap is not enabled for this instance, skipping" 1>&2
9+
exit 0
10+
fi
11+
12+
if ! id=$( curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-id" -H "Metadata-Flavor: Google" ); then
13+
echo "error: Unable to get cluster-id for instance from cluster metadata" 1>&2
14+
exit 1
15+
fi
16+
17+
if ! node_group=$( curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/node-group" -H "Metadata-Flavor: Google" ); then
18+
echo "error: Unable to get node-group for instance from cluster metadata" 1>&2
19+
exit 1
20+
fi
21+
22+
if ! config=$( curl -f "http://metadata.google.internal/computeMetadata/v1/instance/attributes/bootstrap-config" -H "Metadata-Flavor: Google" 2>/dev/null ); then
23+
while true; do
24+
if config=$( curl -f "http://metadata.google.internal/computeMetadata/v1/project/attributes/${id}-bootstrap-config" -H "Metadata-Flavor: Google" 2>/dev/null ); then
25+
break
26+
fi
27+
echo "info: waiting for ${id}-bootstrap-config to become available in cluster metadata ..." 1>&2
28+
sleep 5
29+
done
30+
fi
31+
32+
echo "Got bootstrap config from metadata"
33+
mkdir -p /etc/origin/node
34+
echo -n "${config}" > /etc/origin/node/bootstrap.kubeconfig
35+
echo "BOOTSTRAP_CONFIG_NAME=node-config-${node_group}" >> /etc/sysconfig/origin-node
36+
systemctl enable origin-node
37+
systemctl start origin-node

cluster/test-deploy/data/vars.yaml

Lines changed: 29 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,6 @@ openshift_additional_repos: [
1212

1313
# URLs and certs
1414

15-
provision_prefix: ci-{{ lookup('env', 'INSTANCE_PREFIX') | mandatory }}-
16-
gce_network_name: "ci-{{ lookup('env', 'INSTANCE_PREFIX') | mandatory }}-ocp-network"
17-
1815
openshift_master_cluster_public_hostname: api.{{ lookup('env', 'INSTANCE_PREFIX') | mandatory }}.origin-ci-int-gce.dev.rhcloud.com
1916
openshift_master_cluster_hostname: internal-api.{{ lookup('env', 'INSTANCE_PREFIX') | mandatory }}.origin-ci-int-gce.dev.rhcloud.com
2017
wildcard_zone: apps.{{ lookup('env', 'INSTANCE_PREFIX') | mandatory }}.origin-ci-int-gce.dev.rhcloud.com
@@ -35,62 +32,19 @@ openshift_node_open_ports: [{"service":"Router stats port","port":"1936/tcp"},{"
3532
# Authentication and authorization
3633

3734
openshift_master_identity_providers: [{"name": "allow_all", "login": "true", "challenge": "true", "kind": "AllowAllPasswordIdentityProvider"}]
38-
# provision_role_mappings: [{"user": "admin", "role": "cluster-admin"}]
3935

4036
# Post config setting sizes
4137

4238
openshift_hosted_router_replicas: 1
4339
openshift_hosted_registry_replicas: 1
4440
openshift_schedulable: True
4541

46-
# GCE provisioning info
47-
48-
# Project ID and zone settings for Google Cloud
49-
gce_project_id: openshift-gce-devel-ci
50-
gce_region_name: us-east1
51-
gce_zone_name: us-east1-c
52-
gce_service_account: jenkins-ci-provisioner@openshift-gce-devel.iam.gserviceaccount.com
53-
gce_service_account_keyfile: "{{ inventory_dir }}/gce.json"
54-
gce_ssh_private_key: /home/cloud-user/.ssh/google_compute_engine
55-
56-
openshift_hosted_registry_storage_gcs_keyfile: "{{ inventory_dir }}/gce.json"
42+
openshift_hosted_registry_storage_gcs_keyfile: "{{ files_dir }}/gce.json"
5743
openshift_hosted_registry_storage_kind: object
5844
openshift_hosted_registry_storage_provider: gcs
5945
openshift_hosted_registry_storage_gcs_bucket: origin-ci-test-{{ lookup('env', 'INSTANCE_PREFIX') | mandatory }}
60-
61-
# Control which node group router traffic is targeted at.
62-
provision_gce_router_network_instance_group: ig-m # default: ig-i
63-
provision_gce_node_groups:
64-
- name: master
65-
suffix: m
66-
tags: ocp-master
67-
machine_type: n1-standard-2
68-
boot_disk_size: 150
69-
scale: 1
70-
- name: node
71-
suffix: n
72-
tags: ocp-node
73-
machine_type: n1-standard-2
74-
boot_disk_size: 150
75-
scale: 3
76-
- name: node-flex
77-
suffix: nf
78-
tags: ocp-node
79-
machine_type: n1-standard-2
80-
boot_disk_size: 150
81-
scale: 0
82-
83-
# An image or image family to pull from
84-
provision_gce_registered_image: rhel-7
85-
8646
provision_gce_docker_storage_driver: overlay2
8747

88-
# Provide a startup script file to the GCE instances
89-
provision_gce_startup_script_file: # "startup.sh"
90-
# Provide userdata to the gce instances
91-
provision_gce_user_data_file:
92-
93-
rhsub_skip: true
9448
provision_custom_repositories: [
9549
{
9650
"name": "oso-rhui-rhel-server-releases",
@@ -124,10 +78,6 @@ provision_custom_repositories: [
12478
}
12579
]
12680

127-
##############
128-
# New settings
129-
##############
130-
13181
openshift_gcp_prefix: "ci-{{ lookup('env', 'INSTANCE_PREFIX') | mandatory }}-"
13282

13383
openshift_gcp_project: openshift-gce-devel-ci
@@ -137,34 +87,57 @@ openshift_gcp_zone: us-east1-c
13787
openshift_gcp_network_name: "{{ openshift_gcp_prefix }}network"
13888

13989
openshift_gcp_iam_service_account: jenkins-ci-provisioner@openshift-gce-devel.iam.gserviceaccount.com
140-
openshift_gcp_iam_service_account_keyfile: "{{ inventory_dir }}/gce.json"
90+
openshift_gcp_iam_service_account_keyfile: "{{ files_dir }}/gce.json"
14191

14292
openshift_gcp_ssh_private_key: /home/cloud-user/.ssh/google_compute_engine
14393

14494
openshift_gcp_infra_network_instance_group: ig-m
14595

146-
openshift_gcp_image: 'rhel-7'
147-
openshift_gcp_base_image: 'centos-7'
96+
# Instructs the launch job to build an AMI prior to cluster provisioning and then use that image
97+
openshift_gcp_build_image: true
98+
openshift_gcp_image: '{{ openshift_gcp_prefix }}images'
99+
openshift_gcp_base_image: 'rhel-7'
100+
openshift_gcp_root_image: 'centos-7'
148101

149-
openshift_gcp_registry_bucket_keyfile: "{{ inventory_dir }}/gce.json"
102+
openshift_gcp_registry_bucket_keyfile: "{{ files_dir }}/gce.json"
150103
openshift_gcp_registry_bucket_name: "origin-ci-test-{{ lookup('env', 'INSTANCE_PREFIX') | mandatory }}"
151104

105+
openshift_gcp_startup_script_file: "{{ files_dir }}/bootstrap-script.sh"
152106
openshift_gcp_node_group_config:
153107
- name: master
154108
suffix: m
155-
tags: ocp-master
109+
tags: ocp-master,ocp-infra-node,ocp-node
156110
machine_type: n1-standard-2
157111
boot_disk_size: 150
158112
scale: 1
113+
bootstrap: true
114+
wait_for_stable: true
159115
- name: node
160116
suffix: n
161117
tags: ocp-node
162118
machine_type: n1-standard-2
163119
boot_disk_size: 150
164120
scale: 3
121+
bootstrap: true
165122
- name: node-flex
166123
suffix: nf
167124
tags: ocp-node
168125
machine_type: n1-standard-2
169126
boot_disk_size: 150
170127
scale: 0
128+
bootstrap: true
129+
130+
openshift_master_node_configs:
131+
- type: master
132+
edits:
133+
- key: kubeletArguments.node-labels
134+
value: ['role=infra']
135+
- type: node
136+
edits:
137+
- key: kubeletArguments.node-labels
138+
value: ['role=app']
139+
140+
osm_controller_args: {"experimental-cluster-signing-duration": ["20m"]}
141+
openshift_master_bootstrap_enabled: true
142+
openshift_master_bootstrap_auto_approve: true
143+
openshift_master_bootstrap_auto_approver_node_selector: {"role": "infra"}

0 commit comments

Comments
 (0)