| ... | ... |
@@ -44,6 +44,12 @@ trap "cleanup" EXIT |
| 44 | 44 |
|
| 45 | 45 |
set -e |
| 46 | 46 |
|
| 47 |
+function find_tests {
|
|
| 48 |
+ cd "${OS_ROOT}"
|
|
| 49 |
+ find "${1}" -name '*.sh' -print0 | sort -u | xargs -0 -n1 printf "%s\n"
|
|
| 50 |
+} |
|
| 51 |
+tests=( $(find_tests ${1:-test/cmd}) )
|
|
| 52 |
+ |
|
| 47 | 53 |
# Prevent user environment from colliding with the test setup |
| 48 | 54 |
unset KUBECONFIG |
| 49 | 55 |
|
| ... | ... |
@@ -56,6 +62,7 @@ if [[ -z "${USE_IMAGES-}" ]]; then
|
| 56 | 56 |
fi |
| 57 | 57 |
USE_IMAGES="openshift/origin-\${component}:${tag}"
|
| 58 | 58 |
fi |
| 59 |
+export USE_IMAGES |
|
| 59 | 60 |
|
| 60 | 61 |
ETCD_HOST=${ETCD_HOST:-127.0.0.1}
|
| 61 | 62 |
ETCD_PORT=${ETCD_PORT:-4001}
|
| ... | ... |
@@ -198,6 +205,7 @@ if [[ "${API_SCHEME}" == "https" ]]; then
|
| 198 | 198 |
[ "$(oc get services 2>&1 | grep 'certificate signed by unknown authority')" ] |
| 199 | 199 |
fi |
| 200 | 200 |
|
| 201 |
+ |
|
| 201 | 202 |
# login and logout tests |
| 202 | 203 |
# --token and --username are mutually exclusive |
| 203 | 204 |
[ "$(oc login ${KUBERNETES_MASTER} -u test-user --token=tmp --insecure-skip-tls-verify 2>&1 | grep 'mutually exclusive')" ]
|
| ... | ... |
@@ -244,582 +252,25 @@ cp ${MASTER_CONFIG_DIR}/admin.kubeconfig ${HOME}/.kube/config
|
| 244 | 244 |
oc get services |
| 245 | 245 |
mv ${HOME}/.kube/config ${HOME}/.kube/non-default-config
|
| 246 | 246 |
echo "config files: ok" |
| 247 |
-export KUBECONFIG="${HOME}/.kube/non-default-config"
|
|
| 248 | 247 |
|
| 249 | 248 |
# from this point every command will use config from the KUBECONFIG env var |
| 249 |
+export KUBECONFIG="${HOME}/.kube/non-default-config"
|
|
| 250 | 250 |
|
| 251 |
-oc get templates |
|
| 252 |
-oc create -f examples/sample-app/application-template-dockerbuild.json |
|
| 253 |
-oc get templates |
|
| 254 |
-oc get templates ruby-helloworld-sample |
|
| 255 |
-oc get template ruby-helloworld-sample -o json | oc process -f - |
|
| 256 |
-oc process ruby-helloworld-sample |
|
| 257 |
-oc describe templates ruby-helloworld-sample |
|
| 258 |
-[ "$(oc describe templates ruby-helloworld-sample | grep -E "BuildConfig.*ruby-sample-build")" ] |
|
| 259 |
-oc delete templates ruby-helloworld-sample |
|
| 260 |
-oc get templates |
|
| 261 |
-# TODO: create directly from template |
|
| 262 |
-echo "templates: ok" |
|
| 263 |
- |
|
| 264 |
- |
|
| 265 |
-# Test resource builder filtering of files with expected extensions inside directories, and individual files without expected extensions |
|
| 266 |
-[ "$(oc create -f test/resource-builder/directory -f test/resource-builder/json-no-extension -f test/resource-builder/yml-no-extension 2>&1)" ] |
|
| 267 |
-# Explicitly specified extensionless files |
|
| 268 |
-oc get secret json-no-extension yml-no-extension |
|
| 269 |
-# Scanned files with extensions inside directories |
|
| 270 |
-oc get secret json-with-extension yml-with-extension |
|
| 271 |
-# Ensure extensionless files inside directories are not processed by resource-builder |
|
| 272 |
-[ "$(oc get secret json-no-extension-in-directory 2>&1 | grep 'not found')" ] |
|
| 273 |
-echo "resource-builder: ok" |
|
| 274 |
- |
|
| 275 |
-# verify some default commands |
|
| 276 |
-[ "$(openshift 2>&1)" ] |
|
| 277 |
-[ "$(openshift cli)" ] |
|
| 278 |
-[ "$(openshift ex)" ] |
|
| 279 |
-[ "$(openshift admin config 2>&1)" ] |
|
| 280 |
-[ "$(openshift cli config 2>&1)" ] |
|
| 281 |
-[ "$(openshift ex tokens)" ] |
|
| 282 |
-[ "$(openshift admin policy 2>&1)" ] |
|
| 283 |
-[ "$(openshift kubectl 2>&1)" ] |
|
| 284 |
-[ "$(openshift kube 2>&1)" ] |
|
| 285 |
-[ "$(openshift admin 2>&1)" ] |
|
| 286 |
-[ "$(openshift start kubernetes 2>&1)" ] |
|
| 287 |
-[ "$(kubernetes 2>&1)" ] |
|
| 288 |
-[ "$(kubectl 2>&1)" ] |
|
| 289 |
-[ "$(oc 2>&1)" ] |
|
| 290 |
-[ "$(osc 2>&1)" ] |
|
| 291 |
-[ "$(oadm 2>&1)" ] |
|
| 292 |
-[ "$(oadm 2>&1)" ] |
|
| 293 |
-[ "$(origin 2>&1)" ] |
|
| 294 |
- |
|
| 295 |
-# help for root commands must be consistent |
|
| 296 |
-[ "$(openshift | grep 'Application Platform')" ] |
|
| 297 |
-[ "$(oc | grep 'Developer and Administrator Client')" ] |
|
| 298 |
-[ "$(oc | grep 'Build and Deploy Commands:')" ] |
|
| 299 |
-[ "$(oc | grep 'Other Commands:')" ] |
|
| 300 |
-[ "$(oc policy --help 2>&1 | grep 'add-role-to-user')" ] |
|
| 301 |
-[ ! "$(oc policy --help 2>&1 | grep 'Other Commands')" ] |
|
| 302 |
-[ ! "$(oc 2>&1 | grep 'Options')" ] |
|
| 303 |
-[ ! "$(oc 2>&1 | grep 'Global Options')" ] |
|
| 304 |
-[ "$(openshift cli 2>&1 | grep 'Developer and Administrator Client')" ] |
|
| 305 |
-[ "$(oc types | grep 'Deployment Config')" ] |
|
| 306 |
-[ "$(openshift kubectl 2>&1 | grep 'Kubernetes cluster')" ] |
|
| 307 |
-[ "$(oadm 2>&1 | grep 'Administrative Commands')" ] |
|
| 308 |
-[ "$(openshift admin 2>&1 | grep 'Administrative Commands')" ] |
|
| 309 |
-[ "$(oadm | grep 'Basic Commands:')" ] |
|
| 310 |
-[ "$(oadm | grep 'Install Commands:')" ] |
|
| 311 |
-[ "$(oadm ca | grep 'Manage certificates')" ] |
|
| 312 |
-[ "$(openshift start kubernetes 2>&1 | grep 'Kubernetes server components')" ] |
|
| 313 |
-# check deprecated admin cmds for backward compatibility |
|
| 314 |
-[ "$(oadm create-master-certs -h 2>&1 | grep 'Create keys and certificates')" ] |
|
| 315 |
-[ "$(oadm create-key-pair -h 2>&1 | grep 'Create an RSA key pair')" ] |
|
| 316 |
-[ "$(oadm create-server-cert -h 2>&1 | grep 'Create a key and server certificate')" ] |
|
| 317 |
-[ "$(oadm create-signer-cert -h 2>&1 | grep 'Create a self-signed CA')" ] |
|
| 318 |
-# atomic-enterprise binaries are recognized |
|
| 319 |
-[ "$(openshift | grep -i 'OpenShift Application Platform')" ] |
|
| 320 |
-[ ! "$(openshift | grep -i 'Atomic')" ] |
|
| 321 |
-[ "$(origin | grep -i 'Origin Application Platform')" ] |
|
| 322 |
-[ ! "$(origin | grep -i 'Atomic')" ] |
|
| 323 |
-[ "$(atomic-enterprise | grep -i 'Atomic Application Platform')" ] |
|
| 324 |
-[ ! "$(atomic-enterprise | grep -i 'OpenShift')" ] |
|
| 325 |
- |
|
| 326 |
-# help for root commands with --help flag must be consistent |
|
| 327 |
-[ "$(openshift --help 2>&1 | grep 'OpenShift Application Platform')" ] |
|
| 328 |
-[ "$(oc --help 2>&1 | grep 'Developer and Administrator Client')" ] |
|
| 329 |
-[ "$(oc login --help 2>&1 | grep 'Options')" ] |
|
| 330 |
-[ ! "$(oc login --help 2>&1 | grep 'Global Options')" ] |
|
| 331 |
-[ "$(oc login --help 2>&1 | grep 'insecure-skip-tls-verify')" ] |
|
| 332 |
-[ "$(openshift cli --help 2>&1 | grep 'Developer and Administrator Client')" ] |
|
| 333 |
-[ "$(openshift kubectl --help 2>&1 | grep 'Kubernetes cluster')" ] |
|
| 334 |
-[ "$(oadm --help 2>&1 | grep 'Administrative Commands')" ] |
|
| 335 |
-[ "$(openshift admin --help 2>&1 | grep 'Administrative Commands')" ] |
|
| 336 |
- |
|
| 337 |
-# help for root commands through help command must be consistent |
|
| 338 |
-[ "$(openshift help cli 2>&1 | grep 'Developer and Administrator Client')" ] |
|
| 339 |
-[ "$(openshift help kubectl 2>&1 | grep 'Kubernetes cluster')" ] |
|
| 340 |
-[ "$(openshift help admin 2>&1 | grep 'Administrative Commands')" ] |
|
| 341 |
- |
|
| 342 |
-# help for given command with --help flag must be consistent |
|
| 343 |
-[ "$(oc get --help 2>&1 | grep 'Display one or many resources')" ] |
|
| 344 |
-[ "$(openshift cli get --help 2>&1 | grep 'Display one or many resources')" ] |
|
| 345 |
-[ "$(openshift kubectl get --help 2>&1 | grep 'Display one or many resources')" ] |
|
| 346 |
-[ "$(openshift start --help 2>&1 | grep 'Start an all-in-one server')" ] |
|
| 347 |
-[ "$(openshift start master --help 2>&1 | grep 'Start a master')" ] |
|
| 348 |
-[ "$(openshift start node --help 2>&1 | grep 'Start a node')" ] |
|
| 349 |
-[ "$(oc get --help 2>&1 | grep 'oc')" ] |
|
| 350 |
- |
|
| 351 |
-# help for given command through help command must be consistent |
|
| 352 |
-[ "$(oc help get 2>&1 | grep 'Display one or many resources')" ] |
|
| 353 |
-[ "$(openshift help cli get 2>&1 | grep 'Display one or many resources')" ] |
|
| 354 |
-[ "$(openshift help kubectl get 2>&1 | grep 'Display one or many resources')" ] |
|
| 355 |
-[ "$(openshift help start 2>&1 | grep 'Start an all-in-one server')" ] |
|
| 356 |
-[ "$(openshift help start master 2>&1 | grep 'Start a master')" ] |
|
| 357 |
-[ "$(openshift help start node 2>&1 | grep 'Start a node')" ] |
|
| 358 |
-[ "$(openshift cli help update 2>&1 | grep 'openshift')" ] |
|
| 359 |
-[ "$(openshift cli help replace 2>&1 | grep 'openshift')" ] |
|
| 360 |
-[ "$(openshift cli help patch 2>&1 | grep 'openshift')" ] |
|
| 361 |
- |
|
| 362 |
-# runnable commands with required flags must error consistently |
|
| 363 |
-[ "$(oc get 2>&1 | grep 'Required resource not specified')" ] |
|
| 364 |
-[ "$(openshift cli get 2>&1 | grep 'Required resource not specified')" ] |
|
| 365 |
-[ "$(openshift kubectl get 2>&1 | grep 'Required resource not specified')" ] |
|
| 366 |
- |
|
| 367 |
-# commands that expect file paths must validate and error out correctly |
|
| 368 |
-[ "$(oc login --certificate-authority=/path/to/invalid 2>&1 | grep 'no such file or directory')" ] |
|
| 369 |
- |
|
| 370 |
-# make sure that typoed commands come back with non-zero return codes |
|
| 371 |
-[ "$(openshift admin policy TYPO; echo $? | grep '1')" ] |
|
| 372 |
-[ "$(openshift admin TYPO; echo $? | grep '1')" ] |
|
| 373 |
-[ "$(openshift cli TYPO; echo $? | grep '1')" ] |
|
| 374 |
-[ "$(oc policy TYPO; echo $? | grep '1')" ] |
|
| 375 |
-[ "$(oc secrets TYPO; echo $? | grep '1')" ] |
|
| 376 |
- |
|
| 377 |
- |
|
| 378 |
-oc secrets new-dockercfg dockercfg --docker-username=sample-user --docker-password=sample-password --docker-email=fake@example.org |
|
| 379 |
-# can't use a go template here because the output needs to be base64 decoded. base64 isn't installed by default in all distros |
|
| 380 |
-oc describe secrets/dockercfg | grep "dockercfg:" | awk '{print $2}' > ${HOME}/dockerconfig
|
|
| 381 |
-oc secrets new from-file .dockercfg=${HOME}/dockerconfig
|
|
| 382 |
-# check to make sure the type was correctly auto-detected |
|
| 383 |
-[ "$(oc get secret/from-file -t "{{ .type }}" | grep 'kubernetes.io/dockercfg')" ]
|
|
| 384 |
-# make sure the -o works correctly |
|
| 385 |
-[ "$(oc secrets new-dockercfg dockercfg --docker-username=sample-user --docker-password=sample-password --docker-email=fake@example.org -o yaml | grep "kubernetes.io/dockercfg")" ] |
|
| 386 |
-[ "$(oc secrets new from-file .dockercfg=${HOME}/dockerconfig -o yaml | grep "kubernetes.io/dockercfg")" ]
|
|
| 387 |
-# check to make sure malformed names fail as expected |
|
| 388 |
-[ "$(oc secrets new bad-name .docker=cfg=${HOME}/dockerconfig 2>&1 | grep "error: Key names or file paths cannot contain '='.")" ]
|
|
| 389 |
- |
|
| 390 |
- |
|
| 391 |
-# attach secrets to service account |
|
| 392 |
-# single secret with prefix |
|
| 393 |
-oc secrets add serviceaccounts/deployer secrets/dockercfg |
|
| 394 |
-# don't add the same secret twice |
|
| 395 |
-oc secrets add serviceaccounts/deployer secrets/dockercfg secrets/from-file |
|
| 396 |
-# make sure we can add as as pull secret |
|
| 397 |
-oc secrets add serviceaccounts/deployer secrets/dockercfg secrets/from-file --for=pull |
|
| 398 |
-# make sure we can add as as pull secret and mount secret at once |
|
| 399 |
-oc secrets add serviceaccounts/deployer secrets/dockercfg secrets/from-file --for=pull,mount |
|
| 400 |
-echo "secrets: ok" |
|
| 401 |
- |
|
| 402 |
- |
|
| 403 |
-oc get pods --match-server-version |
|
| 404 |
-oc create -f examples/hello-openshift/hello-pod.json |
|
| 405 |
-oc describe pod hello-openshift |
|
| 406 |
-oc delete pods hello-openshift |
|
| 407 |
-echo "pods: ok" |
|
| 408 | 251 |
|
| 409 |
-oc get services |
|
| 410 |
-oc create -f test/integration/fixtures/test-service.json |
|
| 411 |
-oc delete services frontend |
|
| 412 |
-echo "services: ok" |
|
| 413 |
- |
|
| 414 |
-oc get nodes |
|
| 415 |
-echo "nodes: ok" |
|
| 416 |
- |
|
| 417 |
-oc get images |
|
| 418 |
-oc create -f test/integration/fixtures/test-image.json |
|
| 419 |
-oc delete images test |
|
| 420 |
-echo "images: ok" |
|
| 421 |
- |
|
| 422 |
-oc get imageStreams |
|
| 423 |
-oc create -f test/integration/fixtures/test-image-stream.json |
|
| 424 |
-# make sure stream.status.dockerImageRepository isn't set (no registry) |
|
| 425 |
-[ -z "$(oc get imageStreams test -t "{{.status.dockerImageRepository}}")" ]
|
|
| 426 |
-# create the registry |
|
| 427 |
-oadm registry --credentials="${KUBECONFIG}" --images="${USE_IMAGES}"
|
|
| 428 |
-# make sure stream.status.dockerImageRepository IS set |
|
| 429 |
-[ -n "$(oc get imageStreams test -t "{{.status.dockerImageRepository}}")" ]
|
|
| 430 |
-# ensure the registry rc has been created |
|
| 431 |
-wait_for_command 'oc get rc docker-registry-1' "${TIME_MIN}"
|
|
| 432 |
-# delete the registry resources |
|
| 433 |
-oc delete svc docker-registry |
|
| 434 |
-oc delete dc docker-registry |
|
| 435 |
-[ ! "$(oc get dc docker-registry)" ] |
|
| 436 |
-[ ! "$(oc get rc docker-registry-1)" ] |
|
| 437 |
-# done deleting registry resources |
|
| 438 |
-oc delete imageStreams test |
|
| 439 |
-[ -z "$(oc get imageStreams test -t "{{.status.dockerImageRepository}}")" ]
|
|
| 440 |
-oc create -f examples/image-streams/image-streams-centos7.json |
|
| 441 |
-[ -n "$(oc get imageStreams ruby -t "{{.status.dockerImageRepository}}")" ]
|
|
| 442 |
-[ -n "$(oc get imageStreams nodejs -t "{{.status.dockerImageRepository}}")" ]
|
|
| 443 |
-[ -n "$(oc get imageStreams wildfly -t "{{.status.dockerImageRepository}}")" ]
|
|
| 444 |
-[ -n "$(oc get imageStreams mysql -t "{{.status.dockerImageRepository}}")" ]
|
|
| 445 |
-[ -n "$(oc get imageStreams postgresql -t "{{.status.dockerImageRepository}}")" ]
|
|
| 446 |
-[ -n "$(oc get imageStreams mongodb -t "{{.status.dockerImageRepository}}")" ]
|
|
| 447 |
-# verify the image repository had its tags populated |
|
| 448 |
-wait_for_command 'oc get imagestreamtags wildfly:latest' "${TIME_MIN}"
|
|
| 449 |
-[ -n "$(oc get imageStreams wildfly -t "{{ index .metadata.annotations \"openshift.io/image.dockerRepositoryCheck\"}}")" ]
|
|
| 450 |
-oc delete imageStreams ruby |
|
| 451 |
-oc delete imageStreams nodejs |
|
| 452 |
-oc delete imageStreams wildfly |
|
| 453 |
-#oc delete imageStreams mysql |
|
| 454 |
-oc delete imageStreams postgresql |
|
| 455 |
-oc delete imageStreams mongodb |
|
| 456 |
-[ -z "$(oc get imageStreams ruby -t "{{.status.dockerImageRepository}}")" ]
|
|
| 457 |
-[ -z "$(oc get imageStreams nodejs -t "{{.status.dockerImageRepository}}")" ]
|
|
| 458 |
-[ -z "$(oc get imageStreams postgresql -t "{{.status.dockerImageRepository}}")" ]
|
|
| 459 |
-[ -z "$(oc get imageStreams mongodb -t "{{.status.dockerImageRepository}}")" ]
|
|
| 460 |
-[ -z "$(oc get imageStreams wildfly -t "{{.status.dockerImageRepository}}")" ]
|
|
| 461 |
-wait_for_command 'oc get imagestreamTags mysql:latest' "${TIME_MIN}"
|
|
| 462 |
-[ -n "$(oc get imagestreams mysql -t "{{ index .metadata.annotations \"openshift.io/image.dockerRepositoryCheck\"}}")" ]
|
|
| 463 |
-oc describe istag/mysql:latest |
|
| 464 |
-[ "$(oc describe istag/mysql:latest | grep "Environment:")" ] |
|
| 465 |
-[ "$(oc describe istag/mysql:latest | grep "Image Created:")" ] |
|
| 466 |
-[ "$(oc describe istag/mysql:latest | grep "Image Name:")" ] |
|
| 467 |
-name=$(oc get istag/mysql:latest -t '{{ .image.metadata.name }}')
|
|
| 468 |
-imagename="isimage/mysql@${name:0:7}"
|
|
| 469 |
-oc describe "${imagename}"
|
|
| 470 |
-[ "$(oc describe ${imagename} | grep "Environment:")" ]
|
|
| 471 |
-[ "$(oc describe ${imagename} | grep "Image Created:")" ]
|
|
| 472 |
-[ "$(oc describe ${imagename} | grep "Image Name:")" ]
|
|
| 473 |
-echo "imageStreams: ok" |
|
| 474 |
- |
|
| 475 |
-# oc tag |
|
| 476 |
-# start with an empty target image stream |
|
| 477 |
-echo '{"apiVersion":"v1", "kind": "ImageStream", "metadata": {"name":"tagtest"}}' | oc create -f -
|
|
| 478 |
-echo '{"apiVersion":"v1", "kind": "ImageStream", "metadata": {"name":"tagtest2"}}' | oc create -f -
|
|
| 479 |
- |
|
| 480 |
-oc tag mysql:latest tagtest:tag1 |
|
| 481 |
-[ "$(oc get is/tagtest -t '{{(index .spec.tags 0).from.kind}}')" == "ImageStreamTag" ]
|
|
| 482 |
- |
|
| 483 |
-oc tag mysql@${name} tagtest:tag2
|
|
| 484 |
-[ "$(oc get is/tagtest -t '{{(index .spec.tags 1).from.kind}}')" == "ImageStreamImage" ]
|
|
| 485 |
- |
|
| 486 |
-oc tag mysql:notfound tagtest:tag3 |
|
| 487 |
-[ "$(oc get is/tagtest -t '{{(index .spec.tags 2).from.kind}}')" == "DockerImage" ]
|
|
| 488 |
- |
|
| 489 |
-oc tag --source=imagestreamtag mysql:latest tagtest:tag4 |
|
| 490 |
-[ "$(oc get is/tagtest -t '{{(index .spec.tags 3).from.kind}}')" == "ImageStreamTag" ]
|
|
| 491 |
- |
|
| 492 |
-oc tag --source=istag mysql:latest tagtest:tag5 |
|
| 493 |
-[ "$(oc get is/tagtest -t '{{(index .spec.tags 4).from.kind}}')" == "ImageStreamTag" ]
|
|
| 494 |
- |
|
| 495 |
-oc tag --source=imagestreamimage mysql@${name} tagtest:tag6
|
|
| 496 |
-[ "$(oc get is/tagtest -t '{{(index .spec.tags 5).from.kind}}')" == "ImageStreamImage" ]
|
|
| 497 |
- |
|
| 498 |
-oc tag --source=isimage mysql@${name} tagtest:tag7
|
|
| 499 |
-[ "$(oc get is/tagtest -t '{{(index .spec.tags 6).from.kind}}')" == "ImageStreamImage" ]
|
|
| 500 |
- |
|
| 501 |
-oc tag --source=docker mysql:latest tagtest:tag8 |
|
| 502 |
-[ "$(oc get is/tagtest -t '{{(index .spec.tags 7).from.kind}}')" == "DockerImage" ]
|
|
| 503 |
- |
|
| 504 |
-oc tag mysql:latest tagtest:zzz tagtest2:zzz |
|
| 505 |
-[ "$(oc get is/tagtest -t '{{(index .spec.tags 8).from.kind}}')" == "ImageStreamTag" ]
|
|
| 506 |
-[ "$(oc get is/tagtest2 -t '{{(index .spec.tags 0).from.kind}}')" == "ImageStreamTag" ]
|
|
| 507 |
- |
|
| 508 |
-# test creating streams that don't exist |
|
| 509 |
-[ -z "$(oc get imageStreams tagtest3 -t "{{.status.dockerImageRepository}}")" ]
|
|
| 510 |
-[ -z "$(oc get imageStreams tagtest4 -t "{{.status.dockerImageRepository}}")" ]
|
|
| 511 |
-oc tag mysql:latest tagtest3:latest tagtest4:latest |
|
| 512 |
-[ "$(oc get is/tagtest3 -t '{{(index .spec.tags 0).from.kind}}')" == "ImageStreamTag" ]
|
|
| 513 |
-[ "$(oc get is/tagtest4 -t '{{(index .spec.tags 0).from.kind}}')" == "ImageStreamTag" ]
|
|
| 514 |
- |
|
| 515 |
-oc delete is/tagtest is/tagtest2 is/tagtest3 is/tagtest4 |
|
| 516 |
-echo "tag: ok" |
|
| 517 |
- |
|
| 518 |
-[ "$(oc new-app library/php mysql -o yaml | grep 3306)" ] |
|
| 519 |
-[ ! "$(oc new-app unknownhubimage -o yaml)" ] |
|
| 520 |
-# verify we can generate a Docker image based component "mongodb" directly |
|
| 521 |
-[ "$(oc new-app mongo -o yaml | grep library/mongo)" ] |
|
| 522 |
-# the local image repository takes precedence over the Docker Hub "mysql" image |
|
| 523 |
-[ "$(oc new-app mysql -o yaml | grep mysql-55-centos7)" ] |
|
| 524 |
-oc delete all --all |
|
| 525 |
-oc new-app library/php mysql -l no-source=php-mysql |
|
| 526 |
-oc delete all -l no-source=php-mysql |
|
| 527 |
-# check if we can create from a stored template |
|
| 528 |
-oc create -f examples/sample-app/application-template-stibuild.json |
|
| 529 |
-oc get template ruby-helloworld-sample |
|
| 530 |
-[ "$(oc new-app ruby-helloworld-sample -o yaml | grep MYSQL_USER)" ] |
|
| 531 |
-[ "$(oc new-app ruby-helloworld-sample -o yaml | grep MYSQL_PASSWORD)" ] |
|
| 532 |
-[ "$(oc new-app ruby-helloworld-sample -o yaml | grep ADMIN_USERNAME)" ] |
|
| 533 |
-[ "$(oc new-app ruby-helloworld-sample -o yaml | grep ADMIN_PASSWORD)" ] |
|
| 534 |
-# check search |
|
| 535 |
-oc create -f examples/image-streams/image-streams-centos7.json |
|
| 536 |
-[ "$(oc new-app --search mysql | grep mysql-55-centos7)" ] |
|
| 537 |
-[ "$(oc new-app --search ruby-helloworld-sample | grep ruby-helloworld-sample)" ] |
|
| 538 |
-# check search - partial matches |
|
| 539 |
-[ "$(oc new-app --search ruby-hellow | grep ruby-helloworld-sample)" ] |
|
| 540 |
-[ "$(oc new-app --search --template=ruby-hel | grep ruby-helloworld-sample)" ] |
|
| 541 |
-[ "$(oc new-app --search --template=ruby-helloworld-sam -o yaml | grep ruby-helloworld-sample)" ] |
|
| 542 |
-[ "$(oc new-app --search rub | grep openshift/ruby-20-centos7)" ] |
|
| 543 |
-[ "$(oc new-app --search --image-stream=rub | grep openshift/ruby-20-centos7)" ] |
|
| 544 |
-# check search - check correct usage of filters |
|
| 545 |
-[ ! "$(oc new-app --search --image-stream=ruby-heloworld-sample | grep application-template-stibuild)" ] |
|
| 546 |
-[ ! "$(oc new-app --search --template=mongodb)" ] |
|
| 547 |
-[ ! "$(oc new-app --search --template=php)" ] |
|
| 548 |
-[ ! "$(oc new-app -S --template=nodejs)" ] |
|
| 549 |
-[ ! "$(oc new-app -S --template=perl)" ] |
|
| 550 |
-# check search - filtered, exact matches |
|
| 551 |
-[ "$(oc new-app --search --image-stream=mongodb | grep openshift/mongodb-24-centos7)" ] |
|
| 552 |
-[ "$(oc new-app --search --image-stream=mysql | grep openshift/mysql-55-centos7)" ] |
|
| 553 |
-[ "$(oc new-app --search --image-stream=nodejs | grep openshift/nodejs-010-centos7)" ] |
|
| 554 |
-[ "$(oc new-app --search --image-stream=perl | grep openshift/perl-516-centos7)" ] |
|
| 555 |
-[ "$(oc new-app --search --image-stream=php | grep openshift/php-55-centos7)" ] |
|
| 556 |
-[ "$(oc new-app --search --image-stream=postgresql | grep openshift/postgresql-92-centos7)" ] |
|
| 557 |
-[ "$(oc new-app -S --image-stream=python | grep openshift/python-33-centos7)" ] |
|
| 558 |
-[ "$(oc new-app -S --image-stream=ruby | grep openshift/ruby-20-centos7)" ] |
|
| 559 |
-[ "$(oc new-app -S --image-stream=wildfly | grep openshift/wildfly-8-centos)" ] |
|
| 560 |
-[ "$(oc new-app --search --template=ruby-helloworld-sample | grep ruby-helloworld-sample)" ] |
|
| 561 |
-# check search - no matches |
|
| 562 |
-[ "$(oc new-app -S foo-the-bar 2>&1 | grep 'no matches found')" ] |
|
| 563 |
-[ "$(oc new-app --search winter-is-coming 2>&1 | grep 'no matches found')" ] |
|
| 564 |
-# check search - mutually exclusive flags |
|
| 565 |
-[ "$(oc new-app -S mysql --env=FOO=BAR 2>&1 | grep "can't be used")" ] |
|
| 566 |
-[ "$(oc new-app --search mysql --code=https://github.com/openshift/ruby-hello-world 2>&1 | grep "can't be used")" ] |
|
| 567 |
-[ "$(oc new-app --search mysql --param=FOO=BAR 2>&1 | grep "can't be used")" ] |
|
| 568 |
-oc delete imageStreams --all |
|
| 569 |
-# check that we can create from the template without errors |
|
| 570 |
-oc new-app ruby-helloworld-sample -l app=helloworld |
|
| 571 |
-oc delete all -l app=helloworld |
|
| 572 |
-# create from template with code explicitly set is not supported |
|
| 573 |
-[ ! "$(oc new-app ruby-helloworld-sample~git@github.com/mfojtik/sinatra-app-example)" ] |
|
| 574 |
-oc delete template ruby-helloworld-sample |
|
| 575 |
-# override component names |
|
| 576 |
-[ "$(oc new-app mysql --name=db | grep db)" ] |
|
| 577 |
-oc new-app https://github.com/openshift/ruby-hello-world -l app=ruby |
|
| 578 |
-oc delete all -l app=ruby |
|
| 579 |
-echo "new-app: ok" |
|
| 580 |
- |
|
| 581 |
-oc get routes |
|
| 582 |
-oc create -f test/integration/fixtures/test-route.json |
|
| 583 |
-oc delete routes testroute |
|
| 584 |
-echo "routes: ok" |
|
| 585 |
- |
|
| 586 |
-oc get deploymentConfigs |
|
| 587 |
-oc get dc |
|
| 588 |
-oc create -f test/integration/fixtures/test-deployment-config.json |
|
| 589 |
-oc describe deploymentConfigs test-deployment-config |
|
| 590 |
-[ "$(oc env dc/test-deployment-config --list | grep TEST=value)" ] |
|
| 591 |
-[ ! "$(oc env dc/test-deployment-config TEST- --list | grep TEST=value)" ] |
|
| 592 |
-[ "$(oc env dc/test-deployment-config TEST=foo --list | grep TEST=foo)" ] |
|
| 593 |
-[ "$(oc env dc/test-deployment-config OTHER=foo --list | grep TEST=value)" ] |
|
| 594 |
-[ ! "$(oc env dc/test-deployment-config OTHER=foo -c 'ruby' --list | grep OTHER=foo)" ] |
|
| 595 |
-[ "$(oc env dc/test-deployment-config OTHER=foo -c 'ruby*' --list | grep OTHER=foo)" ] |
|
| 596 |
-[ "$(oc env dc/test-deployment-config OTHER=foo -c '*hello*' --list | grep OTHER=foo)" ] |
|
| 597 |
-[ "$(oc env dc/test-deployment-config OTHER=foo -c '*world' --list | grep OTHER=foo)" ] |
|
| 598 |
-[ "$(oc env dc/test-deployment-config OTHER=foo --list | grep OTHER=foo)" ] |
|
| 599 |
-[ "$(oc env dc/test-deployment-config OTHER=foo -o yaml | grep "name: OTHER")" ] |
|
| 600 |
-[ "$(echo "OTHER=foo" | oc env dc/test-deployment-config -e - --list | grep OTHER=foo)" ] |
|
| 601 |
-[ ! "$(echo "#OTHER=foo" | oc env dc/test-deployment-config -e - --list | grep OTHER=foo)" ] |
|
| 602 |
-[ "$(oc env dc/test-deployment-config TEST=bar OTHER=baz BAR-)" ] |
|
| 603 |
- |
|
| 604 |
-[ "$(oc volume dc/test-deployment-config --list | grep vol1)" ] |
|
| 605 |
-[ "$(oc volume dc/test-deployment-config --add --name=vol2 -m /opt)" ] |
|
| 606 |
-[ "$(oc volume dc/test-deployment-config --add --name=vol1 --type=secret --secret-name='$ecret' -m /data | grep overwrite)" ] |
|
| 607 |
-[ "$(oc volume dc/test-deployment-config --add --name=vol1 --type=emptyDir -m /data --overwrite)" ] |
|
| 608 |
-[ "$(oc volume dc/test-deployment-config --add -m /opt | grep exists)" ] |
|
| 609 |
-[ "$(oc volume dc/test-deployment-config --add --name=vol2 -m /etc -c 'ruby' --overwrite | grep warning)" ] |
|
| 610 |
-[ "$(oc volume dc/test-deployment-config --add --name=vol2 -m /etc -c 'ruby*' --overwrite)" ] |
|
| 611 |
-[ "$(oc volume dc/test-deployment-config --list --name=vol2 | grep /etc)" ] |
|
| 612 |
-[ "$(oc volume dc/test-deployment-config --add --name=vol3 -o yaml | grep vol3)" ] |
|
| 613 |
-[ "$(oc volume dc/test-deployment-config --list --name=vol3 | grep 'not found')" ] |
|
| 614 |
-[ "$(oc volume dc/test-deployment-config --remove 2>&1 | grep confirm)" ] |
|
| 615 |
-[ "$(oc volume dc/test-deployment-config --remove --name=vol2)" ] |
|
| 616 |
-[ ! "$(oc volume dc/test-deployment-config --list | grep vol2)" ] |
|
| 617 |
-[ "$(oc volume dc/test-deployment-config --remove --confirm)" ] |
|
| 618 |
-[ ! "$(oc volume dc/test-deployment-config --list | grep vol1)" ] |
|
| 619 |
-oc deploy test-deployment-config |
|
| 620 |
-oc delete deploymentConfigs test-deployment-config |
|
| 621 |
-echo "deploymentConfigs: ok" |
|
| 622 |
- |
|
| 623 |
-oc process -f test/templates/fixtures/guestbook.json -l app=guestbook | oc create -f - |
|
| 624 |
-oc status |
|
| 625 |
-[ "$(oc status | grep frontend-service)" ] |
|
| 626 |
-echo "template+config: ok" |
|
| 627 |
-[ "$(OC_EDITOR='cat' oc edit svc/kubernetes 2>&1 | grep 'Edit cancelled')" ] |
|
| 628 |
-[ "$(OC_EDITOR='cat' oc edit svc/kubernetes | grep 'provider: kubernetes')" ] |
|
| 629 |
-oc delete all -l app=guestbook |
|
| 630 |
-echo "edit: ok" |
|
| 631 |
- |
|
| 632 |
-oc delete all --all |
|
| 633 |
-oc create -f test/integration/fixtures/test-deployment-config.json |
|
| 634 |
-oc deploy test-deployment-config --latest |
|
| 635 |
-wait_for_command 'oc get rc/test-deployment-config-1' "${TIME_MIN}"
|
|
| 636 |
-# scale rc via deployment configuration |
|
| 637 |
-oc scale dc test-deployment-config --replicas=1 |
|
| 638 |
-# scale directly |
|
| 639 |
-oc scale rc test-deployment-config-1 --replicas=5 |
|
| 640 |
-oc delete all --all |
|
| 641 |
-echo "scale: ok" |
|
| 642 |
- |
|
| 643 |
-oc process -f examples/sample-app/application-template-dockerbuild.json -l app=dockerbuild | oc create -f - |
|
| 644 |
-wait_for_command 'oc get rc/database-1' "${TIME_MIN}"
|
|
| 645 |
- |
|
| 646 |
-oc rollback database --to-version=1 -o=yaml |
|
| 647 |
-oc rollback dc/database --to-version=1 -o=yaml |
|
| 648 |
-oc rollback dc/database --to-version=1 --dry-run |
|
| 649 |
-oc rollback database-1 -o=yaml |
|
| 650 |
-oc rollback rc/database-1 -o=yaml |
|
| 651 |
-# should fail because there's no previous deployment |
|
| 652 |
-[ ! "$(oc rollback database -o yaml)" ] |
|
| 653 |
-echo "rollback: ok" |
|
| 654 |
- |
|
| 655 |
-oc get dc/database |
|
| 656 |
-oc stop dc/database |
|
| 657 |
-[ ! "$(oc get dc/database)" ] |
|
| 658 |
-[ ! "$(oc get rc/database-1)" ] |
|
| 659 |
-echo "stop: ok" |
|
| 660 |
- |
|
| 661 |
-oc label bc ruby-sample-build acustom=label |
|
| 662 |
-[ "$(oc describe bc/ruby-sample-build | grep 'acustom=label')" ] |
|
| 663 |
-echo "label: ok" |
|
| 664 |
- |
|
| 665 |
-oc delete all -l app=dockerbuild |
|
| 666 |
-echo "delete: ok" |
|
| 667 |
- |
|
| 668 |
-oc process -f examples/sample-app/application-template-dockerbuild.json -l build=docker | oc create -f - |
|
| 669 |
-oc get buildConfigs |
|
| 670 |
-oc get bc |
|
| 671 |
-oc get builds |
|
| 672 |
- |
|
| 673 |
-[[ $(oc describe buildConfigs ruby-sample-build --api-version=v1beta3 | grep --text "Webhook GitHub" | grep -F "${API_SCHEME}://${API_HOST}:${API_PORT}/osapi/v1beta3/namespaces/default/buildconfigs/ruby-sample-build/webhooks/secret101/github") ]]
|
|
| 674 |
-[[ $(oc describe buildConfigs ruby-sample-build --api-version=v1beta3 | grep --text "Webhook Generic" | grep -F "${API_SCHEME}://${API_HOST}:${API_PORT}/osapi/v1beta3/namespaces/default/buildconfigs/ruby-sample-build/webhooks/secret101/generic") ]]
|
|
| 675 |
-oc start-build --list-webhooks='all' ruby-sample-build |
|
| 676 |
-[[ $(oc start-build --list-webhooks='all' ruby-sample-build | grep --text "generic") ]] |
|
| 677 |
-[[ $(oc start-build --list-webhooks='all' ruby-sample-build | grep --text "github") ]] |
|
| 678 |
-[[ $(oc start-build --list-webhooks='github' ruby-sample-build | grep --text "secret101") ]] |
|
| 679 |
-[ ! "$(oc start-build --list-webhooks='blah')" ] |
|
| 680 |
-webhook=$(oc start-build --list-webhooks='generic' ruby-sample-build --api-version=v1beta3 | head -n 1) |
|
| 681 |
-oc start-build --from-webhook="${webhook}"
|
|
| 682 |
-webhook=$(oc start-build --list-webhooks='generic' ruby-sample-build --api-version=v1 | head -n 1) |
|
| 683 |
-oc start-build --from-webhook="${webhook}"
|
|
| 684 |
-oc get builds |
|
| 685 |
-oc delete all -l build=docker |
|
| 686 |
-echo "buildConfig: ok" |
|
| 687 |
- |
|
| 688 |
-oc create -f test/integration/fixtures/test-buildcli.json |
|
| 689 |
-# a build for which there is not an upstream tag in the corresponding imagerepo, so |
|
| 690 |
-# the build should use the image field as defined in the buildconfig |
|
| 691 |
-started=$(oc start-build ruby-sample-build-invalidtag) |
|
| 692 |
-oc describe build ${started} | grep openshift/ruby-20-centos7$
|
|
| 693 |
-echo "start-build: ok" |
|
| 694 |
- |
|
| 695 |
-oc cancel-build "${started}" --dump-logs --restart
|
|
| 696 |
-echo "cancel-build: ok" |
|
| 697 |
-oc delete is/ruby-20-centos7-buildcli |
|
| 698 |
-oc delete bc/ruby-sample-build-validtag |
|
| 699 |
-oc delete bc/ruby-sample-build-invalidtag |
|
| 700 |
- |
|
| 701 |
-# Test admin manage-node operations |
|
| 702 |
-[ "$(openshift admin manage-node --help 2>&1 | grep 'Manage nodes')" ] |
|
| 703 |
-[ "$(oadm manage-node --selector='' --schedulable=true | grep --text 'Ready' | grep -v 'Sched')" ] |
|
| 704 |
-oc create -f examples/hello-openshift/hello-pod.json |
|
| 705 |
-#[ "$(oadm manage-node --list-pods | grep 'hello-openshift' | grep -E '(unassigned|assigned)')" ] |
|
| 706 |
-#[ "$(oadm manage-node --evacuate --dry-run | grep 'hello-openshift')" ] |
|
| 707 |
-#[ "$(oadm manage-node --schedulable=false | grep 'SchedulingDisabled')" ] |
|
| 708 |
-#[ "$(oadm manage-node --evacuate 2>&1 | grep 'Unable to evacuate')" ] |
|
| 709 |
-#[ "$(oadm manage-node --evacuate --force | grep 'hello-openshift')" ] |
|
| 710 |
-#[ ! "$(oadm manage-node --list-pods | grep 'hello-openshift')" ] |
|
| 711 |
-oc delete pods hello-openshift |
|
| 712 |
-echo "manage-node: ok" |
|
| 713 |
- |
|
| 714 |
-oadm policy who-can get pods |
|
| 715 |
-oadm policy who-can get pods -n default |
|
| 716 |
-oadm policy who-can get pods --all-namespaces |
|
| 717 |
- |
|
| 718 |
-oadm policy add-role-to-group cluster-admin system:unauthenticated |
|
| 719 |
-oadm policy add-role-to-user cluster-admin system:no-user |
|
| 720 |
-oadm policy remove-role-from-group cluster-admin system:unauthenticated |
|
| 721 |
-oadm policy remove-role-from-user cluster-admin system:no-user |
|
| 722 |
-oadm policy remove-group system:unauthenticated |
|
| 723 |
-oadm policy remove-user system:no-user |
|
| 724 |
-oadm policy add-cluster-role-to-group cluster-admin system:unauthenticated |
|
| 725 |
-oadm policy remove-cluster-role-from-group cluster-admin system:unauthenticated |
|
| 726 |
-oadm policy add-cluster-role-to-user cluster-admin system:no-user |
|
| 727 |
-oadm policy remove-cluster-role-from-user cluster-admin system:no-user |
|
| 728 |
-oc delete clusterrole/cluster-status |
|
| 729 |
-[ ! "$(oc get clusterrole/cluster-status)" ] |
|
| 730 |
-oadm policy reconcile-cluster-roles |
|
| 731 |
-[ ! "$(oc get clusterrole/cluster-status)" ] |
|
| 732 |
-oadm policy reconcile-cluster-roles --confirm |
|
| 733 |
-oc get clusterrole/cluster-status |
|
| 734 |
- |
|
| 735 |
-oc policy add-role-to-group cluster-admin system:unauthenticated |
|
| 736 |
-oc policy add-role-to-user cluster-admin system:no-user |
|
| 737 |
-oc policy remove-role-from-group cluster-admin system:unauthenticated |
|
| 738 |
-oc policy remove-role-from-user cluster-admin system:no-user |
|
| 739 |
-oc policy remove-group system:unauthenticated |
|
| 740 |
-oc policy remove-user system:no-user |
|
| 741 |
-echo "policy: ok" |
|
| 742 |
- |
|
| 743 |
-# Test the commands the UI projects page tells users to run |
|
| 744 |
-# These should match what is described in projects.html |
|
| 745 |
-oadm new-project ui-test-project --admin="createuser" |
|
| 746 |
-oadm policy add-role-to-user admin adduser -n ui-test-project |
|
| 747 |
-# Make sure project can be listed by oc (after auth cache syncs) |
|
| 748 |
-sleep 2 && [ "$(oc get projects | grep 'ui-test-project')" ] |
|
| 749 |
-# Make sure users got added |
|
| 750 |
-[ "$(oc describe policybinding ':default' -n ui-test-project | grep createuser)" ] |
|
| 751 |
-[ "$(oc describe policybinding ':default' -n ui-test-project | grep adduser)" ] |
|
| 752 |
-echo "ui-project-commands: ok" |
|
| 753 |
- |
|
| 754 |
-# Expose service as a route |
|
| 755 |
-oc create -f test/integration/fixtures/test-service.json |
|
| 756 |
-[ ! "$(oc expose service frontend --create-external-load-balancer)" ] |
|
| 757 |
-[ ! "$(oc expose service frontend --port=40 --type=NodePort)" ] |
|
| 758 |
-oc expose service frontend |
|
| 759 |
-[ "$(oc get route frontend | grep 'name=frontend')" ] |
|
| 760 |
-oc delete svc,route -l name=frontend |
|
| 761 |
-echo "expose: ok" |
|
| 762 |
- |
|
| 763 |
-# Test deleting and recreating a project |
|
| 764 |
-oadm new-project recreated-project --admin="createuser1" |
|
| 765 |
-oc delete project recreated-project |
|
| 766 |
-wait_for_command '! oc get project recreated-project' "${TIME_MIN}"
|
|
| 767 |
-oadm new-project recreated-project --admin="createuser2" |
|
| 768 |
-oc describe policybinding ':default' -n recreated-project | grep createuser2 |
|
| 769 |
-echo "new-project: ok" |
|
| 770 |
- |
|
| 771 |
-# Test running a router |
|
| 772 |
-[ ! "$(oadm router --dry-run | grep 'does not exist')" ] |
|
| 773 |
-echo '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"router"}}' | oc create -f -
|
|
| 774 |
-oc get scc privileged -o yaml | sed '/users:/ a\ |
|
| 775 |
-- system:serviceaccount:default:router\ |
|
| 776 |
-' | oc replace scc privileged -f - |
|
| 777 |
-[ "$(oadm router -o yaml --credentials="${KUBECONFIG}" --service-account=router | grep 'openshift/origin-haproxy-')" ]
|
|
| 778 |
-oadm router --credentials="${KUBECONFIG}" --images="${USE_IMAGES}" --service-account=router
|
|
| 779 |
-[ "$(oadm router | grep 'service exists')" ] |
|
| 780 |
-echo "router: ok" |
|
| 781 |
- |
|
| 782 |
-# Test running a registry |
|
| 783 |
-[ ! "$(oadm registry --dry-run | grep 'does not exist')"] |
|
| 784 |
-[ "$(oadm registry -o yaml --credentials="${KUBECONFIG}" | grep 'openshift/origin-docker-registry')" ]
|
|
| 785 |
-oadm registry --credentials="${KUBECONFIG}" --images="${USE_IMAGES}"
|
|
| 786 |
-[ "$(oadm registry | grep 'service exists')" ] |
|
| 787 |
-echo "registry: ok" |
|
| 788 |
- |
|
| 789 |
-# Test building a dependency tree |
|
| 790 |
-oc process -f examples/sample-app/application-template-stibuild.json -l build=sti | oc create -f - |
|
| 791 |
-[ "$(oadm build-chain ruby-20-centos7 -o dot | grep 'graph')" ] |
|
| 792 |
-oc delete all -l build=sti |
|
| 793 |
-echo "ex build-chain: ok" |
|
| 794 |
- |
|
| 795 |
-oadm new-project example --admin="createuser" |
|
| 796 |
-oc project example |
|
| 797 |
-wait_for_command 'oc get serviceaccount default' "${TIME_MIN}"
|
|
| 798 |
-oc create -f test/fixtures/app-scenarios |
|
| 799 |
-oc status |
|
| 800 |
-oc status -o dot |
|
| 801 |
-echo "complex-scenarios: ok" |
|
| 802 |
- |
|
| 803 |
-[ "$(oc export svc --all -t '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}' | wc -l)" -ne 0 ]
|
|
| 804 |
-[ "$(oc export svc --all --as-template=template | grep 'kind: Template')" ] |
|
| 805 |
-[ ! "$(oc export svc --all | grep 'clusterIP')" ] |
|
| 806 |
-[ ! "$(oc export svc --all --exact | grep 'clusterIP: ""')" ] |
|
| 807 |
-[ ! "$(oc export svc --all --raw | grep 'clusterIP: ""')" ] |
|
| 808 |
-[ ! "$(oc export svc --all --raw --exact)" ] |
|
| 809 |
-[ ! "$(oc export svc -l a=b)" ] # return error if no items match selector |
|
| 810 |
-[ "$(oc export svc -l a=b 2>&1 | grep 'no resources found')" ] |
|
| 811 |
-[ "$(oc export svc -l template=ruby-helloworld-sample)" ] |
|
| 812 |
-[ "$(oc export -f examples/sample-app/application-template-stibuild.json --raw --output-version=v1 | grep 'apiVersion: v1')" ] |
|
| 813 |
-echo "export: ok" |
|
| 814 |
- |
|
| 815 |
-# Clean-up everything before testing cleaning up everything... |
|
| 816 |
-oc delete all --all |
|
| 817 |
-oc process -f examples/sample-app/application-template-stibuild.json -l name=mytemplate | oc create -f - |
|
| 818 |
-oc delete all -l name=mytemplate |
|
| 819 |
-oc new-app https://github.com/openshift/ruby-hello-world -l name=hello-world |
|
| 820 |
-oc delete all -l name=hello-world |
|
| 821 |
-echo "delete all: ok" |
|
| 252 |
+# NOTE: Do not add tests here, add them to test/cmd/*. |
|
| 253 |
+# Tests should assume they run in an empty project, and should be reentrant if possible |
|
| 254 |
+# to make it easy to run individual tests |
|
| 255 |
+for test in "${tests[@]}"; do
|
|
| 256 |
+ echo |
|
| 257 |
+ echo "++ ${test}"
|
|
| 258 |
+ name=$(basename ${test} .sh)
|
|
| 259 |
+ oc new-project "cmd-${name}"
|
|
| 260 |
+ ${test}
|
|
| 261 |
+ oc delete project "cmd-${name}"
|
|
| 262 |
+done |
|
| 263 |
+ |
|
| 822 | 264 |
|
| 265 |
+# Done |
|
| 823 | 266 |
echo |
| 824 | 267 |
echo |
| 825 | 268 |
wait_for_url "${API_SCHEME}://${API_HOST}:${API_PORT}/metrics" "metrics: " 0.25 80
|
| 826 | 269 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,110 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+ |
|
| 2 |
+set -o errexit |
|
| 3 |
+set -o nounset |
|
| 4 |
+set -o pipefail |
|
| 5 |
+ |
|
| 6 |
+function tryuntil {
|
|
| 7 |
+ timeout=$(($(date +%s) + 60)) |
|
| 8 |
+ until eval "${@}" || [[ $(date +%s) -gt $timeout ]]; do :; done
|
|
| 9 |
+} |
|
| 10 |
+ |
|
| 11 |
+# Cleanup cluster resources created by this test |
|
| 12 |
+( |
|
| 13 |
+ set +e |
|
| 14 |
+ oc delete project/example project/ui-test-project project/recreated-project |
|
| 15 |
+ oc delete sa/router -n default |
|
| 16 |
+ oadm policy reconcile-cluster-roles |
|
| 17 |
+) 2>/dev/null 1>&2 |
|
| 18 |
+ |
|
| 19 |
+defaultimage="openshift/origin-\${component}:latest"
|
|
| 20 |
+USE_IMAGES=${USE_IMAGES:-$defaultimage}
|
|
| 21 |
+ |
|
| 22 |
+# This test validates admin level commands including system policy |
|
| 23 |
+ |
|
| 24 |
+# Test admin manage-node operations |
|
| 25 |
+[ "$(openshift admin manage-node --help 2>&1 | grep 'Manage nodes')" ] |
|
| 26 |
+[ "$(oadm manage-node --selector='' --schedulable=true | grep --text 'Ready' | grep -v 'Sched')" ] |
|
| 27 |
+oc create -f examples/hello-openshift/hello-pod.json |
|
| 28 |
+#[ "$(oadm manage-node --list-pods | grep 'hello-openshift' | grep -E '(unassigned|assigned)')" ] |
|
| 29 |
+#[ "$(oadm manage-node --evacuate --dry-run | grep 'hello-openshift')" ] |
|
| 30 |
+#[ "$(oadm manage-node --schedulable=false | grep 'SchedulingDisabled')" ] |
|
| 31 |
+#[ "$(oadm manage-node --evacuate 2>&1 | grep 'Unable to evacuate')" ] |
|
| 32 |
+#[ "$(oadm manage-node --evacuate --force | grep 'hello-openshift')" ] |
|
| 33 |
+#[ ! "$(oadm manage-node --list-pods | grep 'hello-openshift')" ] |
|
| 34 |
+oc delete pods hello-openshift |
|
| 35 |
+echo "manage-node: ok" |
|
| 36 |
+ |
|
| 37 |
+oadm policy who-can get pods |
|
| 38 |
+oadm policy who-can get pods -n default |
|
| 39 |
+oadm policy who-can get pods --all-namespaces |
|
| 40 |
+ |
|
| 41 |
+oadm policy add-role-to-group cluster-admin system:unauthenticated |
|
| 42 |
+oadm policy add-role-to-user cluster-admin system:no-user |
|
| 43 |
+oadm policy remove-role-from-group cluster-admin system:unauthenticated |
|
| 44 |
+oadm policy remove-role-from-user cluster-admin system:no-user |
|
| 45 |
+oadm policy remove-group system:unauthenticated |
|
| 46 |
+oadm policy remove-user system:no-user |
|
| 47 |
+oadm policy add-cluster-role-to-group cluster-admin system:unauthenticated |
|
| 48 |
+oadm policy remove-cluster-role-from-group cluster-admin system:unauthenticated |
|
| 49 |
+oadm policy add-cluster-role-to-user cluster-admin system:no-user |
|
| 50 |
+oadm policy remove-cluster-role-from-user cluster-admin system:no-user |
|
| 51 |
+oc delete clusterrole/cluster-status |
|
| 52 |
+[ ! "$(oc get clusterrole/cluster-status)" ] |
|
| 53 |
+oadm policy reconcile-cluster-roles |
|
| 54 |
+[ ! "$(oc get clusterrole/cluster-status)" ] |
|
| 55 |
+oadm policy reconcile-cluster-roles --confirm |
|
| 56 |
+oc get clusterrole/cluster-status |
|
| 57 |
+echo "admin-policy: ok" |
|
| 58 |
+ |
|
| 59 |
+# Test the commands the UI projects page tells users to run |
|
| 60 |
+# These should match what is described in projects.html |
|
| 61 |
+oadm new-project ui-test-project --admin="createuser" |
|
| 62 |
+oadm policy add-role-to-user admin adduser -n ui-test-project |
|
| 63 |
+# Make sure project can be listed by oc (after auth cache syncs) |
|
| 64 |
+tryuntil '[ "$(oc get projects | grep "ui-test-project")" ]' |
|
| 65 |
+# Make sure users got added |
|
| 66 |
+[ "$(oc describe policybinding ':default' -n ui-test-project | grep createuser)" ] |
|
| 67 |
+[ "$(oc describe policybinding ':default' -n ui-test-project | grep adduser)" ] |
|
| 68 |
+echo "ui-project-commands: ok" |
|
| 69 |
+ |
|
| 70 |
+ |
|
| 71 |
+# Test deleting and recreating a project |
|
| 72 |
+oadm new-project recreated-project --admin="createuser1" |
|
| 73 |
+oc delete project recreated-project |
|
| 74 |
+tryuntil '! oc get project recreated-project' |
|
| 75 |
+oadm new-project recreated-project --admin="createuser2" |
|
| 76 |
+oc describe policybinding ':default' -n recreated-project | grep createuser2 |
|
| 77 |
+echo "new-project: ok" |
|
| 78 |
+ |
|
| 79 |
+# Test running a router |
|
| 80 |
+[ ! "$(oadm router --dry-run | grep 'does not exist')" ] |
|
| 81 |
+echo '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"router"}}' | oc create -f - -n default
|
|
| 82 |
+oc get scc privileged -o yaml | sed '/users:/ a\ |
|
| 83 |
+- system:serviceaccount:default:router\ |
|
| 84 |
+' | oc replace scc privileged -f - |
|
| 85 |
+[ "$(oadm router -o yaml --credentials="${KUBECONFIG}" --service-account=router -n default | grep 'openshift/origin-haproxy-')" ]
|
|
| 86 |
+oadm router --credentials="${KUBECONFIG}" --images="${USE_IMAGES}" --service-account=router -n default
|
|
| 87 |
+[ "$(oadm router -n default | grep 'service exists')" ] |
|
| 88 |
+echo "router: ok" |
|
| 89 |
+ |
|
| 90 |
+# Test running a registry |
|
| 91 |
+[ ! "$(oadm registry --dry-run | grep 'does not exist')"] |
|
| 92 |
+[ "$(oadm registry -o yaml --credentials="${KUBECONFIG}" | grep 'openshift/origin-docker-registry')" ]
|
|
| 93 |
+oadm registry --credentials="${KUBECONFIG}" --images="${USE_IMAGES}"
|
|
| 94 |
+[ "$(oadm registry | grep 'service exists')" ] |
|
| 95 |
+echo "registry: ok" |
|
| 96 |
+ |
|
| 97 |
+# Test building a dependency tree |
|
| 98 |
+oc process -f examples/sample-app/application-template-stibuild.json -l build=sti | oc create -f - |
|
| 99 |
+[ "$(oadm build-chain ruby-20-centos7 -o dot | grep 'graph')" ] |
|
| 100 |
+oc delete all -l build=sti |
|
| 101 |
+echo "ex build-chain: ok" |
|
| 102 |
+ |
|
| 103 |
+oadm new-project example --admin="createuser" |
|
| 104 |
+oc project example |
|
| 105 |
+tryuntil oc get serviceaccount default |
|
| 106 |
+oc create -f test/fixtures/app-scenarios |
|
| 107 |
+oc status |
|
| 108 |
+oc status -o dot |
|
| 109 |
+echo "complex-scenarios: ok" |
|
| 0 | 110 |
\ No newline at end of file |
| 1 | 111 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,63 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+ |
|
| 2 |
+set -o errexit |
|
| 3 |
+set -o nounset |
|
| 4 |
+set -o pipefail |
|
| 5 |
+ |
|
| 6 |
+# This test validates basic resource retrieval and command interaction |
|
| 7 |
+ |
|
| 8 |
+# Test resource builder filtering of files with expected extensions inside directories, and individual files without expected extensions |
|
| 9 |
+[ "$(oc create -f test/resource-builder/directory -f test/resource-builder/json-no-extension -f test/resource-builder/yml-no-extension 2>&1)" ] |
|
| 10 |
+# Explicitly specified extensionless files |
|
| 11 |
+oc get secret json-no-extension yml-no-extension |
|
| 12 |
+# Scanned files with extensions inside directories |
|
| 13 |
+oc get secret json-with-extension yml-with-extension |
|
| 14 |
+# Ensure extensionless files inside directories are not processed by resource-builder |
|
| 15 |
+[ "$(oc get secret json-no-extension-in-directory 2>&1 | grep 'not found')" ] |
|
| 16 |
+echo "resource-builder: ok" |
|
| 17 |
+ |
|
| 18 |
+oc get pods --match-server-version |
|
| 19 |
+oc create -f examples/hello-openshift/hello-pod.json |
|
| 20 |
+oc describe pod hello-openshift |
|
| 21 |
+oc delete pods hello-openshift |
|
| 22 |
+echo "pods: ok" |
|
| 23 |
+ |
|
| 24 |
+oc create -f examples/hello-openshift/hello-pod.json |
|
| 25 |
+oc label pod/hello-openshift acustom=label |
|
| 26 |
+[ "$(oc describe pod/hello-openshift | grep 'acustom=label')" ] |
|
| 27 |
+oc delete pods -l acustom=label |
|
| 28 |
+[ ! "$(oc get pod/hello-openshift)" ] |
|
| 29 |
+echo "label: ok" |
|
| 30 |
+ |
|
| 31 |
+oc get services |
|
| 32 |
+oc create -f test/integration/fixtures/test-service.json |
|
| 33 |
+oc delete services frontend |
|
| 34 |
+echo "services: ok" |
|
| 35 |
+ |
|
| 36 |
+oc get nodes |
|
| 37 |
+echo "nodes: ok" |
|
| 38 |
+ |
|
| 39 |
+oc get routes |
|
| 40 |
+oc create -f test/integration/fixtures/test-route.json |
|
| 41 |
+oc delete routes testroute |
|
| 42 |
+echo "routes: ok" |
|
| 43 |
+ |
|
| 44 |
+# Expose service as a route |
|
| 45 |
+oc create -f test/integration/fixtures/test-service.json |
|
| 46 |
+[ ! "$(oc expose service frontend --create-external-load-balancer)" ] |
|
| 47 |
+[ ! "$(oc expose service frontend --port=40 --type=NodePort)" ] |
|
| 48 |
+oc expose service frontend |
|
| 49 |
+[ "$(oc get route frontend | grep 'name=frontend')" ] |
|
| 50 |
+oc delete svc,route -l name=frontend |
|
| 51 |
+echo "expose: ok" |
|
| 52 |
+ |
|
| 53 |
+oc delete all --all |
|
| 54 |
+ |
|
| 55 |
+oc process -f examples/sample-app/application-template-stibuild.json -l name=mytemplate | oc create -f - |
|
| 56 |
+oc delete all -l name=mytemplate |
|
| 57 |
+oc new-app https://github.com/openshift/ruby-hello-world |
|
| 58 |
+[ "$(oc get dc/ruby-hello-world)" ] |
|
| 59 |
+oc delete all -l app=ruby-hello-world |
|
| 60 |
+[ ! "$(oc get dc/ruby-hello-world)" ] |
|
| 61 |
+echo "delete all: ok" |
|
| 62 |
+ |
| 0 | 63 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,44 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+ |
|
| 2 |
+set -o errexit |
|
| 3 |
+set -o nounset |
|
| 4 |
+set -o pipefail |
|
| 5 |
+ |
|
| 6 |
+url=":${API_PORT:-8443}"
|
|
| 7 |
+project="$(oc project -q)" |
|
| 8 |
+ |
|
| 9 |
+# This test validates builds and build related commands |
|
| 10 |
+ |
|
| 11 |
+oc process -f examples/sample-app/application-template-dockerbuild.json -l build=docker | oc create -f - |
|
| 12 |
+oc get buildConfigs |
|
| 13 |
+oc get bc |
|
| 14 |
+oc get builds |
|
| 15 |
+ |
|
| 16 |
+[ "$(oc describe buildConfigs ruby-sample-build --api-version=v1beta3 | grep --text "Webhook GitHub" | grep -F "${url}/osapi/v1beta3/namespaces/${project}/buildconfigs/ruby-sample-build/webhooks/secret101/github")" ]
|
|
| 17 |
+[ "$(oc describe buildConfigs ruby-sample-build --api-version=v1beta3 | grep --text "Webhook Generic" | grep -F "${url}/osapi/v1beta3/namespaces/${project}/buildconfigs/ruby-sample-build/webhooks/secret101/generic")" ]
|
|
| 18 |
+oc start-build --list-webhooks='all' ruby-sample-build |
|
| 19 |
+[ "$(oc start-build --list-webhooks='all' ruby-sample-build | grep --text "generic")" ] |
|
| 20 |
+[ "$(oc start-build --list-webhooks='all' ruby-sample-build | grep --text "github")" ] |
|
| 21 |
+[ "$(oc start-build --list-webhooks='github' ruby-sample-build | grep --text "secret101")" ] |
|
| 22 |
+[ ! "$(oc start-build --list-webhooks='blah')" ] |
|
| 23 |
+webhook=$(oc start-build --list-webhooks='generic' ruby-sample-build --api-version=v1beta3 | head -n 1) |
|
| 24 |
+oc start-build --from-webhook="${webhook}"
|
|
| 25 |
+webhook=$(oc start-build --list-webhooks='generic' ruby-sample-build --api-version=v1 | head -n 1) |
|
| 26 |
+oc start-build --from-webhook="${webhook}"
|
|
| 27 |
+oc get builds |
|
| 28 |
+oc delete all -l build=docker |
|
| 29 |
+echo "buildConfig: ok" |
|
| 30 |
+ |
|
| 31 |
+oc create -f test/integration/fixtures/test-buildcli.json |
|
| 32 |
+# a build for which there is not an upstream tag in the corresponding imagerepo, so |
|
| 33 |
+# the build should use the image field as defined in the buildconfig |
|
| 34 |
+started=$(oc start-build ruby-sample-build-invalidtag) |
|
| 35 |
+oc describe build ${started} | grep openshift/ruby-20-centos7$
|
|
| 36 |
+echo "start-build: ok" |
|
| 37 |
+ |
|
| 38 |
+oc cancel-build "${started}" --dump-logs --restart
|
|
| 39 |
+echo "cancel-build: ok" |
|
| 40 |
+oc delete is/ruby-20-centos7-buildcli |
|
| 41 |
+oc delete bc/ruby-sample-build-validtag |
|
| 42 |
+oc delete bc/ruby-sample-build-invalidtag |
|
| 43 |
+ |
| 0 | 44 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,66 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+ |
|
| 2 |
+set -o errexit |
|
| 3 |
+set -o nounset |
|
| 4 |
+set -o pipefail |
|
| 5 |
+ |
|
| 6 |
+function tryuntil {
|
|
| 7 |
+ timeout=$(($(date +%s) + 60)) |
|
| 8 |
+ until eval "${@}" || [[ $(date +%s) -gt $timeout ]]; do :; done
|
|
| 9 |
+} |
|
| 10 |
+ |
|
| 11 |
+# This test validates deployments |
|
| 12 |
+ |
|
| 13 |
+oc get deploymentConfigs |
|
| 14 |
+oc get dc |
|
| 15 |
+oc create -f test/integration/fixtures/test-deployment-config.json |
|
| 16 |
+oc describe deploymentConfigs test-deployment-config |
|
| 17 |
+[ "$(oc env dc/test-deployment-config --list | grep TEST=value)" ] |
|
| 18 |
+[ ! "$(oc env dc/test-deployment-config TEST- --list | grep TEST=value)" ] |
|
| 19 |
+[ "$(oc env dc/test-deployment-config TEST=foo --list | grep TEST=foo)" ] |
|
| 20 |
+[ "$(oc env dc/test-deployment-config OTHER=foo --list | grep TEST=value)" ] |
|
| 21 |
+[ ! "$(oc env dc/test-deployment-config OTHER=foo -c 'ruby' --list | grep OTHER=foo)" ] |
|
| 22 |
+[ "$(oc env dc/test-deployment-config OTHER=foo -c 'ruby*' --list | grep OTHER=foo)" ] |
|
| 23 |
+[ "$(oc env dc/test-deployment-config OTHER=foo -c '*hello*' --list | grep OTHER=foo)" ] |
|
| 24 |
+[ "$(oc env dc/test-deployment-config OTHER=foo -c '*world' --list | grep OTHER=foo)" ] |
|
| 25 |
+[ "$(oc env dc/test-deployment-config OTHER=foo --list | grep OTHER=foo)" ] |
|
| 26 |
+[ "$(oc env dc/test-deployment-config OTHER=foo -o yaml | grep "name: OTHER")" ] |
|
| 27 |
+[ "$(echo "OTHER=foo" | oc env dc/test-deployment-config -e - --list | grep OTHER=foo)" ] |
|
| 28 |
+[ ! "$(echo "#OTHER=foo" | oc env dc/test-deployment-config -e - --list | grep OTHER=foo)" ] |
|
| 29 |
+[ "$(oc env dc/test-deployment-config TEST=bar OTHER=baz BAR-)" ] |
|
| 30 |
+ |
|
| 31 |
+oc deploy test-deployment-config |
|
| 32 |
+oc delete deploymentConfigs test-deployment-config |
|
| 33 |
+echo "deploymentConfigs: ok" |
|
| 34 |
+ |
|
| 35 |
+oc delete all --all |
|
| 36 |
+ |
|
| 37 |
+oc create -f test/integration/fixtures/test-deployment-config.json |
|
| 38 |
+oc deploy test-deployment-config --latest |
|
| 39 |
+tryuntil oc get rc/test-deployment-config-1 |
|
| 40 |
+# scale rc via deployment configuration |
|
| 41 |
+oc scale dc test-deployment-config --replicas=1 |
|
| 42 |
+# scale directly |
|
| 43 |
+oc scale rc test-deployment-config-1 --replicas=5 |
|
| 44 |
+oc delete all --all |
|
| 45 |
+echo "scale: ok" |
|
| 46 |
+ |
|
| 47 |
+oc delete all --all |
|
| 48 |
+ |
|
| 49 |
+oc process -f examples/sample-app/application-template-dockerbuild.json -l app=dockerbuild | oc create -f - |
|
| 50 |
+tryuntil oc get rc/database-1 |
|
| 51 |
+ |
|
| 52 |
+oc rollback database --to-version=1 -o=yaml |
|
| 53 |
+oc rollback dc/database --to-version=1 -o=yaml |
|
| 54 |
+oc rollback dc/database --to-version=1 --dry-run |
|
| 55 |
+oc rollback database-1 -o=yaml |
|
| 56 |
+oc rollback rc/database-1 -o=yaml |
|
| 57 |
+# should fail because there's no previous deployment |
|
| 58 |
+[ ! "$(oc rollback database -o yaml)" ] |
|
| 59 |
+echo "rollback: ok" |
|
| 60 |
+ |
|
| 61 |
+oc get dc/database |
|
| 62 |
+oc stop dc/database |
|
| 63 |
+[ ! "$(oc get dc/database)" ] |
|
| 64 |
+[ ! "$(oc get rc/database-1)" ] |
|
| 65 |
+echo "stop: ok" |
| 0 | 66 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,14 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+ |
|
| 2 |
+set -o errexit |
|
| 3 |
+set -o nounset |
|
| 4 |
+set -o pipefail |
|
| 5 |
+ |
|
| 6 |
+# This test validates the edit command |
|
| 7 |
+ |
|
| 8 |
+oc create -f examples/hello-openshift/hello-pod.json |
|
| 9 |
+ |
|
| 10 |
+[ "$(OC_EDITOR='cat' oc edit pod/hello-openshift 2>&1 | grep 'Edit cancelled')" ] |
|
| 11 |
+[ "$(OC_EDITOR='cat' oc edit pod/hello-openshift | grep 'name: hello-openshift')" ] |
|
| 12 |
+echo "edit: ok" |
|
| 13 |
+ |
| 0 | 14 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,21 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+ |
|
| 2 |
+set -o errexit |
|
| 3 |
+set -o nounset |
|
| 4 |
+set -o pipefail |
|
| 5 |
+ |
|
| 6 |
+# This test validates the export command |
|
| 7 |
+ |
|
| 8 |
+oc new-app -f examples/sample-app/application-template-stibuild.json --name=sample |
|
| 9 |
+ |
|
| 10 |
+[ "$(oc export svc --all -t '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}' | wc -l)" -ne 0 ]
|
|
| 11 |
+[ "$(oc export svc --all --as-template=template | grep 'kind: Template')" ] |
|
| 12 |
+[ ! "$(oc export svc --all | grep 'clusterIP')" ] |
|
| 13 |
+[ ! "$(oc export svc --all --exact | grep 'clusterIP: ""')" ] |
|
| 14 |
+[ ! "$(oc export svc --all --raw | grep 'clusterIP: ""')" ] |
|
| 15 |
+[ ! "$(oc export svc --all --raw --exact)" ] |
|
| 16 |
+[ ! "$(oc export svc -l a=b)" ] # return error if no items match selector |
|
| 17 |
+[ "$(oc export svc -l a=b 2>&1 | grep 'no resources found')" ] |
|
| 18 |
+[ "$(oc export svc -l app=sample)" ] |
|
| 19 |
+[ "$(oc export -f examples/sample-app/application-template-stibuild.json --raw --output-version=v1 | grep 'apiVersion: v1')" ] |
|
| 20 |
+echo "export: ok" |
| 0 | 21 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,109 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+ |
|
| 2 |
+set -o errexit |
|
| 3 |
+set -o nounset |
|
| 4 |
+set -o pipefail |
|
| 5 |
+ |
|
| 6 |
+# This test validates the help commands and output text |
|
| 7 |
+ |
|
| 8 |
+# verify some default commands |
|
| 9 |
+[ "$(openshift 2>&1)" ] |
|
| 10 |
+[ "$(openshift cli)" ] |
|
| 11 |
+[ "$(openshift ex)" ] |
|
| 12 |
+[ "$(openshift admin config 2>&1)" ] |
|
| 13 |
+[ "$(openshift cli config 2>&1)" ] |
|
| 14 |
+[ "$(openshift ex tokens)" ] |
|
| 15 |
+[ "$(openshift admin policy 2>&1)" ] |
|
| 16 |
+[ "$(openshift kubectl 2>&1)" ] |
|
| 17 |
+[ "$(openshift kube 2>&1)" ] |
|
| 18 |
+[ "$(openshift admin 2>&1)" ] |
|
| 19 |
+[ "$(openshift start kubernetes 2>&1)" ] |
|
| 20 |
+[ "$(kubernetes 2>&1)" ] |
|
| 21 |
+[ "$(kubectl 2>&1)" ] |
|
| 22 |
+[ "$(oc 2>&1)" ] |
|
| 23 |
+[ "$(osc 2>&1)" ] |
|
| 24 |
+[ "$(oadm 2>&1)" ] |
|
| 25 |
+[ "$(oadm 2>&1)" ] |
|
| 26 |
+[ "$(origin 2>&1)" ] |
|
| 27 |
+ |
|
| 28 |
+# help for root commands must be consistent |
|
| 29 |
+[ "$(openshift | grep 'Application Platform')" ] |
|
| 30 |
+[ "$(oc | grep 'Developer and Administrator Client')" ] |
|
| 31 |
+[ "$(oc | grep 'Build and Deploy Commands:')" ] |
|
| 32 |
+[ "$(oc | grep 'Other Commands:')" ] |
|
| 33 |
+[ "$(oc policy --help 2>&1 | grep 'add-role-to-user')" ] |
|
| 34 |
+[ ! "$(oc policy --help 2>&1 | grep 'Other Commands')" ] |
|
| 35 |
+[ ! "$(oc 2>&1 | grep 'Options')" ] |
|
| 36 |
+[ ! "$(oc 2>&1 | grep 'Global Options')" ] |
|
| 37 |
+[ "$(openshift cli 2>&1 | grep 'Developer and Administrator Client')" ] |
|
| 38 |
+[ "$(oc types | grep 'Deployment Config')" ] |
|
| 39 |
+[ "$(openshift kubectl 2>&1 | grep 'Kubernetes cluster')" ] |
|
| 40 |
+[ "$(oadm 2>&1 | grep 'Administrative Commands')" ] |
|
| 41 |
+[ "$(openshift admin 2>&1 | grep 'Administrative Commands')" ] |
|
| 42 |
+[ "$(oadm | grep 'Basic Commands:')" ] |
|
| 43 |
+[ "$(oadm | grep 'Install Commands:')" ] |
|
| 44 |
+[ "$(oadm ca | grep 'Manage certificates')" ] |
|
| 45 |
+[ "$(openshift start kubernetes 2>&1 | grep 'Kubernetes server components')" ] |
|
| 46 |
+# check deprecated admin cmds for backward compatibility |
|
| 47 |
+[ "$(oadm create-master-certs -h 2>&1 | grep 'Create keys and certificates')" ] |
|
| 48 |
+[ "$(oadm create-key-pair -h 2>&1 | grep 'Create an RSA key pair')" ] |
|
| 49 |
+[ "$(oadm create-server-cert -h 2>&1 | grep 'Create a key and server certificate')" ] |
|
| 50 |
+[ "$(oadm create-signer-cert -h 2>&1 | grep 'Create a self-signed CA')" ] |
|
| 51 |
+# atomic-enterprise binaries are recognized |
|
| 52 |
+[ "$(openshift | grep -i 'OpenShift Application Platform')" ] |
|
| 53 |
+[ ! "$(openshift | grep -i 'Atomic')" ] |
|
| 54 |
+[ "$(origin | grep -i 'Origin Application Platform')" ] |
|
| 55 |
+[ ! "$(origin | grep -i 'Atomic')" ] |
|
| 56 |
+[ "$(atomic-enterprise | grep -i 'Atomic Application Platform')" ] |
|
| 57 |
+[ ! "$(atomic-enterprise | grep -i 'OpenShift')" ] |
|
| 58 |
+ |
|
| 59 |
+# help for root commands with --help flag must be consistent |
|
| 60 |
+[ "$(openshift --help 2>&1 | grep 'OpenShift Application Platform')" ] |
|
| 61 |
+[ "$(oc --help 2>&1 | grep 'Developer and Administrator Client')" ] |
|
| 62 |
+[ "$(oc login --help 2>&1 | grep 'Options')" ] |
|
| 63 |
+[ ! "$(oc login --help 2>&1 | grep 'Global Options')" ] |
|
| 64 |
+[ "$(oc login --help 2>&1 | grep 'insecure-skip-tls-verify')" ] |
|
| 65 |
+[ "$(openshift cli --help 2>&1 | grep 'Developer and Administrator Client')" ] |
|
| 66 |
+[ "$(openshift kubectl --help 2>&1 | grep 'Kubernetes cluster')" ] |
|
| 67 |
+[ "$(oadm --help 2>&1 | grep 'Administrative Commands')" ] |
|
| 68 |
+[ "$(openshift admin --help 2>&1 | grep 'Administrative Commands')" ] |
|
| 69 |
+ |
|
| 70 |
+# help for root commands through help command must be consistent |
|
| 71 |
+[ "$(openshift help cli 2>&1 | grep 'Developer and Administrator Client')" ] |
|
| 72 |
+[ "$(openshift help kubectl 2>&1 | grep 'Kubernetes cluster')" ] |
|
| 73 |
+[ "$(openshift help admin 2>&1 | grep 'Administrative Commands')" ] |
|
| 74 |
+ |
|
| 75 |
+# help for given command with --help flag must be consistent |
|
| 76 |
+[ "$(oc get --help 2>&1 | grep 'Display one or many resources')" ] |
|
| 77 |
+[ "$(openshift cli get --help 2>&1 | grep 'Display one or many resources')" ] |
|
| 78 |
+[ "$(openshift kubectl get --help 2>&1 | grep 'Display one or many resources')" ] |
|
| 79 |
+[ "$(openshift start --help 2>&1 | grep 'Start an all-in-one server')" ] |
|
| 80 |
+[ "$(openshift start master --help 2>&1 | grep 'Start a master')" ] |
|
| 81 |
+[ "$(openshift start node --help 2>&1 | grep 'Start a node')" ] |
|
| 82 |
+[ "$(oc get --help 2>&1 | grep 'oc')" ] |
|
| 83 |
+ |
|
| 84 |
+# help for given command through help command must be consistent |
|
| 85 |
+[ "$(oc help get 2>&1 | grep 'Display one or many resources')" ] |
|
| 86 |
+[ "$(openshift help cli get 2>&1 | grep 'Display one or many resources')" ] |
|
| 87 |
+[ "$(openshift help kubectl get 2>&1 | grep 'Display one or many resources')" ] |
|
| 88 |
+[ "$(openshift help start 2>&1 | grep 'Start an all-in-one server')" ] |
|
| 89 |
+[ "$(openshift help start master 2>&1 | grep 'Start a master')" ] |
|
| 90 |
+[ "$(openshift help start node 2>&1 | grep 'Start a node')" ] |
|
| 91 |
+[ "$(openshift cli help update 2>&1 | grep 'openshift')" ] |
|
| 92 |
+[ "$(openshift cli help replace 2>&1 | grep 'openshift')" ] |
|
| 93 |
+[ "$(openshift cli help patch 2>&1 | grep 'openshift')" ] |
|
| 94 |
+ |
|
| 95 |
+# runnable commands with required flags must error consistently |
|
| 96 |
+[ "$(oc get 2>&1 | grep 'Required resource not specified')" ] |
|
| 97 |
+[ "$(openshift cli get 2>&1 | grep 'Required resource not specified')" ] |
|
| 98 |
+[ "$(openshift kubectl get 2>&1 | grep 'Required resource not specified')" ] |
|
| 99 |
+ |
|
| 100 |
+# commands that expect file paths must validate and error out correctly |
|
| 101 |
+[ "$(oc login --certificate-authority=/path/to/invalid 2>&1 | grep 'no such file or directory')" ] |
|
| 102 |
+ |
|
| 103 |
+# make sure that typoed commands come back with non-zero return codes |
|
| 104 |
+[ "$(openshift admin policy TYPO; echo $? | grep '1')" ] |
|
| 105 |
+[ "$(openshift admin TYPO; echo $? | grep '1')" ] |
|
| 106 |
+[ "$(openshift cli TYPO; echo $? | grep '1')" ] |
|
| 107 |
+[ "$(oc policy TYPO; echo $? | grep '1')" ] |
|
| 108 |
+[ "$(oc secrets TYPO; echo $? | grep '1')" ] |
| 0 | 109 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,110 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+ |
|
| 2 |
+set -o errexit |
|
| 3 |
+set -o nounset |
|
| 4 |
+set -o pipefail |
|
| 5 |
+ |
|
| 6 |
+function tryuntil {
|
|
| 7 |
+ timeout=$(($(date +%s) + 60)) |
|
| 8 |
+ until eval "${@}" || [[ $(date +%s) -gt $timeout ]]; do :; done
|
|
| 9 |
+} |
|
| 10 |
+ |
|
| 11 |
+defaultimage="openshift/origin-\${component}:latest"
|
|
| 12 |
+USE_IMAGES=${USE_IMAGES:-$defaultimage}
|
|
| 13 |
+ |
|
| 14 |
+# This test validates images and image streams along with the tag and import-image commands |
|
| 15 |
+ |
|
| 16 |
+oc get images |
|
| 17 |
+oc create -f test/integration/fixtures/test-image.json |
|
| 18 |
+oc delete images test |
|
| 19 |
+echo "images: ok" |
|
| 20 |
+ |
|
| 21 |
+oc get imageStreams |
|
| 22 |
+oc create -f test/integration/fixtures/test-image-stream.json |
|
| 23 |
+# verify that creating a registry fills out .status.dockerImageRepository |
|
| 24 |
+if [ -z "$(oc get imageStreams test -t "{{.status.dockerImageRepository}}")" ]; then
|
|
| 25 |
+ # create the registry |
|
| 26 |
+ oadm registry --credentials="${KUBECONFIG}" --images="${USE_IMAGES}" -n default
|
|
| 27 |
+ # make sure stream.status.dockerImageRepository IS set |
|
| 28 |
+ [ -n "$(oc get imageStreams test -t "{{.status.dockerImageRepository}}")" ]
|
|
| 29 |
+fi |
|
| 30 |
+oc delete imageStreams test |
|
| 31 |
+[ -z "$(oc get imageStreams test -t "{{.status.dockerImageRepository}}")" ]
|
|
| 32 |
+ |
|
| 33 |
+oc create -f examples/image-streams/image-streams-centos7.json |
|
| 34 |
+[ -n "$(oc get imageStreams ruby -t "{{.status.dockerImageRepository}}")" ]
|
|
| 35 |
+[ -n "$(oc get imageStreams nodejs -t "{{.status.dockerImageRepository}}")" ]
|
|
| 36 |
+[ -n "$(oc get imageStreams wildfly -t "{{.status.dockerImageRepository}}")" ]
|
|
| 37 |
+[ -n "$(oc get imageStreams mysql -t "{{.status.dockerImageRepository}}")" ]
|
|
| 38 |
+[ -n "$(oc get imageStreams postgresql -t "{{.status.dockerImageRepository}}")" ]
|
|
| 39 |
+[ -n "$(oc get imageStreams mongodb -t "{{.status.dockerImageRepository}}")" ]
|
|
| 40 |
+# verify the image repository had its tags populated |
|
| 41 |
+tryuntil oc get imagestreamtags wildfly:latest |
|
| 42 |
+[ -n "$(oc get imageStreams wildfly -t "{{ index .metadata.annotations \"openshift.io/image.dockerRepositoryCheck\"}}")" ]
|
|
| 43 |
+oc delete imageStreams ruby |
|
| 44 |
+oc delete imageStreams nodejs |
|
| 45 |
+oc delete imageStreams wildfly |
|
| 46 |
+#oc delete imageStreams mysql |
|
| 47 |
+oc delete imageStreams postgresql |
|
| 48 |
+oc delete imageStreams mongodb |
|
| 49 |
+[ -z "$(oc get imageStreams ruby -t "{{.status.dockerImageRepository}}")" ]
|
|
| 50 |
+[ -z "$(oc get imageStreams nodejs -t "{{.status.dockerImageRepository}}")" ]
|
|
| 51 |
+[ -z "$(oc get imageStreams postgresql -t "{{.status.dockerImageRepository}}")" ]
|
|
| 52 |
+[ -z "$(oc get imageStreams mongodb -t "{{.status.dockerImageRepository}}")" ]
|
|
| 53 |
+[ -z "$(oc get imageStreams wildfly -t "{{.status.dockerImageRepository}}")" ]
|
|
| 54 |
+tryuntil oc get imagestreamTags mysql:latest |
|
| 55 |
+[ -n "$(oc get imagestreams mysql -t "{{ index .metadata.annotations \"openshift.io/image.dockerRepositoryCheck\"}}")" ]
|
|
| 56 |
+oc describe istag/mysql:latest |
|
| 57 |
+[ "$(oc describe istag/mysql:latest | grep "Environment:")" ] |
|
| 58 |
+[ "$(oc describe istag/mysql:latest | grep "Image Created:")" ] |
|
| 59 |
+[ "$(oc describe istag/mysql:latest | grep "Image Name:")" ] |
|
| 60 |
+name=$(oc get istag/mysql:latest -t '{{ .image.metadata.name }}')
|
|
| 61 |
+imagename="isimage/mysql@${name:0:7}"
|
|
| 62 |
+oc describe "${imagename}"
|
|
| 63 |
+[ "$(oc describe ${imagename} | grep "Environment:")" ]
|
|
| 64 |
+[ "$(oc describe ${imagename} | grep "Image Created:")" ]
|
|
| 65 |
+[ "$(oc describe ${imagename} | grep "Image Name:")" ]
|
|
| 66 |
+echo "imageStreams: ok" |
|
| 67 |
+ |
|
| 68 |
+# oc tag |
|
| 69 |
+# start with an empty target image stream |
|
| 70 |
+echo '{"apiVersion":"v1", "kind": "ImageStream", "metadata": {"name":"tagtest"}}' | oc create -f -
|
|
| 71 |
+echo '{"apiVersion":"v1", "kind": "ImageStream", "metadata": {"name":"tagtest2"}}' | oc create -f -
|
|
| 72 |
+ |
|
| 73 |
+oc tag mysql:latest tagtest:tag1 |
|
| 74 |
+[ "$(oc get is/tagtest -t '{{(index .spec.tags 0).from.kind}}')" == "ImageStreamTag" ]
|
|
| 75 |
+ |
|
| 76 |
+oc tag mysql@${name} tagtest:tag2
|
|
| 77 |
+[ "$(oc get is/tagtest -t '{{(index .spec.tags 1).from.kind}}')" == "ImageStreamImage" ]
|
|
| 78 |
+ |
|
| 79 |
+oc tag mysql:notfound tagtest:tag3 |
|
| 80 |
+[ "$(oc get is/tagtest -t '{{(index .spec.tags 2).from.kind}}')" == "DockerImage" ]
|
|
| 81 |
+ |
|
| 82 |
+oc tag --source=imagestreamtag mysql:latest tagtest:tag4 |
|
| 83 |
+[ "$(oc get is/tagtest -t '{{(index .spec.tags 3).from.kind}}')" == "ImageStreamTag" ]
|
|
| 84 |
+ |
|
| 85 |
+oc tag --source=istag mysql:latest tagtest:tag5 |
|
| 86 |
+[ "$(oc get is/tagtest -t '{{(index .spec.tags 4).from.kind}}')" == "ImageStreamTag" ]
|
|
| 87 |
+ |
|
| 88 |
+oc tag --source=imagestreamimage mysql@${name} tagtest:tag6
|
|
| 89 |
+[ "$(oc get is/tagtest -t '{{(index .spec.tags 5).from.kind}}')" == "ImageStreamImage" ]
|
|
| 90 |
+ |
|
| 91 |
+oc tag --source=isimage mysql@${name} tagtest:tag7
|
|
| 92 |
+[ "$(oc get is/tagtest -t '{{(index .spec.tags 6).from.kind}}')" == "ImageStreamImage" ]
|
|
| 93 |
+ |
|
| 94 |
+oc tag --source=docker mysql:latest tagtest:tag8 |
|
| 95 |
+[ "$(oc get is/tagtest -t '{{(index .spec.tags 7).from.kind}}')" == "DockerImage" ]
|
|
| 96 |
+ |
|
| 97 |
+oc tag mysql:latest tagtest:zzz tagtest2:zzz |
|
| 98 |
+[ "$(oc get is/tagtest -t '{{(index .spec.tags 8).from.kind}}')" == "ImageStreamTag" ]
|
|
| 99 |
+[ "$(oc get is/tagtest2 -t '{{(index .spec.tags 0).from.kind}}')" == "ImageStreamTag" ]
|
|
| 100 |
+ |
|
| 101 |
+# test creating streams that don't exist |
|
| 102 |
+[ -z "$(oc get imageStreams tagtest3 -t "{{.status.dockerImageRepository}}")" ]
|
|
| 103 |
+[ -z "$(oc get imageStreams tagtest4 -t "{{.status.dockerImageRepository}}")" ]
|
|
| 104 |
+oc tag mysql:latest tagtest3:latest tagtest4:latest |
|
| 105 |
+[ "$(oc get is/tagtest3 -t '{{(index .spec.tags 0).from.kind}}')" == "ImageStreamTag" ]
|
|
| 106 |
+[ "$(oc get is/tagtest4 -t '{{(index .spec.tags 0).from.kind}}')" == "ImageStreamTag" ]
|
|
| 107 |
+ |
|
| 108 |
+oc delete is/tagtest is/tagtest2 is/tagtest3 is/tagtest4 |
|
| 109 |
+echo "tag: ok" |
| 0 | 110 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,84 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+ |
|
| 2 |
+set -o errexit |
|
| 3 |
+set -o nounset |
|
| 4 |
+set -o pipefail |
|
| 5 |
+ |
|
| 6 |
+function tryuntil {
|
|
| 7 |
+ timeout=$(($(date +%s) + 60)) |
|
| 8 |
+ until eval "${@}" || [[ $(date +%s) -gt $timeout ]]; do :; done
|
|
| 9 |
+} |
|
| 10 |
+ |
|
| 11 |
+# This test validates the new-app command |
|
| 12 |
+ |
|
| 13 |
+oc create -f examples/image-streams/image-streams-centos7.json |
|
| 14 |
+ |
|
| 15 |
+[ "$(oc new-app library/php mysql -o yaml | grep 3306)" ] |
|
| 16 |
+[ ! "$(oc new-app unknownhubimage -o yaml)" ] |
|
| 17 |
+# verify we can generate a Docker image based component "mongodb" directly |
|
| 18 |
+[ "$(oc new-app mongo -o yaml | grep library/mongo)" ] |
|
| 19 |
+# the local image repository takes precedence over the Docker Hub "mysql" image |
|
| 20 |
+tryuntil oc get imagestreamtags mysql:latest |
|
| 21 |
+[ "$(oc new-app mysql -o yaml | grep mysql-55-centos7)" ] |
|
| 22 |
+ |
|
| 23 |
+# check label creation |
|
| 24 |
+oc new-app php mysql -l no-source=php-mysql |
|
| 25 |
+oc delete all -l no-source=php-mysql |
|
| 26 |
+oc new-app php mysql |
|
| 27 |
+oc delete all -l app=php |
|
| 28 |
+[ ! "$(oc get dc/mysql)" ] |
|
| 29 |
+[ ! "$(oc get dc/php)" ] |
|
| 30 |
+ |
|
| 31 |
+# check if we can create from a stored template |
|
| 32 |
+oc create -f examples/sample-app/application-template-stibuild.json |
|
| 33 |
+oc get template ruby-helloworld-sample |
|
| 34 |
+[ "$(oc new-app ruby-helloworld-sample -o yaml | grep MYSQL_USER)" ] |
|
| 35 |
+[ "$(oc new-app ruby-helloworld-sample -o yaml | grep MYSQL_PASSWORD)" ] |
|
| 36 |
+[ "$(oc new-app ruby-helloworld-sample -o yaml | grep ADMIN_USERNAME)" ] |
|
| 37 |
+[ "$(oc new-app ruby-helloworld-sample -o yaml | grep ADMIN_PASSWORD)" ] |
|
| 38 |
+ |
|
| 39 |
+# check search |
|
| 40 |
+[ "$(oc new-app --search mysql | grep mysql-55-centos7)" ] |
|
| 41 |
+[ "$(oc new-app --search ruby-helloworld-sample | grep ruby-helloworld-sample)" ] |
|
| 42 |
+# check search - partial matches |
|
| 43 |
+[ "$(oc new-app --search ruby-hellow | grep ruby-helloworld-sample)" ] |
|
| 44 |
+[ "$(oc new-app --search --template=ruby-hel | grep ruby-helloworld-sample)" ] |
|
| 45 |
+[ "$(oc new-app --search --template=ruby-helloworld-sam -o yaml | grep ruby-helloworld-sample)" ] |
|
| 46 |
+[ "$(oc new-app --search rub | grep openshift/ruby-20-centos7)" ] |
|
| 47 |
+[ "$(oc new-app --search --image-stream=rub | grep openshift/ruby-20-centos7)" ] |
|
| 48 |
+# check search - check correct usage of filters |
|
| 49 |
+[ ! "$(oc new-app --search --image-stream=ruby-heloworld-sample | grep application-template-stibuild)" ] |
|
| 50 |
+[ ! "$(oc new-app --search --template=mongodb)" ] |
|
| 51 |
+[ ! "$(oc new-app --search --template=php)" ] |
|
| 52 |
+[ ! "$(oc new-app -S --template=nodejs)" ] |
|
| 53 |
+[ ! "$(oc new-app -S --template=perl)" ] |
|
| 54 |
+# check search - filtered, exact matches |
|
| 55 |
+[ "$(oc new-app --search --image-stream=mongodb | grep openshift/mongodb-24-centos7)" ] |
|
| 56 |
+[ "$(oc new-app --search --image-stream=mysql | grep openshift/mysql-55-centos7)" ] |
|
| 57 |
+[ "$(oc new-app --search --image-stream=nodejs | grep openshift/nodejs-010-centos7)" ] |
|
| 58 |
+[ "$(oc new-app --search --image-stream=perl | grep openshift/perl-516-centos7)" ] |
|
| 59 |
+[ "$(oc new-app --search --image-stream=php | grep openshift/php-55-centos7)" ] |
|
| 60 |
+[ "$(oc new-app --search --image-stream=postgresql | grep openshift/postgresql-92-centos7)" ] |
|
| 61 |
+[ "$(oc new-app -S --image-stream=python | grep openshift/python-33-centos7)" ] |
|
| 62 |
+[ "$(oc new-app -S --image-stream=ruby | grep openshift/ruby-20-centos7)" ] |
|
| 63 |
+[ "$(oc new-app -S --image-stream=wildfly | grep openshift/wildfly-8-centos)" ] |
|
| 64 |
+[ "$(oc new-app --search --template=ruby-helloworld-sample | grep ruby-helloworld-sample)" ] |
|
| 65 |
+# check search - no matches |
|
| 66 |
+[ "$(oc new-app -S foo-the-bar 2>&1 | grep 'no matches found')" ] |
|
| 67 |
+[ "$(oc new-app --search winter-is-coming 2>&1 | grep 'no matches found')" ] |
|
| 68 |
+# check search - mutually exclusive flags |
|
| 69 |
+[ "$(oc new-app -S mysql --env=FOO=BAR 2>&1 | grep "can't be used")" ] |
|
| 70 |
+[ "$(oc new-app --search mysql --code=https://github.com/openshift/ruby-hello-world 2>&1 | grep "can't be used")" ] |
|
| 71 |
+[ "$(oc new-app --search mysql --param=FOO=BAR 2>&1 | grep "can't be used")" ] |
|
| 72 |
+oc delete imageStreams --all |
|
| 73 |
+# check that we can create from the template without errors |
|
| 74 |
+oc new-app ruby-helloworld-sample -l app=helloworld |
|
| 75 |
+oc delete all -l app=helloworld |
|
| 76 |
+# create from template with code explicitly set is not supported |
|
| 77 |
+[ ! "$(oc new-app ruby-helloworld-sample~git@github.com/mfojtik/sinatra-app-example)" ] |
|
| 78 |
+oc delete template ruby-helloworld-sample |
|
| 79 |
+# override component names |
|
| 80 |
+[ "$(oc new-app mysql --name=db | grep db)" ] |
|
| 81 |
+oc new-app https://github.com/openshift/ruby-hello-world -l app=ruby |
|
| 82 |
+oc delete all -l app=ruby |
|
| 83 |
+echo "new-app: ok" |
| 0 | 84 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,15 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+ |
|
| 2 |
+set -o errexit |
|
| 3 |
+set -o nounset |
|
| 4 |
+set -o pipefail |
|
| 5 |
+ |
|
| 6 |
+# This test validates user level policy |
|
| 7 |
+ |
|
| 8 |
+oc policy add-role-to-group cluster-admin system:unauthenticated |
|
| 9 |
+oc policy add-role-to-user cluster-admin system:no-user |
|
| 10 |
+oc policy remove-role-from-group cluster-admin system:unauthenticated |
|
| 11 |
+oc policy remove-role-from-user cluster-admin system:no-user |
|
| 12 |
+oc policy remove-group system:unauthenticated |
|
| 13 |
+oc policy remove-user system:no-user |
|
| 14 |
+echo "policy: ok" |
| 0 | 15 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,32 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+ |
|
| 2 |
+set -o errexit |
|
| 3 |
+set -o nounset |
|
| 4 |
+set -o pipefail |
|
| 5 |
+ |
|
| 6 |
+# This test validates secret interaction |
|
| 7 |
+ |
|
| 8 |
+oc secrets new-dockercfg dockercfg --docker-username=sample-user --docker-password=sample-password --docker-email=fake@example.org |
|
| 9 |
+# can't use a go template here because the output needs to be base64 decoded. base64 isn't installed by default in all distros |
|
| 10 |
+oc describe secrets/dockercfg | grep "dockercfg:" | awk '{print $2}' > ${HOME}/dockerconfig
|
|
| 11 |
+oc secrets new from-file .dockercfg=${HOME}/dockerconfig
|
|
| 12 |
+# check to make sure the type was correctly auto-detected |
|
| 13 |
+[ "$(oc get secret/from-file -t "{{ .type }}" | grep 'kubernetes.io/dockercfg')" ]
|
|
| 14 |
+# make sure the -o works correctly |
|
| 15 |
+[ "$(oc secrets new-dockercfg dockercfg --docker-username=sample-user --docker-password=sample-password --docker-email=fake@example.org -o yaml | grep "kubernetes.io/dockercfg")" ] |
|
| 16 |
+[ "$(oc secrets new from-file .dockercfg=${HOME}/dockerconfig -o yaml | grep "kubernetes.io/dockercfg")" ]
|
|
| 17 |
+# check to make sure malformed names fail as expected |
|
| 18 |
+[ "$(oc secrets new bad-name .docker=cfg=${HOME}/dockerconfig 2>&1 | grep "error: Key names or file paths cannot contain '='.")" ]
|
|
| 19 |
+ |
|
| 20 |
+ |
|
| 21 |
+# attach secrets to service account |
|
| 22 |
+# single secret with prefix |
|
| 23 |
+oc secrets add serviceaccounts/deployer secrets/dockercfg |
|
| 24 |
+# don't add the same secret twice |
|
| 25 |
+oc secrets add serviceaccounts/deployer secrets/dockercfg secrets/from-file |
|
| 26 |
+# make sure we can add as as pull secret |
|
| 27 |
+oc secrets add serviceaccounts/deployer secrets/dockercfg secrets/from-file --for=pull |
|
| 28 |
+# make sure we can add as as pull secret and mount secret at once |
|
| 29 |
+oc secrets add serviceaccounts/deployer secrets/dockercfg secrets/from-file --for=pull,mount |
|
| 30 |
+echo "secrets: ok" |
|
| 31 |
+ |
| 0 | 32 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,25 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+ |
|
| 2 |
+set -o errexit |
|
| 3 |
+set -o nounset |
|
| 4 |
+set -o pipefail |
|
| 5 |
+ |
|
| 6 |
+# This test validates template commands |
|
| 7 |
+ |
|
| 8 |
+oc get templates |
|
| 9 |
+oc create -f examples/sample-app/application-template-dockerbuild.json |
|
| 10 |
+oc get templates |
|
| 11 |
+oc get templates ruby-helloworld-sample |
|
| 12 |
+oc get template ruby-helloworld-sample -o json | oc process -f - |
|
| 13 |
+oc process ruby-helloworld-sample |
|
| 14 |
+oc describe templates ruby-helloworld-sample |
|
| 15 |
+[ "$(oc describe templates ruby-helloworld-sample | grep -E "BuildConfig.*ruby-sample-build")" ] |
|
| 16 |
+oc delete templates ruby-helloworld-sample |
|
| 17 |
+oc get templates |
|
| 18 |
+# TODO: create directly from template |
|
| 19 |
+echo "templates: ok" |
|
| 20 |
+ |
|
| 21 |
+oc process -f test/templates/fixtures/guestbook.json -l app=guestbook | oc create -f - |
|
| 22 |
+oc status |
|
| 23 |
+[ "$(oc status | grep frontend-service)" ] |
|
| 24 |
+echo "template+config: ok" |
| 0 | 25 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,28 @@ |
| 0 |
+#!/bin/bash |
|
| 1 |
+ |
|
| 2 |
+set -o errexit |
|
| 3 |
+set -o nounset |
|
| 4 |
+set -o pipefail |
|
| 5 |
+ |
|
| 6 |
+# This test validates the 'volume' command |
|
| 7 |
+ |
|
| 8 |
+oc create -f test/integration/fixtures/test-deployment-config.json |
|
| 9 |
+ |
|
| 10 |
+[ "$(oc volume dc/test-deployment-config --list | grep vol1)" ] |
|
| 11 |
+[ "$(oc volume dc/test-deployment-config --add --name=vol2 -m /opt)" ] |
|
| 12 |
+[ "$(oc volume dc/test-deployment-config --add --name=vol1 --type=secret --secret-name='$ecret' -m /data | grep overwrite)" ] |
|
| 13 |
+[ "$(oc volume dc/test-deployment-config --add --name=vol1 --type=emptyDir -m /data --overwrite)" ] |
|
| 14 |
+[ "$(oc volume dc/test-deployment-config --add -m /opt | grep exists)" ] |
|
| 15 |
+[ "$(oc volume dc/test-deployment-config --add --name=vol2 -m /etc -c 'ruby' --overwrite | grep warning)" ] |
|
| 16 |
+[ "$(oc volume dc/test-deployment-config --add --name=vol2 -m /etc -c 'ruby*' --overwrite)" ] |
|
| 17 |
+[ "$(oc volume dc/test-deployment-config --list --name=vol2 | grep /etc)" ] |
|
| 18 |
+[ "$(oc volume dc/test-deployment-config --add --name=vol3 -o yaml | grep vol3)" ] |
|
| 19 |
+[ "$(oc volume dc/test-deployment-config --list --name=vol3 | grep 'not found')" ] |
|
| 20 |
+[ "$(oc volume dc/test-deployment-config --remove 2>&1 | grep confirm)" ] |
|
| 21 |
+[ "$(oc volume dc/test-deployment-config --remove --name=vol2)" ] |
|
| 22 |
+[ ! "$(oc volume dc/test-deployment-config --list | grep vol2)" ] |
|
| 23 |
+[ "$(oc volume dc/test-deployment-config --remove --confirm)" ] |
|
| 24 |
+[ ! "$(oc volume dc/test-deployment-config --list | grep vol1)" ] |
|
| 25 |
+ |
|
| 26 |
+oc delete dc/test-deployment-config |
|
| 27 |
+echo "volumes: ok" |
|
| 0 | 28 |
\ No newline at end of file |