Skip to content

Commit

Permalink
add commands for rendering and for writing featuregates
Browse files Browse the repository at this point in the history
  • Loading branch information
deads2k committed Sep 18, 2023
1 parent 693d4b6 commit fdc37ec
Show file tree
Hide file tree
Showing 25 changed files with 863 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,5 @@ _output/
tests/bin/

models-schema
/render
/write-available-featuresets
22 changes: 22 additions & 0 deletions payload-command/cmd/render/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package main

import (
"flag"
"fmt"
"os"

"github.com/openshift/api/payload-command/render"
)

// this command injects the initial FeatureGate.status and places some CRDs to be created by the installer during bootstrapping
// remember that these manifests are not maintained in a running cluster.
func main() {
o := &render.RenderOpts{}
o.AddFlags(flag.CommandLine)
flag.Parse()

if err := o.Run(); err != nil {
fmt.Fprintf(os.Stderr, "error: %v\n", err)
os.Exit(2)
}
}
22 changes: 22 additions & 0 deletions payload-command/cmd/write-available-featuresets/main.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package main

import (
"flag"
"fmt"
"os"

"github.com/openshift/api/payload-command/render"
)

// this command writes manifests for each available featureset so that the cluster-config-operator can read them
// in order to maintain the list.
func main() {
o := &render.WriteFeatureSets{}
o.AddFlags(flag.CommandLine)
flag.Parse()

if err := o.Run(); err != nil {
fmt.Fprintf(os.Stderr, "error: %v\n", err)
os.Exit(2)
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: config.openshift.io/v1
kind: APIServer
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
# this flag is not set for a cluster coming from 4.5 via upgrade. Hence, 4.5 clusters will keep supporting non-sha256 tokens.
oauth-apiserver.openshift.io/secure-token-storage: "true"
release.openshift.io/create-only: "true"
spec: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: config.openshift.io/v1
kind: Authentication
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
spec: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: config.openshift.io/v1
kind: Build
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
spec: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: config.openshift.io/v1
kind: Console
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
spec: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: config.openshift.io/v1
kind: DNS
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
spec: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: config.openshift.io/v1
kind: FeatureGate
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
spec: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: config.openshift.io/v1
kind: Image
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
spec: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: config.openshift.io/v1
kind: Infrastructure
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
spec: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: config.openshift.io/v1
kind: Ingress
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
spec: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: config.openshift.io/v1
kind: Network
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
spec: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: config.openshift.io/v1
kind: OAuth
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
spec: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: config.openshift.io/v1
kind: Project
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
spec: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: config.openshift.io/v1
kind: Proxy
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
spec: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: config.openshift.io/v1
kind: Scheduler
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
spec: {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
apiVersion: config.openshift.io/v1
kind: Node
metadata:
name: cluster
annotations:
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
include.release.openshift.io/single-node-developer: "true"
release.openshift.io/create-only: "true"
spec: {}
30 changes: 30 additions & 0 deletions payload-command/render/config.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package render

import (
configv1 "github.com/openshift/api/config/v1"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/serializer"
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
)

var (
configScheme = runtime.NewScheme()
configCodecs = serializer.NewCodecFactory(configScheme)
)

func init() {
utilruntime.Must(configv1.AddToScheme(configScheme))
}

func readFeatureGateV1OrDie(objBytes []byte) *configv1.FeatureGate {
requiredObj, err := runtime.Decode(configCodecs.UniversalDecoder(configv1.SchemeGroupVersion), objBytes)
if err != nil {
panic(err)
}

return requiredObj.(*configv1.FeatureGate)
}

func writeFeatureGateV1OrDie(obj *configv1.FeatureGate) string {
return runtime.EncodeOrDie(configCodecs.LegacyCodec(configv1.SchemeGroupVersion), obj)
}
Loading

0 comments on commit fdc37ec

Please sign in to comment.