mirror of
https://github.com/rancher/os.git
synced 2025-07-16 16:11:03 +00:00
Remove integration tests
This commit is contained in:
parent
f8113a7241
commit
5e37bce795
@ -40,7 +40,7 @@ RUN echo "Acquire::http { Proxy \"$APTPROXY\"; };" >> /etc/apt/apt.conf.d/01prox
|
||||
|
||||
########## Dapper Configuration #####################
|
||||
|
||||
ENV DAPPER_ENV VERSION DEV_BUILD RUNTEST DEBUG APTPROXY ENGINE_REGISTRY_MIRROR INTEGRATION_TESTS
|
||||
ENV DAPPER_ENV VERSION DEV_BUILD RUNTEST DEBUG APTPROXY ENGINE_REGISTRY_MIRROR
|
||||
ENV DAPPER_DOCKER_SOCKET true
|
||||
ENV DAPPER_SOURCE /go/src/github.com/rancher/os
|
||||
ENV DAPPER_OUTPUT ./bin ./dist ./build/initrd ./build/kernel
|
||||
|
7
Makefile
7
Makefile
@ -43,11 +43,6 @@ release-build:
|
||||
mkdir -p dist
|
||||
./.dapper release 2>&1 | tee dist/release.log
|
||||
|
||||
itest:
|
||||
mkdir -p dist
|
||||
./.dapper integration-test 2>&1 | tee dist/itest.log
|
||||
grep --binary-files=text FAIL dist/itest.log || true
|
||||
|
||||
qcows:
|
||||
cp dist/artifacts/rancheros.iso scripts/images/openstack/
|
||||
cd scripts/images/openstack && \
|
||||
@ -66,7 +61,7 @@ rpi64:
|
||||
|
||||
vmware: .dapper
|
||||
mkdir -p dist
|
||||
INTEGRATION_TESTS=0 ./.dapper vmware-release 2>&1 | tee dist/release.log
|
||||
./.dapper vmware-release 2>&1 | tee dist/release.log
|
||||
|
||||
help:
|
||||
@./scripts/help
|
||||
|
@ -9,12 +9,3 @@ echo TEST
|
||||
./scripts/test
|
||||
echo VALIDATE
|
||||
./scripts/validate
|
||||
|
||||
# Drone servers kernel too old, and the integration tests often time out
|
||||
#echo PREPARE
|
||||
#./scripts/prepare
|
||||
#echo PACKAGE
|
||||
#./scripts/package
|
||||
#echo INTEGRATION-TEST
|
||||
#./scripts/integration-test
|
||||
|
||||
|
@ -1,21 +0,0 @@
|
||||
#!/bin/bash
|
||||
# help: Run integration tests
|
||||
set -ex
|
||||
|
||||
if [ "$INTEGRATION_TESTS" = 0 ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
source $(dirname $0)/version
|
||||
|
||||
cd $(dirname $0)/../tests
|
||||
|
||||
if [ ! -e "../dist/artifacts/$INITRD" ]; then
|
||||
../scripts/dev
|
||||
fi
|
||||
|
||||
if [ "$RUNTEST" != "" ]; then
|
||||
RUNTEST="-check.f ${RUNTEST}"
|
||||
fi
|
||||
|
||||
time go test -v -timeout 9999m $RUNTEST
|
@ -17,20 +17,6 @@ echo PREPARE
|
||||
echo PACKAGE
|
||||
./scripts/package
|
||||
|
||||
if [[ "$INTEGRATION_TESTS" != "" ]]; then
|
||||
if [[ "$ARCH" == "" || "$ARCH" == "amd64" ]]; then
|
||||
export INTEGRATION_TESTS=1
|
||||
else
|
||||
export INTEGRATION_TESTS=0
|
||||
fi
|
||||
fi
|
||||
if [[ "$INTEGRATION_TESTS" != "1" ]]; then
|
||||
echo INTEGRATION-TEST
|
||||
./scripts/integration-test
|
||||
else
|
||||
echo "Skipping integration tests"
|
||||
fi
|
||||
|
||||
#if [[ "$ARCH" == "" || "$ARCH" == "amd64" ]]; then
|
||||
## make generated changelog
|
||||
#lastrelease=$(hub release | grep -v rc | head -n1 | tr -d ' \r\n')
|
||||
|
@ -6,7 +6,7 @@ cd $(dirname $0)/..
|
||||
|
||||
echo Running tests
|
||||
|
||||
PACKAGES=". $(find -name '*.go' | xargs -I{} dirname {} | cut -f2 -d/ | sort -u | grep -Ev '(^\.$|.git|.trash-cache|vendor|bin|tests)' | sed -e 's!^!./!' -e 's!$!/...!')"
|
||||
PACKAGES=". $(find -name '*.go' | xargs -I{} dirname {} | cut -f2 -d/ | sort -u | grep -Ev '(^\.$|.git|.trash-cache|vendor|bin)' | sed -e 's!^!./!' -e 's!$!/...!')"
|
||||
|
||||
if [ "$ARCH" = "amd64" ]; then
|
||||
RACE="-race"
|
||||
|
@ -1,27 +0,0 @@
|
||||
#cloud-config
|
||||
write_files:
|
||||
- path: /opt/install
|
||||
permissions: "0755"
|
||||
content: |
|
||||
#!/bin/sh
|
||||
set -ex
|
||||
echo "running" > /var/log/ros-install.log
|
||||
system-docker exec console ros install -i rancher/os:v1.0.1 -d /dev/vda --append "rancher.password=rancher" -f --no-reboot --debug >> /var/log/install.log 2>&1
|
||||
echo "done" > /var/log/ros-install.log
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
||||
rancher:
|
||||
services:
|
||||
ros-install:
|
||||
image: alpine
|
||||
entrypoint: /usr/bin/ros entrypoint
|
||||
command: /opt/install
|
||||
labels:
|
||||
io.rancher.os.scope: system
|
||||
io.rancher.os.after: console
|
||||
uts: host
|
||||
privileged: true
|
||||
volumes:
|
||||
- /var/log:/var/log
|
||||
volumes_from:
|
||||
- all-volumes
|
@ -1,19 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
network:
|
||||
interfaces:
|
||||
eth0:
|
||||
dhcp: true
|
||||
eth1:
|
||||
address: 10.1.0.41/24
|
||||
gateway: 10.1.0.1
|
||||
mtu: 1500
|
||||
dhcp: false
|
||||
eth2:
|
||||
address: 10.31.168.85/24
|
||||
gateway: 10.31.168.1
|
||||
gateway_ipv6: "fe00:1234::"
|
||||
mtu: 1500
|
||||
dhcp: false
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,47 +0,0 @@
|
||||
#cloud-config
|
||||
write_files:
|
||||
- container: network
|
||||
path: /var/lib/iptables/rules.sh
|
||||
permissions: "0755"
|
||||
owner: root:root
|
||||
content: |
|
||||
#!/bin/bash
|
||||
set -ex
|
||||
echo $@ >> /var/log/net.log
|
||||
# the last line of the file needs to be a blank line or a comment
|
||||
rancher:
|
||||
network:
|
||||
dns:
|
||||
nameservers:
|
||||
- 8.8.4.4
|
||||
- 4.2.2.3
|
||||
pre_cmds:
|
||||
- /var/lib/iptables/rules.sh pre_cmds
|
||||
post_cmds:
|
||||
- /var/lib/iptables/rules.sh post_cmds
|
||||
interfaces:
|
||||
lo:
|
||||
pre_up:
|
||||
- /var/lib/iptables/rules.sh pre_up lo
|
||||
post_up:
|
||||
- /var/lib/iptables/rules.sh post_up lo
|
||||
eth0:
|
||||
pre_up:
|
||||
- /var/lib/iptables/rules.sh pre_up eth0
|
||||
post_up:
|
||||
- /var/lib/iptables/rules.sh post_up eth0
|
||||
eth1:
|
||||
dhcp: true
|
||||
pre_up:
|
||||
- /var/lib/iptables/rules.sh pre_up eth1
|
||||
post_up:
|
||||
- /var/lib/iptables/rules.sh post_up eth1
|
||||
eth2:
|
||||
address: 192.168.3.13/16
|
||||
mtu: 1450
|
||||
pre_up:
|
||||
- /var/lib/iptables/rules.sh pre_up eth2
|
||||
post_up:
|
||||
- /var/lib/iptables/rules.sh post_up eth2
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,15 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
environment:
|
||||
ETCD_DISCOVERY: https://discovery.etcd.io/c2c219023108cda9529364d6d983fe13
|
||||
FLANNEL_NETWORK: 10.244.0.0/16
|
||||
network:
|
||||
interfaces:
|
||||
eth*:
|
||||
dhcp: true
|
||||
"mac=52:54:00:12:34:59":
|
||||
address: 10.10.2.17/24
|
||||
gateway: 10.10.2.2
|
||||
mtu: 1500
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,102 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
docker:
|
||||
tls: true
|
||||
ca_cert: |+
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIC0TCCAbmgAwIBAgIQEMQoBLQ2IMOqlCeG7l8+fzANBgkqhkiG9w0BAQsFADAS
|
||||
MRAwDgYDVQQKEwdyYW5jaGVyMB4XDTE2MDYwNjE2MTYwMFoXDTE5MDUyMjE2MTYw
|
||||
MFowEjEQMA4GA1UEChMHcmFuY2hlcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
|
||||
AQoCggEBAND9PyJVU47CNsA5AjByvEv0KkD106JGHkQc+8lzVyTZw+TV6AvQm+Gt
|
||||
jiYTgWzL+aGQXFDAK8EDSPzo0koNcFHJeQAJnCULZzm5irqwKZSMlDZSCRO0bJsm
|
||||
CVpJpYlAc4wHb05nGtR3WB/XvudNWi9HuAZta7JAZ41LXCpC1VZ+K7EbSMsud1/w
|
||||
86nkqEU4FeiEbObiKUWS1sQSEs9mmaVg1qaFvorQEREyfXHl+ngwA7tlbl8pF3NS
|
||||
Ti1Uod746LUSoO2ZmNgmrONsOwl8GYjZNGz+q1YcqeiD9G78rd5gG9uPvEPM89Zm
|
||||
pGM4iNE/NYMcWv2WcYx0qC9rLR1GwQ8CAwEAAaMjMCEwDgYDVR0PAQH/BAQDAgKs
|
||||
MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAEmCbU+l9JilTEvF
|
||||
L0bLFV3XXfN/YaC5tD3K5J2ReOGQcKuZodlpXJpYg/QbcdMbn+N58VuKtIiphU9l
|
||||
oLbJx0a9mbN9PSuzOo4Ln24SVfEEAZI39BdgMH5LiTLE/7KXgqqPoCLk7dWOkiOn
|
||||
QTNCJgP84PsMXcXnkZ2bcQjApvQ99kMqcl/TL9bBLCzGC0ZoG+G9dnzHjDd2WbKg
|
||||
k/3gGJo6vWZD1WOYwxWAqtFEw2iWYRXmAQ1AqzJT83dLpUt1Dh3yP7/p7LAC/s1c
|
||||
xW0SpP/lE1MjNc2eWAdpEgvBT6ry3WzLekaBgCRlVpkb/rCpWQp3Ocwyoj04qMdC
|
||||
d59A+HI=
|
||||
-----END CERTIFICATE-----
|
||||
ca_key: |+
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpAIBAAKCAQEA0P0/IlVTjsI2wDkCMHK8S/QqQPXTokYeRBz7yXNXJNnD5NXo
|
||||
C9Cb4a2OJhOBbMv5oZBcUMArwQNI/OjSSg1wUcl5AAmcJQtnObmKurAplIyUNlIJ
|
||||
E7RsmyYJWkmliUBzjAdvTmca1HdYH9e+501aL0e4Bm1rskBnjUtcKkLVVn4rsRtI
|
||||
yy53X/DzqeSoRTgV6IRs5uIpRZLWxBISz2aZpWDWpoW+itARETJ9ceX6eDADu2Vu
|
||||
XykXc1JOLVSh3vjotRKg7ZmY2Cas42w7CXwZiNk0bP6rVhyp6IP0bvyt3mAb24+8
|
||||
Q8zz1makYziI0T81gxxa/ZZxjHSoL2stHUbBDwIDAQABAoIBAQCo+aobW3w0+CkG
|
||||
oNF5VLuUefXUEi8sjJ8aGYknZ7+1BvHRy3ZUXzY6cXZ2qNzDl+Td0fgiPk7iP4K7
|
||||
IpAs2dLP/iN8eUir1x1+WdumeJsWBdgsV4YJTZ9mjomPW+6hG+CQ/s3rSYgy88/n
|
||||
5yvunudlRQqw/7XNKS/Q2XbKoMEXrXMF4yuMzhFfajw3c9boLJYpLArwau3b4UAq
|
||||
Zx1tDDs5jSiCTdjySDfsbju59Fx68Pb6edeOUhKlNp22MlLRFwKPYEUI/6PCLA7h
|
||||
sIoL1c3UEH4Tl64e4TgP9kIVlpB6s55cPkFnfm/XvJ14ipLnFhC3NUAWr5iNIxEi
|
||||
vjP/vbgxAoGBAPnS1SYkgBsMy1BBPiglJu1OrSQsG8JVRtAfDbNGxpF5jcbjOAQV
|
||||
RWqWrnVvpWt34B0cohKiM0F1YgjPUsy2fEgLr6YTk5ZCxBk4PnJqOfwpkygP7KGR
|
||||
VHgJNdiX4SPTDjy1roZWnZvfxrHwKTRIhYY3VoCWMFGLYlzMEukWM++3AoGBANYn
|
||||
99CWrpnxvhBuU6dKqoSwf43QOyCPDKU0uqtahw2n2BhrDO+gM0IFPh5Mi7rWhmWn
|
||||
er2VXZrwXJTxUxLrCO/N68IzJp8uxEDr1mS+vTDiz5ix2+pr1BbolZOLHpUipi9x
|
||||
atG1oIM8Sw6kvl8tyHvQQQNlmTHD0s51joat1AlpAoGBAOf36W0aVU1IqvxhKEr0
|
||||
fFm7RS+iOUBQGImlW/5MSJLJ0GiNkPTRn3wiX+mxemL4k0PU03UD4R311cqiX5qw
|
||||
E2R+XWGTKeZLJnTYcbuhgSfwnrCDYNCA9nLi8nmkRSwTjFO4y0333S7gMUoF2uyu
|
||||
LjV66rpJOqJtDy9lWmXN9PmvAoGATqGINRdObom7To8jufYJXATuIKTHQPIlI3eT
|
||||
3pyzn8jz6CtOKaG5kFEaeMeEOorP9/0hbQCtyNjeNXXSGc0gj+Qc30YmtSXXuzqc
|
||||
kosSLiPpM1iCtbT3v52QZgcbqIh7WkobfXphwC3gJTVKDOpjhUp2xIeGUyZifZne
|
||||
RgcHJpkCgYA4yfNbzKPKF4sGp7CNKPnpAsE6LmK0kWBfQQAGbe7IlD90DFLgH9vz
|
||||
9erDf1oX4lrnkTtbNxbW1jrMSaAjXS6PyOr6/Qd6XoCgpcEv83Kf7/A0SUuaWTJk
|
||||
yeXy5mu3kosqk+GKvaqSzVlmJG0O6awbG1BFK51xWq1LImmVSkwjjw==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
server_cert: |+
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDDTCCAfWgAwIBAgIRAMiHeN7t0NKghK3RSflXZ5MwDQYJKoZIhvcNAQELBQAw
|
||||
EjEQMA4GA1UEChMHcmFuY2hlcjAeFw0xNjA2MDYxNjE2MDBaFw0xOTA1MjIxNjE2
|
||||
MDBaMBIxEDAOBgNVBAoTB3JhbmNoZXIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
|
||||
ggEKAoIBAQD8iRzgcfhfUuurgEzefUIMeHJRu5OF1ILsekYpJKWesYhhvA47BC1+
|
||||
Nm96BLbfmpp5A7F+ZNQvmO8tNBnnHXWPVbeBmDayLWRhzRkDbPWRx4q9ciIhUsNe
|
||||
iAeF+iAVJ+S7XTFnRPY7NS+boisuaNG1ecA4XIH/dRmd50DfGfvv6Ntv22ffV1pA
|
||||
2vmqIT0O19Bw60jIB7UJSUFofPmpo60TJH7wFusqwttCXjbHbOz/+iKP+eKLksMa
|
||||
6oYdwd+hZyHqNMCDDEryQjsnUW9+1IoVattaa/2Y+/aWaczNzbcI2xcrG76lHnD7
|
||||
Gqj8rthzv+0XP63cq5dG/KIyo11TcEXNAgMBAAGjXjBcMA4GA1UdDwEB/wQEAwID
|
||||
qDAdBgNVHSUEFjAUBggrBgEFBQcDAgYIKwYBBQUHAwEwDAYDVR0TAQH/BAIwADAd
|
||||
BgNVHREEFjAUgglsb2NhbGhvc3SCASqHBH8AAAEwDQYJKoZIhvcNAQELBQADggEB
|
||||
AHVIh+WjfMM71PJz+fEdAIhWaxKpv9x27ZcWkReIprxdO+2s7ltZgyFpZgAGn5Zo
|
||||
TSMfKkuCbjni0j+dhgWzrExVDF0sbyyYmnpskykA1lC4CLuPvdrXt55Kje/ZUmPO
|
||||
B7vfWjDeae+p3iZ9sXRcJTNhIO2GtA+gKE+9PkNRG1X9H2EOvVkZoDDaxaMZVU85
|
||||
XteKadiTwSiKkopRyyM9uhOPVg1nFtUcC4M+p1NgdSqp2gccpf6fLYocnrJrvuaG
|
||||
ci0e+nDcgYYXGj9Cl1OxDA0QIWuhWBKZPdS4RNwu8boONMqM+CGe8CibbFKBEt2R
|
||||
ZiC3i7FAxsmSVLItyaRB8EI=
|
||||
-----END CERTIFICATE-----
|
||||
server_key: |+
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpQIBAAKCAQEA/Ikc4HH4X1Lrq4BM3n1CDHhyUbuThdSC7HpGKSSlnrGIYbwO
|
||||
OwQtfjZvegS235qaeQOxfmTUL5jvLTQZ5x11j1W3gZg2si1kYc0ZA2z1kceKvXIi
|
||||
IVLDXogHhfogFSfku10xZ0T2OzUvm6IrLmjRtXnAOFyB/3UZnedA3xn77+jbb9tn
|
||||
31daQNr5qiE9DtfQcOtIyAe1CUlBaHz5qaOtEyR+8BbrKsLbQl42x2zs//oij/ni
|
||||
i5LDGuqGHcHfoWch6jTAgwxK8kI7J1FvftSKFWrbWmv9mPv2lmnMzc23CNsXKxu+
|
||||
pR5w+xqo/K7Yc7/tFz+t3KuXRvyiMqNdU3BFzQIDAQABAoIBAQDUiMDY1JJoB214
|
||||
ZP5MsbaIsEXmK6u4kmWtiCrMLZ+Fs3xIZPDFEnsHIeEoHBeckI05E7ap3UoG1PtW
|
||||
W+cA73YlL8rFMsm1oyY8eVR34Ze7HOjTD99RlEoAoRNT2nJt26lRVtlhRFTG97gd
|
||||
j5ov8N+tj84KoTB3QqJQlnOuUDwMZ41roFOLEooXSA00qDFENlpBQsEtW+3Ga5ut
|
||||
INH0CQnynIqt05p24oGxaLjrnmqbEhhJtAyGNHgIJAGoEmPwtPkPcd56QDnoO1wk
|
||||
4fBiHgdqUfj21rBFgsIuW3NGzHvtJXopS8kaR3NaIIBCfRxxytLgtNNNW77W54ig
|
||||
MvuJZr0BAoGBAP3VnIGlVZrIBzsWgPKWyPZ2s9jVR5Ub19x+6wwaGqyH19mQaGxw
|
||||
x1Wic/F4dF4qqoCwyRRkpyHmGPfChgYMEp0jff5MD2Q4JfxEtGP9agFOV0cJkJr6
|
||||
pY3zSbsmft+K4NhEBVMAQfFgb5mb5eSEWl+SI/jn6ee0PyvcI2LzXZVxAoGBAP6w
|
||||
qiy9wbXFtzA7RC2sBlGFyZekC81DTVSIv586kMDY8oqg34Z07s1JuQYvIlavJ9lw
|
||||
e50vLW8h3O2r4dge7v6CKAlbeaRtaQfpXJRezH9YQJ9lTJoXY6W7LbnBAPcexFps
|
||||
J/2rul4RSLUZPuLSpGAcYall77o3rwn9oOocL9gdAoGBAJh/Vhh5iRWFaPqxyWR0
|
||||
/GU96Uyyzd+iK6x3v6S0piPTNPWrkWDc3JTxFXET6e2M+oR4MUYENnjiMUvgXP6T
|
||||
EDfB0/cMIQ8XwJJvgGS2IZKJS1wNPggt33qJmFlMhlqsp+ql6wDznapzQnjptVL1
|
||||
xQm31c67HcarfmxORCA1j5qxAoGAIeJBEajBL7y5LWqFHIppYMkq08jYZRuSGzAC
|
||||
Rl3VSkLSqczTUCEYcClhu0fkCqJM6+nCGFxhcAqSSPB4IHelFikcyHnqCg0gTxQl
|
||||
4/tku4BzQIGKmmmIMVFguPjLdxUZzGndPCtvpPopsSZFromVos/D0nSkWyLzX6Hl
|
||||
mZ/cYaUCgYEA2xufKaPgEdYcuI1rYKHWvhb0DI6QRK/0EfPbo6jkSdpYPBXfJ61F
|
||||
JkGZVxqZI7r/U55RMmdgCpRAZCISCOm0jepaR32v5Ckan88UTyu8EuXNhvMK2jWP
|
||||
DJ+16tv9ZXGwkAVJNpVv0Ze6E4yiNZz3Nuq16nBR5QeQmQSGOwbMRRI=
|
||||
-----END RSA PRIVATE KEY-----
|
||||
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,5 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
console: debian
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,6 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
docker:
|
||||
engine: docker-1.12.6
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,32 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
network:
|
||||
interfaces:
|
||||
eth0:
|
||||
address: 10.0.2.15/24
|
||||
gateway: 10.0.2.2
|
||||
br0:
|
||||
vlans: 100
|
||||
eth1:
|
||||
vlans: 100,200:foobar
|
||||
eth1.100:
|
||||
bridge: br0
|
||||
br0.100:
|
||||
address: 123.123.123.123/32
|
||||
eth6:
|
||||
bond: bond0
|
||||
eth7:
|
||||
bond: bond0
|
||||
bond0:
|
||||
bond_opts:
|
||||
mode: 1
|
||||
address: 123.123.123.124/32
|
||||
dns:
|
||||
search:
|
||||
- mydomain.com
|
||||
- example.com
|
||||
nameservers:
|
||||
- 208.67.222.123
|
||||
- 208.67.220.123
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,5 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
cloud_init:
|
||||
datasources:
|
||||
- url:https://gist.githubusercontent.com/joshwget/0bdc616cd26162ad87c535644c8b1ef6/raw/8cce947c08cf006e932b71d92ddbb96bae8e3325/gistfile1.txt
|
@ -1,18 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
environment:
|
||||
A: A
|
||||
BB: BB
|
||||
BC: BC
|
||||
services:
|
||||
env:
|
||||
image: busybox
|
||||
command: env
|
||||
labels:
|
||||
io.rancher.os.scope: system
|
||||
io.rancher.os.before: console
|
||||
environment:
|
||||
- A
|
||||
- B*
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,18 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
environment:
|
||||
A: A
|
||||
BB: BB
|
||||
BC: BC
|
||||
services:
|
||||
env:
|
||||
image: armhf/busybox
|
||||
command: env
|
||||
labels:
|
||||
io.rancher.os.scope: system
|
||||
io.rancher.os.before: console
|
||||
environment:
|
||||
- A
|
||||
- B*
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUlsWAL5Rf0Wis/A7k7Tlqx0fZS60VzCZrPZYbP/wkL95jv0XzCx8bd1rZHeybblHPDNpND3BLv4qPY5DxRyexF4seGuzcJI/pOvGUGjQondeMPgDTFEo5w939gSdeTZcfXzQ0wAVhzwDbgH4zPfMzbdoo8Aiu9jkKljXw8IFju0gh+t6iKkGZCIjKT9o7zza1vGfkodhvi2V3VzPdNO28gaxZaRNtmBYUoVnGyR6nXN1Q3CJaVuh5o6GPCOqrhHNbYOFZKBpDiHbxPhVpxHQD2+8yUSGTG7WW75FfZePja5y8d0c/O5L37ZYx4AZAd3KgQYDBT2XCEJGQNawNbfpt
|
@ -1,18 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
environment:
|
||||
A: A
|
||||
BB: BB
|
||||
BC: BC
|
||||
services:
|
||||
env:
|
||||
image: aarch64/busybox
|
||||
command: env
|
||||
labels:
|
||||
io.rancher.os.scope: system
|
||||
io.rancher.os.before: console
|
||||
environment:
|
||||
- A
|
||||
- B*
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDUlsWAL5Rf0Wis/A7k7Tlqx0fZS60VzCZrPZYbP/wkL95jv0XzCx8bd1rZHeybblHPDNpND3BLv4qPY5DxRyexF4seGuzcJI/pOvGUGjQondeMPgDTFEo5w939gSdeTZcfXzQ0wAVhzwDbgH4zPfMzbdoo8Aiu9jkKljXw8IFju0gh+t6iKkGZCIjKT9o7zza1vGfkodhvi2V3VzPdNO28gaxZaRNtmBYUoVnGyR6nXN1Q3CJaVuh5o6GPCOqrhHNbYOFZKBpDiHbxPhVpxHQD2+8yUSGTG7WW75FfZePja5y8d0c/O5L37ZYx4AZAd3KgQYDBT2XCEJGQNawNbfpt
|
@ -1,3 +0,0 @@
|
||||
#cloud-config
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,6 +0,0 @@
|
||||
#cloud-config
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
||||
rancher:
|
||||
docker:
|
||||
engine: docker-1.13.1
|
@ -1,4 +0,0 @@
|
||||
#cloud-config
|
||||
hostname: rancher-test
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,25 +0,0 @@
|
||||
#cloud-config
|
||||
write_files:
|
||||
- path: /var/lib/rancher/conf/cloud-config.d/cloud-config1.yml
|
||||
permissions: "0444"
|
||||
owner: root
|
||||
content: |
|
||||
hostname: hostname1
|
||||
rancher:
|
||||
log: false
|
||||
- path: /var/lib/rancher/conf/cloud-config.d/cloud-config2.yml
|
||||
permissions: "0444"
|
||||
owner: root
|
||||
content: |
|
||||
hostname: hostname2
|
||||
rancher:
|
||||
debug: false
|
||||
- path: /var/lib/rancher/conf/cloud-config.d/cloud-config3.yml
|
||||
permissions: "0444"
|
||||
owner: root
|
||||
content: |
|
||||
hostname: hostname3
|
||||
rancher:
|
||||
log: true
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,8 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
network:
|
||||
http_proxy: invalid
|
||||
https_proxy: invalid
|
||||
no_proxy: invalid
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,10 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
console: alpine
|
||||
services:
|
||||
missing_image:
|
||||
image: tianon/true
|
||||
labels:
|
||||
io.rancher.os.scope: system
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,6 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
services_include:
|
||||
https://gist.githubusercontent.com/joshwget/a8dd813f35cee3cf562de4454217a533/raw/5a991bb8c37bf2a1a405f5a898231d925a78ad3d/gistfile1.txt: true
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,7 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
sysctl:
|
||||
kernel.domainname: test
|
||||
dev.cdrom.debug: 1
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,5 +0,0 @@
|
||||
#cloud-config
|
||||
mounts:
|
||||
- [ /dev/vdb, "", swap, "" ]
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,6 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
services_include:
|
||||
kernel-headers: true
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,12 +0,0 @@
|
||||
#cloud-config
|
||||
write_files:
|
||||
- path: /test
|
||||
content: test
|
||||
mounts:
|
||||
- ["/test", "/home/rancher/test", "", "bind"]
|
||||
- [/dev/vdb, /home/rancher/a, ext4, ""]
|
||||
- [/dev/vdb, /home/rancher/b, "", ""]
|
||||
- [/dev/vdb, /home/rancher/c, auto, defaults]
|
||||
- [/dev/vdb, /home/rancher/d, "auto", "defaults"]
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,30 +0,0 @@
|
||||
#cloud-config
|
||||
write_files:
|
||||
- path: "/test"
|
||||
permissions: "0644"
|
||||
owner: "root"
|
||||
content: |
|
||||
console content
|
||||
- path: "/test2"
|
||||
container: console
|
||||
permissions: "0644"
|
||||
owner: "root"
|
||||
content: |
|
||||
console content
|
||||
- path: "/test"
|
||||
container: ntp
|
||||
permissions: "0644"
|
||||
owner: "root"
|
||||
content: |
|
||||
ntp content
|
||||
- path: "/test"
|
||||
container: syslog
|
||||
permissions: "0644"
|
||||
owner: "root"
|
||||
content: |
|
||||
syslog content
|
||||
rancher:
|
||||
restart_services: [syslog]
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
||||
|
@ -1,7 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
console: debian
|
||||
docker:
|
||||
engine: docker-17.06.1-ce
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,32 +0,0 @@
|
||||
#cloud-config
|
||||
write_files:
|
||||
- path: /usr/bin/test
|
||||
permissions: "0755"
|
||||
owner: root
|
||||
content: |
|
||||
#!/bin/bash
|
||||
touch /home/rancher/test1
|
||||
- path: /opt/rancher/bin/start.sh
|
||||
permissions: "0755"
|
||||
owner: root
|
||||
content: |
|
||||
touch /home/rancher/test3
|
||||
- path: /etc/rc.local
|
||||
permissions: "0755"
|
||||
owner: root
|
||||
content: |
|
||||
wait-for-docker
|
||||
docker run -d nginx
|
||||
- path: /var/lib/rancher/conf/cloud-config-script
|
||||
permissions: "0755"
|
||||
owner: root
|
||||
content: |
|
||||
#!/bin/bash
|
||||
touch /home/rancher/test4
|
||||
runcmd:
|
||||
- []
|
||||
- [ test ]
|
||||
- [ touch, /home/rancher/test2 ]
|
||||
- echo "" > /home/rancher/test5
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,5 +0,0 @@
|
||||
#cloud-config
|
||||
rancher:
|
||||
modules: [btrfs]
|
||||
ssh_authorized_keys:
|
||||
- ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC85w9stZyiLQp/DkVO6fqwiShYcj1ClKdtCqgHtf+PLpJkFReSFu8y21y+ev09gsSMRRrjF7yt0pUHV6zncQhVeqsZtgc5WbELY2DOYUGmRn/CCvPbXovoBrQjSorqlBmpuPwsStYLr92Xn+VVsMNSUIegHY22DphGbDKG85vrKB8HxUxGIDxFBds/uE8FhSy+xsoyT/jUZDK6pgq2HnGl6D81ViIlKecpOpWlW3B+fea99ADNyZNVvDzbHE5pcI3VRw8u59WmpWOUgT6qacNVACl8GqpBvQk8sw7O/X9DSZHCKafeD9G5k+GYbAUz92fKWrx/lOXfUXPS3+c8dRIF
|
@ -1,13 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestBadState(c *C) {
|
||||
s.RunQemu(c, "--no-format", "--append", "rancher.state.dev=LABEL=BAD_STATE")
|
||||
s.CheckCall(c, "mount | grep /var/lib/docker | grep rootfs")
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestBadStateWithWait(c *C) {
|
||||
s.RunQemu(c, "--no-format", "--append", "rancher.state.dev=LABEL=BAD_STATE", "--append", "rancher.state.wait")
|
||||
s.CheckCall(c, "mount | grep /var/lib/docker | grep rootfs")
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
// NOTE: the boot2docker magic string/tar file is also used by Docker-machine
|
||||
|
||||
func (s *QemuSuite) TestBoot2DockerState(c *C) {
|
||||
s.RunQemu(c, "--fresh", "--b2d")
|
||||
s.CheckCall(c, "blkid | grep B2D_STATE")
|
||||
// And once I make run create a tar file, check that its untarred in the docker user's home dir
|
||||
// And confirm if it should add to the dir, or replace, i can't remember
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestIsoBoot2DockerState(c *C) {
|
||||
s.RunQemu(c, "--fresh", "--b2d", "--iso")
|
||||
s.CheckCall(c, "blkid | grep B2D_STATE")
|
||||
s.CheckCall(c, "sudo ros config get rancher.state.dev | grep LABEL=B2D_STATE")
|
||||
s.CheckCall(c, "sudo ros config get rancher.state.autoformat | grep vda")
|
||||
// And once I make run create a tar file, check that its untarred in the docker user's home dir
|
||||
// And confirm if it should add to the dir, or replace, i can't remember
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestRancherOSState(c *C) {
|
||||
s.RunQemu(c, "--fresh")
|
||||
s.CheckCall(c, "blkid | grep RANCHER_STATE")
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestCloudConfigHostname(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_13/cloud-config.yml")
|
||||
|
||||
s.CheckCall(c, "hostname | grep rancher-test")
|
||||
s.CheckCall(c, "cat /etc/hosts | grep rancher-test")
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
package integration
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
. "gopkg.in/check.v1"
|
||||
)
|
||||
|
||||
func (s *QemuSuite) TestCloudConfigInstall(c *C) {
|
||||
s.RunQemu(c,
|
||||
"--iso",
|
||||
"--fresh",
|
||||
"--no-format",
|
||||
"--cloud-config", "./tests/assets/cloud_config_install_test/cloud-config.yml")
|
||||
|
||||
//check we have a particular version, from iso
|
||||
s.CheckOutput(c, " Backing Filesystem: tmpfs\n", Equals, "sudo system-docker info | grep Filesystem")
|
||||
//and no persistence yet
|
||||
//s.CheckOutput(c, "\n", Equals, "sudo blkid")
|
||||
// TODO: need some way to wait for install to complete.
|
||||
time.Sleep(time.Second)
|
||||
for {
|
||||
result, _ := s.MakeCall("cat", "/var/log/ros-install.log")
|
||||
if result == "done\n" {
|
||||
break
|
||||
}
|
||||
time.Sleep(time.Second * 3)
|
||||
}
|
||||
//check we have persistence and that ros-install completed ok
|
||||
s.CheckOutput(c, "/dev/vda1:\n", Equals, "sudo blkid | grep RANCHER_STATE | cut -d ' ' -f 1")
|
||||
s.CheckOutput(c, "LABEL=\"RANCHER_STATE\"\n", Equals, "sudo blkid | grep vda1 | cut -d ' ' -f 2")
|
||||
|
||||
//reboot, and check we're using the new non-iso install
|
||||
s.Stop(c)
|
||||
s.RunQemuWith(c, "--qemu", "--boothd", "--no-rm-usr")
|
||||
s.CheckOutput(c, "/dev/vda1:\n", Equals, "sudo blkid | grep RANCHER_STATE | cut -d ' ' -f 1")
|
||||
s.CheckOutput(c, "LABEL=\"RANCHER_STATE\"\n", Equals, "sudo blkid | grep vda1 | cut -d ' ' -f 2")
|
||||
s.CheckOutput(c, " Backing Filesystem: extfs\n", Equals, "sudo system-docker info | grep Filesystem")
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestReadDatasourcesFromDisk(c *C) {
|
||||
s.RunQemu(c, "--debug")
|
||||
|
||||
s.CheckCall(c, `
|
||||
sudo tee /var/lib/rancher/conf/cloud-config.d/datasources.yml << EOF
|
||||
rancher:
|
||||
cloud_init:
|
||||
datasources:
|
||||
- url:https://gist.githubusercontent.com/joshwget/e1c49f8b1ddeeba01bc9d0a3be01ed60/raw/9168b380fde182d53acea487d49b680648a0ca5b/gistfile1.txt
|
||||
EOF
|
||||
`)
|
||||
|
||||
s.Reboot(c)
|
||||
|
||||
s.CheckCall(c, "sudo ros config get rancher.log | grep true")
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestIsoCloudConfig(c *C) {
|
||||
runArgs := []string{
|
||||
"--fresh",
|
||||
"--cloud-config-iso",
|
||||
}
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
|
||||
s.CheckCall(c, `ls .ssh/authorized_keys`)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestFatCloudConfig(c *C) {
|
||||
runArgs := []string{
|
||||
"--fresh",
|
||||
"--cloud-config-fat",
|
||||
}
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
|
||||
s.CheckCall(c, `ls .ssh/authorized_keys`)
|
||||
}
|
@ -1,61 +0,0 @@
|
||||
package integration
|
||||
|
||||
import (
|
||||
. "gopkg.in/check.v1"
|
||||
|
||||
"fmt"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func (s *QemuSuite) TestElideCmdLine(c *C) {
|
||||
extra := "cc.hostname=nope rancher.password=three"
|
||||
runArgs := []string{
|
||||
"--fresh",
|
||||
"--append",
|
||||
"cc.something=yes rancher.password=two",
|
||||
"--append-init",
|
||||
extra,
|
||||
}
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
|
||||
s.CheckOutput(c, "nope\n", Equals, "hostname")
|
||||
cmdline := s.CheckOutput(c, "", Not(Equals), "cat /proc/cmdline")
|
||||
if strings.Contains(cmdline, extra) {
|
||||
c.Errorf("/proc/cmdline (%s) contains info that should be elided (%s)", cmdline, extra)
|
||||
}
|
||||
s.CheckOutput(c,
|
||||
fmt.Sprintf("/init %s\n", extra),
|
||||
Equals,
|
||||
"sudo ros config get rancher.environment.EXTRA_CMDLINE",
|
||||
)
|
||||
// TODO: it seems that rancher.password and rancher.autologin are in `ros config export`, but accessible as `ros config get`
|
||||
s.CheckOutput(c, "\n", Equals, "sudo ros config get rancher.password")
|
||||
s.CheckOutput(c,
|
||||
"EXTRA_CMDLINE: /init cc.hostname=nope rancher.password=three\n"+
|
||||
" EXTRA_CMDLINE: /init cc.hostname=nope rancher.password=three\n"+
|
||||
" password: three\n",
|
||||
Equals,
|
||||
"sudo ros config export | grep password",
|
||||
)
|
||||
|
||||
// And then add a service.yml file example.
|
||||
s.CheckCall(c,
|
||||
`echo 'test:
|
||||
image: alpine
|
||||
command: echo "tell me a secret ${EXTRA_CMDLINE}"
|
||||
labels:
|
||||
io.rancher.os.scope: system
|
||||
environment:
|
||||
- EXTRA_CMDLINE
|
||||
' > test.yml`)
|
||||
s.CheckCall(c, "sudo mv test.yml /var/lib/rancher/conf/test.yml")
|
||||
s.CheckCall(c, "sudo ros service enable /var/lib/rancher/conf/test.yml")
|
||||
s.CheckCall(c, "sudo ros service up test")
|
||||
s.CheckOutput(c,
|
||||
"test_1 | tell me a secret /init cc.hostname=nope rancher.password=three\n",
|
||||
Equals,
|
||||
"sudo ros service logs test | grep secret",
|
||||
)
|
||||
|
||||
// TODO: add a test showing we have the right password set
|
||||
}
|
@ -1,285 +0,0 @@
|
||||
package integration
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
"runtime"
|
||||
"strings"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/gbazil/telnet"
|
||||
|
||||
. "gopkg.in/check.v1"
|
||||
)
|
||||
|
||||
func Test(t *testing.T) { TestingT(t) }
|
||||
|
||||
func init() {
|
||||
Suite(&QemuSuite{
|
||||
runCommand: "../scripts/run",
|
||||
sshCommand: "../scripts/ssh",
|
||||
qemuCmd: nil,
|
||||
})
|
||||
}
|
||||
|
||||
var (
|
||||
BusyboxImage = map[string]string{
|
||||
"amd64": "busybox",
|
||||
"arm": "armhf/busybox",
|
||||
"arm64": "aarch64/busybox",
|
||||
}[runtime.GOARCH]
|
||||
NginxImage = map[string]string{
|
||||
"amd64": "nginx",
|
||||
"arm": "armhfbuild/nginx",
|
||||
"arm64": "armhfbuild/nginx",
|
||||
}[runtime.GOARCH]
|
||||
Version = os.Getenv("VERSION")
|
||||
Suffix = os.Getenv("SUFFIX")
|
||||
)
|
||||
|
||||
type QemuSuite struct {
|
||||
runCommand string
|
||||
sshCommand string
|
||||
qemuCmd *exec.Cmd
|
||||
netConsole telnet.Telnet
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TearDownTest(c *C) {
|
||||
if s.qemuCmd != nil {
|
||||
s.Stop(c)
|
||||
}
|
||||
time.Sleep(time.Second)
|
||||
}
|
||||
|
||||
// RunQemuWith requires user to specify all the `scripts/run` arguments
|
||||
func (s *QemuSuite) RunQemuWith(c *C, additionalArgs ...string) error {
|
||||
|
||||
err := s.runQemu(c, additionalArgs...)
|
||||
c.Assert(err, IsNil)
|
||||
err = s.WaitForSSH()
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *QemuSuite) RunQemu(c *C, additionalArgs ...string) error {
|
||||
runArgs := []string{
|
||||
"--qemu",
|
||||
"--no-rebuild",
|
||||
"--no-rm-usr",
|
||||
"--fresh",
|
||||
}
|
||||
runArgs = append(runArgs, additionalArgs...)
|
||||
|
||||
err := s.RunQemuWith(c, runArgs...)
|
||||
c.Assert(err, IsNil)
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *QemuSuite) RunQemuInstalled(c *C, additionalArgs ...string) error {
|
||||
runArgs := []string{
|
||||
"--fresh",
|
||||
}
|
||||
runArgs = append(runArgs, additionalArgs...)
|
||||
|
||||
err := s.RunQemu(c, runArgs...)
|
||||
c.Assert(err, IsNil)
|
||||
return err
|
||||
}
|
||||
|
||||
// RunQemuWithNetConsole requires user to specify all the `scripts/run` arguments
|
||||
func (s *QemuSuite) RunQemuWithNetConsole(c *C, additionalArgs ...string) error {
|
||||
runArgs := []string{
|
||||
"--netconsole",
|
||||
}
|
||||
runArgs = append(runArgs, additionalArgs...)
|
||||
|
||||
err := s.runQemu(c, runArgs...)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
// start telnet, and wait for prompt
|
||||
for i := 0; i < 20; i++ {
|
||||
s.netConsole, err = telnet.DialTimeout("127.0.0.1:4444", 5*time.Second)
|
||||
if err == nil {
|
||||
fmt.Printf("t%d SUCCEEDED\n", i)
|
||||
break
|
||||
}
|
||||
fmt.Printf("t%d", i)
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
}
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
for i := 0; i < 20; i++ {
|
||||
time.Sleep(1 * time.Second)
|
||||
|
||||
res := s.NetCall("uname")
|
||||
if strings.Contains(res, "Linux") {
|
||||
fmt.Printf("W%d SUCCEEDED(%s)\n", i, res)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
s.NetCall("ip a")
|
||||
s.NetCall("cat /proc/cmdline")
|
||||
|
||||
return err
|
||||
}
|
||||
|
||||
func (s *QemuSuite) NetCall(cmd string) string {
|
||||
s.netConsole.Write(cmd + "\n")
|
||||
r, err := s.netConsole.Read("\n")
|
||||
fmt.Printf("cmd> %s", r)
|
||||
result := ""
|
||||
r = ""
|
||||
for err == nil {
|
||||
r, err = s.netConsole.Read("\n")
|
||||
fmt.Printf("\t%s", r)
|
||||
result = result + r
|
||||
}
|
||||
fmt.Printf("\n")
|
||||
// Note, if the result contains something like "+ cmd\n", you may have set -xe on
|
||||
return result
|
||||
}
|
||||
func (s *QemuSuite) NetCheckCall(c *C, additionalArgs ...string) {
|
||||
out := s.NetCall(strings.Join(additionalArgs, " "))
|
||||
c.Assert(out, Not(Equals), "")
|
||||
}
|
||||
func (s *QemuSuite) NetCheckOutput(c *C, result string, check Checker, additionalArgs ...string) string {
|
||||
out := s.NetCall(strings.Join(additionalArgs, " "))
|
||||
out = strings.Replace(out, "\r", "", -1)
|
||||
c.Assert(out, check, result)
|
||||
return out
|
||||
}
|
||||
|
||||
func (s *QemuSuite) runQemu(c *C, args ...string) error {
|
||||
c.Assert(s.qemuCmd, IsNil) // can't run 2 qemu's at once (yet)
|
||||
time.Sleep(time.Second)
|
||||
s.qemuCmd = exec.Command(s.runCommand, args...)
|
||||
if os.Getenv("DEBUG") != "" {
|
||||
s.qemuCmd.Stdout = os.Stdout
|
||||
s.qemuCmd.Stderr = os.Stderr
|
||||
}
|
||||
if err := s.qemuCmd.Start(); err != nil {
|
||||
return err
|
||||
}
|
||||
fmt.Printf("--- %s: starting qemu %s, %v\n", c.TestName(), s.runCommand, args)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *QemuSuite) WaitForSSH() error {
|
||||
sshArgs := []string{
|
||||
"--qemu",
|
||||
"true",
|
||||
}
|
||||
|
||||
var err error
|
||||
for i := 0; i < 100; i++ {
|
||||
cmd := exec.Command(s.sshCommand, sshArgs...)
|
||||
if err = cmd.Run(); err == nil {
|
||||
break
|
||||
}
|
||||
fmt.Printf("s%d", i)
|
||||
time.Sleep(time.Second)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
return fmt.Errorf("Failed to connect to SSH: %v", err)
|
||||
}
|
||||
|
||||
sshArgs = []string{
|
||||
"--qemu",
|
||||
"docker",
|
||||
"version",
|
||||
">/dev/null",
|
||||
"2>&1",
|
||||
}
|
||||
|
||||
for i := 0; i < 20; i++ {
|
||||
cmd := exec.Command(s.sshCommand, sshArgs...)
|
||||
if err = cmd.Run(); err == nil {
|
||||
return nil
|
||||
}
|
||||
fmt.Printf("d%d", i)
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
}
|
||||
|
||||
return fmt.Errorf("Failed to check Docker version: %v", err)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) MakeCall(additionalArgs ...string) (string, error) {
|
||||
sshArgs := []string{
|
||||
"--qemu",
|
||||
}
|
||||
sshArgs = append(sshArgs, additionalArgs...)
|
||||
|
||||
cmd := exec.Command(s.sshCommand, sshArgs...)
|
||||
cmd.Stderr = os.Stderr
|
||||
out, err := cmd.Output()
|
||||
str := string(out)
|
||||
fmt.Println(str)
|
||||
return str, err
|
||||
}
|
||||
|
||||
func (s *QemuSuite) CheckCall(c *C, additionalArgs ...string) {
|
||||
_, err := s.MakeCall(additionalArgs...)
|
||||
c.Assert(err, IsNil)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) CheckOutput(c *C, result string, check Checker, additionalArgs ...string) string {
|
||||
out, err := s.MakeCall(additionalArgs...)
|
||||
c.Assert(err, IsNil)
|
||||
c.Assert(out, check, result)
|
||||
return out
|
||||
}
|
||||
|
||||
func (s *QemuSuite) CheckOutputContains(c *C, result string, additionalArgs ...string) string {
|
||||
out, err := s.MakeCall(additionalArgs...)
|
||||
c.Assert(err, IsNil)
|
||||
c.Assert(strings.Contains(out, result), Equals, true)
|
||||
return out
|
||||
}
|
||||
|
||||
func (s *QemuSuite) Stop(c *C) {
|
||||
fmt.Printf("%s: stopping qemu\n", c.TestName())
|
||||
//s.MakeCall("sudo poweroff")
|
||||
time.Sleep(1000 * time.Millisecond)
|
||||
//c.Assert(s.WaitForSSH(), IsNil)
|
||||
|
||||
fmt.Printf("%s: stopping qemu 2\n", c.TestName())
|
||||
c.Assert(s.qemuCmd.Process.Kill(), IsNil)
|
||||
fmt.Printf("%s: stopping qemu 3\n", c.TestName())
|
||||
s.qemuCmd.Process.Wait()
|
||||
time.Sleep(time.Second)
|
||||
s.qemuCmd = nil
|
||||
fmt.Printf("--- %s: qemu stopped", c.TestName())
|
||||
}
|
||||
|
||||
func (s *QemuSuite) Reboot(c *C) {
|
||||
fmt.Printf("--- %s: qemu reboot", c.TestName())
|
||||
s.MakeCall("sudo reboot")
|
||||
time.Sleep(3000 * time.Millisecond)
|
||||
c.Assert(s.WaitForSSH(), IsNil)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) LoadInstallerImage(c *C) {
|
||||
cmd := exec.Command("sh", "-c", fmt.Sprintf("docker save rancher/os:%s%s | ../scripts/ssh --qemu sudo system-docker load", Version, Suffix))
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
c.Assert(cmd.Run(), IsNil)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) PullAndLoadImage(c *C, image string) {
|
||||
cmd := exec.Command("sh", "-c", fmt.Sprintf("docker pull %s", image))
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
c.Assert(cmd.Run(), IsNil)
|
||||
|
||||
cmd = exec.Command("sh", "-c", fmt.Sprintf("docker save %s | ../scripts/ssh --qemu sudo system-docker load", image))
|
||||
cmd.Stdout = os.Stdout
|
||||
cmd.Stderr = os.Stderr
|
||||
c.Assert(cmd.Run(), IsNil)
|
||||
}
|
@ -1,73 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestCloudConfigConsole(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_03/cloud-config.yml")
|
||||
|
||||
s.CheckCall(c, "apt-get --version")
|
||||
s.CheckCall(c, `
|
||||
sudo ros console list | grep default | grep disabled
|
||||
sudo ros console list | grep debian | grep current`)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestConsoleCommand(c *C) {
|
||||
s.RunQemu(c)
|
||||
|
||||
s.CheckCall(c, `
|
||||
sudo ros console list | grep default | grep current
|
||||
sudo ros console list | grep debian | grep disabled
|
||||
(sudo ros console switch invalid 2>&1 || true) | grep "invalid is not a valid console"
|
||||
(sudo ros console enable invalid 2>&1 || true) | grep "invalid is not a valid console"`)
|
||||
|
||||
s.MakeCall("sudo ros console switch -f debian")
|
||||
c.Assert(s.WaitForSSH(), IsNil)
|
||||
|
||||
s.CheckCall(c, "apt-get --version")
|
||||
s.CheckCall(c, `
|
||||
sudo ros console list | grep default | grep disabled
|
||||
sudo ros console list | grep debian | grep current`)
|
||||
|
||||
s.Reboot(c)
|
||||
|
||||
s.CheckCall(c, "apt-get --version")
|
||||
s.CheckCall(c, `
|
||||
sudo ros console list | grep default | grep disabled
|
||||
sudo ros console list | grep debian | grep current`)
|
||||
|
||||
s.MakeCall("sudo ros console switch -f default")
|
||||
c.Assert(s.WaitForSSH(), IsNil)
|
||||
|
||||
s.CheckCall(c, `
|
||||
sudo ros console list | grep default | grep current
|
||||
sudo ros console list | grep debian | grep disabled`)
|
||||
|
||||
s.CheckCall(c, "sudo ros console enable debian")
|
||||
|
||||
s.CheckCall(c, "sudo ros console list | grep default | grep current")
|
||||
s.CheckCall(c, "sudo ros console list | grep debian | grep enabled")
|
||||
|
||||
s.Reboot(c)
|
||||
|
||||
s.CheckCall(c, `
|
||||
sudo ros console list | grep default | grep disabled
|
||||
sudo ros console list | grep debian | grep current`)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestContainersRestartAfterConsoleSwitch(c *C) {
|
||||
s.RunQemu(c)
|
||||
|
||||
s.CheckCall(c, `
|
||||
docker run -d --restart=always nginx
|
||||
docker ps | grep nginx`)
|
||||
|
||||
s.MakeCall("sudo ros console switch -f debian")
|
||||
c.Assert(s.WaitForSSH(), IsNil)
|
||||
|
||||
s.CheckCall(c, "docker ps | grep nginx")
|
||||
s.CheckCall(c, "sudo ros console enable default")
|
||||
|
||||
s.Reboot(c)
|
||||
|
||||
s.CheckCall(c, "docker ps | grep nginx")
|
||||
}
|
@ -1,68 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestCustomDocker(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_05/cloud-config.yml")
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -ex
|
||||
|
||||
docker version | grep 1.12.6
|
||||
|
||||
sudo ros engine list | grep 1.12.6 | grep current
|
||||
(sudo ros engine switch invalid 2>&1 || true) | grep "invalid is not a valid engine"
|
||||
(sudo ros engine enable invalid 2>&1 || true) | grep "invalid is not a valid engine"
|
||||
|
||||
docker run -d --restart=always nginx
|
||||
docker ps | grep nginx`)
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -ex
|
||||
|
||||
sudo ros engine switch docker-1.13.1
|
||||
/usr/sbin/wait-for-docker
|
||||
docker version | grep 1.13.1
|
||||
sudo ros engine list | grep 1.13.1 | grep current
|
||||
docker ps | grep nginx`)
|
||||
|
||||
s.Reboot(c)
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -ex
|
||||
|
||||
docker version | grep 1.13.1
|
||||
sudo ros engine list | grep 1.13.1 | grep current
|
||||
docker ps | grep nginx`)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestCustomDockerInPersistentConsole(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_25/cloud-config.yml")
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -ex
|
||||
|
||||
apt-get --version
|
||||
docker version | grep 17.06.1-ce
|
||||
sudo ros engine list | grep 17.06.1-ce | grep current
|
||||
docker run -d --restart=always nginx
|
||||
docker ps | grep nginx`)
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -ex
|
||||
|
||||
sudo ros engine switch docker-1.12.6
|
||||
/usr/sbin/wait-for-docker
|
||||
docker version | grep 1.12.6
|
||||
sudo ros engine list | grep 1.12.6 | grep current
|
||||
docker ps | grep nginx`)
|
||||
|
||||
s.Reboot(c)
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -ex
|
||||
|
||||
docker version | grep 1.12.6
|
||||
sudo ros engine list | grep 1.12.6 | grep current
|
||||
docker ps | grep nginx`)
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestDhcpHostname(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_12/cloud-config.yml")
|
||||
|
||||
s.CheckCall(c, "hostname | grep rancher-dev")
|
||||
s.CheckCall(c, "cat /etc/hosts | grep rancher-dev")
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestEnvironment(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_11/cloud-config.yml")
|
||||
|
||||
s.CheckCall(c, "sudo system-docker inspect env | grep A=A")
|
||||
s.CheckCall(c, "sudo system-docker inspect env | grep BB=BB")
|
||||
s.CheckCall(c, "sudo system-docker inspect env | grep BC=BC")
|
||||
}
|
@ -1,31 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestHttpProxy(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_17/cloud-config.yml")
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -x -e
|
||||
|
||||
sudo system-docker inspect docker | grep HTTP_PROXY=invalid
|
||||
sudo system-docker inspect docker | grep HTTPS_PROXY=invalid
|
||||
sudo system-docker inspect docker | grep NO_PROXY=invalid
|
||||
|
||||
if docker pull busybox; then
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
fi`)
|
||||
|
||||
s.Reboot(c)
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -x -e
|
||||
|
||||
if sudo system-docker pull busybox; then
|
||||
exit 1
|
||||
else
|
||||
exit 0
|
||||
fi`)
|
||||
}
|
@ -1,273 +0,0 @@
|
||||
package integration
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
. "gopkg.in/check.v1"
|
||||
)
|
||||
|
||||
func (s *QemuSuite) TestInstallMsDosMbr(c *C) {
|
||||
// test_17 cloud config is an invalid http proxy cfg, so the installer has no network
|
||||
runArgs := []string{
|
||||
"--iso",
|
||||
"--fresh",
|
||||
"--cloud-config",
|
||||
"./tests/assets/test_17/cloud-config.yml",
|
||||
}
|
||||
version := ""
|
||||
{
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
version = s.CheckOutput(c, version, Not(Equals), "sudo ros -v")
|
||||
fmt.Printf("installing %s", version)
|
||||
|
||||
s.CheckCall(c, `
|
||||
echo "---------------------------------- generic"
|
||||
set -ex
|
||||
sudo parted /dev/vda print
|
||||
echo "ssh_authorized_keys:" > config.yml
|
||||
echo " - $(cat /home/rancher/.ssh/authorized_keys)" >> config.yml
|
||||
sudo ros install --force --no-reboot --device /dev/vda -c config.yml --append rancher.password=rancher
|
||||
sync
|
||||
`)
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
s.Stop(c)
|
||||
}
|
||||
|
||||
// ./scripts/run --no-format --append "rancher.debug=true"
|
||||
runArgs = []string{
|
||||
"--boothd",
|
||||
}
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
|
||||
s.CheckOutput(c, version, Equals, "sudo ros -v")
|
||||
s.Stop(c)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestInstallGptMbr(c *C) {
|
||||
// ./scripts/run --no-format --append "rancher.debug=true" --iso --fresh
|
||||
runArgs := []string{
|
||||
"--iso",
|
||||
"--fresh",
|
||||
}
|
||||
version := ""
|
||||
{
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
|
||||
version = s.CheckOutput(c, version, Not(Equals), "sudo ros -v")
|
||||
fmt.Printf("installing %s", version)
|
||||
|
||||
s.CheckCall(c, `
|
||||
echo "---------------------------------- gptsyslinux"
|
||||
set -ex
|
||||
sudo parted /dev/vda print
|
||||
echo "ssh_authorized_keys:" > config.yml
|
||||
echo " - $(cat /home/rancher/.ssh/authorized_keys)" >> config.yml
|
||||
sudo ros install --force --no-reboot --device /dev/vda -t gptsyslinux -c config.yml
|
||||
sync
|
||||
`)
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
s.Stop(c)
|
||||
}
|
||||
|
||||
// ./scripts/run --no-format --append "rancher.debug=true"
|
||||
runArgs = []string{
|
||||
"--boothd",
|
||||
}
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
|
||||
s.CheckOutput(c, version, Equals, "sudo ros -v")
|
||||
// TEST parted output? (gpt non-uefi == legacy_boot)
|
||||
s.Stop(c)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestInstallAlpine(c *C) {
|
||||
// ./scripts/run --no-format --append "rancher.debug=true" --iso --fresh
|
||||
runArgs := []string{
|
||||
"--iso",
|
||||
"--fresh",
|
||||
}
|
||||
version := ""
|
||||
{
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
|
||||
s.MakeCall("sudo ros console switch -f alpine")
|
||||
c.Assert(s.WaitForSSH(), IsNil)
|
||||
|
||||
version = s.CheckOutput(c, version, Not(Equals), "sudo ros -v")
|
||||
fmt.Printf("installing %s", version)
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -ex
|
||||
echo "ssh_authorized_keys:" > config.yml
|
||||
echo " - $(cat /home/rancher/.ssh/authorized_keys)" >> config.yml
|
||||
sudo ros install --force --no-reboot --device /dev/vda -c config.yml
|
||||
sync
|
||||
`)
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
s.Stop(c)
|
||||
}
|
||||
|
||||
// ./scripts/run --no-format --append "rancher.debug=true"
|
||||
runArgs = []string{
|
||||
"--boothd",
|
||||
}
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
|
||||
s.CheckOutput(c, version, Equals, "sudo ros -v")
|
||||
s.Stop(c)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestAutoResize(c *C) {
|
||||
runArgs := []string{
|
||||
"--iso",
|
||||
"--fresh",
|
||||
}
|
||||
version := ""
|
||||
disk := "/dev/vda1\n"
|
||||
size := ""
|
||||
{
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
|
||||
version = s.CheckOutput(c, version, Not(Equals), "sudo ros -v")
|
||||
fmt.Printf("installing %s", version)
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -ex
|
||||
echo "ssh_authorized_keys:" > config.yml
|
||||
echo " - $(cat /home/rancher/.ssh/authorized_keys)" >> config.yml
|
||||
sudo ros install --force --no-reboot --device /dev/vda -c config.yml --append "rancher.resize_device=/dev/vda"
|
||||
sync
|
||||
`)
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
s.CheckCall(c, "sudo mount "+strings.TrimSpace(disk)+" /mnt")
|
||||
size = s.CheckOutput(c, size, Not(Equals), "df -h | grep "+strings.TrimSpace(disk)+" | head -n1 | sed 's/ \\+/;/g' | cut -d ';' -f 2")
|
||||
s.Stop(c)
|
||||
}
|
||||
|
||||
// ./scripts/run --no-format --append "rancher.debug=true"
|
||||
runArgs = []string{
|
||||
"--boothd",
|
||||
"--resizehd", "+20G",
|
||||
}
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
|
||||
s.CheckOutput(c, version, Equals, "sudo ros -v")
|
||||
s.CheckOutput(c, disk, Equals, "blkid | cut -f 1 -d ' ' | sed 's/://'")
|
||||
s.CheckOutput(c, size, Not(Equals), "df -h | grep "+strings.TrimSpace(disk)+" | head -n1 | sed 's/ \\+/;/g' | cut -d ';' -f 2")
|
||||
|
||||
s.Stop(c)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) KillsMyServerTestInstalledDhcp(c *C) {
|
||||
// ./scripts/run --no-format --append "rancher.debug=true" --iso --fresh
|
||||
runArgs := []string{
|
||||
"--iso",
|
||||
"--fresh",
|
||||
// "-net", "nic,vlan=0,model=virtio",
|
||||
// "-net", "user,vlan=0",
|
||||
// "-net", "nic,vlan=0,model=virtio",
|
||||
// "-net", "user,vlan=0",
|
||||
}
|
||||
version := ""
|
||||
{
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
|
||||
s.MakeCall("ip a")
|
||||
|
||||
version = s.CheckOutput(c, version, Not(Equals), "sudo ros -v")
|
||||
fmt.Printf("installing %s", version)
|
||||
|
||||
s.CheckCall(c, `
|
||||
echo "ssh_authorized_keys:" > config.yml
|
||||
echo " - $(cat /home/rancher/.ssh/authorized_keys)" >> config.yml
|
||||
echo "rancher:" >> config.yml
|
||||
echo " network:" >> config.yml
|
||||
echo " interfaces:" >> config.yml
|
||||
echo " eth2:" >> config.yml
|
||||
echo " dhcp: true" >> config.yml
|
||||
echo " eth1:" >> config.yml
|
||||
echo " address: 10.0.2.253/24" >> config.yml
|
||||
echo " dhcp: false" >> config.yml
|
||||
echo " gateway: 10.0.2.1" >> config.yml
|
||||
echo " mtu: 1500" >> config.yml
|
||||
ip a
|
||||
echo "==================="
|
||||
cat config.yml | sudo ros config merge
|
||||
sudo ros service stop network
|
||||
sleep 1
|
||||
sudo ros service start network
|
||||
sleep 1
|
||||
ip a
|
||||
echo "==================="
|
||||
sudo ros install --force --no-reboot --device /dev/vda -c config.yml -a "console=ttyS0 rancher.autologin=ttyS0 console=ttyS1 rancher.autologin=ttyS1 rancher.debug=true"
|
||||
sync
|
||||
`)
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
s.Stop(c)
|
||||
}
|
||||
|
||||
runArgs = []string{
|
||||
"--boothd",
|
||||
"-net", "nic,vlan=0,model=virtio",
|
||||
"-net", "user,vlan=0",
|
||||
"-net", "nic,vlan=0,model=virtio",
|
||||
"-net", "user,vlan=0",
|
||||
}
|
||||
s.RunQemuWithNetConsole(c, runArgs...)
|
||||
|
||||
s.NetCheckOutput(c, version, Equals, "sudo ros -v")
|
||||
s.NetCheckOutput(c, "", Not(Equals), "sh", "-c", "ip a show eth1 | grep 10.0.2..253")
|
||||
s.Stop(c)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestConfigDhcp(c *C) {
|
||||
runArgs := []string{
|
||||
"--iso",
|
||||
"--fresh",
|
||||
"-net", "nic,vlan=0,model=virtio",
|
||||
"-net", "user,vlan=0",
|
||||
"-net", "nic,vlan=0,model=virtio",
|
||||
"-net", "user,vlan=0",
|
||||
}
|
||||
version := ""
|
||||
{
|
||||
s.RunQemuWithNetConsole(c, runArgs...)
|
||||
|
||||
s.NetCall("ip a")
|
||||
|
||||
version = s.NetCheckOutput(c, version, Not(Equals), "sudo ros -v")
|
||||
fmt.Printf("installing %s", version)
|
||||
|
||||
s.NetCheckCall(c, `
|
||||
echo "ssh_authorized_keys:" > config.yml
|
||||
echo " - $(cat /home/rancher/.ssh/authorized_keys)" >> config.yml
|
||||
echo "rancher:" >> config.yml
|
||||
echo " network:" >> config.yml
|
||||
echo " interfaces:" >> config.yml
|
||||
echo " eth2:" >> config.yml
|
||||
echo " dhcp: true" >> config.yml
|
||||
echo " eth1:" >> config.yml
|
||||
echo " address: 10.0.2.253/24" >> config.yml
|
||||
echo " dhcp: false" >> config.yml
|
||||
echo " gateway: 10.0.2.1" >> config.yml
|
||||
echo " mtu: 1500" >> config.yml
|
||||
ip a
|
||||
echo "==================="
|
||||
cat config.yml | sudo ros config merge
|
||||
sudo ros service stop network
|
||||
sleep 1
|
||||
sudo ros service start network
|
||||
sleep 1
|
||||
echo "==================="
|
||||
sudo system-docker logs network
|
||||
echo "==================="
|
||||
ip a
|
||||
`)
|
||||
|
||||
s.NetCheckOutput(c, version, Equals, "sudo ros -v")
|
||||
s.NetCheckOutput(c, "", Not(Equals), "sh", "-c", "\"ip a show eth1 | grep 10.0.2.253\"")
|
||||
s.Stop(c)
|
||||
}
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestKernelHeaders(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_22/cloud-config.yml")
|
||||
|
||||
s.CheckCall(c, `
|
||||
sleep 30
|
||||
sudo system-docker inspect kernel-headers`)
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestLenientServiceParsing(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_19/cloud-config.yml")
|
||||
|
||||
s.CheckCall(c, `
|
||||
sleep 5
|
||||
sudo system-docker ps -a | grep test-parsing`)
|
||||
}
|
@ -1,29 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestMisc(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_01/cloud-config.yml")
|
||||
|
||||
s.CheckCall(c, "sudo ros env printenv FLANNEL_NETWORK | grep '10.244.0.0/16'")
|
||||
|
||||
s.CheckCall(c, "ps -ef | grep 'dhcpcd -M'")
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -e -x
|
||||
sudo ros tls gen --server -H localhost
|
||||
sudo ros tls gen
|
||||
sudo ros c set rancher.docker.tls true
|
||||
sudo system-docker restart docker
|
||||
sleep 5
|
||||
docker --tlsverify version`)
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -e -x
|
||||
for i in $(pidof system-docker); do
|
||||
if [ $i = 1 ]; then
|
||||
found=true
|
||||
fi
|
||||
done
|
||||
[ "$found" = "true" ]`)
|
||||
}
|
@ -1,13 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestKernelParameterModule(c *C) {
|
||||
s.RunQemu(c, "--append", "rancher.modules=[btrfs]")
|
||||
s.CheckCall(c, "lsmod | grep btrfs")
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestCloudConfigModule(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_27/cloud-config.yml")
|
||||
s.CheckCall(c, "lsmod | grep btrfs")
|
||||
}
|
@ -1,17 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestMounts(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_23/cloud-config.yml", "--second-drive")
|
||||
|
||||
s.CheckCall(c, "cat /home/rancher/test | grep test")
|
||||
|
||||
s.CheckCall(c, "mkdir -p /home/rancher/a /home/rancher/b /home/rancher/c")
|
||||
s.CheckCall(c, "sudo mkfs.ext4 /dev/vdb")
|
||||
s.CheckCall(c, "sudo cloud-init-execute")
|
||||
s.CheckCall(c, "mount | grep /home/rancher/a")
|
||||
s.CheckCall(c, "mount | grep /home/rancher/b")
|
||||
s.CheckCall(c, "mount | grep /home/rancher/c")
|
||||
s.CheckCall(c, "mount | grep /home/rancher/d")
|
||||
}
|
@ -1,56 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestNetworkFromUrl(c *C) {
|
||||
netArgs := []string{"-net", "nic,vlan=0,model=virtio"}
|
||||
args := []string{"--append", "rancher.debug=true rancher.password=test-me rancher.cloud_init.datasources=[url:https://gist.githubusercontent.com/joshwget/0bdc616cd26162ad87c535644c8b1ef6/raw/8cce947c08cf006e932b71d92ddbb96bae8e3325/gistfile1.txt]"}
|
||||
for i := 0; i < 7; i++ {
|
||||
args = append(args, netArgs...)
|
||||
}
|
||||
s.RunQemuWithNetConsole(c, args...)
|
||||
|
||||
s.NetCheckCall(c, `
|
||||
cat > test-merge << "SCRIPT"
|
||||
set -x -e
|
||||
|
||||
ip link show dev br0
|
||||
ip link show dev br0.100 | grep br0.100@br0
|
||||
ip link show dev eth1.100 | grep 'master br0'
|
||||
|
||||
SCRIPT
|
||||
sudo bash test-merge`)
|
||||
|
||||
s.NetCheckCall(c, `
|
||||
cat > test-merge << "SCRIPT"
|
||||
set -x -e
|
||||
|
||||
cat /etc/resolv.conf | grep "search mydomain.com example.com"
|
||||
cat /etc/resolv.conf | grep "nameserver 208.67.222.123"
|
||||
cat /etc/resolv.conf | grep "nameserver 208.67.220.123"
|
||||
|
||||
SCRIPT
|
||||
sudo bash test-merge`)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestNoNetworkCloudConfigFromUrl(c *C) {
|
||||
args := []string{
|
||||
"--no-network",
|
||||
"--append",
|
||||
"rancher.debug=true rancher.password=test-me rancher.cloud_init.datasources=[url:https://gist.githubusercontent.com/joshwget/0bdc616cd26162ad87c535644c8b1ef6/raw/8cce947c08cf006e932b71d92ddbb96bae8e3325/gistfile1.txt]",
|
||||
}
|
||||
s.RunQemuWithNetConsole(c, args...)
|
||||
|
||||
s.NetCheckCall(c, "sudo ros config get rancher.log | grep true")
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestNoNetworkConsoleSwitch(c *C) {
|
||||
args := []string{
|
||||
"--no-network",
|
||||
"--append",
|
||||
"rancher.debug=true rancher.password=test-me rancher.console=alpine",
|
||||
}
|
||||
s.RunQemuWithNetConsole(c, args...)
|
||||
|
||||
s.NetCheckCall(c, "uname -a")
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestNetworkOnBoot(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_18/cloud-config.yml", "-net", "nic,vlan=1,model=virtio")
|
||||
|
||||
s.CheckCall(c, "apk --version")
|
||||
s.CheckCall(c, "sudo system-docker images | grep tianon/true")
|
||||
}
|
@ -1,249 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestNetwork(c *C) {
|
||||
netArgs := []string{"-net", "nic,vlan=0,model=virtio"}
|
||||
args := []string{"--cloud-config", "./tests/assets/test_09/cloud-config.yml"}
|
||||
for i := 0; i < 7; i++ {
|
||||
args = append(args, netArgs...)
|
||||
}
|
||||
s.RunQemu(c, args...)
|
||||
|
||||
s.CheckCall(c, `
|
||||
cat > test-merge << "SCRIPT"
|
||||
set -x -e
|
||||
|
||||
ip link show dev br0
|
||||
ip link show dev br0.100 | grep br0.100@br0
|
||||
ip link show dev eth1.100 | grep 'master br0'
|
||||
ip link show dev eth6 | grep 'master bond0'
|
||||
ip link show dev eth7 | grep 'master bond0'
|
||||
[ "$(</sys/class/net/bond0/bonding/mode)" = "active-backup 1" ]
|
||||
|
||||
SCRIPT
|
||||
sudo bash test-merge`)
|
||||
|
||||
s.CheckCall(c, `
|
||||
cat > test-merge << "SCRIPT"
|
||||
set -x -e
|
||||
|
||||
cat /etc/resolv.conf | grep "search mydomain.com example.com"
|
||||
cat /etc/resolv.conf | grep "nameserver 208.67.222.123"
|
||||
cat /etc/resolv.conf | grep "nameserver 208.67.220.123"
|
||||
|
||||
SCRIPT
|
||||
sudo bash test-merge`)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestNetworkBootCfg(c *C) {
|
||||
args := []string{"--append", "rancher.network.interfaces.eth1.address=10.1.0.41/24 rancher.network.interfaces.eth1.gateway=10.1.0.1 rancher.network.interfaces.eth0.dhcp=true"}
|
||||
args = append(args, []string{"-net", "nic,vlan=1,model=virtio"}...)
|
||||
args = append(args, []string{"-net", "nic,vlan=1,model=virtio"}...)
|
||||
args = append(args, []string{"-net", "nic,vlan=0,model=virtio"}...)
|
||||
s.RunQemu(c, args...)
|
||||
s.CheckOutput(c,
|
||||
"1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1\n"+
|
||||
" link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n"+
|
||||
" inet 127.0.0.1/8 scope XXXX lo\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
" inet6 ::1/128 scope host \n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
"2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n"+
|
||||
" inet XX.XX.XX.XX/24 brd 10.0.2.255 scope global eth0\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
" inet6 fe80::5054:ff:fe12:3456/64 scope link \n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
"3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n"+
|
||||
" inet 10.1.0.41/24 scope global eth1\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
"4: eth2: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000\n"+
|
||||
"5: eth3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000\n"+
|
||||
"6: docker-sys: XXXXXXX......\n"+
|
||||
" inet 172.18.42.2/16 scope global docker-sys\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
" inet6 XX::XX:XX:XX:XX/64 scope link \n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
"8: docker0: XXXXXXX......\n"+
|
||||
" inet 172.17.0.1/16 scope global docker0\n"+
|
||||
" valid_lft forever preferred_lft forever\n",
|
||||
Equals,
|
||||
"ip a | "+
|
||||
"grep -v ether | "+
|
||||
// TODO: figure out why sometimes loopback is scope global
|
||||
"sed 's/scope host lo/scope XXXX lo/g' | sed 's/scope global lo/scope XXXX lo/g' | "+
|
||||
"sed 's/inet 10\\.0\\.2\\..*\\/24 brd/inet XX.XX.XX.XX\\/24 brd/' | "+
|
||||
"sed 's/6: docker-sys: .*/6: docker-sys: XXXXXXX....../g' | "+
|
||||
"sed 's/8: docker0: .*/8: docker0: XXXXXXX....../g' | "+
|
||||
"sed '/inet6 fe80::5054:ff:fe12:.*\\/64/!s/inet6 .*\\/64 scope/inet6 XX::XX:XX:XX:XX\\/64 scope/'",
|
||||
// fe80::18b6:9ff:fef5:be33
|
||||
)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestNetworkBootAndCloudCfg(c *C) {
|
||||
args := []string{
|
||||
"--append", "rancher.network.interfaces.eth1.address=10.1.0.52/24 rancher.network.interfaces.eth1.gateway=10.1.0.1 rancher.network.interfaces.eth0.dhcp=true rancher.network.interfaces.eth3.dhcp=true",
|
||||
"--cloud-config", "./tests/assets/multi_nic/cloud-config.yml",
|
||||
}
|
||||
args = append(args, []string{"-net", "nic,vlan=1,model=virtio"}...)
|
||||
args = append(args, []string{"-net", "nic,vlan=1,model=virtio"}...)
|
||||
args = append(args, []string{"-net", "nic,vlan=0,model=virtio"}...)
|
||||
s.RunQemu(c, args...)
|
||||
s.CheckOutput(c,
|
||||
"1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1\n"+
|
||||
" link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n"+
|
||||
" inet 127.0.0.1/8 scope XXXX lo\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
" inet6 ::1/128 scope host \n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
"2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n"+
|
||||
" inet XX.XX.XX.XX/24 brd 10.0.2.255 scope global eth0\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
" inet6 fe80::5054:ff:fe12:3456/64 scope link \n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
"3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n"+
|
||||
// This shows that the boot cmdline wins over the cloud-config
|
||||
// But IIRC, the cloud-init metadata wins allowing you to use ip4ll to get the hoster's metadata
|
||||
// Need a test for that (presumably once we have libmachine based tests)
|
||||
" inet 10.1.0.52/24 scope global eth1\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
"4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n"+
|
||||
" inet 10.31.168.85/24 scope global eth2\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
// TODO: I think it would be better if this was dhcp: false, but it could go either way
|
||||
"5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n"+
|
||||
" inet XX.XX.XX.XX/24 brd 10.0.2.255 scope global eth3\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
" inet6 fe80::5054:ff:fe12:3459/64 scope link \n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
"6: docker-sys: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000\n"+
|
||||
" inet 172.18.42.2/16 scope global docker-sys\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
" inet6 XX::XX:XX:XX:XX/64 scope link \n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
"8: docker0: XXXXXXX......\n"+
|
||||
" inet 172.17.0.1/16 scope global docker0\n"+
|
||||
" valid_lft forever preferred_lft forever\n",
|
||||
Equals,
|
||||
"ip a | "+
|
||||
"grep -v ether | "+
|
||||
// TODO: figure out why sometimes loopback is scope global
|
||||
"sed 's/scope host lo/scope XXXX lo/g' | sed 's/scope global lo/scope XXXX lo/g' | "+
|
||||
"sed 's/inet 10\\.0\\.2\\..*\\/24 brd/inet XX.XX.XX.XX\\/24 brd/' | "+
|
||||
"sed 's/8: docker0: .*/8: docker0: XXXXXXX....../g' | "+
|
||||
"sed '/inet6 fe80::5054:ff:fe12:.*\\/64/!s/inet6 .*\\/64 scope/inet6 XX::XX:XX:XX:XX\\/64 scope/'",
|
||||
// fe80::18b6:9ff:fef5:be33
|
||||
)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestNetworkCfg(c *C) {
|
||||
args := []string{"--cloud-config", "./tests/assets/multi_nic/cloud-config.yml"}
|
||||
args = append(args, []string{"-net", "nic,vlan=1,model=virtio"}...)
|
||||
args = append(args, []string{"-net", "nic,vlan=1,model=virtio"}...)
|
||||
args = append(args, []string{"-net", "nic,vlan=0,model=virtio"}...)
|
||||
s.RunQemu(c, args...)
|
||||
|
||||
// TODO: work out why the ipv6 loopback isn't present
|
||||
// inet6 ::1/128 scope host
|
||||
// valid_lft forever preferred_lft forever
|
||||
|
||||
// show ip a output without mac addresses
|
||||
s.CheckOutput(c,
|
||||
"1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1\n"+
|
||||
" link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n"+
|
||||
" inet 127.0.0.1/8 scope XXXX lo\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
" inet6 ::1/128 scope host \n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
"2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n"+
|
||||
" inet XX.XX.XX.XX/24 brd 10.0.2.255 scope global eth0\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
" inet6 fe80::5054:ff:fe12:3456/64 scope link \n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
"3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n"+
|
||||
" inet 10.1.0.41/24 scope global eth1\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
"4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n"+
|
||||
" inet 10.31.168.85/24 scope global eth2\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
// TODO: I think it would be better if this was dhcp: false, but it could go either way
|
||||
"5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n"+
|
||||
" inet XX.XX.XX.XX/24 brd 10.0.2.255 scope global eth3\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
" inet6 fe80::5054:ff:fe12:3459/64 scope link \n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
"6: docker-sys: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000\n"+
|
||||
" inet 172.18.42.2/16 scope global docker-sys\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
" inet6 XX::XX:XX:XX:XX/64 scope link \n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
"8: docker0: XXXXXXX......\n"+
|
||||
" inet 172.17.0.1/16 scope global docker0\n"+
|
||||
" valid_lft forever preferred_lft forever\n",
|
||||
Equals,
|
||||
"ip a | "+
|
||||
"grep -v ether | "+
|
||||
// TODO: figure out why sometimes loopback is scope global
|
||||
"sed 's/scope host lo/scope XXXX lo/g' | sed 's/scope global lo/scope XXXX lo/g' | "+
|
||||
"sed 's/inet 10\\.0\\.2\\..*\\/24 brd/inet XX.XX.XX.XX\\/24 brd/' | "+
|
||||
"sed 's/8: docker0: .*/8: docker0: XXXXXXX....../g' | "+
|
||||
"sed '/inet6 fe80::5054:ff:fe12:.*\\/64/!s/inet6 .*\\/64 scope/inet6 XX::XX:XX:XX:XX\\/64 scope/'",
|
||||
// fe80::18b6:9ff:fef5:be33
|
||||
)
|
||||
|
||||
s.CheckOutput(c,
|
||||
"Kernel IP routing table\n"+
|
||||
"Destination Gateway Genmask Flags Metric Ref Use Iface\n"+
|
||||
"0.0.0.0 10.1.0.1 0.0.0.0 UG 0 0 0 eth1\n"+
|
||||
"0.0.0.0 10.0.2.2 0.0.0.0 UG 202 0 0 eth0\n"+
|
||||
"0.0.0.0 10.0.2.2 0.0.0.0 UG 205 0 0 eth3\n"+
|
||||
"10.0.2.0 0.0.0.0 255.255.255.0 U 202 0 0 eth0\n"+
|
||||
"10.0.2.0 0.0.0.0 255.255.255.0 U 205 0 0 eth3\n"+
|
||||
"10.1.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1\n"+
|
||||
"10.31.168.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2\n"+
|
||||
"172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0\n"+
|
||||
"172.18.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker-sys\n",
|
||||
Equals, "route -n")
|
||||
|
||||
s.CheckCall(c, "sudo ros config set rancher.network.interfaces.eth3.dhcp true")
|
||||
//s.CheckCall(c, "sudo netconf")
|
||||
s.Reboot(c)
|
||||
s.CheckOutput(c,
|
||||
"5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000\n"+
|
||||
" inet XX.XX.XX.XX/24 brd 10.0.2.255 scope global eth3\n"+
|
||||
" valid_lft forever preferred_lft forever\n"+
|
||||
" inet6 fe80::5054:ff:fe12:3459/64 scope link \n"+
|
||||
" valid_lft forever preferred_lft forever\n",
|
||||
Equals,
|
||||
"ip a show eth3 | "+
|
||||
"grep -v ether | "+
|
||||
// TODO: figure out why sometimes loopback is scope global
|
||||
"sed 's/scope host lo/scope XXXX lo/g' | sed 's/scope global lo/scope XXXX lo/g' | "+
|
||||
"sed 's/inet 10\\.0\\.2\\..*\\/24 brd/inet XX.XX.XX.XX\\/24 brd/' | "+
|
||||
"sed '/inet6 fe80::5054:ff:fe12:.*\\/64/!s/inet6 .*\\/64 scope/inet6 XX::XX:XX:XX:XX\\/64 scope/'",
|
||||
)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestNetworkCmds(c *C) {
|
||||
args := []string{
|
||||
"--cloud-config",
|
||||
"tests/assets/pre_cmds/cloud-config.yml",
|
||||
"-net", "nic,vlan=0,model=virtio",
|
||||
"-net", "nic,vlan=1,model=virtio",
|
||||
}
|
||||
s.RunQemuWithNetConsole(c, args...)
|
||||
s.NetCheckOutput(c,
|
||||
"pre_cmds\n"+
|
||||
"pre_up lo\n"+
|
||||
"post_up lo\n"+
|
||||
"pre_up eth0\n"+
|
||||
"post_up eth0\n"+
|
||||
"pre_up eth1\n"+
|
||||
"post_up eth1\n"+
|
||||
"pre_up eth2\n"+
|
||||
"post_up eth2\n"+
|
||||
"post_cmds\n",
|
||||
Equals,
|
||||
"cat /var/log/net.log",
|
||||
)
|
||||
}
|
@ -1,8 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestNonexistentState(c *C) {
|
||||
s.RunQemu(c, "--no-format", "--append", "rancher.state.dev=LABEL=NONEXISTENT")
|
||||
s.CheckCall(c, "sudo ros config get rancher.state.dev | grep LABEL=NONEXISTENT")
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestOem(c *C) {
|
||||
s.RunQemu(c, "--second-drive")
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -x
|
||||
set -e
|
||||
sudo mkfs.ext4 -L RANCHER_OEM /dev/vdb
|
||||
sudo mount /dev/vdb /mnt
|
||||
cat > /tmp/oem-config.yml << EOF
|
||||
#cloud-config
|
||||
rancher:
|
||||
upgrade:
|
||||
url: 'foo'
|
||||
EOF
|
||||
sudo cp /tmp/oem-config.yml /mnt
|
||||
sudo umount /mnt`)
|
||||
|
||||
s.Reboot(c)
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -x
|
||||
set -e
|
||||
if [ ! -e /usr/share/ros/oem/oem-config.yml ]; then
|
||||
echo Failed to find /usr/share/ros/oem/oem-config.yml
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FOO="$(sudo ros config get rancher.upgrade.url)"
|
||||
if [ "$FOO" != "foo" ]; then
|
||||
echo rancher.upgrade.url is not foo
|
||||
exit 1
|
||||
fi`)
|
||||
}
|
@ -1,28 +0,0 @@
|
||||
package integration
|
||||
|
||||
import (
|
||||
. "gopkg.in/check.v1"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func (s *QemuSuite) TestOsRelease(c *C) {
|
||||
s.RunQemu(c)
|
||||
version := ""
|
||||
version = s.CheckOutput(c, version, Not(Equals), "sudo ros -v")
|
||||
version = strings.Replace(version, "ros version ", "", 1)
|
||||
s.CheckOutput(c, "VERSION="+version, Equals, "cat /etc/os-release | grep VERSION=")
|
||||
s.CheckOutput(c, "NAME=\"RancherOS\"\n", Equals, "cat /etc/os-release | grep ^NAME=")
|
||||
|
||||
s.MakeCall("sudo ros console switch -f alpine")
|
||||
c.Assert(s.WaitForSSH(), IsNil)
|
||||
|
||||
s.CheckOutput(c, "/sbin/apk\n", Equals, "which apk")
|
||||
s.CheckOutput(c, "VERSION="+version, Equals, "cat /etc/os-release | grep VERSION=")
|
||||
s.CheckOutput(c, "NAME=\"RancherOS\"\n", Equals, "cat /etc/os-release | grep ^NAME=")
|
||||
|
||||
s.Reboot(c)
|
||||
|
||||
s.CheckOutput(c, "/sbin/apk\n", Equals, "which apk")
|
||||
s.CheckOutput(c, "VERSION="+version, Equals, "cat /etc/os-release | grep VERSION=")
|
||||
s.CheckOutput(c, "NAME=\"RancherOS\"\n", Equals, "cat /etc/os-release | grep ^NAME=")
|
||||
}
|
@ -1,23 +0,0 @@
|
||||
package integration
|
||||
|
||||
import (
|
||||
. "gopkg.in/check.v1"
|
||||
)
|
||||
|
||||
func (s *QemuSuite) TestPreload(c *C) {
|
||||
s.RunQemu(c)
|
||||
|
||||
s.CheckCall(c, `
|
||||
docker pull busybox
|
||||
sudo docker save -o /var/lib/rancher/preload/system-docker/busybox.tar busybox
|
||||
sudo gzip /var/lib/rancher/preload/system-docker/busybox.tar
|
||||
sudo system-docker pull alpine
|
||||
sudo system-docker save -o /var/lib/rancher/preload/docker/alpine.tar alpine`)
|
||||
|
||||
s.Reboot(c)
|
||||
|
||||
s.CheckCall(c, `
|
||||
sleep 5
|
||||
sudo system-docker images | grep busybox
|
||||
docker images | grep alpine`)
|
||||
}
|
@ -1,87 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestRosConfig(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_14/cloud-config.yml")
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -x -e
|
||||
|
||||
if [ "$(sudo ros config get hostname)" == "hostname3
|
||||
" ]; then
|
||||
sudo ros config get hostname
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo ros config set hostname rancher-test
|
||||
if [ "$(sudo ros config get hostname)" == "rancher-test
|
||||
" ]; then
|
||||
sudo ros config get hostname
|
||||
exit 1
|
||||
fi`)
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -x -e
|
||||
|
||||
if [ "$(sudo ros config get rancher.log)" == "true
|
||||
" ]; then
|
||||
sudo ros config get rancher.log
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo ros config set rancher.log false
|
||||
if [ "$(sudo ros config get rancher.log)" == "false
|
||||
" ]; then
|
||||
sudo ros config get rancher.log
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$(sudo ros config get rancher.debug)" == "false
|
||||
" ]; then
|
||||
sudo ros config get rancher.debug
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo ros config set rancher.debug true
|
||||
if [ "$(sudo ros config get rancher.debug)" == "true
|
||||
" ]; then
|
||||
sudo ros config get rancher.debug
|
||||
exit 1
|
||||
fi`)
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -x -e
|
||||
|
||||
sudo ros config set rancher.network.dns.search '[a,b]'
|
||||
if [ "$(sudo ros config get rancher.network.dns.search)" == "- a
|
||||
- b
|
||||
|
||||
" ]; then
|
||||
sudo ros config get rancher.network.dns.search
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo ros config set rancher.network.dns.search '[]'
|
||||
if [ "$(sudo ros config get rancher.network.dns.search)" == "[]
|
||||
" ]; then
|
||||
sudo ros config get rancher.network.dns.search
|
||||
exit 1
|
||||
fi`)
|
||||
|
||||
s.CheckCall(c, `
|
||||
set -x -e
|
||||
|
||||
if sudo ros config export | grep "PRIVATE KEY"; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo ros config export --private | grep "PRIVATE KEY"
|
||||
|
||||
sudo ros config export --full | grep "udev"
|
||||
sudo ros config export --private --full | grep "ntp"
|
||||
sudo ros config export --full | grep "labels"
|
||||
|
||||
sudo ros config export --private --full | grep "PRIVATE KEY"`)
|
||||
|
||||
}
|
@ -1,47 +0,0 @@
|
||||
package integration
|
||||
|
||||
import check "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestRosLocalService(c *check.C) {
|
||||
s.RunQemu(c)
|
||||
|
||||
// System-docker
|
||||
s.CheckCall(c, `echo "FROM $(sudo system-docker images --format '{{.Repository}}:{{.Tag}}' | grep os-base)" > Dockerfile
|
||||
sudo system-docker build -t testimage .`)
|
||||
|
||||
s.CheckCall(c, `echo "test:" > test.yml
|
||||
echo " image: testimage" >> test.yml
|
||||
echo " entrypoint: ls" >> test.yml
|
||||
echo " labels:" >> test.yml
|
||||
echo " io.rancher.os.scope: system" >> test.yml
|
||||
echo " io.rancher.os.after: console" >> test.yml
|
||||
`)
|
||||
|
||||
s.CheckCall(c, `sudo cp test.yml /var/lib/rancher/conf/test.yml`)
|
||||
s.CheckCall(c, `sudo ros service enable /var/lib/rancher/conf/test.yml`)
|
||||
s.CheckCall(c, `sudo ros service up test`)
|
||||
|
||||
s.CheckCall(c, `sudo ros service logs test | grep bin`)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) TestRosLocalServiceUser(c *check.C) {
|
||||
s.RunQemu(c)
|
||||
|
||||
// User-docker
|
||||
s.CheckCall(c, `echo "FROM alpine" > Dockerfile
|
||||
sudo docker build -t testimage .`)
|
||||
|
||||
s.CheckCall(c, `echo "test:" > test.yml
|
||||
echo " image: testimage" >> test.yml
|
||||
echo " entrypoint: ls" >> test.yml
|
||||
echo " labels:" >> test.yml
|
||||
echo " io.rancher.os.scope: user" >> test.yml
|
||||
echo " io.rancher.os.after: console" >> test.yml
|
||||
`)
|
||||
|
||||
s.CheckCall(c, `sudo cp test.yml /var/lib/rancher/conf/test.yml`)
|
||||
s.CheckCall(c, `sudo ros service enable /var/lib/rancher/conf/test.yml`)
|
||||
s.CheckCall(c, `sudo ros service up test`)
|
||||
|
||||
s.CheckCall(c, `sudo ros service logs test | grep bin`)
|
||||
}
|
@ -1,18 +0,0 @@
|
||||
package integration
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
. "gopkg.in/check.v1"
|
||||
)
|
||||
|
||||
func (s *QemuSuite) TestSharedMount(c *C) {
|
||||
s.RunQemu(c)
|
||||
s.CheckCall(c, fmt.Sprintf(`
|
||||
set -x -e
|
||||
|
||||
sudo mkdir /mnt/shared
|
||||
sudo touch /test
|
||||
sudo system-docker run --privileged -v /mnt:/mnt:shared -v /test:/test %s mount --bind / /mnt/shared
|
||||
ls /mnt/shared | grep test`, BusyboxImage))
|
||||
}
|
@ -1,37 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestSshKeyMerge(c *C) {
|
||||
s.RunQemu(c)
|
||||
s.CheckCall(c, `
|
||||
cat > test-merge << "SCRIPT"
|
||||
set -x -e
|
||||
rm /var/lib/rancher/conf/cloud-config.yml
|
||||
|
||||
EXISTING=$(ros config get ssh_authorized_keys | head -1)
|
||||
cat > /var/lib/rancher/conf/metadata << EOF
|
||||
SSHPublicKeys:
|
||||
"0": zero
|
||||
"1": one
|
||||
"2": two
|
||||
EOF
|
||||
ros config set hostname one
|
||||
ros config set hostname two
|
||||
ros config set hostname three
|
||||
|
||||
cat > expected << EOF
|
||||
$EXISTING
|
||||
- zero
|
||||
- one
|
||||
- two
|
||||
|
||||
EOF
|
||||
|
||||
ros config get ssh_authorized_keys > got
|
||||
|
||||
diff got expected
|
||||
|
||||
SCRIPT
|
||||
sudo bash test-merge`)
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
package integration
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
. "gopkg.in/check.v1"
|
||||
)
|
||||
|
||||
func (s *QemuSuite) TestStartCommands(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_26/cloud-config.yml")
|
||||
|
||||
for i := 1; i < 6; i++ {
|
||||
s.CheckCall(c, fmt.Sprintf("ls /home/rancher | grep test%d", i))
|
||||
}
|
||||
s.CheckCall(c, "docker ps | grep nginx")
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestSubdir(c *C) {
|
||||
s.RunQemu(c, "--append", "rancher.state.directory=ros_subdir")
|
||||
s.CheckCall(c, `
|
||||
set -x -e
|
||||
mkdir x
|
||||
sudo mount $(sudo ros dev LABEL=RANCHER_STATE) x
|
||||
[ -d x/ros_subdir/home/rancher ]`)
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestSwap(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_21/cloud-config.yml", "--second-drive")
|
||||
|
||||
s.CheckCall(c, "sudo mkswap /dev/vdb")
|
||||
s.CheckCall(c, "sudo cloud-init-execute")
|
||||
s.CheckCall(c, "cat /proc/swaps | grep /dev/vdb")
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestSysctl(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_20/cloud-config.yml")
|
||||
|
||||
s.CheckCall(c, "sudo cat /proc/sys/kernel/domainname | grep test")
|
||||
s.CheckCall(c, "sudo cat /proc/sys/dev/cdrom/debug | grep 1")
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestTls(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_02/cloud-config.yml")
|
||||
s.CheckCall(c, `
|
||||
set -e -x
|
||||
sudo ros tls gen
|
||||
docker --tlsverify version`)
|
||||
}
|
@ -1,239 +0,0 @@
|
||||
package integration
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"strings"
|
||||
|
||||
. "gopkg.in/check.v1"
|
||||
)
|
||||
|
||||
func (s *QemuSuite) TestUpgrade050(c *C) {
|
||||
// install 0.5.0, and then upgrade to `this` version
|
||||
s.commonTestCode(c, "v0.5.0", "default", "")
|
||||
}
|
||||
func (s *QemuSuite) DISABLEDTestUpgrade061Docker1131(c *C) {
|
||||
// Test that by setting the Docker version to 1.13.1 (not the default in 0.6.1), that upgrading leaves it as 1.13.1
|
||||
s.commonTestCode(c, "v0.6.1", "default", "1.13.1")
|
||||
}
|
||||
func (s *QemuSuite) TestUpgrade061(c *C) {
|
||||
s.commonTestCode(c, "v0.6.1", "debian", "")
|
||||
}
|
||||
func (s *QemuSuite) TestUpgrade070(c *C) {
|
||||
s.commonTestCode(c, "v0.7.0", "debian", "")
|
||||
}
|
||||
func (s *QemuSuite) TestUpgrade071(c *C) {
|
||||
s.commonTestCode(c, "v0.7.1", "default", "")
|
||||
}
|
||||
func (s *QemuSuite) TestUpgrade090(c *C) {
|
||||
s.commonTestCode(c, "v0.9.0", "default", "")
|
||||
}
|
||||
func (s *QemuSuite) TestUpgrade100(c *C) {
|
||||
s.commonTestCode(c, "v1.0.0", "default", "")
|
||||
}
|
||||
func (s *QemuSuite) TestUpgrade071Persistent(c *C) {
|
||||
s.commonTestCode(c, "v0.7.1", "ubuntu", "")
|
||||
}
|
||||
func (s *QemuSuite) TestUpgrade080rc1(c *C) {
|
||||
s.commonTestCode(c, "v0.8.0-rc1", "debian", "")
|
||||
}
|
||||
func (s *QemuSuite) TestUpgrade080rc7(c *C) {
|
||||
// alpine console is unlikely to work before 0.8.0-rc5
|
||||
s.commonTestCode(c, "v0.8.0-rc7", "alpine", "")
|
||||
}
|
||||
func (s *QemuSuite) TestUpgrade081Persistent(c *C) {
|
||||
s.commonTestCode(c, "v0.8.1", "alpine", "")
|
||||
}
|
||||
func (s *QemuSuite) TestUpgrade081RollBack(c *C) {
|
||||
s.commonTestCode(c, "v0.7.1", "default", "")
|
||||
|
||||
runArgs := []string{
|
||||
"--boothd",
|
||||
}
|
||||
{
|
||||
// and now rollback to 0.8.1
|
||||
thisVersion := "v0.8.1"
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
|
||||
s.CheckCall(c, fmt.Sprintf("sudo ros os upgrade --no-reboot -i rancher/os:%s%s --force", thisVersion, Suffix))
|
||||
|
||||
s.Reboot(c)
|
||||
s.CheckOutput(c, "ros version "+thisVersion+"\n", Equals, "sudo ros -v")
|
||||
s.Stop(c)
|
||||
}
|
||||
{
|
||||
// and now re-upgrade to latest
|
||||
thisVersion := Version
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
|
||||
s.CheckCall(c, fmt.Sprintf("sudo ros os upgrade --no-reboot -i rancher/os:%s%s --force", thisVersion, Suffix))
|
||||
|
||||
s.Reboot(c)
|
||||
s.CheckOutput(c, "ros version "+thisVersion+"\n", Equals, "sudo ros -v")
|
||||
s.Stop(c)
|
||||
}
|
||||
}
|
||||
|
||||
// DisabledTestUpgradeInner is used to debug the above tests if they fail - the current imple of the check code limits itself to depths _one_ stacktrace
|
||||
func (s *QemuSuite) DisableTestUpgradeInner(c *C) {
|
||||
startWithVersion := "v0.5.0"
|
||||
// CENTOS fails due to "sudo: sorry, you must have a tty to run sudo" :) so we won't test with it atm
|
||||
console := "debian"
|
||||
runArgs := []string{
|
||||
"--iso",
|
||||
"--fresh",
|
||||
"--cloud-config",
|
||||
"./tests/assets/test_12/cloud-config.yml",
|
||||
}
|
||||
version := ""
|
||||
{
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
version = s.CheckOutput(c, version, Not(Equals), "sudo ros -v")
|
||||
version = strings.TrimSpace(strings.TrimPrefix(version, "ros version"))
|
||||
c.Assert(Version, Equals, version)
|
||||
|
||||
fmt.Printf("installing %s", startWithVersion)
|
||||
s.PullAndLoadImage(c, fmt.Sprintf("rancher/os:%s", startWithVersion))
|
||||
|
||||
//ADD a custom append line and make sure its kept in the upgraded version too
|
||||
|
||||
s.CheckCall(c, fmt.Sprintf(`
|
||||
echo "---------------------------------- generic"
|
||||
set -ex
|
||||
sudo cp /var/lib/rancher/conf/cloud-config.d/boot.yml config.yml
|
||||
sudo chown rancher config.yml
|
||||
sudo ros install --force --no-reboot --device /dev/vda -c config.yml --append rancher.password=rancher -i rancher/os:%s
|
||||
sync
|
||||
`, startWithVersion))
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
s.Stop(c)
|
||||
}
|
||||
|
||||
// ./scripts/run --no-format --append "rancher.debug=true"
|
||||
runArgs = []string{
|
||||
"--boothd",
|
||||
}
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
|
||||
s.CheckOutput(c, "ros version "+startWithVersion+"\n", Equals, "sudo ros -v")
|
||||
|
||||
if console != "default" {
|
||||
// Can't preload the startWithVersion console image, as some don't exist by that name - not sure how to approach that
|
||||
//s.PullAndLoadImage(c, fmt.Sprintf("rancher/os-%sconsole:%s", console, startWithVersion))
|
||||
// TODO: ouch. probably need to tag the dev / master version as latest cos this won't work
|
||||
// Need to pull the image here - if we do it at boot, then the test will fail.
|
||||
s.PullAndLoadImage(c, fmt.Sprintf("rancher/os-%sconsole:%s", console, "v0.8.0-rc3"))
|
||||
s.MakeCall(fmt.Sprintf("sudo ros console switch -f %s", console))
|
||||
c.Assert(s.WaitForSSH(), IsNil)
|
||||
}
|
||||
|
||||
consoleVer := s.CheckOutput(c, "", Not(Equals), "sudo system-docker ps --filter name=^/console$ --format {{.Image}}")
|
||||
|
||||
s.LoadInstallerImage(c)
|
||||
s.CheckCall(c, fmt.Sprintf("sudo ros os upgrade --no-reboot -i rancher/os:%s%s --force", Version, Suffix))
|
||||
|
||||
s.Reboot(c)
|
||||
s.CheckOutput(c, "ros version "+Version+"\n", Equals, "sudo ros -v")
|
||||
s.CheckOutput(c, consoleVer, Equals, "sudo system-docker ps --filter name=^/console$ --format {{.Image}}")
|
||||
|
||||
// Make sure the original installed boot cmdline append value
|
||||
s.CheckOutput(c, ".*rancher.password=rancher.*", Matches, "cat /proc/cmdline")
|
||||
|
||||
s.Stop(c)
|
||||
}
|
||||
|
||||
func (s *QemuSuite) commonTestCode(c *C, startWithVersion, console, dockerVersion string) {
|
||||
runArgs := []string{
|
||||
"--iso",
|
||||
"--fresh",
|
||||
"--cloud-config",
|
||||
fmt.Sprintf("./tests/assets/test_12/cloud-config%s.yml", dockerVersion),
|
||||
}
|
||||
version := ""
|
||||
{
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
version = s.CheckOutput(c, version, Not(Equals), "sudo ros -v")
|
||||
version = strings.TrimSpace(strings.TrimPrefix(version, "ros version"))
|
||||
c.Assert(Version, Equals, version)
|
||||
s.CheckOutputContains(c, dockerVersion, "docker -v")
|
||||
|
||||
fmt.Printf("installing %s", startWithVersion)
|
||||
s.PullAndLoadImage(c, fmt.Sprintf("rancher/os:%s", startWithVersion))
|
||||
|
||||
//ADD a custom append line and make sure its kept in the upgraded version too
|
||||
|
||||
s.CheckCall(c, fmt.Sprintf(`
|
||||
echo "---------------------------------- generic"
|
||||
set -ex
|
||||
sudo cp /var/lib/rancher/conf/cloud-config.d/boot.yml config.yml
|
||||
sudo chown rancher config.yml
|
||||
sudo ros install --force --no-reboot --device /dev/vda -c config.yml --append "rancher.password=rancher rancher.cloud_init.datasources=[invalid]" -i rancher/os:%s
|
||||
sync
|
||||
`, startWithVersion))
|
||||
time.Sleep(500 * time.Millisecond)
|
||||
s.Stop(c)
|
||||
}
|
||||
|
||||
// ./scripts/run --no-format --append "rancher.debug=true"
|
||||
runArgs = []string{
|
||||
"--boothd",
|
||||
}
|
||||
s.RunQemuWith(c, runArgs...)
|
||||
s.CheckOutput(c, "ros version "+startWithVersion+"\n", Equals, "sudo ros -v")
|
||||
s.CheckOutputContains(c, dockerVersion, "docker -v")
|
||||
|
||||
if startWithVersion != "v0.5.0" && startWithVersion != "v0.6.1" {
|
||||
//s.CheckOutput(c, ".*password=ranc.*", Matches, "cat /proc/cmdline")
|
||||
cmdline := s.CheckOutput(c, "", Not(Equals), "cat /proc/cmdline")
|
||||
if !strings.Contains(cmdline, "rancher.password=rancher") {
|
||||
c.Errorf("output(%s) does not contain(%s)", cmdline, "rancher.password=rancher")
|
||||
}
|
||||
if !strings.Contains(cmdline, "rancher.cloud_init.datasources=[invalid]") {
|
||||
c.Errorf("output(%s) does not contain(%s)", cmdline, "rancher.cloud_init.datasources=[invalid]")
|
||||
}
|
||||
}
|
||||
|
||||
if console != "default" {
|
||||
// Can't preload the startWithVersion console image, as some don't exist by that name - not sure how to approach that
|
||||
//s.PullAndLoadImage(c, fmt.Sprintf("rancher/os-%sconsole:%s", console, startWithVersion))
|
||||
// TODO: ouch. probably need to tag the dev / master version as latest cos this won't work
|
||||
// Need to pull the image here - if we do it at boot, then the test will fail.
|
||||
if console == "alpine" {
|
||||
s.PullAndLoadImage(c, fmt.Sprintf("rancher/os-%sconsole:%s", console, "v0.8.0-rc5"))
|
||||
} else {
|
||||
s.PullAndLoadImage(c, fmt.Sprintf("rancher/os-%sconsole:%s", console, "v0.8.0-rc3"))
|
||||
}
|
||||
s.MakeCall(fmt.Sprintf("sudo ros console switch -f %s", console))
|
||||
c.Assert(s.WaitForSSH(), IsNil)
|
||||
}
|
||||
|
||||
consoleVer := s.CheckOutput(c, "", Not(Equals), "sudo system-docker ps --filter name=^/console$ --format {{.Image}}")
|
||||
|
||||
s.LoadInstallerImage(c)
|
||||
s.CheckCall(c, fmt.Sprintf("sudo ros os upgrade --no-reboot -i rancher/os:%s%s --force", Version, Suffix))
|
||||
|
||||
s.Reboot(c)
|
||||
s.CheckOutput(c, "ros version "+Version+"\n", Equals, "sudo ros -v")
|
||||
if console != "default" {
|
||||
s.CheckOutput(c, consoleVer, Equals, "sudo system-docker ps --filter name=^/console$ --format {{.Image}}")
|
||||
} else {
|
||||
s.CheckOutput(c, consoleVer, Not(Equals), "sudo system-docker ps --filter name=^/console$ --format {{.Image}}")
|
||||
}
|
||||
|
||||
s.CheckOutputContains(c, dockerVersion, "docker -v")
|
||||
|
||||
if startWithVersion != "v0.5.0" && startWithVersion != "v0.6.1" {
|
||||
// Make sure the original installed boot cmdline append value
|
||||
// s.CheckOutput(c, ".*rancher.password=rancher.*", Matches, "cat /proc/cmdline")
|
||||
cmdline := s.CheckOutput(c, "", Not(Equals), "cat /proc/cmdline")
|
||||
if !strings.Contains(cmdline, "rancher.password=rancher") {
|
||||
c.Errorf("output(%s) does not contain(%s)", cmdline, "rancher.password=rancher")
|
||||
}
|
||||
if !strings.Contains(cmdline, "rancher.cloud_init.datasources=[invalid]") {
|
||||
c.Errorf("output(%s) does not contain(%s)", cmdline, "rancher.cloud_init.datasources=[invalid]")
|
||||
}
|
||||
}
|
||||
|
||||
s.Stop(c)
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
package integration
|
||||
|
||||
import . "gopkg.in/check.v1"
|
||||
|
||||
func (s *QemuSuite) TestWriteFiles(c *C) {
|
||||
s.RunQemu(c, "--cloud-config", "./tests/assets/test_24/cloud-config.yml")
|
||||
|
||||
s.CheckCall(c, "sudo cat /test | grep 'console content'")
|
||||
s.CheckCall(c, "sudo cat /test2 | grep 'console content'")
|
||||
s.CheckCall(c, "sudo system-docker exec ntp cat /test | grep 'ntp content'")
|
||||
s.CheckCall(c, "sudo system-docker exec syslog cat /test | grep 'syslog content'")
|
||||
}
|
Loading…
Reference in New Issue
Block a user