Skip to content

Commit

Permalink
Merge pull request #1986 from smarterclayton/make_v1beta3_default
Browse files Browse the repository at this point in the history
Merged by openshift-bot
  • Loading branch information
OpenShift Bot committed May 12, 2015
2 parents d69677c + f28b5ec commit df30dfa
Show file tree
Hide file tree
Showing 44 changed files with 277 additions and 836 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -2,6 +2,7 @@
/openshift.local.*
/.project
/.vagrant
/cpu.pprof
/assets/nbproject
/examples/sample-app/openshift.local.*
/examples/sample-app/logs/openshift.log
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion examples/sample-app/application-template-stibuild.json
Expand Up @@ -227,7 +227,7 @@
"value": "${MYSQL_DATABASE}"
}
],
"image": "openshift/mysql-55-centos7",
"image": "openshift/mysql-55-centos7:latest",
"name": "ruby-helloworld-database",
"ports": [
{
Expand Down
61 changes: 8 additions & 53 deletions hack/test-cmd.sh
Expand Up @@ -311,63 +311,18 @@ osc create -f examples/image-streams/image-streams-centos7.json
[ -n "$(osc get imageStreams mongodb -t "{{.status.dockerImageRepository}}")" ]
osc delete imageStreams ruby
osc delete imageStreams nodejs
osc delete imageStreams wildfly
osc delete imageStreams mysql
#osc delete imageStreams wildfly
#osc delete imageStreams mysql
osc delete imageStreams postgresql
osc delete imageStreams mongodb
[ -z "$(osc get imageStreams ruby -t "{{.status.dockerImageRepository}}")" ]
[ -z "$(osc get imageStreams nodejs -t "{{.status.dockerImageRepository}}")" ]
[ -z "$(osc get imageStreams wildfly -t "{{.status.dockerImageRepository}}")" ]
[ -z "$(osc get imageStreams mysql -t "{{.status.dockerImageRepository}}")" ]
[ -z "$(osc get imageStreams postgresql -t "{{.status.dockerImageRepository}}")" ]
[ -z "$(osc get imageStreams mongodb -t "{{.status.dockerImageRepository}}")" ]
wait_for_command 'osc get imagestreamTags mysql:latest' "${TIME_MIN}"
[ -n "$(osc get imagestreams mysql -t "{{ index .metadata.annotations \"openshift.io/image.dockerRepositoryCheck\"}}")" ]
echo "imageStreams: ok"

osc create -f test/integration/fixtures/test-image-stream.json
osc create -f test/integration/fixtures/test-image-stream-mapping.json
osc get images
osc get imageStreams
osc get imageStreamTag test:sometag
osc get imageStreamImage test@sha256:4986bf8c15363d1c5d15512d5266f8777bfba4974ac56e3270e7760f6f0a8125
osc delete imageStreams test
echo "imageStreamMappings: ok"

osc get imageRepositories
osc create -f test/integration/fixtures/test-image-repository.json
[ -n "$(osc get imageRepositories test -t "{{.status.dockerImageRepository}}")" ]
osc delete imageRepositories test
osc create -f examples/image-repositories/image-repositories.json
[ -n "$(osc get imageRepositories ruby-20-centos7 -t "{{.status.dockerImageRepository}}")" ]
[ -n "$(osc get imageRepositories nodejs-010-centos7 -t "{{.status.dockerImageRepository}}")" ]
[ -n "$(osc get imageRepositories wildfly-8-centos -t "{{.status.dockerImageRepository}}")" ]
[ -n "$(osc get imageRepositories mysql-55-centos7 -t "{{.status.dockerImageRepository}}")" ]
[ -n "$(osc get imageRepositories postgresql-92-centos7 -t "{{.status.dockerImageRepository}}")" ]
[ -n "$(osc get imageRepositories mongodb-24-centos7 -t "{{.status.dockerImageRepository}}")" ]
osc delete imageRepositories ruby-20-centos7
osc delete imageRepositories nodejs-010-centos7
osc delete imageRepositories mysql-55-centos7
osc delete imageRepositories postgresql-92-centos7
osc delete imageRepositories mongodb-24-centos7
[ -z "$(osc get imageRepositories ruby-20-centos7 -t "{{.status.dockerImageRepository}}")" ]
[ -z "$(osc get imageRepositories nodejs-010-centos7 -t "{{.status.dockerImageRepository}}")" ]
[ -z "$(osc get imageRepositories mysql-55-centos7 -t "{{.status.dockerImageRepository}}")" ]
[ -z "$(osc get imageRepositories postgresql-92-centos7 -t "{{.status.dockerImageRepository}}")" ]
[ -z "$(osc get imageRepositories mongodb-24-centos7 -t "{{.status.dockerImageRepository}}")" ]
# don't delete wildfly-8-centos
osc create -f - << EOF
{"apiVersion": "v1beta1","dockerImageRepository": "openshift/mysql-55-centos7","kind": "ImageRepository","metadata": {"name": "mysql"}}
EOF
echo "imageRepositories: ok"

osc create -f test/integration/fixtures/test-image-repository.json
osc create -f test/integration/fixtures/test-image-repository-mapping.json
osc get images
osc get imageRepositories
osc get imageRepositoryTag test:sometag
osc delete imageRepositories test
echo "imageRepositoryMappings: ok"

[ -n "$(osc get imageRepositories mysql -t "{{ index .metadata.annotations \"openshift.io/image.dockerRepositoryCheck\"}}")" ]
[ "$(osc new-app library/php mysql -o yaml | grep 3306)" ]
# verify we can generate a Docker image based component "mongodb" directly
[ ! "$(osc new-app unknownhubimage -o yaml)" ]
Expand Down Expand Up @@ -436,8 +391,8 @@ osc get buildConfigs
osc get bc
osc get builds

[[ $(osc describe buildConfigs ruby-sample-build | grep --text "Webhook Github" | grep -F "${API_SCHEME}://${API_HOST}:${API_PORT}/osapi/v1beta1/buildConfigHooks/ruby-sample-build/secret101/github") ]]
[[ $(osc describe buildConfigs ruby-sample-build | grep --text "Webhook Generic" | grep -F "${API_SCHEME}://${API_HOST}:${API_PORT}/osapi/v1beta1/buildConfigHooks/ruby-sample-build/secret101/generic") ]]
[[ $(osc describe buildConfigs ruby-sample-build --api-version=v1beta1 | grep --text "Webhook Github" | grep -F "${API_SCHEME}://${API_HOST}:${API_PORT}/osapi/v1beta1/buildConfigHooks/ruby-sample-build/secret101/github") ]]
[[ $(osc describe buildConfigs ruby-sample-build --api-version=v1beta1 | grep --text "Webhook Generic" | grep -F "${API_SCHEME}://${API_HOST}:${API_PORT}/osapi/v1beta1/buildConfigHooks/ruby-sample-build/secret101/generic") ]]
osc start-build --list-webhooks='all' ruby-sample-build
[[ $(osc start-build --list-webhooks='all' ruby-sample-build | grep --text "generic") ]]
[[ $(osc start-build --list-webhooks='all' ruby-sample-build | grep --text "github") ]]
Expand Down Expand Up @@ -507,8 +462,8 @@ osadm registry --create --credentials="${OPENSHIFTCONFIG}"
echo "ex registry: ok"

# verify the image repository had its tags populated
[ -n "$(osc get imageStreams wildfly-8-centos -t "{{.status.tags.latest}}")" ]
[ -n "$(osc get imageStreams wildfly-8-centos -t "{{ index .metadata.annotations \"openshift.io/image.dockerRepositoryCheck\"}}")" ]
[ -n "$(osc get imageStreams wildfly -t "{{.status.tags.latest}}")" ]
[ -n "$(osc get imageStreams wildfly -t "{{ index .metadata.annotations \"openshift.io/image.dockerRepositoryCheck\"}}")" ]

# Test building a dependency tree
[ "$(openshift ex build-chain --all -o dot | grep 'graph')" ]
Expand Down
22 changes: 9 additions & 13 deletions pkg/api/graph/types.go
Expand Up @@ -224,6 +224,9 @@ func ImageStreamTag(g MutableUniqueGraph, namespace, name, tag string) graph.Nod
if len(tag) == 0 {
tag = image.DefaultImageTag
}
if strings.Contains(name, ":") {
panic(name)
}
uname := UniqueName(fmt.Sprintf("%d|%s/%s:%s", ImageStreamGraphKind, namespace, name, tag))
return EnsureUnique(g,
uname,
Expand Down Expand Up @@ -272,17 +275,6 @@ func BuildConfig(g MutableUniqueGraph, config *build.BuildConfig) graph.Node {

from := buildutil.GetImageStreamForStrategy(config)
if from != nil {
for _, trigger := range config.Triggers {
if trigger.ImageChange != nil {
if len(from.Name) == 0 || from.Kind != "ImageStreamTag" {
continue
}
tag := strings.Split(from.Name, ":")[1]
in := ImageStreamTag(g, defaultNamespace(from.Namespace, config.Namespace), from.Name, tag)
g.AddEdge(in, node, BuildInputImageGraphEdgeKind)
}
}

switch from.Kind {
case "DockerImage":
if ref, err := image.ParseDockerImageReference(from.Name); err == nil {
Expand All @@ -291,10 +283,14 @@ func BuildConfig(g MutableUniqueGraph, config *build.BuildConfig) graph.Node {
in := DockerRepository(g, ref.String(), tag)
g.AddEdge(in, node, BuildInputImageGraphEdgeKind)
}
case "ImageStreamTag":
tag := strings.Split(from.Name, ":")[1]
case "ImageStream":
tag := image.DefaultImageTag
in := ImageStreamTag(g, defaultNamespace(from.Namespace, config.Namespace), from.Name, tag)
g.AddEdge(in, node, BuildInputImageGraphEdgeKind)
case "ImageStreamTag":
name, tag, _ := image.SplitImageStreamTag(from.Name)
in := ImageStreamTag(g, defaultNamespace(from.Namespace, config.Namespace), name, tag)
g.AddEdge(in, node, BuildInputImageGraphEdgeKind)
case "ImageStreamImage":
glog.V(4).Infof("Ignoring ImageStreamImage reference in buildconfig %s/%s", config.Namespace, config.Name)
}
Expand Down
8 changes: 5 additions & 3 deletions pkg/api/latest/latest.go
Expand Up @@ -19,7 +19,7 @@ import (
)

// Version is the string that represents the current external default version.
const Version = "v1beta1"
const Version = "v1beta3"

// OldestVersion is the string that represents the oldest server version supported,
// for client code that wants to hardcode the lowest common denominator.
Expand Down Expand Up @@ -107,8 +107,8 @@ func init() {
},
)

// list of versions we support on the server
versions := Versions
// list of versions we support on the server, in preferred order
versions := []string{"v1beta3", "v1beta1"}

// versions that used mixed case URL formats
versionMixedCase := map[string]bool{
Expand All @@ -129,6 +129,8 @@ func init() {
"Project": true,
"ProjectRequest": true,

"Image": true,

"User": true,
"Identity": true,
"UserIdentityMapping": true,
Expand Down
6 changes: 6 additions & 0 deletions pkg/api/serialization_test.go
Expand Up @@ -101,6 +101,12 @@ func fuzzInternalObject(t *testing.T, forVersion string, item runtime.Object, se
j.DockerImageReference = specs[c.Intn(len(specs))]
if forVersion == "v1beta3" {
j.Tag, j.DockerImageReference = "", ""
if j.To != nil && (len(j.To.Kind) == 0 || j.To.Kind == "ImageStream") {
j.To.Kind = "ImageStream"
if len(j.Tag) == 0 {
j.To.Kind = "latest"
}
}
}
},
func(j *deploy.DeploymentStrategy, c fuzz.Continue) {
Expand Down
2 changes: 1 addition & 1 deletion pkg/authorization/api/types.go
Expand Up @@ -58,7 +58,7 @@ var (
OAuthGroupName: {"oauthauthorizetokens", "oauthaccesstokens", "oauthclients", "oauthclientauthorizations"},
PolicyOwnerGroupName: {"policies", "policybindings"},
PermissionGrantingGroupName: {"roles", "rolebindings", "resourceaccessreviews", "subjectaccessreviews"},
OpenshiftExposedGroupName: {BuildGroupName, ImageGroupName, DeploymentGroupName, "templates", "templateconfigs", "routes"},
OpenshiftExposedGroupName: {BuildGroupName, ImageGroupName, DeploymentGroupName, "templates", "templateconfigs", "processedtemplates", "routes"},
OpenshiftAllGroupName: {OpenshiftExposedGroupName, UserGroupName, OAuthGroupName, PolicyOwnerGroupName, PermissionGrantingGroupName, OpenshiftStatusGroupName, "projects"},
OpenshiftStatusGroupName: {"imagerepositories/status"},

Expand Down
65 changes: 28 additions & 37 deletions pkg/build/api/v1beta1/conversion.go
Expand Up @@ -2,13 +2,13 @@ package v1beta1

import (
"fmt"
"strings"

"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
kapi "github.com/GoogleCloudPlatform/kubernetes/pkg/api/v1beta3"
"github.com/GoogleCloudPlatform/kubernetes/pkg/conversion"

newer "github.com/openshift/origin/pkg/build/api"
image "github.com/openshift/origin/pkg/image/api"
imageapi "github.com/openshift/origin/pkg/image/api"
)

func init() {
Expand Down Expand Up @@ -70,15 +70,16 @@ func init() {
Kind: in.From.Kind,
}
case "ImageStreamTag":
bits := strings.Split(in.From.Name, ":")
name, tag, ok := imageapi.SplitImageStreamTag(in.From.Name)
if !ok {
return fmt.Errorf("ImageStreamTag object references must be in the form <name>:<tag>: %s", in.From.Name)
}
out.From = &kapi.ObjectReference{
Name: bits[0],
Namespace: in.From.Namespace,
Kind: "ImageStream",
Namespace: in.From.Namespace,
Name: name,
}
if len(bits) > 1 {
out.Tag = bits[1]
}
out.Tag = tag
case "DockerImage":
out.Image = in.From.Name
out.BuilderImage = in.From.Name
Expand All @@ -99,11 +100,7 @@ func init() {
}
if len(in.From.Kind) == 0 || in.From.Kind == "ImageStream" || in.From.Kind == "ImageRepository" {
out.From.Kind = "ImageStreamTag"
if len(in.Tag) > 0 {
out.From.Name = out.From.Name + ":" + in.Tag
} else {
out.From.Name = out.From.Name + ":latest"
}
out.From.Name = imageapi.JoinImageStreamTag(in.From.Name, in.Tag)
}
}
if in.Image != "" {
Expand Down Expand Up @@ -133,15 +130,16 @@ func init() {
Kind: in.From.Kind,
}
case "ImageStreamTag":
bits := strings.Split(in.From.Name, ":")
name, tag, ok := imageapi.SplitImageStreamTag(in.From.Name)
if !ok {
return fmt.Errorf("ImageStreamTag object references must be in the form <name>:<tag>: %s", in.From.Name)
}
out.From = &kapi.ObjectReference{
Name: bits[0],
Namespace: in.From.Namespace,
Kind: "ImageStream",
Namespace: in.From.Namespace,
Name: name,
}
if len(bits) > 1 {
out.Tag = bits[1]
}
out.Tag = tag
case "DockerImage":
out.Image = in.From.Name
out.BaseImage = in.From.Name
Expand All @@ -159,11 +157,7 @@ func init() {
}
if len(in.From.Kind) == 0 || in.From.Kind == "ImageStream" || in.From.Kind == "ImageRepository" {
out.From.Kind = "ImageStreamTag"
if len(in.Tag) > 0 {
out.From.Name = out.From.Name + ":" + in.Tag
} else {
out.From.Name = out.From.Name + ":latest"
}
out.From.Name = imageapi.JoinImageStreamTag(in.From.Name, in.Tag)
}
}
if in.Image != "" {
Expand Down Expand Up @@ -191,15 +185,16 @@ func init() {
Kind: in.From.Kind,
}
case "ImageStreamTag":
bits := strings.Split(in.From.Name, ":")
name, tag, ok := imageapi.SplitImageStreamTag(in.From.Name)
if !ok {
return fmt.Errorf("ImageStreamTag object references must be in the form <name>:<tag>: %s", in.From.Name)
}
out.From = &kapi.ObjectReference{
Name: bits[0],
Namespace: in.From.Namespace,
Kind: "ImageStream",
Namespace: in.From.Namespace,
Name: name,
}
if len(bits) > 1 {
out.Tag = bits[1]
}
out.Tag = tag
case "DockerImage":
out.Image = in.From.Name
}
Expand All @@ -217,11 +212,7 @@ func init() {
}
if len(in.From.Kind) == 0 || in.From.Kind == "ImageStream" || in.From.Kind == "ImageRepository" {
out.From.Kind = "ImageStreamTag"
if len(in.Tag) > 0 {
out.From.Name = out.From.Name + ":" + in.Tag
} else {
out.From.Name = out.From.Name + ":latest"
}
out.From.Name = imageapi.JoinImageStreamTag(in.From.Name, in.Tag)
}
}
if len(in.Image) != 0 {
Expand All @@ -241,7 +232,7 @@ func init() {
out.PushSecretName = in.PushSecretName
if len(in.DockerImageReference) > 0 {
out.DockerImageReference = in.DockerImageReference
ref, err := image.ParseDockerImageReference(in.DockerImageReference)
ref, err := imageapi.ParseDockerImageReference(in.DockerImageReference)
if err != nil {
return err
}
Expand All @@ -262,7 +253,7 @@ func init() {
return nil
}
if len(in.ImageTag) != 0 {
ref, err := image.ParseDockerImageReference(in.ImageTag)
ref, err := imageapi.ParseDockerImageReference(in.ImageTag)
if err != nil {
return err
}
Expand Down

0 comments on commit df30dfa

Please sign in to comment.